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

(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt (-57 / +107 lines)
Lines 229-255 Link Here
229
                                                            </li>
229
                                                            </li>
230
                                                        [% END # / IF OpacHoldNotes %]
230
                                                        [% END # / IF OpacHoldNotes %]
231
231
232
                                                        [% IF ( OPACItemHolds ) %]
232
                                                        [% IF OPACItemHolds == '1' or OPACItemHolds == 'force' %]
233
                                                            <!-- ITEM HOLDS -->
233
                                                            <!-- ITEM HOLDS -->
234
                                                            <li class="lradio">
234
                                                            <li class="lradio place_on_type" style="display:none;">
235
                                                                <label class="radio inline" for="reqany_[% bibitemloo.biblionumber %]">Next available copy</label>
235
                                                                <label class="radio inline" for="reqany_[% bibitemloo.biblionumber %]">Next available copy</label>
236
                                                                [% UNLESS ( bibitemloo.holdable ) %]
236
                                                                [% IF OPACItemHolds == "1" %]
237
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]" id="reqany_[% bibitemloo.biblionumber %]" class="selectany" value="Any" disabled="disabled" />
237
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
238
                                                                            id="reqany_[% bibitemloo.biblionumber %]"
239
                                                                            class="selectany"
240
                                                                            value="Any"
241
                                                                            checked="checked"
242
                                                                    />
238
                                                                [% ELSE %]
243
                                                                [% ELSE %]
239
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]" id="reqany_[% bibitemloo.biblionumber %]" class="selectany" value="Any" checked="checked" />
244
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
245
                                                                            id="reqany_[% bibitemloo.biblionumber %]"
246
                                                                            class="selectany"
247
                                                                            value="Any"
248
                                                                     />
240
                                                                [% END %]
249
                                                                [% END %]
241
242
                                                                <label class="radio inline" for="reqspecific_[% bibitemloo.biblionumber %]">A specific copy</label>
250
                                                                <label class="radio inline" for="reqspecific_[% bibitemloo.biblionumber %]">A specific copy</label>
243
                                                                [% UNLESS ( bibitemloo.holdable ) %]
251
                                                                [% IF OPACItemHolds == "force" %]
244
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]" id="reqspecific_[% bibitemloo.biblionumber %]" class="selectspecific" disabled="disabled" value="Specific" />
252
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
253
                                                                           id="reqspecific_[% bibitemloo.biblionumber %]"
254
                                                                           class="selectspecific"
255
                                                                           value="Specific"
256
                                                                           checked="checked"
257
                                                                    />
245
                                                                [% ELSE %]
258
                                                                [% ELSE %]
246
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]" id="reqspecific_[% bibitemloo.biblionumber %]" class="selectspecific" value="Specific" />
259
                                                                    <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
260
                                                                           id="reqspecific_[% bibitemloo.biblionumber %]"
261
                                                                           class="selectspecific"
262
                                                                           value="Specific"
263
                                                                    />
247
                                                                [% END %]
264
                                                                [% END %]
248
                                                            </li>
265
                                                            </li>
249
                                                        [% END # / IF OPACItemHolds %]
266
                                                        [% END # / IF OPACItemHolds %]
250
                                                    </ul>
267
                                                    </ul>
251
268
252
                                                    [% IF ( OPACItemHolds ) %]
269
                                                    [% IF OPACItemHolds == '1' || OPACItemHolds == 'force' %]
253
                                                        <table class="copiesrow table table-bordered table-striped" id="copiesrow_[% bibitemloo.biblionumber %]">
270
                                                        <table class="copiesrow table table-bordered table-striped" id="copiesrow_[% bibitemloo.biblionumber %]">
254
                                                            <caption>Select a specific copy:</caption>
271
                                                            <caption>Select a specific copy:</caption>
255
                                                            <tr>
272
                                                            <tr>
Lines 275-281 Link Here
275
                                                                        [% IF ( itemLoo.available ) %]
292
                                                                        [% IF ( itemLoo.available ) %]
276
                                                                            <input type="radio" class="checkitem checkitem_[% bibitemloo.biblionumber %]" name="checkitem_[% bibitemloo.biblionumber %]" value="[% itemLoo.itemnumber %]" />
293
                                                                            <input type="radio" class="checkitem checkitem_[% bibitemloo.biblionumber %]" name="checkitem_[% bibitemloo.biblionumber %]" value="[% itemLoo.itemnumber %]" />
277
                                                                        [% ELSE %]
294
                                                                        [% ELSE %]
278
                                                                            <input disabled="disabled" type="radio" class="checkitem" name="checkitem" value="[% itemLoo.itemnumber %]" />
295
                                                                            <input disabled="disabled" type="radio" class="checkitem" name="checkitem" value="[% itemLoo.itemnumber %]"
296
                                                                                   style="display:none;" />
279
                                                                            <img src="[% interface %]/lib/famfamfam/silk/cross.png" alt="Cannot be put on hold" title="Cannot be put on hold" />
297
                                                                            <img src="[% interface %]/lib/famfamfam/silk/cross.png" alt="Cannot be put on hold" title="Cannot be put on hold" />
280
                                                                        [% END %]
298
                                                                        [% END %]
281
299
Lines 381-386 Link Here
381
            $(this).closest("td").find("input").val("");
399
            $(this).closest("td").find("input").val("");
382
            e.preventDefault();
400
            e.preventDefault();
383
        });
