@rancher/shell 0.3.14 → 0.3.16
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/images/providers/nutanix.svg +1 -0
- package/assets/translations/en-us.yaml +84 -3
- package/assets/translations/zh-hans.yaml +68 -26
- package/chart/gatekeeper.vue +2 -2
- package/chart/monitoring/alerting/index.vue +3 -3
- package/chart/monitoring/index.vue +2 -2
- package/chart/monitoring/prometheus/index.vue +1 -1
- package/chart/rancher-backup/index.vue +2 -2
- package/cloud-credential/generic.vue +1 -1
- package/cloud-credential/harvester.vue +2 -2
- package/components/AssignTo.vue +1 -1
- package/components/AwsComplianceBanner.vue +1 -1
- package/components/BackLink.vue +7 -0
- package/components/BannerGraphic.vue +1 -0
- package/components/BrandImage.vue +3 -3
- package/components/ClusterProviderIcon.vue +1 -1
- package/components/CommunityLinks.vue +2 -2
- package/components/ConsumptionGauge.vue +17 -2
- package/components/CruResource.vue +3 -2
- package/components/DashboardMetrics.vue +8 -0
- package/components/DetailTop.vue +1 -1
- package/components/EmberPage.vue +1 -0
- package/components/ExplorerMembers.vue +8 -8
- package/components/ExplorerProjectsNamespaces.vue +9 -9
- package/components/FixedBanner.vue +1 -1
- package/components/GlobalRoleBindings.vue +11 -11
- package/components/GrafanaDashboard.vue +14 -2
- package/components/GrowlManager.vue +1 -1
- package/components/HarvesterServiceAddOnConfig.vue +4 -3
- package/components/IconOrSvg.vue +10 -3
- package/components/LandingPagePreference.vue +2 -2
- package/components/MoveModal.vue +1 -1
- package/components/PodSecurityAdmission.vue +3 -3
- package/components/ProgressBarMulti.vue +2 -2
- package/components/PromptRemove.vue +52 -28
- package/components/PromptRestore.vue +3 -3
- package/components/Questions/index.vue +5 -5
- package/components/RelatedWorkloadsTable.vue +1 -1
- package/components/ResourceList/Masthead.vue +1 -1
- package/components/ResourceTable.vue +3 -3
- package/components/ResourceYaml.vue +1 -1
- package/components/RoleBindings.vue +2 -2
- package/components/SimpleBox.vue +1 -0
- package/components/SingleClusterInfo.vue +1 -1
- package/components/SortableTable/actions.js +3 -3
- package/components/SortableTable/advanced-filtering.js +7 -7
- package/components/SortableTable/filtering.js +1 -1
- package/components/SortableTable/index.vue +14 -10
- package/components/SortableTable/selection.js +5 -5
- package/components/SortableTable/sorting.js +5 -5
- package/components/Tabbed/index.vue +7 -7
- package/components/TableSparkLine.vue +1 -1
- package/components/Wizard.vue +11 -23
- package/components/__tests__/Collapse.spec.ts +1 -1
- package/components/__tests__/CruResource.test.ts +74 -0
- package/components/__tests__/SimpleBox.spec.ts +1 -1
- package/components/auth/RoleDetailEdit.vue +7 -3
- package/components/auth/SelectPrincipal.vue +3 -3
- package/components/fleet/FleetResources.vue +1 -1
- package/components/fleet/FleetStatus.vue +4 -4
- package/components/fleet/FleetSummary.vue +1 -1
- package/components/fleet/ForceDirectedTreeChart/chartIcons.js +1 -1
- package/components/fleet/ForceDirectedTreeChart/index.vue +1 -1
- package/components/form/ArrayList.vue +11 -3
- package/components/form/ArrayListSelect.vue +2 -2
- package/components/form/FileSelector.vue +6 -0
- package/components/form/GitPicker.vue +528 -0
- package/components/form/KeyValue.vue +82 -41
- package/components/form/LabeledSelect.vue +2 -2
- package/components/form/MatchExpressions.vue +2 -2
- package/components/form/Members/ClusterMembershipEditor.vue +1 -2
- package/components/form/Members/ClusterPermissionsEditor.vue +6 -5
- package/components/form/Members/MembershipEditor.vue +4 -4
- package/components/form/Members/ProjectMembershipEditor.vue +1 -2
- package/components/form/NameNsDescription.vue +13 -6
- package/components/form/Networking.vue +2 -2
- package/components/form/NodeScheduling.vue +1 -1
- package/components/form/PodAffinity.vue +7 -2
- package/components/form/ProjectMemberEditor.vue +4 -4
- package/components/form/ResourceQuota/Namespace.vue +2 -2
- package/components/form/ResourceQuota/NamespaceRow.vue +2 -2
- package/components/form/ResourceQuota/Project.vue +1 -1
- package/components/form/ResourceQuota/shared.js +2 -2
- package/components/form/ResourceSelector.vue +1 -1
- package/components/form/ResourceTabs/index.vue +1 -1
- package/components/form/RuleSelector.vue +1 -1
- package/components/form/SecretSelector.vue +4 -4
- package/components/form/Select.vue +2 -2
- package/components/form/SelectOrCreateAuthSecret.vue +3 -3
- package/components/form/ServiceNameSelect.vue +1 -1
- package/components/form/ServicePorts.vue +1 -1
- package/components/form/ShellInput.vue +1 -1
- package/components/form/SimpleSecretSelector.vue +4 -4
- package/components/form/Taints.vue +1 -1
- package/components/form/ValueFromResource.vue +3 -3
- package/components/form/WorkloadPorts.vue +8 -7
- package/components/form/__tests__/Error.test.ts +1 -1
- package/components/form/__tests__/KeyValue.test.ts +21 -0
- package/components/formatter/ClusterLink.vue +1 -1
- package/components/formatter/ClusterProvider.vue +13 -2
- package/components/formatter/Endpoints.vue +1 -1
- package/components/formatter/FleetSummaryGraph.vue +2 -2
- package/components/formatter/IngressTarget.vue +2 -2
- package/components/formatter/PodImages.vue +1 -1
- package/components/formatter/PrincipalGroupBindings.vue +1 -1
- package/components/formatter/ReceiverIcons.vue +3 -3
- package/components/formatter/ServiceType.vue +1 -1
- package/components/formatter/WorkloadDetailEndpoints.vue +1 -1
- package/components/formatter/WorkloadHealthScale.vue +1 -1
- package/components/formatter/__tests__/LiveDate.test.ts +1 -1
- package/components/graph/Bar.vue +1 -1
- package/components/graph/LinePlot.vue +3 -3
- package/components/nav/Group.vue +2 -2
- package/components/nav/Header.vue +5 -5
- package/components/nav/NamespaceFilter.vue +14 -14
- package/components/nav/TopLevelMenu.vue +76 -11
- package/components/nav/WindowManager/ContainerLogs.vue +2 -2
- package/components/nav/WindowManager/ContainerShell.vue +1 -1
- package/components/nav/WorkspaceSwitcher.vue +1 -1
- package/config/home-links.js +4 -4
- package/config/labels-annotations.js +8 -9
- package/config/pod-security-admission.ts +1 -1
- package/config/product/auth.js +5 -5
- package/config/product/explorer.js +14 -0
- package/config/store.js +2 -0
- package/config/table-headers.js +13 -13
- package/config/uiplugins.js +8 -1
- package/core/plugin-routes.ts +3 -2
- package/core/plugin.ts +3 -3
- package/core/plugins.js +7 -7
- package/creators/pkg/files/index.ts +1 -1
- package/detail/catalog.cattle.io.clusterrepo.vue +8 -1
- package/detail/cis.cattle.io.clusterscan.vue +3 -3
- package/detail/fleet.cattle.io.bundle.vue +1 -1
- package/detail/helm.cattle.io.projecthelmchart.vue +16 -29
- package/detail/management.cattle.io.user.vue +12 -12
- package/detail/namespace.vue +4 -4
- package/detail/networking.k8s.io.ingress.vue +3 -3
- package/detail/node.vue +2 -2
- package/detail/provisioning.cattle.io.cluster.vue +9 -10
- package/detail/service.vue +1 -1
- package/detail/workload/index.vue +3 -3
- package/dialog/AddProjectMemberDialog.vue +2 -2
- package/dialog/DrainNode.vue +1 -1
- package/dialog/GenericPrompt.vue +9 -5
- package/dialog/RotateEncryptionKeyDialog.vue +2 -2
- package/dialog/ScaleMachineDownDialog.vue +2 -2
- package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +56 -0
- package/edit/auth/azuread.vue +3 -3
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +5 -5
- package/edit/cis.cattle.io.clusterscan.vue +5 -5
- package/edit/cloudcredential.vue +4 -4
- package/edit/constraints.gatekeeper.sh.constraint/NamespaceList.vue +1 -1
- package/edit/constraints.gatekeeper.sh.constraint/index.vue +4 -4
- package/edit/fleet.cattle.io.gitrepo.vue +6 -6
- package/edit/helm.cattle.io.projecthelmchart.vue +3 -3
- package/edit/logging-flow/index.vue +4 -4
- package/edit/logging.banzaicloud.io.output/index.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/forward.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/logz.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/redis.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +1 -1
- package/edit/management.cattle.io.clusterroletemplatebinding.vue +1 -1
- package/edit/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +1 -1
- package/edit/management.cattle.io.project.vue +3 -3
- package/edit/management.cattle.io.projectroletemplatebinding.vue +2 -2
- package/edit/management.cattle.io.setting.vue +1 -1
- package/edit/management.cattle.io.user.vue +2 -2
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +2 -2
- package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +3 -3
- package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +5 -5
- package/edit/monitoring.coreos.com.prometheusrule/duration.js +1 -1
- package/edit/monitoring.coreos.com.prometheusrule/index.vue +8 -3
- package/edit/monitoring.coreos.com.receiver/auth.vue +2 -2
- package/edit/monitoring.coreos.com.receiver/tls.vue +3 -4
- package/edit/monitoring.coreos.com.receiver/types/__tests__/email.test.ts +53 -0
- package/edit/monitoring.coreos.com.receiver/types/email.vue +2 -0
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +3 -3
- package/edit/monitoring.coreos.com.receiver/types/webhook.add.vue +1 -1
- package/edit/monitoring.coreos.com.route.vue +2 -2
- package/edit/namespace.vue +21 -13
- package/edit/networking.k8s.io.ingress/Certificate.vue +2 -2
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
- package/edit/networking.k8s.io.ingress/RulePath.vue +2 -2
- package/edit/networking.k8s.io.ingress/Rules.vue +2 -2
- package/edit/networking.k8s.io.ingress/index.vue +4 -4
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +3 -3
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
- package/edit/persistentvolume/index.vue +4 -4
- package/edit/persistentvolumeclaim.vue +3 -3
- package/edit/provisioning.cattle.io.cluster/RegistryMirrors.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/index.vue +7 -7
- package/edit/provisioning.cattle.io.cluster/rke2.vue +28 -29
- package/edit/resources.cattle.io.backup.vue +2 -2
- package/edit/resources.cattle.io.restore.vue +3 -3
- package/edit/secret/generic.vue +1 -1
- package/edit/secret/index.vue +3 -3
- package/edit/service.vue +3 -21
- package/edit/serviceaccount.vue +2 -2
- package/edit/storage.k8s.io.storageclass/index.vue +4 -4
- package/edit/storage.k8s.io.storageclass/provisioners/driver.harvesterhci.io.vue +1 -1
- package/edit/token.vue +5 -5
- package/edit/workload/index.vue +1 -1
- package/edit/workload/mixins/workload.js +8 -8
- package/edit/workload/storage/ContainerMountPaths.vue +9 -9
- package/edit/workload/storage/Mount.vue +2 -2
- package/edit/workload/storage/csi/index.vue +1 -1
- package/edit/workload/storage/ephemeralVolume/index.vue +1 -1
- package/edit/workload/storage/index.vue +6 -6
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +2 -2
- package/initialize/client.js +8 -8
- package/initialize/index.js +1 -4
- package/layouts/default.vue +38 -11
- package/list/catalog.cattle.io.clusterrepo.vue +9 -1
- package/list/cis.cattle.io.clusterscan.vue +1 -1
- package/list/fleet.cattle.io.cluster.vue +2 -2
- package/list/group.principal.vue +1 -1
- package/list/helm.cattle.io.projecthelmchart.vue +2 -2
- package/list/management.cattle.io.cluster.vue +1 -1
- package/list/management.cattle.io.feature.vue +1 -1
- package/list/management.cattle.io.user.vue +2 -2
- package/list/node.vue +5 -5
- package/list/provisioning.cattle.io.cluster.vue +4 -5
- package/machine-config/amazonec2.vue +2 -2
- package/machine-config/digitalocean.vue +4 -4
- package/machine-config/linode.vue +4 -4
- package/machine-config/vmwarevsphere.vue +12 -12
- package/middleware/authenticated.js +7 -6
- package/mixins/brand.js +1 -1
- package/mixins/chart.js +6 -6
- package/mixins/fetch.client.js +2 -2
- package/mixins/form-validation.js +7 -7
- package/mixins/resource-fetch-namespaced.js +1 -1
- package/mixins/resource-fetch.js +2 -2
- package/models/apps.statefulset.js +2 -2
- package/models/batch.cronjob.js +1 -1
- package/models/catalog.cattle.io.app.js +4 -4
- package/models/cis.cattle.io.clusterscan.js +1 -1
- package/models/cis.cattle.io.clusterscanbenchmark.js +1 -1
- package/models/cis.cattle.io.clusterscanreport.js +1 -1
- package/models/cloudcredential.js +1 -1
- package/models/cluster/node.js +5 -5
- package/models/cluster.x-k8s.io.machinedeployment.js +2 -2
- package/models/fleet.cattle.io.gitrepo.js +3 -3
- package/models/group.principal.js +4 -4
- package/models/helm.cattle.io.projecthelmchart.js +2 -2
- package/models/logging.banzaicloud.io.clusterflow.js +2 -2
- package/models/logging.banzaicloud.io.flow.js +5 -5
- package/models/logging.banzaicloud.io.output.js +2 -2
- package/models/management.cattle.io.cluster.js +10 -14
- package/models/management.cattle.io.globalrole.js +4 -4
- package/models/management.cattle.io.node.js +2 -2
- package/models/management.cattle.io.nodepool.js +3 -3
- package/models/management.cattle.io.nodetemplate.js +4 -4
- package/models/management.cattle.io.project.js +2 -2
- package/models/management.cattle.io.roletemplate.js +1 -1
- package/models/management.cattle.io.setting.js +1 -1
- package/models/management.cattle.io.user.js +5 -5
- package/models/monitoring.coreos.com.receiver.js +9 -9
- package/models/namespace.js +1 -1
- package/models/networking.k8s.io.ingress.js +5 -5
- package/models/persistentvolume.js +3 -3
- package/models/pod.js +3 -3
- package/models/provisioning.cattle.io.cluster.js +39 -27
- package/models/rbac.authorization.k8s.io.clusterrole.js +2 -2
- package/models/rbac.authorization.k8s.io.role.js +3 -3
- package/models/secret.js +1 -1
- package/models/service.js +2 -2
- package/models/storage.k8s.io.storageclass.js +2 -2
- package/models/token.js +1 -1
- package/models/workload.js +6 -6
- package/models/workload.service.js +5 -21
- package/package.json +3 -2
- package/pages/about.vue +9 -9
- package/pages/account/index.vue +2 -2
- package/pages/auth/login.vue +25 -12
- package/pages/auth/setup.vue +4 -0
- package/pages/auth/verify.vue +6 -0
- package/pages/c/_cluster/apps/charts/index.vue +4 -4
- package/pages/c/_cluster/apps/charts/install.vue +28 -20
- package/pages/c/_cluster/auth/roles/index.vue +10 -10
- package/pages/c/_cluster/explorer/index.vue +41 -16
- package/pages/c/_cluster/explorer/tools/index.vue +8 -8
- package/pages/c/_cluster/fleet/GitRepoGraphConfig.js +1 -1
- package/pages/c/_cluster/fleet/index.vue +11 -11
- package/pages/c/_cluster/monitoring/index.vue +1 -1
- package/pages/c/_cluster/settings/links.vue +3 -3
- package/pages/c/_cluster/settings/performance.vue +1 -1
- package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +6 -6
- package/pages/c/_cluster/uiplugins/CatalogList/index.vue +3 -3
- package/pages/c/_cluster/uiplugins/InstallDialog.vue +3 -3
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +1 -1
- package/pages/c/_cluster/uiplugins/RemoveUIPlugins.vue +3 -3
- package/pages/c/_cluster/uiplugins/SetupUIPlugins.vue +6 -6
- package/pages/c/_cluster/uiplugins/UninstallDialog.vue +4 -4
- package/pages/c/_cluster/uiplugins/index.vue +22 -19
- package/pages/diagnostic.vue +6 -6
- package/pages/home.vue +8 -3
- package/pages/prefs.vue +2 -2
- package/pages/rio/mesh.vue +3 -3
- package/pages/support/index.vue +10 -1
- package/pkg/auto-import.js +1 -1
- package/pkg/tsconfig.json +1 -0
- package/pkg/vue.config.js +1 -1
- package/plugins/axios.js +1 -1
- package/plugins/clean-html-directive.js +1 -1
- package/plugins/dashboard-store/__tests__/mutations.spec.js +4 -4
- package/plugins/dashboard-store/actions.js +4 -4
- package/plugins/dashboard-store/getters.js +1 -1
- package/plugins/dashboard-store/index.js +1 -1
- package/plugins/dashboard-store/mutations.js +2 -2
- package/plugins/dashboard-store/resource-class.js +8 -8
- package/plugins/i18n.js +1 -1
- package/plugins/plugin.js +5 -1
- package/plugins/steve/actions.js +25 -3
- package/plugins/steve/getters.js +3 -3
- package/plugins/steve/hybrid-class.js +1 -1
- package/plugins/steve/mutations.js +1 -1
- package/plugins/steve/performanceTesting.js +1 -1
- package/plugins/steve/resourceWatcher.js +1 -1
- package/plugins/steve/subscribe.js +6 -6
- package/plugins/steve/worker/web-worker.basic.js +1 -1
- package/promptRemove/management.cattle.io.project.vue +3 -3
- package/promptRemove/mixin/roleDeletionCheck.js +4 -4
- package/promptRemove/pod.vue +1 -1
- package/rancher-components/components/Form/Checkbox/Checkbox.test.ts +2 -2
- package/rancher-components/components/Form/Checkbox/Checkbox.vue +1 -1
- package/rancher-components/components/Form/Radio/RadioButton.test.ts +1 -1
- package/rancher-components/components/Form/Radio/RadioButton.vue +2 -2
- package/rancher-components/components/Form/Radio/RadioGroup.vue +2 -2
- package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +1 -0
- package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.test.ts +1 -1
- package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.vue +7 -7
- package/rancher-components/components/StringList/StringList.test.ts +10 -9
- package/rancher-components/components/StringList/StringList.vue +5 -5
- package/scripts/extension/helm/charts/ui-plugin-server/Chart.yaml +1 -1
- package/store/action-menu.js +4 -4
- package/store/auth.js +40 -7
- package/store/aws.js +1 -1
- package/store/catalog.js +12 -11
- package/store/digitalocean.js +4 -4
- package/store/features.js +1 -0
- package/store/github.js +70 -213
- package/store/gitlab.js +159 -0
- package/store/growl.js +1 -1
- package/store/i18n.js +7 -7
- package/store/index.js +63 -22
- package/store/linode.js +1 -1
- package/store/plugins.js +5 -5
- package/store/pnap.js +1 -1
- package/store/prefs.js +6 -6
- package/store/resource-fetch.js +3 -3
- package/store/type-map.js +61 -42
- package/store/uiplugins.ts +2 -1
- package/store/wm.js +5 -4
- package/tsconfig.default.json +10 -0
- package/tsconfig.json +2 -9
- package/types/shell/index.d.ts +10 -2
- package/utils/__tests__/version.test.ts +28 -0
- package/utils/alertmanagerconfig.js +4 -4
- package/utils/array.ts +4 -4
- package/utils/async.ts +1 -1
- package/utils/auth.js +3 -3
- package/utils/axios.js +5 -5
- package/utils/cluster.js +4 -3
- package/utils/color.js +10 -0
- package/utils/create-yaml.js +4 -4
- package/utils/crypto/browserHashUtils.js +1 -1
- package/utils/crypto/browserMd5.js +1 -1
- package/utils/crypto/browserSha1.js +1 -1
- package/utils/crypto/browserSha256.js +1 -1
- package/utils/crypto/index.js +3 -3
- package/utils/favicon.js +2 -3
- package/utils/gatekeeper/util.js +3 -3
- package/utils/gc/gc.ts +2 -2
- package/utils/git.ts +92 -0
- package/utils/grafana.js +4 -4
- package/utils/monitoring.js +2 -2
- package/utils/nuxt.js +2 -2
- package/utils/object.js +5 -5
- package/utils/pod-security-admission.ts +1 -1
- package/utils/projectAndNamespaceFiltering.utils.ts +1 -1
- package/utils/select.js +2 -2
- package/utils/selector.js +2 -2
- package/utils/settings.ts +17 -2
- package/utils/socket.js +30 -6
- package/utils/sort.js +1 -1
- package/utils/string.js +1 -1
- package/utils/url.ts +1 -1
- package/utils/validators/formRules/index.ts +3 -3
- package/utils/validators/role-template.js +4 -4
- package/utils/version.js +14 -1
- package/vue.config.js +19 -13
- package/components/form/GithubPicker.vue +0 -390
|
@@ -21,12 +21,12 @@ import Scope, { SCOPE_OPTIONS } from './Scope';
|
|
|
21
21
|
|
|
22
22
|
function findConstraintTypes(schemas) {
|
|
23
23
|
return schemas
|
|
24
|
-
.filter(schema => schema?.attributes?.group === 'constraints.gatekeeper.sh');
|
|
24
|
+
.filter((schema) => schema?.attributes?.group === 'constraints.gatekeeper.sh');
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
function findConstraintTypesIds(schemas) {
|
|
28
28
|
return findConstraintTypes(schemas)
|
|
29
|
-
.map(schema => schema.id);
|
|
29
|
+
.map((schema) => schema.id);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
const CONSTRAINT_PREFIX = 'constraints.gatekeeper.sh.';
|
|
@@ -145,8 +145,8 @@ export default {
|
|
|
145
145
|
},
|
|
146
146
|
systemNamespaceIds() {
|
|
147
147
|
return this.$store.getters['cluster/all'](NAMESPACE)
|
|
148
|
-
.filter(namespace => namespace.isSystem)
|
|
149
|
-
.map(namespace => namespace.id);
|
|
148
|
+
.filter((namespace) => namespace.isSystem)
|
|
149
|
+
.map((namespace) => namespace.id);
|
|
150
150
|
},
|
|
151
151
|
emptyDefaults() {
|
|
152
152
|
return {
|
|
@@ -185,7 +185,7 @@ export default {
|
|
|
185
185
|
.filter((x) => {
|
|
186
186
|
return x.metadata.namespace === this.value.metadata.namespace;
|
|
187
187
|
})
|
|
188
|
-
.filter(x => !isHarvesterCluster(x))
|
|
188
|
+
.filter((x) => !isHarvesterCluster(x))
|
|
189
189
|
.map((x) => {
|
|
190
190
|
return { label: x.nameDisplay, value: `cluster://${ x.metadata.name }` };
|
|
191
191
|
});
|
|
@@ -202,7 +202,7 @@ export default {
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
const groups = this.allClusterGroups
|
|
205
|
-
.filter(x => x.metadata.namespace === this.value.metadata.namespace)
|
|
205
|
+
.filter((x) => x.metadata.namespace === this.value.metadata.namespace)
|
|
206
206
|
.map((x) => {
|
|
207
207
|
return { label: x.nameDisplay, value: `group://${ x.metadata.name }` };
|
|
208
208
|
});
|
|
@@ -223,16 +223,16 @@ export default {
|
|
|
223
223
|
|
|
224
224
|
clusterNames() {
|
|
225
225
|
const out = this.allClusters
|
|
226
|
-
.filter(x => x.metadata.namespace === this.value.metadata.namespace)
|
|
227
|
-
.map(x => x.metadata.name);
|
|
226
|
+
.filter((x) => x.metadata.namespace === this.value.metadata.namespace)
|
|
227
|
+
.map((x) => x.metadata.name);
|
|
228
228
|
|
|
229
229
|
return out;
|
|
230
230
|
},
|
|
231
231
|
|
|
232
232
|
clusterGroupNames() {
|
|
233
233
|
const out = this.allClusterGroups
|
|
234
|
-
.filter(x => x.metadata.namespace === this.value.metadata.namespace)
|
|
235
|
-
.map(x => x.metadata.name);
|
|
234
|
+
.filter((x) => x.metadata.namespace === this.value.metadata.namespace)
|
|
235
|
+
.map((x) => x.metadata.name);
|
|
236
236
|
|
|
237
237
|
return out;
|
|
238
238
|
},
|
|
@@ -63,20 +63,20 @@ export default {
|
|
|
63
63
|
selectedNamespaceQuestions() {
|
|
64
64
|
const inStore = this.$store.getters['currentStore']();
|
|
65
65
|
|
|
66
|
-
const configMapRelationship = this.currentNamespace?.metadata?.relationships.find(relationship => relationship?.toType === 'configmap');
|
|
66
|
+
const configMapRelationship = this.currentNamespace?.metadata?.relationships.find((relationship) => relationship?.toType === 'configmap');
|
|
67
67
|
|
|
68
68
|
const questionsYaml = this.$store.getters[`${ inStore }/byId`](configMapRelationship?.toType, configMapRelationship?.toId)?.data?.['questions.yaml'];
|
|
69
69
|
|
|
70
70
|
return jsyaml.load(questionsYaml)?.questions;
|
|
71
71
|
},
|
|
72
72
|
currentNamespace() {
|
|
73
|
-
return this.namespaces.find(namespace => namespace.id === this.value?.metadata?.namespace);
|
|
73
|
+
return this.namespaces.find((namespace) => namespace.id === this.value?.metadata?.namespace);
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
|
|
77
77
|
methods: {
|
|
78
78
|
getNamespaceConfigMapId(namespace) {
|
|
79
|
-
return this.currentNamespace?.metadata?.relationships.find(relationship => relationship?.toType === 'configmap')?.toId;
|
|
79
|
+
return this.currentNamespace?.metadata?.relationships.find((relationship) => relationship?.toType === 'configmap')?.toId;
|
|
80
80
|
},
|
|
81
81
|
async getConfigMap(id) {
|
|
82
82
|
return await this.$store.dispatch('cluster/find', { type: CONFIG_MAP, id });
|
|
@@ -109,8 +109,8 @@ export default {
|
|
|
109
109
|
matches.push(emptyMatch(true));
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
const globalOutputRefs = (this.value.spec.globalOutputRefs || []).map(ref => ({ label: ref, value: ref }));
|
|
113
|
-
const localOutputRefs = (this.value.spec.localOutputRefs || []).map(ref => ({ label: ref, value: ref }));
|
|
112
|
+
const globalOutputRefs = (this.value.spec.globalOutputRefs || []).map((ref) => ({ label: ref, value: ref }));
|
|
113
|
+
const localOutputRefs = (this.value.spec.localOutputRefs || []).map((ref) => ({ label: ref, value: ref }));
|
|
114
114
|
|
|
115
115
|
return {
|
|
116
116
|
formSupported,
|
|
@@ -309,7 +309,7 @@ export default {
|
|
|
309
309
|
|
|
310
310
|
const select = match.select || {};
|
|
311
311
|
const exclude = match.exclude || {};
|
|
312
|
-
const allValuesAreEmpty = o => Object.values(o).every(isEmpty);
|
|
312
|
+
const allValuesAreEmpty = (o) => Object.values(o).every(isEmpty);
|
|
313
313
|
|
|
314
314
|
return allValuesAreEmpty(select) && allValuesAreEmpty(exclude);
|
|
315
315
|
});
|
|
@@ -329,7 +329,7 @@ export default {
|
|
|
329
329
|
cm.execCommand('unfold');
|
|
330
330
|
},
|
|
331
331
|
isTag(options, option) {
|
|
332
|
-
return !options.find(o => o.value === option.value);
|
|
332
|
+
return !options.find((o) => o.value === option.value);
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
};
|
|
@@ -37,7 +37,7 @@ export default {
|
|
|
37
37
|
|
|
38
38
|
set(this.value, 'spec', this.value.spec || {});
|
|
39
39
|
|
|
40
|
-
const providers = PROVIDERS.map(provider => ({
|
|
40
|
+
const providers = PROVIDERS.map((provider) => ({
|
|
41
41
|
...provider,
|
|
42
42
|
value: provider.name,
|
|
43
43
|
label: this.t(provider.labelKey)
|
|
@@ -89,7 +89,7 @@ export default {
|
|
|
89
89
|
return EDITOR_MODES;
|
|
90
90
|
},
|
|
91
91
|
enabledProviders() {
|
|
92
|
-
return this.providers.filter(p => p.enabled);
|
|
92
|
+
return this.providers.filter((p) => p.enabled);
|
|
93
93
|
},
|
|
94
94
|
isNamespaced() {
|
|
95
95
|
return this.value.type !== LOGGING?.CLUSTER_OUTPUT;
|
|
@@ -114,7 +114,7 @@ export default {
|
|
|
114
114
|
const t = this.$store.getters['i18n/t'];
|
|
115
115
|
|
|
116
116
|
if (this.selectedProvider === 'loki') {
|
|
117
|
-
const urlCheck = ['https://', 'http://'].some(checkValue => this.value.spec['loki'].url.toLowerCase().startsWith(checkValue));
|
|
117
|
+
const urlCheck = ['https://', 'http://'].some((checkValue) => this.value.spec['loki'].url.toLowerCase().startsWith(checkValue));
|
|
118
118
|
const isLokiHttps = this.value.spec['loki'].url ? urlCheck : undefined;
|
|
119
119
|
|
|
120
120
|
if (!isLokiHttps) {
|
|
@@ -71,7 +71,7 @@ export default (Vue as VueConstructor<Vue & InstanceType<typeof CreateEditView>>
|
|
|
71
71
|
if (!this.value.configuration) {
|
|
72
72
|
this.value.configuration = {
|
|
73
73
|
defaults: {},
|
|
74
|
-
exemptions: Object.assign({}, ...PSADimensions.map(dimension => ({ [dimension]: [] }))),
|
|
74
|
+
exemptions: Object.assign({}, ...PSADimensions.map((dimension) => ({ [dimension]: [] }))),
|
|
75
75
|
} as PSAConfig;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -14,8 +14,8 @@ import NameNsDescription from '@shell/components/form/NameNsDescription';
|
|
|
14
14
|
import { MANAGEMENT } from '@shell/config/types';
|
|
15
15
|
import { NAME } from '@shell/config/product/explorer';
|
|
16
16
|
import { PROJECT_ID, _VIEW, _CREATE, _EDIT } from '@shell/config/query-params';
|
|
17
|
-
import ProjectMembershipEditor from '@shell/components/form/Members/ProjectMembershipEditor';
|
|
18
|
-
|
|
17
|
+
import ProjectMembershipEditor, { canViewProjectMembershipEditor } from '@shell/components/form/Members/ProjectMembershipEditor';
|
|
18
|
+
|
|
19
19
|
import { HARVESTER_NAME as HARVESTER } from '@shell/config/features';
|
|
20
20
|
import { Banner } from '@components/Banner';
|
|
21
21
|
|
|
@@ -109,7 +109,7 @@ export default {
|
|
|
109
109
|
|
|
110
110
|
const cur = this.value.status?.podSecurityPolicyTemplateId;
|
|
111
111
|
|
|
112
|
-
if ( cur && !out.find(x => x.value === cur) ) {
|
|
112
|
+
if ( cur && !out.find((x) => x.value === cur) ) {
|
|
113
113
|
out.unshift({ label: this.t('project.psp.current', { value: cur }), value: cur });
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -47,7 +47,7 @@ export default {
|
|
|
47
47
|
this.$set(this, 'principalId', principalId);
|
|
48
48
|
},
|
|
49
49
|
async saveOverride() {
|
|
50
|
-
const asyncBindings = this.binding.roleTemplateIds.map(roleTemplateId => this.$store.dispatch(`management/create`, {
|
|
50
|
+
const asyncBindings = this.binding.roleTemplateIds.map((roleTemplateId) => this.$store.dispatch(`management/create`, {
|
|
51
51
|
type: MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING,
|
|
52
52
|
roleTemplateName: roleTemplateId,
|
|
53
53
|
principalName: this.member.principalId,
|
|
@@ -56,7 +56,7 @@ export default {
|
|
|
56
56
|
|
|
57
57
|
const bindings = await Promise.all(asyncBindings);
|
|
58
58
|
|
|
59
|
-
await Promise.all(bindings.map(binding => binding.save()));
|
|
59
|
+
await Promise.all(bindings.map((binding) => binding.save()));
|
|
60
60
|
await this.$store.dispatch(`management/findAll`, { type: MANAGEMENT.PROJECT_ROLE_TEMPLATE_BINDING, opt: { force: true } });
|
|
61
61
|
|
|
62
62
|
this.$router.replace(this.doneLocationOverride);
|
|
@@ -39,7 +39,7 @@ export default {
|
|
|
39
39
|
|
|
40
40
|
created() {
|
|
41
41
|
this.value.value = this.value.value || this.value.default;
|
|
42
|
-
this.enumOptions = this.setting?.kind === 'enum' ? this.setting.options.map(id => ({
|
|
42
|
+
this.enumOptions = this.setting?.kind === 'enum' ? this.setting.options.map((id) => ({
|
|
43
43
|
label: `advancedSettings.enum.${ this.value.id }.${ id }`,
|
|
44
44
|
value: id,
|
|
45
45
|
})) : [];
|
|
@@ -120,7 +120,7 @@ export default {
|
|
|
120
120
|
// Ensure username is unique (this does not happen in the backend)
|
|
121
121
|
const users = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.USER });
|
|
122
122
|
|
|
123
|
-
if (users.find(u => u.username === this.form.username)) {
|
|
123
|
+
if (users.find((u) => u.username === this.form.username)) {
|
|
124
124
|
throw new Error(this.t('user.edit.credentials.username.exists'));
|
|
125
125
|
}
|
|
126
126
|
|
|
@@ -159,7 +159,7 @@ export default {
|
|
|
159
159
|
// - Fetching the norman user again sometimes shows the correct value, sometimes not
|
|
160
160
|
// - Even if the fetched norman user shows the correct value, it doesn't show up in the steve user
|
|
161
161
|
// - Looks like we re-request the stale version via socket?
|
|
162
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
162
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
// Save user updates
|
|
@@ -39,9 +39,9 @@ export default {
|
|
|
39
39
|
default: {},
|
|
40
40
|
},
|
|
41
41
|
];
|
|
42
|
-
const authTypes = authOptions.map(option => option.value);
|
|
42
|
+
const authTypes = authOptions.map((option) => option.value);
|
|
43
43
|
const authType =
|
|
44
|
-
authTypes.find(authType => !isEmpty(this.value[authType])) ||
|
|
44
|
+
authTypes.find((authType) => !isEmpty(this.value[authType])) ||
|
|
45
45
|
authTypes[0];
|
|
46
46
|
|
|
47
47
|
this.initializeType(authOptions, authType);
|
|
@@ -50,7 +50,7 @@ export default {
|
|
|
50
50
|
const defaultReceiverValues = {};
|
|
51
51
|
const receiverSchema = this.$store.getters['cluster/schemaFor'](MONITORING.SPOOFED.ALERTMANAGERCONFIG_RECEIVER_SPEC);
|
|
52
52
|
const routeSchema = this.$store.getters['cluster/schemaFor'](MONITORING.SPOOFED.ALERTMANAGERCONFIG_ROUTE_SPEC);
|
|
53
|
-
const receiverOptions = (this.value?.spec?.receivers || []).map(receiver => receiver.name);
|
|
53
|
+
const receiverOptions = (this.value?.spec?.receivers || []).map((receiver) => receiver.name);
|
|
54
54
|
|
|
55
55
|
return {
|
|
56
56
|
actionMenuTargetElement: null,
|
|
@@ -185,7 +185,7 @@ export default {
|
|
|
185
185
|
return {
|
|
186
186
|
duplicateName: () => {
|
|
187
187
|
const receiversArray = this.alertmanagerConfigResource.spec.receivers;
|
|
188
|
-
const receiverNamesArray = receiversArray.map(R => R.name);
|
|
188
|
+
const receiverNamesArray = receiversArray.map((R) => R.name);
|
|
189
189
|
const receiversSet = new Set(receiverNamesArray);
|
|
190
190
|
|
|
191
191
|
if (receiversArray.length !== receiversSet.size) {
|
|
@@ -65,7 +65,7 @@ export default {
|
|
|
65
65
|
this.$set(this.value, 'responders', this.value.responders || []);
|
|
66
66
|
|
|
67
67
|
const responders = this.value.responders.map((responder) => {
|
|
68
|
-
const target = TARGETS.find(target => responder[target.value]);
|
|
68
|
+
const target = TARGETS.find((target) => responder[target.value]);
|
|
69
69
|
|
|
70
70
|
return {
|
|
71
71
|
type: responder.type,
|
|
@@ -118,10 +118,10 @@ export default {
|
|
|
118
118
|
row.value = text;
|
|
119
119
|
},
|
|
120
120
|
typeLabel(type) {
|
|
121
|
-
return TYPES.find(t => t.value === type).label;
|
|
121
|
+
return TYPES.find((t) => t.value === type).label;
|
|
122
122
|
},
|
|
123
123
|
targetLabel(target) {
|
|
124
|
-
return TARGETS.find(t => t.value === target).label;
|
|
124
|
+
return TARGETS.find((t) => t.value === target).label;
|
|
125
125
|
},
|
|
126
126
|
updateApiKeySecretName(name) {
|
|
127
127
|
const existingKey = this.value.apiKey?.key || '';
|
|
@@ -51,18 +51,18 @@ export default {
|
|
|
51
51
|
recordingRules() {
|
|
52
52
|
const { value: rules } = this;
|
|
53
53
|
|
|
54
|
-
return rules.filter(rule => has(rule, 'record'));
|
|
54
|
+
return rules.filter((rule) => has(rule, 'record'));
|
|
55
55
|
},
|
|
56
56
|
alertingRules() {
|
|
57
57
|
const { value: rules } = this;
|
|
58
58
|
|
|
59
|
-
return rules.filter(rule => has(rule, 'alert'));
|
|
59
|
+
return rules.filter((rule) => has(rule, 'alert'));
|
|
60
60
|
},
|
|
61
61
|
customRules() {
|
|
62
62
|
const { value: rules } = this;
|
|
63
63
|
|
|
64
64
|
return rules.filter(
|
|
65
|
-
rule => !has(rule, 'alert') && !has(rule, 'record')
|
|
65
|
+
(rule) => !has(rule, 'alert') && !has(rule, 'record')
|
|
66
66
|
);
|
|
67
67
|
},
|
|
68
68
|
hideRecordingRulesOnView() {
|
|
@@ -77,12 +77,12 @@ export default {
|
|
|
77
77
|
disableAddRecord() {
|
|
78
78
|
const { value: rules } = this;
|
|
79
79
|
|
|
80
|
-
return rules.find(rule => has(rule, 'alert'));
|
|
80
|
+
return rules.find((rule) => has(rule, 'alert'));
|
|
81
81
|
},
|
|
82
82
|
disableAddAlert() {
|
|
83
83
|
const { value: rules } = this;
|
|
84
84
|
|
|
85
|
-
return rules.find(rule => has(rule, 'record'));
|
|
85
|
+
return rules.find((rule) => has(rule, 'record'));
|
|
86
86
|
},
|
|
87
87
|
},
|
|
88
88
|
|
|
@@ -21,7 +21,7 @@ export function toMilliseconds(input) {
|
|
|
21
21
|
|
|
22
22
|
if (d) {
|
|
23
23
|
const properties = d.slice(1);
|
|
24
|
-
const numberD = properties.map(value => ([null, undefined].includes(value) ? 0 : Number(value)));
|
|
24
|
+
const numberD = properties.map((value) => ([null, undefined].includes(value) ? 0 : Number(value)));
|
|
25
25
|
const data = {};
|
|
26
26
|
|
|
27
27
|
[
|
|
@@ -42,7 +42,10 @@ export default {
|
|
|
42
42
|
},
|
|
43
43
|
|
|
44
44
|
data() {
|
|
45
|
-
return {
|
|
45
|
+
return {
|
|
46
|
+
fvFormRuleSets: [{ path: 'metadata.name', rules: ['dnsLabel'] }],
|
|
47
|
+
closedErrorMessages: []
|
|
48
|
+
};
|
|
46
49
|
},
|
|
47
50
|
|
|
48
51
|
computed: {
|
|
@@ -54,7 +57,7 @@ export default {
|
|
|
54
57
|
return [this.t('validation.prometheusRule.noEdit')];
|
|
55
58
|
}
|
|
56
59
|
|
|
57
|
-
return this.fvUnreportedValidationErrors;
|
|
60
|
+
return this.fvUnreportedValidationErrors.filter((e) => !this.closedErrorMessages.includes(e));
|
|
58
61
|
}
|
|
59
62
|
},
|
|
60
63
|
|
|
@@ -102,6 +105,8 @@ export default {
|
|
|
102
105
|
}
|
|
103
106
|
});
|
|
104
107
|
|
|
108
|
+
this.closedErrorMessages = [];
|
|
109
|
+
|
|
105
110
|
return true;
|
|
106
111
|
},
|
|
107
112
|
|
|
@@ -125,7 +130,7 @@ export default {
|
|
|
125
130
|
:mode="mode"
|
|
126
131
|
:resource="value"
|
|
127
132
|
:validation-passed="fvFormIsValid"
|
|
128
|
-
@error="(
|
|
133
|
+
@error="(_, closedError) => closedErrorMessages.push(closedError)"
|
|
129
134
|
@finish="save"
|
|
130
135
|
>
|
|
131
136
|
<div class="row">
|
|
@@ -47,8 +47,8 @@ export default {
|
|
|
47
47
|
default: ''
|
|
48
48
|
}
|
|
49
49
|
];
|
|
50
|
-
const authTypes = authOptions.map(option => option.value);
|
|
51
|
-
const authType = authTypes.find(authType => !isEmpty(this.value[authType])) || authTypes[0];
|
|
50
|
+
const authTypes = authOptions.map((option) => option.value);
|
|
51
|
+
const authType = authTypes.find((authType) => !isEmpty(this.value[authType])) || authTypes[0];
|
|
52
52
|
|
|
53
53
|
this.initializeType(authOptions, authType);
|
|
54
54
|
|
|
@@ -35,10 +35,9 @@ export default {
|
|
|
35
35
|
<div class="row">
|
|
36
36
|
<div class="col span-12">
|
|
37
37
|
<h3>{{ t('monitoring.receiver.tls.label') }}</h3>
|
|
38
|
-
<Banner
|
|
39
|
-
v-clean-html="t('monitoring.receiver.tls.secretsBanner', {}, true)"
|
|
40
|
-
|
|
41
|
-
/>
|
|
38
|
+
<Banner color="info">
|
|
39
|
+
<span v-clean-html="t('monitoring.receiver.tls.secretsBanner', {}, true)" />
|
|
40
|
+
</Banner>
|
|
42
41
|
</div>
|
|
43
42
|
</div>
|
|
44
43
|
<div class="row mb-20">
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { mount } from '@vue/test-utils';
|
|
2
|
+
import Email from '@shell/edit/monitoring.coreos.com.receiver/types/email.vue';
|
|
3
|
+
|
|
4
|
+
describe('page: Routes and Receivers', () => {
|
|
5
|
+
it('should have host field with a valid integer value under Email form', () => {
|
|
6
|
+
const wrapper = mount(Email, {
|
|
7
|
+
propsData: {
|
|
8
|
+
mode: 'create',
|
|
9
|
+
value: {}
|
|
10
|
+
},
|
|
11
|
+
mocks: {
|
|
12
|
+
t: (text: string) => text, // Mock i18n global function used as alternative to the getter
|
|
13
|
+
$store: {
|
|
14
|
+
getters: {
|
|
15
|
+
'i18n/t': jest.fn(),
|
|
16
|
+
'i18n/exists': jest.fn()
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const host = wrapper.find('[data-testid="input-email-host"]');
|
|
23
|
+
|
|
24
|
+
host.setValue('10.2.300.3');
|
|
25
|
+
|
|
26
|
+
expect(host.exists()).toBe(true);
|
|
27
|
+
expect(host.element.value).toStrictEqual('10.2.300.3');
|
|
28
|
+
});
|
|
29
|
+
it('should have port field with a valid integer value under Email form', () => {
|
|
30
|
+
const wrapper = mount(Email, {
|
|
31
|
+
propsData: {
|
|
32
|
+
mode: 'create',
|
|
33
|
+
value: {}
|
|
34
|
+
},
|
|
35
|
+
mocks: {
|
|
36
|
+
t: (text: string) => text, // Mock i18n global function used as alternative to the getter
|
|
37
|
+
$store: {
|
|
38
|
+
getters: {
|
|
39
|
+
'i18n/t': jest.fn(),
|
|
40
|
+
'i18n/exists': jest.fn()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const port = wrapper.find('[data-testid="input-email-port"]');
|
|
47
|
+
|
|
48
|
+
port.setValue('8080');
|
|
49
|
+
|
|
50
|
+
expect(port.exists()).toBe(true);
|
|
51
|
+
expect(port.element.value).toStrictEqual('8080');
|
|
52
|
+
});
|
|
53
|
+
});
|
|
@@ -78,6 +78,7 @@ export default {
|
|
|
78
78
|
v-model="value.host"
|
|
79
79
|
:mode="mode"
|
|
80
80
|
label="Host"
|
|
81
|
+
data-testid="input-email-host"
|
|
81
82
|
placeholder="e.g. 192.168.1.121"
|
|
82
83
|
/>
|
|
83
84
|
</div>
|
|
@@ -86,6 +87,7 @@ export default {
|
|
|
86
87
|
v-model="value.port"
|
|
87
88
|
:mode="mode"
|
|
88
89
|
label="Port"
|
|
90
|
+
data-testid="input-email-port"
|
|
89
91
|
placeholder="e.g. 80"
|
|
90
92
|
/>
|
|
91
93
|
</div>
|
|
@@ -68,7 +68,7 @@ export default {
|
|
|
68
68
|
this.$set(this.value, 'responders', this.value.responders || []);
|
|
69
69
|
|
|
70
70
|
const responders = this.value.responders.map((responder) => {
|
|
71
|
-
const target = TARGETS.find(target => responder[target.value]);
|
|
71
|
+
const target = TARGETS.find((target) => responder[target.value]);
|
|
72
72
|
|
|
73
73
|
return {
|
|
74
74
|
type: responder.type,
|
|
@@ -117,10 +117,10 @@ export default {
|
|
|
117
117
|
row.value = text;
|
|
118
118
|
},
|
|
119
119
|
typeLabel(type) {
|
|
120
|
-
return TYPES.find(t => t.value === type).label;
|
|
120
|
+
return TYPES.find((t) => t.value === type).label;
|
|
121
121
|
},
|
|
122
122
|
targetLabel(target) {
|
|
123
|
-
return TARGETS.find(t => t.value === target).label;
|
|
123
|
+
return TARGETS.find((t) => t.value === target).label;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
};
|
|
@@ -39,10 +39,10 @@ export default {
|
|
|
39
39
|
const receivers = this.$store.dispatch('cluster/findAll', { type: MONITORING.SPOOFED.RECEIVER });
|
|
40
40
|
const routes = this.$store.dispatch('cluster/findAll', { type: MONITORING.SPOOFED.ROUTE });
|
|
41
41
|
|
|
42
|
-
this.receiverOptions = (await receivers).map(receiver => receiver.spec.name);
|
|
42
|
+
this.receiverOptions = (await receivers).map((receiver) => receiver.spec.name);
|
|
43
43
|
|
|
44
44
|
if (this.isCreate) {
|
|
45
|
-
const nonRootRoutes = (await routes).filter(route => !route.isRoot);
|
|
45
|
+
const nonRootRoutes = (await routes).filter((route) => !route.isRoot);
|
|
46
46
|
|
|
47
47
|
this.$set(this.value.spec, 'name', createDefaultRouteName(nonRootRoutes.length));
|
|
48
48
|
}
|