dashboard-shell-shell 3.0.5-test.2 → 3.0.5-test.21

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 (145) hide show
  1. package/assets/icons/iconfont.css +4 -1
  2. package/assets/images/pl/dark/logo.png +0 -0
  3. package/assets/styles/all.scss +3 -1
  4. package/assets/styles/base/_variables.scss +5 -5
  5. package/assets/styles/global/_button.scss +8 -8
  6. package/assets/styles/global/_select.scss +1 -1
  7. package/assets/styles/global/_tooltip.scss +9 -5
  8. package/assets/styles/themes/_light.scss +3 -1
  9. package/assets/styles/vendor/vue-select.scss +2 -1
  10. package/assets/translations/zh-hans.yaml +140 -11
  11. package/components/ActionDropdown.vue +1 -1
  12. package/components/ButtonDropdown.vue +3 -1
  13. package/components/CodeMirror.vue +6 -4
  14. package/components/ContainerResourceLimit.vue +2 -2
  15. package/components/CopyToClipboard.vue +15 -0
  16. package/components/Drawer/Chrome.vue +2 -2
  17. package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +30 -27
  18. package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
  19. package/components/Drawer/ResourceDetailDrawer/index.vue +5 -4
  20. package/components/ExplorerMembers.vue +28 -4
  21. package/components/GlobalRoleBindings.vue +48 -112
  22. package/components/PodSecurityAdmission.vue +1 -1
  23. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
  24. package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
  25. package/components/Resource/Detail/Metadata/index.vue +3 -1
  26. package/components/Resource/Detail/TitleBar/Title.vue +4 -3
  27. package/components/Resource/Detail/TitleBar/Top.vue +2 -0
  28. package/components/Resource/Detail/TitleBar/composables.ts +16 -1
  29. package/components/Resource/Detail/TitleBar/index.vue +113 -25
  30. package/components/ResourceDetail/Masthead/index.vue +1 -1
  31. package/components/ResourceDetail/Masthead/latest.vue +1 -1
  32. package/components/ResourceDetail/Masthead/legacy.vue +236 -165
  33. package/components/ResourceDetail/legacy.vue +44 -28
  34. package/components/ResourceList/Masthead.vue +11 -15
  35. package/components/SideNav.vue +1 -1
  36. package/components/SortableTable/index.vue +9 -4
  37. package/components/Tabbed/index.vue +6 -1
  38. package/components/auth/Principal.vue +42 -13
  39. package/components/auth/RoleDetailEdit.vue +11 -7
  40. package/components/breadcrumb/index.vue +124 -0
  41. package/components/form/ArrayList.vue +164 -147
  42. package/components/form/ArrayListGrouped.vue +3 -1
  43. package/components/form/ChangePassword.vue +1 -1
  44. package/components/form/Command.vue +4 -5
  45. package/components/form/Footer.vue +1 -0
  46. package/components/form/HealthCheck.vue +0 -2
  47. package/components/form/HookOption.vue +87 -58
  48. package/components/form/InputWithSelect.vue +8 -7
  49. package/components/form/KeyValue.vue +20 -2
  50. package/components/form/LabeledSelect.vue +6 -3
  51. package/components/form/Labels.vue +2 -2
  52. package/components/form/MatchExpressions.vue +3 -4
  53. package/components/form/Members/ClusterMembershipEditor.vue +1 -1
  54. package/components/form/Members/ClusterPermissionsEditor.vue +5 -5
  55. package/components/form/Members/MembershipEditor.vue +2 -2
  56. package/components/form/NameNsDescription.vue +1 -1
  57. package/components/form/Networking.vue +6 -9
  58. package/components/form/NodeAffinity.vue +29 -28
  59. package/components/form/PodAffinity.vue +23 -23
  60. package/components/form/Probe.vue +15 -11
  61. package/components/form/ResourceQuota/Namespace.vue +4 -4
  62. package/components/form/ResourceQuota/NamespaceRow.vue +11 -9
  63. package/components/form/ResourceQuota/Project.vue +4 -4
  64. package/components/form/ResourceQuota/ProjectRow.vue +36 -30
  65. package/components/form/ResourceSelector.vue +1 -1
  66. package/components/form/Security.vue +1 -3
  67. package/components/form/Select.vue +6 -1
  68. package/components/form/ServiceNameSelect.vue +2 -5
  69. package/components/form/ServicePorts.vue +149 -75
  70. package/components/form/Taints.vue +2 -1
  71. package/components/form/Tolerations.vue +12 -9
  72. package/components/form/ValueFromResource.vue +110 -96
  73. package/components/form/WorkloadPorts.vue +143 -123
  74. package/components/nav/Header.vue +3 -4
  75. package/components/nav/NamespaceFilter.vue +15 -21
  76. package/components/nav/TopLevelMenu.vue +99 -125
  77. package/components/nav/Type.vue +3 -3
  78. package/config/product/explorer.js +4 -1
  79. package/config/router/navigation-guards/index.js +52 -3
  80. package/detail/node.vue +28 -23
  81. package/dialog/AddCustomBadgeDialog.vue +17 -9
  82. package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
  83. package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
  84. package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
  85. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
  86. package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
  87. package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
  88. package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
  89. package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
  90. package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
  91. package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
  92. package/edit/networking.k8s.io.ingress/Certificate.vue +7 -5
  93. package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
  94. package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
  95. package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
  96. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
  97. package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
  98. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
  99. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  100. package/edit/persistentvolume/index.vue +3 -1
  101. package/edit/persistentvolumeclaim.vue +2 -0
  102. package/edit/secret/index.vue +2 -2
  103. package/edit/service.vue +4 -1
  104. package/edit/storage.k8s.io.storageclass/index.vue +10 -8
  105. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
  106. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
  107. package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
  108. package/edit/workload/Job.vue +31 -34
  109. package/edit/workload/Upgrading.vue +5 -5
  110. package/edit/workload/index.vue +21 -17
  111. package/edit/workload/storage/Mount.vue +1 -0
  112. package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
  113. package/edit/workload/storage/azureDisk.vue +14 -10
  114. package/edit/workload/storage/azureFile.vue +9 -7
  115. package/edit/workload/storage/csi/index.vue +6 -9
  116. package/edit/workload/storage/emptyDir.vue +7 -5
  117. package/edit/workload/storage/gcePersistentDisk.vue +9 -7
  118. package/edit/workload/storage/hostPath.vue +7 -5
  119. package/edit/workload/storage/nfs.vue +8 -6
  120. package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
  121. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
  122. package/edit/workload/storage/secret.vue +9 -6
  123. package/edit/workload/storage/vsphereVolume.vue +11 -7
  124. package/initialize/app-extended.js +7 -1
  125. package/package.json +1 -1
  126. package/pages/account/index.vue +95 -115
  127. package/pages/auth/setup.vue +35 -16
  128. package/pages/c/_cluster/auth/roles/index.vue +38 -5
  129. package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
  130. package/pages/c/_cluster/explorer/tools/index.vue +6 -6
  131. package/pages/home.vue +3 -4
  132. package/pkg/tsconfig.json +9 -9
  133. package/pkg/vue.config.js +1 -1
  134. package/plugins/dashboard-store/resource-class.js +28 -27
  135. package/rancher-components/BadgeState/BadgeState.vue +33 -52
  136. package/rancher-components/Banner/Banner.vue +6 -3
  137. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +31 -2
  138. package/rancher-components/RcDropdown/RcDropdownMenu.vue +8 -7
  139. package/scripts/publish-shell.sh +1 -1
  140. package/store/i18n.js +4 -0
  141. package/store/type-map.js +1 -1
  142. package/types/shell/index.d.ts +4 -30
  143. package/utils/error.js +3 -1
  144. package/utils/errorTranslate.json +247 -2
  145. package/vue.config.js +1 -1
