@rancher/shell 3.0.5-rc.7 → 3.0.5-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/brand/classic/metadata.json +3 -0
- package/assets/styles/app.scss +1 -0
- package/assets/styles/base/_color.scss +19 -0
- package/assets/styles/base/_helpers.scss +10 -0
- package/assets/styles/base/_variables.scss +1 -1
- package/assets/styles/fonts/_icons.scss +1 -32
- package/assets/styles/global/_layout.scss +1 -1
- package/assets/styles/global/_tooltip.scss +7 -4
- package/assets/styles/themes/_dark.scss +272 -259
- package/assets/styles/themes/_light.scss +551 -516
- package/assets/styles/themes/_modern.scss +936 -0
- package/assets/translations/en-us.yaml +219 -38
- package/assets/translations/zh-hans.yaml +0 -1
- package/chart/__tests__/S3.test.ts +2 -1
- package/chart/monitoring/grafana/index.vue +8 -2
- package/cloud-credential/generic.vue +18 -10
- package/cloud-credential/harvester.vue +1 -9
- package/components/ActionMenuShell.vue +3 -1
- package/components/AdvancedSection.vue +8 -0
- package/components/ChartReadme.vue +17 -7
- package/components/Cron/CronExpressionEditor.vue +299 -0
- package/components/Cron/CronExpressionEditorModal.vue +247 -0
- package/components/Cron/CronTooltip.vue +87 -0
- package/components/Cron/types.ts +13 -0
- package/components/Drawer/ResourceDetailDrawer/__tests__/composables.test.ts +1 -26
- package/components/Drawer/ResourceDetailDrawer/composables.ts +0 -23
- package/components/Drawer/ResourceDetailDrawer/index.vue +17 -4
- package/components/ForceDirectedTreeChart/composable.ts +11 -0
- package/components/InstallHelmCharts.vue +656 -0
- package/components/LazyImage.vue +60 -4
- package/components/LocaleSelector.vue +7 -2
- package/components/Markdown.vue +4 -0
- package/components/PromptModal.vue +1 -1
- package/components/Resource/Detail/Card/__tests__/StateCard.test.ts +1 -0
- package/components/Resource/Detail/CopyToClipboard.vue +78 -0
- package/components/Resource/Detail/FetchLoader/__tests__/composables.test.ts +69 -0
- package/components/Resource/Detail/FetchLoader/composables.ts +27 -0
- package/components/Resource/Detail/Masthead/composable.ts +16 -0
- package/components/Resource/Detail/Masthead/index.vue +37 -0
- package/components/Resource/Detail/Metadata/Annotations/__tests__/index.test.ts +1 -1
- package/components/Resource/Detail/Metadata/Annotations/index.vue +1 -1
- package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +13 -61
- package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/index.test.ts +33 -6
- package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +29 -43
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +25 -5
- package/components/Resource/Detail/Metadata/KeyValue.vue +12 -23
- package/components/Resource/Detail/Metadata/KeyValueRow.vue +144 -0
- package/components/Resource/Detail/Metadata/Labels/__tests__/index.test.ts +1 -0
- package/components/Resource/Detail/Metadata/Labels/index.vue +1 -0
- package/components/Resource/Detail/Metadata/__tests__/KeyValue.test.ts +30 -32
- package/components/Resource/Detail/Metadata/__tests__/KeyValueRow.test.ts +108 -0
- package/components/Resource/Detail/Metadata/__tests__/composables.test.ts +10 -20
- package/components/Resource/Detail/Metadata/__tests__/index.test.ts +12 -5
- package/components/Resource/Detail/Metadata/composables.ts +9 -10
- package/components/Resource/Detail/Metadata/index.vue +18 -2
- package/components/Resource/Detail/Page.vue +35 -21
- package/components/Resource/Detail/Preview/Content.vue +63 -0
- package/components/Resource/Detail/Preview/Preview.vue +128 -0
- package/components/Resource/Detail/Preview/__tests__/Content.spec.ts +71 -0
- package/components/Resource/Detail/Preview/__tests__/Preview.spec.ts +121 -0
- package/components/Resource/Detail/ResourcePopover/ResourcePopoverCard.vue +141 -0
- package/components/Resource/Detail/ResourcePopover/__tests__/ResourcePopoverCard.test.ts +136 -0
- package/components/Resource/Detail/ResourcePopover/__tests__/index.test.ts +245 -0
- package/components/Resource/Detail/ResourcePopover/index.vue +226 -0
- package/components/Resource/Detail/SpacedRow.vue +1 -0
- package/components/Resource/Detail/TitleBar/__tests__/composables.test.ts +8 -14
- package/components/Resource/Detail/TitleBar/__tests__/index.test.ts +1 -1
- package/components/Resource/Detail/TitleBar/composables.ts +3 -6
- package/components/Resource/Detail/TitleBar/index.vue +11 -29
- package/components/Resource/Detail/ViewOptions/composable.ts +9 -0
- package/components/Resource/Detail/ViewOptions/index.vue +41 -0
- package/components/Resource/Detail/__tests__/CopyToClipboard.spec.ts +82 -0
- package/components/ResourceDetail/Masthead/legacy.vue +0 -19
- package/components/ResourceDetail/index.vue +544 -74
- package/components/ResourceTable.vue +24 -0
- package/components/SlideInPanelManager.vue +10 -3
- package/components/SortableTable/index.vue +11 -5
- package/components/SortableTable/paging.js +3 -0
- package/components/Tabbed/Tab.vue +43 -1
- package/components/Tabbed/index.vue +32 -4
- package/components/__tests__/Cron/CronExpressionEditor.test.ts +151 -0
- package/components/__tests__/Cron/CronExpressionEditorModal.test.ts +81 -0
- package/components/__tests__/LazyImage.spec.ts +121 -0
- package/components/auth/login/saml.vue +86 -0
- package/components/fleet/FleetStatus.vue +4 -0
- package/components/form/ClusterAppearance.vue +5 -0
- package/components/form/LabeledSelect.vue +8 -8
- package/components/form/Members/ClusterPermissionsEditor.vue +1 -1
- package/components/form/ProjectMemberEditor.vue +1 -1
- package/components/form/ResourceLabeledSelect.vue +19 -6
- package/components/form/ResourceTabs/composable.ts +54 -0
- package/components/form/ResourceTabs/index.vue +30 -7
- package/components/form/SecretSelector.vue +9 -0
- package/components/form/Select.vue +13 -10
- package/components/form/__tests__/LabeledSelect.test.ts +133 -0
- package/components/form/__tests__/Select.test.ts +134 -0
- package/components/form/labeled-select-utils/labeled-select-pagination.ts +3 -38
- package/components/formatter/FleetApplicationSource.vue +25 -17
- package/components/nav/Favorite.vue +4 -0
- package/components/nav/NotificationCenter/Notification.vue +1 -27
- package/components/nav/WindowManager/index.vue +3 -3
- package/composables/useExtensionManager.ts +17 -0
- package/config/home-links.js +12 -0
- package/config/labels-annotations.js +1 -3
- package/config/page-actions.js +0 -1
- package/config/product/explorer.js +3 -1
- package/config/product/fleet.js +2 -7
- package/config/product/manager.js +0 -5
- package/config/query-params.js +1 -0
- package/config/router/navigation-guards/clusters.js +2 -1
- package/config/router/navigation-guards/products.js +1 -1
- package/core/extension-manager-impl.js +518 -0
- package/core/plugins.js +35 -468
- package/core/types.ts +8 -2
- package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +1 -0
- package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +11 -0
- package/detail/__tests__/workload.test.ts +164 -0
- package/detail/catalog.cattle.io.app.vue +7 -4
- package/detail/configmap.vue +33 -75
- package/detail/fleet.cattle.io.bundle.vue +1 -5
- package/detail/fleet.cattle.io.cluster.vue +3 -2
- package/detail/fleet.cattle.io.gitrepo.vue +76 -49
- package/detail/fleet.cattle.io.helmop.vue +78 -49
- package/detail/projectsecret.vue +11 -0
- package/detail/provisioning.cattle.io.cluster.vue +350 -324
- package/detail/secret.vue +49 -308
- package/detail/workload/index.vue +38 -21
- package/dialog/AddonConfigConfirmationDialog.vue +1 -1
- package/dialog/GenericPrompt.vue +1 -1
- package/dialog/ImportDialog.vue +9 -2
- package/dialog/InstallExtensionDialog.vue +26 -15
- package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +2 -1
- package/edit/__tests__/fleet.cattle.io.helmop.test.ts +224 -0
- package/edit/__tests__/resources.cattle.io.restore.test.ts +106 -0
- package/edit/cloudcredential.vue +31 -17
- package/edit/constraints.gatekeeper.sh.constraint/index.vue +10 -2
- package/edit/fleet.cattle.io.cluster.vue +19 -0
- package/edit/fleet.cattle.io.gitrepo.vue +28 -22
- package/edit/fleet.cattle.io.helmop.vue +78 -56
- package/edit/logging.banzaicloud.io.output/index.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +5 -6
- package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +12 -11
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +11 -1
- package/edit/networking.k8s.io.ingress/Certificate.vue +9 -11
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +8 -3
- package/edit/networking.k8s.io.ingress/Rule.vue +2 -5
- package/edit/networking.k8s.io.ingress/RulePath.vue +17 -11
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +11 -10
- package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +1 -3
- package/edit/networking.k8s.io.networkpolicy/index.vue +17 -17
- package/edit/provisioning.cattle.io.cluster/index.vue +14 -19
- package/edit/provisioning.cattle.io.cluster/rke2.vue +31 -15
- package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +9 -7
- package/edit/provisioning.cattle.io.cluster/tabs/DirectoryConfig.vue +10 -12
- package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +39 -38
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/S3Config.vue +41 -19
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +16 -3
- package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +30 -31
- package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryMirrors.vue +9 -10
- package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +1 -3
- package/edit/provisioning.cattle.io.cluster/tabs/upgrade/DrainOptions.vue +16 -9
- package/edit/resources.cattle.io.restore.vue +5 -8
- package/edit/workload/index.vue +5 -14
- package/list/__tests__/workload.test.ts +1 -0
- package/list/provisioning.cattle.io.cluster.vue +1 -69
- package/list/workload.vue +8 -1
- package/machine-config/__tests__/vmwarevsphere.test.ts +5 -7
- package/machine-config/components/GCEImage.vue +6 -5
- package/machine-config/google.vue +20 -7
- package/machine-config/vmwarevsphere.vue +7 -17
- package/mixins/__tests__/chart.test.ts +139 -1
- package/mixins/chart.js +58 -20
- package/mixins/resource-fetch-api-pagination.js +3 -4
- package/models/__tests__/chart.test.ts +111 -80
- package/models/__tests__/fleet.cattle.io.helmop.test.ts +224 -0
- package/models/__tests__/namespace.test.ts +69 -0
- package/models/__tests__/node.test.ts +7 -63
- package/models/apps.statefulset.js +8 -10
- package/models/catalog.cattle.io.app.js +1 -1
- package/models/catalog.cattle.io.operation.js +1 -1
- package/models/chart.js +41 -21
- package/models/cloudcredential.js +2 -163
- package/models/cluster/node.js +7 -7
- package/models/cluster.x-k8s.io.machine.js +3 -3
- package/models/compliance.cattle.io.clusterscan.js +2 -2
- package/models/configmap.js +4 -0
- package/models/constraints.gatekeeper.sh.constraint.js +1 -1
- package/models/fleet-application.js +16 -63
- package/models/fleet.cattle.io.bundle.js +1 -38
- package/models/fleet.cattle.io.gitrepo.js +19 -1
- package/models/fleet.cattle.io.helmop.js +30 -22
- package/models/management.cattle.io.project.js +12 -0
- package/models/management.cattle.io.setting.js +4 -0
- package/models/namespace.js +30 -0
- package/models/persistentvolumeclaim.js +1 -1
- package/models/pod.js +2 -2
- package/models/provisioning.cattle.io.cluster.js +16 -40
- package/models/rke.cattle.io.etcdsnapshot.js +1 -1
- package/models/secret.js +4 -0
- package/models/storage.k8s.io.storageclass.js +2 -2
- package/models/workload.js +6 -3
- package/package.json +19 -18
- package/pages/c/_cluster/apps/charts/AppChartCardFooter.vue +26 -10
- package/pages/c/_cluster/apps/charts/AppChartCardSubHeader.vue +4 -1
- package/pages/c/_cluster/apps/charts/__tests__/AppChartCardFooter.spec.js +41 -0
- package/pages/c/_cluster/apps/charts/chart.vue +440 -183
- package/pages/c/_cluster/apps/charts/index.vue +1 -0
- package/pages/c/_cluster/apps/charts/install.vue +7 -6
- package/pages/c/_cluster/explorer/projectsecret.vue +3 -13
- package/pages/c/_cluster/explorer/tools/__tests__/index.test.ts +102 -12
- package/pages/c/_cluster/explorer/tools/index.vue +145 -254
- package/pages/c/_cluster/fleet/__tests__/index.test.ts +608 -314
- package/pages/c/_cluster/fleet/index.vue +103 -44
- package/pages/c/_cluster/manager/cloudCredential/index.vue +20 -60
- package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +12 -2
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +11 -4
- package/pages/c/_cluster/uiplugins/__tests__/index.spec.ts +318 -0
- package/pages/c/_cluster/uiplugins/index.vue +256 -387
- package/pages/home.vue +1 -9
- package/plugins/dashboard-store/actions.js +42 -22
- package/plugins/dashboard-store/resource-class.js +80 -0
- package/plugins/steve/__tests__/getters.test.ts +1 -1
- package/plugins/steve/__tests__/subscribe.spec.ts +259 -1
- package/plugins/steve/getters.js +8 -2
- package/plugins/steve/resourceWatcher.js +10 -3
- package/plugins/steve/subscribe.js +192 -19
- package/plugins/steve/worker/web-worker.advanced.js +2 -0
- package/public/index.html +2 -1
- package/rancher-components/Card/Card.vue +1 -19
- package/rancher-components/Form/Checkbox/Checkbox.vue +1 -1
- package/rancher-components/Form/Radio/RadioButton.vue +1 -1
- package/rancher-components/Form/Radio/RadioGroup.vue +1 -1
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +1 -11
- package/rancher-components/Pill/RcCounterBadge/RcCounterBadge.test.ts +53 -0
- package/rancher-components/Pill/RcCounterBadge/RcCounterBadge.vue +65 -0
- package/rancher-components/Pill/RcCounterBadge/index.ts +1 -0
- package/rancher-components/Pill/RcCounterBadge/types.ts +7 -0
- package/rancher-components/Pill/RcStatusBadge/RcStatusBadge.test.ts +15 -0
- package/rancher-components/Pill/RcStatusBadge/RcStatusBadge.vue +65 -0
- package/rancher-components/Pill/RcStatusBadge/index.ts +2 -0
- package/rancher-components/Pill/RcStatusBadge/types.ts +5 -0
- package/rancher-components/Pill/RcStatusIndicator/RcStatusIndicator.test.ts +33 -0
- package/rancher-components/Pill/RcStatusIndicator/RcStatusIndicator.vue +75 -0
- package/rancher-components/Pill/RcStatusIndicator/index.ts +2 -0
- package/rancher-components/Pill/RcStatusIndicator/types.ts +7 -0
- package/rancher-components/Pill/RcTag/RcTag.test.ts +64 -0
- package/rancher-components/Pill/RcTag/RcTag.vue +94 -0
- package/rancher-components/Pill/RcTag/index.ts +1 -0
- package/rancher-components/Pill/RcTag/types.ts +9 -0
- package/rancher-components/Pill/types.ts +3 -0
- package/rancher-components/RcButton/RcButton.vue +1 -1
- package/rancher-components/RcDropdown/RcDropdown.test.ts +98 -0
- package/rancher-components/RcDropdown/RcDropdown.vue +5 -0
- package/rancher-components/RcDropdown/RcDropdownItem.vue +7 -1
- package/rancher-components/RcDropdown/RcDropdownItemCheckbox.vue +2 -1
- package/rancher-components/RcDropdown/RcDropdownItemSelect.vue +2 -1
- package/rancher-components/RcDropdown/useDropdownContext.ts +21 -0
- package/rancher-components/RcDropdown/useDropdownItem.ts +30 -1
- package/rancher-components/RcItemCard/RcItemCard.test.ts +20 -0
- package/rancher-components/RcItemCard/RcItemCard.vue +41 -6
- package/rancher-components/RcItemCard/RcItemCardAction.vue +12 -0
- package/store/__tests__/catalog.test.ts +156 -1
- package/store/aws.js +19 -8
- package/store/catalog.js +10 -5
- package/store/type-map.js +3 -15
- package/types/extension-manager.ts +26 -0
- package/types/resources/settings.d.ts +1 -1
- package/types/shell/index.d.ts +149 -44
- package/types/uiplugins.ts +73 -0
- package/utils/__tests__/back-off.test.ts +354 -0
- package/utils/__tests__/kontainer.test.ts +19 -0
- package/utils/__tests__/product.test.ts +129 -0
- package/utils/__tests__/resource.test.ts +87 -0
- package/utils/__tests__/uiplugins.test.ts +84 -0
- package/utils/alertmanagerconfig.js +2 -2
- package/utils/auth.js +3 -76
- package/utils/back-off.ts +176 -0
- package/utils/dynamic-importer.js +8 -0
- package/utils/kontainer.ts +3 -5
- package/utils/product.ts +39 -0
- package/utils/resource.ts +35 -0
- package/utils/select.js +0 -24
- package/utils/style.ts +3 -0
- package/utils/uiplugins.ts +29 -2
- package/utils/validators/__tests__/setting.test.js +92 -0
- package/utils/validators/formRules/__tests__/index.test.ts +91 -7
- package/utils/validators/formRules/index.ts +84 -8
- package/utils/validators/setting.js +17 -0
- package/vue.config.js +1 -1
- package/cloud-credential/__tests__/harvester.test.ts +0 -18
- package/components/Resource/Detail/Metadata/Rectangle.vue +0 -34
- package/components/Resource/Detail/Metadata/__tests__/Rectangle.test.ts +0 -24
- package/components/ResourceDetail/Masthead/__tests__/legacy.test.ts +0 -65
- package/components/ResourceDetail/__tests__/index.test.ts +0 -135
- package/components/ResourceDetail/legacy.vue +0 -562
- package/components/formatter/CloudCredExpired.vue +0 -69
- package/pages/explorer/resource/detail/configmap.vue +0 -42
- package/pages/explorer/resource/detail/projectsecret.vue +0 -9
- package/pages/explorer/resource/detail/secret.vue +0 -63
- package/utils/aws.js +0 -0
- /package/components/{ForceDirectedTreeChart.vue → ForceDirectedTreeChart/index.vue} +0 -0
|
@@ -41,7 +41,7 @@ export default class PVC extends SteveModel {
|
|
|
41
41
|
insertAt(out, 0, {
|
|
42
42
|
action: 'goToEditVolumeSize',
|
|
43
43
|
enabled: this.expandable && this.bound,
|
|
44
|
-
icon: 'icon icon-
|
|
44
|
+
icon: 'icon icon-plus',
|
|
45
45
|
label: this.t('persistentVolumeClaim.expand.label'),
|
|
46
46
|
});
|
|
47
47
|
|
package/models/pod.js
CHANGED
|
@@ -61,7 +61,7 @@ export default class Pod extends WorkloadService {
|
|
|
61
61
|
return {
|
|
62
62
|
action: 'openShell',
|
|
63
63
|
enabled: !!this.links.view && this.isRunning,
|
|
64
|
-
icon: 'icon
|
|
64
|
+
icon: 'icon-chevron-right',
|
|
65
65
|
label: 'Execute Shell',
|
|
66
66
|
total: 1,
|
|
67
67
|
};
|
|
@@ -71,7 +71,7 @@ export default class Pod extends WorkloadService {
|
|
|
71
71
|
return {
|
|
72
72
|
action: 'openLogs',
|
|
73
73
|
enabled: !!this.links.view,
|
|
74
|
-
icon: 'icon icon-
|
|
74
|
+
icon: 'icon icon-chevron-right',
|
|
75
75
|
label: 'View Logs',
|
|
76
76
|
total: 1,
|
|
77
77
|
};
|
|
@@ -74,15 +74,17 @@ export default class ProvCluster extends SteveModel {
|
|
|
74
74
|
return super.creationTimestamp;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
77
|
+
get canExplore() {
|
|
78
|
+
return this.mgmt?.isReady && !this.hasError;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
get canEdit() {
|
|
82
|
+
// If the cluster is a KEV1 cluster or Harvester cluster then prevent edit
|
|
83
|
+
if (this.isKev1 || this.isHarvester) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return super.canEdit;
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
get _availableActions() {
|
|
@@ -134,7 +136,7 @@ export default class ProvCluster extends SteveModel {
|
|
|
134
136
|
}, {
|
|
135
137
|
action: 'restoreSnapshotAction',
|
|
136
138
|
label: this.$rootGetters['i18n/t']('nav.restoreSnapshot'),
|
|
137
|
-
icon: 'icon icon-
|
|
139
|
+
icon: 'icon icon-backup-restore',
|
|
138
140
|
enabled: canSnapshot,
|
|
139
141
|
}, {
|
|
140
142
|
action: 'rotateCertificates',
|
|
@@ -148,19 +150,6 @@ export default class ProvCluster extends SteveModel {
|
|
|
148
150
|
enabled: canEditRKE2cluster
|
|
149
151
|
}, { divider: true }];
|
|
150
152
|
|
|
151
|
-
// Harvester Cluster 1:1 Harvester Cloud Cred
|
|
152
|
-
if (this.cloudCredential?.canRenew || this.cloudCredential?.canBulkRenew) {
|
|
153
|
-
out.splice(0, 0, { divider: true });
|
|
154
|
-
out.splice(0, 0, {
|
|
155
|
-
action: 'renew',
|
|
156
|
-
enabled: this.cloudCredential?.canRenew,
|
|
157
|
-
bulkable: this.cloudCredential?.canBulkRenew,
|
|
158
|
-
bulkAction: 'renewBulk',
|
|
159
|
-
icon: 'icon icon-fw icon-refresh',
|
|
160
|
-
label: this.$rootGetters['i18n/t']('cluster.cloudCredentials.renew'),
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
|
|
164
153
|
const all = actions.concat(out);
|
|
165
154
|
|
|
166
155
|
// If the cluster is a KEV1 cluster or Harvester cluster then prevent edit
|
|
@@ -1018,24 +1007,11 @@ export default class ProvCluster extends SteveModel {
|
|
|
1018
1007
|
return super.description || this.mgmt?.description;
|
|
1019
1008
|
}
|
|
1020
1009
|
|
|
1021
|
-
|
|
1022
|
-
return this.
|
|
1023
|
-
}
|
|
1024
|
-
|
|
1025
|
-
renewBulk(clusters = []) {
|
|
1026
|
-
// In theory we don't need to filter by cloudCred, but do so for safety
|
|
1027
|
-
const cloudCredentials = clusters.filter((c) => c.cloudCredential).map((c) => c.cloudCredential);
|
|
1028
|
-
|
|
1029
|
-
return this.cloudCredential?.renewBulk(cloudCredentials);
|
|
1010
|
+
get disableResourceDetailDrawerConfigTab() {
|
|
1011
|
+
return !!this.isHarvester;
|
|
1030
1012
|
}
|
|
1031
1013
|
|
|
1032
|
-
get
|
|
1033
|
-
return
|
|
1034
|
-
}
|
|
1035
|
-
|
|
1036
|
-
get cloudCredentialWarning() {
|
|
1037
|
-
const expireData = this.cloudCredential?.expireData;
|
|
1038
|
-
|
|
1039
|
-
return expireData?.expired || expireData?.expiring;
|
|
1014
|
+
get fullDetailPageOverride() {
|
|
1015
|
+
return true;
|
|
1040
1016
|
}
|
|
1041
1017
|
}
|
package/models/secret.js
CHANGED
|
@@ -141,14 +141,14 @@ export default class extends SteveModel {
|
|
|
141
141
|
out.unshift({
|
|
142
142
|
action: 'resetDefault',
|
|
143
143
|
enabled: true,
|
|
144
|
-
icon: 'icon icon-
|
|
144
|
+
icon: 'icon icon-checkmark',
|
|
145
145
|
label: this.t('storageClass.actions.resetDefault'),
|
|
146
146
|
});
|
|
147
147
|
} else {
|
|
148
148
|
out.unshift({
|
|
149
149
|
action: 'setDefault',
|
|
150
150
|
enabled: true,
|
|
151
|
-
icon: 'icon icon-
|
|
151
|
+
icon: 'icon icon-checkmark',
|
|
152
152
|
label: this.t('storageClass.actions.setAsDefault'),
|
|
153
153
|
});
|
|
154
154
|
}
|
package/models/workload.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { findBy, insertAt } from '@shell/utils/array';
|
|
2
2
|
import { CATTLE_PUBLIC_ENDPOINTS } from '@shell/config/labels-annotations';
|
|
3
3
|
import { WORKLOAD_TYPES, SERVICE, POD } from '@shell/config/types';
|
|
4
|
-
import {
|
|
4
|
+
import { set } from '@shell/utils/object';
|
|
5
5
|
import day from 'dayjs';
|
|
6
6
|
import { convertSelectorObj, parse } from '@shell/utils/selector';
|
|
7
7
|
import { SEPARATOR } from '@shell/config/workload';
|
|
@@ -76,7 +76,7 @@ export default class Workload extends WorkloadService {
|
|
|
76
76
|
insertAt(out, 0, {
|
|
77
77
|
action: 'openShell',
|
|
78
78
|
enabled: !!this.links.view,
|
|
79
|
-
icon: 'icon icon-
|
|
79
|
+
icon: 'icon icon-chevron-right',
|
|
80
80
|
label: this.t('action.openShell'),
|
|
81
81
|
total: 1,
|
|
82
82
|
});
|
|
@@ -595,6 +595,9 @@ export default class Workload extends WorkloadService {
|
|
|
595
595
|
return selector;
|
|
596
596
|
}
|
|
597
597
|
|
|
598
|
+
/**
|
|
599
|
+
* Match Expression version of the podSelector
|
|
600
|
+
*/
|
|
598
601
|
get podMatchExpression() {
|
|
599
602
|
return this.podSelector ? parse(this.podSelector) : null;
|
|
600
603
|
}
|
|
@@ -632,7 +635,7 @@ export default class Workload extends WorkloadService {
|
|
|
632
635
|
return undefined;
|
|
633
636
|
}
|
|
634
637
|
|
|
635
|
-
return
|
|
638
|
+
return this.metadata?.relationships?.filter((relationship) => relationship.toType === WORKLOAD_TYPES.JOB) || [];
|
|
636
639
|
}
|
|
637
640
|
|
|
638
641
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rancher/shell",
|
|
3
|
-
"version": "3.0.5-rc.
|
|
3
|
+
"version": "3.0.5-rc.9",
|
|
4
4
|
"description": "Rancher Dashboard Shell",
|
|
5
5
|
"repository": "https://github.com/rancherlabs/dashboard",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -27,17 +27,18 @@
|
|
|
27
27
|
"e2e:dev": "start-server-and-test dev https://localhost:8005 cy:open"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@aws-sdk/client-ec2": "3.
|
|
31
|
-
"@aws-sdk/client-eks": "3.
|
|
32
|
-
"@aws-sdk/client-iam": "3.
|
|
33
|
-
"@aws-sdk/client-kms": "3.
|
|
30
|
+
"@aws-sdk/client-ec2": "3.863.0",
|
|
31
|
+
"@aws-sdk/client-eks": "3.879.0",
|
|
32
|
+
"@aws-sdk/client-iam": "3.863.0",
|
|
33
|
+
"@aws-sdk/client-kms": "3.863.0",
|
|
34
|
+
"@smithy/fetch-http-handler": "5.1.1",
|
|
34
35
|
"@babel/plugin-proposal-optional-chaining": "7.21.0",
|
|
35
36
|
"@babel/plugin-proposal-private-methods": "7.18.6",
|
|
36
37
|
"@babel/plugin-proposal-private-property-in-object": "7.14.5",
|
|
37
38
|
"@babel/preset-typescript": "7.16.7",
|
|
38
39
|
"@novnc/novnc": "1.2.0",
|
|
39
40
|
"@popperjs/core": "2.11.8",
|
|
40
|
-
"@rancher/icons": "2.0.
|
|
41
|
+
"@rancher/icons": "2.0.38",
|
|
41
42
|
"@types/is-url": "1.2.30",
|
|
42
43
|
"@types/node": "20.10.8",
|
|
43
44
|
"@types/semver": "^7.5.8",
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
"add": "2.0.6",
|
|
52
53
|
"ansi_up": "5.0.0",
|
|
53
54
|
"axios-retry": "3.1.9",
|
|
54
|
-
"axios": "1.
|
|
55
|
+
"axios": "1.12.2",
|
|
55
56
|
"babel-eslint": "10.1.0",
|
|
56
57
|
"babel-plugin-module-resolver": "4.0.0",
|
|
57
58
|
"babel-preset-vue": "2.0.2",
|
|
@@ -63,17 +64,17 @@
|
|
|
63
64
|
"color": "4.2.3",
|
|
64
65
|
"cookie-universal": "2.2.2",
|
|
65
66
|
"cookie": "0.7.0",
|
|
66
|
-
"core-js": "3.
|
|
67
|
-
"cron-validator": "1.
|
|
67
|
+
"core-js": "3.45.0",
|
|
68
|
+
"cron-validator": "1.4.0",
|
|
68
69
|
"cronstrue": "2.53.0",
|
|
69
70
|
"cross-env": "7.0.3",
|
|
70
71
|
"css-loader": "6.7.3",
|
|
71
72
|
"csv-loader": "3.0.3",
|
|
72
73
|
"custom-event-polyfill": "^1.0.7",
|
|
73
74
|
"cypress": "11.1.0",
|
|
74
|
-
"d3-selection": "
|
|
75
|
+
"d3-selection": "3.0.0",
|
|
75
76
|
"d3": "7.3.0",
|
|
76
|
-
"dayjs": "1.
|
|
77
|
+
"dayjs": "1.11.18",
|
|
77
78
|
"defu": "5.0.1",
|
|
78
79
|
"diff2html": "3.4.24",
|
|
79
80
|
"dompurify": "3.2.5",
|
|
@@ -83,7 +84,7 @@
|
|
|
83
84
|
"eslint-import-resolver-node": "0.3.9",
|
|
84
85
|
"eslint-module-utils": "2.6.1",
|
|
85
86
|
"eslint-plugin-cypress": "2.12.1",
|
|
86
|
-
"eslint-plugin-import": "2.
|
|
87
|
+
"eslint-plugin-import": "2.32.0",
|
|
87
88
|
"eslint-plugin-jest": "24.4.0",
|
|
88
89
|
"eslint-plugin-n": "15.2.0",
|
|
89
90
|
"eslint-plugin-vue": "9.32.0",
|
|
@@ -108,7 +109,7 @@
|
|
|
108
109
|
"jsdiff": "1.1.1",
|
|
109
110
|
"jsonpath-plus": "10.3.0",
|
|
110
111
|
"jsrsasign": "11.0.0",
|
|
111
|
-
"jszip": "3.
|
|
112
|
+
"jszip": "3.10.1",
|
|
112
113
|
"lodash": "4.17.21",
|
|
113
114
|
"marked": "4.0.17",
|
|
114
115
|
"node-polyfill-webpack-plugin": "3.0.0",
|
|
@@ -117,7 +118,7 @@
|
|
|
117
118
|
"papaparse": "5.3.0",
|
|
118
119
|
"portal-vue": "~3.0.0",
|
|
119
120
|
"sass-loader": "12.6.0",
|
|
120
|
-
"sass": "1.
|
|
121
|
+
"sass": "1.89.2",
|
|
121
122
|
"serve-static": "1.14.1",
|
|
122
123
|
"set-cookie-parser": "2.4.6",
|
|
123
124
|
"shell-quote": "1.7.3",
|
|
@@ -129,15 +130,15 @@
|
|
|
129
130
|
"ufo": "0.7.11",
|
|
130
131
|
"unfetch": "4.2.0",
|
|
131
132
|
"url-parse": "1.5.10",
|
|
132
|
-
"vue-router": "4.5.
|
|
133
|
+
"vue-router": "4.5.1",
|
|
133
134
|
"vue-select": "4.0.0-beta.6",
|
|
134
135
|
"vue-server-renderer": "2.7.16",
|
|
135
|
-
"vue": "
|
|
136
|
+
"vue": "3.5.18",
|
|
136
137
|
"vue3-resize": "0.2.0",
|
|
137
138
|
"vue3-virtual-scroll-list": "0.2.1",
|
|
138
139
|
"vuedraggable": "4.1.0",
|
|
139
140
|
"vuex": "4.1.0",
|
|
140
|
-
"webpack-bundle-analyzer": "4.
|
|
141
|
+
"webpack-bundle-analyzer": "4.10.2",
|
|
141
142
|
"webpack-virtual-modules": "0.4.3",
|
|
142
143
|
"worker-loader": "3.0.8",
|
|
143
144
|
"xterm-addon-canvas": "0.5.0",
|
|
@@ -171,4 +172,4 @@
|
|
|
171
172
|
".vue"
|
|
172
173
|
]
|
|
173
174
|
}
|
|
174
|
-
}
|
|
175
|
+
}
|
|
@@ -5,12 +5,15 @@ interface FooterItem {
|
|
|
5
5
|
icon?: string;
|
|
6
6
|
iconTooltip?: Record<{key?: string, text?: string}>;
|
|
7
7
|
labels: string[];
|
|
8
|
+
labelTooltip?: string;
|
|
9
|
+
type?: string;
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
const emit = defineEmits<{(e: 'click:item', type: string, label: string): void; }>();
|
|
11
13
|
|
|
12
14
|
defineProps<{
|
|
13
15
|
items: FooterItem[];
|
|
16
|
+
clickable?: boolean;
|
|
14
17
|
}>();
|
|
15
18
|
|
|
16
19
|
function onClickItem(type: string, label: string) {
|
|
@@ -32,19 +35,32 @@ function onClickItem(type: string, label: string) {
|
|
|
32
35
|
v-clean-tooltip="t(footerItem.iconTooltip?.key)"
|
|
33
36
|
:class="['icon', 'app-chart-card-footer-item-icon', footerItem.icon]"
|
|
34
37
|
/>
|
|
35
|
-
<
|
|
38
|
+
<template
|
|
36
39
|
v-for="(label, j) in footerItem.labels"
|
|
37
40
|
:key="j"
|
|
38
|
-
class="app-chart-card-footer-item-text secondary-text-link"
|
|
39
|
-
data-testid="app-chart-card-footer-item-text"
|
|
40
|
-
tabindex="0"
|
|
41
|
-
:aria-label="t('catalog.charts.appChartCard.footerItem.ariaLabel')"
|
|
42
|
-
@click="onClickItem(footerItem.type, label)"
|
|
43
|
-
@keydown.enter="onClickItem(footerItem.type, label)"
|
|
44
|
-
@keydown.space.prevent="onClickItem(footerItem.type, label)"
|
|
45
41
|
>
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
<rc-item-card-action
|
|
43
|
+
v-if="clickable && footerItem.type"
|
|
44
|
+
v-clean-tooltip="footerItem.labelTooltip"
|
|
45
|
+
class="app-chart-card-footer-item-text secondary-text-link"
|
|
46
|
+
data-testid="app-chart-card-footer-item-text"
|
|
47
|
+
tabindex="0"
|
|
48
|
+
:aria-label="t('catalog.charts.appChartCard.footerItem.ariaLabel')"
|
|
49
|
+
@click="onClickItem(footerItem.type, label)"
|
|
50
|
+
>
|
|
51
|
+
{{ label }}
|
|
52
|
+
<span v-if="footerItem.labels.length > 1 && j !== footerItem.labels.length - 1">, </span>
|
|
53
|
+
</rc-item-card-action>
|
|
54
|
+
<span
|
|
55
|
+
v-else
|
|
56
|
+
v-clean-tooltip="footerItem.labelTooltip"
|
|
57
|
+
class="app-chart-card-footer-item-text"
|
|
58
|
+
data-testid="app-chart-card-footer-item-text"
|
|
59
|
+
>
|
|
60
|
+
{{ label }}
|
|
61
|
+
<span v-if="footerItem.labels.length > 1 && j !== footerItem.labels.length - 1">, </span>
|
|
62
|
+
</span>
|
|
63
|
+
</template>
|
|
48
64
|
</div>
|
|
49
65
|
</div>
|
|
50
66
|
</template>
|
|
@@ -4,6 +4,7 @@ interface SubHeaderItem {
|
|
|
4
4
|
icon: string;
|
|
5
5
|
iconTooltip?: Record<{key?: string, text?: string}>;
|
|
6
6
|
label: string;
|
|
7
|
+
labelTooltip?: string;
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
defineProps<{
|
|
@@ -24,7 +25,9 @@ defineProps<{
|
|
|
24
25
|
v-clean-tooltip="t(subHeaderItem.iconTooltip.key)"
|
|
25
26
|
:class="['icon', 'app-chart-card-sub-header-item-icon', subHeaderItem.icon]"
|
|
26
27
|
/>
|
|
27
|
-
<p
|
|
28
|
+
<p v-clean-tooltip="subHeaderItem.labelTooltip">
|
|
29
|
+
{{ subHeaderItem.label }}
|
|
30
|
+
</p>
|
|
28
31
|
</div>
|
|
29
32
|
</div>
|
|
30
33
|
</template>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { shallowMount } from '@vue/test-utils';
|
|
2
|
+
import AppChartCardFooter from '../AppChartCardFooter.vue';
|
|
3
|
+
import { REPO } from '@shell/config/query-params';
|
|
4
|
+
|
|
5
|
+
describe('component: AppChartCardFooter', () => {
|
|
6
|
+
it('should render', () => {
|
|
7
|
+
const wrapper = shallowMount(AppChartCardFooter, {
|
|
8
|
+
propsData: { items: [] },
|
|
9
|
+
stubs: { 'rc-item-card-action': true },
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
expect(wrapper.exists()).toBe(true);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('should apply tooltips to labels', () => {
|
|
16
|
+
const tooltipContent = 'my tooltip';
|
|
17
|
+
const items = [
|
|
18
|
+
{
|
|
19
|
+
type: REPO,
|
|
20
|
+
labels: ['label1', 'label2'],
|
|
21
|
+
labelTooltip: tooltipContent,
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
const wrapper = shallowMount(AppChartCardFooter, {
|
|
26
|
+
propsData: { items },
|
|
27
|
+
stubs: { 'rc-item-card-action': true },
|
|
28
|
+
directives: {
|
|
29
|
+
'clean-tooltip': (el, binding) => {
|
|
30
|
+
el.setAttribute('data-tooltip-value', binding.value);
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const actions = wrapper.findAll('[data-tooltip-value]');
|
|
36
|
+
|
|
37
|
+
expect(actions).toHaveLength(2);
|
|
38
|
+
expect(actions.at(0).attributes('data-tooltip-value')).toBe(tooltipContent);
|
|
39
|
+
expect(actions.at(1).attributes('data-tooltip-value')).toBe(tooltipContent);
|
|
40
|
+
});
|
|
41
|
+
});
|