ui: datastore content: make verify-all more flexible
allow to specify the namespace, max_depth and also the re-verify/skip behavior. Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
d83ce0d0c7
commit
bc4af01559
|
@ -76,6 +76,7 @@ JSSRC= \
|
||||||
window/Settings.js \
|
window/Settings.js \
|
||||||
window/TokenEdit.js \
|
window/TokenEdit.js \
|
||||||
window/VerifyJobEdit.js \
|
window/VerifyJobEdit.js \
|
||||||
|
window/VerifyAll.js \
|
||||||
window/ZFSCreate.js \
|
window/ZFSCreate.js \
|
||||||
dashboard/DataStoreStatistics.js \
|
dashboard/DataStoreStatistics.js \
|
||||||
dashboard/LongestTasks.js \
|
dashboard/LongestTasks.js \
|
||||||
|
|
|
@ -361,26 +361,14 @@ Ext.define('PBS.DataStoreContent', {
|
||||||
},
|
},
|
||||||
|
|
||||||
verifyAll: function() {
|
verifyAll: function() {
|
||||||
var view = this.getView();
|
let me = this;
|
||||||
|
let view = me.getView();
|
||||||
|
|
||||||
let params = {};
|
Ext.create('PBS.window.VerifyAll', {
|
||||||
if (view.namespace && view.namespace !== '') {
|
taskDone: () => me.reload(),
|
||||||
params['backup-ns'] = view.namespace; // TODO backend?!
|
autoShow: true,
|
||||||
}
|
datastore: view.datastore,
|
||||||
|
namespace: view.namespace,
|
||||||
Proxmox.Utils.API2Request({
|
|
||||||
url: `/admin/datastore/${view.datastore}/verify`,
|
|
||||||
params,
|
|
||||||
method: 'POST',
|
|
||||||
failure: function(response) {
|
|
||||||
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
|
||||||
},
|
|
||||||
success: function(response, options) {
|
|
||||||
Ext.create('Proxmox.window.TaskViewer', {
|
|
||||||
autoShow: true,
|
|
||||||
upid: response.result.data,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -393,17 +381,13 @@ Ext.define('PBS.DataStoreContent', {
|
||||||
Ext.create('Proxmox.window.Edit', {
|
Ext.create('Proxmox.window.Edit', {
|
||||||
title: `Prune Datastore '${view.datastore}'`,
|
title: `Prune Datastore '${view.datastore}'`,
|
||||||
onlineHelp: 'maintenance_pruning',
|
onlineHelp: 'maintenance_pruning',
|
||||||
|
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
submitText: "Prune",
|
submitText: "Prune",
|
||||||
autoShow: true,
|
autoShow: true,
|
||||||
isCreate: true,
|
isCreate: true,
|
||||||
showTaskViewer: true,
|
showTaskViewer: true,
|
||||||
|
|
||||||
taskDone: () => me.reload(),
|
taskDone: () => me.reload(),
|
||||||
|
|
||||||
url: `/api2/extjs/admin/datastore/${view.datastore}/prune-datastore`,
|
url: `/api2/extjs/admin/datastore/${view.datastore}/prune-datastore`,
|
||||||
|
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
xtype: 'pbsPruneInputPanel',
|
xtype: 'pbsPruneInputPanel',
|
||||||
|
@ -1089,7 +1073,6 @@ Ext.define('PBS.DataStoreContent', {
|
||||||
{
|
{
|
||||||
xtype: 'proxmoxButton',
|
xtype: 'proxmoxButton',
|
||||||
text: gettext('Verify All'),
|
text: gettext('Verify All'),
|
||||||
confirmMsg: gettext('Do you want to verify all snapshots now?'),
|
|
||||||
handler: 'verifyAll',
|
handler: 'verifyAll',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
Ext.define('PBS.window.VerifyAll', {
|
||||||
|
extend: 'Proxmox.window.Edit',
|
||||||
|
alias: 'widget.pbsVerifyAll',
|
||||||
|
mixins: ['Proxmox.Mixin.CBind'],
|
||||||
|
|
||||||
|
onlineHelp: 'maintenance_verification',
|
||||||
|
|
||||||
|
method: 'POST',
|
||||||
|
cbind: {
|
||||||
|
title: `Verify Datastore '{datastore}'`,
|
||||||
|
url: `/admin/datastore/{datastore}/verify`,
|
||||||
|
},
|
||||||
|
|
||||||
|
submitText: gettext('Verify'),
|
||||||
|
isCreate: true,
|
||||||
|
showTaskViewer: true,
|
||||||
|
showReset: false,
|
||||||
|
defaultFocus: 'submitbutton',
|
||||||
|
width: 450,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
xtype: 'inputpanel',
|
||||||
|
viewModel: {
|
||||||
|
data: { ignoreVerified: true },
|
||||||
|
},
|
||||||
|
onGetValues: values => {
|
||||||
|
if (!values['backup-ns'] || values['backup-ns'] === '') {
|
||||||
|
delete values['backup-ns'];
|
||||||
|
}
|
||||||
|
return values;
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
xtype: 'pbsNamespaceSelector',
|
||||||
|
name: 'backup-ns',
|
||||||
|
fieldLabel: gettext('Namespace'),
|
||||||
|
cbind: {
|
||||||
|
datastore: '{datastore}',
|
||||||
|
value: '{namespace}',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'pbsNamespaceMaxDepth',
|
||||||
|
name: 'max-depth',
|
||||||
|
deleteEmpty: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'fieldcontainer',
|
||||||
|
layout: 'hbox',
|
||||||
|
fieldLabel: gettext('Skip Verified'),
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
xtype: 'proxmoxcheckbox',
|
||||||
|
name: 'ignore-verified',
|
||||||
|
uncheckedValue: false,
|
||||||
|
value: true,
|
||||||
|
bind: {
|
||||||
|
value: '{ignoreVerified}',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'pbsVerifyOutdatedAfter',
|
||||||
|
name: 'outdated-after',
|
||||||
|
fieldLabel: gettext('Re-Verify After'),
|
||||||
|
padding: '0 0 0 5',
|
||||||
|
bind: {
|
||||||
|
disabled: '{!ignoreVerified}',
|
||||||
|
},
|
||||||
|
flex: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'displayfield',
|
||||||
|
name: 'unit',
|
||||||
|
submitValue: false,
|
||||||
|
padding: '0 0 0 5',
|
||||||
|
value: gettext('days'),
|
||||||
|
bind: {
|
||||||
|
disabled: '{!ignoreVerified}',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
Loading…
Reference in New Issue