mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2026-10-04 13:16:05 +08:00
* Add OS upgrade features (#311)
* Add failed and success banner after image uploaded
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add delete image feature
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add skip checking single-replica detached volumes checkbox
Signed-off-by: Andy Lee <andy.lee@suse.com>
* change delete image flow
Signed-off-by: Andy Lee <andy.lee@suse.com>
* Reuse ConfirmRelatedToRemoveDialog
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
(cherry picked from commit dbbad01b0f)
# Conflicts:
# pkg/harvester/dialog/ConfirmRelatedToRemoveDialog.vue
* resolve conflict
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
This commit is contained in:
@@ -42,8 +42,25 @@ export default {
|
||||
computed: {
|
||||
...mapState('action-menu', ['modalData']),
|
||||
|
||||
warningMessageKey() {
|
||||
return this.modalData.warningMessageKey;
|
||||
title() {
|
||||
return this.modalData.title || 'dialog.promptRemove.title';
|
||||
},
|
||||
|
||||
formattedType() {
|
||||
return this.type.toLowerCase();
|
||||
},
|
||||
|
||||
warningMessage() {
|
||||
if (this.modalData.warningMessage) return this.modalData.warningMessage;
|
||||
|
||||
const isPlural = this.type.endsWith('s');
|
||||
const thisOrThese = isPlural ? 'these' : 'this';
|
||||
const defaultMessage = this.t('dialog.promptRemove.warningMessage', {
|
||||
type: this.formattedType,
|
||||
thisOrThese,
|
||||
});
|
||||
|
||||
return defaultMessage;
|
||||
},
|
||||
|
||||
names() {
|
||||
@@ -70,6 +87,12 @@ export default {
|
||||
return this.resources[0].nameDisplay;
|
||||
},
|
||||
|
||||
needConfirmation() {
|
||||
const { needConfirmation = true } = this.modalData ;
|
||||
|
||||
return needConfirmation === true;
|
||||
},
|
||||
|
||||
plusMore() {
|
||||
const remaining = this.resources.length - this.names.length;
|
||||
|
||||
@@ -97,6 +120,10 @@ export default {
|
||||
},
|
||||
|
||||
deleteDisabled() {
|
||||
if (!this.needConfirmation) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return this.confirmName !== this.nameToMatch;
|
||||
},
|
||||
|
||||
@@ -147,21 +174,29 @@ export default {
|
||||
v-clean-html="t(warningMessageKey, { type, names: resourceNames }, true)"
|
||||
></span>
|
||||
|
||||
<div class="mt-10 mb-10">
|
||||
<span
|
||||
v-clean-html="t('promptRemove.confirmName', { nameToMatch: escapeHtml(nameToMatch) }, true)"
|
||||
></span>
|
||||
</div>
|
||||
<div class="mb-10">
|
||||
<CopyToClipboardText :text="nameToMatch" />
|
||||
</div>
|
||||
<input
|
||||
id="confirm"
|
||||
v-model="confirmName"
|
||||
type="text"
|
||||
/>
|
||||
<div class="text-info mt-20">
|
||||
{{ protip }}
|
||||
<div
|
||||
v-if="needConfirmation"
|
||||
class="mt-20"
|
||||
>
|
||||
<div class="mt-10 mb-10">
|
||||
<span
|
||||
v-clean-html="t('dialog.promptRemove.confirmName', {
|
||||
type: formattedType,
|
||||
nameToMatch: escapeHtml(nameToMatch)
|
||||
}, true)"
|
||||
></span>
|
||||
</div>
|
||||
<div class="mb-10">
|
||||
<CopyToClipboardText :text="nameToMatch" />
|
||||
</div>
|
||||
<input
|
||||
id="confirm"
|
||||
v-model="confirmName"
|
||||
type="text"
|
||||
/>
|
||||
<div class="text-info mt-20">
|
||||
{{ protip }}
|
||||
</div>
|
||||
</div>
|
||||
<Banner
|
||||
v-for="(error, i) in errors"
|
||||
|
||||
Reference in New Issue
Block a user