@rancher/shell 0.3.2 → 0.3.3
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/translations/en-us.yaml +2 -1
- package/components/form/InputWithSelect.vue +1 -0
- package/config/harvester-manager-types.js +1 -0
- package/edit/fleet.cattle.io.gitrepo.vue +12 -3
- package/edit/provisioning.cattle.io.cluster/import.vue +1 -1
- package/package.json +2 -1
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +9 -2
- package/pages/c/_cluster/uiplugins/index.vue +4 -3
- package/store/prefs.js +19 -12
|
@@ -2074,9 +2074,10 @@ fleet:
|
|
|
2074
2074
|
empty: The root of the repo is used by default. To use one or more different directories, add them here.
|
|
2075
2075
|
repo:
|
|
2076
2076
|
label: Repository URL
|
|
2077
|
-
placeholder:
|
|
2077
|
+
placeholder: e.g. https://github.com/rancher/fleet-examples.git or git@github.com:rancher/fleet-examples.git
|
|
2078
2078
|
addRepo: Add Repository
|
|
2079
2079
|
noRepos: No repositories have been added
|
|
2080
|
+
protocolBanner: Enter a valid HTTPS or SSH URL to a git repository.
|
|
2080
2081
|
add:
|
|
2081
2082
|
steps:
|
|
2082
2083
|
repoInfo:
|
|
@@ -4,6 +4,7 @@ import { LabeledInput } from '@components/Form/LabeledInput';
|
|
|
4
4
|
import LabeledSelect from '@shell/components/form/LabeledSelect';
|
|
5
5
|
import Select from '@shell/components/form/Select';
|
|
6
6
|
export default {
|
|
7
|
+
name: 'InputWithSelect',
|
|
7
8
|
components: {
|
|
8
9
|
LabeledInput,
|
|
9
10
|
LabeledSelect,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const NAME = 'harvesterManager';
|
|
@@ -232,8 +232,7 @@ export default {
|
|
|
232
232
|
|
|
233
233
|
stepOneRequires() {
|
|
234
234
|
return !!this.value.metadata.name && !!this.refValue;
|
|
235
|
-
}
|
|
236
|
-
|
|
235
|
+
},
|
|
237
236
|
},
|
|
238
237
|
|
|
239
238
|
watch: {
|
|
@@ -497,6 +496,17 @@ export default {
|
|
|
497
496
|
@change="onUpdateRepoName"
|
|
498
497
|
/>
|
|
499
498
|
|
|
499
|
+
<div class="row">
|
|
500
|
+
<div class="col span-6">
|
|
501
|
+
<Banner
|
|
502
|
+
color="info col span-6"
|
|
503
|
+
>
|
|
504
|
+
<div>
|
|
505
|
+
{{ t('fleet.gitRepo.repo.protocolBanner') }}
|
|
506
|
+
</div>
|
|
507
|
+
</Banner>
|
|
508
|
+
</div>
|
|
509
|
+
</div>
|
|
500
510
|
<div
|
|
501
511
|
class="row"
|
|
502
512
|
:class="{'mt-20': isView}"
|
|
@@ -523,7 +533,6 @@ export default {
|
|
|
523
533
|
/>
|
|
524
534
|
</div>
|
|
525
535
|
</div>
|
|
526
|
-
|
|
527
536
|
<SelectOrCreateAuthSecret
|
|
528
537
|
:value="value.spec.clientSecretName"
|
|
529
538
|
:register-before-hook="registerBeforeHook"
|
|
@@ -10,7 +10,7 @@ import { CAPI, HCI } from '@shell/config/types';
|
|
|
10
10
|
import ClusterMembershipEditor from '@shell/components/form/Members/ClusterMembershipEditor';
|
|
11
11
|
import { Banner } from '@components/Banner';
|
|
12
12
|
import { canViewClusterMembershipEditor } from '@shell/components/form/Members/ClusterMembershipEditor.vue';
|
|
13
|
-
import { NAME as HARVESTER_MANAGER } from '
|
|
13
|
+
import { NAME as HARVESTER_MANAGER } from '@shell/config/harvester-manager-types';
|
|
14
14
|
import { HARVESTER as HARVESTER_FEATURE, mapFeature } from '@shell/store/features';
|
|
15
15
|
import { addObject } from '@shell/utils/array';
|
|
16
16
|
import { HIDE_DESC, mapPref } from '@shell/store/prefs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rancher/shell",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Rancher Dashboard Shell",
|
|
5
5
|
"repository": "https://github.com/rancherlabs/dashboard",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -138,6 +138,7 @@
|
|
|
138
138
|
"vue-server-renderer": "2.6.14",
|
|
139
139
|
"vue-shortkey": "3.1.7",
|
|
140
140
|
"vue-template-compiler": "2.6.14",
|
|
141
|
+
"vue-virtual-scroll-list": "^2.3.4",
|
|
141
142
|
"vue2-transitions": "0.3.0",
|
|
142
143
|
"vuedraggable": "2.24.3",
|
|
143
144
|
"vuex": "3.6.2",
|
|
@@ -148,7 +148,7 @@ export default {
|
|
|
148
148
|
class="slideIn__header"
|
|
149
149
|
data-testid="extension-details-title"
|
|
150
150
|
>
|
|
151
|
-
{{ info.
|
|
151
|
+
{{ info.label }}
|
|
152
152
|
</h2>
|
|
153
153
|
<p class="plugin-description">
|
|
154
154
|
{{ info.description }}
|
|
@@ -230,8 +230,11 @@ export default {
|
|
|
230
230
|
</div>
|
|
231
231
|
<div v-if="!info.versions.length">
|
|
232
232
|
<h3>
|
|
233
|
-
{{ t('plugins.
|
|
233
|
+
{{ t('plugins.info.versions') }}
|
|
234
234
|
</h3>
|
|
235
|
+
<div class="version-link version-active version-builtin">
|
|
236
|
+
{{ info.displayVersion }}
|
|
237
|
+
</div>
|
|
235
238
|
</div>
|
|
236
239
|
</div>
|
|
237
240
|
</div>
|
|
@@ -352,6 +355,10 @@ export default {
|
|
|
352
355
|
color: var(--link-text);
|
|
353
356
|
background: var(--link);
|
|
354
357
|
}
|
|
358
|
+
|
|
359
|
+
&.version-builtin {
|
|
360
|
+
display: inline-block;
|
|
361
|
+
}
|
|
355
362
|
}
|
|
356
363
|
|
|
357
364
|
&__header {
|
|
@@ -221,10 +221,12 @@ export default {
|
|
|
221
221
|
const chart = all.find(c => c.name === p.name);
|
|
222
222
|
|
|
223
223
|
if (!chart) {
|
|
224
|
-
// A
|
|
224
|
+
// A plugin is loaded, but there is no chart, so add an item so that it shows up
|
|
225
|
+
const rancher = typeof p.metadata?.rancher === 'object' ? p.metadata.rancher : {};
|
|
226
|
+
const label = rancher[UI_PLUGIN_CHART_ANNOTATIONS.DISPLAY_NAME] || p.name;
|
|
225
227
|
const item = {
|
|
226
228
|
name: p.name,
|
|
227
|
-
label
|
|
229
|
+
label,
|
|
228
230
|
description: p.metadata?.description,
|
|
229
231
|
icon: p.metadata?.icon,
|
|
230
232
|
id: p.id,
|
|
@@ -880,7 +882,6 @@ export default {
|
|
|
880
882
|
width: 40px;
|
|
881
883
|
-o-object-fit: contain;
|
|
882
884
|
object-fit: contain;
|
|
883
|
-
position: relative;
|
|
884
885
|
top: 2px;
|
|
885
886
|
left: 2px;
|
|
886
887
|
}
|
package/store/prefs.js
CHANGED
|
@@ -136,12 +136,13 @@ export const state = function() {
|
|
|
136
136
|
return {
|
|
137
137
|
cookiesLoaded: false,
|
|
138
138
|
data: {},
|
|
139
|
+
definitions,
|
|
139
140
|
};
|
|
140
141
|
};
|
|
141
142
|
|
|
142
143
|
export const getters = {
|
|
143
144
|
get: state => (key) => {
|
|
144
|
-
const definition = definitions[key];
|
|
145
|
+
const definition = state.definitions[key];
|
|
145
146
|
|
|
146
147
|
if (!definition) {
|
|
147
148
|
throw new Error(`Unknown preference: ${ key }`);
|
|
@@ -159,7 +160,7 @@ export const getters = {
|
|
|
159
160
|
},
|
|
160
161
|
|
|
161
162
|
defaultValue: state => (key) => {
|
|
162
|
-
const definition = definitions[key];
|
|
163
|
+
const definition = state.definitions[key];
|
|
163
164
|
|
|
164
165
|
if (!definition) {
|
|
165
166
|
throw new Error(`Unknown preference: ${ key }`);
|
|
@@ -169,7 +170,7 @@ export const getters = {
|
|
|
169
170
|
},
|
|
170
171
|
|
|
171
172
|
options: state => (key) => {
|
|
172
|
-
const definition = definitions[key];
|
|
173
|
+
const definition = state.definitions[key];
|
|
173
174
|
|
|
174
175
|
if (!definition) {
|
|
175
176
|
throw new Error(`Unknown preference: ${ key }`);
|
|
@@ -252,19 +253,25 @@ export const mutations = {
|
|
|
252
253
|
},
|
|
253
254
|
|
|
254
255
|
reset(state) {
|
|
255
|
-
for (const key in definitions) {
|
|
256
|
-
if ( definitions[key]?.asCookie ) {
|
|
256
|
+
for (const key in state.definitions) {
|
|
257
|
+
if ( state.definitions[key]?.asCookie ) {
|
|
257
258
|
continue;
|
|
258
259
|
}
|
|
259
260
|
delete state.data[key];
|
|
260
261
|
}
|
|
261
|
-
}
|
|
262
|
+
},
|
|
263
|
+
|
|
264
|
+
setDefinition(state, { name, definition = {} }) {
|
|
265
|
+
state.definitions[name] = definition;
|
|
266
|
+
},
|
|
262
267
|
};
|
|
263
268
|
|
|
264
269
|
export const actions = {
|
|
265
|
-
async set({
|
|
270
|
+
async set({
|
|
271
|
+
dispatch, commit, rootGetters, state
|
|
272
|
+
}, opt) {
|
|
266
273
|
let { key, value } = opt; // eslint-disable-line prefer-const
|
|
267
|
-
const definition = definitions[key];
|
|
274
|
+
const definition = state.definitions[key];
|
|
268
275
|
let server;
|
|
269
276
|
|
|
270
277
|
if ( opt.val ) {
|
|
@@ -326,8 +333,8 @@ export const actions = {
|
|
|
326
333
|
return;
|
|
327
334
|
}
|
|
328
335
|
|
|
329
|
-
for (const key in definitions) {
|
|
330
|
-
const definition = definitions[key];
|
|
336
|
+
for (const key in state.definitions) {
|
|
337
|
+
const definition = state.definitions[key];
|
|
331
338
|
|
|
332
339
|
if ( !definition.asCookie ) {
|
|
333
340
|
continue;
|
|
@@ -441,8 +448,8 @@ export const actions = {
|
|
|
441
448
|
prefsBeforeLogin = {};
|
|
442
449
|
}
|
|
443
450
|
|
|
444
|
-
for (const key in definitions) {
|
|
445
|
-
const definition = definitions[key];
|
|
451
|
+
for (const key in state.definitions) {
|
|
452
|
+
const definition = state.definitions[key];
|
|
446
453
|
let value = clone(server.data[key]);
|
|
447
454
|
|
|
448
455
|
if (value === undefined && definition.inheritFrom) {
|