[pve-devel] [PATCH widget-toolkit v3] fix #5836: ui: translate systemd states in ServiceView

Timothy Nicholson t.nicholson at proxmox.com
Mon Nov 11 14:17:15 CET 2024


Signed-off-by: Timothy Nicholson <t.nicholson at proxmox.com>
---
changes since v2 [0]:
- use object instead of switch-case statement for systemd states
- use different terms (starting/stopping) for start/stop states
[0]: https://lore.proxmox.com/pve-devel/20241111103705.76679-1-t.nicholson@proxmox.com/

 src/Utils.js            | 12 ++++++++++++
 src/node/ServiceView.js | 14 ++++++--------
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/Utils.js b/src/Utils.js
index 7dd034a..5634a06 100644
--- a/src/Utils.js
+++ b/src/Utils.js
@@ -305,6 +305,18 @@ utilities: {
 	return Ext.htmlEncode(username);
     },
 
+    systemdStates: {
+	'enabled': gettext('enabled'),
+	'disabled': gettext('disabled'),
+	'running': gettext('running'),
+	'dead': gettext('dead'),
+	'not-found': gettext('not installed'),
+	'static': gettext('static'),
+	'reload': gettext('reload'),
+	'start': gettext('starting'),
+	'stop': gettext('stopping'),
+    },
+
     getStoredAuth: function() {
 	let storedAuth = JSON.parse(window.localStorage.getItem('ProxmoxUser'));
 	return storedAuth || {};
diff --git a/src/node/ServiceView.js b/src/node/ServiceView.js
index 19cfc18..1f03ccc 100644
--- a/src/node/ServiceView.js
+++ b/src/node/ServiceView.js
@@ -180,14 +180,8 @@ Ext.define('Proxmox.node.ServiceView', {
 		    sortable: true,
 		    dataIndex: 'state',
 		    renderer: (value, meta, rec) => {
-			const unitState = rec.get('unit-state');
-			if (unitState === 'masked') {
-			    return gettext('disabled');
-			} else if (unitState === 'not-found') {
-			    return gettext('not installed');
-			} else {
-			    return value;
-			}
+			const state = rec.get('state');
+			return Proxmox.Utils.systemdStates[state] ?? state;
 		    },
 		},
 		{
@@ -203,6 +197,10 @@ Ext.define('Proxmox.node.ServiceView', {
 		    sortable: true,
 		    hidden: !Ext.Array.contains(['PVEAuthCookie', 'PBSAuthCookie'], Proxmox?.Setup?.auth_cookie_name),
 		    dataIndex: 'unit-state',
+		    renderer: (value, meta, rec) => {
+			const unitState = rec.get('unit-state');
+			return Proxmox.Utils.systemdStates[unitState] ?? unitState;
+		    },
 		},
 		{
 		    header: gettext('Description'),
-- 
2.39.5




More information about the pve-devel mailing list