dashboard-shell-shell 3.0.5-test.6 → 3.0.5-test.60

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 (348) hide show
  1. package/assets/brand/csp/favicon.png +0 -0
  2. package/assets/brand/harvester/favicon.png +0 -0
  3. package/assets/brand/suse/favicon.png +0 -0
  4. package/assets/icons/demo.css +539 -0
  5. package/assets/icons/demo.css:Zone.Identifier +0 -0
  6. package/assets/icons/demo_index.html +1131 -0
  7. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  8. package/assets/icons/iconfont.css +219 -0
  9. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  10. package/assets/icons/iconfont.js +1 -0
  11. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  12. package/assets/icons/iconfont.json +324 -0
  13. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  14. package/assets/icons/iconfont.ttf +0 -0
  15. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  16. package/assets/icons/iconfont.woff +0 -0
  17. package/assets/icons/iconfont.woff2 +0 -0
  18. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  19. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  20. package/assets/iconsNew/demo.css +539 -0
  21. package/assets/iconsNew/demo.css:Zone.Identifier +0 -0
  22. package/assets/iconsNew/demo_index.html +303 -0
  23. package/assets/iconsNew/demo_index.html:Zone.Identifier +0 -0
  24. package/assets/iconsNew/iconfont.css +43 -0
  25. package/assets/iconsNew/iconfont.css:Zone.Identifier +0 -0
  26. package/assets/iconsNew/iconfont.js +1 -0
  27. package/assets/iconsNew/iconfont.js:Zone.Identifier +0 -0
  28. package/assets/iconsNew/iconfont.json +44 -0
  29. package/assets/iconsNew/iconfont.json:Zone.Identifier +0 -0
  30. package/assets/iconsNew/iconfont.ttf +0 -0
  31. package/assets/iconsNew/iconfont.ttf:Zone.Identifier +0 -0
  32. package/assets/iconsNew/iconfont.woff +0 -0
  33. package/assets/iconsNew/iconfont.woff2 +0 -0
  34. package/assets/iconsNew/iconfont.woff2:Zone.Identifier +0 -0
  35. package/assets/iconsNew/iconfont.woff:Zone.Identifier +0 -0
  36. package/assets/images/API.svg +3 -0
  37. package/assets/images/action.svg +6 -0
  38. package/assets/images/login/password.svg +20 -0
  39. package/assets/images/login/user.svg +6 -0
  40. package/assets/images/login-bg.png +0 -0
  41. package/assets/images/login-left.png +0 -0
  42. package/assets/images/login-logo.svg +19 -0
  43. package/assets/images/logo.png +0 -0
  44. package/assets/images/pl/dark/logo.png +0 -0
  45. package/assets/images/pl/half-logo.svg +2 -23
  46. package/assets/images/pl/harvester.png +0 -0
  47. package/assets/images/pl/logo.png +0 -0
  48. package/assets/images/promp-yellow.svg +5 -0
  49. package/assets/images/user.png +0 -0
  50. package/assets/styles/all.scss +83 -0
  51. package/assets/styles/app.scss +5 -0
  52. package/assets/styles/base/_basic.scss +2 -2
  53. package/assets/styles/base/_helpers.scss +1 -1
  54. package/assets/styles/base/_mixins.scss +1 -1
  55. package/assets/styles/base/_typography.scss +2 -1
  56. package/assets/styles/base/_variables.scss +14 -7
  57. package/assets/styles/fonts/_icons.scss +3 -2
  58. package/assets/styles/global/_button.scss +44 -26
  59. package/assets/styles/global/_columns.scss +3 -1
  60. package/assets/styles/global/_form.scss +46 -13
  61. package/assets/styles/global/_labeled-input.scss +54 -26
  62. package/assets/styles/global/_layout.scss +8 -3
  63. package/assets/styles/global/_select.scss +25 -17
  64. package/assets/styles/global/_table.scss +7 -1
  65. package/assets/styles/global/_tooltip.scss +60 -8
  66. package/assets/styles/themes/_dark.scss +3 -0
  67. package/assets/styles/themes/_light.scss +69 -46
  68. package/assets/styles/vendor/vue-select.scss +24 -10
  69. package/assets/translations/en-us.yaml +92 -4
  70. package/assets/translations/zh-hans.yaml +656 -206
  71. package/components/ActionDropdown.vue +2 -1
  72. package/components/ActionMenu.vue +2 -2
  73. package/components/ActionMenuShell.vue +2 -0
  74. package/components/AppModal.vue +46 -5
  75. package/components/BrandImage.vue +1 -0
  76. package/components/ButtonDropdown.vue +28 -4
  77. package/components/ButtonMultiAction.vue +1 -0
  78. package/components/ClusterIconMenu.vue +2 -2
  79. package/components/CodeMirror.vue +26 -10
  80. package/components/ConsumptionGauge.vue +24 -5
  81. package/components/ContainerResourceLimit.vue +2 -2
  82. package/components/CopyToClipboard.vue +15 -0
  83. package/components/CruResource.vue +12 -10
  84. package/components/CruResourceFooter.vue +2 -2
  85. package/components/DashboardOptions.vue +29 -17
  86. package/components/DotState.vue +84 -0
  87. package/components/Drawer/Chrome.vue +2 -2
  88. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +30 -27
  89. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  90. package/components/Drawer/ResourceDetailDrawer/index.vue +5 -4
  91. package/components/ExplorerMembers.vue +28 -4
  92. package/components/ExplorerProjectsNamespaces.vue +19 -5
  93. package/components/GlobalRoleBindings.vue +23 -4
  94. package/components/GrafanaDashboard.vue +4 -4
  95. package/components/GrowlManager.vue +3 -1
  96. package/components/HardwareResourceGauge.vue +39 -3
  97. package/components/IndentedPanel.vue +4 -10
  98. package/components/InfoBox.vue +3 -3
  99. package/components/InputOrDisplay.vue +28 -2
  100. package/components/LabelValue.vue +20 -1
  101. package/components/ModalWithCard.vue +12 -3
  102. package/components/PodSecurityAdmission.vue +2 -2
  103. package/components/PromptModal.vue +1 -1
  104. package/components/PromptRemove.vue +53 -12
  105. package/components/RelatedResources.vue +3 -0
  106. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  107. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  108. package/components/Resource/Detail/Metadata/index.vue +3 -1
  109. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  110. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  111. package/components/Resource/Detail/TitleBar/composables.ts +16 -1
  112. package/components/Resource/Detail/TitleBar/index.vue +125 -27
  113. package/components/ResourceDetail/Masthead/index.vue +1 -1
  114. package/components/ResourceDetail/Masthead/latest.vue +1 -1
  115. package/components/ResourceDetail/Masthead/legacy.vue +183 -39
  116. package/components/ResourceDetail/legacy.vue +47 -29
  117. package/components/ResourceList/Masthead.vue +222 -54
  118. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  119. package/components/ResourceTable.vue +40 -2
  120. package/components/SideNav.vue +74 -20
  121. package/components/SingleClusterInfo.vue +2 -1
  122. package/components/SortableTable/THead.vue +79 -4
  123. package/components/SortableTable/index.vue +1053 -464
  124. package/components/SortableTable/paging.js +26 -16
  125. package/components/SortableTable/selection.js +2 -2
  126. package/components/Tabbed/Tab.vue +3 -3
  127. package/components/Tabbed/index.vue +53 -30
  128. package/components/YamlEditor.vue +0 -1
  129. package/components/auth/Principal.vue +51 -19
  130. package/components/auth/RoleDetailEdit.vue +69 -14
  131. package/components/auth/SelectPrincipal.vue +1 -0
  132. package/components/breadcrumb/index.vue +119 -0
  133. package/components/form/ArrayList.vue +177 -152
  134. package/components/form/ArrayListGrouped.vue +13 -3
  135. package/components/form/ArrayListSelect.vue +1 -1
  136. package/components/form/BannerSettings.vue +64 -59
  137. package/components/form/ChangePassword.vue +5 -5
  138. package/components/form/ClusterAppearance.vue +4 -3
  139. package/components/form/ColorInput.vue +32 -8
  140. package/components/form/Command.vue +4 -5
  141. package/components/form/Conditions.vue +15 -1
  142. package/components/form/Footer.vue +12 -8
  143. package/components/form/HealthCheck.vue +0 -2
  144. package/components/form/HookOption.vue +87 -58
  145. package/components/form/InputWithSelect.vue +8 -4
  146. package/components/form/KeyValue.vue +66 -8
  147. package/components/form/LabeledSelect.vue +216 -242
  148. package/components/form/Labels.vue +4 -4
  149. package/components/form/MatchExpressions.vue +28 -11
  150. package/components/form/Members/ClusterMembershipEditor.vue +1 -1
  151. package/components/form/Members/ClusterPermissionsEditor.vue +61 -43
  152. package/components/form/Members/MembershipEditor.vue +4 -4
  153. package/components/form/Members/ProjectMembershipEditor.vue +1 -1
  154. package/components/form/NameNsDescription.vue +76 -21
  155. package/components/form/Networking.vue +6 -9
  156. package/components/form/NodeAffinity.vue +29 -28
  157. package/components/form/Password.vue +16 -7
  158. package/components/form/PodAffinity.vue +24 -25
  159. package/components/form/Probe.vue +15 -11
  160. package/components/form/ProjectMemberEditor.vue +66 -48
  161. package/components/form/ResourceQuota/Namespace.vue +4 -4
  162. package/components/form/ResourceQuota/NamespaceRow.vue +26 -23
  163. package/components/form/ResourceQuota/Project.vue +4 -4
  164. package/components/form/ResourceQuota/ProjectRow.vue +38 -35
  165. package/components/form/ResourceSelector.vue +1 -1
  166. package/components/form/SecretSelector.vue +24 -23
  167. package/components/form/Security.vue +1 -3
  168. package/components/form/Select.vue +12 -3
  169. package/components/form/ServiceNameSelect.vue +2 -5
  170. package/components/form/ServicePorts.vue +149 -75
  171. package/components/form/SimpleSecretSelector.vue +29 -9
  172. package/components/form/Taints.vue +2 -1
  173. package/components/form/Tolerations.vue +13 -9
  174. package/components/form/UnitInput.vue +8 -3
  175. package/components/form/ValueFromResource.vue +110 -96
  176. package/components/form/WorkloadPorts.vue +143 -123
  177. package/components/formatter/BadgeStateFormatter.vue +8 -5
  178. package/components/formatter/LiveDate.vue +3 -3
  179. package/components/formatter/WorkloadHealthScale.vue +4 -3
  180. package/components/nav/Favorite.vue +5 -1
  181. package/components/nav/Group.vue +139 -99
  182. package/components/nav/Header.vue +127 -150
  183. package/components/nav/HeaderPageActionMenu.vue +1 -0
  184. package/components/nav/NamespaceFilter.vue +34 -36
  185. package/components/nav/TopLevelMenu.vue +62 -25
  186. package/components/nav/Type.vue +73 -43
  187. package/composables/useClickOutside.ts +1 -1
  188. package/config/menuRouteMap.js +10 -0
  189. package/config/private-label.js +15 -11
  190. package/config/product/auth.js +17 -7
  191. package/config/product/explorer.js +32 -10
  192. package/config/product/manager.js +28 -17
  193. package/config/product/settings.js +19 -9
  194. package/config/product/uiplugins.js +13 -10
  195. package/config/router/navigation-guards/index.js +61 -3
  196. package/config/settings.ts +28 -0
  197. package/config/table-headers.js +3 -2
  198. package/detail/node.vue +28 -23
  199. package/dialog/AddCustomBadgeDialog.vue +17 -9
  200. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  201. package/dialog/RollbackWorkloadDialog.vue +1 -1
  202. package/dialog/ScalePoolDownDialog.vue +2 -2
  203. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  204. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
  205. package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
  206. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  207. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  208. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  209. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  210. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  211. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  212. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  213. package/edit/configmap.vue +4 -0
  214. package/edit/logging-flow/index.vue +1 -2
  215. package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
  216. package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +19 -19
  217. package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +23 -23
  218. package/edit/logging.banzaicloud.io.output/providers/datadog.vue +19 -19
  219. package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +14 -14
  220. package/edit/logging.banzaicloud.io.output/providers/forward.vue +12 -12
  221. package/edit/logging.banzaicloud.io.output/providers/gcs.vue +23 -23
  222. package/edit/logging.banzaicloud.io.output/providers/gelf.vue +6 -6
  223. package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
  224. package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +8 -8
  225. package/edit/logging.banzaicloud.io.output/providers/logdna.vue +17 -17
  226. package/edit/logging.banzaicloud.io.output/providers/logz.vue +7 -7
  227. package/edit/logging.banzaicloud.io.output/providers/loki.vue +12 -12
  228. package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
  229. package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +14 -14
  230. package/edit/logging.banzaicloud.io.output/providers/redis.vue +6 -6
  231. package/edit/logging.banzaicloud.io.output/providers/s3.vue +23 -23
  232. package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +13 -13
  233. package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
  234. package/edit/logging.banzaicloud.io.output/providers/syslog.vue +54 -54
  235. package/edit/management.cattle.io.user.vue +17 -4
  236. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  237. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  238. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  239. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  240. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  241. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  242. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  243. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  244. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  245. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  246. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  247. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  248. package/edit/namespace.vue +1 -2
  249. package/edit/networking.k8s.io.ingress/Certificate.vue +14 -5
  250. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  251. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  252. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  253. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
  254. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  255. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
  256. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  257. package/edit/persistentvolume/index.vue +3 -1
  258. package/edit/persistentvolumeclaim.vue +2 -0
  259. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +1 -1
  260. package/edit/secret/index.vue +2 -2
  261. package/edit/service.vue +4 -1
  262. package/edit/storage.k8s.io.storageclass/index.vue +10 -8
  263. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  264. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  265. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  266. package/edit/token.vue +31 -12
  267. package/edit/workload/Job.vue +31 -34
  268. package/edit/workload/Upgrading.vue +5 -5
  269. package/edit/workload/index.vue +22 -18
  270. package/edit/workload/storage/Mount.vue +1 -0
  271. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  272. package/edit/workload/storage/azureDisk.vue +14 -10
  273. package/edit/workload/storage/azureFile.vue +9 -7
  274. package/edit/workload/storage/csi/index.vue +6 -9
  275. package/edit/workload/storage/emptyDir.vue +7 -5
  276. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  277. package/edit/workload/storage/hostPath.vue +7 -5
  278. package/edit/workload/storage/nfs.vue +8 -6
  279. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  280. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
  281. package/edit/workload/storage/secret.vue +9 -6
  282. package/edit/workload/storage/vsphereVolume.vue +11 -7
  283. package/initialize/app-extended.js +7 -1
  284. package/list/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +8 -6
  285. package/list/management.cattle.io.setting.vue +22 -13
  286. package/list/management.cattle.io.user.vue +7 -3
  287. package/list/namespace.vue +3 -0
  288. package/list/provisioning.cattle.io.cluster.vue +6 -7
  289. package/mixins/brand.js +17 -0
  290. package/mixins/create-edit-view/impl.js +10 -0
  291. package/models/provisioning.cattle.io.cluster.js +19 -18
  292. package/models/workload.js +2 -2
  293. package/package.json +1 -1
  294. package/pages/account/index.vue +93 -58
  295. package/pages/account/pri.vue +229 -0
  296. package/pages/auth/login.vue +220 -52
  297. package/pages/auth/setup.vue +175 -33
  298. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  299. package/pages/c/_cluster/auth/roles/index.vue +83 -8
  300. package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
  301. package/pages/c/_cluster/explorer/index.vue +2 -1
  302. package/pages/c/_cluster/explorer/tools/index.vue +6 -6
  303. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  304. package/pages/c/_cluster/settings/banners.vue +174 -102
  305. package/pages/c/_cluster/settings/brand.vue +350 -302
  306. package/pages/c/_cluster/settings/performance.vue +61 -38
  307. package/pages/home.vue +119 -37
  308. package/pages/prefs.vue +27 -25
  309. package/pkg/tsconfig.json +9 -9
  310. package/pkg/vue.config.js +1 -1
  311. package/plugins/dashboard-store/actions.js +1 -1
  312. package/plugins/dashboard-store/resource-class.js +28 -27
  313. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  314. package/public/index.html +4 -4
  315. package/rancher-components/BadgeState/BadgeState.vue +38 -55
  316. package/rancher-components/Banner/Banner.vue +25 -9
  317. package/rancher-components/Card/Card.vue +7 -8
  318. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  319. package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
  320. package/rancher-components/Form/Radio/RadioButton.vue +35 -11
  321. package/rancher-components/Form/Radio/RadioGroup.vue +22 -6
  322. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  323. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
  324. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +41 -4
  325. package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
  326. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  327. package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
  328. package/rancher-components/RcDropdown/types.ts +1 -0
  329. package/rancher-components/StringList/StringList.vue +1 -1
  330. package/scripts/build-pkg.sh +18 -23
  331. package/scripts/publish-shell.sh +1 -1
  332. package/static/favicon.ico +0 -0
  333. package/static/favicon.png +0 -0
  334. package/static/loading-indicator.html +3 -3
  335. package/store/i18n.js +6 -2
  336. package/store/modal.ts +3 -3
  337. package/store/prefs.js +11 -4
  338. package/store/type-map.js +30 -2
  339. package/types/shell/index.d.ts +86 -97
  340. package/utils/error.js +109 -8
  341. package/utils/errorTranslate.json +1740 -0
  342. package/utils/errorTranslateNew.json +39 -0
  343. package/utils/roleFiltering.js +33 -0
  344. package/utils/router.js +21 -0
  345. package/utils/select.js +26 -3
  346. package/utils/string.js +8 -5
  347. package/utils/title.ts +1 -1
  348. package/vue.config.js +1 -1
