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

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 (353) 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 +44 -0
  43. package/assets/images/logo.png +0 -0
  44. package/assets/images/logo.svg +47 -0
  45. package/assets/images/pl/dark/logo.png +0 -0
  46. package/assets/images/pl/half-logo.svg +2 -23
  47. package/assets/images/pl/harvester.png +0 -0
  48. package/assets/images/pl/logo.png +0 -0
  49. package/assets/images/promp-yellow.svg +5 -0
  50. package/assets/images/user.png +0 -0
  51. package/assets/styles/all.scss +83 -0
  52. package/assets/styles/app.scss +5 -0
  53. package/assets/styles/base/_basic.scss +2 -2
  54. package/assets/styles/base/_helpers.scss +1 -1
  55. package/assets/styles/base/_mixins.scss +1 -1
  56. package/assets/styles/base/_typography.scss +2 -1
  57. package/assets/styles/base/_variables.scss +14 -7
  58. package/assets/styles/fonts/_icons.scss +3 -2
  59. package/assets/styles/global/_button.scss +44 -26
  60. package/assets/styles/global/_columns.scss +3 -1
  61. package/assets/styles/global/_form.scss +46 -13
  62. package/assets/styles/global/_labeled-input.scss +54 -26
  63. package/assets/styles/global/_layout.scss +8 -3
  64. package/assets/styles/global/_select.scss +25 -17
  65. package/assets/styles/global/_table.scss +7 -1
  66. package/assets/styles/global/_tooltip.scss +60 -8
  67. package/assets/styles/themes/_dark.scss +3 -0
  68. package/assets/styles/themes/_light.scss +69 -46
  69. package/assets/styles/vendor/vue-select.scss +24 -10
  70. package/assets/translations/en-us.yaml +92 -4
  71. package/assets/translations/zh-hans.yaml +668 -206
  72. package/components/ActionDropdown.vue +2 -1
  73. package/components/ActionMenu.vue +2 -2
  74. package/components/ActionMenuShell.vue +2 -0
  75. package/components/AppModal.vue +46 -5
  76. package/components/BrandImage.vue +1 -0
  77. package/components/ButtonDropdown.vue +28 -4
  78. package/components/ButtonMultiAction.vue +1 -0
  79. package/components/ClusterIconMenu.vue +2 -2
  80. package/components/CodeMirror.vue +26 -10
  81. package/components/ConsumptionGauge.vue +24 -5
  82. package/components/ContainerResourceLimit.vue +2 -2
  83. package/components/CopyToClipboard.vue +15 -0
  84. package/components/CruResource.vue +12 -10
  85. package/components/CruResourceFooter.vue +2 -2
  86. package/components/DashboardOptions.vue +29 -17
  87. package/components/DotState.vue +84 -0
  88. package/components/Drawer/Chrome.vue +2 -2
  89. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +30 -27
  90. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  91. package/components/Drawer/ResourceDetailDrawer/index.vue +5 -4
  92. package/components/ExplorerMembers.vue +28 -4
  93. package/components/ExplorerProjectsNamespaces.vue +19 -5
  94. package/components/GlobalRoleBindings.vue +23 -4
  95. package/components/GrafanaDashboard.vue +4 -4
  96. package/components/GrowlManager.vue +3 -1
  97. package/components/HardwareResourceGauge.vue +39 -3
  98. package/components/IndentedPanel.vue +4 -10
  99. package/components/InfoBox.vue +3 -3
  100. package/components/InputOrDisplay.vue +28 -2
  101. package/components/LabelValue.vue +20 -1
  102. package/components/ModalWithCard.vue +12 -3
  103. package/components/PodSecurityAdmission.vue +2 -2
  104. package/components/PromptModal.vue +1 -1
  105. package/components/PromptRemove.vue +53 -12
  106. package/components/RelatedResources.vue +3 -0
  107. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  108. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  109. package/components/Resource/Detail/Metadata/index.vue +3 -1
  110. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  111. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  112. package/components/Resource/Detail/TitleBar/composables.ts +16 -1
  113. package/components/Resource/Detail/TitleBar/index.vue +125 -27
  114. package/components/ResourceDetail/Masthead/index.vue +1 -1
  115. package/components/ResourceDetail/Masthead/latest.vue +1 -1
  116. package/components/ResourceDetail/Masthead/legacy.vue +183 -39
  117. package/components/ResourceDetail/legacy.vue +47 -29
  118. package/components/ResourceList/Masthead.vue +222 -54
  119. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  120. package/components/ResourceTable.vue +40 -2
  121. package/components/SideNav.vue +74 -20
  122. package/components/SingleClusterInfo.vue +2 -1
  123. package/components/SortableTable/THead.vue +79 -4
  124. package/components/SortableTable/index.vue +1053 -464
  125. package/components/SortableTable/paging.js +26 -16
  126. package/components/SortableTable/selection.js +2 -2
  127. package/components/Tabbed/Tab.vue +3 -3
  128. package/components/Tabbed/index.vue +53 -30
  129. package/components/YamlEditor.vue +0 -1
  130. package/components/auth/Principal.vue +51 -19
  131. package/components/auth/RoleDetailEdit.vue +69 -14
  132. package/components/auth/SelectPrincipal.vue +1 -0
  133. package/components/breadcrumb/index.vue +119 -0
  134. package/components/form/ArrayList.vue +177 -152
  135. package/components/form/ArrayListGrouped.vue +13 -3
  136. package/components/form/ArrayListSelect.vue +1 -1
  137. package/components/form/BannerSettings.vue +64 -59
  138. package/components/form/ChangePassword.vue +5 -5
  139. package/components/form/ClusterAppearance.vue +4 -3
  140. package/components/form/ColorInput.vue +32 -8
  141. package/components/form/Command.vue +4 -5
  142. package/components/form/Conditions.vue +15 -1
  143. package/components/form/Footer.vue +12 -8
  144. package/components/form/HealthCheck.vue +0 -2
  145. package/components/form/HookOption.vue +87 -58
  146. package/components/form/InputWithSelect.vue +8 -4
  147. package/components/form/KeyValue.vue +66 -8
  148. package/components/form/LabeledSelect.vue +216 -242
  149. package/components/form/Labels.vue +4 -4
  150. package/components/form/MatchExpressions.vue +28 -11
  151. package/components/form/Members/ClusterMembershipEditor.vue +1 -1
  152. package/components/form/Members/ClusterPermissionsEditor.vue +61 -43
  153. package/components/form/Members/MembershipEditor.vue +4 -4
  154. package/components/form/Members/ProjectMembershipEditor.vue +1 -1
  155. package/components/form/NameNsDescription.vue +62 -22
  156. package/components/form/Networking.vue +6 -9
  157. package/components/form/NodeAffinity.vue +29 -28
  158. package/components/form/Password.vue +16 -7
  159. package/components/form/PodAffinity.vue +24 -25
  160. package/components/form/Probe.vue +15 -11
  161. package/components/form/ProjectMemberEditor.vue +66 -48
  162. package/components/form/ResourceQuota/Namespace.vue +4 -4
  163. package/components/form/ResourceQuota/NamespaceRow.vue +26 -23
  164. package/components/form/ResourceQuota/Project.vue +4 -4
  165. package/components/form/ResourceQuota/ProjectRow.vue +38 -35
  166. package/components/form/ResourceSelector.vue +1 -1
  167. package/components/form/SecretSelector.vue +24 -23
  168. package/components/form/Security.vue +1 -3
  169. package/components/form/Select.vue +12 -3
  170. package/components/form/ServiceNameSelect.vue +2 -5
  171. package/components/form/ServicePorts.vue +149 -75
  172. package/components/form/SimpleSecretSelector.vue +29 -9
  173. package/components/form/Taints.vue +2 -1
  174. package/components/form/Tolerations.vue +13 -9
  175. package/components/form/UnitInput.vue +8 -3
  176. package/components/form/ValueFromResource.vue +110 -96
  177. package/components/form/WorkloadPorts.vue +143 -123
  178. package/components/formatter/BadgeStateFormatter.vue +8 -5
  179. package/components/formatter/LiveDate.vue +3 -3
  180. package/components/formatter/WorkloadHealthScale.vue +4 -3
  181. package/components/nav/Favorite.vue +5 -1
  182. package/components/nav/Group.vue +139 -99
  183. package/components/nav/Header.vue +138 -164
  184. package/components/nav/HeaderPageActionMenu.vue +1 -0
  185. package/components/nav/NamespaceFilter.vue +34 -36
  186. package/components/nav/TopLevelMenu.vue +62 -25
  187. package/components/nav/Type.vue +73 -43
  188. package/composables/useClickOutside.ts +1 -1
  189. package/config/menuRouteMap.js +10 -0
  190. package/config/private-label.js +14 -11
  191. package/config/product/auth.js +17 -7
  192. package/config/product/explorer.js +32 -10
  193. package/config/product/manager.js +28 -17
  194. package/config/product/settings.js +19 -9
  195. package/config/product/uiplugins.js +13 -10
  196. package/config/router/navigation-guards/index.js +61 -3
  197. package/config/settings.ts +28 -0
  198. package/config/table-headers.js +3 -2
  199. package/detail/node.vue +28 -23
  200. package/dialog/AddCustomBadgeDialog.vue +17 -9
  201. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  202. package/dialog/RollbackWorkloadDialog.vue +1 -1
  203. package/dialog/ScalePoolDownDialog.vue +2 -2
  204. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  205. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
  206. package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
  207. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  208. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  209. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  210. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  211. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  212. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  213. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  214. package/edit/configmap.vue +4 -0
  215. package/edit/logging-flow/index.vue +1 -2
  216. package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
  217. package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +19 -19
  218. package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +23 -23
  219. package/edit/logging.banzaicloud.io.output/providers/datadog.vue +19 -19
  220. package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +14 -14
  221. package/edit/logging.banzaicloud.io.output/providers/forward.vue +12 -12
  222. package/edit/logging.banzaicloud.io.output/providers/gcs.vue +23 -23
  223. package/edit/logging.banzaicloud.io.output/providers/gelf.vue +6 -6
  224. package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
  225. package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +8 -8
  226. package/edit/logging.banzaicloud.io.output/providers/logdna.vue +17 -17
  227. package/edit/logging.banzaicloud.io.output/providers/logz.vue +7 -7
  228. package/edit/logging.banzaicloud.io.output/providers/loki.vue +12 -12
  229. package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
  230. package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +14 -14
  231. package/edit/logging.banzaicloud.io.output/providers/redis.vue +6 -6
  232. package/edit/logging.banzaicloud.io.output/providers/s3.vue +23 -23
  233. package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +13 -13
  234. package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
  235. package/edit/logging.banzaicloud.io.output/providers/syslog.vue +54 -54
  236. package/edit/management.cattle.io.user.vue +17 -4
  237. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  238. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +50 -26
  239. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  240. package/edit/monitoring.coreos.com.alertmanagerconfig/types/dingding.vue +32 -0
  241. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  242. package/edit/monitoring.coreos.com.alertmanagerconfig/types/message.vue +52 -0
  243. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  244. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  245. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  246. package/edit/monitoring.coreos.com.alertmanagerconfig/types/snmp.vue +45 -0
  247. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  248. package/edit/monitoring.coreos.com.alertmanagerconfig/types/work.vue +31 -0
  249. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  250. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  251. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  252. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  253. package/edit/namespace.vue +1 -2
  254. package/edit/networking.k8s.io.ingress/Certificate.vue +14 -5
  255. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  256. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  257. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  258. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
  259. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  260. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
  261. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  262. package/edit/persistentvolume/index.vue +3 -1
  263. package/edit/persistentvolumeclaim.vue +2 -0
  264. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +1 -1
  265. package/edit/secret/index.vue +2 -2
  266. package/edit/service.vue +4 -1
  267. package/edit/storage.k8s.io.storageclass/index.vue +10 -8
  268. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  269. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  270. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  271. package/edit/token.vue +31 -12
  272. package/edit/workload/Job.vue +31 -34
  273. package/edit/workload/Upgrading.vue +5 -5
  274. package/edit/workload/index.vue +22 -18
  275. package/edit/workload/storage/Mount.vue +1 -0
  276. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  277. package/edit/workload/storage/azureDisk.vue +14 -10
  278. package/edit/workload/storage/azureFile.vue +9 -7
  279. package/edit/workload/storage/csi/index.vue +6 -9
  280. package/edit/workload/storage/emptyDir.vue +7 -5
  281. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  282. package/edit/workload/storage/hostPath.vue +7 -5
  283. package/edit/workload/storage/nfs.vue +8 -6
  284. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  285. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
  286. package/edit/workload/storage/secret.vue +9 -6
  287. package/edit/workload/storage/vsphereVolume.vue +11 -7
  288. package/initialize/app-extended.js +7 -1
  289. package/list/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +8 -6
  290. package/list/management.cattle.io.setting.vue +22 -13
  291. package/list/management.cattle.io.user.vue +7 -3
  292. package/list/namespace.vue +3 -0
  293. package/list/provisioning.cattle.io.cluster.vue +6 -7
  294. package/mixins/brand.js +17 -0
  295. package/mixins/create-edit-view/impl.js +10 -0
  296. package/models/provisioning.cattle.io.cluster.js +19 -18
  297. package/models/workload.js +2 -2
  298. package/package.json +1 -1
  299. package/pages/account/index.vue +93 -58
  300. package/pages/account/pri.vue +229 -0
  301. package/pages/auth/login.vue +216 -51
  302. package/pages/auth/setup.vue +175 -33
  303. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  304. package/pages/c/_cluster/auth/roles/index.vue +83 -8
  305. package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
  306. package/pages/c/_cluster/explorer/index.vue +2 -1
  307. package/pages/c/_cluster/explorer/tools/index.vue +6 -6
  308. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  309. package/pages/c/_cluster/settings/banners.vue +174 -102
  310. package/pages/c/_cluster/settings/brand.vue +350 -302
  311. package/pages/c/_cluster/settings/performance.vue +61 -38
  312. package/pages/home.vue +119 -37
  313. package/pages/prefs.vue +27 -25
  314. package/pkg/tsconfig.json +9 -9
  315. package/pkg/vue.config.js +1 -1
  316. package/plugins/dashboard-store/actions.js +1 -1
  317. package/plugins/dashboard-store/resource-class.js +28 -27
  318. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  319. package/public/index.html +4 -4
  320. package/rancher-components/BadgeState/BadgeState.vue +38 -55
  321. package/rancher-components/Banner/Banner.vue +25 -9
  322. package/rancher-components/Card/Card.vue +7 -8
  323. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  324. package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
  325. package/rancher-components/Form/Radio/RadioButton.vue +35 -11
  326. package/rancher-components/Form/Radio/RadioGroup.vue +22 -6
  327. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  328. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
  329. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +41 -4
  330. package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
  331. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  332. package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
  333. package/rancher-components/RcDropdown/types.ts +1 -0
  334. package/rancher-components/StringList/StringList.vue +1 -1
  335. package/scripts/build-pkg.sh +18 -23
  336. package/scripts/publish-shell.sh +1 -1
  337. package/static/favicon.ico +0 -0
  338. package/static/favicon.png +0 -0
  339. package/static/loading-indicator.html +3 -3
  340. package/store/i18n.js +6 -2
  341. package/store/modal.ts +3 -3
  342. package/store/prefs.js +11 -4
  343. package/store/type-map.js +30 -2
  344. package/types/shell/index.d.ts +86 -97
  345. package/utils/error.js +109 -8
  346. package/utils/errorTranslate.json +1740 -0
  347. package/utils/errorTranslateNew.json +39 -0
  348. package/utils/roleFiltering.js +33 -0
  349. package/utils/router.js +21 -0
  350. package/utils/select.js +26 -3
  351. package/utils/string.js +8 -5
  352. package/utils/title.ts +1 -1
  353. package/vue.config.js +1 -1
