dashboard-shell-shell 1.0.121 → 1.0.1000000081

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 +89 -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 +9 -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 +540 -554
  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 +2 -1
  343. package/types/cloud-shell/index.d.ts +11014 -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
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -eo pipefail
2
3
 
3
4
  SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
4
5
  BASE_DIR="$(pwd)"
@@ -330,6 +331,12 @@ if [ "${UPDATE_LATEST_PACAKGES}" = "true" ]; then
330
331
  find plugin -type f | sort > files.txt
331
332
  popd > /dev/null
332
333
 
334
+ # --------------------------------------------------------------------------------
335
+ # Package extensions into tgz for the compressedEndpoint
336
+ # --------------------------------------------------------------------------------
337
+ echo -e "${CYAN}Packaging extension into tgz${RESET}"
338
+ tar -czf ${BASE_DIR}/extensions/${pkg}/${PKG_VERSION}.tgz -C ${BASE_DIR}/extensions/${pkg} ${PKG_VERSION}
339
+
333
340
  # --------------------------------------------------------------------------------
334
341
  # Create the Helm chart
335
342
  # --------------------------------------------------------------------------------
@@ -358,18 +365,11 @@ if [ "${UPDATE_LATEST_PACAKGES}" = "true" ]; then
358
365
  cp ./pkg/${pkg}/README.md ${CHART_FOLDER}/README.md
359
366
  fi
360
367
 
361
- pushd ${CHART_FOLDER}/templates > /dev/null
362
-
363
- if [ "${GITHUB_BUILD}" == "true" ]; then
364
- echo "Patching for GitHub build"
365
- ENDPOINT=https://raw.githubusercontent.com/${GITHUB_SOURCE}/${GITHUB_BRANCH}/extensions/${pkg}/${PKG_VERSION}
366
- else
367
- echo "Patching for container build"
368
- ENDPOINT=http://${IMAGE_PREFIX}${BASE_EXT}-svc.cattle-ui-plugin-system:8080/plugin/${PKG_NAME}
369
- fi
370
- sed -i.bak -e 's@endpoint: .*@endpoint: '"${ENDPOINT}"'@g' cr.yaml
371
- rm *.bak
372
- popd > /dev/null
368
+ export GITHUB_BUILD
369
+ export IMAGE_PREFIX
370
+ export BASE_EXT
371
+ export GITHUB_SOURCE
372
+ export GITHUB_BRANCH
373
373
 
374
374
  # Additional patches
375
375
  ${SCRIPT_DIR}/helmpatch ${CHART_FOLDER} "${BASE_DIR}/pkg/${pkg}/package.json"
@@ -1,10 +1,16 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
+ # 执行命令:TAG=cloud-shell-pkg-v{版本号} ./cloud-shell/scripts/publish-shell.sh
4
+
3
5
  set -eo pipefail
4
6
 
5
7
  SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
6
8
  BASE_DIR="$(cd $SCRIPT_DIR && cd ../.. && pwd)"
7
- SHELL_DIR=$BASE_DIR/shell/
9
+ echo "BASE_DIR is ${BASE_DIR}"
10
+ echo "SCRIPT_DIR is ${SCRIPT_DIR}"
11
+ echo "PWD is $(pwd)"
12
+ CLOUD_SHELL_DIR=$BASE_DIR/cloud-shell/
13
+ echo "CLOUD_SHELL_DIR is ${CLOUD_SHELL_DIR}"
8
14
  CREATORS_DIR=$BASE_DIR/creators/extension
9
15
  FORCE_PUBLISH_TO_NPM="false"
10
16
  DEFAULT_NPM_REGISTRY="https://registry.npmjs.org"
@@ -20,7 +26,7 @@ if [ ! -d "${BASE_DIR}/node_modules" ]; then
20
26
  exit 1
21
27
  fi
22
28
 
23
- echo "Publishing Shell Packages"
29
+ echo "Publishing Cloud Shell Packages"
24
30
 
25
31
  if [ "$1" == "--npm" ]; then
26
32
  FORCE_PUBLISH_TO_NPM="true"
@@ -32,26 +38,16 @@ fi
32
38
 
33
39
  PUBLISH_ARGS="--no-git-tag-version --access public --registry $NPM_REGISTRY"
34
40
 
35
- pushd ${SHELL_DIR} >/dev/null
41
+ pushd ${CLOUD_SHELL_DIR} >/dev/null
36
42
 
