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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/article-requests.tt (-62 / +52 lines)
Lines 2-12 Link Here
2
[% USE ItemTypes %]
2
[% USE ItemTypes %]
3
[% USE Branches %]
3
[% USE Branches %]
4
[% USE AuthorisedValues %]
4
[% USE AuthorisedValues %]
5
[% USE Asset %]
6
[% USE raw %]
5
[% SET footerjs = 1 %]
7
[% SET footerjs = 1 %]
6
[% INCLUDE 'doc-head-open.inc' %]
8
[% INCLUDE 'doc-head-open.inc' %]
7
<title>Koha &rsaquo; Circulation &rsaquo; Article requests</title>
9
<title>Koha &rsaquo; Circulation &rsaquo; Article requests</title>
8
[% INCLUDE 'doc-head-close.inc' %]
10
[% INCLUDE 'doc-head-close.inc' %]
9
<style> p { margin-top: 0; } [id^="article-menu-"] { display: none; } [id^="article-menu-"]:before { content: "|"; }</style>
11
<style>p { margin-top: 0; } [id^="article-menu-"] { display: none; } [id^="article-menu-"]:before { content: "|"; } .starthidden { display:none; }</style>
10
</head>
12
</head>
11
13
12
[% BLOCK actions %]
14
[% BLOCK actions %]
Lines 62-68 Link Here
62
        <a href="/cgi-bin/koha/circ/article-requests.pl">Article requests</a>
64
        <a href="/cgi-bin/koha/circ/article-requests.pl">Article requests</a>
63
    </div>
65
    </div>
64
66
65
    <div class="main container-fluid">
67
    <div class="main container-fluid starthidden">
66
        <div class="row">
68
        <div class="row">
67
            <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
69
            <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
68
70
Lines 125-136 Link Here
125
                            </thead>
127
                            </thead>
126
128
127
                             <tbody>
129
                             <tbody>
128
                                <tr class="ar-pending-none">
129
                                    <td colspan="12">
130
                                        There are no pending article requests at this time.
131
                                    </td>
132
                                </tr>
133
134
                                [% FOREACH ar IN article_requests_pending %]
130
                                [% FOREACH ar IN article_requests_pending %]
135
                                    <tr class="ar-row ar-pending">
131
                                    <tr class="ar-row ar-pending">
136
                                        <td><input type="checkbox" reqid="[% ar.id | html %]"/></td>
132
                                        <td><input type="checkbox" reqid="[% ar.id | html %]"/></td>
Lines 232-243 Link Here
232
                            </thead>
228
                            </thead>
233
229
234
                             <tbody>
230
                             <tbody>
235
                                <tr class="ar-processing-none">
236
                                    <td colspan="12">
237
                                        There are no article requests in processing at this time.
238
                                    </td>
239
                                </tr>
240
241
                                [% FOREACH ar IN article_requests_processing %]
231
                                [% FOREACH ar IN article_requests_processing %]
242
                                    <tr class="ar-row ar-processing">
232
                                    <tr class="ar-row ar-processing">
243
                                        <td><input type="checkbox" reqid="[% ar.id | html %]"/></td>
233
                                        <td><input type="checkbox" reqid="[% ar.id | html %]"/></td>
Lines 320-362 Link Here
320
    </div>
310
    </div>
321
311
322
[% MACRO jsinclude BLOCK %]
312
[% MACRO jsinclude BLOCK %]
313
    [% INCLUDE 'datatables.inc' %]
323
    <script>
314
    <script>
324
        var active_table = "#article-requests-pending";
315
        var active_tab = "#article-requests-pending";
325
        var last_cancel_reason;
316
        var last_cancel_reason, pending_datatable, processing_datatable, active_datatable;