401
        });
402
403
    // Select the first item available
404
    function select_first_available(id){
405
        var radios = $("input:radio[name='checkitem_" + id + "']");
406
        $(radios).first().attr("checked", "checked");
407
    }
408
384
    $(document).ready(function() {
409
    $(document).ready(function() {
385
        $("#hold-request-form").preventDoubleFormSubmit();
410
        $("#hold-request-form").preventDoubleFormSubmit();
386
        var copiesRowId = null;
411
        var copiesRowId = null;
Lines 389-398 Link Here
389
        $(".checkitem").parent().click(function(e){
414
        $(".checkitem").parent().click(function(e){
390
            if(e.target.tagName.toLowerCase() == 'td'){
415
            if(e.target.tagName.toLowerCase() == 'td'){
391
                $(this).find("input.checkitem").each( function() {
416
                $(this).find("input.checkitem").each( function() {
392
                    $(this).attr('checked', !$(this).attr('checked'));
417
                    $(this).attr('checked', 'checked');
393
                });
418
                });
394
            }
419
            }
395
        });
420
        });
421
422
        [% FOREACH bibitemloo IN bibitemloop %]
423
          [% IF bibitemloo.holdable %]
424
            [% IF OPACItemHolds == 'force' %]
425
              $("#copiesrow_[% bibitemloo.biblionumber %]").show();
426
            [% END %]
427
          [% END %]
428
        [% END %]
429
430
431
        // click on a first td check the confirmjs checkbox
432
        $("td.hold").click(function(e){
433
          if(e.target.tagName.toLowerCase() == 'td'){
434
            $(this).find("input.confirmjs").each( function() {
435
               $(this).attr('checked', !$(this).attr('checked'));
436
               $(this).change();
437
            });
438
          }
439
        });
440
396
        // Hides all 'specific copy' table rows on load.
441
        // Hides all 'specific copy' table rows on load.
397
        $(".copiesrow").hide();
442
        $(".copiesrow").hide();
398
443
Lines 405-413 Link Here
405
            }
450
            }
406
        });
451
        });
407
452
408
        $("#place_on_hdr").show();
453
        $(".toggle-hold-options").show();
409
        $(".place_on_type").show();
410
        $("#place_on_hdr,.place_on_type,.toggle-hold-options").show();
411
        $(".hold-options").hide();
454
        $(".hold-options").hide();
412
        $(".holddatefrom,.holddateto").prop("readOnly", true);
455
        $(".holddatefrom,.holddateto").prop("readOnly", true);
413
456
Lines 431-494 Link Here
431
        $(".confirmjs_hold").each(function(){
474
        $(".confirmjs_hold").each(function(){
432
            var bib = $(this).attr("title");
475
            var bib = $(this).attr("title");
433
            var html = "<label><input type =\"checkbox\" class=\"confirmjs\" checked=\"checked\"";
476
            var html = "<label><input type =\"checkbox\" class=\"confirmjs\" checked=\"checked\"";
434
            html += "value=\"" + bib + "\"/> " + _("Place a hold on") + " </label> ";
477
            html += "value=\"" + bib + "\" id=\"" + bib + "\" /> " + _("Place a hold on") + " </label> ";
435
            $(this).html(html);
478
            $(this).html(html);
436
        });
479
        });
437
        $(".confirmjs_nohold").each(function(){
480
        $(".confirmjs_nohold").each(function(){
438
            var bib = $(this).attr("title");
481
            var bib = $(this).attr("title");
439
            var html = "<label><input type =\"checkbox\" class=\"confirmjs\" disabled=\"disabled\"";
482
            var html = "<label><input type =\"checkbox\" class=\"confirmjs\" disabled=\"disabled\"";
440
            html += "value=\"" + bib + "\"/>" + _("Place a hold on: ") + "</label>";
483
            html += "value=\"" + bib + "\" id=\"" + bib + "\" />" + _("Place a hold on: ") + "</label>";
441
            $(this).html(html);
484
            $(this).html(html);
442
        });
485
        });
