]> git.proxmox.com Git - proxmox-backup.git/commitdiff
ui: verify job: make namespace and max-depth aware
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 11 May 2022 07:42:49 +0000 (09:42 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 12 May 2022 07:33:50 +0000 (09:33 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
www/Makefile
www/form/NamespaceMaxDepth.js [new file with mode: 0644]
www/window/VerifyJobEdit.js

index c49e98ee9e7d8948571a519dffd361683cec2afc..f1b3bd1ee7fb1904e9bc5f298b1da3152852d42e 100644 (file)
@@ -41,6 +41,7 @@ JSSRC=                                                        \
        form/RemoteSelector.js                          \
        form/DataStoreSelector.js                       \
        form/NamespaceSelector.js                       \
+       form/NamespaceMaxDepth.js                       \
        form/CalendarEvent.js                           \
        form/PermissionPathSelector.js                  \
        form/GroupSelector.js                           \
diff --git a/www/form/NamespaceMaxDepth.js b/www/form/NamespaceMaxDepth.js
new file mode 100644 (file)
index 0000000..5404e40
--- /dev/null
@@ -0,0 +1,33 @@
+Ext.define('PBS.form.NamespaceMaxDepth', {
+    extend: 'Proxmox.form.field.Integer',
+    alias: 'widget.pbsNamespaceMaxDepth',
+
+    allowBlank: true,
+
+    emptyText: gettext('Full'),
+    fieldLabel: gettext('Max. Depth'),
+    deleteEmpty: true,
+
+    minValue: 0,
+    maxValue: 7,
+
+    triggers: {
+       clear: {
+           cls: 'pmx-clear-trigger',
+           weight: -1,
+           hidden: true,
+           handler: function() {
+               this.triggers.clear.setVisible(false);
+               this.setValue('');
+           },
+       },
+    },
+
+    listeners: {
+       change: function(field, value) {
+           let canClear = value !== '';
+           field.triggers.clear.setVisible(canClear);
+       },
+    },
+});
+
index 72a2adb23480989e7627c85357daa451ffe7bc5e..16933db52764aa5911d057b55ed4e3c9878a577d 100644 (file)
@@ -31,7 +31,7 @@ Ext.define('PBS.window.VerifyJobEdit', {
 
     viewModel: {
        data: {
-           'ignore-verified': true,
+           'ignoreVerified': true,
        },
     },
 
@@ -60,6 +60,23 @@ Ext.define('PBS.window.VerifyJobEdit', {
                    allowBlank: false,
                },
            },
+           {
+               xtype: 'pbsNamespaceSelector',
+               name: 'ns',
+               fieldLabel: gettext('Namespace'),
+               cbind: {
+                   datastore: '{datastore}',
+               },
+           },
+           {
+               xtype: 'pbsNamespaceMaxDepth',
+               name: 'max-depth',
+               fieldLabel: gettext('Max. Depth'),
+               deleteEmpty: true,
+           },
+       ],
+
+       column2: [
            {
                xtype: 'pbsCalendarEvent',
                name: 'schedule',
@@ -70,35 +87,43 @@ Ext.define('PBS.window.VerifyJobEdit', {
                    deleteEmpty: '{!isCreate}',
                },
            },
-       ],
-
-       column2: [
            {
                xtype: 'proxmoxcheckbox',
                name: 'ignore-verified',
-               fieldLabel: gettext('Skip verified snapshots'),
-               labelWidth: 150,
+               fieldLabel: gettext('Skip Verified'),
                uncheckedValue: false,
                value: true,
                bind: {
-                   value: '{ignore-verified}',
+                   value: '{ignoreVerified}',
                },
            },
            {
-               xtype: 'proxmoxintegerfield',
-               name: 'outdated-after',
-               fieldLabel: gettext('Re-Verify After (days)'),
-               labelWidth: 150,
-               minValue: 1,
-               value: 30,
-               allowBlank: true,
-               emptyText: gettext('Never'),
-               bind: {
-                   disabled: '{!ignore-verified}',
-               },
-               cbind: {
-                   deleteEmpty: '{!isCreate}',
-               },
+               xtype: 'fieldcontainer',
+               layout: 'hbox',
+               fieldLabel: gettext('Re-Verify After'),
+               items: [
+                   {
+                       xtype: 'pbsVerifyOutdatedAfter',
+                       name: 'outdated-after',
+                       bind: {
+                           disabled: '{!ignoreVerified}',
+                       },
+                       cbind: {
+                           deleteEmpty: '{!isCreate}',
+                       },
+                       flex: 1,
+                   },
+                   {
+                       xtype: 'displayfield',
+                       padding: '0 0 0 5',
+                       name: 'unit',
+                       submitValue: false,
+                       value: gettext('days'),
+                       bind: {
+                           disabled: '{!ignoreVerified}',
+                       },
+                   },
+               ],
            },
        ],