326
        $(document).ready(function() {
317
        $(document).ready(function() {
327
            $('#article-request-tabs').tabs({
318
            $('#article-request-tabs').tabs({
328
                activate: function( activate_event, activate_ui ) {
319
                activate: function( activate_event, activate_ui ) {
329
                    active_table = activate_ui.newPanel.selector;
320
                    active_tab = activate_ui.newPanel.selector;
330
                    activateBatchActions( active_table );
321
                    if( active_tab == '#article-requests-pending' )
331
                },
322
                        active_datatable = pending_datatable;
332
                create: function( create_event, create_ui ){
323
                    else active_datatable = processing_datatable;
333
                    active_table = create_ui.panel.selector;
324
                    activateBatchActions( active_tab );
334
                },
325
                },
335
            });
326
            });
336
327
337
            activateBatchActions( active_table );
338
328
339
            [% IF article_requests_pending.count %]
329
            $( "input:checkbox, #article-request-tabs" ).on("change", function(){
340
                $(".ar-pending-none").hide();
330
                activateBatchActions( active_tab );
341
            [% END %]
342
343
            [% IF article_requests_processing.count %]
344
                $(".ar-processing-none").hide();
345
            [% END %]
346
347
            $( "input:checkbox", active_table ).on("change", function(){
348
                activateBatchActions( active_table );
349
            });
331
            });
350
332
351
            $(".SelectAll").on("click", function(e) {
333
            $(".SelectAll").on("click", function(e) {
352
                e.preventDefault();
334
                e.preventDefault();
353
                $( active_table + " input[type='checkbox']").prop('checked', true);
335
                $( active_tab + " input[type='checkbox']").prop('checked', true);
354
                activateBatchActions( active_table );
336
                activateBatchActions( active_tab );
355
            });
337
            });
356
            $(".ClearAll").on("click", function(e) {
338
            $(".ClearAll").on("click", function(e) {
357
                e.preventDefault();
339
                e.preventDefault();
358
                $( active_table + " input[type='checkbox']").prop('checked', false);
340
                $( active_tab + " input[type='checkbox']").prop('checked', false);
359
                activateBatchActions( active_table );
341
                activateBatchActions( active_tab );
360
            });
342
            });
361
            $("a.ar-actions").on('click', function(e) {
343
            $("a.ar-actions").on('click', function(e) {
362
                // Hide menu option ?
344
                // Hide menu option ?
Lines 364-391 Link Here
364
                    $('a.ar-process-request').hide();
346
                    $('a.ar-process-request').hide();
365
                else $('a.ar-process-request').show();
347
                else $('a.ar-process-request').show();
366
            });
348
            });
349
350
            pending_datatable = $("#article-requests-pending-table").DataTable($.extend(true, {}, dataTablesDefaults, {
351
                "aoColumnDefs": [
352
                    { "aTargets": [0, -1], "bSortable": false, "bSearchable": false },
353
                ],
354
            }));
355
            active_datatable = pending_datatable;
356
            processing_datatable = $("#article-requests-processing-table").DataTable($.extend(true, {}, dataTablesDefaults, {
357
                "aoColumnDefs": [
358
                    { "aTargets": [0, -1], "bSortable": false, "bSearchable": false },
359
                ],
360
            }));
361
            activateBatchActions( active_tab );
362
            $(".starthidden").show();
367
        });
363
        });
368
364
369
        function activateBatchActions( active_table ){
365
        function activateBatchActions( active_tab ){
370
            // Check to see whether batch menu should be shown based on state of checkboxes
366
            // Check to see whether batch menu should be shown based on state of checkboxes
371
            if ( $( "input:checkbox", active_table ).length > 0 ) {
367
            if ( $( "input:checkbox", active_tab ).length > 0 ) {
372
                // There are rows with checkboxes
368
                // There are rows with checkboxes
373
                $( "[class$='_table_controls']", active_table ).show();
369
                $( "[class$='_table_controls']", active_tab ).show();
374
                if ( $( "input:checkbox:checked", active_table ).length > 0 ) {
370
                if ( $( "input:checkbox:checked", active_tab ).length > 0 ) {
375
                    $( "[id^='article-menu-']", active_table ).css("display","inline-block");
371
                    $( "[id^='article-menu-']", active_tab ).css("display","inline-block");
376
                } else {
372
                } else {
377
                    $( "[id^='article-menu-']", active_table ).hide();
373
                    $( "[id^='article-menu-']", active_tab ).hide();
378
                }
374
                }
379
            } else {
375
            } else {
380
                // All rows have been removed
376
                // All rows have been removed
381
                $("[class$='_table_controls']", active_table ).hide();
377
                $("[class$='_table_controls']", active_tab ).hide();
382
            }
378
            }
383
        }
379
        }
