]> git.proxmox.com Git - proxmox-backup.git/commitdiff
ui: utils: add function for parsing maintenance mode
authorHannes Laimer <h.laimer@proxmox.com>
Tue, 26 Apr 2022 06:23:34 +0000 (06:23 +0000)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 27 Apr 2022 17:21:19 +0000 (19:21 +0200)
...since the same code is used is more than one place

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
www/Utils.js
www/datastore/Summary.js
www/window/MaintenanceOptions.js

index 32f562786ce9f287a95ea0a00200553f45ea3449..9a53cc72edca995222a7bd383c9c84c0ae2ee827 100644 (file)
@@ -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;
index d7b53a3a0731edc3a5a316804e44597dd96db326..328aa5615fec0842ea9a1fa039552d0f252da235 100644 (file)
@@ -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 {
index 47196b426208b5d86df9508f8bae2be88a1554e6..713da569137ddf8103dc73ce923d18744b490a2d 100644 (file)
@@ -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 ?? '',
            };
        }