[pbs-devel] [PATCH v2 proxmox-backup 4/4] ui: add maintenance to datastore options
Hannes Laimer
h.laimer at proxmox.com
Wed Oct 6 17:14:57 CEST 2021
---
www/Makefile | 1 +
www/Utils.js | 7 +++++
www/datastore/OptionView.js | 9 ++++++
www/window/MaintenanceOptions.js | 51 ++++++++++++++++++++++++++++++++
4 files changed, 68 insertions(+)
create mode 100644 www/window/MaintenanceOptions.js
diff --git a/www/Makefile b/www/Makefile
index 4aec6e2c..8f6b17ed 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -63,6 +63,7 @@ JSSRC= \
window/BackupGroupChangeOwner.js \
window/CreateDirectory.js \
window/DataStoreEdit.js \
+ window/MaintenanceOptions.js \
window/NotesEdit.js \
window/RemoteEdit.js \
window/NotifyOptions.js \
diff --git a/www/Utils.js b/www/Utils.js
index 36a94211..a1198c57 100644
--- a/www/Utils.js
+++ b/www/Utils.js
@@ -640,4 +640,11 @@ Ext.define('PBS.Utils', {
return `${icon} ${value}`;
},
+ renderMaintenance: function(type) {
+ if (type === 'readonly') {
+ type = 'read only';
+ }
+ return Ext.String.capitalize(gettext(type)) || gettext('None');
+ },
+
});
diff --git a/www/datastore/OptionView.js b/www/datastore/OptionView.js
index 5a5e85be..a4e72e76 100644
--- a/www/datastore/OptionView.js
+++ b/www/datastore/OptionView.js
@@ -1,3 +1,4 @@
+
Ext.define('PBS.Datastore.Options', {
extend: 'Proxmox.grid.ObjectGrid',
xtype: 'pbsDatastoreOptionView',
@@ -111,5 +112,13 @@ Ext.define('PBS.Datastore.Options', {
},
},
},
+ "maintenance-type": {
+ required: true,
+ header: gettext('Maintenance mode'),
+ renderer: Proxmox.Utils.renderMaintenance,
+ editor: {
+ xtype: 'pbsMaintenanceOptionEdit',
+ },
+ },
},
});
diff --git a/www/window/MaintenanceOptions.js b/www/window/MaintenanceOptions.js
new file mode 100644
index 00000000..85fd3fc9
--- /dev/null
+++ b/www/window/MaintenanceOptions.js
@@ -0,0 +1,51 @@
+Ext.define('PBS.form.MaintenanceType', {
+ extend: 'Proxmox.form.KVComboBox',
+ alias: 'widget.pbsMaintenanceType',
+
+ comboItems: [
+ ['__default__', gettext('None')],
+ ['readonly', gettext('Read only')],
+ ['offline', gettext('Offline')],
+ ],
+});
+
+Ext.define('PBS.window.MaintenanceOptions', {
+ extend: 'Proxmox.window.Edit',
+ xtype: 'pbsMaintenanceOptionEdit',
+ mixins: ['Proxmox.Mixin.CBind'],
+
+ subject: gettext('Maintenance mode'),
+
+ width: 450,
+ fieldDefaults: {
+ labelWidth: 120,
+ },
+
+ items: {
+ xtype: 'inputpanel',
+ items: [
+ {
+ xtype: 'pbsMaintenanceType',
+ name: 'maintenance-type',
+ fieldLabel: gettext('Maintenance Type'),
+ value: '__default__',
+ deleteEmpty: true,
+ },
+ {
+ xtype: 'proxmoxtextfield',
+ name: 'maintenance-msg',
+ fieldLabel: gettext('Description'),
+ deleteEmpty: true,
+ },
+ ],
+ },
+ setValues: function(values) {
+ let me = this;
+
+ const options = {
+ 'maintenance-type': values['maintenance-type'] || '__default__',
+ 'maintenance-msg': values['maintenance-msg'],
+ };
+ me.callParent([options]);
+ },
+});
--
2.30.2
More information about the pbs-devel
mailing list