[pbs-devel] [PATCH proxmox-backup v2 5/6] ui: utils: add function for parsing maintenance mode
Hannes Laimer
h.laimer at proxmox.com
Tue Apr 26 08:23:34 CEST 2022
...since the same code is used is more than one place
Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
---
www/Utils.js | 17 +++++++++++++----
www/datastore/Summary.js | 7 ++-----
www/window/MaintenanceOptions.js | 8 ++------
3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/www/Utils.js b/www/Utils.js
index 32f56278..9a53cc72 100644
--- a/www/Utils.js
+++ b/www/Utils.js
@@ -640,13 +640,22 @@ Ext.define('PBS.Utils', {
return `${icon} ${value}`;
},
+ // FIXME: this "parser" is brittle and relies on the order the arguments will appear in
+ parseMaintenanceMode: function(mode) {
+ let [type, message] = mode.split(/,(.+)/);
+ type = type.split("=").pop();
+ message = message ? message.split("=")[1]
+ .replace(/^"(.*)"$/, '$1')
+ .replaceAll('\\"', '"') : null;
+ return [type, message];
+ },
+
renderMaintenance: function(mode, activeTasks) {
if (!mode) {
return gettext('None');
}
- // FIXME: this "parser" is brittle and relies on the order the arguments will appear in
- let [type, message] = mode.split(",");
- type = type.split("=").pop();
+
+ let [type, message] = PBS.Utils.parseMaintenanceMode(mode);
const conflictingTasks = activeTasks.write + (type === 'offline' ? activeTasks.read : 0);
@@ -659,7 +668,7 @@ Ext.define('PBS.Utils', {
}
if (message) {
- extra += ` (${message.split("=").pop()})`;
+ extra += ` ("${message}")`;
}
let modeText = Proxmox.Utils.unknownText;
diff --git a/www/datastore/Summary.js b/www/datastore/Summary.js
index d7b53a3a..328aa561 100644
--- a/www/datastore/Summary.js
+++ b/www/datastore/Summary.js
@@ -49,12 +49,9 @@ Ext.define('PBS.DataStoreInfo', {
success: function(response) {
const config = response.result.data;
if (config['maintenance-mode']) {
- const [_type, msg] = config['maintenance-mode'].split(/,(.+)/);
- const message = msg ? ': ' + msg.split("=")[1]
- .replace(/^"(.*)"$/, '$1')
- .replaceAll('\\"', '"') : '';
+ const [_type, msg] = PBS.Utils.parseMaintenanceMode(config['maintenance-mode']);
me.view.el.mask(
- `${gettext('Datastore is in maintenance mode')}${message}`,
+ `${gettext('Datastore is in maintenance mode')}${msg ? ': ' + msg : ''}`,
'fa pbs-maintenance-mask',
);
} else {
diff --git a/www/window/MaintenanceOptions.js b/www/window/MaintenanceOptions.js
index 47196b42..713da569 100644
--- a/www/window/MaintenanceOptions.js
+++ b/www/window/MaintenanceOptions.js
@@ -62,14 +62,10 @@ Ext.define('PBS.window.MaintenanceOptions', {
'maintenance-msg': '',
};
if (values['maintenance-mode']) {
- let [type, message] = values['maintenance-mode'].split(/,(.+)/);
- type = type.split("=").pop();
- message = message ? message.split("=")[1]
- .replace(/^"(.*)"$/, '$1')
- .replaceAll('\\"', '"') : '';
+ const [type, message] = PBS.Utils.parseMaintenanceMode(values['maintenance-mode']);
options = {
'maintenance-type': type,
- 'maintenance-msg': message,
+ 'maintenance-msg': message ?? '',
};
}
--
2.30.2
More information about the pbs-devel
mailing list