dashboard-shell-shell 3.0.5-test.12 → 3.0.5-test.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/assets/icons/iconfont.css +4 -1
  2. package/assets/images/pl/dark/logo.png +0 -0
  3. package/assets/styles/global/_select.scss +1 -1
  4. package/assets/styles/global/_tooltip.scss +5 -1
  5. package/assets/translations/zh-hans.yaml +5 -4
  6. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -19
  7. package/components/ExplorerMembers.vue +10 -1
  8. package/components/GlobalRoleBindings.vue +1 -58
  9. package/components/Resource/Detail/TitleBar/index.vue +26 -23
  10. package/components/ResourceDetail/Masthead/index.vue +1 -1
  11. package/components/ResourceDetail/Masthead/latest.vue +1 -1
  12. package/components/ResourceDetail/Masthead/legacy.vue +4 -4
  13. package/components/SortableTable/index.vue +2 -2
  14. package/components/Tabbed/index.vue +5 -1
  15. package/components/auth/Principal.vue +8 -3
  16. package/components/auth/RoleDetailEdit.vue +1 -1
  17. package/components/form/ArrayList.vue +163 -147
  18. package/components/form/Command.vue +4 -5
  19. package/components/form/Footer.vue +1 -0
  20. package/components/form/HealthCheck.vue +0 -2
  21. package/components/form/HookOption.vue +83 -58
  22. package/components/form/InputWithSelect.vue +8 -7
  23. package/components/form/KeyValue.vue +16 -2
  24. package/components/form/Labels.vue +1 -1
  25. package/components/form/MatchExpressions.vue +3 -4
  26. package/components/form/NameNsDescription.vue +1 -1
  27. package/components/form/Networking.vue +0 -1
  28. package/components/form/NodeAffinity.vue +29 -28
  29. package/components/form/PodAffinity.vue +19 -21
  30. package/components/form/Probe.vue +15 -11
  31. package/components/form/ResourceQuota/NamespaceRow.vue +1 -1
  32. package/components/form/ResourceQuota/Project.vue +1 -1
  33. package/components/form/ResourceQuota/ProjectRow.vue +1 -1
  34. package/components/form/ResourceSelector.vue +1 -1
  35. package/components/form/ServiceNameSelect.vue +1 -3
  36. package/components/form/ServicePorts.vue +149 -75
  37. package/components/form/Tolerations.vue +12 -9
  38. package/components/form/ValueFromResource.vue +110 -96
  39. package/components/nav/NamespaceFilter.vue +14 -19
  40. package/components/nav/TopLevelMenu.vue +98 -125
  41. package/config/router/navigation-guards/index.js +52 -3
  42. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  43. package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
  44. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  45. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  46. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  47. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  48. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  49. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  50. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  51. package/edit/networking.k8s.io.ingress/Certificate.vue +7 -5
  52. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  53. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  54. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  55. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
  56. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  57. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
  58. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  59. package/edit/secret/index.vue +2 -2
  60. package/edit/service.vue +4 -1
  61. package/edit/storage.k8s.io.storageclass/index.vue +10 -8
  62. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  63. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  64. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  65. package/edit/workload/Job.vue +27 -29
  66. package/edit/workload/Upgrading.vue +3 -3
  67. package/edit/workload/index.vue +2 -2
  68. package/edit/workload/storage/Mount.vue +1 -0
  69. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  70. package/edit/workload/storage/azureDisk.vue +14 -10
  71. package/edit/workload/storage/azureFile.vue +9 -7
  72. package/edit/workload/storage/csi/index.vue +6 -9
  73. package/edit/workload/storage/emptyDir.vue +7 -5
  74. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  75. package/edit/workload/storage/hostPath.vue +7 -5
  76. package/edit/workload/storage/nfs.vue +8 -6
  77. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  78. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +18 -15
  79. package/edit/workload/storage/secret.vue +9 -6
  80. package/edit/workload/storage/vsphereVolume.vue +11 -7
  81. package/initialize/app-extended.js +7 -1
  82. package/package.json +1 -1
  83. package/pages/account/index.vue +90 -56
  84. package/pages/home.vue +3 -4
  85. package/rancher-components/Banner/Banner.vue +4 -1
  86. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +31 -2
  87. package/store/i18n.js +1 -0
  88. package/utils/errorTranslate.json +82 -2
