From 927e04b4adf53c5143f26afdce275e546580337e Mon Sep 17 00:00:00 2001 From: MarcoViglione-Laser Date: Thu, 18 Jul 2019 21:07:15 +0200 Subject: [PATCH] Allows selected contents to not be lost after changing page (#8248) Fixes #8247 --- .../Scripts/SelectableContentTab.js | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js index 2bc82e196..3e230a5b8 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js @@ -1,12 +1,18 @@ jQuery(function ($) { Initialize = function () { - - $('.button.addSelected').on('click', function () { - var selectedItems = $('.content-picker-itemCheck:checked'); - var itemsToAdd = new Array(); - $.each(selectedItems, function (index, item) { - var related = $(item).siblings('.content-picker-item').children('.related'); + $('.content-picker-itemCheck').each(function () { + var related = $(this).siblings('.content-picker-item').children('.related'); + + if (window.sessionStorage.getItem(related.data("id")) != null) { + $(this).prop('checked', true); + } + }); + + $('.content-picker-itemCheck').change(function () { + var related = $(this).siblings('.content-picker-item').children('.related'); + + if (this.checked) { var data = { id: related.data("id"), displayText: related.data("display-text"), @@ -16,13 +22,27 @@ displayLink: related.data("display-link"), published: related.data("published") }; - return itemsToAdd.push(data); - }); + + window.sessionStorage.setItem(related.data("id"), JSON.stringify(data)); + } else { + window.sessionStorage.removeItem(related.data("id")); + } + }); + + $('.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)); + } + window.sessionStorage.clear(); window.opener.jQuery[query("callback")](itemsToAdd); window.close(); }); + $('.content-picker-SelectAll').on('click', function () { $('.content-picker-itemCheck').prop('checked', $(this).prop("checked")); + $('.content-picker-itemCheck').change(); }); };