Bug 37351: Rework checkbox JS to work with paginating dataTable
To Test:
1. Log in to staff client
2. Place items on items for borrowers
2-1 Place enough holds as noted above
2-2 Trap holds for borrowers
3. Open Circulation->Holds Awaiting Pickup (circ/waitingreserves.pl)
4. Click a checkbox for one or mroe holds
Note->The 'Cancel selected (0)' button changes to 'Cancel
selected (1)', etc.
5. Cancel selected Holds using the (Cancel selected (#) button)
6. Confirm Cancellation
7. Wait for background processes to complete, then verify holds are cancelled.
8. Return to Open Circulation->Holds Awaiting Pickup (circ/waitingreserves.pl)
9. Ensure button shows "Cancel selected (0)"
10. Click "Next >" to navigate to page 2 of holds
11. Click a checkbox for one or more holds
Note->The 'Cancel selected (0)' button DOES NOT increase as boxes
are selected.
12. Cancel selected Holds using the (Cancel selected (#) button)
13. Confirm Cancellation
14. Wait for background processes to complete, then verify holds are cancelled.
Note-> Holds were not cancelled
15. APPLY PATCH
16. Try step 9-14 again. This time the 'Cancel selected (0)' button should update even when you paginate.
17. Make sure you try all the tables, Holds waiting, Holds waiting over X, Holds with cancellation requests.
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit bbd1fa0bfa)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
2dbf64d7ad
commit
ca43567e86
|
|
@ -265,39 +265,41 @@
|
|||
});
|
||||
|
||||
$('.holds_table').each(function() {
|
||||
var table = $(this);
|
||||
var parent = table.parents('.tab-pane');
|
||||
|
||||
$('.holds_table .select_hold_all', parent).each(function() {
|
||||
var count = $('.select_hold:not(:checked)', table).length;
|
||||
$('.select_hold_all', table).prop('checked', !count);
|
||||
});
|
||||
|
||||
$('.cancel_selected_holds', parent).html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked', parent).length));
|
||||
|
||||
$('.holds_table .select_hold_all', parent).click(function() {
|
||||
var count = $('.select_hold:checked', table).length;
|
||||
$('.select_hold', table).prop('checked', !count);
|
||||
$(this).prop('checked', !count);
|
||||
$('.cancel_selected_holds', parent).data('ids', $('.holds_table .select_hold:checked', parent).toArray().map(el => $(el).data('id'))).html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked', parent).length));
|
||||
localStorage.selectedWaitingHolds = JSON.stringify($('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')));
|
||||
});
|
||||
|
||||
$('.holds_table .select_hold', parent).click(function() {
|
||||
var count = $('.select_hold:not(:checked)', table).length;
|
||||
$('.select_hold_all', table).prop('checked', !count);
|
||||
$('.cancel_selected_holds', parent).data('ids', $('.holds_table .select_hold:checked', parent).toArray().map(el => $(el).data('id'))).html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked', parent).length));
|
||||
localStorage.selectedWaitingHolds = JSON.stringify($('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')));
|
||||
});
|
||||
|
||||
$('.cancel_selected_holds', parent).click(function(e) {
|
||||
var table = $(this);
|
||||
var parent = table.parents('.tab-pane');
|
||||
var this_dt = $(this).closest('.holds_table').dataTable();
|
||||
parent.find('.cancel_selected_holds').html(MSG_CANCEL_SELECTED.format(this_dt.$(".select_hold:checked", {"page": "all"}).length));
|
||||
parent.find('.cancel_selected_holds').click(function(e) {
|
||||
e.preventDefault();
|
||||
if($('.select_hold:checked', table).length) {
|
||||
cancel_link = $(this);
|
||||
$('#cancelModal').modal();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$('.holds_table').on('click', '.select_hold_all', function() {
|
||||
var table = $(this);
|
||||
var parent = table.parents('.tab-pane');
|
||||
var this_dt = $(this).closest('.holds_table').dataTable();
|
||||
var all_pages = this_dt.fnGetNodes();
|
||||
|
||||
var all_checked = this_dt.find('.select_hold_all').prop('checked');
|
||||
this_dt.find('.select_hold' , all_pages).prop('checked', all_checked);
|
||||
|
||||
var count = this_dt.$(".select_hold:checked", {"page": "all"}).length;
|
||||
parent.find('.cancel_selected_holds').data('ids', this_dt.$(".select_hold:checked", {"page": "all"}).toArray().map(el => $(el).data('id'))).html(MSG_CANCEL_SELECTED.format(count));
|
||||
localStorage.selectedWaitingHolds = JSON.stringify(this_dt.$(".select_hold:checked", {"page": "all"}).toArray().map(el => $(el).data('id')));
|
||||
});
|
||||
|
||||
$('.holds_table').on('click', '.select_hold', function() {
|
||||
var table = $(this);
|
||||
var parent = table.parents('.tab-pane');
|
||||
var this_dt = $(this).closest('.holds_table').dataTable();
|
||||
var count = this_dt.$(".select_hold:checked", {"page": "all"}).length;
|
||||
parent.find('.cancel_selected_holds').data('ids', this_dt.$(".select_hold:checked", {"page": "all"}).toArray().map(el => $(el).data('id'))).html(MSG_CANCEL_SELECTED.format(count));
|
||||
localStorage.selectedWaitingHolds = JSON.stringify(this_dt.$(".select_hold:checked", {"page": "all"}).toArray().map(el => $(el).data('id')));
|
||||
});
|
||||
|
||||
var activeTab = localStorage.getItem("waitingreserves_activetab");
|
||||
|
|
|
|||
Loading…
Reference in New Issue