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

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 (212) hide show
  1. package/assets/brand/harvester/favicon.png +0 -0
  2. package/assets/brand/suse/favicon.png +0 -0
  3. package/assets/images/pl/half-logo.svg +23 -2
  4. package/assets/images/pl/harvester.png +0 -0
  5. package/assets/styles/app.scss +0 -4
  6. package/assets/styles/base/_basic.scss +2 -2
  7. package/assets/styles/base/_mixins.scss +1 -1
  8. package/assets/styles/base/_typography.scss +1 -2
  9. package/assets/styles/base/_variables.scss +4 -11
  10. package/assets/styles/global/_button.scss +25 -43
  11. package/assets/styles/global/_columns.scss +1 -3
  12. package/assets/styles/global/_form.scss +13 -45
  13. package/assets/styles/global/_labeled-input.scss +26 -54
  14. package/assets/styles/global/_layout.scss +3 -8
  15. package/assets/styles/global/_select.scss +17 -25
  16. package/assets/styles/global/_table.scss +1 -7
  17. package/assets/styles/global/_tooltip.scss +8 -56
  18. package/assets/styles/themes/_dark.scss +0 -3
  19. package/assets/styles/themes/_light.scss +43 -66
  20. package/assets/styles/vendor/vue-select.scss +9 -22
  21. package/assets/translations/en-us.yaml +4 -28
  22. package/assets/translations/zh-hans.yaml +189 -452
  23. package/components/ActionDropdown.vue +1 -2
  24. package/components/ActionMenu.vue +2 -2
  25. package/components/ActionMenuShell.vue +0 -2
  26. package/components/AppModal.vue +5 -46
  27. package/components/BrandImage.vue +0 -1
  28. package/components/ButtonDropdown.vue +4 -26
  29. package/components/ButtonMultiAction.vue +0 -1
  30. package/components/ClusterIconMenu.vue +1 -1
  31. package/components/CodeMirror.vue +6 -20
  32. package/components/ConsumptionGauge.vue +5 -24
  33. package/components/CopyToClipboard.vue +0 -15
  34. package/components/CruResource.vue +8 -9
  35. package/components/CruResourceFooter.vue +2 -2
  36. package/components/DashboardOptions.vue +17 -29
  37. package/components/Drawer/Chrome.vue +2 -2
  38. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +23 -23
  39. package/components/Drawer/ResourceDetailDrawer/index.vue +2 -2
  40. package/components/ExplorerMembers.vue +3 -18
  41. package/components/ExplorerProjectsNamespaces.vue +5 -19
  42. package/components/GlobalRoleBindings.vue +48 -112
  43. package/components/GrafanaDashboard.vue +4 -4
  44. package/components/GrowlManager.vue +1 -3
  45. package/components/HardwareResourceGauge.vue +3 -39
  46. package/components/IndentedPanel.vue +10 -4
  47. package/components/InfoBox.vue +3 -3
  48. package/components/InputOrDisplay.vue +2 -28
  49. package/components/LabelValue.vue +1 -20
  50. package/components/ModalWithCard.vue +3 -12
  51. package/components/PodSecurityAdmission.vue +1 -1
  52. package/components/PromptModal.vue +1 -1
  53. package/components/PromptRemove.vue +11 -30
  54. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +3 -1
  55. package/components/Resource/Detail/Metadata/KeyValue.vue +4 -8
  56. package/components/Resource/Detail/Metadata/index.vue +1 -2
  57. package/components/Resource/Detail/TitleBar/Title.vue +3 -4
  58. package/components/Resource/Detail/TitleBar/index.vue +24 -103
  59. package/components/ResourceDetail/Masthead/legacy.vue +38 -181
  60. package/components/ResourceDetail/legacy.vue +14 -32
  61. package/components/ResourceList/Masthead.vue +54 -226
  62. package/components/ResourceList/ResourceLoadingIndicator.vue +2 -5
  63. package/components/ResourceTable.vue +2 -24
  64. package/components/SideNav.vue +20 -74
  65. package/components/SortableTable/THead.vue +3 -33
  66. package/components/SortableTable/index.vue +464 -1017
  67. package/components/SortableTable/paging.js +16 -26
  68. package/components/SortableTable/selection.js +2 -2
  69. package/components/Tabbed/Tab.vue +3 -3
  70. package/components/Tabbed/index.vue +30 -48
  71. package/components/YamlEditor.vue +1 -0
  72. package/components/auth/Principal.vue +13 -37
  73. package/components/auth/RoleDetailEdit.vue +7 -58
  74. package/components/auth/SelectPrincipal.vue +0 -1
  75. package/components/form/ArrayList.vue +33 -41
  76. package/components/form/ArrayListGrouped.vue +2 -10
  77. package/components/form/ArrayListSelect.vue +1 -1
  78. package/components/form/BannerSettings.vue +59 -64
  79. package/components/form/ChangePassword.vue +4 -4
  80. package/components/form/ColorInput.vue +8 -32
  81. package/components/form/Footer.vue +8 -11
  82. package/components/form/InputWithSelect.vue +5 -8
  83. package/components/form/KeyValue.vue +7 -47
  84. package/components/form/LabeledSelect.vue +242 -214
  85. package/components/form/Labels.vue +3 -3
  86. package/components/form/MatchExpressions.vue +7 -24
  87. package/components/form/Members/ClusterPermissionsEditor.vue +2 -1
  88. package/components/form/Members/MembershipEditor.vue +1 -1
  89. package/components/form/NameNsDescription.vue +20 -59
  90. package/components/form/Password.vue +7 -16
  91. package/components/form/PodAffinity.vue +5 -4
  92. package/components/form/ResourceQuota/Namespace.vue +4 -4
  93. package/components/form/ResourceQuota/NamespaceRow.vue +17 -18
  94. package/components/form/ResourceQuota/Project.vue +4 -4
  95. package/components/form/ResourceQuota/ProjectRow.vue +6 -3
  96. package/components/form/Select.vue +2 -5
  97. package/components/form/SimpleSecretSelector.vue +9 -29
  98. package/components/form/Taints.vue +1 -2
  99. package/components/form/UnitInput.vue +3 -8
  100. package/components/form/WorkloadPorts.vue +123 -143
  101. package/components/formatter/BadgeStateFormatter.vue +5 -8
  102. package/components/formatter/LiveDate.vue +3 -3
  103. package/components/nav/Favorite.vue +1 -5
  104. package/components/nav/Group.vue +99 -132
  105. package/components/nav/Header.vue +27 -124
  106. package/components/nav/HeaderPageActionMenu.vue +0 -1
  107. package/components/nav/NamespaceFilter.vue +15 -19
  108. package/components/nav/TopLevelMenu.vue +119 -182
  109. package/components/nav/Type.vue +41 -63
  110. package/composables/useClickOutside.ts +1 -1
  111. package/config/private-label.js +11 -15
  112. package/config/product/auth.js +7 -17
  113. package/config/product/settings.js +9 -19
  114. package/config/settings.ts +0 -28
  115. package/config/table-headers.js +2 -3
  116. package/dialog/ForceMachineRemoveDialog.vue +2 -2
  117. package/dialog/ScalePoolDownDialog.vue +2 -2
  118. package/edit/management.cattle.io.user.vue +4 -17
  119. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  120. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  121. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +12 -36
  122. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  123. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  124. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  125. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  126. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  127. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  128. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  129. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  130. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  131. package/edit/namespace.vue +2 -1
  132. package/edit/token.vue +12 -31
  133. package/edit/workload/index.vue +4 -4
  134. package/list/management.cattle.io.setting.vue +13 -22
  135. package/list/management.cattle.io.user.vue +3 -7
  136. package/list/namespace.vue +0 -3
  137. package/list/provisioning.cattle.io.cluster.vue +7 -6
  138. package/mixins/brand.js +0 -17
  139. package/package.json +1 -1
  140. package/pages/account/index.vue +25 -79
  141. package/pages/auth/login.vue +52 -220
  142. package/pages/auth/setup.vue +19 -142
  143. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  144. package/pages/c/_cluster/auth/roles/index.vue +1 -19
  145. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  146. package/pages/c/_cluster/settings/banners.vue +102 -174
  147. package/pages/c/_cluster/settings/brand.vue +302 -350
  148. package/pages/c/_cluster/settings/performance.vue +38 -61
  149. package/pages/home.vue +30 -70
  150. package/pages/prefs.vue +25 -27
  151. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  152. package/public/index.html +4 -4
  153. package/rancher-components/BadgeState/BadgeState.vue +55 -38
  154. package/rancher-components/Banner/Banner.vue +8 -12
  155. package/rancher-components/Card/Card.vue +8 -7
  156. package/rancher-components/Form/Checkbox/Checkbox.vue +0 -4
  157. package/rancher-components/Form/LabeledInput/LabeledInput.vue +3 -42
  158. package/rancher-components/Form/Radio/RadioButton.vue +11 -35
  159. package/rancher-components/Form/Radio/RadioGroup.vue +5 -13
  160. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
  161. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +0 -1
  162. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +4 -12
  163. package/rancher-components/RcDropdown/RcDropdown.vue +7 -35
  164. package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
  165. package/rancher-components/RcDropdown/RcDropdownMenu.vue +6 -12
  166. package/rancher-components/RcDropdown/types.ts +0 -1
  167. package/rancher-components/StringList/StringList.vue +1 -1
  168. package/static/favicon.ico +0 -0
  169. package/static/favicon.png +0 -0
  170. package/static/loading-indicator.html +3 -3
  171. package/store/i18n.js +2 -5
  172. package/store/modal.ts +3 -3
  173. package/store/prefs.js +4 -11
  174. package/store/type-map.js +2 -32
  175. package/types/shell/index.d.ts +67 -74
  176. package/utils/error.js +8 -87
  177. package/utils/router.js +0 -21
  178. package/utils/select.js +3 -26
  179. package/utils/string.js +5 -8
  180. package/utils/title.ts +1 -1
  181. package/assets/icons/demo.css +0 -539
  182. package/assets/icons/demo.css:Zone.Identifier +0 -0
  183. package/assets/icons/demo_index.html +0 -1131
  184. package/assets/icons/demo_index.html:Zone.Identifier +0 -0
  185. package/assets/icons/iconfont.css +0 -216
  186. package/assets/icons/iconfont.css:Zone.Identifier +0 -0
  187. package/assets/icons/iconfont.js +0 -1
  188. package/assets/icons/iconfont.js:Zone.Identifier +0 -0
  189. package/assets/icons/iconfont.json +0 -324
  190. package/assets/icons/iconfont.json:Zone.Identifier +0 -0
  191. package/assets/icons/iconfont.ttf +0 -0
  192. package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
  193. package/assets/icons/iconfont.woff +0 -0
  194. package/assets/icons/iconfont.woff2 +0 -0
  195. package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
  196. package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
  197. package/assets/images/API.svg +0 -3
  198. package/assets/images/action.svg +0 -6
  199. package/assets/images/login/password.svg +0 -20
  200. package/assets/images/login/user.svg +0 -6
  201. package/assets/images/login-bg.png +0 -0
  202. package/assets/images/login-left.png +0 -0
  203. package/assets/images/login-logo.svg +0 -19
  204. package/assets/images/logo.png +0 -0
  205. package/assets/images/pl/logo.png +0 -0
  206. package/assets/images/promp-yellow.svg +0 -5
  207. package/assets/images/user.png +0 -0
  208. package/assets/styles/all.scss +0 -63
  209. package/components/DotState.vue +0 -84
  210. package/components/breadcrumb/index.vue +0 -340
  211. package/pages/account/pri.vue +0 -229
  212. package/utils/errorTranslate.json +0 -1336
