@rancher/shell 0.5.3 → 1.2.0

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 (356) hide show
  1. package/.DS_Store +0 -0
  2. package/assets/images/providers/aks-black.svg +28 -0
  3. package/assets/images/providers/aks.svg +31 -0
  4. package/assets/styles/global/_labeled-input.scss +1 -0
  5. package/assets/styles/global/_layout.scss +0 -99
  6. package/assets/translations/en-us.yaml +76 -74
  7. package/assets/translations/zh-hans.yaml +25 -23
  8. package/babel.config.js +1 -7
  9. package/chart/gatekeeper.vue +11 -2
  10. package/chart/istio.vue +10 -1
  11. package/chart/logging/index.vue +11 -2
  12. package/chart/monitoring/alerting/index.vue +21 -7
  13. package/chart/monitoring/grafana/index.vue +2 -57
  14. package/chart/monitoring/index.vue +26 -52
  15. package/chart/monitoring/prometheus/index.vue +43 -37
  16. package/chart/rancher-backup/index.vue +10 -3
  17. package/cloud-credential/azure.vue +17 -4
  18. package/components/AsyncButton.vue +0 -9
  19. package/components/Carousel.vue +0 -1
  20. package/components/ChartPsp.vue +76 -0
  21. package/components/ClusterIconMenu.vue +9 -24
  22. package/components/CodeMirror.vue +16 -75
  23. package/components/CopyCode.vue +2 -6
  24. package/components/CopyToClipboard.vue +1 -2
  25. package/components/CopyToClipboardText.vue +9 -14
  26. package/components/CruResource.vue +0 -1
  27. package/components/EtcdInfoBanner.vue +5 -5
  28. package/components/ExplorerProjectsNamespaces.vue +1 -25
  29. package/components/FixedBanner.vue +0 -1
  30. package/components/IconOrSvg.vue +1 -1
  31. package/components/Markdown.vue +12 -16
  32. package/components/Questions/index.vue +1 -1
  33. package/components/ResourceDetail/Masthead.vue +9 -25
  34. package/components/ResourceDetail/index.vue +4 -1
  35. package/components/ResourceList/Masthead.vue +18 -1
  36. package/components/ResourceTable.vue +2 -14
  37. package/components/ResourceYaml.vue +5 -34
  38. package/components/SideNav.vue +65 -43
  39. package/components/SortableTable/THead.vue +9 -7
  40. package/components/SortableTable/index.vue +2 -1
  41. package/components/StatusTable.vue +1 -5
  42. package/components/TabTitle.vue +84 -0
  43. package/components/Tabbed/index.vue +0 -12
  44. package/components/YamlEditor.vue +0 -1
  45. package/components/__tests__/ChartPsp.test.ts +75 -0
  46. package/components/__tests__/CopyCode.test.ts +4 -5
  47. package/components/fleet/FleetBundles.vue +11 -5
  48. package/components/fleet/FleetRepos.vue +27 -62
  49. package/components/fleet/FleetResources.vue +1 -6
  50. package/components/fleet/FleetStatus.vue +3 -3
  51. package/components/fleet/FleetSummary.vue +30 -35
  52. package/components/form/ArrayList.vue +8 -1
  53. package/components/form/ArrayListSelect.vue +9 -9
  54. package/components/form/BannerSettings.vue +0 -3
  55. package/components/form/FileSelector.vue +0 -1
  56. package/components/form/KeyValue.vue +0 -2
  57. package/components/form/LabeledSelect.vue +0 -4
  58. package/components/form/Password.vue +1 -3
  59. package/components/form/Select.vue +1 -1
  60. package/components/form/SelectOrCreateAuthSecret.vue +4 -4
  61. package/components/form/__tests__/KeyValue.test.ts +1 -1
  62. package/components/formatter/Checked.vue +3 -11
  63. package/components/formatter/ClusterProvider.vue +18 -1
  64. package/components/formatter/FleetSummaryGraph.vue +11 -23
  65. package/components/formatter/LiveDate.vue +16 -0
  66. package/components/formatter/LiveDuration.vue +1 -1
  67. package/components/formatter/PercentageBar.vue +1 -1
  68. package/components/formatter/WorkloadDetailEndpoints.vue +22 -12
  69. package/components/formatter/__tests__/ClusterProvider.test.ts +28 -0
  70. package/components/nav/Group.vue +2 -2
  71. package/components/nav/Header.vue +2 -2
  72. package/components/nav/Jump.vue +9 -19
  73. package/components/nav/TopLevelMenu.vue +18 -66
  74. package/components/nav/Type.vue +7 -16
  75. package/components/nav/WindowManager/ContainerLogs.vue +19 -120
  76. package/components/nav/WindowManager/ContainerShell.vue +1 -6
  77. package/components/nav/WindowManager/index.vue +10 -11
  78. package/components/nav/__tests__/TopLevelMenu.test.ts +1 -34
  79. package/components/nav/__tests__/Type.test.ts +1 -31
  80. package/components/nuxt/nuxt-child.js +78 -14
  81. package/components/nuxt/nuxt.js +1 -1
  82. package/components/user.retention/user-retention-header.vue +34 -0
  83. package/composables/useI18n.ts +26 -0
  84. package/composables/useStore.ts +16 -0
  85. package/config/harvester-manager-types.js +0 -2
  86. package/config/home-links.js +32 -2
  87. package/config/private-label.js +0 -22
  88. package/config/product/explorer.js +4 -4
  89. package/config/product/fleet.js +1 -6
  90. package/config/product/legacy.js +1 -84
  91. package/config/product/manager.js +15 -8
  92. package/config/query-params.js +0 -1
  93. package/config/router.js +368 -385
  94. package/config/settings.ts +9 -2
  95. package/config/store.js +1 -1
  96. package/config/system-namespaces.js +0 -3
  97. package/config/table-headers.js +27 -47
  98. package/config/types.js +5 -0
  99. package/config/uiplugins.js +1 -1
  100. package/core/plugin-helpers.js +5 -3
  101. package/core/plugin-routes.ts +114 -56
  102. package/core/plugin.ts +10 -16
  103. package/core/plugins-loader.js +9 -7
  104. package/core/plugins.js +3 -0
  105. package/core/types-provisioning.ts +0 -7
  106. package/creators/app/init +0 -19
  107. package/detail/fleet.cattle.io.bundle.vue +1 -1
  108. package/detail/fleet.cattle.io.cluster.vue +1 -11
  109. package/detail/node.vue +0 -42
  110. package/detail/pod.vue +1 -68
  111. package/detail/provisioning.cattle.io.cluster.vue +8 -25
  112. package/detail/workload/index.vue +1 -15
  113. package/dialog/ScaleMachineDownDialog.vue +17 -34
  114. package/edit/auth/googleoauth.vue +5 -1
  115. package/edit/catalog.cattle.io.clusterrepo.vue +7 -20
  116. package/edit/cloudcredential.vue +0 -2
  117. package/edit/fleet.cattle.io.gitrepo.vue +4 -3
  118. package/edit/management.cattle.io.project.vue +52 -1
  119. package/edit/management.cattle.io.setting.vue +2 -32
  120. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +1 -1
  121. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +2 -1
  122. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +1 -1
  123. package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +3 -12
  124. package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +1 -2
  125. package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.spec.ts +1 -1
  126. package/edit/provisioning.cattle.io.cluster/{tabs/Basics.vue → Basics.vue} +125 -106
  127. package/edit/provisioning.cattle.io.cluster/{tabs/MachinePool.vue → MachinePool.vue} +7 -1
  128. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +7 -15
  129. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.tests.ts +237 -0
  130. package/edit/provisioning.cattle.io.cluster/__tests__/{CustomCommand.test.ts → CustomCommand.tests.ts} +0 -6
  131. package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +1 -1
  132. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +1 -7
  133. package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
  134. package/edit/provisioning.cattle.io.cluster/index.vue +40 -109
  135. package/edit/provisioning.cattle.io.cluster/rke2.vue +689 -152
  136. package/edit/service.vue +0 -12
  137. package/edit/token.vue +0 -1
  138. package/edit/workload/Upgrading.vue +2 -3
  139. package/edit/workload/index.vue +1 -2
  140. package/edit/workload/mixins/workload.js +1 -1
  141. package/initialize/App.js +71 -25
  142. package/initialize/client.js +162 -21
  143. package/initialize/index.js +124 -47
  144. package/initialize/layouts.ts +26 -0
  145. package/{components/templates → layouts}/blank.vue +1 -1
  146. package/{components/templates → layouts}/default.vue +98 -8
  147. package/{components/templates → layouts}/error.vue +19 -10
  148. package/{components/templates → layouts}/home.vue +1 -4
  149. package/{components/templates → layouts}/plain.vue +1 -4
  150. package/{components/templates → layouts}/standalone.vue +1 -1
  151. package/{components/templates → layouts}/unauthenticated.vue +1 -1
  152. package/list/catalog.cattle.io.app.vue +0 -1
  153. package/list/management.cattle.io.feature.vue +7 -1
  154. package/list/management.cattle.io.setting.vue +0 -1
  155. package/list/management.cattle.io.user.vue +25 -1
  156. package/list/node.vue +0 -1
  157. package/machine-config/__tests__/vmwarevsphere.test.ts +161 -56
  158. package/machine-config/azure.vue +37 -21
  159. package/machine-config/vmwarevsphere.vue +47 -42
  160. package/middleware/authenticated.js +19 -14
  161. package/mixins/auth-config.js +7 -2
  162. package/mixins/brand.js +41 -29
  163. package/mixins/fetch.server.js +73 -0
  164. package/mixins/labeled-form-element.ts +1 -6
  165. package/models/__tests__/management.cattle.io.node.ts +0 -85
  166. package/models/__tests__/namespace.test.ts +9 -49
  167. package/models/cluster/node.js +4 -4
  168. package/models/cluster.x-k8s.io.machine.js +1 -1
  169. package/models/cluster.x-k8s.io.machinedeployment.js +0 -14
  170. package/models/fleet.cattle.io.cluster.js +0 -4
  171. package/models/fleet.cattle.io.gitrepo.js +13 -56
  172. package/models/management.cattle.io.cluster.js +3 -11
  173. package/models/management.cattle.io.kontainerdriver.js +0 -1
  174. package/models/management.cattle.io.node.js +14 -18
  175. package/models/management.cattle.io.nodepool.js +0 -17
  176. package/models/management.cattle.io.project.js +36 -0
  177. package/models/management.cattle.io.setting.js +7 -11
  178. package/models/management.cattle.io.user.js +65 -0
  179. package/models/namespace.js +1 -1
  180. package/models/pod.js +0 -20
  181. package/models/provisioning.cattle.io.cluster.js +9 -91
  182. package/models/secret.js +18 -126
  183. package/models/storage.k8s.io.storageclass.js +1 -1
  184. package/models/workload.js +0 -16
  185. package/models/workload.service.js +0 -18
  186. package/package.json +10 -12
  187. package/pages/about.vue +1 -0
  188. package/pages/account/create-key.vue +1 -0
  189. package/pages/account/index.vue +1 -0
  190. package/pages/auth/login.vue +1 -0
  191. package/pages/auth/logout.vue +2 -0
  192. package/pages/auth/setup.vue +4 -37
  193. package/pages/auth/verify.vue +8 -14
  194. package/pages/c/_cluster/apps/charts/__tests__/install.helper.test.ts +17 -2
  195. package/pages/c/_cluster/apps/charts/index.vue +58 -64
  196. package/pages/c/_cluster/apps/charts/install.helpers.js +13 -2
  197. package/pages/c/_cluster/apps/charts/install.vue +5 -5
  198. package/pages/c/_cluster/apps/index.vue +2 -0
  199. package/pages/c/_cluster/auth/index.vue +2 -0
  200. package/pages/c/_cluster/auth/user.retention/index.vue +384 -0
  201. package/pages/c/_cluster/ecm/index.vue +2 -0
  202. package/pages/c/_cluster/explorer/index.vue +53 -56
  203. package/pages/c/_cluster/explorer/tools/index.vue +3 -171
  204. package/pages/c/_cluster/fleet/index.vue +1 -1
  205. package/pages/c/_cluster/index.vue +2 -0
  206. package/pages/c/_cluster/manager/pages/_page.vue +5 -4
  207. package/pages/c/_cluster/monitoring/index.vue +1 -17
  208. package/pages/c/_cluster/settings/DefaultLinksEditor.vue +1 -1
  209. package/pages/c/_cluster/settings/banners.vue +2 -0
  210. package/pages/c/_cluster/settings/brand.vue +2 -3
  211. package/pages/c/_cluster/settings/index.vue +2 -0
  212. package/pages/c/_cluster/settings/links.vue +3 -2
  213. package/pages/c/_cluster/settings/performance.vue +1 -0
  214. package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +1 -2
  215. package/pages/c/_cluster/uiplugins/CatalogList/index.vue +46 -10
  216. package/pages/c/_cluster/uiplugins/index.vue +2 -0
  217. package/pages/c/index.vue +9 -0
  218. package/pages/diagnostic.vue +2 -1
  219. package/pages/fail-whale.vue +1 -0
  220. package/pages/prefs.vue +1 -0
  221. package/pages/rio/mesh.vue +508 -0
  222. package/pages/support/index.vue +8 -2
  223. package/pkg/auto-import.js +1 -1
  224. package/plugins/axios.js +36 -0
  225. package/plugins/back-button.js +5 -3
  226. package/plugins/clean-html-directive.js +19 -1
  227. package/plugins/clean-tooltip-directive.js +1 -1
  228. package/plugins/codemirror-loader.js +1 -1
  229. package/plugins/codemirror.js +0 -41
  230. package/plugins/dashboard-store/__tests__/{mutations.test.ts → mutations.spec.ts} +1 -1
  231. package/plugins/dashboard-store/actions.js +17 -16
  232. package/plugins/dashboard-store/classify.js +18 -1
  233. package/plugins/dashboard-store/getters.js +7 -70
  234. package/plugins/dashboard-store/index.js +12 -0
  235. package/plugins/dashboard-store/mutations.js +4 -0
  236. package/plugins/dashboard-store/resource-class.js +20 -65
  237. package/plugins/i18n.js +1 -1
  238. package/plugins/steve/__tests__/getters.spec.ts +48 -26
  239. package/plugins/steve/__tests__/subscribe.spec.ts +106 -0
  240. package/plugins/steve/actions.js +37 -3
  241. package/plugins/steve/getters.js +24 -7
  242. package/plugins/steve/mutations.js +5 -2
  243. package/plugins/steve/norman-class.js +0 -19
  244. package/plugins/steve/steve-class.js +0 -22
  245. package/plugins/steve/subscribe.js +34 -13
  246. package/plugins/transitions.js +4 -0
  247. package/plugins/vue-clipboard2.js +4 -0
  248. package/rancher-components/Accordion/Accordion.vue +3 -2
  249. package/rancher-components/BadgeState/BadgeState.vue +3 -3
  250. package/rancher-components/Banner/Banner.test.ts +1 -5
  251. package/rancher-components/Banner/Banner.vue +2 -2
  252. package/rancher-components/Card/Card.vue +4 -4
  253. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -3
  254. package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +1 -1
  255. package/rancher-components/Form/LabeledInput/LabeledInput.vue +55 -24
  256. package/rancher-components/Form/Radio/RadioButton.test.ts +1 -3
  257. package/rancher-components/Form/Radio/RadioButton.vue +13 -7
  258. package/rancher-components/Form/Radio/RadioGroup.vue +4 -3
  259. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +7 -5
  260. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +7 -4
  261. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
  262. package/rancher-components/StringList/StringList.vue +8 -8
  263. package/rancher-components/components/Accordion/Accordion.vue +3 -2
  264. package/rancher-components/components/BadgeState/BadgeState.test.ts +12 -0
  265. package/rancher-components/components/Form/LabeledInput/LabeledInput.test.ts +2 -19
  266. package/rancher-components/components/Form/LabeledInput/LabeledInput.vue +14 -11
  267. package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +1 -1
  268. package/rancher-components/components/StringList/StringList.test.ts +0 -270
  269. package/rancher-components/components/StringList/StringList.vue +18 -57
  270. package/scripts/extension/bundle +7 -19
  271. package/scripts/extension/helm/scripts/package +3 -11
  272. package/scripts/extension/parse-tag-name +4 -4
  273. package/scripts/extension/publish +9 -20
  274. package/scripts/publish-shell.sh +1 -11
  275. package/scripts/test-plugins-build.sh +9 -85
  276. package/store/catalog.js +1 -1
  277. package/store/features.js +0 -1
  278. package/store/i18n.js +0 -11
  279. package/store/index.js +13 -11
  280. package/store/prefs.js +38 -33
  281. package/store/type-map.js +82 -157
  282. package/tsconfig.default.json +46 -0
  283. package/tsconfig.json +9 -35
  284. package/types/shell/index.d.ts +404 -465
  285. package/utils/axios.js +19 -0
  286. package/utils/create-yaml.js +1 -5
  287. package/utils/custom-validators.js +2 -0
  288. package/utils/error.js +1 -16
  289. package/utils/monitoring.js +2 -37
  290. package/utils/nuxt.js +39 -18
  291. package/utils/object.js +0 -24
  292. package/utils/router.scrollBehavior.js +14 -12
  293. package/utils/socket.js +1 -0
  294. package/utils/time.js +1 -1
  295. package/utils/title.ts +3 -0
  296. package/utils/url.ts +1 -1
  297. package/utils/validators/formRules/__tests__/index.test.ts +4 -49
  298. package/utils/validators/formRules/index.ts +9 -12
  299. package/utils/validators/setting.js +10 -6
  300. package/vue.config.js +3 -24
  301. package/chart/monitoring/steps/uninstall-v1.vue +0 -135
  302. package/components/Certificates.vue +0 -164
  303. package/components/__tests__/CodeMirror.spec.ts +0 -99
  304. package/components/fleet/__tests__/FleetSummary.test.ts +0 -316
  305. package/components/formatter/FleetClusterSummaryGraph.vue +0 -27
  306. package/components/formatter/__tests__/Checked.test.ts +0 -19
  307. package/components/formatter/__tests__/WorkloadDetailEndpoints.test.ts +0 -81
  308. package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +0 -186
  309. package/composables/useCompactInput.ts +0 -20
  310. package/composables/useLabeledFormElement.ts +0 -138
  311. package/creators/app/files/.gitlab-ci.yml +0 -14
  312. package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +0 -77
  313. package/edit/__tests__/service.test.ts +0 -89
  314. package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +0 -112
  315. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +0 -473
  316. package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +0 -73
  317. package/edit/provisioning.cattle.io.cluster/__tests__/utils/cluster.ts +0 -386
  318. package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +0 -137
  319. package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +0 -157
  320. package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +0 -135
  321. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +0 -189
  322. package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +0 -147
  323. package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +0 -76
  324. package/mixins/v1-workload-metrics.js +0 -43
  325. package/models/__tests__/management.cattle.io.cluster.test.ts +0 -23
  326. package/models/__tests__/management.cattle.io.nodepool.ts +0 -83
  327. package/models/__tests__/provisioning.cattle.io.cluster.test.ts +0 -241
  328. package/models/__tests__/secret.test.ts +0 -37
  329. package/models/__tests__/storage.k8s.io.storageclass.test.ts +0 -22
  330. package/models/__tests__/workload.test.ts +0 -91
  331. package/plugins/clean-html.js +0 -53
  332. package/plugins/dashboard-store/__tests__/resource-class.test.ts +0 -49
  333. package/plugins/dashboard-store/__tests__/utils/store-mocks.ts +0 -7
  334. package/plugins/index.js +0 -11
  335. package/plugins/steve/__tests__/resource-utils.test.ts +0 -159
  336. package/plugins/steve/__tests__/steve-class.spec.ts +0 -59
  337. package/plugins/steve/__tests__/utils/steve-mocks.ts +0 -31
  338. package/plugins/steve/resource-utils.ts +0 -38
  339. package/scripts/.gitlab/workflows/build-extension-catalog.gitlab-ci.yml +0 -50
  340. package/server/har-file.js +0 -183
  341. package/store/__tests__/type-map.test.ts +0 -1122
  342. package/tsconfig.paths.json +0 -18
  343. package/utils/azure.js +0 -24
  344. package/utils/clipboard.js +0 -5
  345. /package/components/form/__tests__/{NameNsDescription.test.ts → NameNsDescription.ts} +0 -0
  346. /package/edit/networking.k8s.io.networkpolicy/__tests__/utils/{selectors.test.ts → selectors.ts} +0 -0
  347. /package/edit/provisioning.cattle.io.cluster/{tabs/networking/ACE.vue → ACE.vue} +0 -0
  348. /package/edit/provisioning.cattle.io.cluster/{tabs/AgentConfiguration.vue → AgentConfiguration.vue} +0 -0
  349. /package/edit/provisioning.cattle.io.cluster/{tabs/upgrade/DrainOptions.vue → DrainOptions.vue} +0 -0
  350. /package/edit/provisioning.cattle.io.cluster/{tabs/MemberRoles.vue → MemberRoles.vue} +0 -0
  351. /package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryConfigs.vue → RegistryConfigs.vue} +0 -0
  352. /package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryMirrors.vue → RegistryMirrors.vue} +0 -0
  353. /package/edit/provisioning.cattle.io.cluster/{tabs/etcd/S3Config.vue → S3Config.vue} +0 -0
  354. /package/plugins/dashboard-store/__tests__/{actions.test.ts → actions.spec.ts} +0 -0
  355. /package/plugins/dashboard-store/__tests__/{getters.test.ts → getters.spec.ts} +0 -0
  356. /package/rancher-components/BadgeState/{BadgeState.spec.ts → BadgeState.test.ts} +0 -0
