View | Details | Raw Unified | Return to bug 31698
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt (-28 / +28 lines)
Lines 1404-1442 Link Here
1404
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
1404
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
1405
            </div>
1405
            </div>
1406
            <div class="modal-body">
1406
            <div class="modal-body">
1407
                <div id="move_hold_item_selection">
1408
                    <h3>1. Review holds to move</h3>
1409
                    <table class="table table-striped">
1410
                        <thead>
1411
                            <tr>
1412
                                <th>Hold ID</th>
1413
                                <th>Original hold</th>
1414
                                <th>Problem</th>
1415
                            </tr>
1416
                        </thead>
1417
                        <tbody> </tbody>
1418
                    </table>
1419
                </div>
1420
                <hr />
1421
                <div id="move_hold_item_search" class="alert alert-danger" style="display:none;"></div>
1407
                <div id="move_hold_item_search" class="alert alert-danger" style="display:none;"></div>
1422
                <form id="itemSearchForm">
1408
                <form id="itemSearchForm">
1423
                    <div id="move_hold_item_searchform">
1409
                    <div id="move_hold_item_searchform">
1424
                        <h3>2. Enter the item barcode of new hold target: </h3>
1410
                        <h3>Enter the item barcode of new hold target: </h3>
1425
                        <fieldset class="action">
1411
                        <fieldset class="action d-flex">
1426
                            <input type="text" class="form-control" name="external_id" id="external_id" required />
1412
                            <input type="text" class="form-control" name="external_id" id="external_id" required />
1427
                            <button type="submit" class="btn btn-default mt-3">Search</button>
1413
                            <button type="submit" class="btn btn-default">Search</button>
1428
                        </fieldset>
1414
                        </fieldset>
1429
                    </div>
1415
                    </div>
1430
                </form>
1416
                </form>
1431
                <form id="move_hold_item_form" method="post" action="request.pl">
1417
                <form id="move_hold_item_form" method="post" action="request.pl">
1418
                    [% INCLUDE 'csrf-token.inc' %]
1419
                    <input type="hidden" name="op" value="cud-move_hold_item" />
1420
                    <input type="hidden" name="original_biblionumber" value="[% biblio.biblionumber | html %]" />
1432
                    <div id="itemResultMessage" class="mt-3"> </div>
1421
                    <div id="itemResultMessage" class="mt-3"> </div>
1433
                    <div id="move_hold_item_confirm" style="display:none;">
1422
                    <div id="move_hold_item_selection">
1434
                        <h3>3. Confirm moving of holds:</h3>
1423
                        <h3>Review holds to move</h3>
1435
                        [% INCLUDE 'csrf-token.inc' %]
1424
                        <table class="table table-striped">
1436
                        <input type="hidden" name="op" value="cud-move_hold_item" />
1425
                            <thead>
1437
                        <button type="submit" class="btn btn-primary mt-3">Move selected holds</button>
1426
                                <tr>
1438
                        <input type="hidden" name="original_biblionumber" value="[% biblio.biblionumber %]" />
1427
                                    <th></th>
1428
                                    <th>Hold ID</th>
1429
                                    <th>Original hold</th>
1430
                                    <th>Problem</th>
1431
                                </tr>
1432
                            </thead>
1433
                            <tbody> </tbody>
1434
                        </table>
1439
                    </div>
1435
                    </div>
1436
                    <button id="move_hold_item_confirm" type="submit" class="btn btn-primary" disabled="disabled">Move selected holds</button>
1440
                </form>
1437
                </form>
1441
            </div>
1438
            </div>
1442
            <div class="modal-footer">
1439
            <div class="modal-footer">
Lines 1484-1490 Link Here
1484
                        [% INCLUDE 'csrf-token.inc' %]
1481
                        [% INCLUDE 'csrf-token.inc' %]
1485
                        <input type="hidden" name="op" value="cud-move_hold_biblio" />
1482
                        <input type="hidden" name="op" value="cud-move_hold_biblio" />
1486
                        <button type="submit" class="btn btn-primary mt-3">Move selected holds</button>
1483
                        <button type="submit" class="btn btn-primary mt-3">Move selected holds</button>
1487
                        <input type="hidden" name="original_biblionumber" value="[% biblio.biblionumber %]" />
1484
                        <input type="hidden" name="original_biblionumber" value="[% biblio.biblionumber | html %]" />
1488
                    </div>
1485
                    </div>
1489
                </form>
1486
                </form>
1490
            </div>
1487
            </div>
