dashboard-shell-shell 1.0.121 → 1.0.1000000081

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 (372) hide show
  1. package/.DS_Store +0 -0
  2. package/assets/brand/harvester/favicon.png +0 -0
  3. package/assets/brand/suse/favicon.png +0 -0
  4. package/assets/icons/iconfont.css +19 -3
  5. package/assets/icons/iconfont.js +1 -1
  6. package/assets/icons/iconfont.json +28 -0
  7. package/assets/icons/iconfont.ttf +0 -0
  8. package/assets/icons/iconfont.woff +0 -0
  9. package/assets/icons/iconfont.woff2 +0 -0
  10. package/assets/images/pl/half-logo.svg +2 -23
  11. package/assets/styles/base/_functions.scss +0 -0
  12. package/assets/styles/base/_mixins.scss +0 -0
  13. package/assets/styles/base/_variables.scss +1 -1
  14. package/assets/styles/global/_labeled-input.scss +0 -1
  15. package/assets/styles/global/_layout.scss +1 -1
  16. package/assets/styles/global/_select.scss +4 -2
  17. package/assets/styles/global/_table.scss +5 -0
  18. package/assets/styles/vendor/vue-select.scss +2 -1
  19. package/assets/translations/en-us.yaml +1 -1
  20. package/assets/translations/zh-hans.yaml +25 -15
  21. package/chart/monitoring/index.vue +3 -1
  22. package/chart/monitoring/prometheus/index.vue +13 -10
  23. package/cloud-credential/aws.vue +2 -0
  24. package/components/ActionDropdown.vue +1 -1
  25. package/components/ActionDropdownShell.vue +71 -0
  26. package/components/ActionMenu.vue +2 -2
  27. package/components/ActionMenuShell.vue +3 -0
  28. package/components/AppModal.vue +84 -8
  29. package/components/AssignTo.vue +25 -11
  30. package/components/AsyncButton.vue +24 -7
  31. package/components/BannerGraphic.vue +1 -0
  32. package/components/ButtonDropdown.vue +26 -4
  33. package/components/ButtonGroup.vue +4 -0
  34. package/components/ButtonMultiAction.vue +1 -0
  35. package/components/CodeMirror.vue +19 -6
  36. package/components/CommunityLinks.vue +3 -3
  37. package/components/ConsumptionGauge.vue +24 -5
  38. package/components/CopyToClipboardText.vue +2 -1
  39. package/components/CruResource.vue +13 -7
  40. package/components/CruResourceFooter.vue +2 -2
  41. package/components/DashboardOptions.vue +29 -17
  42. package/components/DetailText.vue +5 -0
  43. package/components/DisableAuthProviderModal.vue +1 -0
  44. package/components/DotState.vue +84 -0
  45. package/components/ExplorerMembers.vue +1 -1
  46. package/components/ExplorerProjectsNamespaces.vue +89 -16
  47. package/components/FixedBanner.vue +19 -12
  48. package/components/GlobalRoleBindings.vue +5 -1
  49. package/components/GrafanaDashboard.vue +4 -4
  50. package/components/GrowlManager.vue +4 -1
  51. package/components/HardwareResourceGauge.vue +39 -3
  52. package/components/InfoBox.vue +3 -3
  53. package/components/InputOrDisplay.vue +28 -2
  54. package/components/LabelValue.vue +20 -1
  55. package/components/LandingPagePreference.vue +5 -3
  56. package/components/LocaleSelector.vue +39 -93
  57. package/components/ModalManager.vue +55 -0
  58. package/components/ModalWithCard.vue +13 -3
  59. package/components/MoveModal.vue +1 -0
  60. package/components/PodSecurityAdmission.vue +1 -1
  61. package/components/PromptChangePassword.vue +1 -1
  62. package/components/PromptModal.vue +16 -3
  63. package/components/PromptRemove.vue +29 -9
  64. package/components/PromptRestore.vue +1 -0
  65. package/components/ResourceCancelModal.vue +1 -0
  66. package/components/ResourceDetail/Masthead.vue +52 -17
  67. package/components/ResourceDetail/__tests__/Masthead.test.ts +5 -1
  68. package/components/ResourceDetail/index.vue +54 -16
  69. package/components/ResourceList/Masthead.vue +9 -4
  70. package/components/ResourceList/index.vue +4 -3
  71. package/components/ResourceTable.vue +1 -0
  72. package/components/SideNav.vue +20 -15
  73. package/components/SlideInPanelManager.vue +126 -0
  74. package/components/SortableTable/THead.vue +10 -4
  75. package/components/SortableTable/actions.js +1 -1
  76. package/components/SortableTable/index.vue +540 -554
  77. package/components/SortableTable/selection.js +2 -13
  78. package/components/StatusBadge.vue +77 -0
  79. package/components/Tabbed/Tab.vue +3 -3
  80. package/components/Tabbed/index.vue +47 -29
  81. package/components/Wizard.vue +2 -2
  82. package/components/YamlEditor.vue +1 -1
  83. package/components/__tests__/AsyncButton.test.ts +2 -2
  84. package/components/__tests__/FixedBanner.test.ts +3 -3
  85. package/components/__tests__/ModalManager.spec.ts +176 -0
  86. package/components/__tests__/SlideInPanelManager.spec.ts +166 -0
  87. package/components/auth/Principal.vue +10 -3
  88. package/components/auth/RoleDetailEdit.vue +1 -1
  89. package/components/auth/__tests__/RoleDetailEdit.test.ts +3 -2
  90. package/components/form/ArrayList.vue +123 -85
  91. package/components/form/ArrayListGrouped.vue +10 -2
  92. package/components/form/ArrayListSelect.vue +1 -1
  93. package/components/form/Command.vue +6 -15
  94. package/components/form/EnvVars.vue +16 -8
  95. package/components/form/Footer.vue +10 -7
  96. package/components/form/HealthCheck.vue +3 -3
  97. package/components/form/HookOption.vue +11 -16
  98. package/components/form/InputWithSelect.vue +6 -5
  99. package/components/form/KeyValue.vue +39 -10
  100. package/components/form/LabeledSelect.vue +73 -77
  101. package/components/form/Labels.vue +6 -3
  102. package/components/form/LifecycleHooks.vue +3 -3
  103. package/components/form/MatchExpressions.vue +42 -17
  104. package/components/form/NameNsDescription.vue +163 -116
  105. package/components/form/Networking.vue +20 -12
  106. package/components/form/NodeAffinity.vue +31 -23
  107. package/components/form/NodeScheduling.vue +13 -3
  108. package/components/form/Password.vue +11 -5
  109. package/components/form/PodAffinity.vue +47 -48
  110. package/components/form/Probe.vue +68 -66
  111. package/components/form/ResourceQuota/Namespace.vue +4 -4
  112. package/components/form/ResourceQuota/NamespaceRow.vue +5 -7
  113. package/components/form/ResourceQuota/Project.vue +9 -5
  114. package/components/form/ResourceQuota/ProjectRow.vue +4 -6
  115. package/components/form/ResourceSelector.vue +7 -9
  116. package/components/form/SSHKnownHosts/KnownHostsEditDialog.vue +6 -3
  117. package/components/form/SSHKnownHosts/__tests__/KnownHostsEditDialog.test.ts +12 -1
  118. package/components/form/SSHKnownHosts/index.vue +16 -2
  119. package/components/form/Security.vue +54 -56
  120. package/components/form/Select.vue +44 -7
  121. package/components/form/ShellInput.vue +5 -1
  122. package/components/form/SimpleSecretSelector.vue +29 -9
  123. package/components/form/Tolerations.vue +5 -1
  124. package/components/form/UnitInput.vue +10 -5
  125. package/components/form/ValueFromResource.vue +134 -121
  126. package/components/form/WorkloadPorts.vue +18 -18
  127. package/components/form/__tests__/ArrayList.test.ts +5 -2
  128. package/components/form/__tests__/MatchExpressions.test.ts +12 -12
  129. package/components/form/__tests__/NameNsDescription.test.ts +115 -14
  130. package/components/form/__tests__/Probe.test.ts +12 -8
  131. package/components/form/__tests__/SSHKnownHosts.test.ts +11 -0
  132. package/components/form/__tests__/Select.test.ts +37 -0
  133. package/components/form/__tests__/UnitInput.test.ts +4 -5
  134. package/components/formatter/BadgeStateFormatter.vue +8 -5
  135. package/components/formatter/InternalExternalIP.vue +2 -0
  136. package/components/formatter/LiveDate.vue +3 -3
  137. package/components/formatter/SecretData.vue +20 -7
  138. package/components/nav/Favorite.vue +5 -1
  139. package/components/nav/Group.vue +18 -4
  140. package/components/nav/Header.vue +39 -13
  141. package/components/nav/Jump.vue +7 -0
  142. package/components/nav/NamespaceFilter.vue +21 -11
  143. package/components/nav/Pinned.vue +1 -1
  144. package/components/nav/TopLevelMenu.vue +5 -17
  145. package/components/nav/Type.vue +30 -33
  146. package/components/nav/__tests__/TopLevelMenu.test.ts +0 -40
  147. package/components/rancherResourceDetail/Masthead.vue +769 -0
  148. package/components/rancherResourceDetail/__tests__/Masthead.test.ts +65 -0
  149. package/components/rancherResourceDetail/index.vue +591 -0
  150. package/components/rancherResourceList/Masthead-btn.vue +225 -0
  151. package/components/rancherResourceList/Masthead.vue +375 -0
  152. package/components/rancherResourceList/ResourceLoadingIndicator.vue +140 -0
  153. package/components/rancherResourceList/index.vue +307 -0
  154. package/components/rancherResourceList/resource-list.config.js +7 -0
  155. package/components/rancherResourceTable.vue +783 -0
  156. package/components/rancherSortableTable/THead.vue +561 -0
  157. package/components/rancherSortableTable/actions.js +153 -0
  158. package/components/rancherSortableTable/advanced-filtering.js +272 -0
  159. package/components/rancherSortableTable/debug.js +117 -0
  160. package/components/rancherSortableTable/filtering.js +290 -0
  161. package/components/rancherSortableTable/grouping.js +48 -0
  162. package/components/rancherSortableTable/index.vue +2712 -0
  163. package/components/rancherSortableTable/paging.js +155 -0
  164. package/components/rancherSortableTable/selection.js +629 -0
  165. package/components/rancherSortableTable/sortable-config.ts +4 -0
  166. package/components/rancherSortableTable/sorting.js +129 -0
  167. package/components/templates/blank.vue +4 -1
  168. package/components/templates/default.vue +8 -0
  169. package/components/templates/home.vue +10 -1
  170. package/components/templates/plain.vue +10 -1
  171. package/composables/focusTrap.ts +11 -3
  172. package/composables/useRuntimeFlag.ts +29 -0
  173. package/config/private-label.js +15 -10
  174. package/config/router/routes.js +21 -13
  175. package/config/store.js +4 -0
  176. package/config/table-headers.js +3 -2
  177. package/config/uiplugins.js +5 -1
  178. package/core/plugin-routes.ts +5 -115
  179. package/core/plugins.js +1 -1
  180. package/core/types.ts +23 -2
  181. package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +84 -23
  182. package/detail/autoscaling.horizontalpodautoscaler/index.vue +13 -3
  183. package/detail/provisioning.cattle.io.cluster.vue +72 -6
  184. package/dialog/AddCustomBadgeDialog.vue +1 -0
  185. package/dialog/DeactivateDriverDialog.vue +5 -4
  186. package/dialog/ForceMachineRemoveDialog.vue +6 -3
  187. package/dialog/GitRepoForceUpdateDialog.vue +1 -1
  188. package/dialog/ScalePoolDownDialog.vue +2 -2
  189. package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +16 -3
  190. package/edit/auth/__tests__/oidc.test.ts +162 -88
  191. package/edit/auth/azuread.vue +2 -1
  192. package/edit/auth/github.vue +1 -1
  193. package/edit/auth/googleoauth.vue +5 -1
  194. package/edit/auth/ldap/__tests__/config.test.ts +0 -14
  195. package/edit/auth/ldap/config.vue +0 -24
  196. package/edit/auth/ldap/index.vue +1 -1
  197. package/edit/auth/oidc.vue +39 -6
  198. package/edit/auth/saml.vue +1 -1
  199. package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +5 -2
  200. package/edit/cloudcredential.vue +24 -9
  201. package/edit/fleet.cattle.io.clustergroup.vue +5 -3
  202. package/edit/fleet.cattle.io.gitrepo.vue +2 -0
  203. package/edit/logging-flow/Match.vue +1 -1
  204. package/edit/logging.banzaicloud.io.output/__tests__/logging.banzaicloud.io.output.test.ts +40 -9
  205. package/edit/management.cattle.io.user.vue +28 -3
  206. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
  207. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
  208. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
  209. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
  210. package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
  211. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
  212. package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
  213. package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
  214. package/edit/monitoring.coreos.com.receiver/auth.vue +29 -29
  215. package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
  216. package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
  217. package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
  218. package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
  219. package/edit/namespace.vue +1 -2
  220. package/edit/networking.k8s.io.ingress/IngressClass.vue +7 -3
  221. package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
  222. package/edit/networking.k8s.io.ingress/__tests__/IngressClass.test.ts +58 -0
  223. package/edit/persistentvolume/__tests__/persistentvolume.test.ts +14 -2
  224. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +4 -1
  225. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +26 -9
  226. package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +8 -10
  227. package/edit/provisioning.cattle.io.cluster/rke2.vue +31 -40
  228. package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +5 -2
  229. package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +6 -1
  230. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +33 -2
  231. package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +3 -3
  232. package/edit/service.vue +0 -3
  233. package/edit/token.vue +32 -11
  234. package/edit/workload/Job.vue +6 -6
  235. package/edit/workload/__tests__/Job.test.ts +0 -1
  236. package/edit/workload/index.vue +1 -0
  237. package/edit/workload/mixins/workload.js +3 -3
  238. package/initialize/install-plugins.js +2 -1
  239. package/list/harvesterhci.io.management.cluster.vue +4 -1
  240. package/list/management.cattle.io.feature.vue +1 -0
  241. package/list/namespace.vue +3 -1
  242. package/list/provisioning.cattle.io.cluster.vue +20 -12
  243. package/list/workload.vue +7 -6
  244. package/machine-config/__tests__/vmwarevsphere.test.ts +48 -3
  245. package/machine-config/azure.vue +16 -4
  246. package/machine-config/vmwarevsphere.vue +16 -0
  247. package/mixins/resource-fetch.js +2 -1
  248. package/models/__tests__/logging.banzaicloud.io.flow.test.ts +88 -0
  249. package/models/__tests__/namespace.test.ts +25 -1
  250. package/models/cloudcredential.js +5 -0
  251. package/models/kontainerdriver.js +6 -3
  252. package/models/logging.banzaicloud.io.flow.js +2 -1
  253. package/models/management.cattle.io.node.js +3 -3
  254. package/models/management.cattle.io.setting.js +2 -1
  255. package/models/namespace.js +4 -5
  256. package/models/nodedriver.js +6 -3
  257. package/models/storage.k8s.io.storageclass.js +2 -2
  258. package/models/workload.js +4 -1
  259. package/package.json +1 -1
  260. package/pages/about.vue +16 -8
  261. package/pages/account/index.vue +80 -24
  262. package/pages/account/pri.vue +229 -0
  263. package/pages/auth/login.vue +195 -44
  264. package/pages/auth/logout.vue +4 -1
  265. package/pages/auth/setup.vue +144 -19
  266. package/pages/auth/verify.vue +13 -8
  267. package/pages/auth copy/login.vue +595 -0
  268. package/pages/auth copy/logout.vue +47 -0
  269. package/pages/auth copy/setup.vue +523 -0
  270. package/pages/auth copy/verify.vue +203 -0
  271. package/pages/c/_cluster/_product/namespaces.vue +5 -5
  272. package/pages/c/_cluster/apps/charts/chart.vue +1 -1
  273. package/pages/c/_cluster/apps/charts/install.vue +26 -26
  274. package/pages/c/_cluster/auth/config/index.vue +10 -12
  275. package/pages/c/_cluster/explorer/EventsTable.vue +38 -33
  276. package/pages/c/_cluster/explorer/index.vue +17 -15
  277. package/pages/c/_cluster/istio/index.vue +2 -2
  278. package/pages/c/_cluster/longhorn/index.vue +1 -1
  279. package/pages/c/_cluster/monitoring/index.vue +1 -1
  280. package/pages/c/_cluster/monitoring/monitor/_namespace/_id.vue +4 -2
  281. package/pages/c/_cluster/monitoring/monitor/create.vue +4 -2
  282. package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
  283. package/pages/c/_cluster/monitoring/route-receiver/_id.vue +4 -2
  284. package/pages/c/_cluster/monitoring/route-receiver/create.vue +5 -2
  285. package/pages/c/_cluster/neuvector/index.vue +1 -1
  286. package/pages/c/_cluster/settings/brand.vue +3 -3
  287. package/pages/c/_cluster/uiplugins/CatalogList/index.vue +8 -10
  288. package/pages/diagnostic.vue +59 -11
  289. package/pages/fail-whale.vue +14 -8
  290. package/pages/home.vue +24 -18
  291. package/pages/prefs.vue +9 -7
  292. package/pages/support/index.vue +4 -1
  293. package/pkg/tsconfig.json +9 -9
  294. package/pkg/vue.config.js +1 -1
  295. package/plugins/dashboard-store/normalize.js +3 -1
  296. package/plugins/dashboard-store/resource-class.js +31 -29
  297. package/plugins/internal-api/index.ts +37 -0
  298. package/plugins/internal-api/shared/base-api.ts +13 -0
  299. package/plugins/internal-api/shell/shell.api.ts +108 -0
  300. package/promptRemove/management.cattle.io.fleetworkspace.vue +1 -1
  301. package/promptRemove/management.cattle.io.globalrole.vue +1 -1
  302. package/promptRemove/management.cattle.io.project.vue +2 -2
  303. package/promptRemove/management.cattle.io.roletemplate.vue +1 -1
  304. package/promptRemove/pod.vue +1 -1
  305. package/public/index.html +2 -1
  306. package/rancher-components/BadgeState/BadgeState.vue +5 -1
  307. package/rancher-components/Banner/Banner.vue +8 -2
  308. package/rancher-components/Card/Card.vue +3 -6
  309. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
  310. package/rancher-components/Form/LabeledInput/LabeledInput.vue +5 -2
  311. package/rancher-components/Form/Radio/RadioButton.vue +3 -3
  312. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +1 -5
  313. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
  314. package/rancher-components/RcDropdown/RcDropdownItem.vue +1 -2
  315. package/rancher-components/RcDropdown/RcDropdownMenu.vue +7 -3
  316. package/rancher-components/RcDropdown/types.ts +1 -0
  317. package/scripts/clean +0 -0
  318. package/scripts/extension/bundle +20 -0
  319. package/scripts/extension/helm/charts/ui-plugin-server/templates/_helpers.tpl +2 -2
  320. package/scripts/extension/helm/charts/ui-plugin-server/templates/cr.yaml +2 -1
  321. package/scripts/extension/helm/charts/ui-plugin-server/values.yaml +2 -0
  322. package/scripts/extension/helm/scripts/package +0 -0
  323. package/scripts/extension/helm/scripts/patch +0 -0
  324. package/scripts/extension/helm/scripts/version +0 -0
  325. package/scripts/extension/helmpatch +44 -31
  326. package/scripts/extension/parse-tag-name +0 -0
  327. package/scripts/extension/publish +12 -12
  328. package/scripts/publish-shell.sh +18 -23
  329. package/scripts/serve-pkgs +0 -0
  330. package/scripts/sync-shell-deps +0 -0
  331. package/scripts/test-plugins-build.sh +4 -6
  332. package/scripts/typegen.sh +28 -46
  333. package/server/har-file.js +25 -3
  334. package/static/favicon.ico +0 -0
  335. package/static/favicon.png +0 -0
  336. package/static/loading-indicator.html +2 -2
  337. package/store/aws.js +9 -2
  338. package/store/features.js +2 -1
  339. package/store/i18n.js +3 -3
  340. package/store/modal.ts +71 -0
  341. package/store/slideInPanel.ts +47 -0
  342. package/store/type-map.js +2 -1
  343. package/types/cloud-shell/index.d.ts +11014 -0
  344. package/types/global-vue.d.ts +5 -0
  345. package/types/internal-api/shell/growl.d.ts +25 -0
  346. package/types/internal-api/shell/modal.d.ts +77 -0
  347. package/types/internal-api/shell/slideIn.d.ts +15 -0
  348. package/types/shell/index.d.ts +118 -128
  349. package/types/vue-shim.d.ts +4 -1
  350. package/utils/__tests__/object.test.ts +38 -4
  351. package/utils/__tests__/string.test.ts +2 -2
  352. package/utils/auth.js +1 -0
  353. package/utils/banners.js +0 -45
  354. package/utils/cluster.js +35 -0
  355. package/utils/color.js +9 -8
  356. package/utils/error.js +61 -3
  357. package/utils/errorTranslate.json +450 -30
  358. package/utils/object.js +46 -6
  359. package/utils/router.js +22 -1
  360. package/utils/select.js +26 -3
  361. package/utils/string.js +9 -8
  362. package/utils/title.ts +1 -1
  363. package/utils/validators/machine-pool.ts +20 -0
  364. package/vue.config.js +7 -2
  365. package/components/formatter/ExtensionCache.vue +0 -74
  366. package/components/formatter/Port.vue +0 -24
  367. package/components/formatter/SecretType.vue +0 -41
  368. package/types/resources/fleet.d.ts +0 -57
  369. package/types/resources/pod-security-admission.ts +0 -36
  370. package/types/resources/settings.d.ts +0 -93
  371. package/types/resources/userPreferences.d.ts +0 -13
  372. package/types/vue-shim.d +0 -20