@@ -263,174 +263,181 @@ export default {
263
263
  role="group"
264
264
  :aria-label="title || t('generic.ariaLabel.arrayList')"
265
265
  >
266
- <div
267
- v-if="title"
268
- class="clearfix"
269
- role="group"
270
- >
271
- <slot name="title">
272
- <h3>
273
- {{ title }}
274
- <span
275
- v-if="required"
276
- class="required"
277
- aria-hidden="true"
278
- >*</span>
279
- <i
280
- v-if="showProtip"
281
- v-clean-tooltip="{content: protip, triggers: ['hover', 'touch', 'focus'] }"
282
- class="icon icon-info"
283
- tabindex="0"
284
- />
285
- </h3>
286
- </slot>
287
- </div>
288
266
 
289
- <div>
290
- <div
291
- v-if="showAdd && !isView"
292
- class="footer mmt-6"
293
- >
294
- <slot
295
- v-if="showAdd"
296
- name="add"
297
- :add="add"
298
- >
299
- <button
300
- type="button"
301
- class="btn role-tertiary add"
302
- :class="[addClass]"
303
- :disabled="loading || disableAdd"
304
- :data-testid="`${componentTestid}-button`"
305
- :aria-label="_addLabel"
306
- role="button"
307
- @click="add()"
308
- >
309
- <i
310
- class="mr-5 icon"
311
- :class="loading ? ['icon-lg', 'icon-spinner','icon-spin']: [addIcon]"
312
- />
313
- {{ _addLabel }}
314
- </button>
315
- </slot>
316
- </div>
317
- <template v-if="rows.length">
267
+ <div class="row">
268
+ <div class="col">
318
269
  <div
319
- v-if="showHeader"
320
- class="array-list-header-group"
270
+ v-if="title"
271
+ class="clearfix"
321
272
  role="group"
322
273
  >
323
- <slot name="column-headers">
324
- <label class="value text-label mb-10">
325
- {{ valueLabel }}
326
- </label>
274
+ <slot name="title">
275
+ <h3>
276
+ {{ title }}
277
+ <span
278
+ v-if="required"
279
+ class="required"
280
+ aria-hidden="true"
281
+ >*</span>
282
+ <i
283
+ v-if="showProtip"
284
+ v-clean-tooltip="{content: protip, triggers: ['hover', 'touch', 'focus'] }"
285
+ class="icon icon-info"
286
+ tabindex="0"
287
+ />
288
+ </h3>
327
289
  </slot>
328
290
  </div>
329
- <div
330
- v-for="(row, idx) in rows"
331
- :key="idx"
332
- :data-testid="`${componentTestid}-box${ idx }`"
333
- class="box"
334
- :class="{'hide-remove-is-view': isView}"
335
- role="group"
336
- >
337
- <slot
338
- name="columns"
339
- :queueUpdate="queueUpdate"
340
- :i="idx"
341
- :rows="rows"
342
- :row="row"
343
- :mode="mode"
344
- :isView="isView"
345
- >
346
- <div class="value">
291
+ </div>
292
+ <div class="col">
293
+ <div>
294
+ <template v-if="rows.length">
295
+ <div
296
+ v-if="showHeader"
297
+ class="array-list-header-group"
298
+ role="group"
299
+ >
300
+ <slot name="column-headers">
301
+ <label class="value text-label mb-10">
302
+ {{ valueLabel }}
303
+ </label>
304
+ </slot>
305
+ </div>
306
+ <div
307
+ v-for="(row, idx) in rows"
308
+ :key="idx"
309
+ :data-testid="`${componentTestid}-box${ idx }`"
310
+ class="box"
311
+ :class="{'hide-remove-is-view': isView}"
312
+ role="group"
313
+ >
347
314
  <slot
348
- name="value"
315
+ name="columns"
316
+ :queueUpdate="queueUpdate"
317
+ :i="idx"
318
+ :rows="rows"
349
319
  :row="row"
350
320
  :mode="mode"
351
321
  :isView="isView"
352
- :queue-update="queueUpdate"
353
322
  >
354
- <TextAreaAutoGrow
355
- v-if="valueMultiline"
356
- ref="value"
357
- v-model:value="row.value"
358
- :data-testid="`${componentTestid}-textarea-${idx}`"
359
- :placeholder="valuePlaceholder"
360
- :mode="mode"
361
- :disabled="disabled"
362
- :aria-label="a11yLabel ? `${a11yLabel} ${t('generic.ariaLabel.genericRow', {index: idx+1})}` : undefined"
363
- @paste="onPaste(idx, $event)"
364
- @update:value="queueUpdate"
365
- />
366
- <LabeledInput
367
- v-else-if="rules.length > 0"
368
- ref="value"
369
- v-model:value="row.value"
370
- :data-testid="`${componentTestid}-labeled-input-${idx}`"
371
- :placeholder="valuePlaceholder"
372
- :disabled="isView || disabled"
373
- :rules="rules"
374
- :compact="false"
375
- :aria-label="a11yLabel ? `${a11yLabel} ${t('generic.ariaLabel.genericRow', {index: idx+1})}` : undefined"
376
- @paste="onPaste(idx, $event)"
377
- @update:value="queueUpdate"
378
- />
379
- <input
380
- v-else
381
- ref="value"
382
- v-model="row.value"
383
- :data-testid="`${componentTestid}-input-${idx}`"
384
- :placeholder="valuePlaceholder"
385
- :disabled="isView || disabled"
386
- :aria-label="a11yLabel ? `${a11yLabel} ${t('generic.ariaLabel.genericRow', {index: idx+1})}` : undefined"
387
- @paste="onPaste(idx, $event)"
388
- >
323
+ <div class="value">
324
+ <slot
325
+ name="value"
326
+ :row="row"
327
+ :mode="mode"
328
+ :isView="isView"
329
+ :queue-update="queueUpdate"
330
+ >
331
+ <TextAreaAutoGrow
332
+ v-if="valueMultiline"
333
+ ref="value"
334
+ v-model:value="row.value"
335
+ :data-testid="`${componentTestid}-textarea-${idx}`"
336
+ :placeholder="valuePlaceholder"
337
+ :mode="mode"
338
+ :disabled="disabled"
339
+ :aria-label="a11yLabel ? `${a11yLabel} ${t('generic.ariaLabel.genericRow', {index: idx+1})}` : undefined"
340
+ @paste="onPaste(idx, $event)"
341
+ @update:value="queueUpdate"
342
+ />
343
+ <LabeledInput
344
+ v-else-if="rules.length > 0"
345
+ ref="value"
346
+ v-model:value="row.value"
347
+ :data-testid="`${componentTestid}-labeled-input-${idx}`"
348
+ :placeholder="valuePlaceholder"
349
+ :disabled="isView || disabled"
350
+ :rules="rules"
351
+ :compact="false"
352
+ :aria-label="a11yLabel ? `${a11yLabel} ${t('generic.ariaLabel.genericRow', {index: idx+1})}` : undefined"
353
+ @paste="onPaste(idx, $event)"
354
+ @update:value="queueUpdate"
355
+ />
356
+ <input
357
+ v-else
358
+ ref="value"
359
+ v-model="row.value"
360
+ :data-testid="`${componentTestid}-input-${idx}`"
361
+ :placeholder="valuePlaceholder"
362
+ :disabled="isView || disabled"
363
+ :aria-label="a11yLabel ? `${a11yLabel} ${t('generic.ariaLabel.genericRow', {index: idx+1})}` : undefined"
364
+ @paste="onPaste(idx, $event)"
365
+ >
366
+ </slot>
367
+ </div>
389
368
  </slot>
369
+ <div
370
+ v-if="showRemove && !isView"
371
+ class="remove"
372
+ >
373
+ <slot
374
+ name="remove-button"
375
+ :remove="() => remove(row, idx)"
376
+ :i="idx"
377
+ :row="row"
378
+ >
379
+ <button
380
+ type="button"
381
+ :disabled="isView"
382
+ class="btn role-link"
383
+ :data-testid="`${componentTestid}-remove-item-${idx}`"
384
+ :aria-label="t('generic.ariaLabel.remove', {index: idx+1})"
385
+ role="button"
386
+ @click="remove(row, idx)"
387
+ >
388
+ {{ _removeLabel }}
389
+ </button>
390
+ </slot>
391
+ </div>
392
+ <slot
393
+ name="value-sub-row"
394
+ :row="row"
395
+ :mode="mode"
396
+ :isView="isView"
397
+ />
390
398
  </div>
391
- </slot>
399
+ </template>
400
+ <div v-else>
401
+ <slot name="empty">
402
+ <div
403
+ v-if="mode==='view'"
404
+ class="text-muted"
405
+ >
406
+ &mdash;
407
+ </div>
408
+ </slot>
409
+ </div>
392
410
  <div
393
- v-if="showRemove && !isView"
394
- class="remove"
411
+ v-if="showAdd && !isView"
412
+ class="footer"
395
413
  >
396
414
  <slot
397
- name="remove-button"
398
- :remove="() => remove(row, idx)"
399
- :i="idx"
400
- :row="row"
415
+ v-if="showAdd"
416
+ name="add"
417
+ :add="add"
401
418
  >
402
419
  <button
403
420
  type="button"
404
- :disabled="isView"
405
- class="btn role-link"
406
- :data-testid="`${componentTestid}-remove-item-${idx}`"
407
- :aria-label="t('generic.ariaLabel.remove', {index: idx+1})"
421
+ class="btn role-tertiary add"
422
+ :class="[addClass]"
423
+ :disabled="loading || disableAdd"
424
+ :data-testid="`${componentTestid}-button`"
425
+ :aria-label="_addLabel"
408
426
  role="button"
409
- @click="remove(row, idx)"
427
+ @click="add()"
410
428
  >
411
- {{ _removeLabel }}
429
+ <i
430
+ class="mr-5 icon"
431
+ :class="loading ? ['icon-lg', 'icon-spinner','icon-spin']: [addIcon]"
432
+ />
433
+ {{ _addLabel }}
412
434
  </button>
413
435
  </slot>
414
436
  </div>
415
- <slot
416
- name="value-sub-row"
417
- :row="row"
418
- :mode="mode"
419
- :isView="isView"
420
- />
421
437
  </div>
422
- </template>
423
- <div v-else>
424
- <slot name="empty">
425
- <div
426
- v-if="mode==='view'"
427
- class="text-muted"
428
- >
429
- &mdash;
430
- </div>
431
- </slot>
432
438
  </div>
433
439
  </div>
440
+
434
441
  </div>
435
442
  </template>
436
443
 
@@ -444,13 +451,15 @@ export default {
444
451
  }
445
452
 
446
453
  .box {
447
- display: grid;
448
- grid-template-columns: auto $array-list-remove-margin;
449
- align-items: center;
450
- margin-bottom: 10px;
454
+ // display: grid;
455
+ // grid-template-columns: auto $array-list-remove-margin;
456
+ // align-items: center;
457
+ // margin-bottom: 10px;
458
+ display: flex;
451
459
  .value {
452
- flex: 1;
460
+ // flex: 1;
453
461
  INPUT {
462
+ width: $input-width;
454
463
  height: $input-height;
455
464
  border: solid var(--border-width) var(--input-border);
456
465
  padding: 4px 11px;
@@ -462,9 +471,13 @@ export default {
462
471
  }
463
472
  .remove {
464
473
  text-align: right;
474
+
475
+ button{
476
+ min-width: auto;
477
+ }
465
478
  }
466
479
  .footer {
467
- margin-bottom: 24px;
480
+ margin-bottom: 20px;
468
481
  .protip {
469
482
  float: right;
470
483
  padding: 5px 0;
@@ -481,4 +494,7 @@ export default {
481
494
  margin-bottom: 10px;
482
495
  }
483
496
 
497
+ H3{
498
+ width: 160px;
499
+ }
484
500
  </style>
@@ -146,9 +146,9 @@ export default {
146
146
  </div>
147
147
  </div>
148
148
 
149
- <div class="row mt-20">
149
+ <div class="row">
150
150
  <div
151
- class="col span-6"
151
+ class="span-6"
152
152
  data-testid="input-command-workingDir"
153
153
  >
154
154
  <LabeledInput
@@ -159,13 +159,13 @@ export default {
159
159
  @update:value="update"
160
160
  />
161
161
  </div>
162
- <div class="col span-6">
162
+ <div class="span-6">
163
163
  <div
164
164
  :style="{ 'align-items': 'center' }"
165
165
  class="row"
166
166
  >
167
167
  <div
168
- class="col span-6"
168
+ class="col"
169
169
  data-testid="input-command-stdin"
170
170
  >
171
171
  <LabeledSelect
@@ -191,7 +191,6 @@ export default {
191
191
  </div>
192
192
  </div>
193
193
  </div>
194
- <div class="spacer" />
195
194
  <h3>{{ t('workload.container.titles.env') }}</h3>
196
195
  <EnvVars
197
196
  :mode="mode"
@@ -105,6 +105,7 @@ export default defineComponent({
105
105
  .left {
106
106
  grid-area: left;
107
107
  text-align: left;
108
+ margin-right: 10px;
108
109
 
109
110
  .btn, button {
110
111
  margin: 0 $column-gutter 0 0;
@@ -56,7 +56,6 @@ export default {
56
56
  />
57
57
  </div>
58
58
  </div>
59
- <div class="spacer" />
60
59
 
61
60
  <div>
62
61
  <div class="row">
@@ -70,7 +69,6 @@ export default {
70
69
  />
71
70
  </div>
72
71
  </div>
73
- <div class="spacer" />
74
72
 
75
73
  <div class="row">
76
74
  <Probe
@@ -128,7 +128,7 @@ export default {
128
128
  </div>
129
129
 
130
130
  <template v-if="selectHook === 'exec'">
131
- <div class="mb-20 single-value">
131
+ <div class="col single-value mt-20">
132
132
  <h4>{{ t('workload.container.lifecycleHook.exec.title') }}</h4>
133
133
  <div>
134
134
  <ShellInput
@@ -143,65 +143,61 @@ export default {
143
143
  </template>
144
144
 
145
145
  <template v-if="selectHook === 'httpGet'">
146
- <h4>{{ t('workload.container.lifecycleHook.httpGet.title') }}</h4>
146
+ <div class="mt-20"></div>
147
+ <h4 class="mb-10">{{ t('workload.container.lifecycleHook.httpGet.title') }}</h4>
147
148
  <div class="var-row">
148
- <LabeledInput
149
- v-model:value="value.httpGet.host"
150
- :label="t('workload.container.lifecycleHook.httpGet.host.label')"
151
- :placeholder="t('workload.container.lifecycleHook.httpGet.host.placeholder')"
152
- :mode="mode"
153
- @update:value="update"
154
- />
155
- <LabeledInput
156
- v-model:value="value.httpGet.path"
157
- :label="t('workload.container.lifecycleHook.httpGet.path.label')"
158
- :placeholder="t('workload.container.lifecycleHook.httpGet.path.placeholder')"
159
- :mode="mode"
160
- @update:value="update"
161
- />
162
- <LabeledInput
163
- v-model:value.number="value.httpGet.port"
164
- type="number"
165
- :label="t('workload.container.lifecycleHook.httpGet.port.label')"
166
- :placeholder="t('workload.container.lifecycleHook.httpGet.port.placeholder')"
167
- :mode="mode"
168
- required
169
- @update:value="update"
170
- />
171
- <LabeledSelect
172
- v-model:value="value.httpGet.scheme"
173
- :label="t('workload.container.lifecycleHook.httpGet.scheme.label')"
174
- :placeholder="t('workload.container.lifecycleHook.httpGet.scheme.placeholder')"
175
- :options="schemeOptions"
176
- :mode="mode"
177
- @update:value="update"
178
- />
149
+ <div class="row">
150
+ <div class="col span-6">
151
+ <LabeledInput
152
+ v-model:value="value.httpGet.host"
153
+ :label="t('workload.container.lifecycleHook.httpGet.host.label')"
154
+ :placeholder="t('workload.container.lifecycleHook.httpGet.host.placeholder')"
155
+ :mode="mode"
156
+ @update:value="update"
157
+ />
158
+ </div>
159
+ <div class="col span-6">
160
+ <LabeledInput
161
+ v-model:value="value.httpGet.path"
162
+ :label="t('workload.container.lifecycleHook.httpGet.path.label')"
163
+ :placeholder="t('workload.container.lifecycleHook.httpGet.path.placeholder')"
164
+ :mode="mode"
165
+ @update:value="update"
166
+ />
167
+ </div>
168
+ </div>
169
+ <div class="row">
170
+ <div class="col span-6">
171
+ <LabeledInput
172
+ v-model:value.number="value.httpGet.port"
173
+ type="number"
174
+ :label="t('workload.container.lifecycleHook.httpGet.port.label')"
175
+ :placeholder="t('workload.container.lifecycleHook.httpGet.port.placeholder')"
176
+ :mode="mode"
177
+ required
178
+ @update:value="update"
179
+ />
180
+ </div>
181
+ <div class="col span-6">
182
+ <LabeledSelect
183
+ v-model:value="value.httpGet.scheme"
184
+ :label="t('workload.container.lifecycleHook.httpGet.scheme.label')"
185
+ :placeholder="t('workload.container.lifecycleHook.httpGet.scheme.placeholder')"
186
+ :options="schemeOptions"
187
+ :mode="mode"
188
+ @update:value="update"
189
+ />
190
+ </div>
191
+ </div>
179
192
  </div>
180
193
 
181
- <h4>{{ t('workload.container.lifecycleHook.httpHeaders.title') }}</h4>
194
+ <h4 class="mb-10">{{ t('workload.container.lifecycleHook.httpHeaders.title') }}</h4>
182
195
  <div
183
196
  v-for="(header, index) in value.httpGet.httpHeaders"
184
197
  :key="index"
185
198
  class="var-row"
186
199
  data-testid="hookoption-header-row"
187
200
  >
188
- <LabeledInput
189
- v-model:value="value.httpGet.httpHeaders[index].name"
190
- :label="t('workload.container.lifecycleHook.httpHeaders.name.label')"
191
- :placeholder="t('workload.container.lifecycleHook.httpHeaders.name.placeholder')"
192
- class="single-value"
193
- :mode="mode"
194
- required
195
- @update:value="update"
196
- />
197
- <LabeledInput
198
- v-model:value="value.httpGet.httpHeaders[index].value"
199
- :label="t('workload.container.lifecycleHook.httpHeaders.value.label')"
200
- :placeholder="t('workload.container.lifecycleHook.httpHeaders.value.placeholder')"
201
- class="single-value"
202
- :mode="mode"
203
- @update:value="update"
204
- />
205
201
  <div class="remove">
206
202
  <button
207
203
  v-if="!isView"
@@ -213,18 +209,41 @@ export default {
213
209
  <t k="generic.remove" />
214
210
  </button>
215
211
  </div>
212
+ <div class="row">
213
+ <div class="col span-6">
214
+ <LabeledInput
215
+ v-model:value="value.httpGet.httpHeaders[index].name"
216
+ :label="t('workload.container.lifecycleHook.httpHeaders.name.label')"
217
+ :placeholder="t('workload.container.lifecycleHook.httpHeaders.name.placeholder')"
218
+ class="single-value"
219
+ :mode="mode"
220
+ required
221
+ @update:value="update"
222
+ />
223
+ </div>
224
+ <div class="col span-6">
225
+ <LabeledInput
226
+ v-model:value="value.httpGet.httpHeaders[index].value"
227
+ :label="t('workload.container.lifecycleHook.httpHeaders.value.label')"
228
+ :placeholder="t('workload.container.lifecycleHook.httpHeaders.value.placeholder')"
229
+ class="single-value"
230
+ :mode="mode"
231
+ @update:value="update"
232
+ />
233
+ </div>
234
+ </div>
216
235
  </div>
217
236
 
218
237
  <div>
219
238
  <button
220
239
  v-if="!isView"
221
240
  type="button"
222
- class="btn role-link mb-20"
241
+ class="btn role-link mb-20 httpAdd"
223
242
  :disabled="mode === 'view'"
224
243
  data-testid="hookoption-add-header-button"
225
244
  @click.stop="addHeader"
226
245
  >
227
- Add Header
246
+ 添加HTTP头
228
247
  </button>
229
248
  </div>
230
249
  </template>
@@ -233,11 +252,11 @@ export default {
233
252
 
234
253
  <style lang='scss' scoped>
235
254
  .var-row{
236
- display: grid;
237
- grid-template-columns: 1fr 1fr 1fr 1fr 100px;
238
- grid-column-gap: 20px;
239
- margin-bottom: 20px;
240
- align-items: center;
255
+ // display: grid;
256
+ // grid-template-columns: 1fr 1fr 1fr 1fr 100px;
257
+ // grid-column-gap: 20px;
258
+ // margin-bottom: 20px;
259
+ // align-items: center;
241
260
 
242
261
  .single-value {
243
262
  grid-column: span 2;
@@ -248,6 +267,12 @@ export default {
248
267
  }
249
268
  .remove BUTTON {
250
269
  padding: 0px;
270
+ min-width: auto;
251
271
  }
252
272
  }
273
+ .httpAdd{
274
+ background: var(--accent-btn);
275
+ border: solid 1px var(--primary);
276
+ color: var(--primary);
277
+ }
253
278
  </style>