mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2026-10-01 03:36:04 +08:00
Latest changes from harvester/master
Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>
This commit is contained in:
@@ -3,7 +3,7 @@ import { _VIEW, _EDIT, _CREATE } from '@shell/config/query-params';
|
||||
import Tag from '@shell/components/Tag';
|
||||
|
||||
export default {
|
||||
name: 'DiskTags',
|
||||
name: 'Tags',
|
||||
|
||||
components: { Tag },
|
||||
|
||||
|
||||
@@ -35,13 +35,23 @@ export default {
|
||||
version: '',
|
||||
enableLogging: true,
|
||||
readyReleaseNote: false,
|
||||
isOpen: false,
|
||||
isOpen: false
|
||||
};
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapGetters(['currentCluster']),
|
||||
|
||||
latestUpgrade() {
|
||||
return this.upgrade?.find(u => u.isLatestUpgrade);
|
||||
},
|
||||
|
||||
isUpgradeInProgress() {
|
||||
return this.latestUpgrade &&
|
||||
!this.latestUpgrade.isUpgradeSucceeded &&
|
||||
!this.latestUpgrade.isUpgradeFailed;
|
||||
},
|
||||
|
||||
versionOptions() {
|
||||
const versions = this.$store.getters['harvester/all'](HCI.VERSION);
|
||||
|
||||
@@ -133,7 +143,7 @@ export default {
|
||||
/>
|
||||
</h1>
|
||||
<button
|
||||
v-if="versionOptions.length"
|
||||
v-if="versionOptions.length && !isUpgradeInProgress"
|
||||
type="button"
|
||||
class="btn bg-warning btn-sm"
|
||||
@click="open"
|
||||
|
||||
@@ -34,15 +34,7 @@ export default {
|
||||
},
|
||||
|
||||
data() {
|
||||
const categorySettings = this.settings.filter((s) => {
|
||||
if (this.category !== 'advanced') {
|
||||
return (CATEGORY[this.category] || []).find(item => item === s.id);
|
||||
} else if (this.category === 'advanced') {
|
||||
const allCategory = Object.keys(CATEGORY);
|
||||
|
||||
return !allCategory.some(category => (CATEGORY[category] || []).find(item => item === s.id));
|
||||
}
|
||||
}) || [];
|
||||
const categorySettings = this.filterCategorySettings();
|
||||
|
||||
return {
|
||||
HCI_SETTING,
|
||||
@@ -52,7 +44,27 @@ export default {
|
||||
|
||||
computed: { ...mapGetters({ t: 'i18n/t' }) },
|
||||
|
||||
watch: {
|
||||
settings: {
|
||||
deep: true,
|
||||
handler() {
|
||||
this['categorySettings'] = this.filterCategorySettings();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
filterCategorySettings() {
|
||||
return this.settings.filter((s) => {
|
||||
if (this.category !== 'advanced') {
|
||||
return (CATEGORY[this.category] || []).find(item => item === s.id);
|
||||
} else if (this.category === 'advanced') {
|
||||
const allCategory = Object.keys(CATEGORY);
|
||||
|
||||
return !allCategory.some(category => (CATEGORY[category] || []).find(item => item === s.id));
|
||||
}
|
||||
}) || [];
|
||||
},
|
||||
showActionMenu(e, setting) {
|
||||
const actionElement = e.srcElement;
|
||||
|
||||
@@ -104,7 +116,7 @@ export default {
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div v-for="(setting, i) in categorySettings" class="advanced-setting mb-20" :key="i" >
|
||||
<div v-for="(setting, i) in categorySettings" :key="i">
|
||||
<div class="header">
|
||||
<div class="title">
|
||||
<h1>
|
||||
@@ -112,6 +124,9 @@ export default {
|
||||
<span v-if="setting.customized" class="modified">
|
||||
Modified
|
||||
</span>
|
||||
<span v-if="setting.technicalPreview" v-clean-tooltip="t('advancedSettings.technicalPreview')" class="technical-preview">
|
||||
Technical Preview
|
||||
</span>
|
||||
</h1>
|
||||
<h2 v-clean-html="t(setting.description, {}, true)">
|
||||
</h2>
|
||||
@@ -200,4 +215,12 @@ export default {
|
||||
padding: 2px 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.technical-preview {
|
||||
margin-left: 10px;
|
||||
border: 1px solid var(--warning);
|
||||
border-radius: 5px;
|
||||
padding: 2px 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script>
|
||||
import { Banner } from '@components/Banner';
|
||||
import { DOC_LINKS } from '../config/doc-links';
|
||||
|
||||
export default {
|
||||
name: 'HarvesterUpgradeInfo',
|
||||
@@ -16,6 +17,10 @@ export default {
|
||||
computed: {
|
||||
releaseVersion() {
|
||||
return !!this.version ? `https://github.com/harvester/harvester/releases/tag/${ this.version }` : `https://github.com/harvester/harvester/releases`;
|
||||
},
|
||||
|
||||
upgradeLink() {
|
||||
return DOC_LINKS.UPGRADE_URL;
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -26,15 +31,14 @@ export default {
|
||||
<Banner color="warning">
|
||||
<div>
|
||||
<strong>{{ t('harvester.upgradePage.upgradeInfo.warning') }}:</strong>
|
||||
<p v-clean-html="t('harvester.upgradePage.upgradeInfo.doc', {}, true)" class="mb-5">
|
||||
</p>
|
||||
<p v-clean-html="t('harvester.upgradePage.upgradeInfo.doc', {url: upgradeLink}, true)" class="mb-5"></p>
|
||||
|
||||
<p class="mb-5">
|
||||
{{ t('harvester.upgradePage.upgradeInfo.tip') }}
|
||||
</p>
|
||||
|
||||
<p class="mb-5">
|
||||
{{ t('harvester.upgradePage.upgradeInfo.moreNotes') }} <a :href="releaseVersion" target="_blank">{{ t('generic.moreInfo') }} </a>
|
||||
{{ t('harvester.upgradePage.upgradeInfo.moreNotes') }} <a :href="releaseVersion" target="_blank">{{ t('generic.moreInfo') }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</Banner>
|
||||
|
||||
@@ -61,7 +61,7 @@ export default {
|
||||
window.open(
|
||||
url,
|
||||
'_blank',
|
||||
'toolbars=0,width=900,height=700,left=0,top=0,noreferrer'
|
||||
`toolbars=0,width=${ screen.width - 200 },height=${ screen.height - 200 },left=0,top=0,noreferrer`
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<script>
|
||||
import CreateEditView from '@shell/mixins/create-edit-view';
|
||||
import { LabeledInput } from '@components/Form/LabeledInput';
|
||||
|
||||
export default {
|
||||
name: 'AdditionalGuestMemoryOverheadRatio',
|
||||
|
||||
components: { LabeledInput },
|
||||
|
||||
mixins: [CreateEditView],
|
||||
|
||||
data() {
|
||||
return { ratio: this.value.value || this.value.default };
|
||||
},
|
||||
|
||||
methods: {
|
||||
update() {
|
||||
this.value['value'] = this.ratio;
|
||||
},
|
||||
|
||||
useDefault() {
|
||||
this['ratio'] = this.value.default;
|
||||
this.update();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col span-12">
|
||||
<LabeledInput
|
||||
v-model:value="ratio"
|
||||
:label="t('harvester.setting.ratio')"
|
||||
@update:value="update"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -10,6 +10,7 @@ import Tip from '@shell/components/Tip';
|
||||
import { allHash } from '@shell/utils/promise';
|
||||
import { NODE } from '@shell/config/types';
|
||||
import { HCI } from '../../types';
|
||||
import { DOC_LINKS } from '../../config/doc-links';
|
||||
|
||||
export default {
|
||||
name: 'HarvesterEditStorageNetwork',
|
||||
@@ -85,6 +86,9 @@ export default {
|
||||
},
|
||||
|
||||
computed: {
|
||||
storageNetworkExampleLink() {
|
||||
return DOC_LINKS.STORAGE_NETWORK_EXAMPLE;
|
||||
},
|
||||
clusterNetworkOptions() {
|
||||
const inStore = this.$store.getters['currentProduct'].inStore;
|
||||
const clusterNetworks = this.$store.getters[`${ inStore }/all`](HCI.CLUSTER_NETWORK) || [];
|
||||
@@ -206,8 +210,8 @@ export default {
|
||||
:placeholder="t('harvester.setting.storageNetwork.range.placeholder')"
|
||||
label-key="harvester.setting.storageNetwork.range.label"
|
||||
/>
|
||||
<Tip class="mb-20" icon="icon icon-info" :text="t('harvester.setting.storageNetwork.tip')">
|
||||
<t k="harvester.setting.storageNetwork.tip" :raw="true" />
|
||||
<Tip class="mb-20" icon="icon icon-info">
|
||||
<t k="harvester.setting.storageNetwork.tip" :raw="true" :url="storageNetworkExampleLink" />
|
||||
</Tip>
|
||||
|
||||
<ArrayList
|
||||
|
||||
Reference in New Issue
Block a user