@@ -3,72 +3,34 @@ import { mapGetters } from 'vuex';
3
3
  import Loading from '@shell/components/Loading';
4
4
  import { _FLAGGED, DEPRECATED, HIDDEN, FROM_TOOLS } from '@shell/config/query-params';
5
5
  import { filterAndArrangeCharts } from '@shell/store/catalog';
6
- import { CATALOG, MANAGEMENT, NORMAN } from '@shell/config/types';
6
+ import { CATALOG, NORMAN } from '@shell/config/types';
7
7
  import { CATALOG as CATALOG_ANNOTATIONS } from '@shell/config/labels-annotations';
8
8
  import LazyImage from '@shell/components/LazyImage';
9
- import AppSummaryGraph from '@shell/components/formatter/AppSummaryGraph';
10
- import { sortBy } from '@shell/utils/sort';
11
- import { LEGACY } from '@shell/store/features';
12
9
  import { isAlternate } from '@shell/utils/platform';
13
10
  import IconMessage from '@shell/components/IconMessage';
14
11
  import TypeDescription from '@shell/components/TypeDescription';
15
12
 
16
13
  export default {
17
14
  components: {
18
- AppSummaryGraph, LazyImage, Loading, IconMessage, TypeDescription
15
+ LazyImage, Loading, IconMessage, TypeDescription
19
16
  },
20
17
 
21
18
  async fetch() {
22
19
  await this.$store.dispatch('catalog/load', { force: true, reset: true });
23
20
 
24
21
  const query = this.$route.query;
25
- const projects = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.PROJECT });
26
22
 
