@rancher/shell 0.2.4 → 0.3.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 (493) hide show
  1. package/assets/styles/themes/_dark.scss +4 -0
  2. package/assets/styles/themes/_light.scss +5 -0
  3. package/assets/translations/en-us.yaml +14 -2
  4. package/assets/translations/zh-hans.yaml +7 -5
  5. package/chart/istio.vue +1 -1
  6. package/chart/monitoring/grafana/index.vue +1 -1
  7. package/chart/monitoring/index.vue +1 -1
  8. package/chart/monitoring/prometheus/index.vue +4 -4
  9. package/components/AlertTable.vue +1 -1
  10. package/components/AssignTo.vue +1 -1
  11. package/components/AsyncButton.vue +2 -2
  12. package/components/BrandImage.vue +1 -1
  13. package/components/ButtonGroup.vue +1 -1
  14. package/components/ClusterProviderIcon.vue +2 -2
  15. package/components/Collapse.vue +6 -2
  16. package/components/CollapsibleCard.vue +2 -2
  17. package/components/ConsumptionGauge.vue +4 -4
  18. package/components/ContainerResourceLimit.vue +1 -1
  19. package/components/CountBox.vue +1 -1
  20. package/components/CountGauge.vue +1 -1
  21. package/components/CruResource.vue +2 -1
  22. package/components/DashboardMetrics.vue +2 -2
  23. package/components/ExplorerProjectsNamespaces.vue +6 -6
  24. package/components/FixedBanner.vue +6 -6
  25. package/components/GlobalRoleBindings.vue +6 -6
  26. package/components/GradientBox.vue +2 -2
  27. package/components/IconMessage.vue +4 -4
  28. package/components/Import.vue +5 -5
  29. package/components/InputOrDisplay.vue +1 -1
  30. package/components/KeyValueView.vue +1 -1
  31. package/components/LabelValue.vue +1 -1
  32. package/components/ModalWithCard.vue +1 -1
  33. package/components/MoveModal.vue +1 -1
  34. package/components/PercentageBar.vue +2 -2
  35. package/components/PromptChangePassword.vue +1 -1
  36. package/components/PromptModal.vue +1 -1
  37. package/components/PromptRemove.vue +2 -2
  38. package/components/PromptRestore.vue +13 -13
  39. package/components/Questions/Question.js +1 -1
  40. package/components/ResourceCancelModal.vue +3 -3
  41. package/components/ResourceDetail/Masthead.vue +1 -1
  42. package/components/ResourceList/Masthead.vue +1 -1
  43. package/components/ResourceSummary.vue +4 -4
  44. package/components/RoleBindings.vue +19 -19
  45. package/components/SimpleBox.vue +5 -1
  46. package/components/SingleClusterInfo.vue +5 -5
  47. package/components/SortableTable/THead.vue +6 -2
  48. package/components/SortableTable/actions.js +4 -2
  49. package/components/SortableTable/index.vue +9 -9
  50. package/components/SortableTable/selection.js +2 -2
  51. package/components/TableSparkLine.vue +1 -1
  52. package/components/TypeDescription.vue +1 -1
  53. package/components/Wizard.vue +1 -1
  54. package/components/YamlEditor.vue +6 -6
  55. package/components/__tests__/ApplicationCard.test.ts +27 -0
  56. package/components/__tests__/Collapse.spec.ts +44 -0
  57. package/components/__tests__/CruResource.test.ts +3 -3
  58. package/components/__tests__/NamespaceFilter.test.ts +213 -0
  59. package/components/__tests__/SimpleBox.spec.ts +28 -0
  60. package/components/auth/RoleDetailEdit.vue +17 -15
  61. package/components/auth/SelectPrincipal.vue +9 -0
  62. package/components/auth/login/ldap.vue +3 -0
  63. package/components/cards/ApplicationCard.vue +10 -5
  64. package/components/fleet/FleetBundleResources.vue +8 -8
  65. package/components/fleet/FleetClusters.vue +10 -10
  66. package/components/fleet/FleetRepos.vue +5 -5
  67. package/components/fleet/FleetResources.vue +6 -6
  68. package/components/fleet/FleetSummary.vue +5 -5
  69. package/components/fleet/ResourcesSummary.vue +1 -1
  70. package/components/form/ArrayListGrouped.vue +1 -1
  71. package/components/form/ArrayListSelect.vue +3 -3
  72. package/components/form/BannerSettings.vue +6 -6
  73. package/components/form/ChangePassword.vue +3 -3
  74. package/components/form/Error.vue +2 -2
  75. package/components/form/FileSelector.vue +3 -3
  76. package/components/form/Footer.vue +1 -1
  77. package/components/form/GithubPicker.vue +4 -4
  78. package/components/form/KeyValue.vue +2 -2
  79. package/components/form/MatchExpressions.vue +1 -1
  80. package/components/form/Members/ClusterPermissionsEditor.vue +11 -11
  81. package/components/form/Members/MembershipEditor.vue +2 -2
  82. package/components/form/NodeAffinity.vue +1 -1
  83. package/components/form/Password.vue +3 -3
  84. package/components/form/PodAffinity.vue +1 -1
  85. package/components/form/ProjectMemberEditor.vue +1 -1
  86. package/components/form/ResourceQuota/shared.js +12 -12
  87. package/components/form/SecretSelector.vue +1 -1
  88. package/components/form/Security.vue +1 -1
  89. package/components/form/Select.vue +4 -0
  90. package/components/form/SimpleSecretSelector.vue +1 -1
  91. package/components/form/Taints.vue +1 -1
  92. package/components/form/UnitInput.vue +7 -7
  93. package/components/form/ValueFromResource.vue +1 -1
  94. package/components/form/WorkloadPorts.vue +1 -1
  95. package/components/formatter/AppSummaryGraph.vue +4 -4
  96. package/components/formatter/BadgeStateFormatter.vue +2 -2
  97. package/components/formatter/Checked.vue +1 -1
  98. package/components/formatter/ClusterLink.vue +3 -3
  99. package/components/formatter/Date.vue +1 -1
  100. package/components/formatter/DelayedValue.vue +1 -1
  101. package/components/formatter/Endpoints.vue +1 -1
  102. package/components/formatter/FleetSummaryGraph.vue +4 -4
  103. package/components/formatter/IconIsDefault.vue +1 -1
  104. package/components/formatter/IconText.vue +4 -4
  105. package/components/formatter/ImagePercentageBar.vue +4 -4
  106. package/components/formatter/IngressFullPath.vue +1 -1
  107. package/components/formatter/LinkDetail.vue +3 -3
  108. package/components/formatter/List.vue +1 -1
  109. package/components/formatter/ListLink.vue +1 -1
  110. package/components/formatter/ListLinkDetail.vue +1 -1
  111. package/components/formatter/LiveDate.vue +3 -3
  112. package/components/formatter/LivePodRestarts.vue +1 -1
  113. package/components/formatter/Number.vue +1 -1
  114. package/components/formatter/Percentage.vue +2 -2
  115. package/components/formatter/PercentageBar.vue +3 -3
  116. package/components/formatter/PodImages.vue +1 -1
  117. package/components/formatter/Principal.vue +1 -1
  118. package/components/formatter/PrincipalGroupBindings.vue +2 -2
  119. package/components/formatter/QualityText.vue +1 -1
  120. package/components/formatter/ReceiverIcons.vue +2 -2
  121. package/components/formatter/Scale.vue +1 -1
  122. package/components/formatter/ScanResult.vue +1 -1
  123. package/components/formatter/SecretData.vue +1 -1
  124. package/components/formatter/ServiceType.vue +1 -1
  125. package/components/formatter/Shortened.vue +1 -1
  126. package/components/formatter/VerticalScroll.vue +2 -2
  127. package/components/formatter/VirtualServiceGateways.vue +3 -3
  128. package/components/formatter/Weight.vue +2 -2
  129. package/components/formatter/WorkloadDetailEndpoints.vue +1 -1
  130. package/components/formatter/WorkloadHealthScale.vue +2 -2
  131. package/components/formatter/__tests__/Date.test.ts +60 -0
  132. package/components/formatter/__tests__/LinkDetail.test.ts +72 -0
  133. package/components/formatter/__tests__/LiveDate.test.ts +84 -0
  134. package/components/formatter/__tests__/Si.test.ts +35 -0
  135. package/components/graph/LinePlot.vue +1 -1
  136. package/components/graph/ProgressArc.vue +5 -5
  137. package/components/nav/GlobalLoading.vue +1 -1
  138. package/components/nav/Header.vue +1 -2
  139. package/components/nav/Jump.vue +3 -3
  140. package/components/nav/NamespaceFilter.vue +71 -22
  141. package/components/nav/TopLevelMenu.vue +4 -4
  142. package/components/nav/Type.vue +1 -1
  143. package/components/nav/WindowManager/ChartReadme.vue +1 -1
  144. package/components/nav/WindowManager/ContainerLogs.vue +3 -3
  145. package/components/nav/WindowManager/ContainerShell.vue +19 -0
  146. package/components/nav/WindowManager/KubectlShell.vue +6 -6
  147. package/components/nav/WindowManager/MachineSsh.vue +1 -1
  148. package/components/nav/WindowManager/index.vue +196 -25
  149. package/config/labels-annotations.js +19 -19
  150. package/config/product/apps.js +5 -5
  151. package/config/product/auth.js +20 -20
  152. package/config/product/cis.js +24 -24
  153. package/config/product/explorer.js +22 -21
  154. package/config/product/fleet.js +7 -7
  155. package/config/product/gatekeeper.js +7 -7
  156. package/config/product/harvester-manager.js +8 -8
  157. package/config/product/istio.js +7 -7
  158. package/config/product/legacy.js +21 -21
  159. package/config/product/logging.js +90 -90
  160. package/config/product/manager.js +14 -14
  161. package/config/product/monitoring.js +36 -36
  162. package/config/product/multi-cluster-apps.js +24 -24
  163. package/config/product/settings.js +42 -42
  164. package/config/settings.ts +16 -16
  165. package/config/table-headers.js +55 -48
  166. package/config/types.js +7 -7
  167. package/config/uiplugins.js +4 -4
  168. package/creators/app/app.package.json +4 -1
  169. package/creators/app/{.eslintignore → files/.eslintignore} +0 -0
  170. package/creators/app/{.eslintrc.js → files/.eslintrc.js} +0 -0
  171. package/creators/app/{.vscode → files/.vscode}/settings.json +0 -0
  172. package/creators/app/{babel.config.js → files/babel.config.js} +0 -0
  173. package/creators/app/{nuxt.config.js → files/nuxt.config.js} +0 -0
  174. package/creators/app/{tsconfig.json → files/tsconfig.json} +2 -1
  175. package/creators/app/init +16 -17
  176. package/creators/app/package.json +7 -1
  177. package/creators/pkg/{babel.config.js → files/babel.config.js} +0 -0
  178. package/creators/pkg/{index.ts → files/index.ts} +0 -0
  179. package/creators/pkg/{tsconfig.json → files/tsconfig.json} +13 -12
  180. package/creators/pkg/{vue.config.js → files/vue.config.js} +0 -0
  181. package/creators/pkg/init +1 -1
  182. package/creators/pkg/package.json +1 -1
  183. package/creators/update/init +56 -0
  184. package/creators/update/package.json +20 -0
  185. package/creators/update/upgrade +56 -0
  186. package/detail/cis.cattle.io.clusterscan.vue +6 -6
  187. package/detail/configmap.vue +1 -1
  188. package/detail/constraints.gatekeeper.sh.constraint.vue +1 -1
  189. package/detail/fleet.cattle.io.bundle.vue +5 -5
  190. package/detail/fleet.cattle.io.gitrepo.vue +5 -5
  191. package/detail/helm.cattle.io.projecthelmchart.vue +1 -1
  192. package/detail/management.cattle.io.user.vue +3 -3
  193. package/detail/namespace.vue +13 -13
  194. package/detail/node.vue +2 -2
  195. package/detail/pod.vue +1 -1
  196. package/detail/provisioning.cattle.io.cluster.vue +12 -1
  197. package/detail/secret.vue +2 -2
  198. package/detail/workload/index.vue +1 -1
  199. package/dialog/AddClusterMemberDialog.vue +1 -1
  200. package/dialog/AddCustomBadgeDialog.vue +4 -4
  201. package/dialog/AddProjectMemberDialog.vue +29 -22
  202. package/dialog/AddonConfigConfirmationDialog.vue +1 -1
  203. package/dialog/DiagnosticTimingsDialog.vue +1 -1
  204. package/dialog/DrainNode.vue +12 -12
  205. package/dialog/ForceMachineRemoveDialog.vue +1 -1
  206. package/dialog/GenericPrompt.vue +1 -1
  207. package/dialog/RollbackWorkloadDialog.vue +8 -8
  208. package/dialog/RotateCertificatesDialog.vue +4 -4
  209. package/dialog/RotateEncryptionKeyDialog.vue +1 -1
  210. package/dialog/SaveAsRKETemplateDialog.vue +1 -1
  211. package/dialog/ScaleMachineDownDialog.vue +1 -1
  212. package/edit/__tests__/management.cattle.io.setting.test.ts +1 -1
  213. package/edit/auth/azuread.vue +2 -2
  214. package/edit/auth/github.vue +2 -2
  215. package/edit/auth/ldap/index.vue +4 -4
  216. package/edit/auth/oidc.vue +3 -3
  217. package/edit/auth/saml.vue +4 -4
  218. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +2 -2
  219. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +1 -1
  220. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  221. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +2 -2
  222. package/edit/cis.cattle.io.clusterscan.vue +2 -2
  223. package/edit/constraints.gatekeeper.sh.constraint/index.vue +1 -1
  224. package/edit/fleet.cattle.io.clustergroup.vue +3 -3
  225. package/edit/fleet.cattle.io.gitrepo.vue +9 -9
  226. package/edit/group.principal.vue +2 -2
  227. package/edit/helm.cattle.io.projecthelmchart.vue +3 -3
  228. package/edit/logging-flow/index.vue +1 -1
  229. package/edit/logging.banzaicloud.io.output/providers/datadog.vue +1 -1
  230. package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +1 -1
  231. package/edit/logging.banzaicloud.io.output/providers/gcs.vue +1 -1
  232. package/edit/logging.banzaicloud.io.output/providers/gelf.vue +1 -1
  233. package/edit/logging.banzaicloud.io.output/providers/kafka.vue +1 -1
  234. package/edit/logging.banzaicloud.io.output/providers/logz.vue +1 -1
  235. package/edit/logging.banzaicloud.io.output/providers/loki.vue +1 -1
  236. package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +213 -0
  237. package/edit/logging.banzaicloud.io.output/providers/redis.vue +142 -0
  238. package/edit/logging.banzaicloud.io.output/providers/s3.vue +1 -1
  239. package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +1 -1
  240. package/edit/logging.banzaicloud.io.output/providers/syslog.vue +1 -1
  241. package/edit/management.cattle.io.fleetworkspace.vue +1 -1
  242. package/edit/management.cattle.io.project.vue +3 -3
  243. package/edit/management.cattle.io.projectroletemplatebinding.vue +5 -5
  244. package/edit/management.cattle.io.setting.vue +1 -1
  245. package/edit/management.cattle.io.user.vue +4 -4
  246. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +15 -15
  247. package/edit/monitoring.coreos.com.alertmanagerconfig/tls.vue +1 -1
  248. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +4 -4
  249. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +5 -5
  250. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +3 -3
  251. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +3 -3
  252. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +4 -4
  253. package/edit/monitoring.coreos.com.receiver/auth.vue +2 -2
  254. package/edit/monitoring.coreos.com.receiver/index.vue +1 -1
  255. package/edit/monitoring.coreos.com.receiver/types/email.vue +1 -1
  256. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +1 -1
  257. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +1 -1
  258. package/edit/monitoring.coreos.com.receiver/types/webhook.vue +1 -1
  259. package/edit/monitoring.coreos.com.route.vue +1 -1
  260. package/edit/networking.istio.io.destinationrule/LoadBalancer.vue +1 -1
  261. package/edit/networking.k8s.io.ingress/Certificates.vue +3 -3
  262. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  263. package/edit/networking.k8s.io.ingress/IngressClass.vue +1 -1
  264. package/edit/networking.k8s.io.ingress/Rule.vue +1 -1
  265. package/edit/networking.k8s.io.ingress/RulePath.vue +5 -5
  266. package/edit/networking.k8s.io.ingress/Rules.vue +7 -7
  267. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +1 -1
  268. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +3 -3
  269. package/edit/networking.k8s.io.networkpolicy/PolicyRules.vue +1 -1
  270. package/edit/networking.k8s.io.networkpolicy/index.vue +5 -5
  271. package/edit/persistentvolume/index.vue +1 -1
  272. package/edit/persistentvolume/plugins/awsElasticBlockStore.vue +1 -1
  273. package/edit/persistentvolume/plugins/azureDisk.vue +1 -1
  274. package/edit/persistentvolume/plugins/azureFile.vue +1 -1
  275. package/edit/persistentvolume/plugins/cephfs.vue +2 -2
  276. package/edit/persistentvolume/plugins/cinder.vue +1 -1
  277. package/edit/persistentvolume/plugins/csi.vue +2 -2
  278. package/edit/persistentvolume/plugins/fc.vue +2 -2
  279. package/edit/persistentvolume/plugins/flexVolume.vue +2 -2
  280. package/edit/persistentvolume/plugins/flocker.vue +1 -1
  281. package/edit/persistentvolume/plugins/gcePersistentDisk.vue +1 -1
  282. package/edit/persistentvolume/plugins/glusterfs.vue +1 -1
  283. package/edit/persistentvolume/plugins/hostPath.vue +1 -1
  284. package/edit/persistentvolume/plugins/iscsi.vue +2 -2
  285. package/edit/persistentvolume/plugins/local.vue +1 -1
  286. package/edit/persistentvolume/plugins/longhorn.vue +2 -2
  287. package/edit/persistentvolume/plugins/nfs.vue +1 -1
  288. package/edit/persistentvolume/plugins/photonPersistentDisk.vue +1 -1
  289. package/edit/persistentvolume/plugins/portworxVolume.vue +1 -1
  290. package/edit/persistentvolume/plugins/quobyte.vue +1 -1
  291. package/edit/persistentvolume/plugins/rbd.vue +2 -2
  292. package/edit/persistentvolume/plugins/scaleIO.vue +1 -1
  293. package/edit/persistentvolume/plugins/storageos.vue +1 -1
  294. package/edit/persistentvolume/plugins/vsphereVolume.vue +1 -1
  295. package/edit/persistentvolumeclaim.vue +2 -2
  296. package/edit/provisioning.cattle.io.cluster/DrainOptions.vue +1 -1
  297. package/edit/provisioning.cattle.io.cluster/MachinePool.vue +1 -1
  298. package/edit/provisioning.cattle.io.cluster/S3Config.vue +1 -1
  299. package/edit/provisioning.cattle.io.cluster/__tests__/CustomCommand.tests.ts +1 -1
  300. package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
  301. package/edit/provisioning.cattle.io.cluster/index.vue +2 -2
  302. package/edit/provisioning.cattle.io.cluster/rke2.vue +18 -12
  303. package/edit/resources.cattle.io.backup.vue +2 -2
  304. package/edit/secret/generic.vue +1 -0
  305. package/edit/storage.k8s.io.storageclass/index.vue +2 -2
  306. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/no-provisioner.vue +1 -1
  307. package/edit/token.vue +1 -1
  308. package/edit/ui.cattle.io.navlink.vue +8 -8
  309. package/edit/workload/Job.vue +3 -3
  310. package/edit/workload/Upgrading.vue +1 -1
  311. package/edit/workload/VolumeClaimTemplate.vue +1 -1
  312. package/edit/workload/index.vue +3 -3
  313. package/edit/workload/mixins/workload.js +23 -23
  314. package/edit/workload/storage/ContainerMountPaths.vue +1 -1
  315. package/edit/workload/storage/Mount.vue +1 -1
  316. package/edit/workload/storage/azureDisk.vue +1 -1
  317. package/edit/workload/storage/azureFile.vue +1 -1
  318. package/edit/workload/storage/csi/index.vue +1 -1
  319. package/edit/workload/storage/ephemeralVolume/index.vue +1 -1
  320. package/edit/workload/storage/gcePersistentDisk.vue +1 -1
  321. package/edit/workload/storage/hostPath.vue +1 -1
  322. package/edit/workload/storage/nfs.vue +1 -1
  323. package/edit/workload/storage/persistentVolumeClaim/index.vue +1 -1
  324. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +1 -1
  325. package/edit/workload/storage/secret.vue +1 -1
  326. package/edit/workload/storage/vsphereVolume.vue +1 -1
  327. package/layouts/default.vue +77 -16
  328. package/list/__tests__/workload.test.ts +50 -0
  329. package/list/fleet.cattle.io.gitrepo.vue +1 -1
  330. package/list/group.principal.vue +8 -8
  331. package/list/harvesterhci.io.management.cluster.vue +1 -1
  332. package/list/helm.cattle.io.projecthelmchart.vue +1 -1
  333. package/list/management.cattle.io.feature.vue +1 -1
  334. package/list/node.vue +1 -1
  335. package/list/provisioning.cattle.io.cluster.vue +3 -3
  336. package/machine-config/amazonec2.vue +1 -1
  337. package/machine-config/harvester.vue +4 -4
  338. package/mixins/__tests__/create-edit-view.test.ts +1 -1
  339. package/mixins/chart.js +14 -14
  340. package/mixins/create-edit-view/index.js +5 -5
  341. package/mixins/form-validation.js +1 -1
  342. package/mixins/labeled-form-element.ts +6 -6
  343. package/mixins/resource-fetch.js +3 -3
  344. package/mixins/resource-manager.js +1 -1
  345. package/models/autoscaling.horizontalpodautoscaler.js +5 -5
  346. package/models/batch.cronjob.js +15 -15
  347. package/models/batch.job.js +22 -0
  348. package/models/catalog.cattle.io.app.js +6 -6
  349. package/models/catalog.cattle.io.clusterrepo.js +7 -7
  350. package/models/catalog.cattle.io.operation.js +5 -5
  351. package/models/chart.js +4 -4
  352. package/models/cis.cattle.io.clusterscan.js +10 -10
  353. package/models/cluster/node.js +36 -36
  354. package/models/cluster.x-k8s.io.machine.js +13 -13
  355. package/models/constraints.gatekeeper.sh.constraint.js +1 -1
  356. package/models/etcdbackup.js +4 -4
  357. package/models/fleet.cattle.io.cluster.js +15 -15
  358. package/models/fleet.cattle.io.clustergroup.js +1 -1
  359. package/models/fleet.cattle.io.gitrepo.js +15 -15
  360. package/models/group.principal.js +1 -1
  361. package/models/logging.banzaicloud.io.clusterflow.js +2 -2
  362. package/models/logging.banzaicloud.io.flow.js +2 -2
  363. package/models/logging.banzaicloud.io.output.js +15 -3
  364. package/models/management.cattle.io.authconfig.js +4 -4
  365. package/models/management.cattle.io.cluster.js +9 -9
  366. package/models/management.cattle.io.clusterroletemplatebinding.js +8 -8
  367. package/models/management.cattle.io.globalrole.js +24 -3
  368. package/models/management.cattle.io.node.js +9 -9
  369. package/models/management.cattle.io.nodepool.js +3 -3
  370. package/models/management.cattle.io.nodetemplate.js +21 -21
  371. package/models/management.cattle.io.project.js +2 -2
  372. package/models/management.cattle.io.projectroletemplatebinding.js +6 -6
  373. package/models/management.cattle.io.roletemplate.js +54 -31
  374. package/models/management.cattle.io.user.js +4 -4
  375. package/models/monitoring.coreos.com.alertmanagerconfig.js +4 -4
  376. package/models/monitoring.coreos.com.receiver.js +7 -7
  377. package/models/monitoring.coreos.com.route.js +2 -2
  378. package/models/namespace.js +13 -0
  379. package/models/persistentvolumeclaim.js +4 -4
  380. package/models/pod.js +10 -10
  381. package/models/provisioning.cattle.io.cluster.js +29 -29
  382. package/models/rbac.authorization.k8s.io.role.js +4 -4
  383. package/models/rke.cattle.io.etcdsnapshot.js +4 -4
  384. package/models/service.js +15 -15
  385. package/models/storage.k8s.io.storageclass.js +8 -8
  386. package/models/workload.js +28 -28
  387. package/nuxt.config.js +32 -17
  388. package/package.json +2 -2
  389. package/pages/about.vue +1 -1
  390. package/pages/account/index.vue +1 -1
  391. package/pages/auth/login.vue +37 -7
  392. package/pages/auth/setup.vue +11 -11
  393. package/pages/c/_cluster/_product/_resource/_id.vue +2 -2
  394. package/pages/c/_cluster/apps/charts/chart.vue +4 -4
  395. package/pages/c/_cluster/apps/charts/index.vue +18 -18
  396. package/pages/c/_cluster/apps/charts/install.vue +14 -14
  397. package/pages/c/_cluster/auth/config/_id.vue +2 -2
  398. package/pages/c/_cluster/auth/roles/_resource/_id.vue +2 -2
  399. package/pages/c/_cluster/auth/roles/index.vue +4 -6
  400. package/pages/c/_cluster/explorer/EventsTable.vue +8 -8
  401. package/pages/c/_cluster/explorer/index.vue +14 -14
  402. package/pages/c/_cluster/explorer/tools/index.vue +4 -4
  403. package/pages/c/_cluster/fleet/GitRepoGraphConfig.js +2 -2
  404. package/pages/c/_cluster/fleet/index.vue +10 -10
  405. package/pages/c/_cluster/gatekeeper/index.vue +1 -1
  406. package/pages/c/_cluster/legacy/index.vue +1 -1
  407. package/pages/c/_cluster/longhorn/index.vue +1 -1
  408. package/pages/c/_cluster/mcapps/index.vue +1 -1
  409. package/pages/c/_cluster/navlinks/_group.vue +1 -1
  410. package/pages/c/_cluster/neuvector/index.vue +1 -1
  411. package/pages/c/_cluster/settings/banners.vue +30 -30
  412. package/pages/c/_cluster/settings/brand.vue +9 -9
  413. package/pages/c/_cluster/settings/links.vue +6 -6
  414. package/pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue +1 -1
  415. package/pages/c/_cluster/uiplugins/InstallDialog.vue +1 -1
  416. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +25 -8
  417. package/pages/c/_cluster/uiplugins/index.vue +2 -2
  418. package/pages/prefs.vue +11 -11
  419. package/pages/rio/mesh.vue +4 -4
  420. package/pages/support/index.vue +7 -7
  421. package/pkg/vue.config.js +10 -1
  422. package/plugins/dashboard-store/mutations.js +6 -6
  423. package/plugins/dashboard-store/normalize.js +1 -1
  424. package/plugins/dashboard-store/resource-class.js +100 -100
  425. package/plugins/steve/subscribe.js +4 -4
  426. package/plugins/steve/web-worker.steve-sub-worker.js +3 -3
  427. package/promptRemove/management.cattle.io.project.vue +1 -1
  428. package/promptRemove/mixin/roleDeletionCheck.js +7 -7
  429. package/promptRemove/pod.vue +2 -2
  430. package/rancher-components/Card/Card.test.ts +39 -0
  431. package/rancher-components/Card/Card.vue +3 -3
  432. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +0 -1
  433. package/rancher-components/StringList/StringList.test.ts +420 -45
  434. package/rancher-components/StringList/StringList.vue +10 -1
  435. package/rancher-components/Utils/DraggableZone/DraggableZone.vue +181 -0
  436. package/rancher-components/Utils/DraggableZone/index.ts +1 -0
  437. package/rancher-components/components/BadgeState/BadgeState.spec.ts +12 -0
  438. package/rancher-components/components/BadgeState/BadgeState.vue +111 -0
  439. package/rancher-components/components/BadgeState/index.ts +1 -0
  440. package/rancher-components/components/Banner/Banner.test.ts +13 -0
  441. package/rancher-components/components/Banner/Banner.vue +174 -0
  442. package/rancher-components/components/Banner/index.ts +1 -0
  443. package/rancher-components/components/Card/Card.test.ts +37 -0
  444. package/rancher-components/components/Card/Card.vue +166 -0
  445. package/rancher-components/components/Card/index.ts +1 -0
  446. package/rancher-components/components/Form/Checkbox/Checkbox.test.ts +77 -0
  447. package/rancher-components/components/Form/Checkbox/Checkbox.vue +416 -0
  448. package/rancher-components/components/Form/Checkbox/index.ts +1 -0
  449. package/rancher-components/components/Form/LabeledInput/LabeledInput.test.ts +23 -0
  450. package/rancher-components/components/Form/LabeledInput/LabeledInput.vue +355 -0
  451. package/rancher-components/components/Form/LabeledInput/index.ts +1 -0
  452. package/rancher-components/components/Form/Radio/RadioButton.vue +276 -0
  453. package/rancher-components/components/Form/Radio/RadioGroup.vue +253 -0
  454. package/rancher-components/components/Form/Radio/index.ts +2 -0
  455. package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +169 -0
  456. package/rancher-components/components/Form/TextArea/index.ts +1 -0
  457. package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.test.ts +94 -0
  458. package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.vue +149 -0
  459. package/rancher-components/components/Form/ToggleSwitch/index.ts +1 -0
  460. package/rancher-components/components/Form/index.ts +5 -0
  461. package/rancher-components/components/LabeledTooltip/LabeledTooltip.vue +152 -0
  462. package/rancher-components/components/LabeledTooltip/index.ts +1 -0
  463. package/rancher-components/components/StringList/StringList.test.ts +483 -0
  464. package/rancher-components/components/StringList/StringList.vue +605 -0
  465. package/rancher-components/components/StringList/index.ts +1 -0
  466. package/rancher-components/components/Utils/DraggableZone/DraggableZone.vue +181 -0
  467. package/rancher-components/components/Utils/DraggableZone/index.ts +1 -0
  468. package/scripts/publish-shell.sh +38 -5
  469. package/scripts/record-deps.js +37 -0
  470. package/scripts/test-plugins-build.sh +11 -7
  471. package/scripts/typegen.sh +84 -0
  472. package/store/action-menu.js +3 -3
  473. package/store/auth.js +4 -4
  474. package/store/aws.js +4 -4
  475. package/store/catalog.js +22 -22
  476. package/store/index.js +4 -4
  477. package/store/plugins.js +2 -2
  478. package/store/prefs.js +9 -1
  479. package/store/type-map.js +46 -31
  480. package/store/uiplugins.ts +2 -2
  481. package/store/wm.js +10 -0
  482. package/types/shell/index.d.ts +3059 -0
  483. package/types/vue-shim.d +20 -0
  484. package/utils/alertmanagerconfig.js +6 -6
  485. package/utils/gc/gc-types.ts +1 -1
  486. package/utils/object.js +2 -2
  487. package/utils/parse-externalid.js +5 -5
  488. package/utils/time.js +6 -0
  489. package/utils/validators/formRules/__tests__/index.test.ts +3 -3
  490. package/components/.DS_Store +0 -0
  491. package/components/__tests__/.DS_Store +0 -0
  492. package/creators/pkg/nuxt.config.js +0 -6
  493. package/creators/pkg/package-lock.json +0 -37