443
486
444
        // Make sure a specific item was selected where specified
487
        // expand or collapse the copiesrow tr
445
        // before moving on to a new item.
488
        function toggle_copiesrow(biblioNum) {
446
        function changeSelection (newCopiesRowId, isSpecific) {
489
            var checkbox = $("input:checkbox[value='"+biblioNum+"']");
447
            if (copiesRowId && ((copiesRowId != newCopiesRowId) || (wasSpecific != isSpecific))) {
490
            newCopiesRowId = "#copiesrow_" + biblioNum;
448
                var biblioNum = suffixOf(copiesRowId, "_");
491
            var select_specific = $("#reqspecific_"+biblioNum).is(":checked");
492
            // If the checkbox is checked AND we want a specific item, we display the items block
493
            if ( $(checkbox).is(":checked") && select_specific ) {
494
                $(newCopiesRowId).show();
495
            } else {
496
                $(newCopiesRowId).hide();
497
             }
498
        };
449
499
450
                // If the 'specific copy' radio button was checked
500
        $("#place_on_hdr").show();
451
                  if (wasSpecific && (copiesRowId != newCopiesRowId)) {
452
                    // Find the selected copy
453
                    var item = $(".checkitem_" + biblioNum + ":checked");
454
                    if ($(item).size() == 0) {
455
                        alert(MSG_NO_COPY_SELECTED);
456
                        return false;
457
                    }
458
                }
459
            }
460
            copiesRowId = newCopiesRowId;
461
            wasSpecific = isSpecific;
462
            return true;
463
        }
464
501
465
        // When 'specific copy' radio button is clicked
502
        [% IF OPACItemHolds == '1' %]
466
        $(".selectspecific").click(function() {
503
            $(".place_on_type").show();
504
            // onload, selectany is checked
505
            $(".selectany").attr("checked", "checked");
506
        [% END %]
467
507
468
            // Make sure all other specific copy table rows are hidden
508
        // If we can choose a specific item, we preselect the first one
469
            biblioNum = suffixOf($(this).attr("id"), "_");
509
        [% IF OPACItemHolds =="1" or OPACItemHolds == 'force' %]
470
            newCopiesRowId = "#copiesrow_" + biblioNum;
510
            $("table.copiesrow").each(function(){
511
                var id = suffixOf($(this).attr("id"), "_");
512
                select_first_available(id);
513
            });
514
        [% END %]
471
515
472
            if (!changeSelection(newCopiesRowId, true)) {
516
        // On confirmsjs change
473
                return false;
517
        $(".confirmjs").change(function(){
518
            var id = suffixOf($(this).attr("id"), "_");
519
            // If I m checked, I enable radio buttons
520
            if ( $(this).is(":checked") ) {
521
                $("#reqspecific_" + id).attr("disabled", false);
522
                $("#reqany_" + id).attr("disabled", false);
523
            }
524
            // Else its are disabled
525
            else {
526
                $("#reqspecific_" + id).attr("disabled", "disabled");
527
                $("#reqany_" + id).attr("disabled", "disabled");
474
            }
528
            }
529
            // expand or collaspe the items block
530
            toggle_copiesrow(id);
531
        });
475
532
476
            // Show the specific copy table for this radio button.
533
        // When 'specific copy' or 'first available' radio button is clicked
477
            $(newCopiesRowId).show();
534
        $(".selectspecific, .selectany").click(function() {
535
            var id = suffixOf($(this).attr("id"), "_");
536
            toggle_copiesrow(id);
478
        });
537
        });
479
538
480
        // When 'first available' radion button is clicked
539
        // Show or hide holds notes
481
        $(".selectany").click(function() {
540
        $(".shownotes").click(function(){
482
            // Make sure all other specific copy table rows are hidden
483
            biblioNum = suffixOf($(this).attr("id"), "_");
541
            biblioNum = suffixOf($(this).attr("id"), "_");
484
            newCopiesRowId = "#copiesrow_" + biblioNum;
542
            $("#notesrow_"+biblioNum).toggle();
485
486
            if (!changeSelection(newCopiesRowId, false)) {
487
                return false;
488
            }
489
490
            // Hide the copies table row
491
            $(newCopiesRowId).hide();
492
        });
543
        });
493
544
494
        // When 'Place Hold' button is clicked
545
        // When 'Place Hold' button is clicked
495
- 

Return to bug 7825