@@ -21,6 +21,7 @@ import FormValidation from '@shell/mixins/form-validation';
21
21
  import isUrl from 'is-url';
22
22
  import { isLocalhost } from '@shell/utils/validators/setting';
23
23
  import Loading from '@shell/components/Loading';
24
+ import { copyTextToClipboard } from '@shell/utils/clipboard';
24
25
 
25
26
  const calcIsFirstLogin = (store) => {
26
27
  const firstLoginSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.FIRST_LOGIN);
@@ -65,7 +66,7 @@ export default {
65
66
  v3User: null,
66
67
  serverUrl: null,
67
68
  mcmEnabled: null,
68
- eula: false,
69
+ eula: true,
69
70
  principals: null,
70
71
  errors: []
71
72
  };
@@ -148,7 +149,8 @@ export default {
148
149
  this['username'] = me?.loginName || 'admin';
149
150
  this['isFirstLogin'] = isFirstLogin;
150
151
  this['mustChangePassword'] = mustChangePassword;
151
- this['current'] = current;
152
+ // this['current'] = current;
153
+ this['current'] = current || 'admin';
152
154
  this['v3User'] = v3User;
153
155
  this['serverUrl'] = serverUrl;
154
156
  this['mcmEnabled'] = mcmEnabled;
@@ -157,6 +159,9 @@ export default {
157
159
 
158
160
  computed: {
159
161
  saveEnabled() {
162
+ // if ( this.isFirstLogin) {
163
+ // return false;
164
+ // }
160
165
  if ( !this.eula && this.isFirstLogin) {
161
166
  return false;
162
167
  }
@@ -255,6 +260,14 @@ export default {
255
260
  this.$router.replace('/');
256
261
  },
257
262
 
263
+ copyPassword(val) {
264
+ copyTextToClipboard(val).then(() => {
265
+ console.log('复制成功')
266
+ }).catch(() => {
267
+ console.log('复制失败')
268
+ });
269
+ },
270
+
258
271
  onServerUrlChange(value) {
259
272
  this.serverUrl = value.trim();
260
273
  },
@@ -273,27 +286,41 @@ export default {
273
286
  @submit.prevent
274
287
  >
275
288
  <div class="row">
276
- <div class="col span-6 form-col">
277
- <div>
278
- &nbsp;
279
- </div>
289
+ <!-- <BrandImage
290
+ class="col span-6 landscape"
291
+ file-name="login-landscape.svg"
292
+ /> -->
293
+ <div class="col span-7 img-left">
294
+
295
+ </div>
296
+ <div class="col span-5 p-20">
280
297
  <div>
281
- <h1 class="text-center">
298
+ <!-- <h1 class="text-center">
282
299
  {{ t('setup.welcome', {product}) }}
283
- </h1>
300
+ </h1> -->
284
301
 
285
302
  <template v-if="mustChangePassword">
286
303
  <p
287
304
  v-clean-html="t(isFirstLogin ? 'setup.setPassword' : 'setup.newUserSetPassword', { username }, true)"
288
- class="text-center mb-20 mt-20 setup-title"
305
+ class="mb-20 mt-20 setup-title"
289
306
  />
307
+ <!-- <Password
308
+ v-if="!haveCurrent"
309
+ v-model:value.trim="current"
310
+ autocomplete="current-password"
311
+ type="password"
312
+ :label="t('setup.currentPassword')"
313
+ class="mb-20 setup-password"
314
+ :required="true"
315
+ /> -->
290
316
  <Password
291
317
  v-if="!haveCurrent"
318
+ style="display: none;"
292
319
  v-model:value.trim="current"
293
320
  autocomplete="current-password"
294
321
  type="password"
295
322
  :label="t('setup.currentPassword')"
296
- class="mb-20"
323
+ class="mb-20 setup-password"
297
324
  :required="true"
298
325
  />
299
326
 
@@ -306,13 +333,14 @@ export default {
306
333
  >
307
334
  <div class="mb-20">
308
335
  <RadioGroup
336
+ class="setupRadioGroupCls"
309
337
  v-model:value="useRandom"
310
338
  data-testid="setup-password-mode"
311
339
  name="password-mode"
312
340
  :options="passwordOptions"
313
341
  />
314
342
  </div>
315
- <div class="mb-20">
343
+ <div class="setup_radom-password mb-20">
316
344
  <LabeledInput
317
345
  v-if="useRandom"
318
346
  ref="password"
@@ -321,6 +349,7 @@ export default {
321
349
  :disabled="useRandom"
322
350
  data-testid="setup-password-random"
323
351
  label-key="setup.newPassword"
352
+ class="radom-password"
324
353
  >
325
354
  <template
326
355
  v-if="useRandom"
@@ -328,13 +357,9 @@ export default {
328
357
  >
329
358
  <div
330
359
  class="addon"
331
- style="padding: 0 0 0 12px;"
360
+ style="padding: 4px 0px 0px;"
332
361
  >
333
- <CopyToClipboard
334
- :aria-label="t('setup.copyRandom')"
335
- :text="password"
336
- class="btn-sm"
337
- />
362
+ <a @click="copyPassword(password)" href="javascript:;">复制</a>
338
363
  </div>
339
364
  </template>
340
365
  </LabeledInput>
@@ -344,17 +369,21 @@ export default {
344
369
  v-model:value.trim="password"
345
370
  :label="t('setup.newPassword')"
346
371
  data-testid="setup-password"
372
+ class="setup-password"
373
+ :required="true"
374
+ />
375
+ </div>
376
+ <div class="setup_radom-password">
377
+ <Password
378
+ v-show="!useRandom"
379
+ v-model:value.trim="confirm"
380
+ autocomplete="new-password"
381
+ data-testid="setup-password-confirm"
382
+ class="setup-password"
383
+ :label="t('setup.confirmPassword')"
347
384
  :required="true"
348
385
  />
349
386
  </div>
350
- <Password
351
- v-show="!useRandom"
352
- v-model:value.trim="confirm"
353
- autocomplete="new-password"
354
- data-testid="setup-password-confirm"
355
- :label="t('setup.confirmPassword')"
356
- :required="true"
357
- />
358
387
  </template>
359
388
 
360
389
  <template v-if="isFirstLogin">
@@ -395,7 +424,7 @@ export default {
395
424
  </div>
396
425
  </template>
397
426
 
398
- <div class="checkbox pt-10 eula">
427
+ <!-- <div class="checkbox pt-10 eula">
399
428
  <Checkbox
400
429
  id="checkbox-eula"
401
430
  v-model:value="eula"
@@ -409,7 +438,7 @@ export default {
409
438
  />
410
439
  </template>
411
440
  </Checkbox>
412
- </div>
441
+ </div> -->
413
442
  </template>
414
443
 
415
444
  <div
@@ -430,7 +459,7 @@ export default {
430
459
  <h4
431
460
  v-for="(err, i) in errors"
432
461
  :key="i"
433
- class="text-error text-center"
462
+ class="text-error "
434
463
  >
435
464
  {{ err }}
436
465
  </h4>
@@ -440,15 +469,22 @@ export default {
440
469
  &nbsp;
441
470
  </div>
442
471
  </div>
443
- <BrandImage
444
- class="col span-6 landscape"
445
- file-name="login-landscape.svg"
446
- />
472
+
447
473
  </div>
448
474
  </form>
449
475
  </template>
450
476
 
451
477
  <style lang="scss" scoped>
478
+ .setup_radom-password {
479
+ :deep(.label-input-all) LABEL {
480
+ color: #fff;
481
+ }
482
+ }
483
+ .setupRadioGroupCls {
484
+ :deep(.radio-label) {
485
+ color: #fff;
486
+ }
487
+ }
452
488
  .principal {
453
489
  display: block;
454
490
  background: var(--box-bg);
@@ -464,9 +500,23 @@ export default {
464
500
  }
465
501
  }
466
502
 
503
+ .setup::before {
504
+ content: "";
505
+ position: absolute;
506
+ top: 0;
507
+ left: 0;
508
+ width: 100%;
509
+ height: 100%;
510
+ background-image:url('../../assets/images/login-bg.png');
511
+ background-size: cover;
512
+ background-position: 100%;
513
+ z-index: -2;
514
+ }
515
+
467
516
  .setup {
468
517
  overflow: hidden;
469
-
518
+ height: 100%;
519
+ width: 100%;
470
520
  .row {
471
521
  & .checkbox {
472
522
  margin: auto
@@ -506,9 +556,12 @@ export default {
506
556
  }
507
557
 
508
558
  .setup-title {
559
+ color: #fff;
509
560
  :deep() code {
510
561
  font-size: 12px;
511
562
  padding: 0;
563
+ background-color: unset;
564
+ border: 0px;
512
565
  }
513
566
  }
514
567
 
@@ -520,4 +573,93 @@ export default {
520
573
  line-height: 20px;
521
574
  }
522
575
  }
576
+ .img-left{
577
+ height: 60%;
578
+ position: relative;
579
+ }
580
+ .img-left::before{
581
+ content: "";
582
+ position: absolute;
583
+ top: 0;
584
+ left: 0;
585
+ width: 100%;
586
+ height: 100%;
587
+ background-image:url('../../assets/images/login-left.png');
588
+ background-size: cover;
589
+ background-position: 50%;
590
+ z-index: -1;
591
+ }
592
+
593
+ .row {
594
+ display: flex;
595
+ flex-direction: column;
596
+ flex-wrap: wrap;
597
+ height: 100%;
598
+ justify-content: center;
599
+ align-items: center;
600
+ padding: 0 10%;
601
+ }
602
+ .span-5{
603
+ height: 60%;
604
+ background-color: rgba(68, 68, 68, 0.17);
605
+ position: relative;
606
+ margin-left: -10px;
607
+ width: 41.645%;
608
+ display: flex;
609
+ justify-content: center;
610
+ }
611
+
612
+ :deep() .label-input-all{
613
+ display: unset;
614
+ }
615
+ .addon{
616
+ &:deep() .role-primary{
617
+ border-radius: 0px;
618
+ }
619
+ }
620
+ :deep() .addon{
621
+ background-color: unset !important;
622
+ }
623
+
624
+ #submit{
625
+ position: absolute;
626
+ bottom: 20px;
627
+ left: 42%;
628
+ }
629
+
630
+ .setup-password{
631
+ :deep() .suffix{
632
+ position: relative;
633
+ INPUT{
634
+ background: #fff;
635
+ }
636
+ }
637
+ :deep() .addon{
638
+ position: absolute;
639
+ top: 6px;
640
+ left: 90%;
641
+ }
642
+ }
643
+
644
+ @media only screen and (max-width: 1439px) {
645
+ .span-5{
646
+ margin-left: 0px;
647
+ width: 48.645%;
648
+
649
+ }
650
+ .setup-password{
651
+ :deep() .suffix{
652
+ position: relative;
653
+ INPUT{
654
+ background: #fff;
655
+ }
656
+ }
657
+ :deep() .addon{
658
+ position: absolute;
659
+ top: 6px;
660
+ left: 84%;
661
+ }
662
+ }
663
+ }
664
+
523
665
  </style>
@@ -29,8 +29,8 @@ export default {
29
29
  computed: {
30
30
  headers() {
31
31
  return [
32
- STATE,
33
32
  NAME,
33
+ STATE,
34
34
  AGE
35
35
  ];
36
36
  },
@@ -63,13 +63,13 @@ export default {
63
63
  :rows="rows"
64
64
  :groupable="false"
65
65
  group-tooltip="resourceTable.groupBy.project"
66
- key-field="_key"
66
+ key-field="_key"
67
67
  >
68
68
  <template #cell:project="{row}">
69
69
  <span v-if="row.project">{{ row.project.nameDisplay }}</span>
70
- <span
71
- v-else
72
- class="text-muted"
70
+ <span
71
+ v-else
72
+ class="text-muted"
73
73
  >&ndash;</span>
74
74
  </template>
75
75
  </ResourceTable>
@@ -7,6 +7,7 @@ import Loading from '@shell/components/Loading';
7
7
  import { SUBTYPE_MAPPING, CREATE_VERBS } from '@shell/models/management.cattle.io.roletemplate';
8
8
  import { NAME } from '@shell/config/product/auth';
9
9
  import { BLANK_CLUSTER } from '@shell/store/store-types.js';
10
+ import { globalRoleFilteringfn, clusterRoleFilteringfn, projectRoleFilteringfn } from '@shell/utils/roleFiltering'
10
11
 
11
12
  const GLOBAL = SUBTYPE_MAPPING.GLOBAL.key;
12
13
  const CLUSTER = SUBTYPE_MAPPING.CLUSTER.key;
@@ -99,15 +100,38 @@ export default {
99
100
 
100
101
  computed: {
101
102
  globalResources() {
102
- return this.globalRoles;
103
+
104
+ let rolesList = globalRoleFilteringfn(this.globalRoles)
105
+
106
+ if (sessionStorage.getItem('TOPLEVELPERMISSIONS') === 'superadmin') {
107
+ rolesList = this.globalRoles
108
+ }
109
+
110
+ return rolesList
103
111
  },
104
112
 
105
113
  clusterResources() {
106
- return this.roleTemplates.filter((r) => r.context === SUBTYPE_MAPPING.CLUSTER.context);
114
+ const roleList = this.roleTemplates.filter((r) => r.context === SUBTYPE_MAPPING.CLUSTER.context);
115
+
116
+ let rolesList = clusterRoleFilteringfn(roleList)
117
+
118
+ if (sessionStorage.getItem('TOPLEVELPERMISSIONS') === 'superadmin') {
119
+ rolesList = roleList
120
+ }
121
+
122
+ return rolesList
107
123
  },
108
124
 
109
125
  namespaceResources() {
110
- return this.roleTemplates.filter((r) => r.context === SUBTYPE_MAPPING.NAMESPACE.context);
126
+ const roleList = this.roleTemplates.filter((r) => r.context === SUBTYPE_MAPPING.NAMESPACE.context);
127
+
128
+ let rolesList = projectRoleFilteringfn(roleList)
129
+
130
+ if (sessionStorage.getItem('TOPLEVELPERMISSIONS') === 'superadmin') {
131
+ rolesList = roleList
132
+ }
133
+
134
+ return rolesList
111
135
  },
112
136
 
113
137
  type() {
@@ -156,11 +180,13 @@ export default {
156
180
  <div v-else>
157
181
  <header>
158
182
  <div class="title">
183
+ <div class="excram-list">用户 & 认证 / <span style="color: #1890FF;">角色模板</span></div>
159
184
  <h1 class="m-0">
160
185
  {{ t('auth.roleTemplate') }}
161
186
  </h1>
187
+ <div style="margin: 20px 0;">支持管理员创建与管理不同角色‌,每个角色可预设特定权限集合,可简化用户权限分配流程,提升权限管理的灵活性与安全性。</div>
162
188
  </div>
163
- <div class="actions-container">
189
+ <!-- <div class="actions-container actions-container-box">
164
190
  <div class="actions">
165
191
  <router-link
166
192
  v-if="canCreate"
@@ -170,7 +196,7 @@ export default {
170
196
  {{ createLabel }}
171
197
  </router-link>
172
198
  </div>
173
- </div>
199
+ </div> -->
174
200
  </header>
175
201
  <Tabbed>
176
202
  <Tab
@@ -182,7 +208,18 @@ export default {
182
208
  <ResourceTable
183
209
  :schema="tabs[GLOBAL].schema"
184
210
  :rows="globalResources"
185
- />
211
+ >
212
+ <template #header-right>
213
+ <router-link
214
+ v-if="canCreate"
215
+ :to="createLocation"
216
+ style="margin-right: 10px;"
217
+ class="btn role-primary"
218
+ >
219
+ {{ createLabel }}
220
+ </router-link>
221
+ </template>
222
+ </ResourceTable>
186
223
  </Tab>
187
224
 
188
225
  <Tab
@@ -195,7 +232,18 @@ export default {
195
232
  :schema="tabs[CLUSTER].schema"
196
233
  :headers="tabs[CLUSTER].headers"
197
234
  :rows="clusterResources"
198
- />
235
+ >
236
+ <template #header-right>
237
+ <router-link
238
+ v-if="canCreate"
239
+ :to="createLocation"
240
+ style="margin-right: 10px;"
241
+ class="btn role-primary"
242
+ >
243
+ {{ createLabel }}
244
+ </router-link>
245
+ </template>
246
+ </ResourceTable>
199
247
  </Tab>
200
248
 
201
249
  <Tab
@@ -208,8 +256,35 @@ export default {
208
256
  :schema="tabs[PROJECT].schema"
209
257
  :headers="tabs[PROJECT].headers"
210
258
  :rows="namespaceResources"
211
- />
259
+ >
260
+ <template #header-right>
261
+ <router-link
262
+ v-if="canCreate"
263
+ :to="createLocation"
264
+ style="margin-right: 10px;"
265
+ class="btn role-primary"
266
+ >
267
+ {{ createLabel }}
268
+ </router-link>
269
+ </template>
270
+ </ResourceTable>
212
271
  </Tab>
213
272
  </Tabbed>
214
273
  </div>
215
274
  </template>
275
+
276
+ <style lang="scss" scoped>
277
+
278
+ .excram-list{
279
+ font-size: 14px;
280
+ line-height: 22px;
281
+ margin-bottom: 20px;
282
+ font-family: 'Microsoft YaHei';
283
+ }
284
+ .actions-container-box {
285
+ display: flex;
286
+ justify-content: flex-end;
287
+ align-items: flex-end;
288
+ }
289
+
290
+ </style>
@@ -49,7 +49,7 @@ export default {
49
49
  margin-left: 10px;
50
50
 
51
51
  &:hover {
52
- border-color: var(--lightest);
52
+ // border-color: var(--lightest);
53
53
  }
54
54
 
55
55
  > I {
@@ -694,7 +694,8 @@ export default {
694
694
  role="link"
695
695
  :aria-label="t('nav.clusterTools')"
696
696
  >
697
- <span>{{ t('nav.clusterTools') }}</span>
697
+ <!-- 禅道 3539 隐藏集群工具 -->
698
+ <!-- <span>{{ t('nav.clusterTools') }}</span> -->
698
699
  </router-link>
699
700
  </div>
700
701
  <ConfigBadge
@@ -230,7 +230,7 @@ export default {
230
230
 
231
231
  .name {
232
232
  white-space: nowrap;
233
- overflow: hidden;
233
+ // overflow: hidden;
234
234
  text-overflow: ellipsis;
235
235
  margin: 0;
236
236
  }
@@ -249,7 +249,7 @@ export default {
249
249
  .version {
250
250
  color: var(--muted);
251
251
  white-space: nowrap;
252
- overflow: hidden;
252
+ // overflow: hidden;
253
253
  text-overflow: ellipsis;
254
254
  font-size: 0.9em;
255
255
  margin-top: 4px;
@@ -262,10 +262,10 @@ export default {
262
262
  .description-content {
263
263
  display: -webkit-box;
264
264
  -webkit-box-orient: vertical;
265
- -webkit-line-clamp: 3;
266
- line-clamp: 3;
267
- overflow: hidden;
268
- text-overflow: ellipsis;
265
+ // -webkit-line-clamp: 3;
266
+ // line-clamp: 3;
267
+ // overflow: hidden;
268
+ // text-overflow: ellipsis;
269
269
  color: var(--text-muted);
270
270
  }
271
271
 
@@ -52,14 +52,14 @@ export default {
52
52
  <div v-else>
53
53
  <div class="row header mb-40">
54
54
  <h1> {{ t('monitoring.monitors') }}</h1>
55
- <div>
55
+ <!-- <div>
56
56
  <button
57
57
  class="btn btn-lg role-primary float right"
58
58
  @click="$router.push(createRoute)"
59
59
  >
60
60
  {{ t('resourceList.head.createFromYaml') }}
61
61
  </button>
62
- </div>
62
+ </div> -->
63
63
  </div>
64
64
  <Tabbed
65
65
  ref="tabs"