27
23
  this.showDeprecated = query[DEPRECATED] === _FLAGGED;
28
24
  this.showHidden = query[HIDDEN] === _FLAGGED;
29
25
 
30
26
  this.allInstalled = await this.$store.dispatch('cluster/findAll', { type: CATALOG.APP });
31
-
32
- // If legacy feature flag enabled
33
- if (this.legacyEnabled) {
34
- const res = await this.$store.dispatch('management/findMatching', {
35
- type: MANAGEMENT.CATALOG_TEMPLATE,
36
- selector: 'catalog.cattle.io/name=system-library'
37
- });
38
-
39
- if (res) {
40
- this.v1SystemCatalog = res.reduce((map, template) => {
41
- map[template.spec.displayName] = template;
42
-
43
- return map;
44
- }, {});
45
- } else {
46
- this.v1SystemCatalog = {};
47
- }
48
-
49
- // Need the project ID of the system project in order to get the apps
50
- const systemProject = projects.find((p) => p.spec?.displayName === 'System');
51
-
52
- if (systemProject) {
53
- const id = systemProject.id.replace('/', ':');
54
-
55
- this.systemProject = id;
56
- await this.$store.dispatch('rancher/findAll', {
57
- type: NORMAN.APP,
58
- opt: { url: `/v3/project/${ id }/apps`, force: true }
59
- });
60
- }
61
- }
62
27
  },
