@@ -, +, @@ --- .../en/includes/members-patron-selections.inc | 6 ++ .../prog/js/members-patron-selections.js | 61 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/members-patron-selections.inc create mode 100644 koha-tmpl/intranet-tmpl/prog/js/members-patron-selections.js --- a/koha-tmpl/intranet-tmpl/prog/en/includes/members-patron-selections.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/members-patron-selections.inc @@ -0,0 +1,6 @@ + + + + + + --- a/koha-tmpl/intranet-tmpl/prog/js/members-patron-selections.js +++ a/koha-tmpl/intranet-tmpl/prog/js/members-patron-selections.js @@ -0,0 +1,61 @@ +function persistPatronSelections(form) { + var selected_patrons; + var persistence_checkbox = $("#maintain_selections_" + form)[0]; + var persist = persistence_checkbox.checked + if (form === 'patron-merge-form' && persist) { + // We should only keep the id for the patron that is being kept in the merge + var keeper_checkboxes = $(".keeper") + var patron_to_keep = keeper_checkboxes.filter(":checked") + var patron_id = patron_to_keep[0].value + selected_patrons = [ patron_id ] + } else { + selected_patrons = persist ? JSON.parse(localStorage.getItem("patron_search_selections")) : []; + } + localStorage.setItem('patron_search_selections', JSON.stringify(selected_patrons)); +} + +function showPatronSelections(number) { + if (number === 0) { + $("#table_search_selections").hide() + } else { + $("#table_search_selections").show().find("span").text(_("Patrons selected: " + number)); + } +} + +function prepSelections() { + var selected_patrons = JSON.parse(localStorage.getItem("patron_search_selections")); + if (selected_patrons && selected_patrons.length > 0) { + showPatronSelections(selected_patrons.length); + + $('#merge-patrons').prop('disabled', true); + $("input.selection").each(function () { + var cardnumber = $(this).val(); + if (selected_patrons.indexOf(cardnumber) >= 0) { + $(this).prop("checked", true); + } + }); + + if (selected_patrons.length > 1) { + $('#batch-mod-patrons, #merge-patrons, #patronlist-menu').removeClass("disabled").prop('disabled', false); + } + } else { + showPatronSelections(0); + $('#merge-patrons').prop('disabled', true); + $("input.selection").each(function () { + $(this).prop("checked", false); + }); + $('#batch-mod-patrons, #merge-patrons, #patronlist-menu').addClass("disabled").prop('disabled', true); + } +} + +$(document).ready(function () { + var form_identifier = $("#form-identifier").data(); + if(form_identifier && form_identifier.hasOwnProperty('identifier') && form_identifier.identifier) { + var form_id = form_identifier.identifier; + if (form_id !== 'new-patron-list_form') { + $("#" + form_id).on("submit", function(e){ + persistPatronSelections(form_id) + }); + } + } +}) --