384
380
385
        function HandleMulti( fnHandler, id, a ) {
381
        function HandleMulti( fnHandler, id, a ) {
386
            last_cancel_reason = undefined;
382
            last_cancel_reason = undefined;
387
            if( id !== 0 ) { fnHandler( id, a ); return; }
383
            if( id !== 0 ) { fnHandler( id, a ); return; }
388
            $( active_table + " input[type='checkbox']:checked").each(function() {
384
            $( active_tab + " input[type='checkbox']:checked").each(function() {
389
                fnHandler( $(this).attr('reqid'), $(this).closest('tr').find('td.ar-actions div a') );
385
                fnHandler( $(this).attr('reqid'), $(this).closest('tr').find('td.ar-actions div a') );
390
            });
386
            });
391
        }
387
        }
Lines 413-432 Link Here
413
                    notes: last_cancel_reason
409
                    notes: last_cancel_reason
414
                },
410
                },
415
                success: function( data ) {
411
                success: function( data ) {
416
                    a.closest('tr').remove();
412
                    active_datatable.row( a.closest('tr') ).remove().draw();
417
                    UpdateTabCounts();
413
                    UpdateTabCounts();
418
                    activateBatchActions( active_table );
414
                    activateBatchActions( active_tab );
419
                },
415
                },
420
                dataType: 'json'
416
                dataType: 'json'
421
            });
417
            });
422
        }
418
        }
423
419
424
        function Process( id, a ) {
420
        function Process( id, a ) {
425
            var table_row = a.closest('tr').clone();
421
            var table_row = a.closest('tr');
426
            table_row.find('.ar-process-request').remove();
422
            table_row.find('.ar-process-request').remove();
427
            table_row.find('input[type="checkbox"]').prop('checked', false);
423
            table_row.find('input[type="checkbox"]').prop('checked', false);
428
424
429
            a.closest('td').prepend('<img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif"/>').find('div.dropdown').hide();
425
            a.closest('td').prepend('<img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" class="spinner"/>').find('div.dropdown').hide();
430
            $.ajax({
426
            $.ajax({
431
                type: "POST",
427
                type: "POST",
432
                url: '/cgi-bin/koha/svc/article_request',
428
                url: '/cgi-bin/koha/svc/article_request',
Lines 435-445 Link Here
435
                    id: id,
431
                    id: id,
436
                },
432
                },
437
                success: function( data ) {
433
                success: function( data ) {
438
                    a.closest('tr').remove();
434
                    $("img.spinner").remove();
439
                    $("#article-requests-processing-table").append( table_row );
435
                    pending_datatable.row( table_row ).remove().draw();
440
                    $("#article-requests-processing-table .ar-processing-none").hide();
436
                    processing_datatable.row.add( table_row ).draw();
441
                    UpdateTabCounts();
437
                    UpdateTabCounts();
442
                    activateBatchActions( active_table );
438
                    activateBatchActions( active_tab );
443
                },
439
                },
444
                dataType: 'json'
440
                dataType: 'json'
445
            });
441
            });
Lines 455-476 Link Here
455
                    id: id,
451
                    id: id,
456
                },
452
                },
457
                success: function( data ) {
453
                success: function( data ) {
458
                    a.closest('tr').remove();
454
                    active_datatable.row( a.closest('tr') ).remove().draw();
459
                    UpdateTabCounts();
455
                    UpdateTabCounts();
460
                    activateBatchActions( active_table );
456
                    activateBatchActions( active_tab );
461
                },
457
                },
462
                dataType: 'json'
458
                dataType: 'json'
463
            });
459
            });
464
        }
460
        }
465
461
466
        function UpdateTabCounts() {
462
        function UpdateTabCounts() {
467
            var pending_count = $('#article-requests-pending-table tbody tr.ar-row').length;
463
            $("#ar_pending_count").html( pending_datatable.rows().count() );
468
            $("#ar_pending_count").html( pending_count );
464
            $("#ar_processing_count").html( processing_datatable.rows().count() );
469
            if ( pending_count == 0 ) $(".ar-pending-none").show();
470
471
            var processing_count = $('#article-requests-processing-table tbody tr.ar-row').length;
472
            $("#ar_processing_count").html( processing_count );
473
            if ( processing_count == 0 ) $(".ar-processing-none").show();
474
        }
465
        }
475
    </script>
466
    </script>
476
[% END %]
467
[% END %]
477
- 

Return to bug 26501