@@ -3,8 +3,7 @@ import BackLink from '@shell/components/BackLink';
3
3
  import { MANAGEMENT, NORMAN } from '@shell/config/types';
4
4
  import { SETTING } from '@shell/config/settings';
5
5
  import Loading from '@shell/components/Loading';
6
- // import Principal from '@shell/components/auth/Principal';
7
- import Principal from './pri.vue';
6
+ import Principal from '@shell/components/auth/Principal';
8
7
  import BackRoute from '@shell/mixins/back-link';
9
8
  import { mapGetters } from 'vuex';
10
9
 
@@ -17,7 +16,7 @@ const API_ENDPOINT = '/v3';
17
16
 
18
17
  export default {
19
18
  components: {
20
- CopyToClipboardText, BackLink, Banner, PromptChangePassword, Loading, ResourceTable, Principal, TabTitle
19
+ CopyToClipboardText, BackLink, Banner, Loading, ResourceTable, Principal, TabTitle
21
20
  },
22
21
  mixins: [BackRoute],
23
22
  async fetch() {
@@ -152,88 +151,39 @@ export default {
152
151
  <template>
153
152
  <Loading v-if="$fetchState.pending" />
154
153
  <div v-else>
155
- <!-- <BackLink :link="backLink" />
156
- <h1>
157
- <TabTitle breadcrumb="vendor-only">
158
- {{ t('accountAndKeys.title') }}
159
- </TabTitle>
160
- </h1> -->
161
- <div class="api-key-title mb-20">
162
- {{ t('accountAndKeys.title') }}
154
+ <div style="display: flex;align-items: center;margin-bottom: 20px;">
155
+ <!-- <BackLink class="backLinkCls" :link="backLink" /> -->
156
+ <div style="font-size: 26px;">
157
+ <TabTitle breadcrumb="vendor-only">
158
+ {{ t('accountAndKeys.title') }}
159
+ </TabTitle>
160
+ </div>
163
161
  </div>
164
162
 
165
- <!-- <h2 v-t="'accountAndKeys.account.title'" /> -->
166
- <div class="account">
167
- <div class="account-title">
168
- {{ t('accountAndKeys.account.title') }}
169
- </div>
170
- <Principal
171
- :value="principal.id"
172
- :use-muted="false"
173
- :show-labels="true"
174
- :isShowPass="true"
175
- >
176
- <template #edit>
177
- <span
163
+ <div class="account_card mb-20">
164
+ <h5 v-t="'accountAndKeys.account.title'" />
165
+ <div class="account">
166
+ <Principal
167
+ :userLogoSize="79"
168
+ :value="principal.id"
169
+ :use-muted="false"
170
+ :show-labels="true"
171
+ />
172
+ <div>
173
+ <button
178
174
  v-if="canChangePassword"
179
- class="edit-pass-txt"
180
- @click="$refs.promptChangePassword.show(true)"
181
- >修改
182
- </span>
183
- </template>
184
- </Principal>
185
- <!-- <div>
186
- <button
187
- v-if="canChangePassword"
188
- role="button"
189
- :aria-label="t('accountAndKeys.account.change')"
190
- type="button"
191
- class="btn role-primary"
192
- data-testid="account_change_password"
193
- @click="$refs.promptChangePassword.show(true)"
194
- >
195
- {{ t("accountAndKeys.account.change") }}
196
- </button>
197
- </div> -->
198
- </div>
199
- <PromptChangePassword ref="promptChangePassword" />
200
-
201
- <!-- <hr role="none"> -->
202
- <div
203
- style=" border: 1px solid #d7d7d7;padding: 20px 20px 0px 20px;"
204
- class="mt-20">
205
- <div class="keys-header">
206
- <div>
207
- <!-- <h2 v-t="'accountAndKeys.apiKeys.title'" /> -->
208
- <div
209
- v-t="'accountAndKeys.apiKeys.title'"
210
- class="account-title mb-20"
211
- />
212
- <div class="api-url">
213
- <span>{{ t("accountAndKeys.apiKeys.apiEndpoint") }}</span>
214
- <CopyToClipboardText
215
- :aria-label="t('accountAndKeys.apiKeys.copyApiEnpoint')"
216
- :text="apiUrl"
217
- />
175
+ role="button"
176
+ :aria-label="t('accountAndKeys.account.change')"
177
+ type="button"
178
+ class="btn role-primary"
179
+ data-testid="account_change_password"
180
+ @click="showChangePasswordDialog"
181
+ >
182
+ {{ t("accountAndKeys.account.change") }}
183
+ </button>
218
184
  </div>
219
185
  </div>
220
- </div>
221
- <div
222
- v-if="apiKeySchema"
223
- class="keys mb-20"
224
- >
225
- <ResourceTable
226
- :schema="apiKeySchema"
227
- :rows="apiKeys"
228
- :headers="apiKeyheaders"
229
- key-field="id"
230
- data-testid="api_keys_list"
231
- :search="true"
232
- :row-actions="true"
233
- :table-actions="true"
234
- >
235
- <template #header-right>
236
- <button
186
+ <!-- <button
237
187
  v-if="apiKeySchema"
238
188
  role="button"
239
189
  :aria-label="t('accountAndKeys.apiKeys.add.label')"
@@ -242,32 +192,82 @@ export default {
242
192
  @click="addKey"
243
193
  >
244
194
  {{ t('accountAndKeys.apiKeys.add.label') }}
245
- </button>
246
- </template>
247
- </ResourceTable>
195
+ </button> -->
248
196
  </div>
249
- <div v-else>
250
- <Banner
251
- color="warning"
252
- :label="t('accountAndKeys.apiKeys.notAllowed')"
253
- />
197
+
198
+ <div class="account_card mb-20">
199
+ <div class="keys-header">
200
+ <div>
201
+ <h5 v-t="'accountAndKeys.apiKeys.title'" />
202
+ <div class="api-url">
203
+ <span>{{ t("accountAndKeys.apiKeys.apiEndpoint") }}</span>
204
+ <CopyToClipboardText
205
+ :aria-label="t('accountAndKeys.apiKeys.copyApiEnpoint')"
206
+ :text="apiUrl"
207
+ />
208
+ </div>
209
+ </div>
210
+ </div>
211
+ <div
212
+ v-if="apiKeySchema"
213
+ class="keys"
214
+ >
215
+ <ResourceTable
216
+ :schema="apiKeySchema"
217
+ :rows="apiKeys"
218
+ :headers="apiKeyheaders"
219
+ key-field="id"
220
+ data-testid="api_keys_list"
221
+ :search="true"
222
+ :row-actions="true"
223
+ :table-actions="true"
224
+ >
225
+ <template #header-right>
226
+ <button
227
+ style="margin-right: 10px;"
228
+ v-if="apiKeySchema"
229
+ role="button"
230
+ :aria-label="t('accountAndKeys.apiKeys.add.label')"
231
+ class="btn role-primary add"
232
+ data-testid="account_create_api_keys"
233
+ @click="addKey"
234
+ >
235
+ {{ t('accountAndKeys.apiKeys.add.label') }}
236
+ </button>
237
+ </template>
238
+ </ResourceTable>
239
+ </div>
240
+ <div v-else>
241
+ <Banner
242
+ color="warning"
243
+ :label="t('accountAndKeys.apiKeys.notAllowed')"
244
+ />
245
+ </div>
254
246
  </div>
255
247
  </div>
256
- </div>
257
248
  </template>
258
249
 
259
250
  <style lang='scss' scoped>
251
+ .account_card {
252
+ border: 1px solid #d7d7d7;
253
+ padding: 20px;
254
+ box-sizing: border-box;
255
+ }
256
+ :deep() .back-link {
257
+ font-size: 26px;
258
+ margin: 0 20px 0 0 !important;
259
+ }
260
260
  hr {
261
261
  margin: 20px 0;
262
262
  }
263
263
 
264
264
  .account {
265
- /* display: flex;
266
- justify-content: space-between */
267
- border: 1px solid #D7D7D7;
268
- padding: 20px;
269
- box-sizing: border-box;
265
+ display: flex;
266
+ justify-content: space-between
267
+ }
270
268
 
269
+ .principal .avatar {
270
+ width: 287px !important;
271
271
  }
272
272
 
273
273
  .keys-header {
@@ -280,37 +280,17 @@ export default {
280
280
  .keys {
281
281
  display: flex;
282
282
  flex-direction: column;
283
- margin-top: 20px;
284
283
  .add {
285
284
  align-self: flex-end;
286
- margin-left: 10px
287
285
  }
288
286
  }
289
287
 
290
288
  .api-url {
291
289
  display: flex;
290
+ margin: 20px 0;
292
291
 
293
292
  > span {
294
293
  margin-right: 6px;
295
294
  }
296
295
  }
297
- .api-key-title{
298
- font-size: 26px;
299
- /* line-height: 20px; */
300
- font-weight: 400;
301
- }
302
-
303
- .edit-pass-txt{
304
- cursor: pointer;
305
- color: var(--primary);
306
- }
307
-
308
- .table-account{
309
- border: 1px solid #d7d7d7;
310
- }
311
- .account-title{
312
- font-size: 14px;
313
- line-height: 19px;
314
- margin-bottom: 16px;
315
- }
316
296
  </style>
@@ -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);
@@ -259,6 +260,14 @@ export default {
259
260
  this.$router.replace('/');
260
261
  },
261
262
 
263
+ copyPassword(val) {
264
+ copyTextToClipboard(val).then(() => {
265
+ console.log('复制成功')
266
+ }).catch(() => {
267
+ console.log('复制失败')
268
+ });
269
+ },
270
+
262
271
  onServerUrlChange(value) {
263
272
  this.serverUrl = value.trim();
264
273
  },
@@ -324,13 +333,14 @@ export default {
324
333
  >
325
334
  <div class="mb-20">
326
335
  <RadioGroup
336
+ class="setupRadioGroupCls"
327
337
  v-model:value="useRandom"
328
338
  data-testid="setup-password-mode"
329
339
  name="password-mode"
330
340
  :options="passwordOptions"
331
341
  />
332
342
  </div>
333
- <div class="mb-20">
343
+ <div class="setup_radom-password mb-20">
334
344
  <LabeledInput
335
345
  v-if="useRandom"
336
346
  ref="password"
@@ -347,13 +357,9 @@ export default {
347
357
  >
348
358
  <div
349
359
  class="addon"
350
- style="padding: 0 0 0 0px;"
360
+ style="padding: 4px 0px 0px;"
351
361
  >
352
- <CopyToClipboard
353
- :aria-label="t('setup.copyRandom')"
354
- :text="password"
355
- class="btn-sm"
356
- />
362
+ <a @click="copyPassword(password)" href="javascript:;">复制</a>
357
363
  </div>
358
364
  </template>
359
365
  </LabeledInput>
@@ -367,15 +373,17 @@ export default {
367
373
  :required="true"
368
374
  />
369
375
  </div>
370
- <Password
371
- v-show="!useRandom"
372
- v-model:value.trim="confirm"
373
- autocomplete="new-password"
374
- data-testid="setup-password-confirm"
375
- class="setup-password"
376
- :label="t('setup.confirmPassword')"
377
- :required="true"
378
- />
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')"
384
+ :required="true"
385
+ />
386
+ </div>
379
387
  </template>
380
388
 
381
389
  <template v-if="isFirstLogin">
@@ -467,6 +475,16 @@ export default {
467
475
  </template>
468
476
 
469
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
+ }
470
488
  .principal {
471
489
  display: block;
472
490
  background: var(--box-bg);
@@ -538,6 +556,7 @@ export default {
538
556
  }
539
557
 
540
558
  .setup-title {
559
+ color: #fff;
541
560
  :deep() code {
542
561
  font-size: 12px;
543
562
  padding: 0;
@@ -162,7 +162,7 @@ export default {
162
162
  </h1>
163
163
  <div style="margin: 20px 0;">支持管理员创建与管理不同角色‌,每个角色可预设特定权限集合,可简化用户权限分配流程,提升权限管理的灵活性与安全性。</div>
164
164
  </div>
165
- <div class="actions-container actions-container-box">
165
+ <!-- <div class="actions-container actions-container-box">
166
166
  <div class="actions">
167
167
  <router-link
168
168
  v-if="canCreate"
@@ -172,7 +172,7 @@ export default {
172
172
  {{ createLabel }}
173
173
  </router-link>
174
174
  </div>
175
- </div>
175
+ </div> -->
176
176
  </header>
177
177
  <Tabbed>
178
178
  <Tab
@@ -184,7 +184,18 @@ export default {
184
184
  <ResourceTable
185
185
  :schema="tabs[GLOBAL].schema"
186
186
  :rows="globalResources"
187
- />
187
+ >
188
+ <template #header-right>
189
+ <router-link
190
+ v-if="canCreate"
191
+ :to="createLocation"
192
+ style="margin-right: 10px;"
193
+ class="btn role-primary"
194
+ >
195
+ {{ createLabel }}
196
+ </router-link>
197
+ </template>
198
+ </ResourceTable>
188
199
  </Tab>
189
200
 
190
201
  <Tab
@@ -197,7 +208,18 @@ export default {
197
208
  :schema="tabs[CLUSTER].schema"
198
209
  :headers="tabs[CLUSTER].headers"
199
210
  :rows="clusterResources"
200
- />
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>
201
223
  </Tab>
202
224
 
203
225
  <Tab
@@ -210,7 +232,18 @@ export default {
210
232
  :schema="tabs[PROJECT].schema"
211
233
  :headers="tabs[PROJECT].headers"
212
234
  :rows="namespaceResources"
213
- />
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>
214
247
  </Tab>
215
248
  </Tabbed>
216
249
  </div>
@@ -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 {
@@ -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
 
package/pages/home.vue CHANGED
@@ -486,7 +486,6 @@ export default defineComponent({
486
486
 
487
487
  <!-- 页签标题组件,不显示子页面标题和面包屑 -->
488
488
  <TabTitle
489
- v-if="topLevelPermissionsVis"
490
489
  :show-child="false"
491
490
  :breadcrumb="false"
492
491
  >
@@ -496,14 +495,14 @@ export default defineComponent({
496
495
  </TabTitle>
497
496
 
498
497
  <!-- 首页欢迎横幅 -->
499
- <BannerGraphic
498
+ <!-- <BannerGraphic
500
499
  v-if="topLevelPermissionsVis"
501
500
  :small="true"
502
501
  :title="t('landing.welcomeToRancher', {vendor})"
503
502
  :pref="HIDE_HOME_PAGE_CARDS"
504
503
  pref-key="welcomeBanner"
505
504
  data-testid="home-banner-graphic"
506
- />
505
+ /> -->
507
506
  <IndentedPanel class="mt-20 mb-20">
508
507
 
509
508
  <!-- 主面板布局 -->
@@ -548,7 +547,7 @@ export default defineComponent({
548
547
  v-if="canCreateCluster || !!provClusterSchema"
549
548
  #header-right
550
549
  >
551
- <div v-if="topLevelPermissionsVis" class="table-heading">
550
+ <div class="table-heading">
552
551
  <router-link
553
552
  v-if="!!provClusterSchema"
554
553
  :to="manageLocation"
package/pkg/tsconfig.json CHANGED
@@ -27,25 +27,25 @@
27
27
  ],
28
28
  "paths": {
29
29
  "@shell/core/*": [
30
- "../../node_modules/@rancher/shell/core/*"
30
+ "../../node_modules/dashboard-shell-shell/core/*"
31
31
  ],
32
32
  "@shell/config/*": [
33
- "../../node_modules/@rancher/shell/config/*"
33
+ "../../node_modules/dashboard-shell-shell/config/*"
34
34
  ],
35
35
  "@shell/store/*": [
36
- "../../node_modules/@rancher/shell/store/*"
36
+ "../../node_modules/dashboard-shell-shell/store/*"
37
37
  ],
38
38
  "@shell/plugins/*": [
39
- "../../node_modules/@rancher/shell/plugins/*"
39
+ "../../node_modules/dashboard-shell-shell/plugins/*"
40
40
  ],
41
41
  "@shell/utils/*": [
42
- "../../node_modules/@rancher/shell/utils/*"
42
+ "../../node_modules/dashboard-shell-shell/utils/*"
43
43
  ],
44
44
  "@shell/models/*": [
45
- "../../node_modules/@rancher/shell/models/*"
45
+ "../../node_modules/dashboard-shell-shell/models/*"
46
46
  ],
47
47
  "@shell/mixins/*": [
48
- "../../node_modules/@rancher/shell/mixins/*"
48
+ "../../node_modules/dashboard-shell-shell/mixins/*"
49
49
  ],
50
50
  "@pkg/*": [
51
51
  "./*"
@@ -56,8 +56,8 @@
56
56
  "**/*.ts",
57
57
  "**/*.tsx",
58
58
  "**/*.vue",
59
- "../../node_modules/@rancher/shell/types/*.d.ts",
60
- "../../node_modules/@rancher/shell/core/types.ts"
59
+ "../../node_modules/dashboard-shell-shell/types/*.d.ts",
60
+ "../../node_modules/dashboard-shell-shell/core/types.ts"
61
61
  ],
62
62
  "exclude": [
63
63
  "node_modules"
package/pkg/vue.config.js CHANGED
@@ -117,7 +117,7 @@ module.exports = function(dir) {
117
117
  if (p.use) {
118
118
  p.use.forEach((u) => {
119
119
  if (u.loader.includes('babel-loader')) {
120
- p.exclude = /node_modules\/(?!@rancher\/shell\/).*/;
120
+ p.exclude = /node_modules\/(?!dashboard-shell-shell\/).*/;
121
121
  }
122
122
  });
123
123
  }
@@ -913,42 +913,42 @@ export default class Resource {
913
913
  {
914
914
  action: this.canUpdate ? 'goToEdit' : 'goToViewConfig',
915
915
  label: this.t(this.canUpdate ? 'action.edit' : 'action.view'),
916
- icon: 'icon icon-edit',
916
+ // icon: 'icon icon-edit',
917
917
  enabled: this.canCustomEdit,
918
918
  },
919
- {
920
- action: this.canEditYaml ? 'goToEditYaml' : 'goToViewYaml',
921
- label: this.t(this.canEditYaml ? 'action.editYaml' : 'action.viewYaml'),
922
- icon: 'icon icon-file',
923
- enabled: this.canYaml,
924
- },
919
+ // {
920
+ // action: this.canEditYaml ? 'goToEditYaml' : 'goToViewYaml',
921
+ // label: this.t(this.canEditYaml ? 'action.editYaml' : 'action.viewYaml'),
922
+ // icon: 'icon icon-file',
923
+ // enabled: this.canYaml,
924
+ // },
925
925
  {
926
926
  action: (this.canCustomEdit ? 'goToClone' : 'cloneYaml'),
927
927
  label: this.t('action.clone'),
928
- icon: 'icon icon-copy',
929
- enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml),
930
- },
931
- { divider: true },
932
- {
933
- action: 'download',
934
- label: this.t('action.download'),
935
- icon: 'icon icon-download',
936
- bulkable: true,
937
- bulkAction: 'downloadBulk',
938
- enabled: this.canYaml,
939
- weight: -9,
940
- },
941
- {
942
- action: 'viewInApi',
943
- label: this.t('action.viewInApi'),
944
- icon: 'icon icon-external-link',
945
- enabled: this.canViewInApi,
928
+ // icon: 'icon icon-copy',
929
+ enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml)&& this.schema.id!=='event',
946
930
  },
931
+ // { divider: true },
932
+ // {
933
+ // action: 'download',
934
+ // label: this.t('action.download'),
935
+ // icon: 'icon icon-download',
936
+ // bulkable: true,
937
+ // bulkAction: 'downloadBulk',
938
+ // enabled: this.canYaml,
939
+ // weight: -9,
940
+ // },
941
+ // {
942
+ // action: 'viewInApi',
943
+ // label: this.t('action.viewInApi'),
944
+ // icon: 'icon icon-external-link',
945
+ // enabled: this.canViewInApi,
946
+ // },
947
947
  {
948
948
  action: 'promptRemove',
949
949
  altAction: 'remove',
950
950
  label: this.t('action.remove'),
951
- icon: 'icon icon-trash',
951
+ // icon: 'icon icon-trash',
952
952
  bulkable: true,
953
953
  enabled: this.canDelete,
954
954
  bulkAction: 'promptRemove',
@@ -1322,7 +1322,8 @@ export default class Resource {
1322
1322
  }
1323
1323
 
1324
1324
  get detailLocation() {
1325
- return this._detailLocation;
1325
+ let location = this._detailLocation;
1326
+ return location;
1326
1327
  }
1327
1328
 
1328
1329
  goToDetail() {