dashboard-shell-shell 1.0.122 → 1.0.1000000082

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/.DS_Store +0 -0
  2. package/assets/brand/harvester/favicon.png +0 -0
  3. package/assets/brand/suse/favicon.png +0 -0
  4. package/assets/icons/iconfont.css +19 -3
  5. package/assets/icons/iconfont.js +1 -1
  6. package/assets/icons/iconfont.json +28 -0
  7. package/assets/icons/iconfont.ttf +0 -0
  8. package/assets/icons/iconfont.woff +0 -0
  9. package/assets/icons/iconfont.woff2 +0 -0
  10. package/assets/images/pl/half-logo.svg +2 -23
  11. package/assets/styles/base/_functions.scss +0 -0
  12. package/assets/styles/base/_mixins.scss +0 -0
  13. package/assets/styles/base/_variables.scss +1 -1
  14. package/assets/styles/global/_labeled-input.scss +0 -1
  15. package/assets/styles/global/_layout.scss +1 -1
  16. package/assets/styles/global/_select.scss +4 -2
  17. package/assets/styles/global/_table.scss +5 -0
  18. package/assets/styles/vendor/vue-select.scss +2 -1
  19. package/assets/translations/en-us.yaml +1 -1
  20. package/assets/translations/zh-hans.yaml +25 -15
  21. package/chart/monitoring/index.vue +3 -1
  22. package/chart/monitoring/prometheus/index.vue +13 -10
  23. package/cloud-credential/aws.vue +2 -0
  24. package/components/ActionDropdown.vue +1 -1
  25. package/components/ActionDropdownShell.vue +71 -0
  26. package/components/ActionMenu.vue +2 -2
  27. package/components/ActionMenuShell.vue +3 -0
  28. package/components/AppModal.vue +84 -8
  29. package/components/AssignTo.vue +25 -11
  30. package/components/AsyncButton.vue +24 -7
  31. package/components/BannerGraphic.vue +1 -0
  32. package/components/ButtonDropdown.vue +26 -4
  33. package/components/ButtonGroup.vue +4 -0
  34. package/components/ButtonMultiAction.vue +1 -0
  35. package/components/CodeMirror.vue +19 -6
  36. package/components/CommunityLinks.vue +3 -3
  37. package/components/ConsumptionGauge.vue +24 -5
  38. package/components/CopyToClipboardText.vue +2 -1
  39. package/components/CruResource.vue +13 -7
  40. package/components/CruResourceFooter.vue +2 -2
  41. package/components/DashboardOptions.vue +29 -17
  42. package/components/DetailText.vue +5 -0
  43. package/components/DisableAuthProviderModal.vue +1 -0
  44. package/components/DotState.vue +84 -0
  45. package/components/ExplorerMembers.vue +1 -1
  46. package/components/ExplorerProjectsNamespaces.vue +88 -16
  47. package/components/FixedBanner.vue +19 -12
  48. package/components/GlobalRoleBindings.vue +5 -1
  49. package/components/GrafanaDashboard.vue +4 -4
  50. package/components/GrowlManager.vue +4 -1
  51. package/components/HardwareResourceGauge.vue +39 -3
  52. package/components/InfoBox.vue +3 -3
  53. package/components/InputOrDisplay.vue +28 -2
  54. package/components/LabelValue.vue +20 -1
  55. package/components/LandingPagePreference.vue +5 -3
  56. package/components/LocaleSelector.vue +39 -93
  57. package/components/ModalManager.vue +55 -0
  58. package/components/ModalWithCard.vue +13 -3
  59. package/components/MoveModal.vue +1 -0
  60. package/components/PodSecurityAdmission.vue +1 -1
  61. package/components/PromptChangePassword.vue +1 -1
  62. package/components/PromptModal.vue +16 -3
  63. package/components/PromptRemove.vue +29 -9
  64. package/components/PromptRestore.vue +1 -0
  65. package/components/ResourceCancelModal.vue +1 -0
  66. package/components/ResourceDetail/Masthead.vue +52 -17
  67. package/components/ResourceDetail/__tests__/Masthead.test.ts +5 -1
  68. package/components/ResourceDetail/index.vue +54 -16
  69. package/components/ResourceList/Masthead.vue +26 -4
  70. package/components/ResourceList/index.vue +4 -3
  71. package/components/ResourceTable.vue +1 -0
  72. package/components/SideNav.vue +20 -15
  73. package/components/SlideInPanelManager.vue +126 -0
  74. package/components/SortableTable/THead.vue +10 -4
  75. package/components/SortableTable/actions.js +1 -1
  76. package/components/SortableTable/index.vue +542 -553
  77. package/components/SortableTable/selection.js +2 -13
  78. package/components/StatusBadge.vue +77 -0
  79. package/components/Tabbed/Tab.vue +3 -3
  80. package/components/Tabbed/index.vue +47 -29
  81. package/components/Wizard.vue +2 -2
  82. package/components/YamlEditor.vue +1 -1
  83. package/components/__tests__/AsyncButton.test.ts +2 -2
  84. package/components/__tests__/FixedBanner.test.ts +3 -3
  85. package/components/__tests__/ModalManager.spec.ts +176 -0
  86. package/components/__tests__/SlideInPanelManager.spec.ts +166 -0
  87. package/components/auth/Principal.vue +10 -3
  88. package/components/auth/RoleDetailEdit.vue +1 -1
  89. package/components/auth/__tests__/RoleDetailEdit.test.ts +3 -2
  90. package/components/form/ArrayList.vue +123 -85
  91. package/components/form/ArrayListGrouped.vue +10 -2
  92. package/components/form/ArrayListSelect.vue +1 -1
  93. package/components/form/Command.vue +6 -15
  94. package/components/form/EnvVars.vue +16 -8
  95. package/components/form/Footer.vue +10 -7
  96. package/components/form/HealthCheck.vue +3 -3
  97. package/components/form/HookOption.vue +11 -16
  98. package/components/form/InputWithSelect.vue +6 -5
  99. package/components/form/KeyValue.vue +39 -10
  100. package/components/form/LabeledSelect.vue +73 -77
  101. package/components/form/Labels.vue +6 -3
  102. package/components/form/LifecycleHooks.vue +3 -3
  103. package/components/form/MatchExpressions.vue +42 -17
  104. package/components/form/NameNsDescription.vue +163 -116
  105. package/components/form/Networking.vue +20 -12
  106. package/components/form/NodeAffinity.vue +31 -23
  107. package/components/form/NodeScheduling.vue +13 -3
  108. package/components/form/Password.vue +11 -5
  109. package/components/form/PodAffinity.vue +47 -48
  110. package/components/form/Probe.vue +68 -66
  111. package/components/form/ResourceQuota/Namespace.vue +4 -4
  112. package/components/form/ResourceQuota/NamespaceRow.vue +5 -7
  113. package/components/form/ResourceQuota/Project.vue +9 -5
  114. package/components/form/ResourceQuota/ProjectRow.vue +4 -6
  115. package/components/form/ResourceSelector.vue +7 -9
  116. package/components/form/SSHKnownHosts/KnownHostsEditDialog.vue +6 -3
  117. package/components/form/SSHKnownHosts/__tests__/KnownHostsEditDialog.test.ts +12 -1
  118. package/components/form/SSHKnownHosts/index.vue +16 -2
  119. package/components/form/Security.vue +54 -56
  120. package/components/form/Select.vue +44 -7
  121. package/components/form/ShellInput.vue +5 -1
  122. package/components/form/SimpleSecretSelector.vue +29 -9
  123. package/components/form/Tolerations.vue +5 -1
  124. package/components/form/UnitInput.vue +10 -5
  125. package/components/form/ValueFromResource.vue +134 -121
  126. package/components/form/WorkloadPorts.vue +18 -18
  127. package/components/form/__tests__/ArrayList.test.ts +5 -2
  128. package/components/form/__tests__/MatchExpressions.test.ts +12 -12
  129. package/components/form/__tests__/NameNsDescription.test.ts +115 -14
  130. package/components/form/__tests__/Probe.test.ts +12 -8
  131. package/components/form/__tests__/SSHKnownHosts.test.ts +11 -0
  132. package/components/form/__tests__/Select.test.ts +37 -0
  133. package/components/form/__tests__/UnitInput.test.ts +4 -5
  134. package/components/formatter/BadgeStateFormatter.vue +8 -5
  135. package/components/formatter/InternalExternalIP.vue +2 -0
  136. package/components/formatter/LiveDate.vue +3 -3
  137. package/components/formatter/SecretData.vue +20 -7
  138. package/components/nav/Favorite.vue +5 -1
  139. package/components/nav/Group.vue +18 -4
  140. package/components/nav/Header.vue +39 -13
  141. package/components/nav/Jump.vue +7 -0
  142. package/components/nav/NamespaceFilter.vue +21 -11
  143. package/components/nav/Pinned.vue +1 -1
  144. package/components/nav/TopLevelMenu.vue +5 -17
  145. package/components/nav/Type.vue +30 -33
  146. package/components/nav/__tests__/TopLevelMenu.test.ts +0 -40
  147. package/components/rancherResourceDetail/Masthead.vue +769 -0
  148. package/components/rancherResourceDetail/__tests__/Masthead.test.ts +65 -0
  149. package/components/rancherResourceDetail/index.vue +591 -0
  150. package/components/rancherResourceList/Masthead-btn.vue +225 -0
  151. package/components/rancherResourceList/Masthead.vue +375 -0
  152. package/components/rancherResourceList/ResourceLoadingIndicator.vue +140 -0
  153. package/components/rancherResourceList/index.vue +307 -0
  154. package/components/rancherResourceList/resource-list.config.js +7 -0
  155. package/components/rancherResourceTable.vue +783 -0
  156. package/components/rancherSortableTable/THead.vue +561 -0
  157. package/components/rancherSortableTable/actions.js +153 -0
  158. package/components/rancherSortableTable/advanced-filtering.js +272 -0
  159. package/components/rancherSortableTable/debug.js +117 -0
  160. package/components/rancherSortableTable/filtering.js +290 -0
  161. package/components/rancherSortableTable/grouping.js +48 -0
  162. package/components/rancherSortableTable/index.vue +2712 -0
  163. package/components/rancherSortableTable/paging.js +155 -0
  164. package/components/rancherSortableTable/selection.js +629 -0
  165. package/components/rancherSortableTable/sortable-config.ts +4 -0
  166. package/components/rancherSortableTable/sorting.js +129 -0
  167. package/components/templates/blank.vue +4 -1
  168. package/components/templates/default.vue +8 -0
  169. package/components/templates/home.vue +10 -1
  170. package/components/templates/plain.vue +10 -1
  171. package/composables/focusTrap.ts +11 -3
  172. package/composables/useRuntimeFlag.ts +29 -0
  173. package/config/private-label.js +15 -10
  174. package/config/router/routes.js +21 -13
  175. package/config/store.js +4 -0
  176. package/config/table-headers.js +3 -2
  177. package/config/uiplugins.js +5 -1
  178. package/core/plugin-routes.ts +5 -115
  179. package/core/plugins.js +1 -1
  180. package/core/types.ts +23 -2
  181. package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +84 -23
  182. package/detail/autoscaling.horizontalpodautoscaler/index.vue +13 -3
  183. package/detail/provisioning.cattle.io.cluster.vue +72 -6
  184. package/dialog/AddCustomBadgeDialog.vue +1 -0
  185. package/dialog/DeactivateDriverDialog.vue +5 -4
  186. package/dialog/ForceMachineRemoveDialog.vue +6 -3
  187. package/dialog/GitRepoForceUpdateDialog.vue +1 -1
  188. package/dialog/ScalePoolDownDialog.vue +2 -2
  189. package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +16 -3
  190. package/edit/auth/__tests__/oidc.test.ts +162 -88
  191. package/edit/auth/azuread.vue +2 -1
  192. package/edit/auth/github.vue +1 -1
  193. package/edit/auth/googleoauth.vue +5 -1
  194. package/edit/auth/ldap/__tests__/config.test.ts +0 -14
  195. package/edit/auth/ldap/config.vue +0 -24
  196. package/edit/auth/ldap/index.vue +1 -1
  197. package/edit/auth/oidc.vue +39 -6
  198. package/edit/auth/saml.vue +1 -1
  199. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +5 -2
  200. package/edit/cloudcredential.vue +24 -9
  201. package/edit/fleet.cattle.io.clustergroup.vue +5 -3
  202. package/edit/fleet.cattle.io.gitrepo.vue +2 -0
  203. package/edit/logging-flow/Match.vue +1 -1
  204. package/edit/logging.banzaicloud.io.output/__tests__/logging.banzaicloud.io.output.test.ts +40 -9
  205. package/edit/management.cattle.io.user.vue +28 -3
  206. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  207. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  208. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  209. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  210. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  211. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  212. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  213. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  214. package/edit/monitoring.coreos.com.receiver/auth.vue +29 -29
  215. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  216. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  217. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  218. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  219. package/edit/namespace.vue +1 -2
  220. package/edit/networking.k8s.io.ingress/IngressClass.vue +7 -3
  221. package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
  222. package/edit/networking.k8s.io.ingress/__tests__/IngressClass.test.ts +58 -0
  223. package/edit/persistentvolume/__tests__/persistentvolume.test.ts +14 -2
  224. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +4 -1
  225. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +26 -9
  226. package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +8 -10
  227. package/edit/provisioning.cattle.io.cluster/rke2.vue +31 -40
  228. package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +5 -2
  229. package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +6 -1
  230. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +33 -2
  231. package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +3 -3
  232. package/edit/service.vue +0 -3
  233. package/edit/token.vue +32 -11
  234. package/edit/workload/Job.vue +6 -6
  235. package/edit/workload/__tests__/Job.test.ts +0 -1
  236. package/edit/workload/index.vue +1 -0
  237. package/edit/workload/mixins/workload.js +3 -3
  238. package/initialize/install-plugins.js +2 -1
  239. package/list/harvesterhci.io.management.cluster.vue +4 -1
  240. package/list/management.cattle.io.feature.vue +1 -0
  241. package/list/namespace.vue +3 -1
  242. package/list/provisioning.cattle.io.cluster.vue +20 -12
  243. package/list/workload.vue +7 -6
  244. package/machine-config/__tests__/vmwarevsphere.test.ts +48 -3
  245. package/machine-config/azure.vue +16 -4
  246. package/machine-config/vmwarevsphere.vue +16 -0
  247. package/mixins/resource-fetch.js +2 -1
  248. package/models/__tests__/logging.banzaicloud.io.flow.test.ts +88 -0
  249. package/models/__tests__/namespace.test.ts +25 -1
  250. package/models/cloudcredential.js +5 -0
  251. package/models/kontainerdriver.js +6 -3
  252. package/models/logging.banzaicloud.io.flow.js +2 -1
  253. package/models/management.cattle.io.node.js +3 -3
  254. package/models/management.cattle.io.setting.js +2 -1
  255. package/models/namespace.js +4 -5
  256. package/models/nodedriver.js +6 -3
  257. package/models/storage.k8s.io.storageclass.js +2 -2
  258. package/models/workload.js +4 -1
  259. package/package.json +1 -1
  260. package/pages/about.vue +16 -8
  261. package/pages/account/index.vue +80 -24
  262. package/pages/account/pri.vue +229 -0
  263. package/pages/auth/login.vue +195 -44
  264. package/pages/auth/logout.vue +4 -1
  265. package/pages/auth/setup.vue +144 -19
  266. package/pages/auth/verify.vue +13 -8
  267. package/pages/auth copy/login.vue +595 -0
  268. package/pages/auth copy/logout.vue +47 -0
  269. package/pages/auth copy/setup.vue +523 -0
  270. package/pages/auth copy/verify.vue +203 -0
  271. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  272. package/pages/c/_cluster/apps/charts/chart.vue +1 -1
  273. package/pages/c/_cluster/apps/charts/install.vue +26 -26
  274. package/pages/c/_cluster/auth/config/index.vue +10 -12
  275. package/pages/c/_cluster/explorer/EventsTable.vue +38 -33
  276. package/pages/c/_cluster/explorer/index.vue +17 -15
  277. package/pages/c/_cluster/istio/index.vue +2 -2
  278. package/pages/c/_cluster/longhorn/index.vue +1 -1
  279. package/pages/c/_cluster/monitoring/index.vue +1 -1
  280. package/pages/c/_cluster/monitoring/monitor/_namespace/_id.vue +4 -2
  281. package/pages/c/_cluster/monitoring/monitor/create.vue +4 -2
  282. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  283. package/pages/c/_cluster/monitoring/route-receiver/_id.vue +4 -2
  284. package/pages/c/_cluster/monitoring/route-receiver/create.vue +5 -2
  285. package/pages/c/_cluster/neuvector/index.vue +1 -1
  286. package/pages/c/_cluster/settings/brand.vue +3 -3
  287. package/pages/c/_cluster/uiplugins/CatalogList/index.vue +8 -10
  288. package/pages/diagnostic.vue +59 -11
  289. package/pages/fail-whale.vue +14 -8
  290. package/pages/home.vue +24 -18
  291. package/pages/prefs.vue +9 -7
  292. package/pages/support/index.vue +4 -1
  293. package/pkg/tsconfig.json +9 -9
  294. package/pkg/vue.config.js +1 -1
  295. package/plugins/dashboard-store/normalize.js +3 -1
  296. package/plugins/dashboard-store/resource-class.js +31 -29
  297. package/plugins/internal-api/index.ts +37 -0
  298. package/plugins/internal-api/shared/base-api.ts +13 -0
  299. package/plugins/internal-api/shell/shell.api.ts +108 -0
  300. package/promptRemove/management.cattle.io.fleetworkspace.vue +1 -1
  301. package/promptRemove/management.cattle.io.globalrole.vue +1 -1
  302. package/promptRemove/management.cattle.io.project.vue +2 -2
  303. package/promptRemove/management.cattle.io.roletemplate.vue +1 -1
  304. package/promptRemove/pod.vue +1 -1
  305. package/public/index.html +2 -1
  306. package/rancher-components/BadgeState/BadgeState.vue +5 -1
  307. package/rancher-components/Banner/Banner.vue +8 -2
  308. package/rancher-components/Card/Card.vue +3 -6
  309. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  310. package/rancher-components/Form/LabeledInput/LabeledInput.vue +5 -2
  311. package/rancher-components/Form/Radio/RadioButton.vue +3 -3
  312. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +1 -5
  313. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
  314. package/rancher-components/RcDropdown/RcDropdownItem.vue +1 -2
  315. package/rancher-components/RcDropdown/RcDropdownMenu.vue +7 -3
  316. package/rancher-components/RcDropdown/types.ts +1 -0
  317. package/scripts/clean +0 -0
  318. package/scripts/extension/bundle +20 -0
  319. package/scripts/extension/helm/charts/ui-plugin-server/templates/_helpers.tpl +2 -2
  320. package/scripts/extension/helm/charts/ui-plugin-server/templates/cr.yaml +2 -1
  321. package/scripts/extension/helm/charts/ui-plugin-server/values.yaml +2 -0
  322. package/scripts/extension/helm/scripts/package +0 -0
  323. package/scripts/extension/helm/scripts/patch +0 -0
  324. package/scripts/extension/helm/scripts/version +0 -0
  325. package/scripts/extension/helmpatch +44 -31
  326. package/scripts/extension/parse-tag-name +0 -0
  327. package/scripts/extension/publish +12 -12
  328. package/scripts/publish-shell.sh +18 -23
  329. package/scripts/serve-pkgs +0 -0
  330. package/scripts/sync-shell-deps +0 -0
  331. package/scripts/test-plugins-build.sh +4 -6
  332. package/scripts/typegen.sh +28 -46
  333. package/server/har-file.js +25 -3
  334. package/static/favicon.ico +0 -0
  335. package/static/favicon.png +0 -0
  336. package/static/loading-indicator.html +2 -2
  337. package/store/aws.js +9 -2
  338. package/store/features.js +2 -1
  339. package/store/i18n.js +3 -3
  340. package/store/modal.ts +71 -0
  341. package/store/slideInPanel.ts +47 -0
  342. package/store/type-map.js +9 -1
  343. package/types/cloud-shell/index.d.ts +11020 -0
  344. package/types/global-vue.d.ts +5 -0
  345. package/types/internal-api/shell/growl.d.ts +25 -0
  346. package/types/internal-api/shell/modal.d.ts +77 -0
  347. package/types/internal-api/shell/slideIn.d.ts +15 -0
  348. package/types/shell/index.d.ts +118 -128
  349. package/types/vue-shim.d.ts +4 -1
  350. package/utils/__tests__/object.test.ts +38 -4
  351. package/utils/__tests__/string.test.ts +2 -2
  352. package/utils/auth.js +1 -0
  353. package/utils/banners.js +0 -45
  354. package/utils/cluster.js +35 -0
  355. package/utils/color.js +9 -8
  356. package/utils/error.js +61 -3
  357. package/utils/errorTranslate.json +450 -30
  358. package/utils/object.js +46 -6
  359. package/utils/router.js +22 -1
  360. package/utils/select.js +26 -3
  361. package/utils/string.js +9 -8
  362. package/utils/title.ts +1 -1
  363. package/utils/validators/machine-pool.ts +20 -0
  364. package/vue.config.js +7 -2
  365. package/components/formatter/ExtensionCache.vue +0 -74
  366. package/components/formatter/Port.vue +0 -24
  367. package/components/formatter/SecretType.vue +0 -41
  368. package/types/resources/fleet.d.ts +0 -57
  369. package/types/resources/pod-security-admission.ts +0 -36
  370. package/types/resources/settings.d.ts +0 -93
  371. package/types/resources/userPreferences.d.ts +0 -13
  372. package/types/vue-shim.d +0 -20
