Lines 105-110
Link Here
|
105 |
:disabled { |
105 |
:disabled { |
106 |
opacity: 0.5; |
106 |
opacity: 0.5; |
107 |
} |
107 |
} |
|
|
108 |
#toolbar { |
109 |
align-items: center; |
110 |
} |
108 |
</style> |
111 |
</style> |
109 |
[% END %] |
112 |
[% END %] |
110 |
</head> |
113 |
</head> |
Lines 1235-1240
Link Here
|
1235 |
</select> |
1238 |
</select> |
1236 |
[% END %] |
1239 |
[% END %] |
1237 |
</fieldset> |
1240 |
</fieldset> |
|
|
1241 |
[% IF ( CAN_user_reserveforothers_alter_hold_targets ) %] |
1242 |
<div class="btn-group"> |
1243 |
<a class="btn btn-default btn-xs dropdown-toggle move_selected_holds" id="item_record_choice" role="button" data-bs-toggle="dropdown" href="#" aria-expanded="false"></a> |
1244 |
<ul class="dropdown-menu" role="menu" aria-labelledby="item_record_choice" style=""> |
1245 |
<li><a class="dropdown-item move_hold_item" href="#">Item level holds to a different item</a></li> |
1246 |
<li><a class="dropdown-item move_hold_record" href="#">Record level holds to a different record</a></li> |
1247 |
</ul> |
1248 |
</div> |
1249 |
[% END %] |
1238 |
</div> |
1250 |
</div> |
1239 |
<div class="page-section"> |
1251 |
<div class="page-section"> |
1240 |
[% FOREACH biblioloo IN biblioloop %] |
1252 |
[% FOREACH biblioloo IN biblioloop %] |
Lines 1416-1421
Link Here
|
1416 |
</div> |
1428 |
</div> |
1417 |
</div> |
1429 |
</div> |
1418 |
</div> |
1430 |
</div> |
|
|
1431 |
<div id="moveHoldItemModal" class="modal modal-lg" tabindex="-1" role="dialog" aria-hidden="true"> |
1432 |
<div class="modal-dialog"> |
1433 |
<div class="modal-content"> |
1434 |
<div class="modal-header"> |
1435 |
<h1 class="modal-title">Move hold(s) to a different item</h1> |
1436 |
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> |
1437 |
</div> |
1438 |
<div class="modal-body"> |
1439 |
<div id="move_hold_item_selection"> |
1440 |
<h3>Selected holds to move</h3> |
1441 |
<table> |
1442 |
<thead> |
1443 |
<tr> |
1444 |
<th>Hold ID</th> |
1445 |
<th>Item barcode ( current hold )</th> |
1446 |
</tr> |
1447 |
</thead> |
1448 |
<tbody> </tbody> |
1449 |
</table> |
1450 |
</div> |
1451 |
<hr /> |
1452 |
<div id="move_hold_item_search" class="alert alert-danger" style="display:none;"></div> |
1453 |
<form id="searchForm"> |
1454 |
<div id="move_hold_item_searchform"> |
1455 |
<fieldset class="action"> |
1456 |
<h3><label for="external_id">Enter the item barcode of new hold target: </label></h3> |
1457 |
<input type="text" class="form-control" name="external_id" id="external_id" required /> |
1458 |
</fieldset> |
1459 |
<button type="submit" class="btn btn-success mt-3">Search</button> |
1460 |
</div> |
1461 |
</form> |
1462 |
<hr /> |
1463 |
<form id="move_hold_item_form" method="post" action="request.pl"> |
1464 |
[% INCLUDE 'csrf-token.inc' %] |
1465 |
<input type="hidden" name="op" value="cud-move_hold_item" /> |
1466 |
<div id="resultMessage" class="mt-3"> </div> |
1467 |
<button type="submit" class="btn btn-primary mt-3">Move selected holds</button> |
1468 |
</form> |
1469 |
</div> |
1470 |
<div class="modal-footer"> |
1471 |
<button type="button" class="btn btn-default" data-bs-dismiss="modal">Cancel</button> |
1472 |
</div> |
1473 |
</div> |
1474 |
</div> |
1475 |
</div> |
1419 |
<div id="hold-actions"> |
1476 |
<div id="hold-actions"> |
1420 |
<form id="hold-actions-form"> [% INCLUDE 'csrf-token.inc' %] </form> |
1477 |
<form id="hold-actions-form"> [% INCLUDE 'csrf-token.inc' %] </form> |
1421 |
</div> |
1478 |
</div> |
Lines 1467-1472
Link Here
|
1467 |
} |
1524 |
} |
1468 |
|
1525 |
|
1469 |
var MSG_CANCEL_SELECTED = _("Cancel selected (%s)"); |
1526 |
var MSG_CANCEL_SELECTED = _("Cancel selected (%s)"); |
|
|
1527 |
var MSG_MOVE_SELECTED = _("Move selected (%s)"); |
1470 |
var MSG_CANCEL_ALERT = _("This action will cancel <span class='badge'>%s</span> hold(s)."); |
1528 |
var MSG_CANCEL_ALERT = _("This action will cancel <span class='badge'>%s</span> hold(s)."); |
1471 |
$.fn.select2.defaults.set("width", "100%" ); |
1529 |
$.fn.select2.defaults.set("width", "100%" ); |
1472 |
$.fn.select2.defaults.set("dropdownAutoWidth", true ); |
1530 |
$.fn.select2.defaults.set("dropdownAutoWidth", true ); |
Lines 1731-1736
Link Here
|
1731 |
} |
1789 |
} |
1732 |
|
1790 |
|
1733 |
$(document).ready(function() { |
1791 |
$(document).ready(function() { |
|
|
1792 |
$("#searchForm").on("submit", function (event) { |
1793 |
event.preventDefault(); |
1794 |
|
1795 |
let externalID = $("#external_id").val(); |
1796 |
let apiUrl = `/api/v1/items?external_id=${encodeURIComponent(externalID)}`; |
1797 |
|
1798 |
$.ajax({ |
1799 |
url: apiUrl, |
1800 |
method: "GET", |
1801 |
dataType: "json", |
1802 |
success: function (data) { |
1803 |
if (data.length > 0) { |
1804 |
let resultHtml = ""; |
1805 |
$.each(data, function (index, item) { |
1806 |
resultHtml += ` |
1807 |
<div class="alert alert-success"> |
1808 |
<strong>Biblionumber:</strong> ${item.biblio_id} <br> |
1809 |
<strong>Item:</strong> ${item.external_id} <br> |
1810 |
<input id="new_itemnumber_${item.item_id}" name="new_itemnumber" type="checkbox" value="${item.item_id}"> |
1811 |
<label for="new_itemnumber_${item.item_id}">Move all selected item level holds to this item</label> |
1812 |
<input id="new_biblionumber_${item.item_id}" name="new_biblionumber" type="hidden" value="${item.biblio_id}"> |
1813 |
</div> |
1814 |
<hr /> |
1815 |
`; |
1816 |
}); |
1817 |
$("#resultMessage").html(resultHtml); |
1818 |
} else { |
1819 |
$("#resultMessage").html(` |
1820 |
<div class="alert alert-warning">No item found with barcode: ${externalID}.</div> |
1821 |
`); |
1822 |
} |
1823 |
}, |
1824 |
}); |
1825 |
}); |
1826 |
|
1827 |
$(document).on("change", 'input[name="new_itemnumber"]', function() { |
1828 |
$('input[name="new_itemnumber"]').not(this).prop("checked", false); |
1829 |
}); |
1734 |
|
1830 |
|
1735 |
$("#always_show_holds").change(function(){ |
1831 |
$("#always_show_holds").change(function(){ |
1736 |
if( $(this).prop('checked') ){ |
1832 |
if( $(this).prop('checked') ){ |
Lines 1834-1839
Link Here
|
1834 |
}); |
1930 |
}); |
1835 |
|
1931 |
|
1836 |
$('.cancel_selected_holds').html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked').length)); |
1932 |
$('.cancel_selected_holds').html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked').length)); |
|
|
1933 |
$('.move_selected_holds').html(MSG_MOVE_SELECTED.format($('.holds_table .select_hold:checked').length)); |
1837 |
|
1934 |
|
1838 |
$('.holds_table .select_hold_all').click(function() { |
1935 |
$('.holds_table .select_hold_all').click(function() { |
1839 |
var table = $(this).parents('.holds_table'); |
1936 |
var table = $(this).parents('.holds_table'); |
Lines 1841-1846
Link Here
|
1841 |
$('.select_hold', table).prop('checked', !count); |
1938 |
$('.select_hold', table).prop('checked', !count); |
1842 |
$(this).prop('checked', !count); |
1939 |
$(this).prop('checked', !count); |
1843 |
$('.cancel_selected_holds').html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked').length)); |
1940 |
$('.cancel_selected_holds').html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked').length)); |
|
|
1941 |
$('.move_selected_holds').html(MSG_MOVE_SELECTED.format($('.holds_table .select_hold:checked').length)); |
1844 |
$('#cancel_hold_alert').html( MSG_CANCEL_ALERT.format($('.holds_table .select_hold:checked').length)); |
1942 |
$('#cancel_hold_alert').html( MSG_CANCEL_ALERT.format($('.holds_table .select_hold:checked').length)); |
1845 |
$('#cancel_hold_alert').show(); |
1943 |
$('#cancel_hold_alert').show(); |
1846 |
localStorage.selectedHolds = $('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')); |
1944 |
localStorage.selectedHolds = $('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')); |
Lines 1851-1861
Link Here
|
1851 |
var count = $('.select_hold:not(:checked)', table).length; |
1949 |
var count = $('.select_hold:not(:checked)', table).length; |
1852 |
$('.select_hold_all', table).prop('checked', !count); |
1950 |
$('.select_hold_all', table).prop('checked', !count); |
1853 |
$('.cancel_selected_holds').html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked').length)); |
1951 |
$('.cancel_selected_holds').html(MSG_CANCEL_SELECTED.format($('.holds_table .select_hold:checked').length)); |
|
|
1952 |
$('.move_selected_holds').html(MSG_MOVE_SELECTED.format($('.holds_table .select_hold:checked').length)); |
1854 |
$('#cancel_hold_alert').html( MSG_CANCEL_ALERT.format($('.holds_table .select_hold:checked').length)); |
1953 |
$('#cancel_hold_alert').html( MSG_CANCEL_ALERT.format($('.holds_table .select_hold:checked').length)); |
1855 |
$('#cancel_hold_alert').show(); |
1954 |
$('#cancel_hold_alert').show(); |
1856 |
localStorage.selectedHolds = $('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')); |
1955 |
localStorage.selectedHolds = $('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')); |
1857 |
}); |
1956 |
}); |
1858 |
|
1957 |
|
|
|
1958 |
$('.move_hold_item').click(function(e) { |
1959 |
e.preventDefault(); |
1960 |
if($('.holds_table .select_hold:checked').length) { |
1961 |
$('#moveHoldItemModal #resultMessage').empty(); |
1962 |
$('#move_hold_item_selection table tbody').empty(); |
1963 |
$('#moveHoldItemModal').modal('show'); |
1964 |
$('.select_hold:checked').each( function() { |
1965 |
let reserve_id = $(this).data('id'); |
1966 |
let item_level_hold = $(this).data('item_level_hold'); |
1967 |
let found_status = $(this).data('found'); |
1968 |
$('#move_hold_item_selection table').append(`<tr><td>${reserve_id}</td><td></td></tr>`) |
1969 |
if ( item_level_hold ) { |
1970 |
$('#move_hold_item_form').append(`<input type="hidden" name="hold_id" value="${reserve_id}">`); |
1971 |
} |
1972 |
}); |
1973 |
} |
1974 |
}); |
1975 |
|
1859 |
$('.cancel_selected_holds').click(function(e) { |
1976 |
$('.cancel_selected_holds').click(function(e) { |
1860 |
e.preventDefault(); |
1977 |
e.preventDefault(); |
1861 |
if($('.holds_table .select_hold:checked').length) { |
1978 |
if($('.holds_table .select_hold:checked').length) { |
1862 |
- |
|
|