@@ -18,10 +18,10 @@ export default {
18
18
  },
19
19
 
20
20
  data() {
21
- const { readinessProbe, livenessProbe, startupProbe } = this.value;
22
-
23
21
  return {
24
- readinessProbe, livenessProbe, startupProbe
22
+ readinessProbe: this.value.readinessProbe,
23
+ livenessProbe: this.value.livenessProbe,
24
+ startupProbe: this.value.startupProbe,
25
25
  };
26
26
  },
27
27
 
@@ -28,23 +28,18 @@ export default {
28
28
  },
29
29
 
30
30
  data() {
31
- const selectHook = null;
32
-
33
- const defaultExec = { exec: { command: [] } };
34
- const defaultHttpGet = {
35
- httpGet: {
36
- host: '',
37
- path: '',
38
- port: null,
39
- scheme: '',
40
- httpHeaders: null
41
- }
42
- };
43
-
44
31
  return {
45
- selectHook,
46
- defaultExec,
47
- defaultHttpGet,
32
+ selectHook: null,
33
+ defaultExec: { exec: { command: [] } },
34
+ defaultHttpGet: {
35
+ httpGet: {
36
+ host: '',
37
+ path: '',
38
+ port: null,
39
+ scheme: '',
40
+ httpHeaders: null
41
+ }
42
+ },
48
43
  schemeOptions: ['HTTP', 'HTTPS']
49
44
  };
50
45
  },