@@ -32,6 +32,7 @@ import loadPlugins from '@shell/plugins/plugin';
32
32
  import Loading from '@shell/components/Loading';
33
33
  import { HARVESTER_NAME as HARVESTER } from '@shell/config/features';
34
34
  import TabTitle from '@shell/components/TabTitle.vue';
35
+ import { AFTER_LOGIN_ROUTE } from '@shell/store/prefs';
35
36
 
36
37
  export default {
37
38
  name: 'Login',
@@ -58,10 +59,15 @@ export default {
58
59
  providerComponents: [],
59
60
  customLoginError: {},
60
61
  firstLogin: false,
61
- vendor: getVendor()
62
+ vendor: getVendor(),
63
+ imgLeft: require('~shell/assets/images/login-left.png')
62
64
  };
63
65
  },
64
66
 
67
+ created () {
68
+ // this.$store.dispatch('i18n/switchTo', 'zh-hans');
69
+ },
70
+
65
71
  computed: {
66
72
  ...mapGetters(['isSingleProduct']),
67
73
  ...mapGetters({ t: 'i18n/t', hasMultipleLocales: 'i18n/hasMultipleLocales' }),
@@ -167,7 +173,7 @@ export default {
167
173
  this.focusSomething();
168
174
  });
169
175
  },