package/utils/router.js CHANGED
@@ -1,5 +1,26 @@
1
1
  import { INSTALL_REDIRECT_META_KEY } from '@shell/config/router/navigation-guards/install-redirect';
2
2
 
3
+ export function harvesterhci2cloud(str) {
4
+ return str?.replace('harvesterhci.io', 'cloudhci.io')
5
+ }
6
+
7
+ export function cloud2harvesterhci(str) {
8
+ // console.log('00099', str)
9
+ // const regex = /[a-z]+cloud.io.(.+)/;
10
+ // if (str?.match(regex)) {
11
+ // return str;
12
+ // }
13
+ return str?.replace('cloudhci.io', 'harvesterhci.io')
14
+ }
15
+
16
+ export function harvester2cloud(str) {
17
+ return str?.replace('harvester', 'cloud')
18
+ }
19
+
20
+ export function cloud2harvester(str) {
21
+ return str?.replace('cloud', 'harvester')
22
+ }
23
+
3
24
  export function queryParamsFor(current, qp, defaults = {}) {
4
25
  const query = Object.assign({}, current || {});
5
26
 
@@ -68,7 +89,7 @@ export const getPackageFromRoute = (route) => {
68
89
  };
69
90
 
70
91
  export const getResourceFromRoute = (to) => {
71
- let resource = to.params?.resource;
92
+ let resource = cloud2harvesterhci(to.params?.resource);
72
93
 
73
94
  if (!resource) {
74
95
  resource = findMeta(to, 'resource');
package/utils/select.js CHANGED
@@ -26,8 +26,19 @@ export function onClickOption(option, e) {
26
26
  // This is a simpler positionner for the dropdown for a select control
27
27
  // We used to use popper for these, but it does not suppotr fractional pixel placements which
28
28
  // means the dropdown does not appear aligned to the control when placed in a column-based layout
29
- export function calculatePosition(dropdownList, component, width, placement) {
29
+ export function calculatePosition(dropdownList, component, width, placement, type, isLabel,leftWidth) {
30
30
  const selectEl = component.$parent.$el;
31
+
32
+ const labeledContainer = selectEl.querySelector('.labeled-container');
33
+ let labelWidth=0
34
+ if (labeledContainer) {
35
+ labelWidth= labeledContainer.offsetWidth;
36
+ } else {
37
+ console.warn("未找到类名为 labeled-container 的元素");
38
+ }
39
+
40
+
41
+
31
42
  const r = selectEl.getBoundingClientRect();
32
43
  const p = placement || 'bottom-start';
33
44
  const docHeight = document.body.offsetHeight;
@@ -59,7 +70,19 @@ export function calculatePosition(dropdownList, component, width, placement) {
59
70
  selectEl.classList.remove('vs__dropdown-up');
60
71
  }
61
72
 
62
- dropdownList.style.left = `${ r.x }px`;
73
+ // dropdownList.style.left = `${ r.x }px`;
63
74
  dropdownList.style.width = 'min-content';
64
- dropdownList.style.minWidth = `${ r.width }px`;
75
+ // const s = type === 'label'? `${ r.x }px` :`${ r.x + Number(type.split("px")[0]) }px`
76
+ dropdownList.style.left = ((type === 'label') && (!isLabel)) ? `${ (r.x) + labelWidth }px` : `${ r.x + (typeof type === 'string' ? parseFloat(type) : 0) }px`;
77
+ // dropdownList.style.minWidth = type === 'label' ? `${ (r.width) - 160 }px` : `${ r.width }px`;
78
+ console.log(type);
79
+ console.log( r.width);
80
+ if(leftWidth!=='') {
81
+ dropdownList.style.left = leftWidth
82
+ }
83
+ const SelectContainer = selectEl.querySelector('.labeled-select');
84
+
85
+
86
+ // dropdownList.style.width = type === 'label' ? '400px' : `${ r.width }px`;
87
+ dropdownList.style.width = type === 'label' ? `${SelectContainer.offsetWidth}px` : `${ r.width- (typeof type === 'string' ? parseFloat(type) : 0) }px`;
65
88
  }
package/utils/string.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { translateError } from "@shell/utils/error";
2
+
1
3
  export function camelToTitle(str) {
2
4
  return dasherize((str || '')).split('-').map((str) => {
3
5
  return ucFirst(str);
@@ -151,11 +153,9 @@ export function pluralize(str) {
151
153
  }
152
154
  }
153
155
 
154
- export function resourceNames(names, t, options = {}) {
156
+ export function resourceNames(names, plusMore, t, endString) {
155
157
  const MAX_NAMES_COUNT = 5;
156
158
 
157
- let { plusMore, endString } = options;
158
-
159
159
  // plusMore default value
160
160
  if (!plusMore) {
161
161
  plusMore = t('promptRemove.andOthers', { count: names.length > MAX_NAMES_COUNT ? names.length - MAX_NAMES_COUNT : 0 });
@@ -163,19 +163,19 @@ export function resourceNames(names, t, options = {}) {
163
163
 
164
164
  // endString default value
165
165
  if (!endString) {
166
- endString = endString === false ? ' ' : '.';
166
+ endString = endString === false ? ' ' : '';
167
167
  }
168
168
 
169
169
  return names.reduce((res, name, i) => {
170
170
  if (i < MAX_NAMES_COUNT) {
171
- res += `<b>${ escapeHtml( name ) }</b>`;
171
+ res += `<span>${ escapeHtml( name ) }</span>`;
172
172
 
173
173
  if (i === names.length - 1) {
174
174
  res += endString;
175
175
  } else if (i === names.length - 2) {
176
- res += names.length <= 5 ? t('generic.and') : '';
176
+ res += names.length <= 5 ? '' : '';
177
177
  } else {
178
- res += i < MAX_NAMES_COUNT - 1 ? t('generic.comma') : '';
178
+ res += i < MAX_NAMES_COUNT - 1 ? ' , ' : '';
179
179
  }
180
180
  }
181
181
 
@@ -284,7 +284,8 @@ export function ensureRegex(strOrRegex, exact = true) {
284
284
  }
285
285
 
286
286
  export function nlToBr(value) {
287
- return escapeHtml(value || '').replace(/(\r\n|\r|\n)/g, '<br/>\n');
287
+
288
+ return translateError(escapeHtml(value || '').replace(/(\r\n|\r|\n)/g, '<br/>\n'));
288
289
  }
289
290
 
290
291
  const quotedMatch = /[^."']+|"([^"]*)"|'([^']*)'/g;
package/utils/title.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export function updatePageTitle(...breadcrumb: (string | null | undefined | false)[]): void {
2
- document.title = breadcrumb.filter((s) => s).join(' - ');
2
+ document.title = breadcrumb.filter((s) => s).join(' - ').replace(/<i[^>]*>|<\/i>/g, '').replace('Harvester', 'HCI');
3
3
  }
@@ -0,0 +1,20 @@
1
+ const FIELDS = {
2
+ NAME: 'pool.name',
3
+ QUANTITY: 'pool.quantity'
4
+ };
5
+
6
+ const RULESETS = [
7
+ {
8
+ path: FIELDS.QUANTITY,
9
+ rules: ['requiredInt', 'isPositive'],
10
+ },
11
+ {
12
+ path: FIELDS.NAME,
13
+ rules: ['required'],
14
+ }
15
+ ];
16
+
17
+ export const MACHINE_POOL_VALIDATION = {
18
+ FIELDS,
19
+ RULESETS
20
+ };
package/vue.config.js CHANGED
@@ -58,6 +58,11 @@ const getShellPaths = (dir) => {
58
58
  COMPONENTS_DIR = path.join(dir, 'pkg', 'rancher-components', 'src', 'components');
59
59
  }
60
60
 
61
+ if (fs.existsSync(path.join(dir, 'cloud-shell'))) {
62
+ SHELL_ABS = path.join(dir, 'cloud-shell');
63
+ COMPONENTS_DIR = path.join(dir, 'pkg', 'rancher-components', 'src', 'components');
64
+ }
65
+
61
66
  return { SHELL_ABS, COMPONENTS_DIR };
62
67
  };
63
68
 
@@ -157,7 +162,7 @@ const getLoaders = (SHELL_ABS) => [
157
162
  test: /\.m?[tj]sx?$/,
158
163
  // This excludes no modules except for node_modules/@rancher/... so that plugins can properly compile
159
164
  // when referencing @rancher/shell
160
- exclude: /node_modules\/(?!(@rancher)\/).*/,
165
+ exclude: /node_modules\/(?!(dashboard-shell-shell)\/).*/,
161
166
  use: [
162
167
  {
163
168
  loader: 'cache-loader',
@@ -574,4 +579,4 @@ module.exports = function(dir, appConfig = {}) {
574
579
  };
575
580
 
576
581
  return config;
577
- };
582
+ };
@@ -1,74 +0,0 @@
1
- <script>
2
- import { BadgeState } from '@components/BadgeState';
3
- import { stateDisplay } from '@shell/plugins/dashboard-store/resource-class';
4
-
5
- export default {
6
- props: {
7
- value: {
8
- type: String,
9
- default: ''
10
- }
11
- },
12
-
13
- components: { BadgeState },
14
-
15
- data() {
16
- const STATES = {
17
- cached: {
18
- color: 'info', icon: 'dot-open', label: 'Cached', compoundIcon: 'checkmark'
19
- },
20
- pending: {
21
- color: 'warning', icon: 'tag', label: 'In Progress', compoundIcon: 'info'
22
- },
23
- disabled: {
24
- color: 'error', icon: 'dot-half', label: 'Cache Disabled', compoundIcon: 'info'
25
- },
26
- };
27
-
28
- return {
29
- STATES,
30
- stateDisplay: '',
31
- stateBackground: ''
32
- };
33
- },
34
-
35
- watch: {
36
- value: {
37
- handler() {
38
- const out = this.value || 'pending';
39
- const color = this.colorForState(out);
40
-
41
- this.stateDisplay = stateDisplay(out);
42
- this.stateBackground = color.replace('text-', 'bg-');
43
- },
44
- immediate: true
45
- }
46
- },
47
-
48
- methods: {
49
- colorForState(state) {
50
- const key = (state).toLowerCase();
51
- let color;
52
-
53
- if ( this.STATES[key] && this.STATES[key].color ) {
54
- color = this.STATES[key].color;
55
- }
56
-
57
- if ( !color ) {
58
- color = 'info';
59
- }
60
-
61
- return `text-${ color }`;
62
- }
63
- }
64
- };
65
- </script>
66
-
67
- <template>
68
- <div>
69
- <BadgeState
70
- :color="stateBackground"
71
- :label="stateDisplay"
72
- />
73
- </div>
74
- </template>
@@ -1,24 +0,0 @@
1
- <script>
2
- export default {
3
- props: {
4
- value: {
5
- type: Array,
6
- default: () => []
7
- }
8
- },
9
- data() {
10
- const { hostPort = '', protocol = '' } = this.value[0] || {};
11
-
12
- return { hostPort, protocol };
13
- }
14
- };
15
- </script>
16
-
17
- <template>
18
- <div v-if="hostPort">
19
- {{ hostPort+'/'+protocol }}
20
- </div>
21
- <div v-else>
22
-
23
- </div>
24
- </template>
@@ -1,41 +0,0 @@
1
- <script>
2
- import { SERVICE_ACCOUNT } from '@shell/config/types';
3
- export default {
4
- props: {
5
- value: {
6
- type: [String, Object],
7
- default: 'Opaque'
8
- }
9
- },
10
- data() {
11
- if (this.value.typeDisplay) {
12
- this.findServiceAccount();
13
-
14
- return { typeDisplay: this.value.typeDisplay, serviceAccountLink: null };
15
- }
16
-
17
- return { typeDisplay: this.value, serviceAccountLink: null };
18
- },
19
- methods: {
20
- async findServiceAccount() {
21
- const serviceAccount = await this.$store.dispatch('cluster/find', { type: SERVICE_ACCOUNT, id: this.value.serviceAccountID });
22
-
23
- if (serviceAccount) {
24
- this.serviceAccountLink = serviceAccount.detailLocation;
25
- }
26
- }
27
- }
28
- };
29
- </script>>
30
-
31
- <template>
32
- <router-link
33
- v-if="serviceAccountLink"
34
- :to="serviceAccountLink"
35
- >
36
- {{ typeDisplay }}
37
- </router-link>
38
- <div v-else>
39
- {{ typeDisplay }}
40
- </div>
41
- </template>
@@ -1,57 +0,0 @@
1
- export interface BundleResourceKey {
2
- kind: string,
3
- apiVersion: string,
4
- namespace?: string,
5
- name: string,
6
- }
7
-
8
- export interface BundleDeploymentResource extends BundleResourceKey {
9
- createdAt?: string,
10
- }
11
-
12
- export interface BundleModifiedResource extends BundleResourceKey {
13
- missing?: boolean,
14
- delete?: boolean,
15
- patch: string,
16
- }
17
-
18
- export interface BundleNonReadyResource extends BundleResourceKey {
19
- summary: { [state: string]: string }
20
- }
21
-
22
- export interface BundleNonReadyBundle {
23
- modifiedStatus: BundleModifiedResource[],
24
- nonReadyStatus: BundleNonReadyResource[],
25
- }
26
-
27
- export interface Condition {
28
- status: string,
29
- type: string,
30
- }
31
-
32
- export interface BundleDeploymentStatus {
33
- resources?: BundleDeploymentResource[],
34
- modifiedStatus?: BundleModifiedResource[],
35
- nonReadyStatus?: BundleNonReadyResource[],
36
- appliedDeploymentId?: string,
37
- ready: boolean
38
- nonModified: boolean
39
- conditions: Condition[],
40
- }
41
-
42
- export interface BundleStatusSummary {
43
- nonReadyResources?: BundleNonReadyBundle[],
44
- }
45
-
46
- export interface BundleStatus {
47
- resourceKey?: BundleResourceKey[],
48
- summary?: BundleStatusSummary,
49
- }
50
-
51
- export interface BundleDeployment {
52
- spec: {
53
- deploymentId: string,
54
- stagedDeploymentId: string,
55
- }
56
- status?: BundleDeploymentStatus
57
- }
@@ -1,36 +0,0 @@
1
- /**
2
- * Mode Description
3
- * - 'enforce': Policy violations will cause the pod to be rejected.
4
- * - 'audit': Policy violations will trigger the addition of an audit annotation to the event recorded in the audit log, but are otherwise allowed.
5
- * - 'warn': Policy violations will trigger a user-facing warning, but are otherwise allowed.
6
- */
7
- export type PSAMode = 'enforce' | 'audit' | 'warn';
8
-
9
- /**
10
- * Pod Security admission places requirements on a Pod's Security Context and other related fields according to the three levels defined by the Pod Security Standards:
11
- * privileged, baseline, and restricted.
12
- * Refer to the Pod Security Standards page for an in-depth look at those requirements.
13
- */
14
- export type PSALevel = 'privileged' | 'baseline' | 'restricted';
15
-
16
- /**
17
- * Usernames: requests from users with an exempt authenticated (or impersonated) username are ignored.
18
- * RuntimeClassNames: pods and workload resources specifying an exempt runtime class name are ignored.
19
- * Namespaces: pods and workload resources in an exempt namespace are ignored.
20
- */
21
- export type PSADimension = 'usernames' | 'runtimeClasses' | 'namespaces'
22
-
23
- export type PSADefaults = Record<PSAMode, PSALevel>
24
- export type PSAExemptions = Record<PSADimension, string[]>
25
-
26
- export interface PSAConfig {
27
- defaults: PSADefaults,
28
- exemptions: PSAExemptions
29
- }
30
-
31
- export interface PSA {
32
- configuration: PSAConfig,
33
- metadata: {
34
- labels: Record<string, string>
35
- }
36
- }
@@ -1,93 +0,0 @@
1
-
2
- export interface PaginationSettingsStore {
3
- [name: string]: {
4
- resources: {
5
- /**
6
- * Enable for all resources in this store
7
- */
8
- enableAll: boolean,
9
- enableSome: {
10
- /**
11
- * Specific resource type to enable
12
- */
13
- enabled: (string | { resource: string, context: string[]})[],
14
- /**
15
- * There's no hardcoded headers or custom list for the resource type, headers will be generated from schema attributes.columns
16
- */
17
- generic: boolean,
18
- },
19
- }
20
- }
21
- }
22
-
23
- /**
24
- * Settings to handle server side pagination
25
- */
26
- export interface PaginationSettings {
27
- /**
28
- * Global setting to enable or disable
29
- */
30
- enabled: boolean,
31
- /**
32
- * Override `stores` and apply pagination to a set of default resource types that can change between versions
33
- */
34
- useDefaultStores: boolean,
35
- /**
36
- * Should pagination be enabled for resources in a store
37
- */
38
- stores: PaginationSettingsStore | undefined
39
- }
40
-
41
- type Links = {
42
- remove: string;
43
- self: string;
44
- update: string;
45
- view: string;
46
- };
47
-
48
- type FieldsV1 = {
49
- 'f:customized': {};
50
- 'f:default': {};
51
- 'f:source': {};
52
- 'f:value': {};
53
- };
54
-
55
- type ManagedFields = {
56
- apiVersion: string;
57
- fieldsType: string;
58
- fieldsV1: FieldsV1;
59
- manager: string;
60
- operation: string;
61
- time: string;
62
- };
63
-
64
- type Metadata = {
65
- creationTimestamp: string;
66
- fields: string[];
67
- generation: number;
68
- managedFields: ManagedFields[];
69
- name: string;
70
- relationships: null;
71
- resourceVersion: string;
72
- state: {
73
- error: boolean;
74
- message: string;
75
- name: string;
76
- transitioning: boolean;
77
- };
78
- uid: string;
79
- };
80
-
81
- export type Setting = {
82
- id: string;
83
- type: string;
84
- links: Links;
85
- apiVersion: string;
86
- customized: boolean;
87
- default: string;
88
- kind: string;
89
- metadata: Metadata;
90
- source: string;
91
- value: string | null;
92
- save: () => void;
93
- };
@@ -1,13 +0,0 @@
1
- export interface UserPreferences {
2
- 'after-login-route': string,
3
- cluster: string,
4
- 'group-by': string,
5
- 'home-page-cards': string,
6
- 'last-namespace': string,
7
- 'last-visited': string,
8
- 'ns-by-cluster': string,
9
- provisioner: string,
10
- 'read-whatsnew': string,
11
- 'seen-whatsnew': string,
12
- theme: string,
13
- }
package/types/vue-shim.d DELETED
@@ -1,20 +0,0 @@
1
- declare module '*.vue' {
2
- import Vue from 'vue';
3
- export default Vue;
4
- }
5
-
6
- // This is required to keep typescript from complaining. It is required for
7
- // our i18n plugin. For more info see:
8
- // https://v2.vuejs.org/v2/guide/typescript.html?redirect=true#Augmenting-Types-for-Use-with-Plugins
9
- declare module 'vue/types/vue' {
10
- // eslint-disable-next-line no-unused-vars
11
- interface Vue {
12
- /**
13
- * Lookup a given string with the given arguments
14
- * @param raw if set, do not do HTML escaping.
15
- */
16
- t: (key: string, args?: Record<string, any>, raw?: boolean) => string,
17
- }
18
- }
19
-
20
- declare module 'js-yaml';