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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt (-19 / +57 lines)
Lines 375-380 Link Here
375
                    </div>
375
                    </div>
376
                [% END %]
376
                [% END %]
377
377
378
                <div class="dialog alert hide holdalert">
379
                </div>
380
378
                <fieldset class="rows">
381
                <fieldset class="rows">
379
                    <legend>Hold details</legend>
382
                    <legend>Hold details</legend>
380
                    <form action="/api/v1/holds" method="post" name="form" id="hold-request-form">
383
                    <form action="/api/v1/holds" method="post" name="form" id="hold-request-form">
Lines 443-448 Link Here
443
                                <li>
446
                                <li>
444
                                    <label for="from">Hold starts on date:</label>
447
                                    <label for="from">Hold starts on date:</label>
445
                                    <input name="reserve_date" id="from" size="10" class="datepickerfrom" type="text" >
448
                                    <input name="reserve_date" id="from" size="10" class="datepickerfrom" type="text" >
449
                                    <input type="hidden" class="datepickerfrom_hidden" />
446
                                    <a href="#" id="clear-date-from" class="clear-date">Clear date</a>
450
                                    <a href="#" id="clear-date-from" class="clear-date">Clear date</a>
447
                                </li>
451
                                </li>
448
                            [% END %]
452
                            [% END %]
Lines 450-455 Link Here
450
                            <li>
454
                            <li>
451
                                <label for="to">Hold expires on date:</label>
455
                                <label for="to">Hold expires on date:</label>
452
                                <input name="expiration_date" id="to" size="10" class="datepickerto" type="text" />
456
                                <input name="expiration_date" id="to" size="10" class="datepickerto" type="text" />
457
                                <input type="hidden" class="datepickerto_hidden" />
453
                                <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
458
                                <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
454
                            </li>
459
                            </li>
455
460
Lines 977-982 Link Here
977
                $(".suspend_until_datepicker, .datepickerfrom, .datepickerto").datepicker("option", "minDate", 1);
982
                $(".suspend_until_datepicker, .datepickerfrom, .datepickerto").datepicker("option", "minDate", 1);
978
            [% END %]
983
            [% END %]
979
984
985
            $(".datepickerto").datepicker("option", "altField", ".datepickerto_hidden");
986
            $(".datepickerto").datepicker("option", "altFormat", "yy-mm-dd");
987
988
            $(".datepickerfrom").datepicker("option", "altField", ".datepickerfrom_hidden");
989
            $(".datepickerfrom").datepicker("option", "altFormat", "yy-mm-dd");
990
980
            var my_table = $("#requestspecific").dataTable($.extend(true, {}, dataTablesDefaults, {
991
            var my_table = $("#requestspecific").dataTable($.extend(true, {}, dataTablesDefaults, {
981
                'bPaginate': false,
992
                'bPaginate': false,
982
                "sDom": '<"top pager"ilf>t',
993
                "sDom": '<"top pager"ilf>t',
Lines 992-1019 Link Here
992
                "margin-right":"0em"
1003
                "margin-right":"0em"
993
            });
1004
            });
994
1005
995
            $("#club-request-form").on("submit", function() {
1006
            $("#club-request-form, #hold-request-form").on("submit", function() {
996
                let $t = $(this);
1007
                let $t = $(this);
997
                $('.clubalert').addClass('hide');
1008
                $('.clubalert').addClass('hide');
998
                let options = {
1009
                let biblionumbers = [biblionumber];
999
                    url: $t.attr('action'),
1010
                let biblionumbers_text;
1000
                    method: $t.attr('method').toUpperCase(),
1011
                const data = {
1001
                    contentType: 'application/json',
1012
                    pickup_library_id: $('select[name="pickup"]').val()
1002
                    data: JSON.stringify({
1003
                        biblio_id: biblionumber,
1004
                        pickup_library_id: $('select[name="pickup"]').val()
1005
                    })
1006
                };
1013
                };
1007
                if($('input[name="checkitem"]:checked').length)
1014
                if($('input[name="checkitem"]:checked').length)
1008
                    options.data.item_id = $('input[name="checkitem"]:checked').val();
1015
                    data.item_id = $('input[name="checkitem"]:checked').val();
1009
                $.ajax(options)
1016
                if($('input[name="borrowernumber"]').length)
1010
                    .then(function(result) {
1017
                    data.patron_id = $('input[name="borrowernumber"]').val();
1011
                        let url = 'request.pl?biblionumber='+biblionumber+($('input[name="multi_hold"]').length && $('input[name="multi_hold"]').val()?'&multi_hold=1':'');
1018
                if($('textarea[name="notes"]').length)
1012
                        document.location = url;
1019
                    data.notes = $('textarea[name="notes"]').val()||null;
1013
                    })
1020
                if($('.datepickerto_hidden').length)
1014
                    .fail(function(err) {
1021
                    data.expiration_date = $('.datepickerto_hidden').val()||null;
1015
                        $('.clubalert').removeClass('hide').html(err.responseJSON.error);
1022
                if($('.datepickerfrom_hidden').length)
1016
                    });
1023
                    data.hold_date = $('.datepickerfrom_hidden').val()||null;
1024
                if($('input[name="itemtype"]').length) {
1025
                    data.item_type = $('input[name="itemtype"]').val()||null;
1026
                }
1027
                if($('input[name="biblionumbers"]').length) {
1028
                    biblionumbers_text = $('input[name="biblionumbers"]').val();
1029
                    biblionumbers = biblionumbers_text.replace(/\/$/, '').split('/')
1030
                }
1031
1032
                const count = $('input[name="holds_to_place_count"]').length?$('input[name="holds_to_place_count"]').val():1;
1033
                biblionumbers.forEach(function(biblionumber) {
1034
                    data.biblio_id = biblionumber;
1035
                    let options = {
1036
                        url: $t.attr('action'),
1037
                        method: $t.attr('method').toUpperCase(),
1038
                        contentType: 'application/json',
1039
                        data: JSON.stringify(data)
1040
                    };
1041
                    for(let i = 0; i < count; i++) {
1042
                        $.ajax(options)
1043
                        .then(function(result) {
1044
                            let url = 'request.pl?biblionumber='+biblionumber;
1045
                            if(biblionumbers_text) {
1046
                                url = 'request.pl?biblionumbers='+biblionumbers_text+'&multi_hold=1';
1047
                            }
1048
                            document.location = url;
1049
                        })
1050
                        .fail(function(err) {
1051
                            $('.clubalert, .holdalert').removeClass('hide').html(err.responseJSON.error);
1052
                        });
1053
                    }
1054
                });
1055
1017
                return false;
1056
                return false;
1018
            });
1057
            });
1019
1058
1020
- 

Return to bug 23710