63
28
 
64
29
  data() {
65
- const legacyEnabled = this.$store.getters['features/get'](LEGACY);
66
-
67
30
  return {
68
31
  allInstalled: null,
69
32
  v1SystemCatalog: null,
70
33
  systemProject: null,
71
- legacyEnabled,
72
34
  };
73
35
  },
74
36
 
@@ -123,37 +85,15 @@ export default {
123
85
 
124
86
  charts = charts.filter((c) => c.sideLabel !== 'Experimental');
125
87
 
126
- // If legacy support is enabled, show V1 charts for some V1 Cluster tools
127
- if (this.legacyEnabled) {
128
- charts = charts.concat(this.legacyCharts);
129
- charts = sortBy(charts, ['certifiedSort', 'chartNameDisplay']);
130
- }
131
-
132
- let chartsWithApps = charts.map((chart) => {
88
+ const chartsWithApps = charts.map((chart) => {
133
89
  return {
134
90
  chart,
135
91
  app: this.installedAppForChart[chart.id],
136
92
  };
137
93
  });
138
94
 
139
- // V1 Legacy support
140
- if (this.legacyEnabled) {
141
- chartsWithApps = this.checkLegacyApp(chartsWithApps, this.v1Apps, 'v1-monitoring', 'rancher-monitoring', 'cluster-monitoring', false);
142
- chartsWithApps = this.checkLegacyApp(chartsWithApps, this.v1Apps, 'v1-istio', 'rancher-istio', 'cluster-istio', true);
143
- chartsWithApps = this.checkLegacyApp(chartsWithApps, this.v1Apps, 'v1-logging', 'rancher-logging', 'rancher-logging', true);
144
- }
145
-
146
95
  return chartsWithApps;
147
96
  },
148
-
149
- legacyCharts() {
150
- // Fake charts for the legacy V1 tools
151
- return [
152
- this._legacyChart('monitoring'),
153
- this._legacyChart('logging'),
154
- this._legacyChart('istio'),
155
- ];
156
- }
157
97
  },
158
98
 
159
99
  watch: {
@@ -173,22 +113,6 @@ export default {
173
113
  },
174
114
 
175
115
  methods: {
176
- _legacyChart(id) {
177
- return {
178
- certifiedSort: 1,
179
- chartNameDisplay: this.t(`v1ClusterTools.${ id }.label`),
180
- chartDescription: this.t(`v1ClusterTools.${ id }.description`),
181
- id: `v1-${ id }`,
182
- chartName: `v1-${ id }`,
183
- key: `v1-${ id }`,
184
- versions: this.getLegacyVersions(`rancher-${ id }`),
185
- repoKey: this.rancherCatalog?._key,
186
- legacy: true,
187
- legacyPage: id,
188
- iconName: `icon-${ id }`,
189
- };
190
- },
191
-
192
116
  edit(app, version) {
193
117
  app.goToUpgrade(version, true);
194
118
  },
@@ -221,55 +145,6 @@ export default {
221
145
 
222
146
  this.$router.replace(route);
223
147
  },
224
-
225
- getLegacyVersions(id) {
226
- const versions = [];
227
- const c = this.v1SystemCatalog?.[id];
228
-
229
- if (c?.spec?.versions) {
230
- c.spec.versions.forEach((v) => versions.push({ version: v.version }));
231
- }
232
-
233
- return versions;
234
- },
235
-
236
- checkLegacyApp(chartsWithApps, v1Apps, v1ChartName, v2ChartName, v1AppName, showOnlyIfInstalled) {
237
- const v1 = chartsWithApps.find((a) => a.chart.chartName === v1ChartName);
238
- const v2 = chartsWithApps.find((a) => a.chart.chartName === v2ChartName);
239
-
240
- if (v1) {
241
- const v1App = v1Apps.find((a) => a.id.indexOf(v1AppName) > 0);
242
-
243
- v1.app = v1App;
244
-
245
- // Add in the upgrade version information for a legacy v1 app
246
- if (v1.app) {
247
- v1.app.upgradeAvailable = undefined;
248
- // Check if an upgrade is available
249
- if (v1.chart.versions?.length) {
250
- const latest = v1.chart.versions[0]?.version;
251
-
252
- if (v1.app.currentVersion !== latest) {
253
- v1.app.upgradeAvailable = latest;
254
- }
255
- }
256
- } else if (showOnlyIfInstalled) {
257
- // Remove the v1 chart if it is not already installed for charts which we no longer support
258
- chartsWithApps = chartsWithApps.filter((c) => c !== v1);
259
- }
260
-
261
- if (v2) {
262
- if (v1.app) {
263
- v2.app = undefined;
264
- v2.blocked = true;
265
- } else if (v2.app) {
266
- v1.blocked = true;
267
- }
268
- }
269
- }
270
-
271
- return chartsWithApps;
272
- }
273
148
  }
274
149
  };
275
150
  </script>
@@ -330,10 +205,6 @@ export default {
330
205
  overflow: hidden;
331
206
  background-color: white;
332
207
 
333
- &.legacy {
334
- background-color: transparent;
335
- }
336
-
337
208
  img {
338
209
  width: $logo - 4px;
339
210
  height: $logo - 4px;
@@ -418,7 +289,6 @@ export default {
418
289
  <div v-else-if="options.length">
419
290
  <h1 v-clean-html="t('catalog.tools.header')" />
420
291
  <TypeDescription
421
- v-if="!legacyEnabled"
422
292
  resource="chart"
423
293
  />
424
294
 
@@ -430,7 +300,6 @@ export default {
430
300
  >
431
301
  <div
432
302
  class="logo"
433
- :class="{'legacy': opt.chart.legacy}"
434
303
  >
435
304
  <i
436
305
  v-if="opt.chart.iconName"
@@ -470,16 +339,6 @@ export default {
470
339
  class="description-content"
471
340
  />
472
341
  </div>
473
- <div
474
- v-if="opt.app && !opt.chart.legacy"
475
- class="state"
476
- >
477
- <AppSummaryGraph
478
- :row="opt.app"
479
- label-key="generic.resourceCount"
480
- :link-to="opt.app.detailLocation"
481
- />
482
- </div>
483
342
  <div class="action">
484
343
  <template v-if="opt.blocked">
485
344
  <button
@@ -488,26 +347,6 @@ export default {
488
347
  class="btn btn-sm role-primary"
489
348
  />
490
349
  </template>
491
- <template v-else-if="opt.app && opt.chart.legacy">
492
- <button
493
- v-clean-html="t('catalog.tools.action.manage')"
494
- class="btn btn-sm role-secondary"
495
- @click="openV1Tool(opt.chart.legacyPage)"
496
- />
497
- </template>
498
- <template v-else-if="opt.app && opt.upgradeAvailable && !opt.chart.legacy">
499
- <button
500
- class="btn btn-sm role-secondary"
501
- @click="remove(opt.app, $event)"
502
- >
503
- <i class="icon icon-delete icon-lg" />
504
- </button>
505
- <button
506
- v-clean-html="t('catalog.tools.action.upgrade')"
507
- class="btn btn-sm role-secondary"
508
- @click="edit(opt.app, opt.app.upgradeAvailable)"
509
- />
510
- </template>
511
350
  <template v-else-if="opt.app">
512
351
  <button
513
352
  class="btn btn-sm role-secondary"
@@ -521,13 +360,6 @@ export default {
521
360
  @click="edit(opt.app)"
522
361
  />
523
362
  </template>
524
- <template v-else-if="opt.chart.legacy">
525
- <button
526
- v-clean-html="t('catalog.tools.action.install')"
527
- class="btn btn-sm role-primary"
528
- @click="openV1Tool(opt.chart.legacyPage)"
529
- />
530
- </template>
531
363
  <template v-else>
532
364
  <button
533
365
  v-clean-html="t('catalog.tools.action.install')"
@@ -14,7 +14,7 @@ import FleetNoWorkspaces from '@shell/components/fleet/FleetNoWorkspaces.vue';
14
14
  import { NAME } from '@shell/config/product/fleet';
15
15
 
16
16
  export default {
17
- name: 'FleetDashboard',
17
+ name: 'ListGitRepo',
18
18
  components: {
19
19
  Loading,
20
20
  ResourceTable,
@@ -2,6 +2,8 @@
2
2
  import { NAME as EXPLORER } from '@shell/config/product/explorer';
3
3
 
4
4
  export default {
5
+ layout: 'plain',
6
+
5
7
  middleware({ redirect, route } ) {
6
8
  return redirect({
7
9
  name: 'c-cluster-product',
@@ -7,10 +7,11 @@ export default {
7
7
  data() {
8
8
  return {
9
9
  PAGES: {
10
- 'rke-drivers': '/n/drivers/cluster',
11
- 'rke-templates': '/g/rke-templates/index',
12
- 'cloud-credentials': '/g/security/cloud-credentials',
13
- 'node-templates': '/n/node-templates',
10
+ 'rke-drivers': '/n/drivers/cluster',
11
+ 'rke-templates': '/g/rke-templates/index',
12
+ 'cloud-credentials': '/g/security/cloud-credentials',
13
+ 'node-templates': '/n/node-templates',
14
+ 'pod-security-policies': '/g/security/policies',
14
15
  }
15
16
  };
16
17
  }
@@ -8,14 +8,12 @@ import { CATALOG, MONITORING } from '@shell/config/types';
8
8
  import { allHash } from '@shell/utils/promise';
9
9
  import { findBy } from '@shell/utils/array';
10
10
  import { getClusterPrefix } from '@shell/utils/grafana';
11
- import { Banner } from '@components/Banner';
12
11
  import LazyImage from '@shell/components/LazyImage';
13
12
  import SimpleBox from '@shell/components/SimpleBox';
14
- import { haveV1MonitoringWorkloads, canViewAlertManagerLink, canViewGrafanaLink, canViewPrometheusLink } from '@shell/utils/monitoring';
13
+ import { canViewAlertManagerLink, canViewGrafanaLink, canViewPrometheusLink } from '@shell/utils/monitoring';
15
14
 
16
15
  export default {
17
16
  components: {
18
- Banner,
19
17
  LazyImage,
20
18
  SimpleBox,
21
19
  AlertTable
@@ -39,7 +37,6 @@ export default {
39
37
  prometheus: false,
40
38
  },
41
39
  resources: [MONITORING.ALERTMANAGER, MONITORING.PROMETHEUS],
42
- v1Installed: false,
43
40
  externalLinks: [
44
41
  {
45
42
  enabled: false,
@@ -92,8 +89,6 @@ export default {
92
89
  methods: {
93
90
  async fetchDeps() {
94
91
  const { $store, externalLinks } = this;
95
-
96
- this.v1Installed = await haveV1MonitoringWorkloads($store);
97
92
  const hash = {};
98
93
 
99
94
  if ($store.getters['cluster/canList'](CATALOG.APP)) {
@@ -151,17 +146,6 @@ export default {
151
146
  </div>
152
147
  </header>
153
148
  <div>
154
- <Banner
155
- v-if="v1Installed"
156
- color="warning"
157
- >
158
- <template #default>
159
- <t
160
- k="monitoring.v1Warning"
161
- :raw="true"
162
- />
163
- </template>
164
- </Banner>
165
149
  <div class="create-resource-container">
166
150
  <div class="subtypes-container">
167
151
  <a
@@ -76,12 +76,12 @@ export default {
76
76
  <div
77
77
  v-if="!row.readonly && !isView"
78
78
  :key="i+'show'"
79
+ class="link-show-hide-checkbox"
79
80
  >
80
81
  <Checkbox
81
82
  v-if="!isView"
82
83
  v-model="row.enabled"
83
84
  label-key="customLinks.settings.showLabel"
84
- :data-testid="`custom-links__checkbox-${i}`"
85
85
  @input="showhide(row, i, $event)"
86
86
  />
87
87
  </div>
@@ -53,6 +53,8 @@ const DEFAULT_BANNER_SETTING = {
53
53
  };
54
54
 
55
55
  export default {
56
+ layout: 'authenticated',
57
+
56
58
  components: {
57
59
  Checkbox,
58
60
  Loading,
@@ -20,6 +20,8 @@ import { setFavIcon } from '@shell/utils/favicon';
20
20
  const Color = require('color');
21
21
 
22
22
  export default {
23
+ layout: 'authenticated',
24
+
23
25
  components: {
24
26
  LabeledInput, Checkbox, FileImageSelector, Loading, SimpleBox, AsyncButton, Banner, ColorInput, TypeDescription
25
27
  },
@@ -238,7 +240,6 @@ export default {
238
240
  <label class="text-muted">{{ t('branding.logos.lightPreview') }}</label>
239
241
  <img
240
242
  class="logo-preview"
241
- data-testid="branding-logo-light-preview"
242
243
  :src="uiLogoLight ? uiLogoLight : uiLogoDark"
243
244
  >
244
245
  </SimpleBox>
@@ -263,7 +264,6 @@ export default {
263
264
  <label class="text-muted">{{ t('branding.logos.darkPreview') }}</label>
264
265
  <img
265
266
  class="logo-preview"
266
- data-testid="branding-logo-dark-preview"
267
267
  :src="uiLogoDark ? uiLogoDark : uiLogoLight"
268
268
  >
269
269
  </SimpleBox>
@@ -306,7 +306,6 @@ export default {
306
306
  <label class="text-muted">{{ t('branding.favicon.preview') }}</label>
307
307
  <img
308
308
  class="logo-preview"
309
- data-testid="branding-favicon-preview"
310
309
  :src="uiFavicon"
311
310
  >
312
311
  </SimpleBox>
@@ -3,6 +3,8 @@ import { NAME as SETTINGS } from '@shell/config/product/settings';
3
3
  import { MANAGEMENT } from '@shell/config/types';
4
4
 
5
5
  export default {
6
+ layout: 'plain',
7
+
6
8
  middleware({ redirect, route, store } ) {
7
9
  const hasSettings = !!store.getters[`management/schemaFor`](MANAGEMENT.SETTING);
8
10
 
@@ -10,9 +10,10 @@ import KeyValue from '@shell/components/form/KeyValue';
10
10
  import { mapGetters } from 'vuex';
11
11
  import { isRancherPrime } from '@shell/config/version';
12
12
  import DefaultLinksEditor from './DefaultLinksEditor';
13
- import { CUSTOM_LINKS_VERSION, fetchLinks } from '@shell/config/home-links';
13
+ import { CUSTOM_LINKS_COLLECTIVE_VERSION, fetchLinks } from '@shell/config/home-links';
14
14
 
15
15
  export default {
16
+ layout: 'authenticated',
16
17
  components: {
17
18
  KeyValue,
18
19
  Loading,
@@ -45,7 +46,7 @@ export default {
45
46
 
46
47
  allValues() {
47
48
  return {
48
- version: CUSTOM_LINKS_VERSION,
49
+ version: CUSTOM_LINKS_COLLECTIVE_VERSION,
49
50
  defaults: this.value.defaults.filter((obj) => obj.enabled).map((obj) => obj.key),
50
51
  custom: this.value.custom
51
52
  };
@@ -22,6 +22,7 @@ const l10n = {
22
22
  };
23
23
 
24
24
  export default {
25
+ layout: 'authenticated',
25
26
  components: {
26
27
  Checkbox,
27
28
  Loading,
@@ -469,8 +469,7 @@ export default {
469
469
  <div class="fields">
470
470
  <LabeledSelect
471
471
  v-model="imagePullSecrets"
472
- :label="t('plugins.manageCatalog.imageLoad.fields.imagePullSecrets.label')"
473
- :tooltip="t('plugins.manageCatalog.imageLoad.fields.imagePullSecrets.tooltip')"
472
+ :label="t('workload.container.imagePullSecrets')"
474
473
  :multiple="true"
475
474
  :taggable="true"
476
475
  :options="imagePullNamespacedSecrets"
@@ -7,12 +7,13 @@ import { SERVICE, WORKLOAD_TYPES } from '@shell/config/types';
7
7
  import { UI_PLUGIN_LABELS, UI_PLUGIN_NAMESPACE } from '@shell/config/uiplugins';
8
8
  import { UI_PLUGIN_CATALOG } from '@shell/config/table-headers';
9
9
 
10
+ import ActionMenu from '@shell/components/ActionMenu';
10
11
  import ResourceTable from '@shell/components/ResourceTable';
11
12
 
12
13
  export default {
13
14
  name: 'CatalogList',
14
15
 
15
- components: { ResourceTable },
16
+ components: { ActionMenu, ResourceTable },
16
17
 
17
18
  mixins: [ResourceManager],
18
19
 
@@ -28,7 +29,10 @@ export default {
28
29
 
29
30
  return {
30
31
  actions,
31
- catalogHeaders: UI_PLUGIN_CATALOG,
32
+ catalogHeaders: UI_PLUGIN_CATALOG,
33
+ menuTargetElement: null,
34
+ menuTargetEvent: null,
35
+ menuOpen: false,
32
36
  };
33
37
  },
34
38
 
@@ -45,7 +49,6 @@ export default {
45
49
 
46
50
  catalogRows() {
47
51
  const rows = [];
48
- const actions = this.actions;
49
52
 
50
53
  if ( !isEmpty(this.namespacedDeployments) ) {
51
54
  this.namespacedDeployments.forEach((deploy) => {
@@ -54,13 +57,11 @@ export default {
54
57
 
55
58
  if ( deployName ) {
56
59
  const out = {
57
- name: deployName,
58
- state: deploy.metadata?.state?.name,
59
- image: deploy.spec?.template?.spec?.containers[0]?.image,
60
- service: null,
61
- repo: null,
62
- availableActions: actions,
63
- showCatalogUninstallDialog: () => this.$emit('showCatalogUninstallDialog', out)
60
+ name: deployName,
61
+ state: deploy.metadata?.state?.name,
62
+ image: deploy.spec?.template?.spec?.containers[0]?.image,
63
+ service: null,
64
+ repo: null
64
65
  };
65
66
  const keys = ['service', 'repo'];
66
67
 
@@ -76,6 +77,20 @@ export default {
76
77
  return rows;
77
78
  }
78
79
  },
80
+
81
+ methods: {
82
+ setMenu(event) {
83
+ this.menuOpen = !!event;
84
+
85
+ if (event) {
86
+ this.menuTargetElement = this.$refs.catalogActions;
87
+ this.menuTargetEvent = event;
88
+ } else {
89
+ this.menuTargetElement = undefined;
90
+ this.menuTargetEvent = undefined;
91
+ }
92
+ }
93
+ }
79
94
  };
80
95
  </script>
81
96
 
@@ -103,6 +118,27 @@ export default {
103
118
  </button>
104
119
  </div>
105
120
  </template>
121
+ <template #row-actions="{row}">
122
+ <button
123
+ ref="catalogActions"
124
+ aria-haspopup="true"
125
+ type="button"
126
+ class="btn btn-sm role-multi-action actions"
127
+ data-testid="extensions-page-catalog-row-menu"
128
+ @click="setMenu"
129
+ >
130
+ <i class="icon icon-actions" />
131
+ </button>
132
+ <ActionMenu
133
+ :custom-actions="actions"
134
+ :open="menuOpen"
135
+ :use-custom-target-element="true"
136
+ :custom-target-element="menuTargetElement"
137
+ :custom-target-event="menuTargetEvent"
138
+ @close="setMenu(false)"
139
+ @showCatalogUninstallDialog="e => $emit('showCatalogUninstallDialog', row, e.event)"
140
+ />
141
+ </template>
106
142
  </ResourceTable>
107
143
  </div>
108
144
  </div>
@@ -93,6 +93,8 @@ export default {
93
93
  };
94
94
  },
95
95
 
96
+ layout: 'plain',
97
+
96
98
  async fetch() {
97
99
  const hash = {};
98
100
 
@@ -0,0 +1,9 @@
1
+ <script>
2
+ export default {};
3
+ </script>
4
+
5
+ <template>
6
+ <div>
7
+ Clusters
8
+ </div>
9
+ </template>
@@ -7,7 +7,8 @@ import { filterOnlyKubernetesClusters, filterHiddenLocalCluster } from '@shell/u
7
7
  import { sortBy } from '@shell/utils/sort';
8
8
 
9
9
  export default {
10
- name: 'Diagnostic',
10
+ name: 'Diagnostic',
11
+ layout: 'plain',
11
12
 
12
13
  components: { AsyncButton, PromptModal },
13
14
 
@@ -4,6 +4,7 @@ import { mapGetters, mapState } from 'vuex';
4
4
  import { stringify } from '@shell/utils/error';
5
5
 
6
6
  export default {
7
+ layout: 'home',
7
8
 
8
9
  components: { BrandImage },
9
10
 
package/pages/prefs.vue CHANGED
@@ -18,6 +18,7 @@ import { addObject } from '@shell/utils/array';
18
18
  import LocaleSelector from '@shell/components/LocaleSelector';
19
19
 
20
20
  export default {
21
+ layout: 'plain',
21
22
  components: {
22
23
  BackLink, ButtonGroup, LabeledSelect, Checkbox, LandingPagePreference, LocaleSelector
23
24
  },