@@ -293,7 +293,6 @@ export default {
293
293
  :create-button-label="t('members.createActionLabel')"
294
294
  :is-creatable="false"
295
295
  :type-display="t('members.clusterAndProject')"
296
-
297
296
  />
298
297
  <Banner
299
298
  v-if="isLocal"
@@ -305,7 +304,7 @@ export default {
305
304
  name="cluster-membership"
306
305
  :label="t('members.clusterMembership')"
307
306
  >
308
- <!-- <div
307
+ <div
309
308
  v-if="canEditClusterMembers"
310
309
  class="row mb-10 cluster-add"
311
310
  >
@@ -315,7 +314,7 @@ export default {
315
314
  >
316
315
  {{ t('members.createActionLabel') }}
317
316
  </router-link>
318
- </div> -->
317
+ </div>
319
318
  <ResourceTable
320
319
  :schema="schema"
321
320
  :headers="headers"
@@ -326,21 +325,7 @@ export default {
326
325
  :loading="$fetchState.pending || !currentCluster || loadingClusterBindings"
327
326
  sub-search="subSearch"
328
327
  :sub-fields="['nameDisplay']"
329
- >
330
- <template #header-right>
331
- <div
332
- v-if="canEditClusterMembers"
333
- class="row mb-10 mr-10 cluster-add"
334
- >
335
- <router-link
336
- :to="createLocation"
337
- class="btn role-primary pull-right"
338
- >
339
- {{ t('members.createActionLabel') }}
340
- </router-link>
341
- </div>
342
- </template>
343
- </ResourceTable>
328
+ />
344
329
  </Tab>
345
330
  <Tab
346
331
  v-if="canManageProjectMembers && !isHarvester"
@@ -1,8 +1,8 @@
1
1
  <script>
2
2
  import { mapGetters, useStore } from 'vuex';
3
3
  import ResourceTable, { defaultTableSortGenerationFn } from '@shell/components/ResourceTable';
4
- import {
5
- STATE, AGE, NAME, NS_SNAPSHOT_QUOTA, DESCRIPTION
4
+ import {
5
+ STATE, AGE, NAME, NS_SNAPSHOT_QUOTA, DESCRIPTION
6
6
  } from '@shell/config/table-headers';
7
7
  import { uniq } from '@shell/utils/array';
8
8
  import { MANAGEMENT, NAMESPACE, VIRTUAL_TYPES, HCI } from '@shell/config/types';
@@ -494,22 +494,19 @@ export default {
494
494
  {{ projectDescription(group.group) }}
495
495
  </div>
496
496
  </div>
497
- <div class="right">
497
+ <div class="right mr-10">
498
498
  <router-link
499
499
  v-if="isNamespaceCreatable && (canSeeProjectlessNamespaces || group.group.key !== notInProjectKey)"
500
- class="create-namespace"
501
- style="margin-bottom: 3px;"
500
+ class="create-namespace btn btn-sm role-secondary mr-5"
502
501
  :to="createNamespaceLocation(group.group)"
503
502
  >
504
503
  {{ t('projectNamespaces.createNamespace') }}
505
504
  </router-link>
506
- <span v-if="showProjectActionButton(group.group)" style="margin-bottom: 3px;color: var(--link);margin-left: 20px;">|</span>
507
505
  <template v-if="featureDropdownMenu">
508
506
  <ActionMenu
509
507
  v-if="showProjectActionButton(group.group)"
510
508
  :resource="getProjectActions(group.group)"
511
509
  data-testid="action-button"
512
- :showIcon="true"
513
510
  :button-aria-label="t('projectNamespaces.tableActionsLabel', { resource: projectResource(group.group) })"
514
511
  />
515
512
  <div
@@ -591,7 +588,7 @@ export default {
591
588
  <style lang="scss" scoped>
592
589
  .invisible {
593
590
  display: inline-block;
594
- min-width: 58px;
591
+ min-width: 28px;
595
592
  }
596
593
 
597
594
  .project-namespaces {
@@ -605,20 +602,9 @@ export default {
605
602
  }
606
603
 
607
604
  .project-bar {
608
- padding-right: 20px;
609
605
  display: flex;
610
606
  flex-direction: row;
611
607
  justify-content: space-between;
612
- background-color: var(--sortable-table-bg) !important;
613
-
614
- .right {
615
- display: flex;
616
- align-items: center;
617
- }
618
-
619
- .create-namespace {
620
- color: var(--link);
621
- }
622
608
 
623
609
  .group-tab {
624
610
  max-width: calc(100% - 230px);
@@ -108,12 +108,7 @@ export default {
108
108
  } catch (e) { }
109
109
  },
110
110
  data() {
111
-
112
- const topLevelPermissions = sessionStorage.getItem('TOPLEVELPERMISSIONS') || ''
113
-
114
111
  return {
115
- topLevelPermissions,
116
-
117
112
  // This not only identifies global roles but the order here is the order we want to display them in the UI
118
113
  globalPermissions: [
119
114
  'admin',
@@ -333,119 +328,60 @@ export default {
333
328
 
334
329
  <div v-else>
335
330
  <form v-if="selectedRoles">
336
- <template v-if="topLevelPermissions && topLevelPermissions !== 'superadmin'">
337
- <div
338
- v-for="(sortedRole, roleType) in sortedRoles"
339
- :key="roleType"
340
- class="role-group mb-10"
341
- >
342
- <Card
343
- v-if="Object.keys(sortedRole).length"
344
- :show-highlight-border="false"
345
- :show-actions="false"
346
- >
347
- <template v-slot:title>
348
- <div class="type-title">
349
- <h3>{{ t(`rbac.globalRoles.types.${roleType}.label`) }}</h3>
350
- <div class="type-description">
351
- {{ t(`rbac.globalRoles.types.${roleType}.description`, { isUser }) }}
352
- </div>
353
- </div>
354
- </template>
355
- <template v-slot:body>
356
- <div
357
- class="checkbox-section"
358
- :class="'checkbox-section--' + roleType"
359
- >
360
- <div
361
- v-for="(role, i) in sortedRoles[roleType]"
362
- :key="i"
363
- class="checkbox mb-10 mr-10"
364
- >
365
- <Checkbox
366
- v-model:value="selectedRoles"
367
- :value-when-true="role.id"
368
- :disabled="!!assignOnlyRoles[role.id]"
369
- :label="role.nameDisplay"
370
- :description="role.descriptionDisplay"
371
- :mode="mode"
372
- :data-testId="'grb-checkbox-' + role.id"
373
- @update:value="checkboxChanged"
374
- >
375
- <template #label>
376
- <div class="checkbox-label-slot">
377
- <span class="checkbox-label">{{ role.nameDisplay }}</span>
378
- <i
379
- v-if="!!assignOnlyRoles[role.id]"
380
- v-clean-tooltip="t('rbac.globalRoles.assignOnlyRole')"
381
- class="checkbox-info icon icon-info icon-lg"
382
- />
383
- </div>
384
- </template>
385
- </Checkbox>
386
- </div>
387
- </div>
388
- </template>
389
- </Card>
390
- </div>
391
- </template>
392
-
393
- <template v-else>
394
- <div
395
- v-for="(sortedRole, roleType) in { global: sortedRoles['global'] }"
396
- :key="roleType"
397
- class="role-group mb-10"
331
+ <div
332
+ v-for="(sortedRole, roleType) in sortedRoles"
333
+ :key="roleType"
334
+ class="role-group mb-10"
335
+ >
336
+ <Card
337
+ v-if="Object.keys(sortedRole).length"
338
+ :show-highlight-border="false"
339
+ :show-actions="false"
398
340
  >
399
- <Card
400
- v-if="Object.keys(sortedRole).length"
401
- :show-highlight-border="false"
402
- :show-actions="false"
403
- >
404
- <template v-slot:title>
405
- <div class="type-title">
406
- <h3>{{ t(`rbac.globalRoles.types.${roleType}.label`) }}</h3>
407
- <div class="type-description">
408
- {{ t(`rbac.globalRoles.types.${roleType}.description`, { isUser }) }}
409
- </div>
341
+ <template v-slot:title>
342
+ <div class="type-title">
343
+ <h3>{{ t(`rbac.globalRoles.types.${roleType}.label`) }}</h3>
344
+ <div class="type-description">
345
+ {{ t(`rbac.globalRoles.types.${roleType}.description`, { isUser }) }}
410
346
  </div>
411
- </template>
412
- <template v-slot:body>
347
+ </div>
348
+ </template>
349
+ <template v-slot:body>
350
+ <div
351
+ class="checkbox-section"
352
+ :class="'checkbox-section--' + roleType"
353
+ >
413
354
  <div
414
- class="checkbox-section"
415
- :class="'checkbox-section--' + roleType"
355
+ v-for="(role, i) in sortedRoles[roleType]"
356
+ :key="i"
357
+ class="checkbox mb-10 mr-10"
416
358
  >
417
- <div
418
- v-for="(role, i) in sortedRoles[roleType]"
419
- :key="i"
420
- class="checkbox mb-10 mr-10"
359
+ <Checkbox
360
+ v-model:value="selectedRoles"
361
+ :value-when-true="role.id"
362
+ :disabled="!!assignOnlyRoles[role.id]"
363
+ :label="role.nameDisplay"
364
+ :description="role.descriptionDisplay"
365
+ :mode="mode"
366
+ :data-testId="'grb-checkbox-' + role.id"
367
+ @update:value="checkboxChanged"
421
368
  >
422
- <Checkbox
423
- v-model:value="selectedRoles"
424
- :value-when-true="role.id"
425
- :disabled="!!assignOnlyRoles[role.id]"
426
- :label="role.nameDisplay"
427
- :description="role.descriptionDisplay"
428
- :mode="mode"
429
- :data-testId="'grb-checkbox-' + role.id"
430
- @update:value="checkboxChanged"
431
- >
432
- <template #label>
433
- <div class="checkbox-label-slot">
434
- <span class="checkbox-label">{{ role.nameDisplay }}</span>
435
- <i
436
- v-if="!!assignOnlyRoles[role.id]"
437
- v-clean-tooltip="t('rbac.globalRoles.assignOnlyRole')"
438
- class="checkbox-info icon icon-info icon-lg"
439
- />
440
- </div>
441
- </template>
442
- </Checkbox>
443
- </div>
369
+ <template #label>
370
+ <div class="checkbox-label-slot">
371
+ <span class="checkbox-label">{{ role.nameDisplay }}</span>
372
+ <i
373
+ v-if="!!assignOnlyRoles[role.id]"
374
+ v-clean-tooltip="t('rbac.globalRoles.assignOnlyRole')"
375
+ class="checkbox-info icon icon-info icon-lg"
376
+ />
377
+ </div>
378
+ </template>
379
+ </Checkbox>
444
380
  </div>
445
- </template>
446
- </Card>
447
- </div>
448
- </template>
381
+ </div>
382
+ </template>
383
+ </Card>
384
+ </div>
449
385
  </form>
450
386
  </div>
451
387
  </template>
@@ -262,22 +262,22 @@ export default {
262
262
  <div v-if="loading">
263
263
  <Loading />
264
264
  </div>
265
- <!-- <div
265
+ <div
266
266
  v-if="!loading && !error"
267
267
  class="external-link"
268
- > -->
268
+ >
269
269
  <!-- https://github.com/harvester/harvester-installer/pull/512/files -->
270
270
  <!-- It is necessary to include the parameter referer when accessing the Grafana page. -->
271
271
  <!-- This parameter is required by the backend to identify the origin of the request from which cluster -->
272
272
  <!-- The matching mechanism as follows: -->
273
273
  <!-- ~.*/k8s/clusters/(c-m-.+)/.* -->
274
274
  <!-- ~.*/dashboard/harvester/c/(c-m-.+)/.* -->
275
- <!-- <a
275
+ <a
276
276
  :href="grafanaUrl"
277
277
  target="_blank"
278
278
  rel="noopener nofollow"
279
279
  >{{ t('grafanaDashboard.grafana') }} <i class="icon icon-external-link" /></a>
280
- </div> -->
280
+ </div>
281
281
  </div>
282
282
  </template>
283
283
 
@@ -1,6 +1,5 @@
1
1
  <script>
2
2
  import { mapState } from 'vuex';
3
- import { translateError } from '@shell/utils/error'
4
3
 
5
4
  export default {
6
5
  data() {
@@ -26,7 +25,6 @@ export default {
26
25
  },
27
26
 
28
27
  methods: {
29
- translateError,
30
28
  remove(growl) {
31
29
  this.$store.dispatch('growl/remove', growl.id);
32
30
  },
@@ -133,7 +131,7 @@ export default {
133
131
  :id="`growl-message-${ growl.id }`"
134
132
  :class="{ 'has-title': !!growl.title }"
135
133
  >
136
- {{ translateError(growl.message) }}
134
+ {{ growl.message }}
137
135
  </p>
138
136
  </div>
139
137
  </div>
@@ -85,9 +85,8 @@ export default {
85
85
  :capacity="reserved.total"
86
86
  :used="reserved.useful"
87
87
  :color-stops="colorStops"
88
- :reserveText="`已分配`"
89
88
  >
90
- <!-- <template #title>
89
+ <template #title>
91
90
  <span>
92
91
  {{ reservedTitle ?? t('clusterIndexPage.hardwareResourceGauge.reserved') }}
93
92
  <span class="values text-muted">
@@ -109,23 +108,6 @@ export default {
109
108
  <span>
110
109
  {{ percentage(reserved) }}
111
110
  </span>
112
- </template> -->
113
- <template #content>
114
- <span>
115
- {{ percentage(reserved) }}(
116
- 共 <span v-if="reserved.formattedTotal">
117
- {{ reserved.formattedTotal }}
118
- </span>
119
- <span v-else>
120
- {{ maxDecimalPlaces(reserved.total) }} {{ reserved.units }}
121
- </span>,{{ reservedTitle === '分配'? '已分配': '预留' }} <span v-if="reserved.formattedUseful">
122
- {{ reserved.formattedUseful }} {{ reserved.units }}
123
- </span>
124
- <span v-else>
125
- {{ maxDecimalPlaces(reserved.useful) }} {{ reserved.units }}
126
- </span>
127
- )
128
- </span>
129
111
  </template>
130
112
  </ConsumptionGauge>
131
113
  </div>
@@ -137,26 +119,8 @@ export default {
137
119
  :capacity="used.total"
138
120
  :used="used.useful"
139
121
  :color-stops="colorStops"
140
- :reserveText="`已使用`"
141
122
  >
142
- <template #content>
143
- <span>
144
- {{ percentage(used) }}(
145
- 共 <span v-if="used.formattedTotal">
146
- {{ used.formattedTotal }}
147
- </span>
148
- <span v-else>
149
- {{ maxDecimalPlaces(used.total) }} {{ used.units }}
150
- </span>,已使用 <span v-if="used.formattedUseful">
151
- {{ used.formattedUseful }} {{ used.units }}
152
- </span>
153
- <span v-else>
154
- {{ maxDecimalPlaces(used.useful) }} {{ used.units }}
155
- </span>
156
- )
157
- </span>
158
- </template>
159
- <!-- <template #title>
123
+ <template #title>
160
124
  <span>
161
125
  {{ usedTitle ?? t('clusterIndexPage.hardwareResourceGauge.used') }}
162
126
  <span class="values text-muted">
@@ -178,7 +142,7 @@ export default {
178
142
  <span>
179
143
  {{ percentage(used) }}
180
144
  </span>
181
- </template> -->
145
+ </template>
182
146
  </ConsumptionGauge>
183
147
  </div>
184
148
  </div>
@@ -4,17 +4,23 @@ export default {};
4
4
 
5
5
  <template>
6
6
  <div
7
- class="indented-panels"
7
+ class="indented-panel"
8
8
  >
9
9
  <slot />
10
10
  </div>
11
11
  </template>
12
12
 
13
13
  <style lang="scss">
14
- .indented-panels {
14
+ .indented-panel {
15
15
  height: 100%;
16
- width: 100%;
17
- padding: 0 20px;
16
+ width: 90%;
17
+ margin-left: 5%;
18
18
  }
19
19
 
20
+ @media only screen and (max-width: map-get($breakpoints, '--viewport-9')) {
21
+ .indented-panel {
22
+ margin: 0 20px;
23
+ width: initial;
24
+ }
25
+ }
20
26
  </style>
@@ -26,8 +26,8 @@ export default {
26
26
 
27
27
  <style lang="scss" scoped>
28
28
  .info-box {
29
- border: 1px solid var(--tabbed-border);
30
- padding: 20px;
29
+ border: 2px solid var(--tabbed-border);
30
+ padding: 10px;
31
31
  margin-bottom: 20px;
32
32
  border-radius: var(--border-radius);
33
33
  flex-grow: 1;
@@ -81,4 +81,4 @@ export default {
81
81
  }
82
82
  }
83
83
  }
84
- </style>
84
+ </style>
@@ -45,9 +45,7 @@ export default {
45
45
  </div>
46
46
  <div class="value">
47
47
  <slot name="value">
48
- <span v-clean-tooltip="displayValue">
49
- {{ displayValue }}
50
- </span>
48
+ {{ displayValue }}
51
49
  </slot>
52
50
  </div>
53
51
  </div>
@@ -55,7 +53,7 @@ export default {
55
53
  </template>
56
54
 
57
55
  <style lang="scss" scoped>
58
- /* .label {
56
+ .label {
59
57
  display: flex;
60
58
  flex-direction: column;
61
59
 
@@ -63,29 +61,5 @@ export default {
63
61
  font-size: 14px;
64
62
  line-height: $input-line-height;
65
63
  }
66
- } */
67
- .label {
68
- display: flex;
69
- /* align-items: center; */
70
- /* flex-direction: column; */
71
-
72
- .text-label{
73
- width: 160px;
74
- line-height: 32px;
75
- }
76
- .value {
77
- /* font-size: 14px; */
78
- /* line-height: $input-line-height; */
79
- line-height: 32px;
80
- flex: 1;
81
- overflow: hidden;
82
- text-overflow: ellipsis;
83
- white-space: nowrap;
84
-
85
- ul{
86
- line-height: $input-line-height;
87
- list-style:none;
88
- }
89
- }
90
64
  }
91
65
  </style>
@@ -30,7 +30,7 @@ export default {
30
30
  </template>
31
31
 
32
32
  <style lang="scss" scoped>
33
- /* .label {
33
+ .label {
34
34
  display: flex;
35
35
  flex-direction: column;
36
36
 
@@ -38,24 +38,5 @@ export default {
38
38
  font-size: 14px;
39
39
  line-height: $input-line-height;
40
40
  }
41
- } */
42
- .label {
43
- display: flex;
44
- /* flex-direction: column; */
45
- /* align-items: center; */
46
- .text-label{
47
- width: 160px;
48
- line-height: 32px;
49
- }
50
- .value {
51
- line-height: $input-line-height;
52
- overflow: hidden;
53
- text-overflow: ellipsis;
54
- white-space: nowrap;
55
- line-height: 32px;
56
- }
57
- }
58
- :deep() ul {
59
- margin: 0px;
60
41
  }
61
42
  </style>
@@ -21,7 +21,7 @@ export default {
21
21
 
22
22
  closeText: {
23
23
  type: String,
24
- default: '关闭'
24
+ default: 'Close'
25
25
  },
26
26
 
27
27
  saveText: {
@@ -66,16 +66,8 @@ export default {
66
66
  class="modal"
67
67
  data-testid="mvc__card"
68
68
  :trigger-focus-trap="true"
69
- @close="$emit('close', $event)"
69
+ @close="$emit('finish', $event)"
70
70
  >
71
- <!-- <slot name="closeicon">
72
- <button
73
- class="btn btn-sm role-link hide-icon-dialog-close"
74
- @click.prevent="hide"
75
- >
76
- <i class="icon icon-x" />
77
- </button>
78
- </slot> -->
79
71
  <Card
80
72
  class="modal"
81
73
  :show-highlight-border="false"
@@ -126,7 +118,7 @@ export default {
126
118
  .footer {
127
119
  width: 100%;
128
120
  display: flex;
129
- justify-content: flex-end;
121
+ justify-content: center;
130
122
  }
131
123
 
132
124
  .banner {
@@ -141,7 +133,6 @@ export default {
141
133
 
142
134
  &.card-container {
143
135
  box-shadow: none;
144
- padding: 24px;
145
136
  }
146
137
  }
147
138
  </style>
@@ -218,7 +218,7 @@ export default defineComponent({
218
218
  :key="i"
219
219
  class="row row--y-center mb-20"
220
220
  >
221
- <span class="col span-1">
221
+ <span class="col span-2">
222
222
  <Checkbox
223
223
  v-if="!labelsAlwaysActive"
224
224
  v-model:value="psaControl.active"
@@ -42,7 +42,7 @@ export default {
42
42
  },
43
43
  modalWidth() {
44
44
  // property set from workload.js to overwrite modal default width of 600px, with fallback value as well
45
- return this.modalData?.modalWidth || '610px';
45
+ return this.modalData?.modalWidth || '600px';
46
46
  },
47
47
  customClass() {
48
48
  return this.modalData?.customClass || undefined;