37
43
  function publish() {
38
44
  NAME=$1
39
45
  FOLDER=$2
40
46
 
41
- # if we pass a third arg, that is the version number
42
- # that we want to actually publish on NPM
43
- # they should match with the package.json version stated
44
- # because of the check in the "Check Tags Version Matching" step in the workflow
45
47
  if [ -n "$3" ]; then
46
48
  PKG_VERSION=$3
47
49
  fi
48
50
 
49
- # if the PKG_VERSION has a - it means it will be a pre-release
50
- if [[ $PKG_VERSION == *"-"* ]]; then
51
- PUBLISH_ARGS="$PUBLISH_ARGS --tag pre-release"
52
- fi
53
-
54
- # when testing the workflow, we don't want to actually do an npm publish but only a dry run
55
51
  if [ ${DRY_RUN} == "true" ]; then
56
52
  PUBLISH_ARGS="$PUBLISH_ARGS --dry-run"
57
53
  fi
@@ -62,13 +58,12 @@ function publish() {
62
58
  pushd ${FOLDER} >/dev/null
63
59
 
64
60
  # For now, copy the rancher components into the shell and ship them with it
65
- if [ "$NAME" == "Shell" ]; then
61
+ if [ "$NAME" == "Cloud Shell" ]; then
66
62
  echo "Adding Rancher Components"
67
63
  rm -rf ./rancher-components
68
64
  cp -R ${BASE_DIR}/pkg/rancher-components/src/components ./rancher-components/
69
65
  fi
70
66
 
71
- # Make a note of dependency versions, if required
72
67
  node ${SCRIPT_DIR}/record-deps.js
73
68
 
74
69
  echo "Publishing to registry: $NPM_REGISTRY"
@@ -86,30 +81,30 @@ function publish() {
86
81
 
87
82
  echo "TAG ${TAG}"
88
83
 
89
- # let's get the package name and version from the tag
84
+ # let's get the package name and version from the tag
90
85
  PKG_NAME=$(sed 's/-pkg-v.*//' <<< "$TAG")
91
86
  PKG_V=$(sed 's/.*-pkg-v//'<<< "$TAG")
92
87
 
93
88
  echo "PKG_NAME ${PKG_NAME}"
94
89
  echo "PKG_V ${PKG_V}"
95
90
 
96
- # Generate the type definitions for the shell
97
- if [ ${PKG_NAME} == "shell" ]; then
91
+ # Generate the type definitions for the cloud-shell
92
+ if [ ${PKG_NAME} == "cloud-shell" ]; then
98
93
  ${SCRIPT_DIR}/typegen.sh
99
94
  fi
100
95
 
101
96
  # version comparison checks
102
97
  case $PKG_NAME in
103
- "shell")
104
- echo "Publishing only Shell pkg via tagged release"
105
- publish "Shell" ${SHELL_DIR} ${PKG_V}
98
+ "cloud-shell")
99
+ echo "Publishing only Cloud Shell pkg via tagged release"
100
+ publish "Cloud Shell" ${CLOUD_SHELL_DIR} ${PKG_V}
106
101
  ;;
107
102
  "creators")
108
103
  echo "Publishing only Creators pkg via tagged release"
109
104
  publish "Extension creator" ${CREATORS_DIR} ${PKG_V}
110
105
  ;;
111
106
  *)
112
- echo "something went wrong with the tagging name => TAG: ${TAG} , PKG_NAME: ${PKG_NAME}. Admissable names are 'shell' and 'creator'"
107
+ echo "something went wrong with the tagging name => TAG: ${TAG} , PKG_NAME: ${PKG_NAME}. Admissable names are 'cloud-shell' and 'creators'"
113
108
  exit 1
114
109
  ;;