@@ -123,7 +123,7 @@ export default class User extends HybridModel {
123
123
 
124
124
  async refreshGroupMembership() {
125
125
  const user = await this.$dispatch('rancher/find', {
126
- type: NORMAN.USER,
126
+ type: NORMAN.USER,
127
127
  id: this.id,
128
128
  }, { root: true });
129
129
 
@@ -158,9 +158,9 @@ export default class User extends HybridModel {
158
158
  weight: 1
159
159
  },
160
160
  {
161
- action: 'refreshGroupMembership',
162
- label: this.t('authGroups.actions.refresh'),
163
- icon: 'icon icon-refresh',
161
+ action: 'refreshGroupMembership',
162
+ label: this.t('authGroups.actions.refresh'),
163
+ icon: 'icon icon-refresh',
164
164
  enabled: this.canRefreshAccess
165
165
  },
166
166
  { divider: true },
@@ -102,9 +102,9 @@ export default class AlertmanagerConfig extends SteveModel {
102
102
  alertmanagerconfigid: this.id
103
103
  },
104
104
  query: {
105
- mode: queryMode || _VIEW,
105
+ mode: queryMode || _VIEW,
106
106
  receiverName,
107
- currentView: _YAML
107
+ currentView: _YAML
108
108
  }
109
109
  };
110
110
  }
