From ba231897914e115b5298a8c369fbe776d15aa39b Mon Sep 17 00:00:00 2001 From: Nicolas Demonte Date: Tue, 7 Apr 2020 17:52:14 +0200 Subject: [PATCH] Store subtypes in advanced search #32781 --- src/pfwbged/collection/pfwbcollection.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/pfwbged/collection/pfwbcollection.js b/src/pfwbged/collection/pfwbcollection.js index c4e7192..77e4f91 100644 --- a/src/pfwbged/collection/pfwbcollection.js +++ b/src/pfwbged/collection/pfwbcollection.js @@ -408,6 +408,15 @@ function update_portaltypes() $.querywidget.updateSearch(); } +function store_subtypes() { + var metatype = $('.metatypes input:checked').val(); + var chosen_types = $.map( + $('.subtype.'+metatype+' input[data-portaltype]:checked'), + function(val, i) { return $(val).data('portaltype'); } + ); + store_history_parameter('subtypes', chosen_types); +} + function select_metatype(elem) { $('div.subtype').hide(); @@ -472,6 +481,7 @@ function select_metatype(elem) return false; }); $('.subtype input').change(update_portaltypes); + $('.subtype input').change(store_subtypes); $('input[name="text-criteria-title"]').on('keyup', function() { if ($('option[value="Title"]:selected').length == 0) { @@ -559,7 +569,12 @@ function select_metatype(elem) if (history_state !== null) { if (history_state.metatype !== undefined) { var metatype = $('.metatypes [value="' + history_state.metatype + '"]'); - metatype.prop('checked', true).trigger('change'); + var subtypes = history_state.subtypes || []; + $.each(subtypes, function(index, value) { + $('input[data-portaltype="' + value + '"]').prop('checked', true); + }); + metatype.prop('checked', true); + metatype.trigger('change'); // refreshes metatype, then subtypes. } } };