From: Galen Charlton Date: Thu, 24 May 2018 02:17:26 +0000 (-0400) Subject: implement ctx.max_cart_size X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=5146f6b238706ad8cdef4e7554b2fd6d2b798064;p=working%2FEvergreen.git implement ctx.max_cart_size Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/templates/opac/parts/config.tt2 b/Open-ILS/src/templates/opac/parts/config.tt2 index b0ad747cdf..a592ff5a4c 100644 --- a/Open-ILS/src/templates/opac/parts/config.tt2 +++ b/Open-ILS/src/templates/opac/parts/config.tt2 @@ -265,4 +265,9 @@ ctx.exclude_electronic_checkbox = 0; ############################################################################## ctx.hide_badge_scores = 'false'; +############################################################################## +# Maximum number of items allowed to be stored in a cart +############################################################################## +ctx.max_cart_size = 500; + %] diff --git a/Open-ILS/src/templates/opac/parts/js.tt2 b/Open-ILS/src/templates/opac/parts/js.tt2 index 2c52ce6abb..a1dae3da4f 100644 --- a/Open-ILS/src/templates/opac/parts/js.tt2 +++ b/Open-ILS/src/templates/opac/parts/js.tt2 @@ -147,3 +147,7 @@ var aou_hash = { [%- END; # want_dojo -%] + +[%- IF ctx.max_cart_size; %] + +[%- END; %] diff --git a/Open-ILS/src/templates/opac/parts/result/table.tt2 b/Open-ILS/src/templates/opac/parts/result/table.tt2 index f550157b20..9cd7509bdb 100644 --- a/Open-ILS/src/templates/opac/parts/result/table.tt2 +++ b/Open-ILS/src/templates/opac/parts/result/table.tt2 @@ -43,6 +43,7 @@ [% l('selected titles') %] [% END; %] + [% l('Clear selections') %] diff --git a/Open-ILS/web/js/ui/default/opac/record_selectors.js b/Open-ILS/web/js/ui/default/opac/record_selectors.js index bad67ea25c..0a6439eedb 100644 --- a/Open-ILS/web/js/ui/default/opac/record_selectors.js +++ b/Open-ILS/web/js/ui/default/opac/record_selectors.js @@ -9,6 +9,7 @@ mylist = result.mylist; document.getElementById('selected_records_count').innerHTML = mylist.length; document.getElementById('record_cart_count').innerHTML = mylist.length; + checkMaxCartSize(); } } @@ -63,6 +64,24 @@ } } + function checkMaxCartSize() { + if ((typeof max_cart_size === 'undefined') || !max_cart_size) return; + var current_size = parseInt(document.getElementById('selected_records_count').innerHTML); + [].forEach.call(rec_selectors, function(el) { + if (!el.checked) el.disabled = (current_size >= max_cart_size); + }); + var alertel = document.getElementById('hit_selected_record_limit'); + if (current_size >= max_cart_size) { + alertel.classList.remove('hidden'); + if (!document.getElementById('select_all_records').checked) { + document.getElementById('select_all_records').disabled = true; + } + } else { + alertel.classList.add('hidden'); + document.getElementById('select_all_records').disabled = false; + } + } + if (rec_selector_block) rec_selector_block.classList.remove("hidden"); var all_checked = true; [].forEach.call(rec_selectors, function(el) { @@ -82,6 +101,7 @@ if (all_checked) { document.getElementById('select_all_records').checked = true; } + checkMaxCartSize(); function deselectSelectedOnPage() { var to_del = [];