@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
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import AsyncButton from '@shell/components/AsyncButton';
|
|
2
|
+
import AsyncButton, { ASYNC_BUTTON_STATES } from '@shell/components/AsyncButton';
|
|
3
3
|
import IconMessage from '@shell/components/IconMessage.vue';
|
|
4
4
|
import { CATALOG, MANAGEMENT } from '@shell/config/types';
|
|
5
5
|
import { CATALOG as CATALOG_ANNOTATIONS } from '@shell/config/labels-annotations';
|
|
6
6
|
import Dialog from '@shell/components/Dialog.vue';
|
|
7
7
|
import Checkbox from '@components/Form/Checkbox/Checkbox.vue';
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import {
|
|
10
10
|
UI_PLUGIN_NAMESPACE,
|
|
11
11
|
UI_PLUGIN_CHARTS,
|
|
@@ -30,7 +30,7 @@ export default {
|
|
|
30
30
|
const found = [];
|
|
31
31
|
|
|
32
32
|
UI_PLUGIN_CHARTS.forEach((c) => {
|
|
33
|
-
const f = charts.find(chart => chart.repoName === UI_PLUGIN_OPERATOR_REPO_NAME & chart.chartName === c);
|
|
33
|
+
const f = charts.find((chart) => chart.repoName === UI_PLUGIN_OPERATOR_REPO_NAME & chart.chartName === c);
|
|
34
34
|
|
|
35
35
|
if (f) {
|
|
36
36
|
found.push(f);
|
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
// Look to see if the Rancher UI Plugins repository is already installed
|
|
73
73
|
const repos = this.$store.getters['catalog/repos'];
|
|
74
74
|
|
|
75
|
-
return !!repos.find(r => r.name === UI_PLUGINS_REPO_NAME);
|
|
75
|
+
return !!repos.find((r) => r.name === UI_PLUGINS_REPO_NAME);
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
|
|
@@ -143,7 +143,7 @@ export default {
|
|
|
143
143
|
|
|
144
144
|
await this.installPluginCharts();
|
|
145
145
|
|
|
146
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
146
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
147
147
|
|
|
148
148
|
this.buttonState = this.errors.length > 0 ? ASYNC_BUTTON_STATES.ERROR : ASYNC_BUTTON_STATES.ACTION;
|
|
149
149
|
|
|
@@ -183,7 +183,7 @@ export default {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
return new Promise(resolve => setTimeout(resolve, 2000));
|
|
186
|
+
return new Promise((resolve) => setTimeout(resolve, 2000));
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
};
|
|
@@ -44,9 +44,9 @@ export default {
|
|
|
44
44
|
const pluginApps = apps.filter((app) => {
|
|
45
45
|
if (plugin.catalog && app.namespace === UI_PLUGIN_NAMESPACE) {
|
|
46
46
|
// Find the related apps from the deployed helm repository
|
|
47
|
-
const charts = this.allCharts.filter(chart => chart.repoName === plugin.repo?.metadata?.name);
|
|
47
|
+
const charts = this.allCharts.filter((chart) => chart.repoName === plugin.repo?.metadata?.name);
|
|
48
48
|
|
|
49
|
-
return charts.some(chart => chart.chartName === app.metadata.name);
|
|
49
|
+
return charts.some((chart) => chart.chartName === app.metadata.name);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
if (app.namespace === UI_PLUGIN_NAMESPACE && app.name === plugin.name) {
|
|
@@ -62,7 +62,7 @@ export default {
|
|
|
62
62
|
|
|
63
63
|
if (pluginApps.length) {
|
|
64
64
|
try {
|
|
65
|
-
pluginApps.forEach(app => app.remove());
|
|
65
|
+
pluginApps.forEach((app) => app.remove());
|
|
66
66
|
} catch (e) {
|
|
67
67
|
this.$store.dispatch('growl/error', {
|
|
68
68
|
title: this.t('plugins.error.generic'),
|
|
@@ -93,7 +93,7 @@ export default {
|
|
|
93
93
|
|
|
94
94
|
for (const resource of Object.keys(hash)) {
|
|
95
95
|
if (hash[resource]) {
|
|
96
|
-
hash[resource].forEach(r => r.remove());
|
|
96
|
+
hash[resource].forEach((r) => r.remove());
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -87,7 +87,7 @@ export default {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
hash.load = await this.$store.dispatch('catalog/load');
|
|
90
|
+
hash.load = await this.$store.dispatch('catalog/load', { reset: true });
|
|
91
91
|
|
|
92
92
|
if (this.$store.getters['management/schemaFor'](CATALOG.OPERATION)) {
|
|
93
93
|
hash.helmOps = await this.$store.dispatch('management/findAll', { type: CATALOG.OPERATION });
|
|
@@ -175,11 +175,11 @@ export default {
|
|
|
175
175
|
|
|
176
176
|
switch (this.view) {
|
|
177
177
|
case 'installed':
|
|
178
|
-
return all.filter(p => !!p.installed || !!p.installing);
|
|
178
|
+
return all.filter((p) => !!p.installed || !!p.installing);
|
|
179
179
|
case 'updates':
|
|
180
180
|
return this.updates;
|
|
181
181
|
case 'available':
|
|
182
|
-
return all.filter(p => !p.installed);
|
|
182
|
+
return all.filter((p) => !p.installed);
|
|
183
183
|
default:
|
|
184
184
|
return all;
|
|
185
185
|
}
|
|
@@ -195,14 +195,14 @@ export default {
|
|
|
195
195
|
},
|
|
196
196
|
|
|
197
197
|
updates() {
|
|
198
|
-
return this.available.filter(plugin => !!plugin.upgrade);
|
|
198
|
+
return this.available.filter((plugin) => !!plugin.upgrade);
|
|
199
199
|
},
|
|
200
200
|
|
|
201
201
|
available() {
|
|
202
|
-
let all = this.charts.filter(c => isUIPlugin(c));
|
|
202
|
+
let all = this.charts.filter((c) => isUIPlugin(c));
|
|
203
203
|
|
|
204
204
|
// Filter out hidden charts
|
|
205
|
-
all = all.filter(c => !uiPluginHasAnnotation(c, CATALOG_ANNOTATIONS.HIDDEN, 'true'));
|
|
205
|
+
all = all.filter((c) => !uiPluginHasAnnotation(c, CATALOG_ANNOTATIONS.HIDDEN, 'true'));
|
|
206
206
|
|
|
207
207
|
all = all.map((chart) => {
|
|
208
208
|
// Label can be overridden by chart annotation
|
|
@@ -223,13 +223,13 @@ export default {
|
|
|
223
223
|
item.chart = chart;
|
|
224
224
|
|
|
225
225
|
// Filter the versions available to install (plugins-api version and current dashboard version)
|
|
226
|
-
item.installableVersions = item.versions.filter(version => isSupportedChartVersion(version) && isChartVersionAvailableForInstall(version, this.rancherVersion));
|
|
226
|
+
item.installableVersions = item.versions.filter((version) => isSupportedChartVersion(version) && isChartVersionAvailableForInstall(version, this.rancherVersion));
|
|
227
227
|
|
|
228
228
|
// add prop to version object if version is compatible with the current dashboard version
|
|
229
|
-
item.versions = item.versions.map(version => isChartVersionAvailableForInstall(version, this.rancherVersion, true));
|
|
229
|
+
item.versions = item.versions.map((version) => isChartVersionAvailableForInstall(version, this.rancherVersion, true));
|
|
230
230
|
|
|
231
231
|
const latestCompatible = item.installableVersions?.[0];
|
|
232
|
-
const latestNotCompatible = item.versions.find(version => !version.isCompatibleWithUi);
|
|
232
|
+
const latestNotCompatible = item.versions.find((version) => !version.isCompatibleWithUi);
|
|
233
233
|
|
|
234
234
|
if (latestCompatible) {
|
|
235
235
|
item.displayVersion = latestCompatible.version;
|
|
@@ -251,11 +251,11 @@ export default {
|
|
|
251
251
|
});
|
|
252
252
|
|
|
253
253
|
// Remove charts with no installable versions
|
|
254
|
-
all = all.filter(c => c.versions.length > 0);
|
|
254
|
+
all = all.filter((c) => c.versions.length > 0);
|
|
255
255
|
|
|
256
256
|
// Check that all of the loaded plugins are represented
|
|
257
257
|
this.uiplugins.forEach((p) => {
|
|
258
|
-
const chart = all.find(c => c.name === p.name);
|
|
258
|
+
const chart = all.find((c) => c.name === p.name);
|
|
259
259
|
|
|
260
260
|
if (!chart) {
|
|
261
261
|
// A plugin is loaded, but there is no chart, so add an item so that it shows up
|
|
@@ -279,7 +279,7 @@ export default {
|
|
|
279
279
|
|
|
280
280
|
// Go through the CRs for the plugins and wire them into the catalog
|
|
281
281
|
this.plugins.forEach((p) => {
|
|
282
|
-
const chart = all.find(c => c.name === p.name);
|
|
282
|
+
const chart = all.find((c) => c.name === p.name);
|
|
283
283
|
|
|
284
284
|
// Plugin is a container image, do not add to charts
|
|
285
285
|
if (p.metadata?.labels?.[UI_PLUGIN_LABELS.CATALOG_IMAGE]) {
|
|
@@ -319,7 +319,7 @@ export default {
|
|
|
319
319
|
|
|
320
320
|
// Merge in the plugin load errors
|
|
321
321
|
Object.keys(this.uiErrors).forEach((e) => {
|
|
322
|
-
const chart = all.find(c => c.name === e);
|
|
322
|
+
const chart = all.find((c) => c.name === e);
|
|
323
323
|
|
|
324
324
|
if (chart) {
|
|
325
325
|
const error = this.uiErrors[e];
|
|
@@ -334,7 +334,7 @@ export default {
|
|
|
334
334
|
|
|
335
335
|
// Merge in the plugin load errors from help ops
|
|
336
336
|
Object.keys(this.errors).forEach((e) => {
|
|
337
|
-
const chart = all.find(c => c.name === e);
|
|
337
|
+
const chart = all.find((c) => c.name === e);
|
|
338
338
|
|
|
339
339
|
if (chart) {
|
|
340
340
|
chart.helmError = !!this.errors[e];
|
|
@@ -353,7 +353,7 @@ export default {
|
|
|
353
353
|
},
|
|
354
354
|
|
|
355
355
|
pluginsFromCatalogImage() {
|
|
356
|
-
return this.plugins.filter(p => p.metadata?.labels?.[UI_PLUGIN_LABELS.CATALOG_IMAGE]);
|
|
356
|
+
return this.plugins.filter((p) => p.metadata?.labels?.[UI_PLUGIN_LABELS.CATALOG_IMAGE]);
|
|
357
357
|
}
|
|
358
358
|
},
|
|
359
359
|
|
|
@@ -368,7 +368,7 @@ export default {
|
|
|
368
368
|
|
|
369
369
|
// Go through the installed plugins
|
|
370
370
|
(this.available || []).forEach((plugin) => {
|
|
371
|
-
const op = pluginOps.find(o => o.status?.releaseName === plugin.name);
|
|
371
|
+
const op = pluginOps.find((o) => o.status?.releaseName === plugin.name);
|
|
372
372
|
|
|
373
373
|
if (op) {
|
|
374
374
|
const active = op.metadata.state?.transitioning;
|
|
@@ -395,7 +395,7 @@ export default {
|
|
|
395
395
|
|
|
396
396
|
plugins(neu, old) {
|
|
397
397
|
const installed = this.$store.getters['uiplugins/plugins'];
|
|
398
|
-
const shouldHaveLoaded = (installed || []).filter(p => !this.uiErrors[p.name] && !p.builtin);
|
|
398
|
+
const shouldHaveLoaded = (installed || []).filter((p) => !this.uiErrors[p.name] && !p.builtin);
|
|
399
399
|
let changes = 0;
|
|
400
400
|
|
|
401
401
|
// Did the user remove an extension
|
|
@@ -404,7 +404,7 @@ export default {
|
|
|
404
404
|
}
|
|
405
405
|
|
|
406
406
|
neu.forEach((plugin) => {
|
|
407
|
-
const existing = installed.find(p => !p.removed && p.name === plugin.name && p.version === plugin.version);
|
|
407
|
+
const existing = installed.find((p) => !p.removed && p.name === plugin.name && p.version === plugin.version);
|
|
408
408
|
const isCustomImage = plugin.metadata?.labels?.[UI_PLUGIN_LABELS.CATALOG_IMAGE];
|
|
409
409
|
|
|
410
410
|
if (!existing && plugin.isCached) {
|
|
@@ -435,7 +435,7 @@ export default {
|
|
|
435
435
|
|
|
436
436
|
methods: {
|
|
437
437
|
async refreshCharts() {
|
|
438
|
-
await this.$store.dispatch('catalog/load');
|
|
438
|
+
await this.$store.dispatch('catalog/load', { reset: true });
|
|
439
439
|
const c = this.$store.getters['catalog/rawCharts'];
|
|
440
440
|
|
|
441
441
|
this.charts = Object.values(c);
|
|
@@ -1013,6 +1013,9 @@ export default {
|
|
|
1013
1013
|
color: #888;
|
|
1014
1014
|
width: 44px;
|
|
1015
1015
|
height: 44px;
|
|
1016
|
+
display: flex;
|
|
1017
|
+
justify-content: center;
|
|
1018
|
+
align-items: center;
|
|
1016
1019
|
|
|
1017
1020
|
&.dark-mode {
|
|
1018
1021
|
border-radius: calc(2 * var(--border-radius));
|
package/pages/diagnostic.vue
CHANGED
|
@@ -14,8 +14,8 @@ export default {
|
|
|
14
14
|
|
|
15
15
|
async fetch() {
|
|
16
16
|
const provClusters = await this.$store.dispatch('management/findAll', { type: CAPI.RANCHER_CLUSTER });
|
|
17
|
-
const readyClusters = provClusters.filter(c => c.mgmt?.isReady);
|
|
18
|
-
const clusterForCounts = filterHiddenLocalCluster(filterOnlyKubernetesClusters(readyClusters), this.$store);
|
|
17
|
+
const readyClusters = provClusters.filter((c) => c.mgmt?.isReady);
|
|
18
|
+
const clusterForCounts = filterHiddenLocalCluster(filterOnlyKubernetesClusters(readyClusters, this.$store), this.$store);
|
|
19
19
|
const finalCounts = [];
|
|
20
20
|
const promises = [];
|
|
21
21
|
const topFifteenForResponseTime = [];
|
|
@@ -181,8 +181,8 @@ export default {
|
|
|
181
181
|
setResourceResponseTiming(responseTimes) {
|
|
182
182
|
responseTimes?.forEach((res) => {
|
|
183
183
|
if ( res.outcome === 'success' ) {
|
|
184
|
-
const cluster = this.finalCounts.find(c => c.capiId === res.item.capiId);
|
|
185
|
-
const countIndex = cluster?.counts?.findIndex(c => c.resource === res.item.resource);
|
|
184
|
+
const cluster = this.finalCounts.find((c) => c.capiId === res.item.capiId);
|
|
185
|
+
const countIndex = cluster?.counts?.findIndex((c) => c.resource === res.item.resource);
|
|
186
186
|
|
|
187
187
|
if ( (countIndex && countIndex !== -1) || countIndex === 0 ) {
|
|
188
188
|
this.$set(cluster?.counts[countIndex], 'durationMs', res.durationMs);
|
|
@@ -196,13 +196,13 @@ export default {
|
|
|
196
196
|
},
|
|
197
197
|
|
|
198
198
|
nodeCount(counts) {
|
|
199
|
-
const resource = counts.findIndex(c => c.resource === 'node');
|
|
199
|
+
const resource = counts.findIndex((c) => c.resource === 'node');
|
|
200
200
|
|
|
201
201
|
return counts[resource]?.count;
|
|
202
202
|
},
|
|
203
203
|
|
|
204
204
|
toggleTable(area) {
|
|
205
|
-
const itemIndex = this.finalCounts.findIndex(item => item.id === area);
|
|
205
|
+
const itemIndex = this.finalCounts.findIndex((item) => item.id === area);
|
|
206
206
|
|
|
207
207
|
this.finalCounts[itemIndex].isTableVisible = !this.finalCounts[itemIndex].isTableVisible;
|
|
208
208
|
},
|
package/pages/home.vue
CHANGED
|
@@ -103,7 +103,7 @@ export default {
|
|
|
103
103
|
canCreateCluster() {
|
|
104
104
|
const schema = this.$store.getters['management/schemaFor'](CAPI.RANCHER_CLUSTER);
|
|
105
105
|
|
|
106
|
-
return !!schema?.collectionMethods.find(x => x.toLowerCase() === 'post');
|
|
106
|
+
return !!schema?.collectionMethods.find((x) => x.toLowerCase() === 'post');
|
|
107
107
|
},
|
|
108
108
|
|
|
109
109
|
manageLocation() {
|
|
@@ -160,7 +160,7 @@ export default {
|
|
|
160
160
|
value: 'nameDisplay',
|
|
161
161
|
sort: ['nameSort'],
|
|
162
162
|
canBeVariable: true,
|
|
163
|
-
getValue: row => row.mgmt?.nameDisplay
|
|
163
|
+
getValue: (row) => row.mgmt?.nameDisplay
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
label: this.t('landing.clusters.provider'),
|
|
@@ -206,7 +206,7 @@ export default {
|
|
|
206
206
|
...mapGetters(['currentCluster', 'defaultClusterId']),
|
|
207
207
|
|
|
208
208
|
kubeClusters() {
|
|
209
|
-
return filterHiddenLocalCluster(filterOnlyKubernetesClusters(this.provClusters || []), this.$store);
|
|
209
|
+
return filterHiddenLocalCluster(filterOnlyKubernetesClusters(this.provClusters || [], this.$store), this.$store);
|
|
210
210
|
}
|
|
211
211
|
},
|
|
212
212
|
|
package/pages/prefs.vue
CHANGED
|
@@ -131,7 +131,7 @@ export default {
|
|
|
131
131
|
perPageOptions() {
|
|
132
132
|
const t = this.$store.getters['i18n/t'];
|
|
133
133
|
|
|
134
|
-
return this.$store.getters['prefs/options'](ROWS_PER_PAGE).map(count => ({
|
|
134
|
+
return this.$store.getters['prefs/options'](ROWS_PER_PAGE).map((count) => ({
|
|
135
135
|
label: t('prefs.perPage.value', { count }),
|
|
136
136
|
value: count
|
|
137
137
|
}));
|
|
@@ -140,7 +140,7 @@ export default {
|
|
|
140
140
|
menuClusterOptions() {
|
|
141
141
|
const t = this.$store.getters['i18n/t'];
|
|
142
142
|
|
|
143
|
-
return this.$store.getters['prefs/options'](MENU_MAX_CLUSTERS).map(count => ({
|
|
143
|
+
return this.$store.getters['prefs/options'](MENU_MAX_CLUSTERS).map((count) => ({
|
|
144
144
|
label: t('prefs.clusterToShow.value', { count }),
|
|
145
145
|
value: count
|
|
146
146
|
}));
|
package/pages/rio/mesh.vue
CHANGED
|
@@ -95,13 +95,13 @@ async function loadData(store) {
|
|
|
95
95
|
|
|
96
96
|
const known = {};
|
|
97
97
|
|
|
98
|
-
data.nodes = data.nodes.filter(x => !!x.app && !!x.namespace);
|
|
98
|
+
data.nodes = data.nodes.filter((x) => !!x.app && !!x.namespace);
|
|
99
99
|
data.nodes.forEach((x) => {
|
|
100
100
|
x.id = nodeIdFor(x);
|
|
101
101
|
known[x.id] = true;
|
|
102
102
|
});
|
|
103
103
|
|
|
104
|
-
data.edges = data.edges.filter(x => known[fromId(x)] && known[toId(x)]);
|
|
104
|
+
data.edges = data.edges.filter((x) => known[fromId(x)] && known[toId(x)]);
|
|
105
105
|
|
|
106
106
|
return data;
|
|
107
107
|
}
|
|
@@ -329,7 +329,7 @@ export default {
|
|
|
329
329
|
g.setParent(id, nsId);
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
-
const rpses = this.displayEdges.map(x => x.stats.rps);
|
|
332
|
+
const rpses = this.displayEdges.map((x) => x.stats.rps);
|
|
333
333
|
const min = Math.min(...rpses);
|
|
334
334
|
const max = Math.max(...rpses);
|
|
335
335
|
|
package/pages/support/index.vue
CHANGED
|
@@ -8,6 +8,7 @@ import { SETTING } from '@shell/config/settings';
|
|
|
8
8
|
import { findBy } from '@shell/utils/array';
|
|
9
9
|
import { addParam } from '@shell/utils/url';
|
|
10
10
|
import { isRancherPrime } from '@shell/config/version';
|
|
11
|
+
import { generateSupportLink } from '@shell/utils/version';
|
|
11
12
|
|
|
12
13
|
export default {
|
|
13
14
|
layout: 'home',
|
|
@@ -47,6 +48,7 @@ export default {
|
|
|
47
48
|
this.brandSetting = await fetchOrCreateSetting(SETTING.BRAND, '');
|
|
48
49
|
this.serverUrlSetting = await fetchOrCreateSetting(SETTING.SERVER_URL, '');
|
|
49
50
|
this.uiIssuesSetting = await this.$store.dispatch('management/find', { type: MANAGEMENT.SETTING, id: SETTING.ISSUES });
|
|
51
|
+
this.settings = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.SETTING });
|
|
50
52
|
},
|
|
51
53
|
|
|
52
54
|
data() {
|
|
@@ -57,6 +59,7 @@ export default {
|
|
|
57
59
|
brandSetting: null,
|
|
58
60
|
uiIssuesSetting: null,
|
|
59
61
|
serverSetting: null,
|
|
62
|
+
settings: null,
|
|
60
63
|
promos: [
|
|
61
64
|
'support.promos.one',
|
|
62
65
|
'support.promos.two',
|
|
@@ -103,6 +106,12 @@ export default {
|
|
|
103
106
|
|
|
104
107
|
sccLink() {
|
|
105
108
|
return this.hasAWSSupport ? addParam('https://scc.suse.com', 'from_marketplace', '1') : 'https://scc.suse.com';
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
supportLink() {
|
|
112
|
+
const version = this.settings?.find((s) => s.id === SETTING.VERSION_RANCHER)?.value;
|
|
113
|
+
|
|
114
|
+
return generateSupportLink(version);
|
|
106
115
|
}
|
|
107
116
|
},
|
|
108
117
|
|
|
@@ -124,7 +133,7 @@ export default {
|
|
|
124
133
|
<div class="support-link">
|
|
125
134
|
<a
|
|
126
135
|
class="support-link"
|
|
127
|
-
href="
|
|
136
|
+
:href="supportLink"
|
|
128
137
|
target="_blank"
|
|
129
138
|
rel="noopener noreferrer nofollow"
|
|
130
139
|
>{{ t('support.community.learnMore') }}</a>
|
package/pkg/auto-import.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const fs = require('fs');
|
|
2
2
|
const path = require('path');
|
|
3
|
-
const contextFolders = ['chart', 'cloud-credential', 'content', 'detail', 'edit', 'list', 'machine-config', 'models', 'promptRemove', 'l10n', 'windowComponents', 'dialog', 'formatters'];
|
|
3
|
+
const contextFolders = ['chart', 'cloud-credential', 'content', 'detail', 'edit', 'list', 'machine-config', 'models', 'promptRemove', 'l10n', 'windowComponents', 'dialog', 'formatters', 'login'];
|
|
4
4
|
const contextMap = contextFolders.reduce((map, obj) => {
|
|
5
5
|
map[obj] = true;
|
|
6
6
|
|
package/pkg/tsconfig.json
CHANGED
package/pkg/vue.config.js
CHANGED
package/plugins/axios.js
CHANGED
|
@@ -17,7 +17,7 @@ const ALLOWED_TAGS = [
|
|
|
17
17
|
'strong',
|
|
18
18
|
];
|
|
19
19
|
|
|
20
|
-
export const purifyHTML = value => DOMPurify.sanitize(value, { ALLOWED_TAGS });
|
|
20
|
+
export const purifyHTML = (value) => DOMPurify.sanitize(value, { ALLOWED_TAGS });
|
|
21
21
|
|
|
22
22
|
export const cleanHtmlDirective = {
|
|
23
23
|
inserted(el, binding) {
|
|
@@ -4,14 +4,14 @@ import Resource from '@shell/plugins/dashboard-store/resource-class';
|
|
|
4
4
|
|
|
5
5
|
describe('dashboard-store: mutations', () => {
|
|
6
6
|
const ctx = {
|
|
7
|
-
rootGetters: { 'type-map/optionsFor': type => ({}) },
|
|
7
|
+
rootGetters: { 'type-map/optionsFor': (type) => ({}) },
|
|
8
8
|
getters: {
|
|
9
|
-
classify: resource => Resource,
|
|
9
|
+
classify: (resource) => Resource,
|
|
10
10
|
cleanResource: (existing, resource) => resource
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
const create = type => ({
|
|
14
|
+
const create = (type) => ({
|
|
15
15
|
id: '1',
|
|
16
16
|
type
|
|
17
17
|
});
|
|
@@ -25,7 +25,7 @@ describe('dashboard-store: mutations', () => {
|
|
|
25
25
|
|
|
26
26
|
const createPodResource = (props = {}) => createResource(POD, props);
|
|
27
27
|
|
|
28
|
-
const createCache = props => ({
|
|
28
|
+
const createCache = (props) => ({
|
|
29
29
|
generation: 0,
|
|
30
30
|
haveAll: false,
|
|
31
31
|
haveNamespace: undefined,
|
|
@@ -537,7 +537,7 @@ export default {
|
|
|
537
537
|
},
|
|
538
538
|
|
|
539
539
|
createMany(ctx, data) {
|
|
540
|
-
return data.map(d => classify(ctx, d));
|
|
540
|
+
return data.map((d) => classify(ctx, d));
|
|
541
541
|
},
|
|
542
542
|
|
|
543
543
|
createPopulated(ctx, userData) {
|
|
@@ -556,8 +556,8 @@ export default {
|
|
|
556
556
|
// Remove all entries for that type and stop watching it
|
|
557
557
|
forgetType({ commit, dispatch, state }, type) {
|
|
558
558
|
state.started
|
|
559
|
-
.filter(entry => entry.type === type)
|
|
560
|
-
.forEach(entry => dispatch('unwatch', entry));
|
|
559
|
+
.filter((entry) => entry.type === type)
|
|
560
|
+
.forEach((entry) => dispatch('unwatch', entry));
|
|
561
561
|
|
|
562
562
|
commit('forgetType', type);
|
|
563
563
|
},
|
|
@@ -616,7 +616,7 @@ export default {
|
|
|
616
616
|
if (tries === SCHEMA_CHECK_RETRY_LOG) {
|
|
617
617
|
console.warn(`Schema for ${ type } not available... retrying...`); // eslint-disable-line no-console
|
|
618
618
|
}
|
|
619
|
-
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
619
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
620
620
|
tries--;
|
|
621
621
|
}
|
|
622
622
|
}
|
|
@@ -69,7 +69,7 @@ export default {
|
|
|
69
69
|
|
|
70
70
|
// Filter first by namespace if one is provided, since this is efficient
|
|
71
71
|
if (namespace) {
|
|
72
|
-
all = all.filter(obj => obj.namespace === namespace);
|
|
72
|
+
all = all.filter((obj) => obj.namespace === namespace);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
garbageCollect.gcUpdateLastAccessed({
|
|
@@ -279,7 +279,7 @@ export function loadAll(state, {
|
|
|
279
279
|
}
|
|
280
280
|
|
|
281
281
|
const keyField = getters.keyFieldForType(type);
|
|
282
|
-
const proxies = data.map(x => classify(ctx, x));
|
|
282
|
+
const proxies = data.map((x) => classify(ctx, x));
|
|
283
283
|
const cache = registerType(state, type);
|
|
284
284
|
|
|
285
285
|
clear(cache.list);
|
|
@@ -356,7 +356,7 @@ export default {
|
|
|
356
356
|
});
|
|
357
357
|
});
|
|
358
358
|
cache.list.forEach((entry) => {
|
|
359
|
-
if (!allLatest.find(toLoadEntry => toLoadEntry.id === entry.id)) {
|
|
359
|
+
if (!allLatest.find((toLoadEntry) => toLoadEntry.id === entry.id)) {
|
|
360
360
|
commit('remove', entry);
|
|
361
361
|
}
|
|
362
362
|
});
|
|
@@ -939,7 +939,7 @@ export default class Resource {
|
|
|
939
939
|
}
|
|
940
940
|
|
|
941
941
|
get canCreate() {
|
|
942
|
-
if ( this.schema && !this.schema?.collectionMethods.find(x => x.toLowerCase() === 'post') ) {
|
|
942
|
+
if ( this.schema && !this.schema?.collectionMethods.find((x) => x.toLowerCase() === 'post') ) {
|
|
943
943
|
return false;
|
|
944
944
|
}
|
|
945
945
|
|
|
@@ -955,7 +955,7 @@ export default class Resource {
|
|
|
955
955
|
}
|
|
956
956
|
|
|
957
957
|
get canEditYaml() {
|
|
958
|
-
return this.schema?.resourceMethods?.find(x => x === 'blocked-PUT') ? false : this.canUpdate;
|
|
958
|
+
return this.schema?.resourceMethods?.find((x) => x === 'blocked-PUT') ? false : this.canUpdate;
|
|
959
959
|
}
|
|
960
960
|
|
|
961
961
|
// ------------------------------------------------------------------
|
|
@@ -1489,7 +1489,7 @@ export default class Resource {
|
|
|
1489
1489
|
const rules = [];
|
|
1490
1490
|
|
|
1491
1491
|
const customValidationRulesets = this?.customValidationRules
|
|
1492
|
-
.filter(rule => !!rule.validators || !!rule.required)
|
|
1492
|
+
.filter((rule) => !!rule.validators || !!rule.required)
|
|
1493
1493
|
.map((rule) => {
|
|
1494
1494
|
const formRules = formRulesGenerator(this.t, { displayKey: rule?.translationKey ? this.t(rule.translationKey) : 'Value' });
|
|
1495
1495
|
|
|
@@ -1510,10 +1510,10 @@ export default class Resource {
|
|
|
1510
1510
|
return formRules[rule];
|
|
1511
1511
|
}
|
|
1512
1512
|
)
|
|
1513
|
-
.filter(rule => !!rule)
|
|
1513
|
+
.filter((rule) => !!rule)
|
|
1514
1514
|
};
|
|
1515
1515
|
})
|
|
1516
|
-
.filter(ruleset => ruleset.rules.length > 0);
|
|
1516
|
+
.filter((ruleset) => ruleset.rules.length > 0);
|
|
1517
1517
|
|
|
1518
1518
|
rules.push(...customValidationRulesets);
|
|
1519
1519
|
|
|
@@ -1530,7 +1530,7 @@ export default class Resource {
|
|
|
1530
1530
|
customValidationRules = customValidationRules();
|
|
1531
1531
|
}
|
|
1532
1532
|
|
|
1533
|
-
customValidationRules.filter(rule => !ignorePaths.includes(rule.path)).forEach((rule) => {
|
|
1533
|
+
customValidationRules.filter((rule) => !ignorePaths.includes(rule.path)).forEach((rule) => {
|
|
1534
1534
|
const {
|
|
1535
1535
|
path,
|
|
1536
1536
|
requiredIf: requiredIfPath,
|
|
@@ -1714,7 +1714,7 @@ export default class Resource {
|
|
|
1714
1714
|
const allOfResourceType = this.$rootGetters['cluster/all']( type );
|
|
1715
1715
|
|
|
1716
1716
|
this.ownersByType[kind].forEach((resource, idx) => {
|
|
1717
|
-
const resourceInstance = allOfResourceType.find(resourceByType => resourceByType?.metadata?.uid === resource.uid);
|
|
1717
|
+
const resourceInstance = allOfResourceType.find((resourceByType) => resourceByType?.metadata?.uid === resource.uid);
|
|
1718
1718
|
|
|
1719
1719
|
if (resourceInstance) {
|
|
1720
1720
|
owners.push(resourceInstance);
|
|
@@ -1737,7 +1737,7 @@ export default class Resource {
|
|
|
1737
1737
|
details.push({
|
|
1738
1738
|
label: this.t('resourceDetail.detailTop.ownerReferences', { count: this.owners.length }),
|
|
1739
1739
|
formatter: 'ListLinkDetail',
|
|
1740
|
-
content: this.owners.map(owner => ({
|
|
1740
|
+
content: this.owners.map((owner) => ({
|
|
1741
1741
|
key: owner.id,
|
|
1742
1742
|
row: owner,
|
|
1743
1743
|
col: {},
|
package/plugins/i18n.js
CHANGED
|
@@ -9,7 +9,7 @@ function stringFor(store, key, args, raw = false, escapehtml = true) {
|
|
|
9
9
|
if ( translation !== undefined ) {
|
|
10
10
|
out = translation;
|
|
11
11
|
} else if ( args && Object.keys(args).length ) {
|
|
12
|
-
const argStr = Object.keys(args).map(k => `${ k }: ${ args[k] }`).join(', ');
|
|
12
|
+
const argStr = Object.keys(args).map((k) => `${ k }: ${ args[k] }`).join(', ');
|
|
13
13
|
|
|
14
14
|
out = `%${ key }(${ argStr })%`;
|
|
15
15
|
raw = true;
|
package/plugins/plugin.js
CHANGED
|
@@ -3,6 +3,10 @@ import { allHashSettled } from '@shell/utils/promise';
|
|
|
3
3
|
import { shouldNotLoadPlugin, UI_PLUGIN_BASE_URL } from '@shell/config/uiplugins';
|
|
4
4
|
|
|
5
5
|
export default async function(context) {
|
|
6
|
+
if (process.env.excludeOperatorPkg === 'true') {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
|
|
6
10
|
const hash = {};
|
|
7
11
|
|
|
8
12
|
// Provide a mechanism to load the UI without the plugins loaded - in case there is a problem
|
|
@@ -30,7 +34,7 @@ export default async function(context) {
|
|
|
30
34
|
const entries = res.entries || res.Entries || {};
|
|
31
35
|
|
|
32
36
|
Object.values(entries).forEach((plugin) => {
|
|
33
|
-
const shouldNotLoad = shouldNotLoadPlugin(plugin, rancherVersion); // Error key string or boolean
|
|
37
|
+
const shouldNotLoad = shouldNotLoadPlugin(plugin, rancherVersion, context.store.getters['uiplugins/plugins'] || []); // Error key string or boolean
|
|
34
38
|
|
|
35
39
|
if (!shouldNotLoad) {
|
|
36
40
|
hash[plugin.name] = context.$plugin.loadPluginAsync(plugin);
|
package/plugins/steve/actions.js
CHANGED
|
@@ -224,7 +224,7 @@ export default {
|
|
|
224
224
|
if ( opt.load !== false && res.type === 'collection' ) {
|
|
225
225
|
await dispatch('loadMulti', res.data);
|
|
226
226
|
|
|
227
|
-
return res.data.map(x => getters.byId(x.type, x.id) || x);
|
|
227
|
+
return res.data.map((x) => getters.byId(x.type, x.id) || x);
|
|
228
228
|
} else if ( opt.load !== false && res.type && res.id ) {
|
|
229
229
|
return dispatch('load', { data: res });
|
|
230
230
|
} else {
|
|
@@ -256,7 +256,7 @@ export default {
|
|
|
256
256
|
if ( opt.load !== false && res.type === 'collection' ) {
|
|
257
257
|
await dispatch('loadMulti', res.data);
|
|
258
258
|
|
|
259
|
-
return res.data.map(x => getters.byId(x.type, x.id) || x);
|
|
259
|
+
return res.data.map((x) => getters.byId(x.type, x.id) || x);
|
|
260
260
|
} else if ( opt.load !== false && res.type && res.id ) {
|
|
261
261
|
return dispatch('load', { data: res });
|
|
262
262
|
} else {
|
|
@@ -349,7 +349,7 @@ export default {
|
|
|
349
349
|
|
|
350
350
|
dropKeys(obj, rootKeys);
|
|
351
351
|
dropKeys(obj?.metadata, metadataKeys);
|
|
352
|
-
(obj?.status?.conditions || []).forEach(condition => dropKeys(condition, conditionKeys));
|
|
352
|
+
(obj?.status?.conditions || []).forEach((condition) => dropKeys(condition, conditionKeys));
|
|
353
353
|
|
|
354
354
|
return jsyaml.dump(obj);
|
|
355
355
|
}
|