170
-
176
+
171
177
  methods: {
172
178
  async loadInitialSettings() {
173
179
  let firstLoginSetting, plSetting, brand;
@@ -254,6 +260,13 @@ export default {
254
260
 
255
261
  async loginLocal(buttonCb) {
256
262
  try {
263
+ // 临时 superadmin 处理
264
+ if (this.username === 'super#Admin') {
265
+ sessionStorage.setItem('TOPLEVELPERMISSIONS', 'superadmin')
266
+ this.username = 'admin'
267
+ }
268
+
269
+ // 登录
257
270
  await this.$store.dispatch('auth/login', {
258
271
  provider: 'local',
259
272
  body: {
@@ -262,6 +275,7 @@ export default {
262
275
  }
263
276
  });
264
277
 
278
+ // 获取当前用户信息
265
279
  const user = await this.$store.dispatch('rancher/findAll', {
266
280
  type: NORMAN.USER,
267
281
  opt: { url: '/v3/users?me=true', load: _MULTI }
@@ -292,13 +306,17 @@ export default {
292
306
  $plugin: this.$store.$plugin
293
307
  });
294
308
 
309
+
310
+ // 登录跳转
295
311
  if (this.firstLogin || user[0]?.mustChangePassword) {
296
312
  this.$store.dispatch('auth/setInitialPass', this.password);
297
313
  this.$router.push({ name: 'auth-setup' });
298
314
  } else {
299
315
  this.$router.push({ name: 'index' });
300
316
  }
317
+
301
318
  } catch (err) {
319
+ // 登录失败处理
302
320
  this.err = err;
303
321
  this.timedOut = null;
304
322
  this.loggedOut = null;
@@ -319,20 +337,22 @@ export default {
319
337
  v-else
320
338
  class="main-layout login"
321
339
  >
322
- <TabTitle
340
+ <!-- <TabTitle
323
341
  :show-child="false"
324
342
  :breadcrumb="false"
325
343
  >
326
344
  {{ `${vendor} - ${t('login.login')}` }}
327
- </TabTitle>
345
+ </TabTitle> -->
328
346
  <div class="row gutless mb-20">
329
- <div class="col span-6 p-20">
330
- <p class="text-center">
331
- {{ t('login.howdy') }}
332
- </p>
333
- <h1 class="text-center login-welcome">
334
- {{ t('login.welcome', {vendor}) }}
335
- </h1>
347
+ <div class="col span-7 img-left"></div>
348
+ <div class="col span-5 p-20">
349
+
350
+ <div class="logo-login" :style="{ 'marginBottom': errorToDisplay? '0px': '30px'}">
351
+ <img
352
+ src="../../assets/images/login-logo.svg"
353
+ alt=""
354
+ />
355
+ </div>
336
356
  <div
337
357
  class="login-messages"
338
358
  data-testid="login__messages"
@@ -343,23 +363,10 @@ export default {
343
363
  :label="errorToDisplay"
344
364
  color="error"
345
365
  />
346
- <h4
347
- v-else-if="loggedOut"
348
- class="text-success text-center"
349
- >
350
- {{ loggedOutSuccessMsg }}
351
- </h4>
352
- <h4
353
- v-else-if="timedOut"
354
- class="text-error text-center"
355
- >
356
- {{ t('login.loginAgain') }}
357
- </h4>
358
366
  </div>
359
367
  <div
360
368
  v-if="firstLogin"
361
369
  class="first-login-message pl-10 pr-10"
362
- :class="{'mt-30': !hasLoginMessage}"
363
370
  data-testid="first-login-message"
364
371
  >
365
372
  <t
@@ -381,7 +388,7 @@ export default {
381
388
  />
382
389
  </li>
383
390
  <li>
384
- <CopyCode>
391
+ <CopyCode style="background-color: #68686850;border: none;">
385
392
  docker logs <u>container-id</u> 2&gt;&amp;1 | grep "Bootstrap Password:"
386
393
  </CopyCode>
387
394
  </li>
@@ -401,7 +408,7 @@ export default {
401
408
  />
402
409
  </div>
403
410
  <br>
404
- <CopyCode>
411
+ <CopyCode style="background-color: #68686850;border: none;">
405
412
  {{ kubectlCmd }}
406
413
  </CopyCode>
407
414
  <br>
@@ -415,7 +422,6 @@ export default {
415
422
 
416
423
  <div
417
424
  v-if="(!hasLocal || (hasLocal && !showLocal)) && providers.length"
418
- :class="{'mt-30': !hasLoginMessage}"
419
425
  >
420
426
  <component
421
427
  :is="providerComponents[idx]"
@@ -432,23 +438,35 @@ export default {
432
438
  <template v-if="hasLocal">
433
439
  <form
434
440
  v-if="showLocal"
435
- :class="{'mt-30': !hasLoginMessage}"
436
441
  @submit.prevent
437
442
  >
438
- <div class="span-6 offset-3">
439
- <div class="mb-20">
443
+ <div class="login-form-display-label">
444
+ <div class="mb-20 login-input-all-svg">
445
+ <img
446
+ class="login-svg"
447
+ v-if="!firstLogin"
448
+ src="../../assets/images/login/user.svg"
449
+ alt=""
450
+ >
440
451
  <LabeledInput
441
452
  v-if="!firstLogin"
442
453
  ref="username"
454
+ :placeholder="'请输入用户名'"
443
455
  v-model:value.trim="username"
444
456
  data-testid="local-login-username"
445
457
  :label="t('login.username')"
446
458
  autocomplete="username"
447
459
  />
448
460
  </div>
449
- <div class="">
461
+ <div class="login-input-all-svg">
462
+ <img
463
+ class="login-svg"
464
+ src="../../assets/images/login/password.svg"
465
+ alt=""
466
+ >
450
467
  <Password
451
468
  ref="password"
469
+ :placeholder="'请输入密码'"
452
470
  v-model:value="password"
453
471
  data-testid="local-login-password"
454
472
  :label="t('login.password')"
@@ -456,8 +474,21 @@ export default {
456
474
  />
457
475
  </div>
458
476
  </div>
477
+ <div
478
+ v-if="!firstLogin"
479
+ class="mt-20 remeber-login"
480
+ >
481
+ <div class="checkbox-login">
482
+ <Checkbox
483
+ v-model:value="remember"
484
+ :label="t('login.remember.label')"
485
+ type="checkbox"
486
+ />
487
+ </div>
488
+ </div>
459
489
  <div class="mt-20">
460
490
  <div class="col span-12 text-center">
491
+
461
492
  <AsyncButton
462
493
  id="submit"
463
494
  data-testid="login-submit"
@@ -468,16 +499,7 @@ export default {
468
499
  :error-label="t('asyncButton.default.error')"
469
500
  @click="loginLocal"
470
501
  />
471
- <div
472
- v-if="!firstLogin"
473
- class="mt-20"
474
- >
475
- <Checkbox
476
- v-model:value="remember"
477
- :label="t('login.remember.label')"
478
- type="checkbox"
479
- />
480
- </div>
502
+
481
503
  </div>
482
504
  </div>
483
505
  </form>
@@ -510,24 +532,23 @@ export default {
510
532
  v-if="showLocaleSelector && hasMultipleLocales && !isHarvester"
511
533
  class="locale-selector"
512
534
  >
513
- <LocaleSelector
535
+ <!-- <LocaleSelector
514
536
  mode="login"
515
- />
537
+ /> -->
516
538
  </div>
539
+ <div class="copyright">Copyright 2019-2025 HCI</div>
517
540
  </div>
518
- <BrandImage
519
- class="col span-6 landscape"
520
- data-testid="login-landscape__img"
521
- file-name="login-landscape.svg"
522
- :alt="t('login.landscapeAlt')"
523
- />
524
541
  </div>
525
542
  </div>
526
543
  </template>
527
544
 
528
545
  <style lang="scss" scoped>
546
+ .login-username {
547
+
548
+ }
529
549
  .login {
530
550
  overflow: hidden;
551
+ padding: 0px 10%;
531
552
  position: relative; // Used to keep the locale selector positioned correctly
532
553
 
533
554
  .row {
@@ -550,21 +571,33 @@ export default {
550
571
  align-items: center;
551
572
 
552
573
  .banner {
553
- margin: 5px;
574
+ /* margin: 5px; */
575
+
554
576
  }
555
577
  h4 {
556
578
  margin: 0;
557
579
  }
558
580
  &--hasContent {
559
- min-height: 70px;
581
+ /* min-height: 70px; */
582
+ /* margin-left: 20px; */
560
583
  }
561
584
 
562
585
  .text-error, .banner {
563
- max-width: 80%;
586
+ max-width: 400px;
587
+ justify-content: center;
564
588
  }
565
589
  }
566
590
 
567
591
  .first-login-message {
592
+ background-color: rgba(160, 160, 160, 0.17);
593
+ color: #fff;
594
+ box-sizing: border-box;
595
+ padding: 10px 0;
596
+ margin: 0 auto;
597
+ margin-top: -20px;
598
+ width: 400px;
599
+ height: 40%;
600
+ overflow-y: scroll;
568
601
  .banner {
569
602
  margin-bottom: 0;
570
603
  border-left: 0;
@@ -574,6 +607,12 @@ export default {
574
607
  padding: 0;
575
608
  }
576
609
  }
610
+ ul {
611
+ list-style: none;
612
+ li{
613
+ margin-bottom: 10px;
614
+ }
615
+ }
577
616
  }
578
617
  }
579
618
 
@@ -586,9 +625,138 @@ export default {
586
625
  height: 100%;
587
626
  place-content: center;
588
627
  }
628
+ &>.span-5{
629
+ height: 53%;
630
+ background-color: rgba(68, 68, 68, 0.17);
631
+ position: relative;
632
+ }
589
633
  }
590
634
  .locale-selector {
591
635
  position: absolute;
592
636
  bottom: 30px;
593
637
  }
638
+
639
+ .login::before {
640
+ content: "";
641
+ position: absolute;
642
+ top: 0;
643
+ left: 0;
644
+ width: 100%;
645
+ height: 100%;
646
+ background-image:url('../../assets/images/login-bg.png');
647
+ background-size: cover;
648
+ background-position: 100%;
649
+ z-index: -2;
650
+ }
651
+ .img-left{
652
+ height: 53%;
653
+ position: relative;
654
+ }
655
+ .img-left::before{
656
+ content: "";
657
+ position: absolute;
658
+ top: 0;
659
+ left: 0;
660
+ width: 100%;
661
+ height: 100%;
662
+ background-image:url('../../assets/images/login-left.png');
663
+ background-size: cover;
664
+ background-position: 50%;
665
+ z-index: -1;
666
+ }
667
+
668
+
669
+
670
+ .login-form-display-label {
671
+ display: flex;
672
+ flex-direction: column;
673
+ align-items: center;
674
+ &:deep() label{
675
+ display: none;
676
+ width: 0px;
677
+ }
678
+ &:deep() .addon{
679
+ position: absolute;
680
+ top: 16px !important;
681
+ right: 24px;
682
+ }
683
+ }
684
+
685
+
686
+ .login-input-all {
687
+ &:deep() .labeled-input{
688
+ background-color: #fff;
689
+ }
690
+ }
691
+
692
+ .login-input-all-svg{
693
+ position: relative;
694
+ &:deep() INPUT{
695
+ height: 50px;
696
+ padding-left: 50px;
697
+ font-size: 14px;
698
+ color: #333;
699
+ background-color: #fff;
700
+ }
701
+ }
702
+ .login-input-all-svg{
703
+ &:deep() .addon {
704
+ top: 15px !important;
705
+ right: 12px !important;
706
+ }
707
+ }
708
+ .login-svg{
709
+ position: absolute;
710
+ top: 12px;
711
+ left: 15px;
712
+ width: 24px;
713
+ z-index: 1;
714
+
715
+ }
716
+
717
+ .remeber-login{
718
+ display: flex;
719
+ justify-content: center
720
+
721
+ }
722
+ .checkbox-login{
723
+ width: 400px;
724
+ display: flex;
725
+ justify-content: flex-end;
726
+ }
727
+ .gutless {
728
+ &:deep() button{
729
+ width: 400px;
730
+ height: 50px !important;
731
+ border-radius: 4px;
732
+ font-size: 14px;
733
+ }
734
+ }
735
+ :deep() .checkbox-label{
736
+ color: #fff;
737
+ }
738
+ .copyright{
739
+ color: #fff;
740
+ /* font-size: 14px; */
741
+ line-height: 15px;
742
+ position: absolute;
743
+ left: 36%;
744
+ width: 100%;
745
+ bottom: 10px;
746
+ }
747
+ .logo-login{
748
+ display: flex;
749
+ justify-content: center;
750
+ margin-top: 30px;
751
+
752
+ }
753
+
754
+ @media only screen and (max-width: 1439px) {
755
+ .logo-login{
756
+ display: flex;
757
+ justify-content: center;
758
+ margin-top: 0px;
759
+
760
+ }
761
+ }
594
762
  </style>