@@ -269,19 +269,19 @@ export default {
269
269
  margin-right: 0;
270
270
 
271
271
  &:hover:not(.focused):not(.disabled):not(.view) {
272
- border: 1px solid var(--input-hover-border) !important;
272
+ border: 0px solid var(--input-hover-border) !important;
273
273
  }
274
274
 
275
275
  &.focused {
276
- border: 1px solid var(--outline) !important;
276
+ border: 0px solid var(--outline) !important;
277
277
  }
278
278
 
279
279
  &:hover:not(.focused):not(.disabled) {
280
- border: 1px solid var(--input-hover-border) !important;
280
+ border: 0px solid var(--input-hover-border) !important;
281
281
  }
282
282
 
283
283
  &.focused {
284
- border: 1px solid var(--outline) !important;
284
+ border: 0px solid var(--outline) !important;
285
285
  }
286
286
 
287
287
  &.labeled-select.focused :deep(),
@@ -291,7 +291,8 @@ export default {
291
291
 
292
292
  &.labeled-select:not(.disabled):not(.view) :deep(),
293
293
  &.unlabeled-select:not(.disabled):not(.view) :deep() {
294
- border: solid 1px var(--input-border);
294
+ /* border: solid 1px var(--input-border); */
295
+ height: 32px;
295
296
  }
296
297
 
297
298
  &.labeled-select :deep(),
@@ -277,7 +277,7 @@ export default {
277
277
  const gap = this.canRemove ? ' 50px' : '';
278
278
  const size = 2 + this.extraColumns.length;
279
279
 
280
- return `grid-template-columns: repeat(${ size }, 1fr)${ gap };`;
280
+ return `grid-template-columns: repeat(${ size }, 400px)${ gap };`;
281
281
  },
282
282
  usedKeyOptions() {
283
283
  return this.rows.map((row) => row[this.keyName]);
@@ -328,7 +328,7 @@ export default {
328
328
  },
329
329
 
330
330
  getRows(value) {
331
- const rows = [];
331
+ let rows = [];
332
332
 
333
333
  if ( this.asMap ) {
334
334
  const input = value || {};
@@ -388,6 +388,17 @@ export default {
388
388
  });
389
389
  }
390
390
 
391
+ rows = rows.map((item) => {
392
+ if (item.key.includes('harvester')) {
393
+ item.key = item.key.replace('harvester', 'cloud');
394
+ }
395
+ if (item.value.includes('harvester')) {
396
+ item.value = item.value.replace('harvester', 'cloud');
397
+ }
398
+
399
+ return item;
400
+ });
401
+
391
402
  return rows;
392
403
  },
393
404
 
@@ -398,9 +409,15 @@ export default {
398
409
  [this.valueName]: value,
399
410
  };
400
411
 
412
+ obj.key = obj.key.replace('harvester', 'cloud');
413
+ obj.value = obj.value.replace('harvester', 'cloud');
401
414
  obj.binary = false;
402
415
  obj.canEncode = this.handleBase64;
403
416
  obj.supported = true;
417
+ // 上传镜像问题
418
+ const s = this.rows.filter(item => item.key !== obj.key);
419
+ this.rows = s
420
+
404
421
  this.rows.push(obj);
405
422
  this.queueUpdate();
406
423
  this.$nextTick(() => {
@@ -464,8 +481,11 @@ export default {
464
481
  const valueName = this.valueName;
465
482
 
466
483
  for ( const row of this.rows ) {
467
- let value = (row[valueName] || '');
468
- const key = (row[keyName] || '').trim();
484
+ // let value = (row[valueName] || '');
485
+ // const key = (row[keyName] || '').trim();
486
+
487
+ const key = (row[keyName].replace('cloud', 'harvester') || '').trim();
488
+ let value = (row[valueName].replace('cloud', 'harvester') || '').trim();
469
489
 
470
490
  if (value && typeOf(value) === 'object') {
471
491
  out[key] = JSON.parse(JSON.stringify(value));
@@ -760,7 +780,7 @@ export default {
760
780
  :disabled="disabled || isProtected(row.key)"
761
781
  :mode="mode"
762
782
  :placeholder="_valuePlaceholder"
763
- :min-height="40"
783
+ :min-height="32"
764
784
  :spellcheck="false"
765
785
  :aria-label="t('generic.ariaLabel.value', {index: i})"
766
786
  @update:value="queueUpdate"
@@ -823,7 +843,7 @@ export default {
823
843
  type="button"
824
844
  role="button"
825
845
  :disabled="isView || isProtected(row.key) || disabled"
826
- :aria-label="removeLabel || t('generic.remove')"
846
+ :aria-label="`${removeLabel || t('generic.remove')} ${ i+1 }`"
827
847
  class="btn role-link"
828
848
  @click="remove(i)"
829
849
  >
@@ -837,7 +857,7 @@ export default {
837
857
  </div>
838
858
  <div
839
859
  v-if="(addAllowed || readAllowed) && !isView"
840
- class="footer mt-20"
860
+ class="footer mt-10"
841
861
  >
842
862
  <slot
843
863
  name="add"
@@ -880,8 +900,8 @@ export default {
880
900
  }
881
901
  .kv-container {
882
902
  display: grid;
883
- align-items: center;
884
- column-gap: 20px;
903
+ /* align-items: center; */
904
+ column-gap: 10px;
885
905
  label {
886
906
  margin-bottom: 0;
887
907
  }
@@ -905,6 +925,9 @@ export default {
905
925
  }
906
926
  &.value textarea {
907
927
  padding: 10px 10px 10px 10px;
928
+ min-height:32px;
929
+ line-height: 12px;
930
+ border: solid var(--border-width) var(--input-border);
908
931
  }
909
932
 
910
933
  .text-monospace:not(.conceal) {
@@ -943,8 +966,14 @@ export default {
943
966
  }
944
967
  }
945
968
  input {
946
- height: 40px;
969
+ height: 32px;
947
970
  line-height: 1;
971
+ border: solid var(--border-width) var(--input-border);
972
+ padding: 4px 11px;
973
+ &:hover{
974
+ border: solid var(--border-width) var(--input-border);
975
+ box-shadow: 0 4px 6px 0 var(--input-border-box-shadow);
976
+ }
948
977
  }
949
978
  .footer {
950
979
  .protip {
@@ -50,6 +50,10 @@ export default {
50
50
  default: false,
51
51
  type: Boolean
52
52
  },
53
+ isLabel: {
54
+ default: false,
55
+ type: Boolean
56
+ },
53
57
  localizedLabel: {
54
58
  default: false,
55
59
  type: Boolean
@@ -111,7 +115,15 @@ export default {
111
115
  noOptionsLabelKey: {
112
116
  type: String,
113
117
  default: 'labelSelect.noOptions.empty'
114
- }
118
+ },
119
+ selectWidth: {
120
+ type: String,
121
+ default: ''
122
+ },
123
+ leftWidth: {
124
+ type: String,
125
+ default: ''
126
+ },
115
127
  },
116
128
 
117
129
  data() {
@@ -227,7 +239,7 @@ export default {
227
239
  },
228
240
 
229
241
  positionDropdown(dropdownList, component, { width }) {
230
- calculatePosition(dropdownList, component, width, this.placement);
242
+ calculatePosition(dropdownList, component, width, this.placement, this.selectWidth===''?'label': this.selectWidth, this.isLabel, this.leftWidth);
231
243
  },
232
244
 
233
245
  get,
@@ -278,6 +290,25 @@ export default {
278
290
  </script>
279
291
 
280
292
  <template>
293
+ <div style="display: flex;">
294
+ <div
295
+ :class="{ 'labeled-container': true, raised, empty, [mode]: true, 'is-lable': isLabel }"
296
+ :style="{ border: 'none', width: selectWidth===''?'160px':selectWidth,lineHeight: '32px' }"
297
+ >
298
+ <label v-if="hasLabel" :id="`labeled-select-uid-${uid}`">
299
+ <t
300
+ v-if="labelKey"
301
+ :k="labelKey"
302
+ />
303
+ <template v-else-if="label">{{ label }}</template>
304
+
305
+ <span
306
+ v-if="requiredField"
307
+ class="required"
308
+ >*</span>
309
+ </label>
310
+ </div>
311
+ <!-- label -->
281
312
  <div
282
313
  ref="select"
283
314
  class="labeled-select"
@@ -296,12 +327,13 @@ export default {
296
327
  }
297
328
  ]"
298
329
  :tabindex="isView || disabled ? -1 : 0"
330
+ role="listbox"
299
331
  @click="focusSearch"
300
332
  @keydown.enter="focusSearch"
301
333
  @keydown.down.prevent="focusSearch"
302
334
  @keydown.space.prevent="focusSearch"
303
335
  >
304
- <div
336
+ <!-- <div
305
337
  :class="{ 'labeled-container': true, raised, empty, [mode]: true }"
306
338
  :style="{ border: 'none' }"
307
339
  >
@@ -320,7 +352,7 @@ export default {
320
352
  class="required"
321
353
  >*</span>
322
354
  </label>
323
- </div>
355
+ </div> -->
324
356
  <v-select
325
357
  ref="select-input"
326
358
  :aria-labelledby="hasLabel ? `labeled-select-uid-${uid}` : ''"
@@ -344,7 +376,7 @@ export default {
344
376
  :modelValue="value != null && !loading ? value : ''"
345
377
  :dropdown-should-open="dropdownShouldOpen"
346
378
  :tabindex="-1"
347
- role="listbox"
379
+ role="listitem"
348
380
  @update:modelValue="$emit('selecting', $event); $emit('update:value', $event)"
349
381
  @search:blur="onBlur"
350
382
  @search:focus="onFocus"
@@ -354,6 +386,7 @@ export default {
354
386
  @option:selecting="$emit('selecting', $event)"
355
387
  @option:deselecting="$emit('deselecting', $event)"
356
388
  >
389
+
357
390
  <template #option="option">
358
391
  <template v-if="showTagPrompts">
359
392
  <div class="only-user-opts">
@@ -373,9 +406,9 @@ export default {
373
406
  </div>
374
407
  </div>
375
408
  </template>
376
- <template v-else-if="option.kind === 'divider'">
377
- <hr>
378
- </template>
409
+ <!-- <template v-else-if="option.kind === 'divider'">
410
+ <hr role="none">
411
+ </template> -->
379
412
  <template v-else-if="option.kind === 'highlighted'">
380
413
  <div class="option-kind-highlighted">
381
414
  {{ option.label }}
@@ -466,6 +499,7 @@ export default {
466
499
  :value="validationMessage"
467
500
  />
468
501
  </div>
502
+ </div>
469
503
  </template>
470
504
 
471
505
  <style lang='scss' scoped>
@@ -475,7 +509,11 @@ export default {
475
509
  // Prevent namespace field from wiggling or changing
476
510
  // height when it is toggled from a LabeledInput to a
477
511
  // LabeledSelect.
512
+ &:deep() .vs__actions:after {
513
+ padding-top: 10px;
514
+ }
478
515
  padding-bottom: 1px;
516
+ /* flex: 1; */
479
517
 
480
518
  &.no-label.compact-input {
481
519
  :deep() .vs__actions:after {
@@ -489,7 +527,7 @@ export default {
489
527
 
490
528
  &.no-label:not(.compact-input) {
491
529
  height: $input-height;
492
- padding-top: 4px;
530
+ padding-top: 0px;
493
531
 
494
532
  :deep() .vs__actions:after {
495
533
  top: 0;
@@ -551,6 +589,7 @@ export default {
551
589
 
552
590
  &.taggable {
553
591
  :deep() .vs__selected-options {
592
+
554
593
  padding: 3px 0;
555
594
  .vs__selected {
556
595
  border-color: var(--accent-btn);
@@ -576,7 +615,7 @@ export default {
576
615
  }
577
616
 
578
617
  :deep() .vs__selected-options {
579
- margin-top: -5px;
618
+ margin-top: 0px;
580
619
  }
581
620
 
582
621
  :deep() .v-select:not(.vs--single) {
@@ -588,7 +627,7 @@ export default {
588
627
  :deep() .vs__actions {
589
628
  &:after {
590
629
  position: relative;
591
- top: -10px;
630
+ top: 0px;
592
631
  }
593
632
  }
594
633
 
@@ -626,73 +665,21 @@ export default {
626
665
  }
627
666
  }
628
667
 
629
- $icon-size: 18px;
630
-
631
- // This represents the drop down area. Note - it might be attached to body and NOT the parent label select div
632
- .vs__dropdown-menu {
633
-
634
- // Styling for individual options
635
- .vs__dropdown-option .vs__option-kind {
636
- &-group {
637
- display: flex;
638
- align-items: center;
639
-
640
- i { // icon
641
- width: $icon-size;
642
- }
643
-
644
- > b { // group label
645
- flex: 1;
646
- }
647
-
648
- > div { // badge
649
- background-color: var(--primary);
650
- border-radius: 4px;
651
- color: var(--primary-text);
652
- font-size: 12px;
653
- height: 18px;
654
- line-height: 18px;
655
- margin-top: 1px;
656
- padding: 0 10px;
657
- }
658
- }
659
-
660
- &.has-icon {
661
- padding-left: $icon-size;
662
- }
668
+ // Styling for option group badge
669
+ .vs__dropdown-menu .vs__dropdown-option .vs__option-kind-group {
670
+ display: flex;
671
+ > b {
672
+ flex: 1;
663
673
  }
664
-
665
- &.has-icon .vs__option-kind div{
666
- padding-left: $icon-size;
667
- }
668
-
669
- .pagination-slot {
670
- display: flex;
671
- align-items: center;
672
- justify-content: center;
673
- position: relative;
674
- margin-top: 5px;
675
-
676
- .load-more {
677
- display: flex;
678
- align-items: center;
679
- height: 19px;
680
-
681
- a {
682
- cursor: pointer;
683
- }
684
- }
685
-
686
- .count {
687
- position: absolute;
688
- right: 10px;
689
- }
690
- }
691
-
692
- .no-options-slot .paginating {
693
- display: flex;
694
- align-items: center;
695
- justify-content: center;
674
+ > div {
675
+ background-color: var(--primary);
676
+ border-radius: 4px;
677
+ color: var(--primary-text);
678
+ font-size: 12px;
679
+ height: 18px;
680
+ line-height: 18px;
681
+ margin-top: 1px;
682
+ padding: 0 10px;
696
683
  }
697
684
  }
698
685
 
@@ -720,4 +707,13 @@ $icon-size: 18px;
720
707
  margin: 0px calc(-#{$input-padding-sm}/2);
721
708
  padding: 3px 20px;
722
709
  }
710
+
711
+ .is-lable{
712
+ width: 0px !important;
713
+ }
714
+
715
+ .gafanana-select{
716
+ width: 300px;
717
+
718
+ }
723
719
  </style>
@@ -84,9 +84,12 @@ export default {
84
84
  <div :class="defaultSectionClass">
85
85
  <div class="labels">
86
86
  <div class="labels__header">
87
- <h3 v-if="showLabelTitle">
87
+ <div
88
+ v-if="showLabelTitle"
89
+ class="clearFix mb-20"
90
+ >
88
91
  <t k="labels.labels.title" />
89
- </h3>
92
+ </div>
90
93
  <ToggleSwitch
91
94
  v-if="value.hasSystemLabels"
92
95
  v-model:value="toggler"
@@ -94,7 +97,7 @@ export default {
94
97
  :on-label="t('labels.labels.show')"
95
98
  />
96
99
  </div>
97
- <p class="mt-10 mb-10">
100
+ <p class="mb-20">
98
101
  <t k="labels.labels.description" />
99
102
  </p>
100
103
  <div :class="columnsClass">
@@ -24,10 +24,10 @@ export default {
24
24
  },
25
25
 
26
26
  data() {
27
- const { postStart, preStop } = this.value;
28
-
29
27
  return {
30
- postStart, preStop, hookOptions: ['postStart', 'preStop']
28
+ postStart: this.value.postStart,
29
+ preStop: this.value.preStop,
30
+ hookOptions: ['postStart', 'preStop']
31
31
  };
32
32
  },
33
33
 
@@ -70,6 +70,14 @@ export default {
70
70
  },
71
71
 
72
72
  data() {
73
+ return {
74
+ ops: [],
75
+ rules: [],
76
+ custom: []
77
+ };
78
+ },
79
+
80
+ created() {
73
81
  const t = this.$store.getters['i18n/t'];
74
82
 
75
83
  const podOptions = [
@@ -88,8 +96,6 @@ export default {
88
96
  { label: t('workload.scheduling.affinity.matchExpressions.greaterThan'), value: 'Gt' },
89
97
  ];
90
98
 
91
- const ops = this.type === NODE ? nodeOptions : podOptions;
92
-
93
99
  let rules;
94
100
 
95
101
  // special case for matchFields and matchExpressions
@@ -127,11 +133,8 @@ export default {
127
133
  rules.push(newRule);
128
134
  }
129
135
 
130
- return {
131
- ops,
132
- rules,
133
- custom: []
134
- };
136
+ this.rules = rules;
137
+ this.ops = this.type === NODE ? nodeOptions : podOptions;
135
138
  },
136
139
 
137
140
  computed: {
@@ -242,6 +245,10 @@ export default {
242
245
 
243
246
  <template>
244
247
  <div>
248
+ <slot
249
+ v-if="rules.length"
250
+ name="header"
251
+ />
245
252
  <button
246
253
  v-if="showRemove && !isView"
247
254
  type="button"
@@ -282,7 +289,8 @@ export default {
282
289
  :data-testid="`input-match-type-field-${index}`"
283
290
  >
284
291
  <div v-if="isView">
285
- {{ row.matching }}
292
+ {{ row.matching.replace('harvester', 'cloud') }}
293
+ <!-- {{ row.matching }} -->
286
294
  </div>
287
295
  <LabeledSelect
288
296
  v-else
@@ -296,8 +304,8 @@ export default {
296
304
  <div
297
305
  :data-testid="`input-match-expression-key-${index}`"
298
306
  >
299
- <div v-if="isView">
300
- {{ row.key }}
307
+ <div v-if="isView" class="view-item-value">
308
+ {{ row.key.replace('harvester', 'cloud') }}
301
309
  </div>
302
310
  <input
303
311
  v-else-if="!hasKeySelectOptions"
@@ -317,7 +325,7 @@ export default {
317
325
  <div
318
326
  :data-testid="`input-match-expression-operator-${index}`"
319
327
  >
320
- <div v-if="isView">
328
+ <div v-if="isView" class="view-item-value">
321
329
  {{ row.operator }}
322
330
  </div>
323
331
  <Select
@@ -343,7 +351,7 @@ export default {
343
351
  v-else
344
352
  :data-testid="`input-match-expression-values-${index}`"
345
353
  >
346
- <div v-if="isView">
354
+ <div v-if="isView" class="view-item-value">
347
355
  {{ row.values }}
348
356
  </div>
349
357
  <input
@@ -418,14 +426,20 @@ export default {
418
426
  justify-content: center;
419
427
  }
420
428
 
429
+ .match-expression-header{
430
+ margin-top: 24px;
431
+ }
421
432
  .match-expression-row, .match-expression-header {
422
- display: grid;
423
- grid-template-columns: 1fr 1fr 1fr;
433
+ /* display: grid; */
434
+ display: flex;
435
+ /* grid-template-columns: 1fr 1fr 1fr; */
424
436
  margin: 5px 0;
425
- grid-gap: $column-gutter;
437
+ /* grid-gap: $column-gutter; */
438
+ grid-gap: 10px;
426
439
 
427
440
  & > LABEL {
428
441
  margin: 0;
442
+ width: 400px;
429
443
  }
430
444
 
431
445
  &:not(.view){
@@ -434,8 +448,15 @@ export default {
434
448
  }
435
449
 
436
450
  .match-expression-row > div > input {
437
- min-height: 40px !important;
451
+ min-height: 32px !important;
452
+ border: solid var(--border-width) var(--input-border);
453
+ padding: 4px 11px;
454
+ width: 400px;
455
+ &:hover{
456
+ box-shadow: 0 4px 6px 0 var(--input-border-box-shadow);
457
+ }
438
458
  }
459
+
439
460
  .match-expression-row-matching, .match-expression-header-matching {
440
461
  grid-template-columns: 1fr 1fr 1fr 1fr;
441
462
 
@@ -443,4 +464,8 @@ export default {
443
464
  grid-template-columns: 1fr 1fr 1fr 1fr 100px;
444
465
  }
445
466
  }
446
- </style>
467
+
468
+ .view-item-value{
469
+ width: 400px;
470
+ }
471
+ </style>