115
- esac
110
+ esac
File without changes
File without changes
@@ -238,11 +238,9 @@ function clone_repo_test_extension_build() {
238
238
  # Don't forget to add the unit tests exception to clone_repo_test_extension_build function if a new extension has those
239
239
  clone_repo_test_extension_build "rancher" "kubewarden-ui" "kubewarden"
240
240
  clone_repo_test_extension_build "rancher" "elemental-ui" "elemental"
241
- # TODO #13141: Enable neuvector tests after issues have been resolved
242
- # clone_repo_test_extension_build "neuvector" "manager-ext" "neuvector-ui-ext"
243
- # TODO: #13173: Enable capi, stackstate, and harvester after `entities` resolution has been set
244
- # clone_repo_test_extension_build "rancher" "capi-ui-extension" "capi"
245
- # clone_repo_test_extension_build "StackVista" "rancher-extension-stackstate" "observability"
246
- # clone_repo_test_extension_build "harvester" "harvester-ui-extension" "harvester"
241
+ clone_repo_test_extension_build "neuvector" "manager-ext" "neuvector-ui-ext"
242
+ clone_repo_test_extension_build "rancher" "capi-ui-extension" "capi"
243
+ clone_repo_test_extension_build "StackVista" "rancher-extension-stackstate" "observability"
244
+ clone_repo_test_extension_build "harvester" "harvester-ui-extension" "harvester"
247
245
 
248
246
  echo "All done"
@@ -2,71 +2,53 @@
2
2
 
3
3
  SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
4
4
  BASE_DIR="$(git rev-parse --show-toplevel)"
5
- SHELL_DIR=$BASE_DIR/shell
5
+ CLOUD_SHELL_DIR=$BASE_DIR/cloud-shell
6
6
 
7
- echo "Generating typescript definitions"
7
+ echo "Generating typescript definitions in ${CLOUD_SHELL_DIR}"
8
8
 
9
- rm -rf ${SHELL_DIR}/tmp
10
- mkdir -p ${SHELL_DIR}/tmp
9
+ # 清理 tmp 并创建目录
10
+ rm -rf ${CLOUD_SHELL_DIR}/tmp
11
+ mkdir -p ${CLOUD_SHELL_DIR}/tmp
11
12
 
12
13
  echo "Generating ..."
13
14
 
14
15
  # utils
15
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/utils/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/utils > /dev/null
16
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/utils/validators/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/utils/validators > /dev/null
17
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/utils/crypto/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/utils/crypto > /dev/null
16
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/utils/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/utils > /dev/null
17
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/utils/validators/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/utils/validators > /dev/null
18
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/utils/crypto/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/utils/crypto > /dev/null
18
19
 
19
20
  # config
20
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/config/query-params.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/config > /dev/null
21
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/config/table-headers.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/config > /dev/null
22
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/config/types.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/config > /dev/null
23
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/config/labels-annotations.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/config > /dev/null
24
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/config/version.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/config > /dev/null
21
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/config/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/config > /dev/null
25
22
 
26
- # # store
27
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/store/features.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/store > /dev/null
28
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/store/prefs.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/store > /dev/null
29
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/store/plugins.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/store > /dev/null
23
+ # store
24
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/store/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/store > /dev/null
30
25
 
31
- # # plugins
32
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/normalize.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
33
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/resource-class.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
34
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/classify.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
35
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/actions.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
36
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/steve/steve-class.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/steve/ > /dev/null
37
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/plugins/steve/hybrid-class.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/steve/ > /dev/null
26
+ # plugins
27
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/plugins/dashboard-store/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/plugins/dashboard-store/ > /dev/null
28
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/plugins/steve/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/plugins/steve/ > /dev/null
38
29
 
39
- # # mixins
40
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/mixins/create-edit-view/index.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/mixins/create-edit-view > /dev/null
41
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/mixins/resource-fetch.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/mixins > /dev/null
30
+ # mixins
31
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/mixins/**/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/mixins > /dev/null
42
32
 
43
- # # models
44
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/models/namespace.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/models/ > /dev/null
45
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/models/networking.k8s.io.ingress.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/models/ > /dev/null
46
- ${BASE_DIR}/node_modules/.bin/tsc ${SHELL_DIR}/models/catalog.cattle.io.clusterrepo.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/models/ > /dev/null
33
+ # models
34
+ ${BASE_DIR}/node_modules/.bin/tsc ${CLOUD_SHELL_DIR}/models/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${CLOUD_SHELL_DIR}/tmp/models/ > /dev/null
47
35
 
48
- #./node_modules/.bin/tsc ${SHELL_DIR}/plugins/dashboard-store/*.js --declaration --allowJs --emitDeclarationOnly --outDir ${SHELL_DIR}/tmp/plugins/dashboard-store
49
-
50
- # Go through all of the folders and combine by wrapping with 'declare module'
51
-
52
- echo "Contents of ${SHELL_DIR}/tmp after tsc commands:"
53
- find ${SHELL_DIR}/tmp
36
+ echo "Contents of ${CLOUD_SHELL_DIR}/tmp after tsc commands:"
37
+ find ${CLOUD_SHELL_DIR}/tmp
54
38
 
55
39
  echo "Combining type definitions ..."
56
40
 
57
- DEST=${SHELL_DIR}/types/shell
41
+ DEST=${CLOUD_SHELL_DIR}/types/cloud-shell
58
42
  mkdir -p ${DEST}
59
43
 
60
44
  INDEX=${DEST}/index.d.ts
61
45
  rm -rf ${INDEX}
62
46
 
63
- echo "// Auto-generated type definitions for shell" > ${INDEX}
47
+ echo "// Auto-generated type definitions for cloud-shell" > ${INDEX}
64
48
  echo "// Do not modify this file as changes will get overwritten" >> ${INDEX}
65
49
 
66
- # Copy in the vue shim type definitions
67
- if [ -f "$BASE_DIR/shell/types/vue-shim.d" ]; then
68
- cat "$BASE_DIR/shell/types/vue-shim.d" >> ${INDEX}
69
- fi
50
+ echo "/// <reference types=\"@rancher/cloud-shell/types/vue-shim\" />" >> ${INDEX}
51
+ echo "/// <reference types=\"@rancher/cloud-shell/types/global-vue\" />" >> ${INDEX}
70
52
 
71
53
  function processDir() {
72
54
  local dir=$1
@@ -80,9 +62,7 @@ function processDir() {
80
62
  processDir $entry $basePkg/$filename
81
63
  else
82
64
  if [[ $filename == *.d.ts ]]; then
83
- # We use convoluted mechanism here to ensure this works on mac with bash 3.x
84
65
  local name=$(echo $filename | rev | cut -c6- | rev)
85
-
86
66
  local module=${basePkg}/${name}
87
67
  if [ "${name}" == "index" ]; then
88
68
  module=${basePkg}
@@ -97,6 +77,8 @@ function processDir() {
97
77
  done
98
78
  }
99
79
 
100
- processDir ${SHELL_DIR}/tmp @shell
80
+ processDir ${CLOUD_SHELL_DIR}/tmp @cloud-shell
81
+
82
+ rm -rf ${CLOUD_SHELL_DIR}/tmp
101
83
 
102
- rm -rf ${SHELL_DIR}/tmp
84
+ echo "Type generation completed in ${CLOUD_SHELL_DIR}"
@@ -1,11 +1,15 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
+ const querystring = require('querystring');
3
4
 
4
5
  // When we receive a request to this URL we will reset the session to replay again from the HAR file
5
6
  // This allows the user to refresh the browser and replay the HAR file again
6
7
  const RESET_URL = '/api/v1/namespaces/cattle-ui-plugin-system/services/http:ui-plugin-operator:80/proxy/index.json';
7
8
 
8
- const EXCLUDES_QS = '?exclude=metadata.managedFields';
9
+ const EXCLUDE_QS = 'exclude';
10
+
11
+ const LEGACY_UI_PLUGIN_INDEX = '/api/v1/namespaces/cattle-ui-plugin-system/services/http:ui-plugin-operator:80/proxy/index.json';
12
+ const NEW_UI_PLUGIN_INDEX = '/v1/uiplugins';
9
13
 
10
14
  /**
11
15
  * Load the network requests/responses from the har file
@@ -113,10 +117,28 @@ function harProxy(responses, folder) {
113
117
  const url = decodeURIComponent(req.originalUrl);
114
118
  let playback = session[req.originalUrl];
115
119
 
120
+ // Handle case where HAR file was created with older UI Extension API that used the operator
121
+ if (!playback && req.originalUrl.includes(NEW_UI_PLUGIN_INDEX)) {
122
+ // Look for new URl for UI plugins
123
+ playback = session[LEGACY_UI_PLUGIN_INDEX];
124
+ }
125
+
116
126
  // If it did not match, try without the metadata excludes query string that was adding in 2.8.0
117
127
  // This might allow HAR captures with Rancher < 2.8.0 to be replayed on >= 2.8.0
118
- if (!playback && req.originalUrl.endsWith(EXCLUDES_QS)) {
119
- playback = session[req.originalUrl.slice(0, -EXCLUDES_QS.length)];
128
+ if (!playback && req.originalUrl.includes('?')) {
129
+ const urlParts = req.originalUrl.split('?');
130
+
131
+ if (urlParts.length > 1) {
132
+ const queryString = urlParts[1];
133
+ const qs = querystring.parse(queryString);
134
+
135
+ delete qs[EXCLUDE_QS];
136
+
137
+ const newQs = querystring.stringify(qs);
138
+ const newUrl = newQs.length ? `${ urlParts[0] }?${ newQs }` : urlParts[0];
139
+
140
+ playback = session[newUrl];
141
+ }
120
142
  }
121
143
 
122
144
  if (playback && playback[req.method] && playback[req.method].length) {
Binary file
Binary file
@@ -15,9 +15,9 @@
15
15
  animation: initial-load-animate 1s infinite linear;
16
16
  background-color: transparent;
17
17
  box-sizing: border-box;
18
- border: 5px solid #008ACF;
18
+ border: 5px solid #1890FF;
19
19
  border-radius: 50%;
20
- border-top-color: #00B2E2;
20
+ border-top-color: transparent;
21
21
  display: inline-block;
22
22
  height: 80px;
23
23
  margin: 0 auto;
package/store/aws.js CHANGED
@@ -241,8 +241,15 @@ export const actions = {
241
241
  }
242
242
 
243
243
  addObjects(out, res[key]);
244
- opt.NextToken = res.NextToken;
245
- hasNext = !!res.NextToken;
244
+ if (res.NextToken) {
245
+ opt.NextToken = res.NextToken;
246
+ hasNext = true;
247
+ } else if (res.Marker) {
248
+ opt.Marker = res.Marker;
249
+ hasNext = true;
250
+ } else {
251
+ hasNext = false;
252
+ }
246
253
  }
247
254
 
248
255
  return out;
package/store/features.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { MANAGEMENT } from '@shell/config/types';
2
+ import { SCHEDULING_CUSTOMIZATION as SCHEDULING_CUSTOMIZATION_FEATURE } from '@shell/config/features';
2
3
 
3
4
  const definitions = {};
4
5
 
@@ -36,7 +37,7 @@ export const FLEET_WORKSPACE_BACK = create('provisioningv2-fleet-workspace-back-
36
37
  export const STEVE_CACHE = create('ui-sql-cache', false);
37
38
  export const UIEXTENSION = create('uiextension', true);
38
39
  export const PROVISIONING_PRE_BOOTSTRAP = create('provisioningprebootstrap', false);
39
- export const SCHEDULING_CUSTOMIZATION = create('cluster-agent-scheduling-customization', false);
40
+ export const SCHEDULING_CUSTOMIZATION = create(SCHEDULING_CUSTOMIZATION_FEATURE, false);
40
41
 
41
42
  // Not currently used.. no point defining ones we don't use
42
43
  // export const EMBEDDED_CLUSTER_API = create('embedded-cluster-api', true);
package/store/i18n.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import merge from 'lodash/merge';
2
2
  import IntlMessageFormat from 'intl-messageformat';
3
3
  import { get } from '@shell/utils/object';
4
- import en from '@shell/assets/translations/en-us.yaml';
4
+ import zh from '@shell/assets/translations/zh-hans.yaml';
5
5
  import { getProduct, getVendor, DOCS_BASE } from '@shell/config/private-label';
6
6
  import { loadTranslation } from '@shell/utils/dynamic-importer';
7
7
 
8
8
  const NONE = 'none';
9
- const DEFAULT_LOCALE = 'en-us';
9
+ const DEFAULT_LOCALE = 'zh-hans';
10
10
 
11
11
  // Formatters can't be serialized into state
12
12
  const intlCache = {};
@@ -25,7 +25,7 @@ export const state = function() {
25
25
  selected: null,
26
26
  previous: null,
27
27
  available,
28
- translations: { [DEFAULT_LOCALE]: en },
28
+ translations: { [DEFAULT_LOCALE]: zh },
29
29
  };
30
30
 
31
31
  return out;
package/store/modal.ts ADDED
@@ -0,0 +1,71 @@
1
+ import { markRaw, Component } from 'vue';
2
+ import { MutationTree, GetterTree, ActionTree } from 'vuex';
3
+
4
+ export interface ModalState {
5
+ isOpen: boolean;
6
+ component: Component | null;
7
+ componentProps: Record<string, any>;
8
+ resources: any[];
9
+ closeOnClickOutside: boolean;
10
+ modalWidth: string;
11
+ modalSticky: boolean;
12
+ }
13
+
14
+ const state = (): ModalState => ({
15
+ isOpen: false,
16
+ component: null,
17
+ componentProps: {},
18
+ resources: [],
19
+ closeOnClickOutside: false,
20
+ modalWidth: '610px',
21
+ modalSticky: false
22
+ });
23
+
24
+ const getters: GetterTree<ModalState, any> = {
25
+ isOpen: (state) => state.isOpen,
26
+ component: (state) => state.component,
27
+ componentProps: (state) => state.componentProps,
28
+ resources: (state) => state.resources,
29
+ closeOnClickOutside: (state) => state.closeOnClickOutside,
30
+ modalWidth: (state) => state.modalWidth,
31
+ modalSticky: (state) => state.modalSticky,
32
+ };
33
+
34
+ const mutations: MutationTree<ModalState> = {
35
+ openModal(state, payload: {
36
+ component: Component;
37
+ componentProps?: Record<string, any>;
38
+ resources?: any[];
39
+ closeOnClickOutside?: boolean;
40
+ modalWidth?: string;
41
+ modalSticky?: boolean;
42
+ }) {
43
+ state.isOpen = true;
44
+ state.component = markRaw(payload.component);
45
+ state.componentProps = payload.componentProps || {};
46
+ state.resources = Array.isArray(payload.resources) ? payload.resources : (payload.resources ? [payload.resources] : []);
47
+ state.closeOnClickOutside = payload.closeOnClickOutside ?? false;
48
+ state.modalWidth = payload.modalWidth || '610px';
49
+ state.modalSticky = payload.modalSticky ?? false;
50
+ },
51
+
52
+ closeModal(state) {
53
+ state.isOpen = false;
54
+ state.component = null;
55
+ state.componentProps = {};
56
+ state.resources = [];
57
+ state.closeOnClickOutside = false;
58
+ state.modalWidth = '610px';
59
+ state.modalSticky = false;
60
+ }
61
+ };
62
+
63
+ const actions: ActionTree<ModalState, any> = {};
64
+
65
+ export default {
66
+ namespaced: true,
67
+ state,
68
+ getters,
69
+ mutations,
70
+ actions
71
+ };
@@ -0,0 +1,47 @@
1
+ import { markRaw, Component } from 'vue';
2
+ import { MutationTree, GetterTree, ActionTree } from 'vuex';
3
+
4
+ export interface SlideInPanelState {
5
+ isOpen: boolean;
6
+ component: Component | null;
7
+ componentProps: Record<string, any>;
8
+ }
9
+
10
+ const state = (): SlideInPanelState => ({
11
+ isOpen: false,
12
+ component: null,
13
+ componentProps: {}
14
+ });
15
+
16
+ const getters: GetterTree<SlideInPanelState, any> = {
17
+ isOpen: (state) => state.isOpen,
18
+ component: (state) => state.component,
19
+ componentProps: (state) => state.componentProps
20
+ };
21
+
22
+ const mutations: MutationTree<SlideInPanelState> = {
23
+ open(state, payload: { component: Component; componentProps?: Record<string, any> }) {
24
+ state.isOpen = true;
25
+ state.component = markRaw(payload.component);
26
+ state.componentProps = payload.componentProps || {};
27
+ },
28
+ close(state) {
29
+ state.isOpen = false;
30
+
31
+ // Delay clearing component/props for 500ms (same as transition duration)
32
+ setTimeout(() => {
33
+ state.component = null;
34
+ state.componentProps = {};
35
+ }, 500);
36
+ }
37
+ };
38
+
39
+ const actions: ActionTree<SlideInPanelState, any> = {};
40
+
41
+ export default {
42
+ namespaced: true,
43
+ state,
44
+ getters,
45
+ mutations,
46
+ actions
47
+ };
package/store/type-map.js CHANGED
@@ -154,6 +154,7 @@ import { haveV2Monitoring } from '@shell/utils/monitoring';
154
154
  import { NEU_VECTOR_NAMESPACE } from '@shell/config/product/neuvector';
155
155
  import { createHeaders, rowValueGetter } from '@shell/store/type-map.utils';
156
156
  import { defineAsyncComponent } from 'vue';
157
+ import { cloud2harvesterhci } from '@shell/utils/router';
157
158
 
158
159
  export const NAMESPACED = 'namespaced';
159
160
  export const CLUSTER_LEVEL = 'cluster';
@@ -506,7 +507,7 @@ export const getters = {
506
507
 
507
508
  groupForBasicType(state) {
508
509
  return (product, schemaId) => {
509
- return state.basicTypes?.[product]?.[schemaId];
510
+ return state.basicTypes?.[product]?.[cloud2harvesterhci(schemaId)];
510
511
  };
511
512
  },
512
513