dashboard-shell-shell 3.0.5-test.6 → 3.0.5-test.60
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.
- package/assets/brand/csp/favicon.png +0 -0
- package/assets/brand/harvester/favicon.png +0 -0
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/icons/demo.css +539 -0
- package/assets/icons/demo.css:Zone.Identifier +0 -0
- package/assets/icons/demo_index.html +1131 -0
- package/assets/icons/demo_index.html:Zone.Identifier +0 -0
- package/assets/icons/iconfont.css +219 -0
- package/assets/icons/iconfont.css:Zone.Identifier +0 -0
- package/assets/icons/iconfont.js +1 -0
- package/assets/icons/iconfont.js:Zone.Identifier +0 -0
- package/assets/icons/iconfont.json +324 -0
- package/assets/icons/iconfont.json:Zone.Identifier +0 -0
- package/assets/icons/iconfont.ttf +0 -0
- package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff +0 -0
- package/assets/icons/iconfont.woff2 +0 -0
- package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
- package/assets/iconsNew/demo.css +539 -0
- package/assets/iconsNew/demo.css:Zone.Identifier +0 -0
- package/assets/iconsNew/demo_index.html +303 -0
- package/assets/iconsNew/demo_index.html:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.css +43 -0
- package/assets/iconsNew/iconfont.css:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.js +1 -0
- package/assets/iconsNew/iconfont.js:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.json +44 -0
- package/assets/iconsNew/iconfont.json:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.ttf +0 -0
- package/assets/iconsNew/iconfont.ttf:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.woff +0 -0
- package/assets/iconsNew/iconfont.woff2 +0 -0
- package/assets/iconsNew/iconfont.woff2:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.woff:Zone.Identifier +0 -0
- package/assets/images/API.svg +3 -0
- package/assets/images/action.svg +6 -0
- package/assets/images/login/password.svg +20 -0
- package/assets/images/login/user.svg +6 -0
- package/assets/images/login-bg.png +0 -0
- package/assets/images/login-left.png +0 -0
- package/assets/images/login-logo.svg +19 -0
- package/assets/images/logo.png +0 -0
- package/assets/images/pl/dark/logo.png +0 -0
- package/assets/images/pl/half-logo.svg +2 -23
- package/assets/images/pl/harvester.png +0 -0
- package/assets/images/pl/logo.png +0 -0
- package/assets/images/promp-yellow.svg +5 -0
- package/assets/images/user.png +0 -0
- package/assets/styles/all.scss +83 -0
- package/assets/styles/app.scss +5 -0
- package/assets/styles/base/_basic.scss +2 -2
- package/assets/styles/base/_helpers.scss +1 -1
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/base/_typography.scss +2 -1
- package/assets/styles/base/_variables.scss +14 -7
- package/assets/styles/fonts/_icons.scss +3 -2
- package/assets/styles/global/_button.scss +44 -26
- package/assets/styles/global/_columns.scss +3 -1
- package/assets/styles/global/_form.scss +46 -13
- package/assets/styles/global/_labeled-input.scss +54 -26
- package/assets/styles/global/_layout.scss +8 -3
- package/assets/styles/global/_select.scss +25 -17
- package/assets/styles/global/_table.scss +7 -1
- package/assets/styles/global/_tooltip.scss +60 -8
- package/assets/styles/themes/_dark.scss +3 -0
- package/assets/styles/themes/_light.scss +69 -46
- package/assets/styles/vendor/vue-select.scss +24 -10
- package/assets/translations/en-us.yaml +92 -4
- package/assets/translations/zh-hans.yaml +656 -206
- package/components/ActionDropdown.vue +2 -1
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +2 -0
- package/components/AppModal.vue +46 -5
- package/components/BrandImage.vue +1 -0
- package/components/ButtonDropdown.vue +28 -4
- package/components/ButtonMultiAction.vue +1 -0
- package/components/ClusterIconMenu.vue +2 -2
- package/components/CodeMirror.vue +26 -10
- package/components/ConsumptionGauge.vue +24 -5
- package/components/ContainerResourceLimit.vue +2 -2
- package/components/CopyToClipboard.vue +15 -0
- package/components/CruResource.vue +12 -10
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +29 -17
- package/components/DotState.vue +84 -0
- package/components/Drawer/Chrome.vue +2 -2
- package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +30 -27
- package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
- package/components/Drawer/ResourceDetailDrawer/index.vue +5 -4
- package/components/ExplorerMembers.vue +28 -4
- package/components/ExplorerProjectsNamespaces.vue +19 -5
- package/components/GlobalRoleBindings.vue +23 -4
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +3 -1
- package/components/HardwareResourceGauge.vue +39 -3
- package/components/IndentedPanel.vue +4 -10
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +28 -2
- package/components/LabelValue.vue +20 -1
- package/components/ModalWithCard.vue +12 -3
- package/components/PodSecurityAdmission.vue +2 -2
- package/components/PromptModal.vue +1 -1
- package/components/PromptRemove.vue +53 -12
- package/components/RelatedResources.vue +3 -0
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
- package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
- package/components/Resource/Detail/Metadata/index.vue +3 -1
- package/components/Resource/Detail/TitleBar/Title.vue +4 -3
- package/components/Resource/Detail/TitleBar/Top.vue +2 -0
- package/components/Resource/Detail/TitleBar/composables.ts +16 -1
- package/components/Resource/Detail/TitleBar/index.vue +125 -27
- package/components/ResourceDetail/Masthead/index.vue +1 -1
- package/components/ResourceDetail/Masthead/latest.vue +1 -1
- package/components/ResourceDetail/Masthead/legacy.vue +183 -39
- package/components/ResourceDetail/legacy.vue +47 -29
- package/components/ResourceList/Masthead.vue +222 -54
- package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
- package/components/ResourceTable.vue +40 -2
- package/components/SideNav.vue +74 -20
- package/components/SingleClusterInfo.vue +2 -1
- package/components/SortableTable/THead.vue +79 -4
- package/components/SortableTable/index.vue +1053 -464
- package/components/SortableTable/paging.js +26 -16
- package/components/SortableTable/selection.js +2 -2
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +53 -30
- package/components/YamlEditor.vue +0 -1
- package/components/auth/Principal.vue +51 -19
- package/components/auth/RoleDetailEdit.vue +69 -14
- package/components/auth/SelectPrincipal.vue +1 -0
- package/components/breadcrumb/index.vue +119 -0
- package/components/form/ArrayList.vue +177 -152
- package/components/form/ArrayListGrouped.vue +13 -3
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/BannerSettings.vue +64 -59
- package/components/form/ChangePassword.vue +5 -5
- package/components/form/ClusterAppearance.vue +4 -3
- package/components/form/ColorInput.vue +32 -8
- package/components/form/Command.vue +4 -5
- package/components/form/Conditions.vue +15 -1
- package/components/form/Footer.vue +12 -8
- package/components/form/HealthCheck.vue +0 -2
- package/components/form/HookOption.vue +87 -58
- package/components/form/InputWithSelect.vue +8 -4
- package/components/form/KeyValue.vue +66 -8
- package/components/form/LabeledSelect.vue +216 -242
- package/components/form/Labels.vue +4 -4
- package/components/form/MatchExpressions.vue +28 -11
- package/components/form/Members/ClusterMembershipEditor.vue +1 -1
- package/components/form/Members/ClusterPermissionsEditor.vue +61 -43
- package/components/form/Members/MembershipEditor.vue +4 -4
- package/components/form/Members/ProjectMembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +76 -21
- package/components/form/Networking.vue +6 -9
- package/components/form/NodeAffinity.vue +29 -28
- package/components/form/Password.vue +16 -7
- package/components/form/PodAffinity.vue +24 -25
- package/components/form/Probe.vue +15 -11
- package/components/form/ProjectMemberEditor.vue +66 -48
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +26 -23
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +38 -35
- package/components/form/ResourceSelector.vue +1 -1
- package/components/form/SecretSelector.vue +24 -23
- package/components/form/Security.vue +1 -3
- package/components/form/Select.vue +12 -3
- package/components/form/ServiceNameSelect.vue +2 -5
- package/components/form/ServicePorts.vue +149 -75
- package/components/form/SimpleSecretSelector.vue +29 -9
- package/components/form/Taints.vue +2 -1
- package/components/form/Tolerations.vue +13 -9
- package/components/form/UnitInput.vue +8 -3
- package/components/form/ValueFromResource.vue +110 -96
- package/components/form/WorkloadPorts.vue +143 -123
- package/components/formatter/BadgeStateFormatter.vue +8 -5
- package/components/formatter/LiveDate.vue +3 -3
- package/components/formatter/WorkloadHealthScale.vue +4 -3
- package/components/nav/Favorite.vue +5 -1
- package/components/nav/Group.vue +139 -99
- package/components/nav/Header.vue +127 -150
- package/components/nav/HeaderPageActionMenu.vue +1 -0
- package/components/nav/NamespaceFilter.vue +34 -36
- package/components/nav/TopLevelMenu.vue +62 -25
- package/components/nav/Type.vue +73 -43
- package/composables/useClickOutside.ts +1 -1
- package/config/menuRouteMap.js +10 -0
- package/config/private-label.js +15 -11
- package/config/product/auth.js +17 -7
- package/config/product/explorer.js +32 -10
- package/config/product/manager.js +28 -17
- package/config/product/settings.js +19 -9
- package/config/product/uiplugins.js +13 -10
- package/config/router/navigation-guards/index.js +61 -3
- package/config/settings.ts +28 -0
- package/config/table-headers.js +3 -2
- package/detail/node.vue +28 -23
- package/dialog/AddCustomBadgeDialog.vue +17 -9
- package/dialog/ForceMachineRemoveDialog.vue +2 -2
- package/dialog/RollbackWorkloadDialog.vue +1 -1
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
- package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
- package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
- package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
- package/edit/configmap.vue +4 -0
- package/edit/logging-flow/index.vue +1 -2
- package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +19 -19
- package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/datadog.vue +19 -19
- package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +14 -14
- package/edit/logging.banzaicloud.io.output/providers/forward.vue +12 -12
- package/edit/logging.banzaicloud.io.output/providers/gcs.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/gelf.vue +6 -6
- package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
- package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +8 -8
- package/edit/logging.banzaicloud.io.output/providers/logdna.vue +17 -17
- package/edit/logging.banzaicloud.io.output/providers/logz.vue +7 -7
- package/edit/logging.banzaicloud.io.output/providers/loki.vue +12 -12
- package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +14 -14
- package/edit/logging.banzaicloud.io.output/providers/redis.vue +6 -6
- package/edit/logging.banzaicloud.io.output/providers/s3.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +13 -13
- package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
- package/edit/logging.banzaicloud.io.output/providers/syslog.vue +54 -54
- package/edit/management.cattle.io.user.vue +17 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
- package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
- package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
- package/edit/namespace.vue +1 -2
- package/edit/networking.k8s.io.ingress/Certificate.vue +14 -5
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
- package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
- package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
- package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
- package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
- package/edit/persistentvolume/index.vue +3 -1
- package/edit/persistentvolumeclaim.vue +2 -0
- package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +1 -1
- package/edit/secret/index.vue +2 -2
- package/edit/service.vue +4 -1
- package/edit/storage.k8s.io.storageclass/index.vue +10 -8
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
- package/edit/token.vue +31 -12
- package/edit/workload/Job.vue +31 -34
- package/edit/workload/Upgrading.vue +5 -5
- package/edit/workload/index.vue +22 -18
- package/edit/workload/storage/Mount.vue +1 -0
- package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
- package/edit/workload/storage/azureDisk.vue +14 -10
- package/edit/workload/storage/azureFile.vue +9 -7
- package/edit/workload/storage/csi/index.vue +6 -9
- package/edit/workload/storage/emptyDir.vue +7 -5
- package/edit/workload/storage/gcePersistentDisk.vue +9 -7
- package/edit/workload/storage/hostPath.vue +7 -5
- package/edit/workload/storage/nfs.vue +8 -6
- package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
- package/edit/workload/storage/secret.vue +9 -6
- package/edit/workload/storage/vsphereVolume.vue +11 -7
- package/initialize/app-extended.js +7 -1
- package/list/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +8 -6
- package/list/management.cattle.io.setting.vue +22 -13
- package/list/management.cattle.io.user.vue +7 -3
- package/list/namespace.vue +3 -0
- package/list/provisioning.cattle.io.cluster.vue +6 -7
- package/mixins/brand.js +17 -0
- package/mixins/create-edit-view/impl.js +10 -0
- package/models/provisioning.cattle.io.cluster.js +19 -18
- package/models/workload.js +2 -2
- package/package.json +1 -1
- package/pages/account/index.vue +93 -58
- package/pages/account/pri.vue +229 -0
- package/pages/auth/login.vue +220 -52
- package/pages/auth/setup.vue +175 -33
- package/pages/c/_cluster/_product/namespaces.vue +5 -5
- package/pages/c/_cluster/auth/roles/index.vue +83 -8
- package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
- package/pages/c/_cluster/explorer/index.vue +2 -1
- package/pages/c/_cluster/explorer/tools/index.vue +6 -6
- package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
- package/pages/c/_cluster/settings/banners.vue +174 -102
- package/pages/c/_cluster/settings/brand.vue +350 -302
- package/pages/c/_cluster/settings/performance.vue +61 -38
- package/pages/home.vue +119 -37
- package/pages/prefs.vue +27 -25
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/plugins/dashboard-store/actions.js +1 -1
- package/plugins/dashboard-store/resource-class.js +28 -27
- package/promptRemove/mixin/roleDeletionCheck.js +2 -2
- package/public/index.html +4 -4
- package/rancher-components/BadgeState/BadgeState.vue +38 -55
- package/rancher-components/Banner/Banner.vue +25 -9
- package/rancher-components/Card/Card.vue +7 -8
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
- package/rancher-components/Form/Radio/RadioButton.vue +35 -11
- package/rancher-components/Form/Radio/RadioGroup.vue +22 -6
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +41 -4
- package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
- package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
- package/rancher-components/RcDropdown/types.ts +1 -0
- package/rancher-components/StringList/StringList.vue +1 -1
- package/scripts/build-pkg.sh +18 -23
- package/scripts/publish-shell.sh +1 -1
- package/static/favicon.ico +0 -0
- package/static/favicon.png +0 -0
- package/static/loading-indicator.html +3 -3
- package/store/i18n.js +6 -2
- package/store/modal.ts +3 -3
- package/store/prefs.js +11 -4
- package/store/type-map.js +30 -2
- package/types/shell/index.d.ts +86 -97
- package/utils/error.js +109 -8
- package/utils/errorTranslate.json +1740 -0
- package/utils/errorTranslateNew.json +39 -0
- package/utils/roleFiltering.js +33 -0
- package/utils/router.js +21 -0
- package/utils/select.js +26 -3
- package/utils/string.js +8 -5
- package/utils/title.ts +1 -1
- package/vue.config.js +1 -1
|
@@ -143,30 +143,46 @@ export default {
|
|
|
143
143
|
return [this.permissionGroup];
|
|
144
144
|
},
|
|
145
145
|
options() {
|
|
146
|
+
|
|
146
147
|
const customRoles = this.customRoles.map((role) => ({
|
|
147
148
|
label: role.nameDisplay,
|
|
148
149
|
description: role.description || role.metadata?.annotations?.[DESCRIPTION] || this.t('members.clusterPermissions.noDescription'),
|
|
149
150
|
value: role.id
|
|
150
151
|
}));
|
|
151
152
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
153
|
+
let optionList = [{
|
|
154
|
+
label: this.t('members.clusterPermissions.cluster-tenant.label'),
|
|
155
|
+
description: this.t('members.clusterPermissions.cluster-tenant.description'),
|
|
156
|
+
value: 'cluster-tenant'
|
|
157
|
+
}];
|
|
158
|
+
|
|
159
|
+
if (sessionStorage.getItem('TOPLEVELPERMISSIONS') === 'superadmin') {
|
|
160
|
+
optionList = [
|
|
161
|
+
{
|
|
162
|
+
label: this.t('members.clusterPermissions.cluster-tenant.label'),
|
|
163
|
+
description: this.t('members.clusterPermissions.cluster-tenant.description'),
|
|
164
|
+
value: 'cluster-tenant'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
label: this.t('members.clusterPermissions.owner.label'),
|
|
168
|
+
description: this.t('members.clusterPermissions.owner.description'),
|
|
169
|
+
value: 'owner'
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
label: this.t('members.clusterPermissions.member.label'),
|
|
173
|
+
description: this.t('members.clusterPermissions.member.description'),
|
|
174
|
+
value: 'member'
|
|
175
|
+
},
|
|
176
|
+
...customRoles,
|
|
177
|
+
{
|
|
178
|
+
label: this.t('members.clusterPermissions.custom.label'),
|
|
179
|
+
description: this.t('members.clusterPermissions.custom.description'),
|
|
180
|
+
value: 'custom'
|
|
181
|
+
}
|
|
182
|
+
];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return optionList
|
|
170
186
|
},
|
|
171
187
|
principal() {
|
|
172
188
|
const principalId = this.principalId.replace(/\//g, '%2F');
|
|
@@ -232,11 +248,10 @@ export default {
|
|
|
232
248
|
v-else
|
|
233
249
|
class="cluster-permissions-editor"
|
|
234
250
|
>
|
|
235
|
-
<div class="row mt-10">
|
|
251
|
+
<div class="row mt-10 mb-20">
|
|
236
252
|
<div class="col span-12">
|
|
237
253
|
<SelectPrincipal
|
|
238
254
|
v-focus
|
|
239
|
-
class="mb-20"
|
|
240
255
|
:mode="mode"
|
|
241
256
|
:retain-selection="true"
|
|
242
257
|
data-testid="cluster-member-select"
|
|
@@ -259,31 +274,34 @@ export default {
|
|
|
259
274
|
</div>
|
|
260
275
|
</template>
|
|
261
276
|
<template v-slot:body>
|
|
262
|
-
<
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
class="custom-permissions ml-20 mt-10"
|
|
270
|
-
:class="{'two-column': useTwoColumnsForCustom}"
|
|
271
|
-
>
|
|
277
|
+
<div style="max-height: 250px; overflow: auto;">
|
|
278
|
+
<RadioGroup
|
|
279
|
+
v-model:value="permissionGroup"
|
|
280
|
+
:options="options"
|
|
281
|
+
:flexDirection="'column'"
|
|
282
|
+
name="permission-group"
|
|
283
|
+
/>
|
|
272
284
|
<div
|
|
273
|
-
v-
|
|
274
|
-
|
|
285
|
+
v-if="permissionGroup === 'custom'"
|
|
286
|
+
class="custom-permissions ml-20 mt-10"
|
|
287
|
+
:class="{'two-column': useTwoColumnsForCustom}"
|
|
275
288
|
>
|
|
276
|
-
<
|
|
277
|
-
v-
|
|
278
|
-
:
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
289
|
+
<div
|
|
290
|
+
v-for="(permission, i) in customPermissionsUpdate"
|
|
291
|
+
:key="i"
|
|
292
|
+
>
|
|
293
|
+
<Checkbox
|
|
294
|
+
v-model:value="permission.value"
|
|
295
|
+
:disabled="permission.locked"
|
|
296
|
+
class="mb-5"
|
|
297
|
+
:label="permission.label"
|
|
298
|
+
/>
|
|
299
|
+
<i
|
|
300
|
+
v-if="permission.locked"
|
|
301
|
+
v-clean-tooltip="permission.tooltip"
|
|
302
|
+
class="icon icon-lock icon-fw"
|
|
303
|
+
/>
|
|
304
|
+
</div>
|
|
287
305
|
</div>
|
|
288
306
|
</div>
|
|
289
307
|
</template>
|
|
@@ -170,7 +170,7 @@ export default {
|
|
|
170
170
|
>
|
|
171
171
|
<template #column-headers>
|
|
172
172
|
<div class="box mb-0">
|
|
173
|
-
<div class="column-headers row">
|
|
173
|
+
<div class="column-headers row" :style="{ width: isView ? '100%' : 'calc(100% - 100px)'}">
|
|
174
174
|
<div class="col span-6">
|
|
175
175
|
<label class="text-label">{{ t('membershipEditor.user') }}</label>
|
|
176
176
|
</div>
|
|
@@ -181,7 +181,7 @@ export default {
|
|
|
181
181
|
</div>
|
|
182
182
|
</template>
|
|
183
183
|
<template #columns="{row, i}">
|
|
184
|
-
<div class="columns row">
|
|
184
|
+
<div style="width: 100%;" class="columns row">
|
|
185
185
|
<div class="col span-6">
|
|
186
186
|
<Principal
|
|
187
187
|
:value="row.value.principalId"
|
|
@@ -191,7 +191,7 @@ export default {
|
|
|
191
191
|
:data-testid="`role-item-${i}`"
|
|
192
192
|
class="col span-6 role"
|
|
193
193
|
>
|
|
194
|
-
{{ row.value.roleDisplay }}
|
|
194
|
+
{{ $store.getters['i18n/withFallback'](`customConversion.${row.value.roleDisplay}`, row.value.roleDisplay) }}
|
|
195
195
|
</div>
|
|
196
196
|
</div>
|
|
197
197
|
</template>
|
|
@@ -206,7 +206,7 @@ export default {
|
|
|
206
206
|
</button>
|
|
207
207
|
</template>
|
|
208
208
|
<template #remove-button="{remove, i}">
|
|
209
|
-
<
|
|
209
|
+
<div style="width: 100px;" v-if="(isCreate && i === 0) || isView" />
|
|
210
210
|
<button
|
|
211
211
|
v-else
|
|
212
212
|
type="button"
|
|
@@ -156,6 +156,10 @@ export default {
|
|
|
156
156
|
type: Boolean,
|
|
157
157
|
default: true,
|
|
158
158
|
},
|
|
159
|
+
isDialog: {
|
|
160
|
+
type: Boolean,
|
|
161
|
+
default: false
|
|
162
|
+
},
|
|
159
163
|
rules: {
|
|
160
164
|
default: () => ({
|
|
161
165
|
namespace: [],
|
|
@@ -172,6 +176,11 @@ export default {
|
|
|
172
176
|
componentTestid: {
|
|
173
177
|
type: String,
|
|
174
178
|
default: 'name-ns-description'
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
extraNamespaceOptions: {
|
|
182
|
+
type: Array,
|
|
183
|
+
default: () => []
|
|
175
184
|
}
|
|
176
185
|
},
|
|
177
186
|
|
|
@@ -252,7 +261,7 @@ export default {
|
|
|
252
261
|
const options = namespaces
|
|
253
262
|
.map((namespace) => ({ nameDisplay: namespace, id: namespace }))
|
|
254
263
|
.map(props.namespaceMapper || ((obj) => ({
|
|
255
|
-
label: obj.nameDisplay,
|
|
264
|
+
label: obj.nameDisplay.replace('harvester', 'cloud'),
|
|
256
265
|
value: obj.id,
|
|
257
266
|
})));
|
|
258
267
|
|
|
@@ -265,6 +274,16 @@ export default {
|
|
|
265
274
|
});
|
|
266
275
|
}
|
|
267
276
|
|
|
277
|
+
if (props.extraNamespaceOptions && props.extraNamespaceOptions.length > 0) {
|
|
278
|
+
props.extraNamespaceOptions.map(item => {
|
|
279
|
+
const objs = {
|
|
280
|
+
label: item,
|
|
281
|
+
value: item,
|
|
282
|
+
}
|
|
283
|
+
sortedByLabel.push(objs);
|
|
284
|
+
})
|
|
285
|
+
}
|
|
286
|
+
|
|
268
287
|
const createButton = {
|
|
269
288
|
label: t('namespace.createNamespace'),
|
|
270
289
|
value: '',
|
|
@@ -276,10 +295,10 @@ export default {
|
|
|
276
295
|
kind: 'divider'
|
|
277
296
|
};
|
|
278
297
|
|
|
279
|
-
const createOverhead = canCreateNamespace.value || props.createNamespaceOverride ? [createButton, divider] : [];
|
|
298
|
+
// const createOverhead = canCreateNamespace.value || props.createNamespaceOverride ? [createButton, divider] : [];
|
|
280
299
|
|
|
281
300
|
return [
|
|
282
|
-
...createOverhead,
|
|
301
|
+
// ...createOverhead,
|
|
283
302
|
...sortedByLabel
|
|
284
303
|
];
|
|
285
304
|
});
|
|
@@ -356,10 +375,11 @@ export default {
|
|
|
356
375
|
|
|
357
376
|
colSpan() {
|
|
358
377
|
if (!this.horizontal) {
|
|
359
|
-
return `span-
|
|
378
|
+
return `span-6`;
|
|
360
379
|
}
|
|
361
380
|
// Name and namespace take up two columns.
|
|
362
|
-
let cols = (this.nameNsHidden ? 0 : 2) + (this.descriptionHidden ? 0 : 1) + this.extraColumns.length;
|
|
381
|
+
// let cols = (this.nameNsHidden ? 0 : 2) + (this.descriptionHidden ? 0 : 1) + this.extraColumns.length;
|
|
382
|
+
let cols = 2;
|
|
363
383
|
|
|
364
384
|
cols = Math.max(2, cols); // If there's only one column, make it render half-width as if there were two
|
|
365
385
|
const span = 12 / cols; // If there's 5, 7, or more columns this will break; don't do that.
|
|
@@ -428,13 +448,18 @@ export default {
|
|
|
428
448
|
</script>
|
|
429
449
|
|
|
430
450
|
<template>
|
|
431
|
-
<div class="row
|
|
432
|
-
|
|
451
|
+
<div class="row">
|
|
452
|
+
|
|
453
|
+
<!-- 命名空间创建输入框 -->
|
|
433
454
|
<div
|
|
434
455
|
v-if="namespaced && !nameNsHidden && createNamespace"
|
|
435
456
|
:data-testid="componentTestid + '-namespace-create'"
|
|
436
|
-
class="col span-
|
|
457
|
+
class="col span-6"
|
|
458
|
+
:class=" isDialog? 'namespace-item-row mb-20': 'col span-6'"
|
|
459
|
+
style="display: flex;"
|
|
437
460
|
>
|
|
461
|
+
|
|
462
|
+
<!-- 输入命名空间名称 -->
|
|
438
463
|
<LabeledInput
|
|
439
464
|
ref="namespaceInput"
|
|
440
465
|
v-model:value="namespace"
|
|
@@ -446,6 +471,8 @@ export default {
|
|
|
446
471
|
:required="nameRequired"
|
|
447
472
|
:rules="rules.namespace"
|
|
448
473
|
/>
|
|
474
|
+
|
|
475
|
+
<!-- 取消创建命名空间按钮 -->
|
|
449
476
|
<button
|
|
450
477
|
:aria-label="t('namespace.cancelCreateAriaLabel')"
|
|
451
478
|
@click="cancelCreateNamespace"
|
|
@@ -456,10 +483,12 @@ export default {
|
|
|
456
483
|
/>
|
|
457
484
|
</button>
|
|
458
485
|
</div>
|
|
486
|
+
|
|
487
|
+
<!-- 命名空间选择下拉框 -->
|
|
459
488
|
<div
|
|
460
489
|
v-if="namespaced && !nameNsHidden && !createNamespace"
|
|
461
490
|
:data-testid="componentTestid + '-namespace'"
|
|
462
|
-
class="col span-
|
|
491
|
+
:class=" isDialog? 'namespace-item-row mb-20': 'col span-6'"
|
|
463
492
|
>
|
|
464
493
|
<LabeledSelect
|
|
465
494
|
v-show="!createNamespace"
|
|
@@ -478,10 +507,11 @@ export default {
|
|
|
478
507
|
/>
|
|
479
508
|
</div>
|
|
480
509
|
|
|
510
|
+
<!-- 名称输入框 -->
|
|
481
511
|
<div
|
|
482
512
|
v-if="!nameHidden && !nameNsHidden"
|
|
483
513
|
:data-testid="componentTestid + '-name'"
|
|
484
|
-
class="col span-
|
|
514
|
+
:class=" isDialog? 'namespace-item-row mb-20': 'col span-6'"
|
|
485
515
|
>
|
|
486
516
|
<LabeledInput
|
|
487
517
|
ref="nameInput"
|
|
@@ -498,11 +528,29 @@ export default {
|
|
|
498
528
|
/>
|
|
499
529
|
</div>
|
|
500
530
|
|
|
531
|
+
<!-- 自定义插槽,可插入额外内容 -->
|
|
501
532
|
<slot name="customize" />
|
|
502
|
-
|
|
533
|
+
|
|
534
|
+
<!-- <div
|
|
503
535
|
v-show="!descriptionHidden"
|
|
504
536
|
:data-testid="componentTestid + '-description'"
|
|
505
537
|
:class="['col', extraColumns.length > 0 ? 'span-3' : 'span-6']"
|
|
538
|
+
> -->
|
|
539
|
+
|
|
540
|
+
<!-- 额外的动态列 -->
|
|
541
|
+
<div
|
|
542
|
+
v-for="(slot, i) in extraColumns"
|
|
543
|
+
:key="i"
|
|
544
|
+
:class="{ col: true, [colSpan]: true }"
|
|
545
|
+
>
|
|
546
|
+
<slot :name="slot" />
|
|
547
|
+
</div>
|
|
548
|
+
|
|
549
|
+
<!-- 描述输入框 -->
|
|
550
|
+
<div
|
|
551
|
+
v-show="!descriptionHidden"
|
|
552
|
+
:data-testid="componentTestid + '-description'"
|
|
553
|
+
:class=" isDialog? 'namespace-item-row mb-20': 'col span-6'"
|
|
506
554
|
>
|
|
507
555
|
<LabeledInput
|
|
508
556
|
key="description"
|
|
@@ -516,13 +564,15 @@ export default {
|
|
|
516
564
|
/>
|
|
517
565
|
</div>
|
|
518
566
|
|
|
567
|
+
<!-- 底部插槽 -->
|
|
519
568
|
<div
|
|
520
|
-
v-
|
|
521
|
-
|
|
522
|
-
:class="{ col: true, [colSpan]: true }"
|
|
569
|
+
v-if="$slots.bottom"
|
|
570
|
+
style="width: 100%;"
|
|
523
571
|
>
|
|
524
|
-
<slot
|
|
572
|
+
<slot name="bottom" />
|
|
525
573
|
</div>
|
|
574
|
+
|
|
575
|
+
<!-- 间隔占位符 -->
|
|
526
576
|
<div
|
|
527
577
|
v-if="showSpacer"
|
|
528
578
|
class="spacer"
|
|
@@ -533,13 +583,8 @@ export default {
|
|
|
533
583
|
<style lang="scss" scoped>
|
|
534
584
|
button {
|
|
535
585
|
all: unset;
|
|
536
|
-
height: 0;
|
|
537
|
-
position: relative;
|
|
538
|
-
top: -35px;
|
|
539
|
-
float: right;
|
|
540
|
-
margin-right: 7px;
|
|
541
|
-
|
|
542
586
|
cursor: pointer;
|
|
587
|
+
margin-left: 10px;
|
|
543
588
|
|
|
544
589
|
.align-value {
|
|
545
590
|
padding-top: 7px;
|
|
@@ -576,4 +621,14 @@ button {
|
|
|
576
621
|
}
|
|
577
622
|
|
|
578
623
|
}
|
|
624
|
+
.namespace-item-row{
|
|
625
|
+
width: 100%;
|
|
626
|
+
margin-bottom: 4px;
|
|
627
|
+
position:relative;
|
|
628
|
+
display: flex;
|
|
629
|
+
}
|
|
630
|
+
.namespace-item-row ::v-deep textarea{
|
|
631
|
+
width: 400px;
|
|
632
|
+
}
|
|
633
|
+
|
|
579
634
|
</style>
|
|
@@ -160,7 +160,7 @@ export default {
|
|
|
160
160
|
<div>
|
|
161
161
|
<div>
|
|
162
162
|
<h3>{{ t('workload.container.titles.networkSettings') }}</h3>
|
|
163
|
-
<div class="row
|
|
163
|
+
<div class="row">
|
|
164
164
|
<div class="col span-6">
|
|
165
165
|
<LabeledSelect
|
|
166
166
|
v-model:value="networkMode"
|
|
@@ -205,12 +205,11 @@ export default {
|
|
|
205
205
|
</div>
|
|
206
206
|
</div>
|
|
207
207
|
</div>
|
|
208
|
-
<div class="spacer" />
|
|
209
208
|
|
|
210
|
-
<div>
|
|
209
|
+
<div class="mt-20">
|
|
211
210
|
<h3>{{ t('workload.networking.dns') }}</h3>
|
|
212
211
|
<div class="row">
|
|
213
|
-
<div class="
|
|
212
|
+
<div class="span-6">
|
|
214
213
|
<ArrayList
|
|
215
214
|
key="dnsNameservers"
|
|
216
215
|
v-model:value="nameservers"
|
|
@@ -222,7 +221,7 @@ export default {
|
|
|
222
221
|
@update:value="update"
|
|
223
222
|
/>
|
|
224
223
|
</div>
|
|
225
|
-
<div class="
|
|
224
|
+
<div class="span-6">
|
|
226
225
|
<ArrayList
|
|
227
226
|
key="dnsSearches"
|
|
228
227
|
v-model:value="searches"
|
|
@@ -236,9 +235,8 @@ export default {
|
|
|
236
235
|
</div>
|
|
237
236
|
</div>
|
|
238
237
|
</div>
|
|
239
|
-
<div class="spacer" />
|
|
240
238
|
|
|
241
|
-
<div
|
|
239
|
+
<div>
|
|
242
240
|
<div class="row">
|
|
243
241
|
<KeyValue
|
|
244
242
|
v-model:value="options"
|
|
@@ -254,9 +252,8 @@ export default {
|
|
|
254
252
|
/>
|
|
255
253
|
</div>
|
|
256
254
|
</div>
|
|
257
|
-
<div class="spacer" />
|
|
258
255
|
|
|
259
|
-
<div class="row mt-
|
|
256
|
+
<div class="row mt-40">
|
|
260
257
|
<div class="col span-12">
|
|
261
258
|
<KeyValue
|
|
262
259
|
key="hostAliases"
|
|
@@ -210,33 +210,31 @@ export default {
|
|
|
210
210
|
@remove="remove"
|
|
211
211
|
>
|
|
212
212
|
<template #default="props">
|
|
213
|
-
<div class="
|
|
214
|
-
<
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
/>
|
|
239
|
-
</div>
|
|
213
|
+
<div class="col">
|
|
214
|
+
<LabeledSelect
|
|
215
|
+
:options="affinityOptions"
|
|
216
|
+
:value="priorityDisplay(props.row.value)"
|
|
217
|
+
:label="t('workload.scheduling.affinity.priority')"
|
|
218
|
+
:mode="mode"
|
|
219
|
+
:data-testid="`node-affinity-priority-index${props.i}`"
|
|
220
|
+
@update:value="(changePriority(props.row.value))"
|
|
221
|
+
/>
|
|
222
|
+
</div>
|
|
223
|
+
<div
|
|
224
|
+
v-if="'weight' in props.row.value"
|
|
225
|
+
class="col"
|
|
226
|
+
>
|
|
227
|
+
<LabeledInput
|
|
228
|
+
v-model:value.number="props.row.value.weight"
|
|
229
|
+
:mode="mode"
|
|
230
|
+
type="number"
|
|
231
|
+
min="1"
|
|
232
|
+
max="100"
|
|
233
|
+
:label="t('workload.scheduling.affinity.weight.label')"
|
|
234
|
+
:placeholder="t('workload.scheduling.affinity.weight.placeholder')"
|
|
235
|
+
:data-testid="`node-affinity-weight-index${props.i}`"
|
|
236
|
+
@update:value="update"
|
|
237
|
+
/>
|
|
240
238
|
</div>
|
|
241
239
|
<MatchExpressions
|
|
242
240
|
:value="matchingSelectorDisplay ? props.row.value : props.row.value.matchExpressions"
|
|
@@ -254,5 +252,8 @@ export default {
|
|
|
254
252
|
</div>
|
|
255
253
|
</template>
|
|
256
254
|
|
|
257
|
-
<style>
|
|
255
|
+
<style lang="scss" scoped>
|
|
256
|
+
.weight_input{
|
|
257
|
+
margin-left: 10px;
|
|
258
|
+
}
|
|
258
259
|
</style>
|
|
@@ -41,6 +41,10 @@ export default {
|
|
|
41
41
|
mode: {
|
|
42
42
|
type: String,
|
|
43
43
|
default: _CREATE,
|
|
44
|
+
},
|
|
45
|
+
placeholder: {
|
|
46
|
+
type: String,
|
|
47
|
+
default: '',
|
|
44
48
|
}
|
|
45
49
|
},
|
|
46
50
|
data() {
|
|
@@ -116,6 +120,7 @@ export default {
|
|
|
116
120
|
:disabled="isRandom"
|
|
117
121
|
:ignore-password-managers="ignorePasswordManagers"
|
|
118
122
|
:mode="mode"
|
|
123
|
+
:placeholder="placeholder"
|
|
119
124
|
@blur="$emit('blur', $event)"
|
|
120
125
|
>
|
|
121
126
|
<template #suffix>
|
|
@@ -148,12 +153,13 @@ export default {
|
|
|
148
153
|
</LabeledInput>
|
|
149
154
|
<div
|
|
150
155
|
v-if="isRandom"
|
|
151
|
-
class="
|
|
156
|
+
class="genPassword"
|
|
152
157
|
>
|
|
153
158
|
<a
|
|
154
159
|
href="#"
|
|
155
160
|
@click.prevent.stop="generatePassword"
|
|
156
|
-
|
|
161
|
+
style="height: 32px;display: flex;align-items: center;"
|
|
162
|
+
><i class="icon icon-refresh mr-5 pl-5" /> {{ t('changePassword.newGeneratedPassword') }}</a>
|
|
157
163
|
</div>
|
|
158
164
|
</div>
|
|
159
165
|
</template>
|
|
@@ -161,20 +167,23 @@ export default {
|
|
|
161
167
|
<style lang="scss" scoped>
|
|
162
168
|
.password {
|
|
163
169
|
display: flex;
|
|
164
|
-
flex-direction: column;
|
|
170
|
+
/* flex-direction: column; */
|
|
165
171
|
|
|
166
172
|
.labeled-input {
|
|
167
173
|
.addon {
|
|
168
|
-
|
|
174
|
+
position: absolute;
|
|
175
|
+
top: 6px;
|
|
176
|
+
right: 6px;
|
|
177
|
+
/* display: flex;
|
|
169
178
|
align-items: center;
|
|
170
179
|
justify-content: center;
|
|
171
180
|
padding-left: 12px;
|
|
172
|
-
min-width: 65px;
|
|
181
|
+
min-width: 65px; */
|
|
173
182
|
|
|
174
|
-
.hide-show:focus-visible {
|
|
183
|
+
/* .hide-show:focus-visible {
|
|
175
184
|
@include focus-outline;
|
|
176
185
|
outline-offset: 4px;
|
|
177
|
-
}
|
|
186
|
+
} */
|
|
178
187
|
}
|
|
179
188
|
}
|
|
180
189
|
.genPassword {
|
|
@@ -364,36 +364,33 @@ export default {
|
|
|
364
364
|
<div class="col span-12">
|
|
365
365
|
<ArrayListGrouped
|
|
366
366
|
v-model:value="allSelectorTerms"
|
|
367
|
-
class="mt-20"
|
|
368
367
|
:default-add-value="defaultAddValue"
|
|
369
368
|
:mode="mode"
|
|
370
369
|
:add-label="addLabel"
|
|
371
370
|
@remove="remove"
|
|
372
371
|
>
|
|
373
372
|
<template #default="props">
|
|
374
|
-
<div class="
|
|
375
|
-
<
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
/>
|
|
384
|
-
</div>
|
|
385
|
-
<div class="col span-6">
|
|
386
|
-
<LabeledSelect
|
|
387
|
-
:mode="mode"
|
|
388
|
-
:options="[t('workload.scheduling.affinity.preferred'),t('workload.scheduling.affinity.required')]"
|
|
389
|
-
:value="priorityDisplay(props.row.value)"
|
|
390
|
-
:label="t('workload.scheduling.affinity.priority')"
|
|
391
|
-
:data-testid="`pod-affinity-priority-index${props.i}`"
|
|
392
|
-
@update:value="changePriority(props.row.value, props.i)"
|
|
393
|
-
/>
|
|
394
|
-
</div>
|
|
373
|
+
<div class="col">
|
|
374
|
+
<LabeledSelect
|
|
375
|
+
:mode="mode"
|
|
376
|
+
:options="[t('workload.scheduling.affinity.affinityOption'),t('workload.scheduling.affinity.antiAffinityOption')]"
|
|
377
|
+
:value="props.row.value._anti ?t('workload.scheduling.affinity.antiAffinityOption') :t('workload.scheduling.affinity.affinityOption') "
|
|
378
|
+
:label="t('workload.scheduling.affinity.type')"
|
|
379
|
+
:data-testid="`pod-affinity-type-index${props.i}`"
|
|
380
|
+
@update:value="props.row.value._anti = !props.row.value._anti"
|
|
381
|
+
/>
|
|
395
382
|
</div>
|
|
396
|
-
<div class="
|
|
383
|
+
<div class="col">
|
|
384
|
+
<LabeledSelect
|
|
385
|
+
:mode="mode"
|
|
386
|
+
:options="[t('workload.scheduling.affinity.preferred'),t('workload.scheduling.affinity.required')]"
|
|
387
|
+
:value="priorityDisplay(props.row.value)"
|
|
388
|
+
:label="t('workload.scheduling.affinity.priority')"
|
|
389
|
+
:data-testid="`pod-affinity-priority-index${props.i}`"
|
|
390
|
+
@update:value="changePriority(props.row.value, props.i)"
|
|
391
|
+
/>
|
|
392
|
+
</div>
|
|
393
|
+
<div class="row mb-20">
|
|
397
394
|
<RadioGroup
|
|
398
395
|
:options="namespaceSelectionOptions"
|
|
399
396
|
:labels="namespaceSelectionLabels"
|
|
@@ -439,7 +436,7 @@ export default {
|
|
|
439
436
|
@update:value="e=>updateLabelSelector(e, props)"
|
|
440
437
|
/>
|
|
441
438
|
<div class="row mt-20">
|
|
442
|
-
<div class="col
|
|
439
|
+
<div class="col">
|
|
443
440
|
<LabeledSelect
|
|
444
441
|
v-if="hasNodes"
|
|
445
442
|
v-model:value="props.row.value.topologyKey"
|
|
@@ -467,9 +464,11 @@ export default {
|
|
|
467
464
|
@update:value="update"
|
|
468
465
|
/>
|
|
469
466
|
</div>
|
|
467
|
+
</div>
|
|
468
|
+
<div class="row">
|
|
470
469
|
<div
|
|
471
470
|
v-if="'weight' in props.row.value"
|
|
472
|
-
class="col
|
|
471
|
+
class="col"
|
|
473
472
|
>
|
|
474
473
|
<LabeledInput
|
|
475
474
|
v-model:value.number="props.row.value.weight"
|