@rancher/shell 3.0.12-rc.1 → 3.0.12-rc.2
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.
- package/assets/images/providers/entraid-black.svg +4 -0
- package/assets/images/providers/entraid.svg +9 -0
- package/assets/images/vendor/entraid.svg +9 -0
- package/assets/styles/app.scss +0 -1
- package/assets/translations/en-us.yaml +19 -17
- package/assets/translations/zh-hans.yaml +4 -8
- package/chart/__tests__/S3.test.ts +10 -3
- package/components/CountBox.vue +20 -0
- package/components/CreateDriver.vue +0 -12
- package/components/DetailText.vue +12 -3
- package/components/SelectIconGrid.vue +5 -0
- package/components/__tests__/CountBox.test.ts +72 -0
- package/components/__tests__/DetailText.test.ts +113 -0
- package/components/fleet/FleetClusterTargets/index.vue +18 -1
- package/components/form/InputWithSelect.vue +18 -10
- package/components/form/KeyValue.vue +17 -1
- package/components/form/LabeledSelect.vue +82 -24
- package/components/form/Select.vue +73 -56
- package/components/form/ServiceNameSelect.vue +13 -11
- package/components/form/__tests__/KeyValue.test.ts +66 -0
- package/components/form/__tests__/NodeScheduling.test.ts +9 -0
- package/components/form/labeled-select-utils/useLabeledSelectPagination.ts +138 -0
- package/components/nav/Group.vue +7 -6
- package/components/nav/Header.vue +24 -3
- package/components/nav/NotificationCenter/Notification.vue +4 -1
- package/components/nav/NotificationCenter/NotificationHeader.vue +20 -8
- package/components/nav/NotificationCenter/__tests__/NotificationHeader.test.ts +80 -0
- package/components/nav/Type.vue +8 -7
- package/components/nav/WindowManager/index.vue +2 -1
- package/components/nav/WorkspaceSwitcher.vue +13 -0
- package/components/nav/__tests__/Group.test.ts +67 -0
- package/components/nav/__tests__/Header.test.ts +235 -0
- package/components/nav/__tests__/Type.test.ts +20 -3
- package/components/templates/default.vue +34 -4
- package/components/templates/home.vue +12 -25
- package/components/templates/plain.vue +13 -26
- package/composables/useLabeledFormElement.ts +10 -2
- package/composables/useLabeledSelect.ts +60 -0
- package/composables/useUserRetentionValidation.ts +1 -49
- package/config/cookies.js +0 -1
- package/config/labels-annotations.js +1 -0
- package/config/query-params.js +1 -0
- package/config/router/routes.js +0 -8
- package/core/__tests__/plugin-products.test.ts +616 -25
- package/core/plugin-products-base.ts +31 -14
- package/core/plugin-products-helpers.ts +5 -4
- package/core/plugin-types.ts +18 -3
- package/core/types.ts +3 -1
- package/detail/__tests__/management.cattle.io.fleetworkspace.test.ts +128 -0
- package/detail/management.cattle.io.fleetworkspace.vue +49 -0
- package/edit/__tests__/fleet.cattle.io.helmop.test.ts +9 -0
- package/edit/__tests__/kontainerDriver.test.ts +0 -13
- package/edit/__tests__/nodeDriver.test.ts +5 -11
- package/edit/__tests__/resources.cattle.io.restore.test.ts +9 -0
- package/edit/auditlog.cattle.io.auditpolicy/__tests__/__snapshots__/General.test.ts.snap +6 -0
- package/edit/auth/__tests__/oidc.test.ts +54 -0
- package/edit/auth/azuread.vue +1 -1
- package/edit/auth/oidc.vue +8 -0
- package/edit/kontainerDriver.vue +1 -2
- package/edit/nodeDriver.vue +0 -2
- package/edit/provisioning.cattle.io.cluster/AgentEnv.vue +1 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/AgentEnv.test.ts +25 -0
- package/edit/provisioning.cattle.io.cluster/index.vue +70 -99
- package/initialize/App.vue +29 -2
- package/initialize/install-plugins.js +0 -2
- package/list/__tests__/management.cattle.io.feature.test.ts +105 -0
- package/list/catalog.cattle.io.app.vue +25 -5
- package/list/management.cattle.io.feature.vue +1 -1
- package/list/management.cattle.io.fleetworkspace.vue +8 -0
- package/machine-config/amazonec2.vue +1 -0
- package/mixins/chart.js +40 -9
- package/models/__tests__/catalog.cattle.io.app.test.ts +15 -1
- package/models/__tests__/catalog.cattle.io.clusterrepo.test.ts +84 -0
- package/models/__tests__/chart.test.ts +99 -6
- package/models/__tests__/management.cattle.io.feature.test.ts +131 -0
- package/models/__tests__/monitoring.coreos.com.alertmanagerconfig.test.ts +98 -0
- package/models/catalog.cattle.io.app.js +21 -17
- package/models/catalog.cattle.io.clusterrepo.js +39 -11
- package/models/chart.js +33 -19
- package/models/fleet-application.js +1 -1
- package/models/fleet.cattle.io.bundle.js +1 -1
- package/models/kontainerdriver.js +11 -0
- package/models/management.cattle.io.authconfig.js +5 -1
- package/models/management.cattle.io.cluster.js +0 -53
- package/models/management.cattle.io.feature.js +3 -3
- package/models/management.cattle.io.kontainerdriver.js +1 -26
- package/models/monitoring.coreos.com.alertmanagerconfig.js +31 -17
- package/models/nodedriver.js +7 -0
- package/package.json +13 -12
- package/pages/c/_cluster/apps/charts/__tests__/chart.test.ts +189 -0
- package/pages/c/_cluster/apps/charts/__tests__/index.test.ts +55 -0
- package/pages/c/_cluster/apps/charts/__tests__/install.test.ts +53 -0
- package/pages/c/_cluster/apps/charts/chart.vue +217 -33
- package/pages/c/_cluster/apps/charts/index.vue +2 -2
- package/pages/c/_cluster/apps/charts/install.vue +8 -3
- package/pages/c/_cluster/auth/user.retention/index.vue +55 -22
- package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +5 -7
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +39 -2
- package/pages/c/_cluster/uiplugins/__tests__/PluginInfoPanel.test.ts +61 -0
- package/pages/c/_cluster/uiplugins/__tests__/index.test.ts +15 -10
- package/pages/c/_cluster/uiplugins/index.vue +23 -25
- package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +205 -1
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +82 -4
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -1
- package/scripts/test-plugins-build.sh +5 -2
- package/server/server-middleware.js +2 -2
- package/static/humans.txt +1 -0
- package/static/robots.txt +34 -0
- package/static/welcome-cow.svg +18 -0
- package/store/__tests__/catalog.test.ts +161 -11
- package/store/auth.js +0 -3
- package/store/catalog.js +60 -8
- package/types/shell/index.d.ts +26 -22
- package/utils/__tests__/git.test.ts +270 -0
- package/utils/__tests__/inactivity.test.ts +316 -0
- package/utils/__tests__/object.test.ts +77 -0
- package/utils/__tests__/time.test.ts +14 -1
- package/utils/__tests__/url.test.ts +246 -0
- package/utils/object.js +33 -2
- package/utils/time.ts +5 -0
- package/vue.config.js +0 -9
- package/assets/images/providers/azuread-black.svg +0 -22
- package/assets/images/providers/azuread.svg +0 -25
- package/assets/images/vendor/azuread.svg +0 -18
- package/assets/styles/fonts/_dots.scss +0 -18
- package/components/EmberPage.vue +0 -622
- package/components/EmberPageView.vue +0 -39
- package/components/form/labeled-select-utils/labeled-select-pagination.ts +0 -116
- package/mixins/labeled-form-element.ts +0 -225
- package/pages/c/_cluster/explorer/tools/pages/_page.vue +0 -28
- package/pages/c/_cluster/manager/pages/_page.vue +0 -22
- package/pages/c/_cluster/mcapps/pages/_page.vue +0 -22
- package/plugins/ember-cookie.js +0 -17
- package/utils/ember-page.js +0 -30
package/utils/object.js
CHANGED
|
@@ -220,8 +220,14 @@ export function diff(from, to, preventNull = false) {
|
|
|
220
220
|
if ( Array.isArray(toVal) || Array.isArray(fromVal) ) {
|
|
221
221
|
// Don't diff arrays, just use the whole value
|
|
222
222
|
res[k] = toVal;
|
|
223
|
-
} else if ( isObject(toVal) && isObject(
|
|
224
|
-
|
|
223
|
+
} else if ( isObject(toVal) && isObject(fromVal) ) {
|
|
224
|
+
const nested = diff(fromVal, toVal, preventNull);
|
|
225
|
+
|
|
226
|
+
if (isEmpty(toVal) && !isEmpty(fromVal)) {
|
|
227
|
+
res[k] = {};
|
|
228
|
+
} else if (!isEmpty(nested)) {
|
|
229
|
+
res[k] = nested;
|
|
230
|
+
}
|
|
225
231
|
} else {
|
|
226
232
|
res[k] = toVal;
|
|
227
233
|
}
|
|
@@ -235,6 +241,31 @@ export function diff(from, to, preventNull = false) {
|
|
|
235
241
|
|
|
236
242
|
for ( const k of missing ) {
|
|
237
243
|
// we need to gate this in order to prevent unforseen problems with addonConfig
|
|
244
|
+
const hasDescendant = toKeys.some(
|
|
245
|
+
(tk) => tk.startsWith(`${ k }.`)
|
|
246
|
+
);
|
|
247
|
+
|
|
248
|
+
if (hasDescendant) {
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// If we already have a value in 'out' for any parent of this missing key, do NOT nullify the child.
|
|
253
|
+
const parts = splitObjectPath(k);
|
|
254
|
+
let hasUpdatedParent = false;
|
|
255
|
+
|
|
256
|
+
for (let i = 1; i < parts.length; i++) {
|
|
257
|
+
const parentPath = joinObjectPath(parts.slice(0, i));
|
|
258
|
+
|
|
259
|
+
if (get(out, parentPath) !== undefined) {
|
|
260
|
+
hasUpdatedParent = true;
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
if (hasUpdatedParent) {
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
|
|
238
269
|
if (preventNull) {
|
|
239
270
|
// keys that come from "definedKeys" method are strings with "" chars inside... We need to clean them up
|
|
240
271
|
// so that we can access the value of the obj property
|
package/utils/time.ts
CHANGED
|
@@ -2,6 +2,11 @@ import day from 'dayjs';
|
|
|
2
2
|
import { escapeHtml } from '@shell/utils/string';
|
|
3
3
|
import { DATE_FORMAT, TIME_FORMAT } from '@shell/store/prefs';
|
|
4
4
|
import { type Store } from 'vuex';
|
|
5
|
+
import { ZERO_TIME } from '@shell/config/types';
|
|
6
|
+
|
|
7
|
+
export function isMissingDate(date: string | undefined | null): boolean {
|
|
8
|
+
return !date || date === ZERO_TIME;
|
|
9
|
+
}
|
|
5
10
|
|
|
6
11
|
const FACTORS = [60, 60, 24];
|
|
7
12
|
const LABELS = ['sec', 'min', 'hour', 'day'];
|
package/vue.config.js
CHANGED
|
@@ -75,15 +75,6 @@ const getProxyConfig = (proxyConfig) => ({
|
|
|
75
75
|
'/v1-*': proxyOpts(api), // SAML, KDM, etc
|
|
76
76
|
'/rancherversion': proxyPrimeOpts(api), // Rancher version endpoint
|
|
77
77
|
'/version': proxyPrimeOpts(api), // Rancher Kube version endpoint
|
|
78
|
-
// These are for Ember embedding
|
|
79
|
-
'/c/*/edit': proxyOpts('https://127.0.0.1:8000'), // Can't proxy all of /c because that's used by Vue too
|
|
80
|
-
'/k/': proxyOpts('https://127.0.0.1:8000'),
|
|
81
|
-
'/g/': proxyOpts('https://127.0.0.1:8000'),
|
|
82
|
-
'/n/': proxyOpts('https://127.0.0.1:8000'),
|
|
83
|
-
'/p/': proxyOpts('https://127.0.0.1:8000'),
|
|
84
|
-
'/assets': proxyOpts('https://127.0.0.1:8000'),
|
|
85
|
-
'/translations': proxyOpts('https://127.0.0.1:8000'),
|
|
86
|
-
'/engines-dist': proxyOpts('https://127.0.0.1:8000'),
|
|
87
78
|
});
|
|
88
79
|
|
|
89
80
|
/**
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
-
viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
|
|
5
|
-
<g>
|
|
6
|
-
<path d="M54.5,37.8000031C53.9000015,38,53.5,38.2000046,52.9000015,38.2000046v30.5999985
|
|
7
|
-
c0.4000015,0,0.8000031,0.1999969,1.1999969,0.4000015l15.5999985-10
|
|
8
|
-
c-0.4000015-0.8000031-0.4000015-1.8000031-0.4000015-2.8000031c0-1.4000015,0.4000015-3,1.1999969-4.1999969L54.5,37.8000031z"/>
|
|
9
|
-
<path d="M50.0999947,0L0.2999973,58.8000031L50.0999947,100l49.6000099-41.1999969L50.0999947,0z M76.9000015,64.5999985
|
|
10
|
-
c-1.8000031,0-3.5999985-0.5999985-5-1.8000031L57.2999954,72c1,1.4000015,1.4000015,3,1.5999985,4.5999985
|
|
11
|
-
C59.4999924,81,56.6999969,85,52.2999954,85.8000031c-4.4000015,0.6000061-8.4000015-2.1999969-9.1999969-6.6000061
|
|
12
|
-
c-0.1999969-0.8000031-0.1999969-1.5999985,0-2.5999985C43.0999985,75,43.5,73.4000015,44.5,72.1999969l-15.4000034-10
|
|
13
|
-
c-3,3-8,3-11,0c-1.4000015-1.4000015-2.4000015-3.5999985-2.4000015-5.5999985c0-4.4000015,3.5999985-8,8-8
|
|
14
|
-
C25.2999935,48.5999985,26.899992,49,28.0999966,50l16.0000019-14.8000031c-1.1999969-1.5999985-2-3.5999985-2-5.5999985
|
|
15
|
-
c0-5,4-8.8000031,9-8.8000031s8.8000031,4,8.8000031,8.8000031c0,2-0.8000031,4-2,5.5999985l15.4000015,14.4000015
|
|
16
|
-
c4-2,8.7999954-0.5999985,10.7999954,3.4000015s0.6000061,8.8000031-3.3999939,10.8000031
|
|
17
|
-
C79.2999954,64.1999969,78.0999985,64.5999985,76.9000015,64.5999985z"/>
|
|
18
|
-
<path d="M30.4999981,53.1999969C31.3000011,55,31.4999981,57,30.8999996,58.7999954l16.4000034,10.5999985
|
|
19
|
-
c0.4000015-0.1999969,0.8000031-0.4000015,1.4000015-0.4000015V38.4000015c-0.5999985,0-1.1999969-0.1999969-1.5999985-0.5999985
|
|
20
|
-
L30.4999981,53.1999969z"/>
|
|
21
|
-
</g>
|
|
22
|
-
</svg>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
-
viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
.st0{fill:#00AAF2;}
|
|
7
|
-
</style>
|
|
8
|
-
<g>
|
|
9
|
-
<path class="st0" d="M54.5,37.8000031C53.9000015,38,53.5,38.2000046,52.9000015,38.2000046v30.5999985
|
|
10
|
-
c0.4000015,0,0.8000031,0.1999969,1.1999969,0.4000015l15.5999985-10
|
|
11
|
-
c-0.4000015-0.8000031-0.4000015-1.8000031-0.4000015-2.8000031c0-1.4000015,0.4000015-3,1.1999969-4.1999969L54.5,37.8000031z"/>
|
|
12
|
-
<path class="st0" d="M50.0999947,0L0.2999973,58.8000031L50.0999947,100l49.6000099-41.1999969L50.0999947,0z
|
|
13
|
-
M76.9000015,64.5999985c-1.8000031,0-3.5999985-0.5999985-5-1.8000031L57.2999954,72c1,1.4000015,1.4000015,3,1.5999985,4.5999985
|
|
14
|
-
C59.4999924,81,56.6999969,85,52.2999954,85.8000031c-4.4000015,0.6000061-8.4000015-2.1999969-9.1999969-6.6000061
|
|
15
|
-
c-0.1999969-0.8000031-0.1999969-1.5999985,0-2.5999985C43.0999985,75,43.5,73.4000015,44.5,72.1999969l-15.4000034-10
|
|
16
|
-
c-3,3-8,3-11,0c-1.4000015-1.4000015-2.4000015-3.5999985-2.4000015-5.5999985c0-4.4000015,3.5999985-8,8-8
|
|
17
|
-
C25.2999935,48.5999985,26.899992,49,28.0999966,50l16.0000019-14.8000031c-1.1999969-1.5999985-2-3.5999985-2-5.5999985
|
|
18
|
-
c0-5,4-8.8000031,9-8.8000031s8.8000031,4,8.8000031,8.8000031c0,2-0.8000031,4-2,5.5999985l15.4000015,14.4000015
|
|
19
|
-
c4-2,8.7999954-0.5999985,10.7999954,3.4000015s0.6000061,8.8000031-3.3999939,10.8000031
|
|
20
|
-
C79.2999954,64.1999969,78.0999985,64.5999985,76.9000015,64.5999985z"/>
|
|
21
|
-
<path class="st0" d="M30.4999981,53.1999969C31.3000011,55,31.4999981,57,30.8999996,58.7999954l16.4000034,10.5999985
|
|
22
|
-
c0.4000015-0.1999969,0.8000031-0.4000015,1.4000015-0.4000015V38.4000015c-0.5999985,0-1.1999969-0.1999969-1.5999985-0.5999985
|
|
23
|
-
L30.4999981,53.1999969z"/>
|
|
24
|
-
</g>
|
|
25
|
-
</svg>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
-
viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve">
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
.st0{fill:#00AAF2;}
|
|
7
|
-
</style>
|
|
8
|
-
<g>
|
|
9
|
-
<path class="st0" d="M32.2,23.9c-0.3,0.1-0.5,0.2-0.8,0.2v15.3c0.2,0,0.4,0.1,0.6,0.2l7.8-5c-0.2-0.4-0.2-0.9-0.2-1.4
|
|
10
|
-
c0-0.7,0.2-1.5,0.6-2.1L32.2,23.9z"/>
|
|
11
|
-
<path class="st0" d="M30,5L5.1,34.4L30,55l24.8-20.6L30,5z M43.4,37.3c-0.9,0-1.8-0.3-2.5-0.9L33.6,41c0.5,0.7,0.7,1.5,0.8,2.3
|
|
12
|
-
c0.3,2.2-1.1,4.2-3.3,4.6c-2.2,0.3-4.2-1.1-4.6-3.3c-0.1-0.4-0.1-0.8,0-1.3c0-0.8,0.2-1.6,0.7-2.2l-7.7-5c-1.5,1.5-4,1.5-5.5,0
|
|
13
|
-
c-0.7-0.7-1.2-1.8-1.2-2.8c0-2.2,1.8-4,4-4c0.8,0,1.6,0.2,2.2,0.7l8-7.4c-0.6-0.8-1-1.8-1-2.8c0-2.5,2-4.4,4.5-4.4s4.4,2,4.4,4.4
|
|
14
|
-
c0,1-0.4,2-1,2.8l7.7,7.2c2-1,4.4-0.3,5.4,1.7s0.3,4.4-1.7,5.4C44.6,37.1,44,37.3,43.4,37.3z"/>
|
|
15
|
-
<path class="st0" d="M20.2,31.6c0.4,0.9,0.5,1.9,0.2,2.8l8.2,5.3c0.2-0.1,0.4-0.2,0.7-0.2V24.2c-0.3,0-0.6-0.1-0.8-0.3L20.2,31.6z"
|
|
16
|
-
/>
|
|
17
|
-
</g>
|
|
18
|
-
</svg>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: 'dotsfont';
|
|
3
|
-
font-weight: normal;
|
|
4
|
-
font-style: normal;
|
|
5
|
-
src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.conceal:not(:invalid):not(:focus) {
|
|
9
|
-
font-family: 'dotsfont' !important;
|
|
10
|
-
font-size: 6px;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.conceal PRE {
|
|
14
|
-
font-family: 'dotsfont' !important;
|
|
15
|
-
font-size: 10px;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|