From 6f61884190e9771e65756700832a7af6e839507e Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 30 Jun 2025 09:52:22 -0500 Subject: [PATCH 1/3] Issue 53197: LK Customize View to encode column id for ExtJS issue in Firefox --- core/webapp/internal/ViewDesigner/Designer.js | 2 +- core/webapp/internal/ViewDesigner/FieldMetaStore.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/webapp/internal/ViewDesigner/Designer.js b/core/webapp/internal/ViewDesigner/Designer.js index 4fd0bd68d93..3bad6200740 100644 --- a/core/webapp/internal/ViewDesigner/Designer.js +++ b/core/webapp/internal/ViewDesigner/Designer.js @@ -1134,7 +1134,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.Designer', { nodeEl; for (var i = 0; i < columns.length; i++) { - checked[columns[i].get('id')] = true; + checked[encodeURIComponent(columns[i].get('id'))] = true; // Issue 53197 } this.getColumnTree().getRootNode().cascadeBy(function(node) { diff --git a/core/webapp/internal/ViewDesigner/FieldMetaStore.js b/core/webapp/internal/ViewDesigner/FieldMetaStore.js index 820b830cc2c..edd9c76ef29 100644 --- a/core/webapp/internal/ViewDesigner/FieldMetaStore.js +++ b/core/webapp/internal/ViewDesigner/FieldMetaStore.js @@ -37,7 +37,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.FieldMetaTreeStore', { type: 'json', root: 'columns', idProperty: function(json) { - return json.fieldKeyPath.toUpperCase(); + return encodeURIComponent(json.fieldKeyPath.toUpperCase()); // Issue 53197 } } }; @@ -92,7 +92,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.FieldMetaStore', { type: 'json', root: 'columns', idProperty: function(json) { - return json.fieldKeyPath.toUpperCase(); + return encodeURIComponent(json.fieldKeyPath.toUpperCase()); // Issue 53197 } } }; @@ -109,7 +109,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.FieldMetaStore', { getById : function(id) { var _id; if (Ext4.isString(id)) { - _id = id.toUpperCase(); + _id = encodeURIComponent(id.toUpperCase()); // Issue 53197 } else { _id = id; From 88b01e26fc77dee948b568367d625490f1655a0e Mon Sep 17 00:00:00 2001 From: cnathe Date: Tue, 8 Jul 2025 08:26:28 -0500 Subject: [PATCH 2/3] use encodeURI instead to account for child lookup nodes in tree --- core/webapp/internal/ViewDesigner/Designer.js | 5 +++-- core/webapp/internal/ViewDesigner/FieldMetaStore.js | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/core/webapp/internal/ViewDesigner/Designer.js b/core/webapp/internal/ViewDesigner/Designer.js index 3bad6200740..af174123b35 100644 --- a/core/webapp/internal/ViewDesigner/Designer.js +++ b/core/webapp/internal/ViewDesigner/Designer.js @@ -1134,7 +1134,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.Designer', { nodeEl; for (var i = 0; i < columns.length; i++) { - checked[encodeURIComponent(columns[i].get('id'))] = true; // Issue 53197 + checked[encodeURI(columns[i].get('id'))] = true; // Issue 53197 } this.getColumnTree().getRootNode().cascadeBy(function(node) { @@ -1196,7 +1196,8 @@ Ext4.define('LABKEY.internal.ViewDesigner.Designer', { }, onRemoveColumn : function(id) { - var node = this.getColumnTree().getStore().getNodeById(id); + var _id = encodeURI(id); // Issue 53197 + var node = this.getColumnTree().getStore().getNodeById(_id); if (node) { node.set('checked', false); } diff --git a/core/webapp/internal/ViewDesigner/FieldMetaStore.js b/core/webapp/internal/ViewDesigner/FieldMetaStore.js index edd9c76ef29..e03f500f280 100644 --- a/core/webapp/internal/ViewDesigner/FieldMetaStore.js +++ b/core/webapp/internal/ViewDesigner/FieldMetaStore.js @@ -37,7 +37,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.FieldMetaTreeStore', { type: 'json', root: 'columns', idProperty: function(json) { - return encodeURIComponent(json.fieldKeyPath.toUpperCase()); // Issue 53197 + return encodeURI(json.fieldKeyPath.toUpperCase()); // Issue 53197 } } }; @@ -92,7 +92,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.FieldMetaStore', { type: 'json', root: 'columns', idProperty: function(json) { - return encodeURIComponent(json.fieldKeyPath.toUpperCase()); // Issue 53197 + return encodeURI(json.fieldKeyPath.toUpperCase()); // Issue 53197 } } }; @@ -109,7 +109,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.FieldMetaStore', { getById : function(id) { var _id; if (Ext4.isString(id)) { - _id = encodeURIComponent(id.toUpperCase()); // Issue 53197 + _id = encodeURI(id.toUpperCase()); // Issue 53197 } else { _id = id; From af9ed0f405dc382b11b7f133a7f22825ed6ba52f Mon Sep 17 00:00:00 2001 From: cnathe Date: Wed, 9 Jul 2025 16:21:45 -0500 Subject: [PATCH 3/3] CR feedback: apply encodeURI in BaseTabs --- core/webapp/internal/ViewDesigner/Designer.js | 5 ++--- core/webapp/internal/ViewDesigner/tab/BaseTab.js | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/webapp/internal/ViewDesigner/Designer.js b/core/webapp/internal/ViewDesigner/Designer.js index af174123b35..4fd0bd68d93 100644 --- a/core/webapp/internal/ViewDesigner/Designer.js +++ b/core/webapp/internal/ViewDesigner/Designer.js @@ -1134,7 +1134,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.Designer', { nodeEl; for (var i = 0; i < columns.length; i++) { - checked[encodeURI(columns[i].get('id'))] = true; // Issue 53197 + checked[columns[i].get('id')] = true; } this.getColumnTree().getRootNode().cascadeBy(function(node) { @@ -1196,8 +1196,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.Designer', { }, onRemoveColumn : function(id) { - var _id = encodeURI(id); // Issue 53197 - var node = this.getColumnTree().getStore().getNodeById(_id); + var node = this.getColumnTree().getStore().getNodeById(id); if (node) { node.set('checked', false); } diff --git a/core/webapp/internal/ViewDesigner/tab/BaseTab.js b/core/webapp/internal/ViewDesigner/tab/BaseTab.js index 6d0f73bbfd9..ff11df743d1 100644 --- a/core/webapp/internal/ViewDesigner/tab/BaseTab.js +++ b/core/webapp/internal/ViewDesigner/tab/BaseTab.js @@ -13,11 +13,11 @@ Ext4.define('LABKEY.internal.ViewDesigner.model.FieldKey', { mapping: 'fieldKey', convert : function(fieldKey, rec) { if (Ext4.isString(fieldKey)) { - return fieldKey.toUpperCase(); + return encodeURI(fieldKey.toUpperCase()); // Issue 53197 } if (rec && rec.raw && Ext4.isString(rec.raw.fieldKey)) { - return rec.raw.fieldKey.toUpperCase(); + return encodeURI(rec.raw.fieldKey.toUpperCase()); // Issue 53197 } throw new Error('LABKEY.internal.ViewDesigner.model.FieldKey: unable to generate id due to missing fieldKey.'); @@ -30,7 +30,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.model.FieldKey', { getById: function(id) { var _id; if (Ext4.isString(id)) { - _id = id.toUpperCase(); + _id = encodeURI(id.toUpperCase()); // Issue 53197 } else { _id = id; @@ -51,7 +51,7 @@ Ext4.define('LABKEY.internal.ViewDesigner.store.FieldKey', { getById: function(id) { var _id; if (Ext4.isString(id)) { - _id = id.toUpperCase(); + _id = encodeURI(id.toUpperCase()); // Issue 53197 } else { _id = id;