From dc2a5e76ba0ee30b5d3ab7643fbc1a8108ac2121 Mon Sep 17 00:00:00 2001 From: scrummer Date: Mon, 24 Aug 2026 15:41:38 +0200 Subject: [PATCH 1/2] Refactor reference ID handling: use `getInt()` method and conditionally include `rid` parameter only when not null --- .../opendxp/settings/user/panels/abstract.js | 19 +++++++++++-------- src/Handler/User/AddUser/AddUserPayload.php | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/public/js/opendxp/settings/user/panels/abstract.js b/public/js/opendxp/settings/user/panels/abstract.js index 1a194156..009b0d83 100644 --- a/public/js/opendxp/settings/user/panels/abstract.js +++ b/public/js/opendxp/settings/user/panels/abstract.js @@ -83,22 +83,25 @@ opendxp.settings.user.panels.abstract = Class.create({ rid = cloneRecord.data.id; parentNode = cloneRecord.parentNode; } else { - rid = 0; + rid = null; parentNode = selectedRecord; } var pid = parentNode.data.id; Ext.MessageBox.prompt(t('add'), t('enter_the_name_of_the_new_item'), function (button, value, object) { if(button=='ok' && value != ''){ + var params = { + parentId: pid, + type: type, + name: value, + active: true + }; + if (rid !== null) { + params.rid = rid; + } Ext.Ajax.request({ url: Routing.generate('opendxp_admin_user_add'), method: 'POST', - params: { - parentId: pid, - type: type, - name: value, - active: true, - rid: rid - }, + params: params, success: this.addComplete.bind(this, parentNode) }); } diff --git a/src/Handler/User/AddUser/AddUserPayload.php b/src/Handler/User/AddUser/AddUserPayload.php index 38db195a..9fcab0d8 100644 --- a/src/Handler/User/AddUser/AddUserPayload.php +++ b/src/Handler/User/AddUser/AddUserPayload.php @@ -46,7 +46,7 @@ public function __construct( public static function fromRequest(Request $request): static { $name = $request->request->get('name', ''); - $referenceId = $request->request->has('rid') ? (int) $request->request->get('rid') : null; + $referenceId = $request->request->getInt('rid') ?: null; $type = $request->request->get('type'); return new static( From 1239b6a29e3ed89190a9e869f0a08a3137ca9a5a Mon Sep 17 00:00:00 2001 From: scrummer Date: Mon, 24 Aug 2026 15:49:20 +0200 Subject: [PATCH 2/2] some cleanup --- .../opendxp/settings/user/panels/abstract.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/public/js/opendxp/settings/user/panels/abstract.js b/public/js/opendxp/settings/user/panels/abstract.js index 009b0d83..9cf0e2ef 100644 --- a/public/js/opendxp/settings/user/panels/abstract.js +++ b/public/js/opendxp/settings/user/panels/abstract.js @@ -12,7 +12,7 @@ */ -opendxp.registerNS("opendxp.settings.user.panels.abstract"); +opendxp.registerNS('opendxp.settings.user.panels.abstract'); /** * @private */ @@ -37,10 +37,10 @@ opendxp.settings.user.panels.abstract = Class.create({ getTreeNodeListeners: function () { var treeNodeListeners = { - 'itemclick' : this.onTreeNodeClick.bind(this), + 'itemclick': this.onTreeNodeClick.bind(this), 'itemcontextmenu': this.onTreeNodeContextmenu.bind(this), 'beforeitemappend': function (thisNode, newChildNode, index, eOpts) { - newChildNode.data.qtip = t('id') + ": " + newChildNode.data.id; + newChildNode.data.qtip = t('id') + ': ' + newChildNode.data.id; } }; @@ -51,20 +51,20 @@ opendxp.settings.user.panels.abstract = Class.create({ remove: function (tree, record) { Ext.MessageBox.show({ - title:t('delete'), - msg: record.hasChildNodes() ? t("are_you_sure_recursive") : sprintf(t("delete_message_advanced"), t('user'), record.data.text), - buttons: Ext.Msg.OKCANCEL , + title: t('delete'), + msg: record.hasChildNodes() ? t('are_you_sure_recursive') : sprintf(t('delete_message_advanced'), t('user'), record.data.text), + buttons: Ext.Msg.OKCANCEL, icon: record.hasChildNodes() ? Ext.MessageBox.WARNING : Ext.MessageBox.QUESTION, fn: function (button) { - if (button == "ok") { + if (button == 'ok') { Ext.Ajax.request({ url: Routing.generate('opendxp_admin_user_delete'), method: 'DELETE', params: { id: record.data.id }, - success: function() { - var userPanelKey = "user_" + record.data.id; + success: function () { + var userPanelKey = 'user_' + record.data.id; if (this.panels[userPanelKey]) { this.panels[userPanelKey].panel.close(); delete this.panels[userPanelKey]; @@ -88,7 +88,7 @@ opendxp.settings.user.panels.abstract = Class.create({ } var pid = parentNode.data.id; Ext.MessageBox.prompt(t('add'), t('enter_the_name_of_the_new_item'), function (button, value, object) { - if(button=='ok' && value != ''){ + if (button == 'ok' && value != '') { var params = { parentId: pid, type: type,