@rancher/shell 0.3.14 → 0.3.15
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 +83 -2
- 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/harvester.vue +2 -2
- package/components/AssignTo.vue +1 -1
- package/components/AwsComplianceBanner.vue +1 -1
- package/components/BackLink.vue +7 -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 +2 -1
- package/components/DashboardMetrics.vue +8 -0
- package/components/DetailTop.vue +1 -1
- 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 +7 -1
- 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/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 +9 -9
- 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 +1 -1
- 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 +4 -4
- package/config/product/explorer.js +14 -0
- package/config/router.js +5 -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/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/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.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 +2 -1
- package/pages/about.vue +9 -9
- package/pages/account/index.vue +2 -2
- package/pages/auth/login.vue +15 -12
- 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 +9 -9
- 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 +3 -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 +3 -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/StringList/StringList.vue +34 -50
- 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 +21 -13
- 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/.DS_Store +0 -0
- package/components/__tests__/.DS_Store +0 -0
- package/components/form/GithubPicker.vue +0 -390
- package/creators/pkg/package-lock.json +0 -37
- package/yarn-error.log +0 -196
|
@@ -98,7 +98,7 @@ export default {
|
|
|
98
98
|
portOptions() {
|
|
99
99
|
const ports = this.value?.spec?.ports || [];
|
|
100
100
|
|
|
101
|
-
return ports.filter(p => p.port && p.protocol === 'TCP').map(p => p.port) || [];
|
|
101
|
+
return ports.filter((p) => p.port && p.protocol === 'TCP').map((p) => p.port) || [];
|
|
102
102
|
},
|
|
103
103
|
|
|
104
104
|
serviceOptions() {
|
|
@@ -116,7 +116,7 @@ export default {
|
|
|
116
116
|
namespaces[s.metadata.namespace];
|
|
117
117
|
});
|
|
118
118
|
|
|
119
|
-
return out.map(s => s.id);
|
|
119
|
+
return out.map((s) => s.id);
|
|
120
120
|
},
|
|
121
121
|
|
|
122
122
|
shareIPEnabled() {
|
|
@@ -124,7 +124,7 @@ export default {
|
|
|
124
124
|
const kubernetesVersionExtension = this.currentCluster.kubernetesVersionExtension;
|
|
125
125
|
|
|
126
126
|
if (kubernetesVersionExtension.startsWith('+rke2')) {
|
|
127
|
-
const charts = ((this.rke2Versions?.data || []).find(v => v.id === kubernetesVersion) || {}).charts;
|
|
127
|
+
const charts = ((this.rke2Versions?.data || []).find((v) => v.id === kubernetesVersion) || {}).charts;
|
|
128
128
|
let ccmVersion = charts?.['harvester-cloud-provider']?.version || '';
|
|
129
129
|
|
|
130
130
|
if (ccmVersion.endsWith('00')) {
|
|
@@ -188,6 +188,7 @@ export default {
|
|
|
188
188
|
:mode="mode"
|
|
189
189
|
:options="ipamOptions"
|
|
190
190
|
:label="t('servicesPage.harvester.ipam.label')"
|
|
191
|
+
:disabled="mode === 'edit'"
|
|
191
192
|
/>
|
|
192
193
|
<div
|
|
193
194
|
v-if="mode === 'create'"
|
package/components/IconOrSvg.vue
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import Vue from 'vue';
|
|
20
20
|
import { Solver } from '@shell/utils/svg-filter';
|
|
21
|
-
import { colorToRgb, mapStandardColors } from '@shell/utils/color';
|
|
21
|
+
import { colorToRgb, mapStandardColors, normalizeHex } from '@shell/utils/color';
|
|
22
22
|
|
|
23
23
|
const filterCache = {};
|
|
24
24
|
const cssCache = {};
|
|
@@ -75,11 +75,18 @@ export default {
|
|
|
75
75
|
if (stylesheet && stylesheet.cssRules) {
|
|
76
76
|
for (let x = 0; x < Object.keys(stylesheet.cssRules).length; x++) {
|
|
77
77
|
const cssRules = stylesheet.cssRules[x];
|
|
78
|
-
const selectorText = currTheme === 'light' ? 'body, .theme-light' : '.theme-dark';
|
|
79
78
|
|
|
80
|
-
if (cssRules.selectorText &&
|
|
79
|
+
if (cssRules.selectorText && ((currTheme === 'light' && cssRules.selectorText.includes('body') &&
|
|
80
|
+
cssRules.selectorText.includes('.theme-light') && cssRules.style.cssText.includes('--link:')) ||
|
|
81
|
+
(currTheme === 'dark' && cssRules.selectorText.includes('.theme-dark')))) {
|
|
82
|
+
// grab the colors to be used on the icon from the css rules
|
|
81
83
|
uiColor = mapStandardColors(cssRules.style.getPropertyValue(colors[this.color].color).trim());
|
|
82
84
|
hoverColor = mapStandardColors(cssRules.style.getPropertyValue(colors[this.color].hover).trim());
|
|
85
|
+
|
|
86
|
+
// normalize hex colors (#xxx to #xxxxxx)
|
|
87
|
+
uiColor = normalizeHex(uiColor);
|
|
88
|
+
hoverColor = normalizeHex(hoverColor);
|
|
89
|
+
|
|
83
90
|
found = true;
|
|
84
91
|
break;
|
|
85
92
|
}
|
|
@@ -35,7 +35,7 @@ export default {
|
|
|
35
35
|
routeFromDropdown: {
|
|
36
36
|
get() {
|
|
37
37
|
const route = this.customRoute || {};
|
|
38
|
-
const out = this.routeDropdownOptions.find(opt => opt.value.name === route.name && opt.value.params?.cluster === route.params?.cluster);
|
|
38
|
+
const out = this.routeDropdownOptions.find((opt) => opt.value.name === route.name && opt.value.params?.cluster === route.params?.cluster);
|
|
39
39
|
|
|
40
40
|
return out || this.routeDropdownOptions[0];
|
|
41
41
|
},
|
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
routeDropdownOptions() {
|
|
73
73
|
// Drop-down shows list of clusters that can ber set as login landing page
|
|
74
74
|
const out = [];
|
|
75
|
-
const kubeClusters = filterHiddenLocalCluster(filterOnlyKubernetesClusters(this.clusters), this.$store);
|
|
75
|
+
const kubeClusters = filterHiddenLocalCluster(filterOnlyKubernetesClusters(this.clusters, this.$store), this.$store);
|
|
76
76
|
|
|
77
77
|
kubeClusters.forEach((c) => {
|
|
78
78
|
if (c.isReady) {
|
package/components/MoveModal.vue
CHANGED
|
@@ -27,7 +27,7 @@ export default {
|
|
|
27
27
|
...mapGetters(['currentCluster']),
|
|
28
28
|
|
|
29
29
|
excludedProjects() {
|
|
30
|
-
return this.toMove.filter(namespace => !!namespace.project).map(namespace => namespace.project.shortId);
|
|
30
|
+
return this.toMove.filter((namespace) => !!namespace.project).map((namespace) => namespace.project.shortId);
|
|
31
31
|
},
|
|
32
32
|
|
|
33
33
|
projectOptions() {
|
|
@@ -83,7 +83,7 @@ export default Vue.extend({
|
|
|
83
83
|
// Generate PSA form controls
|
|
84
84
|
psaControls: toDictionary(PSAModes, getPsaControl) as Record<PSAMode, PSAControl>,
|
|
85
85
|
psaExemptionsControls: toDictionary(PSADimensions, getExemptionControl) as Record<PSADimension, PSAExemptionControl>,
|
|
86
|
-
options: PSALevels.map(level => ({
|
|
86
|
+
options: PSALevels.map((level) => ({
|
|
87
87
|
value: level,
|
|
88
88
|
label: this.t(`podSecurityAdmission.labels.${ level }`)
|
|
89
89
|
})),
|
|
@@ -145,7 +145,7 @@ export default Vue.extend({
|
|
|
145
145
|
*/
|
|
146
146
|
updateExemptions(): void {
|
|
147
147
|
const exemptions = PSADimensions.reduce((acc, dimension) => {
|
|
148
|
-
const value = this.psaExemptionsControls[dimension].value.split(',').map(value => value.trim());
|
|
148
|
+
const value = this.psaExemptionsControls[dimension].value.split(',').map((value) => value.trim());
|
|
149
149
|
const active = this.psaExemptionsControls[dimension].active;
|
|
150
150
|
|
|
151
151
|
return {
|
|
@@ -182,7 +182,7 @@ export default Vue.extend({
|
|
|
182
182
|
*/
|
|
183
183
|
getPsaExemptions(): Record<PSADimension, PSAExemptionControl> {
|
|
184
184
|
return PSADimensions.reduce((acc, dimension) => {
|
|
185
|
-
const values = (this.exemptions[dimension] || []).map(value => value.trim()).join(',');
|
|
185
|
+
const values = (this.exemptions[dimension] || []).map((value) => value.trim()).join(',');
|
|
186
186
|
|
|
187
187
|
return {
|
|
188
188
|
...acc,
|
|
@@ -68,7 +68,7 @@ export default {
|
|
|
68
68
|
if ( !this.max ) {
|
|
69
69
|
max = 100;
|
|
70
70
|
if ( out.length ) {
|
|
71
|
-
max = out.map(x => x.value).reduce((a, b) => a + b);
|
|
71
|
+
max = out.map((x) => x.value).reduce((a, b) => a + b);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -88,7 +88,7 @@ export default {
|
|
|
88
88
|
obj.style = `width: ${ obj.percent }%`;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
return out.filter(obj => obj.percent);
|
|
91
|
+
return out.filter((obj) => obj.percent);
|
|
92
92
|
},
|
|
93
93
|
}
|
|
94
94
|
};
|
|
@@ -9,11 +9,13 @@ import { uniq } from '@shell/utils/array';
|
|
|
9
9
|
import AsyncButton from '@shell/components/AsyncButton';
|
|
10
10
|
import { CATALOG as CATALOG_ANNOTATIONS } from '@shell/config/labels-annotations';
|
|
11
11
|
import { CATALOG } from '@shell/config/types';
|
|
12
|
+
import { LabeledInput } from '@components/Form/LabeledInput';
|
|
13
|
+
|
|
12
14
|
export default {
|
|
13
15
|
name: 'PromptRemove',
|
|
14
16
|
|
|
15
17
|
components: {
|
|
16
|
-
Card, Checkbox, AsyncButton
|
|
18
|
+
Card, Checkbox, AsyncButton, LabeledInput
|
|
17
19
|
},
|
|
18
20
|
props: {
|
|
19
21
|
/**
|
|
@@ -42,7 +44,7 @@ export default {
|
|
|
42
44
|
},
|
|
43
45
|
computed: {
|
|
44
46
|
names() {
|
|
45
|
-
return this.toRemove.map(obj => obj.nameDisplay).slice(0, 5);
|
|
47
|
+
return this.toRemove.map((obj) => obj.nameDisplay).slice(0, 5);
|
|
46
48
|
},
|
|
47
49
|
|
|
48
50
|
nameToMatchPosition() {
|
|
@@ -100,6 +102,11 @@ export default {
|
|
|
100
102
|
if (this.toRemove.length > 1) {
|
|
101
103
|
return null;
|
|
102
104
|
}
|
|
105
|
+
|
|
106
|
+
if (this.toRemove[0].doneLocationRemove) {
|
|
107
|
+
return this.toRemove[0].doneLocationRemove;
|
|
108
|
+
}
|
|
109
|
+
|
|
103
110
|
const currentRoute = this.toRemove[0].currentRoute();
|
|
104
111
|
const out = {};
|
|
105
112
|
const params = { ...currentRoute.params };
|
|
@@ -184,7 +191,7 @@ export default {
|
|
|
184
191
|
// if none found (delete is allowed), then check for any resources with a warning message
|
|
185
192
|
toRemove(neu) {
|
|
186
193
|
let message;
|
|
187
|
-
const preventDeletionMessages = neu.filter(item => item.preventDeletionMessage);
|
|
194
|
+
const preventDeletionMessages = neu.filter((item) => item.preventDeletionMessage);
|
|
188
195
|
|
|
189
196
|
this.preventDelete = false;
|
|
190
197
|
|
|
@@ -192,7 +199,7 @@ export default {
|
|
|
192
199
|
this.preventDelete = true;
|
|
193
200
|
message = preventDeletionMessages[0].preventDeletionMessage;
|
|
194
201
|
} else {
|
|
195
|
-
const warnDeletionMessages = neu.filter(item => item.warnDeletionMessage);
|
|
202
|
+
const warnDeletionMessages = neu.filter((item) => item.warnDeletionMessage);
|
|
196
203
|
|
|
197
204
|
if (!!warnDeletionMessages.length) {
|
|
198
205
|
message = warnDeletionMessages[0].warnDeletionMessage;
|
|
@@ -224,6 +231,7 @@ export default {
|
|
|
224
231
|
// doneLocation will recompute to undefined when delete request completes
|
|
225
232
|
this.cachedDoneLocation = { ...this.doneLocation };
|
|
226
233
|
}
|
|
234
|
+
|
|
227
235
|
if (this.hasCustomRemove && this.$refs?.customPrompt?.remove) {
|
|
228
236
|
let handled = this.$refs.customPrompt.remove(btnCB);
|
|
229
237
|
|
|
@@ -247,7 +255,7 @@ export default {
|
|
|
247
255
|
return;
|
|
248
256
|
}
|
|
249
257
|
}
|
|
250
|
-
const serialRemove = this.toRemove.some(resource => resource.removeSerially);
|
|
258
|
+
const serialRemove = this.toRemove.some((resource) => resource.removeSerially);
|
|
251
259
|
|
|
252
260
|
if (serialRemove) {
|
|
253
261
|
this.serialRemove(btnCB);
|
|
@@ -272,10 +280,16 @@ export default {
|
|
|
272
280
|
},
|
|
273
281
|
async parallelRemove(btnCB) {
|
|
274
282
|
try {
|
|
283
|
+
if (typeof this.toRemove[0].bulkRemove !== 'undefined') {
|
|
284
|
+
await this.toRemove[0].bulkRemove(this.toRemove, {});
|
|
285
|
+
} else {
|
|
286
|
+
await Promise.all(this.toRemove.map((resource) => resource.remove()));
|
|
287
|
+
}
|
|
288
|
+
|
|
275
289
|
const spoofedTypes = this.getSpoofedTypes(this.toRemove);
|
|
276
290
|
|
|
277
|
-
await Promise.all(this.toRemove.map(resource => resource.remove()));
|
|
278
291
|
await this.refreshSpoofedTypes(spoofedTypes);
|
|
292
|
+
|
|
279
293
|
this.done();
|
|
280
294
|
} catch (err) {
|
|
281
295
|
this.error = err.message || err;
|
|
@@ -289,7 +303,7 @@ export default {
|
|
|
289
303
|
this.close();
|
|
290
304
|
},
|
|
291
305
|
getSpoofedTypes(resources) {
|
|
292
|
-
const uniqueResourceTypes = uniq(this.toRemove.map(resource => resource.type));
|
|
306
|
+
const uniqueResourceTypes = uniq(this.toRemove.map((resource) => resource.type));
|
|
293
307
|
|
|
294
308
|
return uniqueResourceTypes.filter(this.$store.getters['type-map/isSpoofed']);
|
|
295
309
|
},
|
|
@@ -297,7 +311,7 @@ export default {
|
|
|
297
311
|
// If spoofed we need to reload the values as the server can't have watchers for them.
|
|
298
312
|
refreshSpoofedTypes(types) {
|
|
299
313
|
const inStore = this.$store.getters['currentProduct'].inStore;
|
|
300
|
-
const promises = types.map(type => this.$store.dispatch(`${ inStore }/findAll`, { type, opt: { force: true } }, { root: true }));
|
|
314
|
+
const promises = types.map((type) => this.$store.dispatch(`${ inStore }/findAll`, { type, opt: { force: true } }, { root: true }));
|
|
301
315
|
|
|
302
316
|
return Promise.all(promises);
|
|
303
317
|
},
|
|
@@ -372,32 +386,42 @@ export default {
|
|
|
372
386
|
</div>
|
|
373
387
|
</template>
|
|
374
388
|
</div>
|
|
375
|
-
<
|
|
389
|
+
<LabeledInput
|
|
376
390
|
v-if="needsConfirm"
|
|
377
391
|
id="confirm"
|
|
378
392
|
v-model="confirmName"
|
|
393
|
+
v-focus
|
|
379
394
|
:data-testid="componentTestid + '-input'"
|
|
380
395
|
type="text"
|
|
381
396
|
>
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
397
|
+
<div class="text-warning mb-10 mt-10">
|
|
398
|
+
{{ warning }}
|
|
399
|
+
</div>
|
|
400
|
+
<div class="text-error mb-10 mt-10">
|
|
401
|
+
{{ error }}
|
|
402
|
+
</div>
|
|
403
|
+
<div
|
|
404
|
+
v-if="!needsConfirm"
|
|
405
|
+
class="text-info mt-20"
|
|
406
|
+
>
|
|
407
|
+
{{ protip }}
|
|
408
|
+
</div>
|
|
409
|
+
<Checkbox
|
|
410
|
+
v-if="chartsToRemoveIsApp"
|
|
411
|
+
v-model="chartsDeleteCrd"
|
|
412
|
+
label-key="promptRemoveApp.removeCrd"
|
|
413
|
+
class="mt-10 type"
|
|
414
|
+
@input="chartAddCrdToRemove"
|
|
415
|
+
/>
|
|
416
|
+
</labeledinput>
|
|
417
|
+
<template v-else>
|
|
418
|
+
<div class="text-warning mb-10 mt-10">
|
|
419
|
+
{{ warning }}
|
|
420
|
+
</div>
|
|
421
|
+
<div class="text-error mb-10 mt-10">
|
|
422
|
+
{{ error }}
|
|
423
|
+
</div>
|
|
424
|
+
</template>
|
|
401
425
|
</div>
|
|
402
426
|
<template #actions>
|
|
403
427
|
<button
|
|
@@ -70,7 +70,7 @@ export default {
|
|
|
70
70
|
|
|
71
71
|
clusterSnapshots() {
|
|
72
72
|
if (this.sortedSnapshots) {
|
|
73
|
-
return this.sortedSnapshots.map(snapshot => ({ label: this.snapshotLabel(snapshot), value: snapshot.name }));
|
|
73
|
+
return this.sortedSnapshots.map((snapshot) => ({ label: this.snapshotLabel(snapshot), value: snapshot.name }));
|
|
74
74
|
} else {
|
|
75
75
|
return [];
|
|
76
76
|
}
|
|
@@ -115,13 +115,13 @@ export default {
|
|
|
115
115
|
|
|
116
116
|
if (!cluster.isRke2) {
|
|
117
117
|
promise = this.$store.dispatch('rancher/findAll', { type: NORMAN.ETCD_BACKUP }).then((snapshots) => {
|
|
118
|
-
return snapshots.filter(s => s.clusterId === cluster.metadata.name);
|
|
118
|
+
return snapshots.filter((s) => s.clusterId === cluster.metadata.name);
|
|
119
119
|
});
|
|
120
120
|
} else {
|
|
121
121
|
promise = this.$store.dispatch('management/findAll', { type: SNAPSHOT }).then((snapshots) => {
|
|
122
122
|
const toRestoreClusterName = cluster?.clusterName || cluster?.metadata?.name;
|
|
123
123
|
|
|
124
|
-
return snapshots.filter(s => s.clusterName === toRestoreClusterName);
|
|
124
|
+
return snapshots.filter((s) => s.clusterName === toRestoreClusterName);
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
|
|
@@ -67,9 +67,9 @@ function migrate(expr) {
|
|
|
67
67
|
let out;
|
|
68
68
|
|
|
69
69
|
if ( expr.includes('||') ) {
|
|
70
|
-
out = expr.split('||').map(x => migrate(x)).join(' || ');
|
|
70
|
+
out = expr.split('||').map((x) => migrate(x)).join(' || ');
|
|
71
71
|
} else if ( expr.includes('&&') ) {
|
|
72
|
-
out = expr.split('&&').map(x => migrate(x)).join(' && ');
|
|
72
|
+
out = expr.split('&&').map((x) => migrate(x)).join(' && ');
|
|
73
73
|
} else {
|
|
74
74
|
const parts = expr.match(/^(.*)(!?=)(.*)$/);
|
|
75
75
|
|
|
@@ -311,9 +311,9 @@ export default {
|
|
|
311
311
|
let result;
|
|
312
312
|
|
|
313
313
|
if ( get(or, 'length') > 1 ) {
|
|
314
|
-
result = or.some(showIf => this.calExpression(showIf, allQuestions));
|
|
314
|
+
result = or.some((showIf) => this.calExpression(showIf, allQuestions));
|
|
315
315
|
} else {
|
|
316
|
-
result = and.every(showIf => this.calExpression(showIf, allQuestions));
|
|
316
|
+
result = and.every((showIf) => this.calExpression(showIf, allQuestions));
|
|
317
317
|
}
|
|
318
318
|
|
|
319
319
|
return result;
|
|
@@ -368,7 +368,7 @@ export default {
|
|
|
368
368
|
return null;
|
|
369
369
|
},
|
|
370
370
|
getAnswer(variable, questions) {
|
|
371
|
-
const found = questions.find(q => q.variable === variable);
|
|
371
|
+
const found = questions.find((q) => q.variable === variable);
|
|
372
372
|
|
|
373
373
|
if ( found ) {
|
|
374
374
|
// Equivalent to finding question.answer in Ember
|
|
@@ -22,7 +22,7 @@ export default {
|
|
|
22
22
|
WORKLOAD_TYPES.JOB,
|
|
23
23
|
WORKLOAD_TYPES.STATEFUL_SET
|
|
24
24
|
];
|
|
25
|
-
const allWorkloadsNested = await Promise.all(types.map(type => this.$store.dispatch('cluster/findAll', { type })));
|
|
25
|
+
const allWorkloadsNested = await Promise.all(types.map((type) => this.$store.dispatch('cluster/findAll', { type })));
|
|
26
26
|
const allWorkloads = allWorkloadsNested.flat();
|
|
27
27
|
|
|
28
28
|
this.relatedWorkloadRows = allWorkloads.filter(this.filter);
|
|
@@ -139,7 +139,7 @@ export default {
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
// blocked-post means you can post through norman, but not through steve.
|
|
142
|
-
if ( this.schema && !this.schema?.collectionMethods.find(x => ['blocked-post', 'post'].includes(x.toLowerCase())) ) {
|
|
142
|
+
if ( this.schema && !this.schema?.collectionMethods.find((x) => ['blocked-post', 'post'].includes(x.toLowerCase())) ) {
|
|
143
143
|
return false;
|
|
144
144
|
}
|
|
145
145
|
|
|
@@ -225,7 +225,7 @@ export default {
|
|
|
225
225
|
|
|
226
226
|
// If only one namespace is selected, hide the namespace column
|
|
227
227
|
if ( !showNamespace ) {
|
|
228
|
-
const idx = headers.findIndex(header => header.name === NAMESPACE.name);
|
|
228
|
+
const idx = headers.findIndex((header) => header.name === NAMESPACE.name);
|
|
229
229
|
|
|
230
230
|
if ( idx >= 0 ) {
|
|
231
231
|
headers.splice(idx, 1);
|
|
@@ -236,7 +236,7 @@ export default {
|
|
|
236
236
|
const custom = this.listGroupMapped[this.group];
|
|
237
237
|
|
|
238
238
|
if (custom?.hideColumn) {
|
|
239
|
-
const idx = headers.findIndex(header => header.name === custom.hideColumn);
|
|
239
|
+
const idx = headers.findIndex((header) => header.name === custom.hideColumn);
|
|
240
240
|
|
|
241
241
|
if ( idx >= 0 ) {
|
|
242
242
|
headers.splice(idx, 1);
|
|
@@ -291,7 +291,7 @@ export default {
|
|
|
291
291
|
group: {
|
|
292
292
|
get() {
|
|
293
293
|
// Check group is valid
|
|
294
|
-
const exists = this.groupOptions.find(g => g.value === this._group);
|
|
294
|
+
const exists = this.groupOptions.find((g) => g.value === this._group);
|
|
295
295
|
|
|
296
296
|
if (!exists) {
|
|
297
297
|
return DEFAULT_GROUP;
|
|
@@ -166,7 +166,7 @@ export default {
|
|
|
166
166
|
try {
|
|
167
167
|
const parsed = jsyaml.load(this.currentYaml);
|
|
168
168
|
const annotations = Object.keys(parsed?.metadata?.annotations || {});
|
|
169
|
-
const regexes = ANNOTATIONS_TO_FOLD.map(x => ensureRegex(x));
|
|
169
|
+
const regexes = ANNOTATIONS_TO_FOLD.map((x) => ensureRegex(x));
|
|
170
170
|
|
|
171
171
|
let foldAnnotations = false;
|
|
172
172
|
|
|
@@ -179,7 +179,7 @@ export default {
|
|
|
179
179
|
},
|
|
180
180
|
|
|
181
181
|
existingBindings() {
|
|
182
|
-
const roles = this.roles.map(x => x.name);
|
|
182
|
+
const roles = this.roles.map((x) => x.name);
|
|
183
183
|
|
|
184
184
|
const out = this.allBindings.filter((binding) => {
|
|
185
185
|
if ( binding.roleRef.kind !== this.roleScope || !binding.roleRef?.name) {
|
|
@@ -197,7 +197,7 @@ export default {
|
|
|
197
197
|
},
|
|
198
198
|
|
|
199
199
|
unremovedRows() {
|
|
200
|
-
return this.rows.filter(x => x.remove !== true);
|
|
200
|
+
return this.rows.filter((x) => x.remove !== true);
|
|
201
201
|
},
|
|
202
202
|
},
|
|
203
203
|
|
|
@@ -37,7 +37,7 @@ export default {
|
|
|
37
37
|
},
|
|
38
38
|
|
|
39
39
|
accessibleResources() {
|
|
40
|
-
return RESOURCES.filter(resource => this.$store.getters['cluster/schemaFor'](resource));
|
|
40
|
+
return RESOURCES.filter((resource) => this.$store.getters['cluster/schemaFor'](resource));
|
|
41
41
|
},
|
|
42
42
|
|
|
43
43
|
totalCountGaugeInput() {
|
|
@@ -38,11 +38,11 @@ export default {
|
|
|
38
38
|
|
|
39
39
|
computed: {
|
|
40
40
|
availableActions() {
|
|
41
|
-
return this.bulkActionsForSelection.filter(act => !act.external);
|
|
41
|
+
return this.bulkActionsForSelection.filter((act) => !act.external);
|
|
42
42
|
},
|
|
43
43
|
|
|
44
44
|
keyedAvailableActions() {
|
|
45
|
-
return this.availableActions.map(aa => aa.action);
|
|
45
|
+
return this.availableActions.map((aa) => aa.action);
|
|
46
46
|
},
|
|
47
47
|
|
|
48
48
|
selectedRowsText() {
|
|
@@ -139,7 +139,7 @@ export default {
|
|
|
139
139
|
// Collate the actions in an array and hide in the normal row
|
|
140
140
|
const id = ba.attributes.getNamedItem('id').value;
|
|
141
141
|
|
|
142
|
-
this.hiddenActions.push(this.availableActions.find(aa => aa.action === id));
|
|
142
|
+
this.hiddenActions.push(this.availableActions.find((aa) => aa.action === id));
|
|
143
143
|
ba.style.display = 'none';
|
|
144
144
|
}
|
|
145
145
|
}
|
|
@@ -83,7 +83,7 @@ export default {
|
|
|
83
83
|
|
|
84
84
|
computed: {
|
|
85
85
|
advFilterSelectOptions() {
|
|
86
|
-
return this.columnOptions.filter(c => c.isFilter && !c.preventFiltering);
|
|
86
|
+
return this.columnOptions.filter((c) => c.isFilter && !c.preventFiltering);
|
|
87
87
|
},
|
|
88
88
|
|
|
89
89
|
advGroupOptions() {
|
|
@@ -102,7 +102,7 @@ export default {
|
|
|
102
102
|
|
|
103
103
|
this.columnOptions.forEach((advCol) => {
|
|
104
104
|
if (advCol.isTableOption) {
|
|
105
|
-
const index = allCols.findIndex(col => col.name === advCol.name);
|
|
105
|
+
const index = allCols.findIndex((col) => col.name === advCol.name);
|
|
106
106
|
|
|
107
107
|
if (index !== -1) {
|
|
108
108
|
allCols[index].isColVisible = advCol.isColVisible;
|
|
@@ -122,7 +122,7 @@ export default {
|
|
|
122
122
|
const headerProps = [];
|
|
123
123
|
|
|
124
124
|
// Filter out any columns that are too heavy to show for large page sizes
|
|
125
|
-
const filteredHeaders = this.headers.slice().filter(c => (!c.maxPageSize || (c.maxPageSize && c.maxPageSize >= this.perPage)));
|
|
125
|
+
const filteredHeaders = this.headers.slice().filter((c) => (!c.maxPageSize || (c.maxPageSize && c.maxPageSize >= this.perPage)));
|
|
126
126
|
|
|
127
127
|
// add table cols from config (headers)
|
|
128
128
|
filteredHeaders.forEach((prop) => {
|
|
@@ -152,7 +152,7 @@ export default {
|
|
|
152
152
|
|
|
153
153
|
// maintain current visibility of cols if they exist already
|
|
154
154
|
if (this.columnOptions?.length) {
|
|
155
|
-
const opt = this.columnOptions.find(colOpt => colOpt.name === name && colOpt.label === label);
|
|
155
|
+
const opt = this.columnOptions.find((colOpt) => colOpt.name === name && colOpt.label === label);
|
|
156
156
|
|
|
157
157
|
if (opt) {
|
|
158
158
|
isColVisible = opt.isColVisible;
|
|
@@ -188,14 +188,14 @@ export default {
|
|
|
188
188
|
|
|
189
189
|
// maintain current visibility of cols if they exist already
|
|
190
190
|
if (this.columnOptions?.length) {
|
|
191
|
-
const opt = this.columnOptions.find(colOpt => colOpt.name === label && colOpt.label === label);
|
|
191
|
+
const opt = this.columnOptions.find((colOpt) => colOpt.name === label && colOpt.label === label);
|
|
192
192
|
|
|
193
193
|
if (opt) {
|
|
194
194
|
res.isColVisible = opt.isColVisible;
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
if (!rowLabels.filter(row => row.label === label).length) {
|
|
198
|
+
if (!rowLabels.filter((row) => row.label === label).length) {
|
|
199
199
|
rowLabels.push(res);
|
|
200
200
|
}
|
|
201
201
|
});
|
|
@@ -262,7 +262,7 @@ export default {
|
|
|
262
262
|
|
|
263
263
|
// cols visibility
|
|
264
264
|
changeColVisibility(colData) {
|
|
265
|
-
const index = this.columnOptions.findIndex(col => col.label === colData.label);
|
|
265
|
+
const index = this.columnOptions.findIndex((col) => col.label === colData.label);
|
|
266
266
|
|
|
267
267
|
if (index !== -1) {
|
|
268
268
|
this.columnOptions[index].isColVisible = colData.value;
|
|
@@ -487,10 +487,10 @@ export default {
|
|
|
487
487
|
|
|
488
488
|
columns() {
|
|
489
489
|
// Filter out any columns that are too heavy to show for large page sizes
|
|
490
|
-
const out = this.headers.slice().filter(c => !c.maxPageSize || (c.maxPageSize && c.maxPageSize >= this.perPage));
|
|
490
|
+
const out = this.headers.slice().filter((c) => !c.maxPageSize || (c.maxPageSize && c.maxPageSize >= this.perPage));
|
|
491
491
|
|
|
492
492
|
if ( this.groupBy ) {
|
|
493
|
-
const entry = out.find(x => x.name === this.groupBy);
|
|
493
|
+
const entry = out.find((x) => x.name === this.groupBy);
|
|
494
494
|
|
|
495
495
|
if ( entry ) {
|
|
496
496
|
removeObject(out, entry);
|
|
@@ -498,10 +498,10 @@ export default {
|
|
|
498
498
|
}
|
|
499
499
|
|
|
500
500
|
// If all columns have a width, try to remove it from a column that can be variable (name)
|
|
501
|
-
const missingWidth = out.find(x => !x.width);
|
|
501
|
+
const missingWidth = out.find((x) => !x.width);
|
|
502
502
|
|
|
503
503
|
if ( !missingWidth ) {
|
|
504
|
-
const variable = out.find(x => x.canBeVariable);
|
|
504
|
+
const variable = out.find((x) => x.canBeVariable);
|
|
505
505
|
|
|
506
506
|
if ( variable ) {
|
|
507
507
|
const neu = clone(variable);
|
|
@@ -547,13 +547,13 @@ export default {
|
|
|
547
547
|
|
|
548
548
|
// Do we have any live columns?
|
|
549
549
|
hasLiveColumns() {
|
|
550
|
-
const liveColumns = this.columns.find(c => c.formatter?.startsWith('Live') || c.liveUpdates);
|
|
550
|
+
const liveColumns = this.columns.find((c) => c.formatter?.startsWith('Live') || c.liveUpdates);
|
|
551
551
|
|
|
552
552
|
return !!liveColumns;
|
|
553
553
|
},
|
|
554
554
|
|
|
555
555
|
hasDelayedColumns() {
|
|
556
|
-
const delaeydColumns = this.columns.find(c => c.delayLoading);
|
|
556
|
+
const delaeydColumns = this.columns.find((c) => c.delayLoading);
|
|
557
557
|
|
|
558
558
|
return !!delaeydColumns;
|
|
559
559
|
},
|
|
@@ -683,7 +683,7 @@ export default {
|
|
|
683
683
|
return;
|
|
684
684
|
}
|
|
685
685
|
|
|
686
|
-
const delayedColumns = this.$refs.column.filter(c => c.startDelayedLoading && !c.__delayedLoading);
|
|
686
|
+
const delayedColumns = this.$refs.column.filter((c) => c.startDelayedLoading && !c.__delayedLoading);
|
|
687
687
|
// We add 100 pixels here - so we will render the delayed columns for a few extra rows below what is visible
|
|
688
688
|
// This way if you scroll slowly, you won't see the columns being loaded
|
|
689
689
|
const clientHeight = (window.innerHeight || document.documentElement.clientHeight) + 100;
|
|
@@ -718,7 +718,7 @@ export default {
|
|
|
718
718
|
}
|
|
719
719
|
|
|
720
720
|
const clientHeight = window.innerHeight || document.documentElement.clientHeight;
|
|
721
|
-
const liveColumns = this.$refs.column.filter(c => !!c.liveUpdate);
|
|
721
|
+
const liveColumns = this.$refs.column.filter((c) => !!c.liveUpdate);
|
|
722
722
|
const now = day();
|
|
723
723
|
let next = Number.MAX_SAFE_INTEGER;
|
|
724
724
|
|
|
@@ -805,7 +805,7 @@ export default {
|
|
|
805
805
|
return false;
|
|
806
806
|
}
|
|
807
807
|
|
|
808
|
-
const matchingResourceAction = resource.availableActions.find(a => a.action === this.actionOfInterest.action);
|
|
808
|
+
const matchingResourceAction = resource.availableActions.find((a) => a.action === this.actionOfInterest.action);
|
|
809
809
|
|
|
810
810
|
return matchingResourceAction?.enabled;
|
|
811
811
|
},
|