|
196 | 196 | Set API Key |
197 | 197 | </button> |
198 | 198 | <button |
199 | | - v-else-if="scanner.status === 'installed' || scanner.status === 'configured'" |
| 199 | + v-else |
200 | 200 | @click="openConfigDialog(scanner)" |
201 | 201 | class="btn btn-sm btn-outline" |
202 | 202 | > |
|
339 | 339 | class="input input-bordered" |
340 | 340 | /> |
341 | 341 | </div> |
| 342 | + <!-- Docker image override --> |
| 343 | + <div class="divider text-xs">Docker Image</div> |
| 344 | + <div class="form-control"> |
| 345 | + <label class="label"> |
| 346 | + <span class="label-text">Docker Image</span> |
| 347 | + <span class="badge badge-sm badge-ghost">Optional</span> |
| 348 | + </label> |
| 349 | + <input |
| 350 | + v-model="configDockerImage" |
| 351 | + type="text" |
| 352 | + :placeholder="configScanner?.image_override || configScanner?.docker_image || 'default image'" |
| 353 | + class="input input-bordered input-sm font-mono" |
| 354 | + /> |
| 355 | + <label class="label" v-if="configScanner?.docker_image"> |
| 356 | + <span class="label-text-alt text-base-content/40">Default: {{ configScanner.docker_image }}</span> |
| 357 | + </label> |
| 358 | + </div> |
342 | 359 | <!-- Custom env var --> |
343 | 360 | <div class="divider text-xs">Add Custom Variable</div> |
344 | 361 | <div class="flex gap-2"> |
@@ -408,6 +425,7 @@ const configScanner = ref<any>(null) |
408 | 425 | const configValues = ref<Record<string, string>>({}) |
409 | 426 | const customEnvKey = ref('') |
410 | 427 | const customEnvValue = ref('') |
| 428 | +const configDockerImage = ref('') |
411 | 429 |
|
412 | 430 | const totalFindings = computed(() => overview.value?.findings_by_severity?.total || 0) |
413 | 431 |
|
@@ -506,6 +524,7 @@ function openConfigDialog(scanner: any) { |
506 | 524 | configValues.value = { ...existing } |
507 | 525 | customEnvKey.value = '' |
508 | 526 | customEnvValue.value = '' |
| 527 | + configDockerImage.value = scanner.image_override || '' |
509 | 528 | configDialog.value?.showModal() |
510 | 529 | } |
511 | 530 |
|
@@ -539,8 +558,10 @@ async function saveConfig() { |
539 | 558 | toSend[k] = v |
540 | 559 | } |
541 | 560 | } |
542 | | - if (Object.keys(toSend).length > 0) { |
543 | | - await api.configureScanner(configScanner.value.id, toSend) |
| 561 | + const hasEnv = Object.keys(toSend).length > 0 |
| 562 | + const hasImage = configDockerImage.value && configDockerImage.value !== (configScanner.value?.image_override || '') |
| 563 | + if (hasEnv || hasImage) { |
| 564 | + await api.configureScanner(configScanner.value.id, toSend, configDockerImage.value || undefined) |
544 | 565 | } |
545 | 566 | closeConfigDialog() |
546 | 567 | await refresh() |
|
0 commit comments