From 868ce12ad63de121703222ad86afdb739d3e864c Mon Sep 17 00:00:00 2001 From: Matteo Piovanelli Date: Thu, 30 Jul 2020 19:04:43 +0200 Subject: [PATCH] fix for CPF when other scripts are also adding to sessionStorage (#8404) --- .../Modules/Orchard.ContentPicker/ResourceManifest.cs | 2 +- .../Scripts/SelectableContentTab.js | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs index 021889434..ad8e46a55 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs @@ -5,7 +5,7 @@ namespace Orchard.ContentPicker { public void BuildManifests(ResourceManifestBuilder builder) { var manifest = builder.Add(); manifest.DefineScript("ContentPicker").SetUrl("ContentPicker.js", "ContentPicker.js").SetDependencies("jQuery"); - manifest.DefineScript("SelectableContentTab").SetUrl("SelectableContentTab.js", "SelectableContentTab.js").SetDependencies("jQuery"); + manifest.DefineScript("SelectableContentTab").SetUrl("SelectableContentTab.js?v=1.1", "SelectableContentTab.js?v=1.1").SetDependencies("jQuery"); } } } diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js index 3e230a5b8..cfd8c8a60 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js @@ -32,8 +32,13 @@ $('.button.addSelected').on('click', function () { var itemsToAdd = new Array(); for (var i = 0; i < sessionStorage.length; i++) { - var data = window.sessionStorage.getItem(sessionStorage.key(i)); - itemsToAdd.push(JSON.parse(data)); + var key = sessionStorage.key(i); + // only add the item if the key is an integer: other scripts may be + // adding stuff to sessionStorage + if (!isNaN(key - parseInt(key))) { + var data = window.sessionStorage.getItem(sessionStorage.key(i)); + itemsToAdd.push(JSON.parse(data)); + } } window.sessionStorage.clear(); window.opener.jQuery[query("callback")](itemsToAdd);