@@ -117,9 +117,9 @@ export default class AlertmanagerConfig extends SteveModel {
117
117
  alertmanagerconfigid: this.id
118
118
  },
119
119
  query: {
120
- mode: queryMode || _VIEW,
120
+ mode: queryMode || _VIEW,
121
121
  receiverName,
122
- currentView: _CONFIG
122
+ currentView: _CONFIG
123
123
  }
124
124
  };
125
125
  }
@@ -36,13 +36,13 @@ export const RECEIVERS_TYPES = [
36
36
  logo: require(`~shell/assets/images/vendor/email.svg`)
37
37
  },
38
38
  {
39
- name: 'webhook',
40
- label: 'monitoringReceiver.webhook.label',
41
- title: 'monitoringReceiver.webhook.title',
42
- key: 'webhook_configs',
43
- logo: require(`~shell/assets/images/vendor/webhook.svg`),
44
- banner: 'webhook.banner',
45
- addButton: 'webhook.add'
39
+ name: 'webhook',
40
+ label: 'monitoringReceiver.webhook.label',
41
+ title: 'monitoringReceiver.webhook.title',
42
+ key: 'webhook_configs',
43
+ logo: require(`~shell/assets/images/vendor/webhook.svg`),
44
+ banner: 'webhook.banner',
45
+ addButton: 'webhook.add'
46
46
  },
