dashboard-shell-shell 1.0.122 → 1.0.1000000082
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/.DS_Store +0 -0
- package/assets/brand/harvester/favicon.png +0 -0
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/icons/iconfont.css +19 -3
- package/assets/icons/iconfont.js +1 -1
- package/assets/icons/iconfont.json +28 -0
- package/assets/icons/iconfont.ttf +0 -0
- package/assets/icons/iconfont.woff +0 -0
- package/assets/icons/iconfont.woff2 +0 -0
- package/assets/images/pl/half-logo.svg +2 -23
- package/assets/styles/base/_functions.scss +0 -0
- package/assets/styles/base/_mixins.scss +0 -0
- package/assets/styles/base/_variables.scss +1 -1
- package/assets/styles/global/_labeled-input.scss +0 -1
- package/assets/styles/global/_layout.scss +1 -1
- package/assets/styles/global/_select.scss +4 -2
- package/assets/styles/global/_table.scss +5 -0
- package/assets/styles/vendor/vue-select.scss +2 -1
- package/assets/translations/en-us.yaml +1 -1
- package/assets/translations/zh-hans.yaml +25 -15
- package/chart/monitoring/index.vue +3 -1
- package/chart/monitoring/prometheus/index.vue +13 -10
- package/cloud-credential/aws.vue +2 -0
- package/components/ActionDropdown.vue +1 -1
- package/components/ActionDropdownShell.vue +71 -0
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +3 -0
- package/components/AppModal.vue +84 -8
- package/components/AssignTo.vue +25 -11
- package/components/AsyncButton.vue +24 -7
- package/components/BannerGraphic.vue +1 -0
- package/components/ButtonDropdown.vue +26 -4
- package/components/ButtonGroup.vue +4 -0
- package/components/ButtonMultiAction.vue +1 -0
- package/components/CodeMirror.vue +19 -6
- package/components/CommunityLinks.vue +3 -3
- package/components/ConsumptionGauge.vue +24 -5
- package/components/CopyToClipboardText.vue +2 -1
- package/components/CruResource.vue +13 -7
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +29 -17
- package/components/DetailText.vue +5 -0
- package/components/DisableAuthProviderModal.vue +1 -0
- package/components/DotState.vue +84 -0
- package/components/ExplorerMembers.vue +1 -1
- package/components/ExplorerProjectsNamespaces.vue +88 -16
- package/components/FixedBanner.vue +19 -12
- package/components/GlobalRoleBindings.vue +5 -1
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +4 -1
- package/components/HardwareResourceGauge.vue +39 -3
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +28 -2
- package/components/LabelValue.vue +20 -1
- package/components/LandingPagePreference.vue +5 -3
- package/components/LocaleSelector.vue +39 -93
- package/components/ModalManager.vue +55 -0
- package/components/ModalWithCard.vue +13 -3
- package/components/MoveModal.vue +1 -0
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/PromptChangePassword.vue +1 -1
- package/components/PromptModal.vue +16 -3
- package/components/PromptRemove.vue +29 -9
- package/components/PromptRestore.vue +1 -0
- package/components/ResourceCancelModal.vue +1 -0
- package/components/ResourceDetail/Masthead.vue +52 -17
- package/components/ResourceDetail/__tests__/Masthead.test.ts +5 -1
- package/components/ResourceDetail/index.vue +54 -16
- package/components/ResourceList/Masthead.vue +26 -4
- package/components/ResourceList/index.vue +4 -3
- package/components/ResourceTable.vue +1 -0
- package/components/SideNav.vue +20 -15
- package/components/SlideInPanelManager.vue +126 -0
- package/components/SortableTable/THead.vue +10 -4
- package/components/SortableTable/actions.js +1 -1
- package/components/SortableTable/index.vue +542 -553
- package/components/SortableTable/selection.js +2 -13
- package/components/StatusBadge.vue +77 -0
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +47 -29
- package/components/Wizard.vue +2 -2
- package/components/YamlEditor.vue +1 -1
- package/components/__tests__/AsyncButton.test.ts +2 -2
- package/components/__tests__/FixedBanner.test.ts +3 -3
- package/components/__tests__/ModalManager.spec.ts +176 -0
- package/components/__tests__/SlideInPanelManager.spec.ts +166 -0
- package/components/auth/Principal.vue +10 -3
- package/components/auth/RoleDetailEdit.vue +1 -1
- package/components/auth/__tests__/RoleDetailEdit.test.ts +3 -2
- package/components/form/ArrayList.vue +123 -85
- package/components/form/ArrayListGrouped.vue +10 -2
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/Command.vue +6 -15
- package/components/form/EnvVars.vue +16 -8
- package/components/form/Footer.vue +10 -7
- package/components/form/HealthCheck.vue +3 -3
- package/components/form/HookOption.vue +11 -16
- package/components/form/InputWithSelect.vue +6 -5
- package/components/form/KeyValue.vue +39 -10
- package/components/form/LabeledSelect.vue +73 -77
- package/components/form/Labels.vue +6 -3
- package/components/form/LifecycleHooks.vue +3 -3
- package/components/form/MatchExpressions.vue +42 -17
- package/components/form/NameNsDescription.vue +163 -116
- package/components/form/Networking.vue +20 -12
- package/components/form/NodeAffinity.vue +31 -23
- package/components/form/NodeScheduling.vue +13 -3
- package/components/form/Password.vue +11 -5
- package/components/form/PodAffinity.vue +47 -48
- package/components/form/Probe.vue +68 -66
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +5 -7
- package/components/form/ResourceQuota/Project.vue +9 -5
- package/components/form/ResourceQuota/ProjectRow.vue +4 -6
- package/components/form/ResourceSelector.vue +7 -9
- package/components/form/SSHKnownHosts/KnownHostsEditDialog.vue +6 -3
- package/components/form/SSHKnownHosts/__tests__/KnownHostsEditDialog.test.ts +12 -1
- package/components/form/SSHKnownHosts/index.vue +16 -2
- package/components/form/Security.vue +54 -56
- package/components/form/Select.vue +44 -7
- package/components/form/ShellInput.vue +5 -1
- package/components/form/SimpleSecretSelector.vue +29 -9
- package/components/form/Tolerations.vue +5 -1
- package/components/form/UnitInput.vue +10 -5
- package/components/form/ValueFromResource.vue +134 -121
- package/components/form/WorkloadPorts.vue +18 -18
- package/components/form/__tests__/ArrayList.test.ts +5 -2
- package/components/form/__tests__/MatchExpressions.test.ts +12 -12
- package/components/form/__tests__/NameNsDescription.test.ts +115 -14
- package/components/form/__tests__/Probe.test.ts +12 -8
- package/components/form/__tests__/SSHKnownHosts.test.ts +11 -0
- package/components/form/__tests__/Select.test.ts +37 -0
- package/components/form/__tests__/UnitInput.test.ts +4 -5
- package/components/formatter/BadgeStateFormatter.vue +8 -5
- package/components/formatter/InternalExternalIP.vue +2 -0
- package/components/formatter/LiveDate.vue +3 -3
- package/components/formatter/SecretData.vue +20 -7
- package/components/nav/Favorite.vue +5 -1
- package/components/nav/Group.vue +18 -4
- package/components/nav/Header.vue +39 -13
- package/components/nav/Jump.vue +7 -0
- package/components/nav/NamespaceFilter.vue +21 -11
- package/components/nav/Pinned.vue +1 -1
- package/components/nav/TopLevelMenu.vue +5 -17
- package/components/nav/Type.vue +30 -33
- package/components/nav/__tests__/TopLevelMenu.test.ts +0 -40
- package/components/rancherResourceDetail/Masthead.vue +769 -0
- package/components/rancherResourceDetail/__tests__/Masthead.test.ts +65 -0
- package/components/rancherResourceDetail/index.vue +591 -0
- package/components/rancherResourceList/Masthead-btn.vue +225 -0
- package/components/rancherResourceList/Masthead.vue +375 -0
- package/components/rancherResourceList/ResourceLoadingIndicator.vue +140 -0
- package/components/rancherResourceList/index.vue +307 -0
- package/components/rancherResourceList/resource-list.config.js +7 -0
- package/components/rancherResourceTable.vue +783 -0
- package/components/rancherSortableTable/THead.vue +561 -0
- package/components/rancherSortableTable/actions.js +153 -0
- package/components/rancherSortableTable/advanced-filtering.js +272 -0
- package/components/rancherSortableTable/debug.js +117 -0
- package/components/rancherSortableTable/filtering.js +290 -0
- package/components/rancherSortableTable/grouping.js +48 -0
- package/components/rancherSortableTable/index.vue +2712 -0
- package/components/rancherSortableTable/paging.js +155 -0
- package/components/rancherSortableTable/selection.js +629 -0
- package/components/rancherSortableTable/sortable-config.ts +4 -0
- package/components/rancherSortableTable/sorting.js +129 -0
- package/components/templates/blank.vue +4 -1
- package/components/templates/default.vue +8 -0
- package/components/templates/home.vue +10 -1
- package/components/templates/plain.vue +10 -1
- package/composables/focusTrap.ts +11 -3
- package/composables/useRuntimeFlag.ts +29 -0
- package/config/private-label.js +15 -10
- package/config/router/routes.js +21 -13
- package/config/store.js +4 -0
- package/config/table-headers.js +3 -2
- package/config/uiplugins.js +5 -1
- package/core/plugin-routes.ts +5 -115
- package/core/plugins.js +1 -1
- package/core/types.ts +23 -2
- package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +84 -23
- package/detail/autoscaling.horizontalpodautoscaler/index.vue +13 -3
- package/detail/provisioning.cattle.io.cluster.vue +72 -6
- package/dialog/AddCustomBadgeDialog.vue +1 -0
- package/dialog/DeactivateDriverDialog.vue +5 -4
- package/dialog/ForceMachineRemoveDialog.vue +6 -3
- package/dialog/GitRepoForceUpdateDialog.vue +1 -1
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +16 -3
- package/edit/auth/__tests__/oidc.test.ts +162 -88
- package/edit/auth/azuread.vue +2 -1
- package/edit/auth/github.vue +1 -1
- package/edit/auth/googleoauth.vue +5 -1
- package/edit/auth/ldap/__tests__/config.test.ts +0 -14
- package/edit/auth/ldap/config.vue +0 -24
- package/edit/auth/ldap/index.vue +1 -1
- package/edit/auth/oidc.vue +39 -6
- package/edit/auth/saml.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +5 -2
- package/edit/cloudcredential.vue +24 -9
- package/edit/fleet.cattle.io.clustergroup.vue +5 -3
- package/edit/fleet.cattle.io.gitrepo.vue +2 -0
- package/edit/logging-flow/Match.vue +1 -1
- package/edit/logging.banzaicloud.io.output/__tests__/logging.banzaicloud.io.output.test.ts +40 -9
- package/edit/management.cattle.io.user.vue +28 -3
- 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/auth.vue +29 -29
- 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/IngressClass.vue +7 -3
- package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
- package/edit/networking.k8s.io.ingress/__tests__/IngressClass.test.ts +58 -0
- package/edit/persistentvolume/__tests__/persistentvolume.test.ts +14 -2
- package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +4 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +26 -9
- package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +8 -10
- package/edit/provisioning.cattle.io.cluster/rke2.vue +31 -40
- package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +5 -2
- package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +6 -1
- package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +33 -2
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +3 -3
- package/edit/service.vue +0 -3
- package/edit/token.vue +32 -11
- package/edit/workload/Job.vue +6 -6
- package/edit/workload/__tests__/Job.test.ts +0 -1
- package/edit/workload/index.vue +1 -0
- package/edit/workload/mixins/workload.js +3 -3
- package/initialize/install-plugins.js +2 -1
- package/list/harvesterhci.io.management.cluster.vue +4 -1
- package/list/management.cattle.io.feature.vue +1 -0
- package/list/namespace.vue +3 -1
- package/list/provisioning.cattle.io.cluster.vue +20 -12
- package/list/workload.vue +7 -6
- package/machine-config/__tests__/vmwarevsphere.test.ts +48 -3
- package/machine-config/azure.vue +16 -4
- package/machine-config/vmwarevsphere.vue +16 -0
- package/mixins/resource-fetch.js +2 -1
- package/models/__tests__/logging.banzaicloud.io.flow.test.ts +88 -0
- package/models/__tests__/namespace.test.ts +25 -1
- package/models/cloudcredential.js +5 -0
- package/models/kontainerdriver.js +6 -3
- package/models/logging.banzaicloud.io.flow.js +2 -1
- package/models/management.cattle.io.node.js +3 -3
- package/models/management.cattle.io.setting.js +2 -1
- package/models/namespace.js +4 -5
- package/models/nodedriver.js +6 -3
- package/models/storage.k8s.io.storageclass.js +2 -2
- package/models/workload.js +4 -1
- package/package.json +1 -1
- package/pages/about.vue +16 -8
- package/pages/account/index.vue +80 -24
- package/pages/account/pri.vue +229 -0
- package/pages/auth/login.vue +195 -44
- package/pages/auth/logout.vue +4 -1
- package/pages/auth/setup.vue +144 -19
- package/pages/auth/verify.vue +13 -8
- package/pages/auth copy/login.vue +595 -0
- package/pages/auth copy/logout.vue +47 -0
- package/pages/auth copy/setup.vue +523 -0
- package/pages/auth copy/verify.vue +203 -0
- package/pages/c/_cluster/_product/namespaces.vue +5 -5
- package/pages/c/_cluster/apps/charts/chart.vue +1 -1
- package/pages/c/_cluster/apps/charts/install.vue +26 -26
- package/pages/c/_cluster/auth/config/index.vue +10 -12
- package/pages/c/_cluster/explorer/EventsTable.vue +38 -33
- package/pages/c/_cluster/explorer/index.vue +17 -15
- package/pages/c/_cluster/istio/index.vue +2 -2
- package/pages/c/_cluster/longhorn/index.vue +1 -1
- package/pages/c/_cluster/monitoring/index.vue +1 -1
- package/pages/c/_cluster/monitoring/monitor/_namespace/_id.vue +4 -2
- package/pages/c/_cluster/monitoring/monitor/create.vue +4 -2
- package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
- package/pages/c/_cluster/monitoring/route-receiver/_id.vue +4 -2
- package/pages/c/_cluster/monitoring/route-receiver/create.vue +5 -2
- package/pages/c/_cluster/neuvector/index.vue +1 -1
- package/pages/c/_cluster/settings/brand.vue +3 -3
- package/pages/c/_cluster/uiplugins/CatalogList/index.vue +8 -10
- package/pages/diagnostic.vue +59 -11
- package/pages/fail-whale.vue +14 -8
- package/pages/home.vue +24 -18
- package/pages/prefs.vue +9 -7
- package/pages/support/index.vue +4 -1
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/plugins/dashboard-store/normalize.js +3 -1
- package/plugins/dashboard-store/resource-class.js +31 -29
- package/plugins/internal-api/index.ts +37 -0
- package/plugins/internal-api/shared/base-api.ts +13 -0
- package/plugins/internal-api/shell/shell.api.ts +108 -0
- package/promptRemove/management.cattle.io.fleetworkspace.vue +1 -1
- package/promptRemove/management.cattle.io.globalrole.vue +1 -1
- package/promptRemove/management.cattle.io.project.vue +2 -2
- package/promptRemove/management.cattle.io.roletemplate.vue +1 -1
- package/promptRemove/pod.vue +1 -1
- package/public/index.html +2 -1
- package/rancher-components/BadgeState/BadgeState.vue +5 -1
- package/rancher-components/Banner/Banner.vue +8 -2
- package/rancher-components/Card/Card.vue +3 -6
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +5 -2
- package/rancher-components/Form/Radio/RadioButton.vue +3 -3
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +1 -5
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
- package/rancher-components/RcDropdown/RcDropdownItem.vue +1 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +7 -3
- package/rancher-components/RcDropdown/types.ts +1 -0
- package/scripts/clean +0 -0
- package/scripts/extension/bundle +20 -0
- package/scripts/extension/helm/charts/ui-plugin-server/templates/_helpers.tpl +2 -2
- package/scripts/extension/helm/charts/ui-plugin-server/templates/cr.yaml +2 -1
- package/scripts/extension/helm/charts/ui-plugin-server/values.yaml +2 -0
- package/scripts/extension/helm/scripts/package +0 -0
- package/scripts/extension/helm/scripts/patch +0 -0
- package/scripts/extension/helm/scripts/version +0 -0
- package/scripts/extension/helmpatch +44 -31
- package/scripts/extension/parse-tag-name +0 -0
- package/scripts/extension/publish +12 -12
- package/scripts/publish-shell.sh +18 -23
- package/scripts/serve-pkgs +0 -0
- package/scripts/sync-shell-deps +0 -0
- package/scripts/test-plugins-build.sh +4 -6
- package/scripts/typegen.sh +28 -46
- package/server/har-file.js +25 -3
- package/static/favicon.ico +0 -0
- package/static/favicon.png +0 -0
- package/static/loading-indicator.html +2 -2
- package/store/aws.js +9 -2
- package/store/features.js +2 -1
- package/store/i18n.js +3 -3
- package/store/modal.ts +71 -0
- package/store/slideInPanel.ts +47 -0
- package/store/type-map.js +9 -1
- package/types/cloud-shell/index.d.ts +11020 -0
- package/types/global-vue.d.ts +5 -0
- package/types/internal-api/shell/growl.d.ts +25 -0
- package/types/internal-api/shell/modal.d.ts +77 -0
- package/types/internal-api/shell/slideIn.d.ts +15 -0
- package/types/shell/index.d.ts +118 -128
- package/types/vue-shim.d.ts +4 -1
- package/utils/__tests__/object.test.ts +38 -4
- package/utils/__tests__/string.test.ts +2 -2
- package/utils/auth.js +1 -0
- package/utils/banners.js +0 -45
- package/utils/cluster.js +35 -0
- package/utils/color.js +9 -8
- package/utils/error.js +61 -3
- package/utils/errorTranslate.json +450 -30
- package/utils/object.js +46 -6
- package/utils/router.js +22 -1
- package/utils/select.js +26 -3
- package/utils/string.js +9 -8
- package/utils/title.ts +1 -1
- package/utils/validators/machine-pool.ts +20 -0
- package/vue.config.js +7 -2
- package/components/formatter/ExtensionCache.vue +0 -74
- package/components/formatter/Port.vue +0 -24
- package/components/formatter/SecretType.vue +0 -41
- package/types/resources/fleet.d.ts +0 -57
- package/types/resources/pod-security-admission.ts +0 -36
- package/types/resources/settings.d.ts +0 -93
- package/types/resources/userPreferences.d.ts +0 -13
- package/types/vue-shim.d +0 -20
package/edit/cloudcredential.vue
CHANGED
|
@@ -100,6 +100,30 @@ export default {
|
|
|
100
100
|
computed: {
|
|
101
101
|
rke2Enabled: mapFeature(RKE2_FEATURE),
|
|
102
102
|
|
|
103
|
+
hasCustomCloudCredentialComponent() {
|
|
104
|
+
const driverName = this.driverName;
|
|
105
|
+
|
|
106
|
+
return this.$store.getters['type-map/hasCustomCloudCredentialComponent'](driverName);
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
cloudCredentialComponent() {
|
|
110
|
+
const driverName = this.driverName;
|
|
111
|
+
|
|
112
|
+
return this.$store.getters['type-map/importCloudCredential'](driverName);
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
genericCloudCredentialComponent() {
|
|
116
|
+
return this.$store.getters['type-map/importCloudCredential']('generic');
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
cloudComponent() {
|
|
120
|
+
if (this.hasCustomCloudCredentialComponent) {
|
|
121
|
+
return this.cloudCredentialComponent;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return this.genericCloudCredentialComponent;
|
|
125
|
+
},
|
|
126
|
+
|
|
103
127
|
validationPassed() {
|
|
104
128
|
return this.credCustomComponentValidation && this.nameRequiredValidation;
|
|
105
129
|
},
|
|
@@ -112,14 +136,6 @@ export default {
|
|
|
112
136
|
return this.value?.provider;
|
|
113
137
|
},
|
|
114
138
|
|
|
115
|
-
cloudComponent() {
|
|
116
|
-
if (this.$store.getters['type-map/hasCustomCloudCredentialComponent'](this.driverName)) {
|
|
117
|
-
return this.$store.getters['type-map/importCloudCredential'](this.driverName);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return this.$store.getters['type-map/importCloudCredential']('generic');
|
|
121
|
-
},
|
|
122
|
-
|
|
123
139
|
// array of id, label, description, initials for type selection step
|
|
124
140
|
secretSubTypes() {
|
|
125
141
|
const out = [];
|
|
@@ -194,7 +210,6 @@ export default {
|
|
|
194
210
|
},
|
|
195
211
|
|
|
196
212
|
methods: {
|
|
197
|
-
|
|
198
213
|
createValidationChanged(passed) {
|
|
199
214
|
this.credCustomComponentValidation = passed;
|
|
200
215
|
},
|
|
@@ -149,14 +149,16 @@ export default {
|
|
|
149
149
|
:namespace-type="FLEET_WORKSPACE"
|
|
150
150
|
@update:value="$emit('input', $event)"
|
|
151
151
|
/>
|
|
152
|
-
|
|
153
|
-
<h2 v-t="'fleet.clusterGroup.selector.label'" />
|
|
154
152
|
<MatchExpressions
|
|
155
153
|
:mode="mode"
|
|
156
154
|
:value="expressions"
|
|
157
155
|
:show-remove="false"
|
|
158
156
|
@update:value="matchChanged($event)"
|
|
159
|
-
|
|
157
|
+
>
|
|
158
|
+
<template #header>
|
|
159
|
+
<h2 v-t="'fleet.clusterGroup.selector.label'" />
|
|
160
|
+
</template>
|
|
161
|
+
</MatchExpressions>
|
|
160
162
|
<Banner
|
|
161
163
|
v-if="matchingClusters"
|
|
162
164
|
:color="(matchingClusters.isNone || matchingClusters.isAll ? 'warning' : 'success')"
|
|
@@ -103,6 +103,7 @@ export default {
|
|
|
103
103
|
if (!pollingInterval) {
|
|
104
104
|
if (this.realMode === _CREATE) {
|
|
105
105
|
pollingInterval = DEFAULT_POLLING_INTERVAL;
|
|
106
|
+
this.value.spec.pollingInterval = this.durationSeconds(pollingInterval);
|
|
106
107
|
} else if (this.realMode === _EDIT || this.realMode === _VIEW) {
|
|
107
108
|
pollingInterval = MINIMUM_POLLING_INTERVAL;
|
|
108
109
|
}
|
|
@@ -658,6 +659,7 @@ export default {
|
|
|
658
659
|
:initial-empty-row="false"
|
|
659
660
|
:value-placeholder="t('fleet.gitRepo.paths.placeholder')"
|
|
660
661
|
:add-label="t('fleet.gitRepo.paths.addLabel')"
|
|
662
|
+
:a11y-label="t('fleet.gitRepo.paths.ariaLabel')"
|
|
661
663
|
:add-icon="'icon-plus'"
|
|
662
664
|
:protip="t('fleet.gitRepo.paths.empty')"
|
|
663
665
|
/>
|
|
@@ -124,7 +124,7 @@ export default {
|
|
|
124
124
|
<div class="row">
|
|
125
125
|
<div class="col span-12">
|
|
126
126
|
<Select
|
|
127
|
-
v-model="value.namespaces"
|
|
127
|
+
v-model:value="value.namespaces"
|
|
128
128
|
class="lg"
|
|
129
129
|
:options="namespaces"
|
|
130
130
|
:placeholder="t('logging.flow.matches.namespaces.placeholder')"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mount } from '@vue/test-utils';
|
|
2
2
|
import Banzai from '@shell/edit/logging.banzaicloud.io.output/index.vue';
|
|
3
|
+
import { createStore } from 'vuex';
|
|
3
4
|
|
|
4
5
|
const outputSchema = {
|
|
5
6
|
id: 'logging.banzaicloud.io.output',
|
|
@@ -109,16 +110,26 @@ describe('view: logging.banzaicloud.io.output', () => {
|
|
|
109
110
|
['http://localhost:3100', []],
|
|
110
111
|
['not a proper URL', ['logging.loki.urlInvalid']],
|
|
111
112
|
])('should validate Loki URL on save', (url, expectation) => {
|
|
113
|
+
const store = createStore({
|
|
114
|
+
getters: {
|
|
115
|
+
namespaces: () => () => ({}),
|
|
116
|
+
currentStore: () => () => 'cluster',
|
|
117
|
+
'cluster/schemaFor': () => jest.fn()
|
|
118
|
+
}
|
|
119
|
+
});
|
|
112
120
|
const wrapper = mount(Banzai, {
|
|
113
121
|
data: () => ({ selectedProvider: 'loki' }),
|
|
114
122
|
props: {
|
|
115
123
|
value: {
|
|
116
|
-
save:
|
|
117
|
-
|
|
124
|
+
save: jest.fn(),
|
|
125
|
+
setAnnotation: jest.fn(),
|
|
126
|
+
spec: { loki: { url } },
|
|
127
|
+
metadata: {},
|
|
118
128
|
}
|
|
119
129
|
},
|
|
120
130
|
global: {
|
|
121
|
-
|
|
131
|
+
provide: { store },
|
|
132
|
+
mocks: {
|
|
122
133
|
$fetchState: { pending: false },
|
|
123
134
|
$store: {
|
|
124
135
|
dispatch: jest.fn(),
|
|
@@ -149,16 +160,26 @@ describe('view: logging.banzaicloud.io.output', () => {
|
|
|
149
160
|
});
|
|
150
161
|
|
|
151
162
|
it('should load the default YAML data for output buffer config (from schema) in a CREATE scenario', async() => {
|
|
163
|
+
const store = createStore({
|
|
164
|
+
getters: {
|
|
165
|
+
namespaces: () => () => ({}),
|
|
166
|
+
currentStore: () => () => 'cluster',
|
|
167
|
+
'cluster/schemaFor': () => jest.fn()
|
|
168
|
+
}
|
|
169
|
+
});
|
|
152
170
|
const wrapper = mount(Banzai, {
|
|
153
171
|
data: () => ({ selectedProvider: 'awsElasticsearch' }),
|
|
154
172
|
props: {
|
|
155
173
|
value: {
|
|
156
|
-
save:
|
|
157
|
-
|
|
174
|
+
save: jest.fn(),
|
|
175
|
+
setAnnotation: jest.fn(),
|
|
176
|
+
spec: {},
|
|
177
|
+
metadata: {},
|
|
158
178
|
}
|
|
159
179
|
},
|
|
160
180
|
global: {
|
|
161
|
-
|
|
181
|
+
provide: { store },
|
|
182
|
+
mocks: {
|
|
162
183
|
$fetchState: { pending: false },
|
|
163
184
|
$store: {
|
|
164
185
|
dispatch(arg: any) {
|
|
@@ -230,16 +251,26 @@ describe('view: logging.banzaicloud.io.output', () => {
|
|
|
230
251
|
});
|
|
231
252
|
|
|
232
253
|
it('should load current output buffer config in an EDIT scenario', async() => {
|
|
254
|
+
const store = createStore({
|
|
255
|
+
getters: {
|
|
256
|
+
namespaces: () => () => ({}),
|
|
257
|
+
currentStore: () => () => 'cluster',
|
|
258
|
+
'cluster/schemaFor': () => jest.fn()
|
|
259
|
+
}
|
|
260
|
+
});
|
|
233
261
|
const wrapper = mount(Banzai, {
|
|
234
262
|
data: () => ({ selectedProvider: 'awsElasticsearch' }),
|
|
235
263
|
props: {
|
|
236
264
|
value: {
|
|
237
|
-
save:
|
|
238
|
-
|
|
265
|
+
save: jest.fn(),
|
|
266
|
+
setAnnotation: jest.fn(),
|
|
267
|
+
spec: { awsElasticsearch: { buffer: '#chunk_limit_records: int' } },
|
|
268
|
+
metadata: {}
|
|
239
269
|
}
|
|
240
270
|
},
|
|
241
271
|
global: {
|
|
242
|
-
|
|
272
|
+
provide: { store },
|
|
273
|
+
mocks: {
|
|
243
274
|
$fetchState: { pending: false },
|
|
244
275
|
$store: {
|
|
245
276
|
dispatch(arg: any) {
|
|
@@ -15,6 +15,8 @@ export default {
|
|
|
15
15
|
ChangePassword, GlobalRoleBindings, CruResource, LabeledInput, Loading
|
|
16
16
|
},
|
|
17
17
|
|
|
18
|
+
emits: ['update:mode'],
|
|
19
|
+
|
|
18
20
|
mixins: [
|
|
19
21
|
CreateEditView
|
|
20
22
|
],
|
|
@@ -40,6 +42,7 @@ export default {
|
|
|
40
42
|
roles: !showGlobalRoles,
|
|
41
43
|
rolesChanged: false,
|
|
42
44
|
},
|
|
45
|
+
watchOverride: false,
|
|
43
46
|
};
|
|
44
47
|
},
|
|
45
48
|
|
|
@@ -115,7 +118,11 @@ export default {
|
|
|
115
118
|
this.$router.replace({ name: this.doneRoute });
|
|
116
119
|
buttonDone(true);
|
|
117
120
|
} catch (err) {
|
|
118
|
-
|
|
121
|
+
if (err?.message?.includes('errors due to escalation')) {
|
|
122
|
+
this.errors = [this.t('rbac.errors.escalation')];
|
|
123
|
+
} else {
|
|
124
|
+
this.errors = exceptionToErrorsArray(err);
|
|
125
|
+
}
|
|
119
126
|
buttonDone(false);
|
|
120
127
|
}
|
|
121
128
|
},
|
|
@@ -150,7 +157,7 @@ export default {
|
|
|
150
157
|
|
|
151
158
|
const normanUser = await this.$store.dispatch('rancher/find', {
|
|
152
159
|
type: NORMAN.USER,
|
|
153
|
-
id: this.value.id,
|
|
160
|
+
id: this.value.id || this.user?.id,
|
|
154
161
|
});
|
|
155
162
|
|
|
156
163
|
// Save change of password
|
|
@@ -181,8 +188,25 @@ export default {
|
|
|
181
188
|
},
|
|
182
189
|
|
|
183
190
|
async updateRoles(userId) {
|
|
184
|
-
if (this.$refs.grb) {
|
|
191
|
+
if (!this.$refs.grb) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
try {
|
|
185
196
|
await this.$refs.grb.save(userId);
|
|
197
|
+
} catch (err) {
|
|
198
|
+
if (this.isCreate) {
|
|
199
|
+
this.watchOverride = true;
|
|
200
|
+
this.$emit(
|
|
201
|
+
'update:mode',
|
|
202
|
+
{
|
|
203
|
+
userId,
|
|
204
|
+
mode: _EDIT,
|
|
205
|
+
resource: 'management.cattle.io.user',
|
|
206
|
+
}
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
throw err;
|
|
186
210
|
}
|
|
187
211
|
}
|
|
188
212
|
}
|
|
@@ -255,6 +279,7 @@ export default {
|
|
|
255
279
|
:user-id="value.id || liveValue.id"
|
|
256
280
|
:mode="mode"
|
|
257
281
|
:real-mode="realMode"
|
|
282
|
+
:watch-override="watchOverride"
|
|
258
283
|
type="user"
|
|
259
284
|
@hasChanges="validation.rolesChanged = $event"
|
|
260
285
|
@canLogIn="validation.roles = $event"
|
|
@@ -243,14 +243,14 @@ export default {
|
|
|
243
243
|
v-model:value="authType"
|
|
244
244
|
:disabled="mode === view"
|
|
245
245
|
:options="authOptions"
|
|
246
|
-
label="
|
|
246
|
+
label="验证类型"
|
|
247
247
|
@update:value="initializeType(authOptions, authType)"
|
|
248
248
|
/>
|
|
249
249
|
</div>
|
|
250
250
|
</div>
|
|
251
|
-
<div
|
|
252
|
-
v-if="authType === 'basicAuth'"
|
|
253
|
-
class="row mb-20"
|
|
251
|
+
<div
|
|
252
|
+
v-if="authType === 'basicAuth'"
|
|
253
|
+
class="row mb-20"
|
|
254
254
|
>
|
|
255
255
|
<SimpleSecretSelector
|
|
256
256
|
v-if="namespace"
|
|
@@ -265,16 +265,16 @@ export default {
|
|
|
265
265
|
@updateSecretName="updateBasicAuthUsernameSecretName"
|
|
266
266
|
@updateSecretKey="updateBasicAuthUsernameSecretKey"
|
|
267
267
|
/>
|
|
268
|
-
<Banner
|
|
269
|
-
v-else
|
|
270
|
-
color="error"
|
|
268
|
+
<Banner
|
|
269
|
+
v-else
|
|
270
|
+
color="error"
|
|
271
271
|
>
|
|
272
272
|
{{ t("alertmanagerConfigReceiver.namespaceWarning") }}
|
|
273
273
|
</Banner>
|
|
274
274
|
</div>
|
|
275
|
-
<div
|
|
276
|
-
v-if="authType === 'basicAuth'"
|
|
277
|
-
class="row mb-20"
|
|
275
|
+
<div
|
|
276
|
+
v-if="authType === 'basicAuth'"
|
|
277
|
+
class="row mb-20"
|
|
278
278
|
>
|
|
279
279
|
<SimpleSecretSelector
|
|
280
280
|
v-if="namespace"
|
|
@@ -289,16 +289,16 @@ export default {
|
|
|
289
289
|
@updateSecretName="updateBasicAuthPasswordSecretName"
|
|
290
290
|
@updateSecretKey="updateBasicAuthPasswordSecretKey"
|
|
291
291
|
/>
|
|
292
|
-
<Banner
|
|
293
|
-
v-else
|
|
294
|
-
color="error"
|
|
292
|
+
<Banner
|
|
293
|
+
v-else
|
|
294
|
+
color="error"
|
|
295
295
|
>
|
|
296
296
|
{{ t("alertmanagerConfigReceiver.namespaceWarning") }}
|
|
297
297
|
</Banner>
|
|
298
298
|
</div>
|
|
299
|
-
<div
|
|
300
|
-
v-if="authType === 'bearerTokenSecret'"
|
|
301
|
-
class="row mb-20"
|
|
299
|
+
<div
|
|
300
|
+
v-if="authType === 'bearerTokenSecret'"
|
|
301
|
+
class="row mb-20"
|
|
302
302
|
>
|
|
303
303
|
<SimpleSecretSelector
|
|
304
304
|
v-if="namespace"
|
|
@@ -313,9 +313,9 @@ export default {
|
|
|
313
313
|
@updateSecretName="updateBearerTokenSecretName"
|
|
314
314
|
@updateSecretKey="updateBearerTokenSecretKey"
|
|
315
315
|
/>
|
|
316
|
-
<Banner
|
|
317
|
-
v-else
|
|
318
|
-
color="error"
|
|
316
|
+
<Banner
|
|
317
|
+
v-else
|
|
318
|
+
color="error"
|
|
319
319
|
>
|
|
320
320
|
{{ t("alertmanagerConfigReceiver.namespaceWarning") }}
|
|
321
321
|
</Banner>
|
|
@@ -17,14 +17,14 @@ import { fetchAlertManagerConfigSpecs } from '@shell/utils/alertmanagerconfig';
|
|
|
17
17
|
// i18n-uses monitoringReceiver.slack.*, monitoringReceiver.email.*, monitoringReceiver.pagerduty.*
|
|
18
18
|
// i18n-uses monitoringReceiver.opsgenie.*, monitoringReceiver.webhook.*, monitoringReceiver.custom.*
|
|
19
19
|
export const RECEIVERS_TYPES = [
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
},
|
|
20
|
+
// {
|
|
21
|
+
// name: 'slack',
|
|
22
|
+
// label: 'monitoringReceiver.slack.label',
|
|
23
|
+
// title: 'monitoringReceiver.slack.title',
|
|
24
|
+
// info: 'monitoringReceiver.slack.info',
|
|
25
|
+
// key: 'slackConfigs',
|
|
26
|
+
// logo: require(`@shell/assets/images/vendor/slack.svg`)
|
|
27
|
+
// },
|
|
28
28
|
{
|
|
29
29
|
name: 'email',
|
|
30
30
|
label: 'monitoringReceiver.email.label',
|
|
@@ -32,21 +32,21 @@ export const RECEIVERS_TYPES = [
|
|
|
32
32
|
key: 'emailConfigs',
|
|
33
33
|
logo: require(`@shell/assets/images/vendor/email.svg`)
|
|
34
34
|
},
|
|
35
|
-
{
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
},
|
|
35
|
+
// {
|
|
36
|
+
// name: 'pagerduty',
|
|
37
|
+
// label: 'monitoringReceiver.pagerduty.label',
|
|
38
|
+
// title: 'monitoringReceiver.pagerduty.title',
|
|
39
|
+
// info: 'monitoringReceiver.pagerduty.info',
|
|
40
|
+
// key: 'pagerdutyConfigs',
|
|
41
|
+
// logo: require(`@shell/assets/images/vendor/pagerduty.svg`)
|
|
42
|
+
// },
|
|
43
|
+
// {
|
|
44
|
+
// name: 'opsgenie',
|
|
45
|
+
// label: 'monitoringReceiver.opsgenie.label',
|
|
46
|
+
// title: 'monitoringReceiver.opsgenie.title',
|
|
47
|
+
// key: 'opsgenieConfigs',
|
|
48
|
+
// logo: require(`@shell/assets/images/vendor/email.svg`)
|
|
49
|
+
// },
|
|
50
50
|
{
|
|
51
51
|
name: 'webhook',
|
|
52
52
|
label: 'monitoringReceiver.webhook.label',
|
|
@@ -54,14 +54,14 @@ export const RECEIVERS_TYPES = [
|
|
|
54
54
|
key: 'webhookConfigs',
|
|
55
55
|
logo: require(`@shell/assets/images/vendor/webhook.svg`),
|
|
56
56
|
},
|
|
57
|
-
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
},
|
|
57
|
+
// {
|
|
58
|
+
// name: 'custom',
|
|
59
|
+
// label: 'monitoringReceiver.custom.label',
|
|
60
|
+
// title: 'monitoringReceiver.custom.title',
|
|
61
|
+
// info: 'monitoringReceiver.custom.info',
|
|
62
|
+
// key: 'webhookConfigs',
|
|
63
|
+
// logo: require(`@shell/assets/images/vendor/custom.svg`)
|
|
64
|
+
// },
|
|
65
65
|
];
|
|
66
66
|
|
|
67
67
|
export default {
|
|
@@ -46,30 +46,34 @@ export default {
|
|
|
46
46
|
</script>
|
|
47
47
|
<template>
|
|
48
48
|
<div>
|
|
49
|
-
<
|
|
50
|
-
|
|
49
|
+
<div class="route-title-config mb-20">
|
|
50
|
+
接收器
|
|
51
51
|
<i
|
|
52
52
|
v-clean-tooltip="t('monitoring.alertmanagerConfig.receiverTooltip')"
|
|
53
53
|
class="icon icon-info"
|
|
54
54
|
/>
|
|
55
|
-
</
|
|
55
|
+
</div>
|
|
56
56
|
<Banner
|
|
57
57
|
color="info"
|
|
58
58
|
:label="t('monitoring.alertmanagerConfig.routeInfo')"
|
|
59
59
|
/>
|
|
60
|
-
<div class="row
|
|
60
|
+
<div class="row">
|
|
61
61
|
<div class="col span-6">
|
|
62
62
|
<LabeledSelect
|
|
63
63
|
v-model:value="value.receiver"
|
|
64
64
|
:mode="mode"
|
|
65
|
+
:isLabel="true"
|
|
66
|
+
:leftWidth="'225px'"
|
|
65
67
|
:options="receiverOptions"
|
|
66
68
|
/>
|
|
67
69
|
</div>
|
|
68
70
|
</div>
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
+
<div class="route-title-config config-top mb-20">
|
|
72
|
+
分组
|
|
73
|
+
</div>
|
|
74
|
+
<div class="row">
|
|
71
75
|
<div class="col span-6">
|
|
72
|
-
<span class="label">
|
|
76
|
+
<span class="label mb-10">
|
|
73
77
|
{{ t("monitoringRoute.groups.addGroupByLabel'") }}
|
|
74
78
|
<i
|
|
75
79
|
v-clean-tooltip="t('monitoringRoute.groups.groupByTooltip')"
|
|
@@ -84,8 +88,10 @@ export default {
|
|
|
84
88
|
/>
|
|
85
89
|
</div>
|
|
86
90
|
</div>
|
|
87
|
-
<
|
|
88
|
-
|
|
91
|
+
<div class="route-title-config config-top mb-20">
|
|
92
|
+
等待和间隔
|
|
93
|
+
</div>
|
|
94
|
+
<div class="row">
|
|
89
95
|
<div class="col span-6">
|
|
90
96
|
<LabeledInput
|
|
91
97
|
v-model:value="value.groupWait"
|
|
@@ -101,7 +107,7 @@ export default {
|
|
|
101
107
|
/>
|
|
102
108
|
</div>
|
|
103
109
|
</div>
|
|
104
|
-
<div class="row
|
|
110
|
+
<div class="row">
|
|
105
111
|
<div class="col span-6">
|
|
106
112
|
<LabeledInput
|
|
107
113
|
v-model:value="value.repeatInterval"
|
|
@@ -111,7 +117,9 @@ export default {
|
|
|
111
117
|
</div>
|
|
112
118
|
</div>
|
|
113
119
|
|
|
114
|
-
<
|
|
120
|
+
<div class="route-title-config config-top mb-20 mb-20">
|
|
121
|
+
匹配器
|
|
122
|
+
</div>
|
|
115
123
|
<ArrayListGrouped
|
|
116
124
|
v-model:value="value.matchers"
|
|
117
125
|
class="mt-20"
|
|
@@ -120,7 +128,7 @@ export default {
|
|
|
120
128
|
:default-add-value="{ matchers: [] }"
|
|
121
129
|
>
|
|
122
130
|
<template #default="props">
|
|
123
|
-
<div class="row
|
|
131
|
+
<div class="row ">
|
|
124
132
|
<div class="col span-4">
|
|
125
133
|
<LabeledInput
|
|
126
134
|
v-model:value="props.row.value.name"
|
|
@@ -150,3 +158,19 @@ export default {
|
|
|
150
158
|
</ArrayListGrouped>
|
|
151
159
|
</div>
|
|
152
160
|
</template>
|
|
161
|
+
|
|
162
|
+
<style scoped>
|
|
163
|
+
.route-title-config{
|
|
164
|
+
font-size: 14px;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.row{
|
|
168
|
+
flex-wrap: wrap;
|
|
169
|
+
}
|
|
170
|
+
.col{
|
|
171
|
+
width: 49.125%;
|
|
172
|
+
}
|
|
173
|
+
.config-top{
|
|
174
|
+
margin-top: 32px;
|
|
175
|
+
}
|
|
176
|
+
</style>
|
|
@@ -80,7 +80,7 @@ export default {
|
|
|
80
80
|
<div>
|
|
81
81
|
<div class="row">
|
|
82
82
|
<div class="col span-12">
|
|
83
|
-
<h3
|
|
83
|
+
<h3>目标</h3>
|
|
84
84
|
</div>
|
|
85
85
|
</div>
|
|
86
86
|
<div class="row mb-20">
|
|
@@ -88,7 +88,7 @@ export default {
|
|
|
88
88
|
<LabeledInput
|
|
89
89
|
v-model:value="value.to"
|
|
90
90
|
:mode="mode"
|
|
91
|
-
label="
|
|
91
|
+
label="默认收件人地址"
|
|
92
92
|
placeholder="e.g. admin@example.com"
|
|
93
93
|
/>
|
|
94
94
|
</div>
|
|
@@ -97,7 +97,7 @@ export default {
|
|
|
97
97
|
v-model:value="value.sendResolved"
|
|
98
98
|
:mode="mode"
|
|
99
99
|
class="mt-20"
|
|
100
|
-
label="
|
|
100
|
+
label="启用发送已解决的警报"
|
|
101
101
|
/>
|
|
102
102
|
</div>
|
|
103
103
|
</div>
|
|
@@ -109,7 +109,7 @@ export default {
|
|
|
109
109
|
<LabeledInput
|
|
110
110
|
v-model:value="value.from"
|
|
111
111
|
:mode="mode"
|
|
112
|
-
label="
|
|
112
|
+
label="发件人"
|
|
113
113
|
placeholder="e.g. admin@example.com"
|
|
114
114
|
/>
|
|
115
115
|
</div>
|
|
@@ -119,7 +119,7 @@ export default {
|
|
|
119
119
|
<LabeledInput
|
|
120
120
|
v-model:value="value.smarthost"
|
|
121
121
|
:mode="mode"
|
|
122
|
-
label="
|
|
122
|
+
label="主机"
|
|
123
123
|
placeholder="e.g. 192.168.1.121:587"
|
|
124
124
|
/>
|
|
125
125
|
</div>
|
|
@@ -128,7 +128,7 @@ export default {
|
|
|
128
128
|
v-model:value="value.requireTLS"
|
|
129
129
|
:mode="mode"
|
|
130
130
|
class="mt-20"
|
|
131
|
-
label="
|
|
131
|
+
label="启用TLS"
|
|
132
132
|
/>
|
|
133
133
|
</div>
|
|
134
134
|
</div>
|
|
@@ -165,7 +165,7 @@ export default {
|
|
|
165
165
|
<div>
|
|
166
166
|
<div class="row">
|
|
167
167
|
<div class="col span-12">
|
|
168
|
-
<h3
|
|
168
|
+
<h3>目标</h3>
|
|
169
169
|
</div>
|
|
170
170
|
</div>
|
|
171
171
|
<div class="row mb-20">
|
|
@@ -192,7 +192,7 @@ export default {
|
|
|
192
192
|
<LabeledInput
|
|
193
193
|
v-model:value="value.httpConfig.proxyURL"
|
|
194
194
|
:mode="mode"
|
|
195
|
-
label="
|
|
195
|
+
label="代理地址"
|
|
196
196
|
placeholder="e.g. http://my-proxy/"
|
|
197
197
|
/>
|
|
198
198
|
</div>
|
|
@@ -201,12 +201,12 @@ export default {
|
|
|
201
201
|
<Checkbox
|
|
202
202
|
v-model:value="value.sendResolved"
|
|
203
203
|
:mode="mode"
|
|
204
|
-
label="
|
|
204
|
+
label="启用发送已解决的警报"
|
|
205
205
|
/>
|
|
206
206
|
</div>
|
|
207
207
|
<div class="row">
|
|
208
208
|
<div class="col span-12">
|
|
209
|
-
<h3
|
|
209
|
+
<h3>响应者</h3>
|
|
210
210
|
<ArrayList
|
|
211
211
|
v-model:value="responders"
|
|
212
212
|
:mode="mode"
|
|
@@ -219,18 +219,18 @@ export default {
|
|
|
219
219
|
class="row"
|
|
220
220
|
:class="{'mb-15': isView, 'mb-10': !isView}"
|
|
221
221
|
>
|
|
222
|
-
|
|
223
|
-
<span class="text-label"
|
|
222
|
+
<div class="col" style="width:400px">
|
|
223
|
+
<span class="text-label">类型</span>
|
|
224
224
|
</div>
|
|
225
|
-
<div class="col
|
|
226
|
-
<span class="text-label"
|
|
225
|
+
<div class="col send-to ml-10" style="flex: 1;">
|
|
226
|
+
<span class="text-label">发送至</span>
|
|
227
227
|
</div>
|
|
228
228
|
</div>
|
|
229
229
|
</div>
|
|
230
230
|
</template>
|
|
231
231
|
<template v-slot:columns="scope">
|
|
232
232
|
<div class="row responder">
|
|
233
|
-
<div
|
|
233
|
+
<div style="width:400px">
|
|
234
234
|
<span v-if="isView">{{ typeLabel(scope.row.value.type) }}</span>
|
|
235
235
|
<Select
|
|
236
236
|
v-else
|
|
@@ -239,7 +239,7 @@ export default {
|
|
|
239
239
|
:options="TYPES"
|
|
240
240
|
/>
|
|
241
241
|
</div>
|
|
242
|
-
<div class="
|
|
242
|
+
<div class="target-container ml-10" style="flex: 1;">
|
|
243
243
|
<span v-if="isView">{{ targetLabel(scope.row.value.target) }}: {{ scope.row.value.value }}</span>
|
|
244
244
|
<InputWithSelect
|
|
245
245
|
v-else
|