Lines 1808-1813 Link Here
1808
         $(document).ready(function() {
1805
         $(document).ready(function() {
1809
            $("#itemSearchForm").on("submit", function (event) {
1806
            $("#itemSearchForm").on("submit", function (event) {
1810
                event.preventDefault();
1807
                event.preventDefault();
1808
                $('#move_hold_item_confirm').prop('disabled' , true );
1811
1809
1812
                let externalID = $("#external_id").val();
1810
                let externalID = $("#external_id").val();
1813
                let apiUrl = `/api/v1/items?external_id=${encodeURIComponent(externalID)}`;
1811
                let apiUrl = `/api/v1/items?external_id=${encodeURIComponent(externalID)}`;
Lines 1877-1885 Link Here
1877
            $(document).on("change", 'input[name="new_itemnumber"]', function() {
1875
            $(document).on("change", 'input[name="new_itemnumber"]', function() {
1878
                $('input[name="new_itemnumber"]').not(this).prop("checked", false);
1876
                $('input[name="new_itemnumber"]').not(this).prop("checked", false);
1879
                if ( $('input[name="new_itemnumber"]:checked').length ){
1877
                if ( $('input[name="new_itemnumber"]:checked').length ){
1880
                    $('#move_hold_item_confirm').show();
1878
                    $('#move_hold_item_confirm').prop( 'disabled' , false );
1881
                } else {
1879
                } else {
1882
                    $('#move_hold_item_confirm').hide();
1880
                    $('#move_hold_item_confirm').prop( 'disabled' , true );
1883
                }
1881
                }
1884
            });
1882
            });
1885
1883
Lines 1994-1999 Link Here
1994
1992
1995
            $('.move_hold_item').click(function(e) {
1993
            $('.move_hold_item').click(function(e) {
1996
                e.preventDefault();
1994
                e.preventDefault();
1995
                $('#move_hold_item_confirm').prop('disabled' , true );
1997
                if($('.holds_table .select_hold:checked').length) {
1996
                if($('.holds_table .select_hold:checked').length) {
1998
                    $('#itemResultMessage').empty();
1997
                    $('#itemResultMessage').empty();
1999
                    $('#move_hold_item_selection table tbody').empty();
1998
                    $('#move_hold_item_selection table tbody').empty();
Lines 2005-2013 Link Here
2005
                        let item_level_hold = $(this).data('item_level_hold');
2004
                        let item_level_hold = $(this).data('item_level_hold');
2006
                        let error_message = $(this).data('item_level_hold') ? "" : _("Cannot move a waiting or record level hold");
2005
                        let error_message = $(this).data('item_level_hold') ? "" : _("Cannot move a waiting or record level hold");
2007
                        let found_status = $(this).data('found');
2006
                        let found_status = $(this).data('found');
2008
                        $('#move_hold_item_selection table').append(`<tr><td>${reserve_id}</td><td>Biblionumber: <a target="_blank" href="/cgi-bin/koha/reserve/request.pl?biblionumber=${reserve_biblionumber}">${reserve_biblionumber}</a> Itemnumber: <a target="_blank" href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=${reserve_biblionumber}#item${reserve_itemnumber}">${reserve_itemnumber}</a></td><td>${error_message}</td></tr>`)
2009
                        if ( item_level_hold ) {
2007
                        if ( item_level_hold ) {
2010
                            $('#move_hold_item_form').append(`<input type="hidden" name="hold_id" value="${reserve_id}">`);
2008
                            $('#move_hold_item_selection table').append(`<tr><td><input type="checkbox" name="move_hold_id" value="${reserve_id}" checked/></td><td>${reserve_id}</td><td>Biblionumber: <a target="_blank" href="/cgi-bin/koha/reserve/request.pl?biblionumber=${reserve_biblionumber}">${reserve_biblionumber}</a> Itemnumber: <a target="_blank" href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=${reserve_biblionumber}#item${reserve_itemnumber}">${reserve_itemnumber}</a></td><td>${error_message}</td></tr>`)
2009
                        } else {
2010
                            $('#move_hold_item_selection table').append(`<tr><td><input type="checkbox" name="move_hold_id" value="${reserve_id}" checked/></td><td>${reserve_id}</td><td>Biblionumber: <a target="_blank" href="/cgi-bin/koha/reserve/request.pl?biblionumber=${reserve_biblionumber}">${reserve_biblionumber}</a> Itemnumber: <a target="_blank" href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=${reserve_biblionumber}#item${reserve_itemnumber}">${reserve_itemnumber}</a></td><td>${error_message}</td></tr>`)
2011
                        }
2011
                        }
2012
                    });
2012
                    });
2013
                }
2013
                }
(-)a/reserve/request.pl (-2 / +1 lines)
Lines 111-117 if ( $op eq 'cud-move' ) { Link Here
111
        );
111
        );
112
    }
112
    }
113
} elsif ( $op eq 'cud-move_hold_item' or $op eq 'cud-move_hold_biblio' ) {
113
} elsif ( $op eq 'cud-move_hold_item' or $op eq 'cud-move_hold_biblio' ) {
114
    my @hold_ids              = $input->multi_param('hold_id');
114
    my @hold_ids              = $input->multi_param('move_hold_id');
115
    my $original_biblionumber = $input->param('original_biblionumber');
115
    my $original_biblionumber = $input->param('original_biblionumber');
116
    my @moving_holds          = Koha::Holds->search(
116
    my @moving_holds          = Koha::Holds->search(
117
        { reserve_id => \@hold_ids },
117
        { reserve_id => \@hold_ids },
118
- 

Return to bug 31698