47
47
  {
48
48
  name: 'custom',
@@ -150,8 +150,8 @@ export default class Route extends SteveModel {
150
150
 
151
151
  get receiverLink() {
152
152
  return {
153
- text: this.spec.receiver,
154
- to: {
153
+ text: this.spec.receiver,
154
+ to: {
155
155
  name: 'c-cluster-product-resource-id',
156
156
  params: {
157
157
  resource: MONITORING.SPOOFED.RECEIVER, product: MONITORING_PRODUCT, id: this.spec.receiver
@@ -210,4 +210,17 @@ export default class Namespace extends SteveModel {
210
210
  set resourceQuota(value) {
211
211
  Vue.set(this.metadata.annotations, RESOURCE_QUOTA, JSON.stringify(value));
212
212
  }
213
+
214
+ // Preserve the project label - ensures we preserve project when cloning a namespace
215
+ cleanForNew() {
216
+ const project = this.metadata?.labels?.[PROJECT];
217
+
218
+ super.cleanForNew();
219
+
220
+ if (project) {
221
+ this.metadata = this.metadata || {};
222
+ this.metadata.labels = this.metadata.labels || {};
223
+ this.metadata.labels[PROJECT] = project;
224
+ }
225
+ }
213
226
  }
@@ -40,10 +40,10 @@ export default class PVC extends SteveModel {
40
40
  // Add backwards, each one to the top
41
41
  insertAt(out, 0, { divider: true });
42
42
  insertAt(out, 0, {
43
- action: 'goToEditVolumeSize',
44
- enabled: this.expandable && this.bound,
45
- icon: 'icon icon-fw icon-plus',
46
- label: this.t('persistentVolumeClaim.expand.label'),
43
+ action: 'goToEditVolumeSize',
44
+ enabled: this.expandable && this.bound,
45
+ icon: 'icon icon-fw icon-plus',
46
+ label: this.t('persistentVolumeClaim.expand.label'),
47
47
  });
48
48
 
49
49
  return out;
package/models/pod.js CHANGED
@@ -28,21 +28,21 @@ export default class Pod extends WorkloadService {
28
28
 
29
29
  get openShellMenuItem() {
30
30
  return {
31
- action: 'openShell',
32
- enabled: !!this.links.view && this.isRunning,
33
- icon: 'icon icon-fw icon-chevron-right',
34
- label: 'Execute Shell',
35
- total: 1,
31
+ action: 'openShell',
32
+ enabled: !!this.links.view && this.isRunning,
33
+ icon: 'icon icon-fw icon-chevron-right',
34
+ label: 'Execute Shell',
35
+ total: 1,
36
36
  };
37
37
  }
38
38
 
39
39
  get openLogsMenuItem() {
40
40
  return {
41
- action: 'openLogs',
42
- enabled: !!this.links.view,
43
- icon: 'icon icon-fw icon-chevron-right',
44
- label: 'View Logs',
45
- total: 1,
41
+ action: 'openLogs',
42
+ enabled: !!this.links.view,
43
+ icon: 'icon icon-fw icon-chevron-right',
44
+ label: 'View Logs',
45
+ total: 1,
46
46
  };
47
47
  }
48
48
 
@@ -104,10 +104,10 @@ export default class ProvCluster extends SteveModel {
104
104
  // Note: Actions are not supported in the Steve API, so we check
105
105
  // available actions for RKE1 clusters, but not RKE2 clusters.
106
106
  {
107
- action: 'openShell',
108
- label: this.$rootGetters['i18n/t']('nav.shell'),
109
- icon: 'icon icon-terminal',
110
- enabled: !!this.mgmt?.links.shell && ready,
107
+ action: 'openShell',
108
+ label: this.$rootGetters['i18n/t']('nav.shell'),
109
+ icon: 'icon icon-terminal',
110
+ enabled: !!this.mgmt?.links.shell && ready,
111
111
  }, {
112
112
  action: 'downloadKubeConfig',
113
113
  bulkAction: 'downloadKubeConfigBulk',
@@ -116,11 +116,11 @@ export default class ProvCluster extends SteveModel {
116
116
  bulkable: true,
117
117
  enabled: this.mgmt?.hasAction('generateKubeconfig') && ready,
118
118
  }, {
119
- action: 'copyKubeConfig',
120
- label: this.t('cluster.copyConfig'),
121
- bulkable: false,
122
- enabled: this.mgmt?.hasAction('generateKubeconfig') && ready,
123
- icon: 'icon icon-copy',
119
+ action: 'copyKubeConfig',
120
+ label: this.t('cluster.copyConfig'),
121
+ bulkable: false,
122
+ enabled: this.mgmt?.hasAction('generateKubeconfig') && ready,
123
+ icon: 'icon icon-copy',
124
124
  }, {
125
125
  action: 'snapshotAction',
126
126
  label: this.$rootGetters['i18n/t']('nav.takeSnapshot'),
@@ -129,25 +129,25 @@ export default class ProvCluster extends SteveModel {
129
129
  bulkable: true,
130
130
  enabled: canSnapshot,
131
131
  }, {
132
- action: 'restoreSnapshotAction',
133
- label: this.$rootGetters['i18n/t']('nav.restoreSnapshot'),
134
- icon: 'icon icon-fw icon-backup-restore',
135
- enabled: canSnapshot,
132
+ action: 'restoreSnapshotAction',
133
+ label: this.$rootGetters['i18n/t']('nav.restoreSnapshot'),
134
+ icon: 'icon icon-fw icon-backup-restore',
135
+ enabled: canSnapshot,
136
136
  }, {
137
- action: 'rotateCertificates',
138
- label: this.$rootGetters['i18n/t']('nav.rotateCertificates'),
139
- icon: 'icon icon-backup',
140
- enabled: canEditRKE2cluster || (this.mgmt?.hasAction('rotateCertificates') && ready),
137
+ action: 'rotateCertificates',
138
+ label: this.$rootGetters['i18n/t']('nav.rotateCertificates'),
139
+ icon: 'icon icon-backup',
140
+ enabled: canEditRKE2cluster || (this.mgmt?.hasAction('rotateCertificates') && ready),
141
141
  }, {
142
- action: 'rotateEncryptionKey',
143
- label: this.$rootGetters['i18n/t']('nav.rotateEncryptionKeys'),
144
- icon: 'icon icon-refresh',
145
- enabled: canEditRKE2cluster || (this.isRke1 && this.mgmt?.hasAction('rotateEncryptionKey') && ready)
142
+ action: 'rotateEncryptionKey',
143
+ label: this.$rootGetters['i18n/t']('nav.rotateEncryptionKeys'),
144
+ icon: 'icon icon-refresh',
145
+ enabled: canEditRKE2cluster || (this.isRke1 && this.mgmt?.hasAction('rotateEncryptionKey') && ready)
146
146
  }, {
147
- action: 'saveAsRKETemplate',
148
- label: this.$rootGetters['i18n/t']('nav.saveAsRKETemplate'),
149
- icon: 'icon icon-folder',
150
- enabled: canSaveRKETemplate,
147
+ action: 'saveAsRKETemplate',
148
+ label: this.$rootGetters['i18n/t']('nav.saveAsRKETemplate'),
149
+ icon: 'icon icon-folder',
150
+ enabled: canSaveRKETemplate,
151
151
  }, { divider: true }];
152
152
 
153
153
  return actions.concat(out);
@@ -552,8 +552,8 @@ export default class ProvCluster extends SteveModel {
552
552
  takeSnapshot() {
553
553
  if ( this.isRke1 ) {
554
554
  return this.$dispatch('rancher/request', {
555
- url: `/v3/clusters/${ escape(this.mgmt.id) }?action=backupEtcd`,
556
- method: 'post',
555
+ url: `/v3/clusters/${ escape(this.mgmt.id) }?action=backupEtcd`,
556
+ method: 'post',
557
557
  }, { root: true });
558
558
  } else {
559
559
  const now = this.spec?.rkeConfig?.etcdSnapshotCreate?.generation || 0;
@@ -757,8 +757,8 @@ export default class ProvCluster extends SteveModel {
757
757
  }, { root: true });
758
758
 
759
759
  await this.$dispatch('management/request', {
760
- url: `/k8s/clusters/${ harvesterClusterId }/v1/harvester/serviceaccounts/${ poolConfig.vmNamespace }/${ this.metadata.name }`,
761
- method: 'DELETE',
760
+ url: `/k8s/clusters/${ harvesterClusterId }/v1/harvester/serviceaccounts/${ poolConfig.vmNamespace }/${ this.metadata.name }`,
761
+ method: 'DELETE',
762
762
  }, { root: true });
763
763
  } catch (e) {
764
764
  console.error(e); // eslint-disable-line no-console
@@ -14,10 +14,10 @@ export default class Role extends SteveModel {
14
14
  type: 'string',
15
15
  },
16
16
  {
17
- path: 'rules',
18
- validators: [`roleTemplateRules:${ this.type }`],
19
- nullable: false,
20
- type: 'array',
17
+ path: 'rules',
18
+ validators: [`roleTemplateRules:${ this.type }`],
19
+ nullable: false,
20
+ type: 'array',
21
21
  },
22
22
  ];
23
23
  }
@@ -12,10 +12,10 @@ export default class EtcdBackup extends NormanModel {
12
12
  */
13
13
  get _availableActions() {
14
14
  return [{
15
- action: 'promptRestore',
16
- enabled: true,
17
- icon: 'icon icon-fw icon-backup-restore',
18
- label: 'Restore'
15
+ action: 'promptRestore',
16
+ enabled: true,
17
+ icon: 'icon icon-fw icon-backup-restore',
18
+ label: 'Restore'
19
19
  }];
20
20
  }
21
21
 
package/models/service.js CHANGED
@@ -58,25 +58,25 @@ export default class extends SteveModel {
58
58
  type: 'dnsLabel',
59
59
  },
60
60
  {
61
- nullable: false,
62
- path: 'spec',
63
- required: true,
64
- type: 'array',
65
- validators: ['servicePort'],
61
+ nullable: false,
62
+ path: 'spec',
63
+ required: true,
64
+ type: 'array',
65
+ validators: ['servicePort'],
66
66
  },
67
67
  {
68
- nullable: true,
69
- path: 'spec',
70
- required: true,
71
- type: 'string',
72
- validators: ['clusterIp'],
68
+ nullable: true,
69
+ path: 'spec',
70
+ required: true,
71
+ type: 'string',
72
+ validators: ['clusterIp'],
73
73
  },
74
74
  {
75
- nullable: true,
76
- path: 'spec',
77
- required: true,
78
- type: 'array',
79
- validators: ['externalName'],
75
+ nullable: true,
76
+ path: 'spec',
77
+ required: true,
78
+ type: 'array',
79
+ validators: ['externalName'],
80
80
  },
81
81
  ];
82
82
  }
@@ -115,17 +115,17 @@ export default class extends SteveModel {
115
115
 
116
116
  if (this.isDefault) {
117
117
  out.unshift({
118
- action: 'resetDefault',
119
- enabled: true,
120
- icon: 'icon icon-fw icon-checkmark',
121
- label: this.t('storageClass.actions.resetDefault'),
118
+ action: 'resetDefault',
119
+ enabled: true,
120
+ icon: 'icon icon-fw icon-checkmark',
121
+ label: this.t('storageClass.actions.resetDefault'),
122
122
  });
123
123
  } else {
124
124
  out.unshift({
125
- action: 'setDefault',
126
- enabled: true,
127
- icon: 'icon icon-fw icon-checkmark',
128
- label: this.t('storageClass.actions.setAsDefault'),
125
+ action: 'setDefault',
126
+ enabled: true,
127
+ icon: 'icon icon-fw icon-checkmark',
128
+ label: this.t('storageClass.actions.setAsDefault'),
129
129
  });
130
130
  }
131
131
 
@@ -32,11 +32,11 @@ export default class Workload extends WorkloadService {
32
32
  });
33
33
 
34
34
  insertAt(out, 0, {
35
- action: 'redeploy',
36
- label: this.t('action.redeploy'),
37
- icon: 'icon icon-refresh',
38
- enabled: !!this.links.update,
39
- bulkable: true,
35
+ action: 'redeploy',
36
+ label: this.t('action.redeploy'),
37
+ icon: 'icon icon-refresh',
38
+ enabled: !!this.links.update,
39
+ bulkable: true,
40
40
  });
41
41
 
42
42
  insertAt(out, 0, {
@@ -57,11 +57,11 @@ export default class Workload extends WorkloadService {
57
57
  insertAt(out, 0, { divider: true }) ;
58
58
 
59
59
  insertAt(out, 0, {
60
- action: 'openShell',
61
- enabled: !!this.links.view,
62
- icon: 'icon icon-fw icon-chevron-right',
63
- label: this.t('action.openShell'),
64
- total: 1,
60
+ action: 'openShell',
61
+ enabled: !!this.links.view,
62
+ icon: 'icon icon-fw icon-chevron-right',
63
+ label: this.t('action.openShell'),
64
+ total: 1,
65
65
  });
66
66
 
67
67
  const toFilter = ['cloneYaml'];
@@ -221,17 +221,17 @@ export default class Workload extends WorkloadService {
221
221
  type: 'subDomain',
222
222
  },
223
223
  {
224
- nullable: false,
225
- path: 'spec',
226
- required: true,
227
- type: 'object',
228
- validators: ['containerImages'],
224
+ nullable: false,
225
+ path: 'spec',
226
+ required: true,
227
+ type: 'object',
228
+ validators: ['containerImages'],
229
229
  },
230
230
  {
231
- nullable: true,
232
- path: `${ podSpecPath }.affinity`,
233
- type: 'object',
234
- validators: ['podAffinity'],
231
+ nullable: true,
232
+ path: `${ podSpecPath }.affinity`,
233
+ type: 'object',
234
+ validators: ['podAffinity'],
235
235
  }
236
236
  ];
237
237
 
@@ -311,22 +311,22 @@ export default class Workload extends WorkloadService {
311
311
  const type = this._type ? this._type : this.type;
312
312
 
313
313
  const detailItem = {
314
- endpoint: {
314
+ endpoint: {
315
315
  label: 'Endpoints',
316
316
  content: this.endpoint,
317
317
  formatter: 'WorkloadDetailEndpoints'
318
318
  },
319
- ready: {
320
- label: 'Ready',
321
- content: this.ready
319
+ ready: {
320
+ label: 'Ready',
321
+ content: this.ready
322
322
  },
323
- upToDate: {
324
- label: 'Up-to-date',
325
- content: this.upToDate
323
+ upToDate: {
324
+ label: 'Up-to-date',
325
+ content: this.upToDate
326
326
  },
327
327
  available: {
328
- label: 'Available',
329
- content: this.available
328
+ label: 'Available',
329
+ content: this.available
330
330
  }
331
331
  };
332
332
 
package/nuxt.config.js CHANGED
@@ -38,7 +38,7 @@ const perfTest = (process.env.PERF_TEST === 'true'); // Enable performance testi
38
38
  // 1 = Skip browser check
39
39
  // 2 = Do not skip any checks
40
40
  const skipEsLintCheckStr = (process.env.SKIP_ESLINT || '');
41
- const skipEsLintCheck = parseInt(skipEsLintCheckStr, 10) || 2;
41
+ let skipEsLintCheck = parseInt(skipEsLintCheckStr, 10) || 2;
42
42
 
43
43
  // ===============================================================================================
44
44
  // Nuxt configuration
@@ -55,6 +55,21 @@ export default function(dir, _appConfig) {
55
55
  let COMPONENTS_DIR = path.join(SHELL_ABS, 'rancher-components');
56
56
  let typescript = {};
57
57
 
58
+ if (fs.existsSync(SHELL_ABS)) {
59
+ const stat = fs.lstatSync(SHELL_ABS);
60
+
61
+ // If @rancher/shell is a symlink, then use the components folder for it
62
+ if (stat.isSymbolicLink()) {
63
+ const REAL_SHELL_ABS = fs.realpathSync(SHELL_ABS); // In case the shell is being linked via 'yarn link'
64
+
65
+ COMPONENTS_DIR = path.join(REAL_SHELL_ABS, '..', 'pkg', 'rancher-components', 'src', 'components');
66
+
67
+ // For now, skip eslint check when being linked via yarn link - pkg folder is linked otherwise
68
+ // This will change when we remove nuxt
69
+ skipEsLintCheck = true;
70
+ }
71
+ }
72
+
58
73
  // If we have a local folder named 'shell' then use that rather than the one in node_modules
59
74
  // This will be the case in the main dashboard repository.
60
75
  if (fs.existsSync(path.join(dir, 'shell'))) {
@@ -324,9 +339,9 @@ export default function(dir, _appConfig) {
324
339
 
325
340
  // Axios: https://axios.nuxtjs.org/options
326
341
  axios: {
327
- https: true,
328
- proxy: true,
329
- retry: { retries: 0 },
342
+ https: true,
343
+ proxy: true,
344
+ retry: { retries: 0 },
330
345
  // debug: true
331
346
  },
332
347
 
@@ -356,12 +371,12 @@ export default function(dir, _appConfig) {
356
371
  ],
357
372
 
358
373
  dir: {
359
- assets: path.join(SHELL, 'assets'),
360
- layouts: path.join(SHELL, 'layouts'),
361
- middleware: path.join(SHELL, 'middleware'),
362
- pages: path.join(SHELL, 'pages'),
363
- static: path.join(SHELL, 'static'),
364
- store: path.join(SHELL, 'store'),
374
+ assets: path.posix.join(SHELL, 'assets'),
375
+ layouts: path.posix.join(SHELL, 'layouts'),
376
+ middleware: path.posix.join(SHELL, 'middleware'),
377
+ pages: path.posix.join(SHELL, 'pages'),
378
+ static: path.posix.join(SHELL, 'static'),
379
+ store: path.posix.join(SHELL, 'store'),
365
380
  },
366
381
 
367
382
  watchers: { webpack: { ignore: watcherIgnores } },
@@ -456,7 +471,7 @@ export default function(dir, _appConfig) {
456
471
 
457
472
  // And substitute our own loader for images
458
473
  config.module.rules.unshift({
459
- test: /\.(png|jpe?g|gif|svg|webp)$/,
474
+ test: /\.(png|jpe?g|gif|svg|webp)$/,
460
475
  use: [
461
476
  {
462
477
  loader: 'url-loader',
@@ -496,7 +511,7 @@ export default function(dir, _appConfig) {
496
511
 
497
512
  // Prevent warning in log with the md files in the content folder
498
513
  config.module.rules.push({
499
- test: /\.md$/,
514
+ test: /\.md$/,
500
515
  use: [
501
516
  {
502
517
  loader: 'frontmatter-markdown-loader',
@@ -515,9 +530,9 @@ export default function(dir, _appConfig) {
515
530
  require.resolve('@nuxt/babel-preset-app'),
516
531
  {
517
532
  // buildTarget: isServer ? 'server' : 'client',
518
- corejs: { version: 3 },
519
- targets: isServer ? { node: '12' } : { browsers: ['last 2 versions'] },
520
- modern: !isServer
533
+ corejs: { version: 3 },
534
+ targets: isServer ? { node: '12' } : { browsers: ['last 2 versions'] },
535
+ modern: !isServer
521
536
  }
522
537
  ],
523
538
  '@babel/preset-typescript',
@@ -638,8 +653,8 @@ export default function(dir, _appConfig) {
638
653
  key: fs.readFileSync(path.resolve(dir, SHELL, 'server/server.key')),
639
654
  cert: fs.readFileSync(path.resolve(dir, SHELL, 'server/server.crt'))
640
655
  } : null),
641
- port: (devPorts ? 8005 : 80),
642
- host: '0.0.0.0',
656
+ port: (devPorts ? 8005 : 80),
657
+ host: '0.0.0.0',
643
658
  },
644
659
 
645
660
  // Server middleware
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rancher/shell",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "Rancher Dashboard Shell",
5
5
  "repository": "https://github.com/rancherlabs/dashboard",
6
6
  "license": "Apache-2.0",
@@ -113,7 +113,7 @@
113
113
  "nyc": "15.1.0",
114
114
  "papaparse": "5.3.0",
115
115
  "portal-vue": "2.1.7",
116
- "rancher-icons": "rancher/icons#v2.0.8",
116
+ "rancher-icons": "rancher/icons#v2.0.9",
117
117
  "require-extension-hooks": "0.3.3",
118
118
  "require-extension-hooks-babel": "1.0.0",
119
119
  "require-extension-hooks-vue": "3.0.0",
package/pages/about.vue CHANGED
@@ -20,7 +20,7 @@ export default {
20
20
  SETTING
21
21
  };
22
22
  },
23
- computed: {
23
+ computed: {
24
24
  rancherVersion() {
25
25
  return this.settings.find(s => s.id === SETTING.VERSION_RANCHER);
26
26
  },
@@ -43,7 +43,7 @@ export default {
43
43
  canChangePassword: false
44
44
  };
45
45
  },
46
- computed: {
46
+ computed: {
47
47
  ...mapGetters({ t: 'i18n/t' }),
48
48
 
49
49
  apiKeyheaders() {