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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt (-23 / +38 lines)
Lines 1317-1327 Link Here
1317
        }
1317
        }
1318
1318
1319
        [% IF StaffDetailItemSelection %]
1319
        [% IF StaffDetailItemSelection %]
1320
            function itemSelectionBuildDeleteLink(div) {
1320
1321
                var itemnumbers = new Array();
1321
            let items_selection = {};
1322
                $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
1322
            function itemSelectionBuildDeleteLink(tab_id) {
1323
                    itemnumbers.push($(this).val());
1323
                var itemnumbers = items_selection[tab_id];
1324
                });
1325
                if (itemnumbers.length > 0) {
1324
                if (itemnumbers.length > 0) {
1326
                    var url = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1';
1325
                    var url = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1';
1327
                    url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
1326
                    url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
Lines 1334-1344 Link Here
1334
                return true
1333
                return true
1335
            }
1334
            }
1336
1335
1337
            function itemSelectionBuildModifyLink(div) {
1336
            function itemSelectionBuildModifyLink(tab_id) {
1338
                var itemnumbers = new Array();
1337
                var itemnumbers = items_selection[tab_id];
1339
                $("input[name='itemnumber'][type='checkbox']:checked", div).each(function() {
1340
                    itemnumbers.push($(this).val());
1341
                });
1342
                if (itemnumbers.length > 0) {
1338
                if (itemnumbers.length > 0) {
1343
                    var url = '/cgi-bin/koha/tools/batchMod.pl?op=show';
1339
                    var url = '/cgi-bin/koha/tools/batchMod.pl?op=show';
1344
                    url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
1340
                    url += '&itemnumber=' + itemnumbers.join('&itemnumber=');
Lines 1351-1360 Link Here
1351
                return true;
1347
                return true;
1352
            }
1348
            }
1353
1349
1354
            function itemSelectionBuildActionLinks(tab) {
1350
            function itemSelectionBuildActionLinks(tab_id) {
1355
                var div = $("#" + tab);
1351
                var delete_link_ok = itemSelectionBuildDeleteLink(tab_id);
1356
                var delete_link_ok = itemSelectionBuildDeleteLink(div);
1352
                var modify_link_ok = itemSelectionBuildModifyLink(tab_id);
1357
                var modify_link_ok = itemSelectionBuildModifyLink(div);
1353
                var div = $("#" + tab_id);
1358
                if (modify_link_ok || delete_link_ok) {
1354
                if (modify_link_ok || delete_link_ok) {
1359
                    $('.itemselection_actions', div).show();
1355
                    $('.itemselection_actions', div).show();
1360
                } else {
1356
                } else {
Lines 1363-1372 Link Here
1363
            }
1359
            }
1364
1360
1365
            $(document).ready(function() {
1361
            $(document).ready(function() {
1366
                $('table.items_table').each(function() {
1367
                    var div = $(this).parent().attr("id");
1368
                    itemSelectionBuildActionLinks(div);
1369
                });
1370
1362
1371
                $(".SelectAll").on("click",function(e){
1363
                $(".SelectAll").on("click",function(e){
1372
                    e.preventDefault();
1364
                    e.preventDefault();
Lines 2204-2209 Link Here
2204
            [% IF hidden_count %]
2196
            [% IF hidden_count %]
2205
                default_filters.lost_status = "0";
2197
                default_filters.lost_status = "0";
2206
            [% END %]
2198
            [% END %]
2199
            if ( !items_selection.hasOwnProperty(tab_id) ){
2200
                items_selection[tab_id] = [];
2201
            }
2207
            var items_table = $("#" + tab_id + '_table').kohaTable({
2202
            var items_table = $("#" + tab_id + '_table').kohaTable({
2208
                ajax: { url: item_table_url },
2203
                ajax: { url: item_table_url },
2209
                order: [[ 0, "asc" ]],
2204
                order: [[ 0, "asc" ]],
Lines 2218-2224 Link Here
2218
                    orderable: false,
2213
                    orderable: false,
2219
                    render: function (data, type, row, meta) {
2214
                    render: function (data, type, row, meta) {
2220
                        if ( can_edit_items_from[row.holding_library_id] ){
2215
                        if ( can_edit_items_from[row.holding_library_id] ){
2221
                            return '<input type="checkbox" value="%s" name="itemnumber" />'.format(row.item_id);
2216
                            if ( items_selection[tab_id].includes(row.item_id) ) {
2217
                                return '<input type="checkbox" value="%s" name="itemnumber" checked />'.format(row.item_id);
2218
                            } else {
2219
                                return '<input type="checkbox" value="%s" name="itemnumber" />'.format(row.item_id);
2220
                            }
2222
                        } else {
2221
                        } else {
2223
                            return ''
2222
                            return ''
2224
                        }
2223
                        }
Lines 2676-2686 Link Here
2676
                    });
2675
                    });
2677
                    itemSelectionBuildActionLinks(tab_id);
2676
                    itemSelectionBuildActionLinks(tab_id);
2678
                },
2677
                },
2678
                [% IF StaffDetailItemSelection %]
2679
                drawCallback: function(settings){
2679
                drawCallback: function(settings){
2680
                    $(this).find("td:first input[name='itemnumber'][type='checkbox']").on("change", function(){
2680
                    var api = new $.fn.dataTable.Api(settings)
2681
                        itemSelectionBuildActionLinks(tab_id);
2681
                    $.each(
2682
                    });
2682
                        $(this).find("tbody tr td:first-child"),
2683
                        function (index, e) {
2684
                            let tr = $(this).parent()
2685
                            let row = api.row(tr).data()
2686
                            if (!row) return // Happen if the table is empty
2687
                            $(this).find("input[name='itemnumber'][type='checkbox']").on("change", function(){
2688
                                let itemnumber = parseInt($(this).val());
2689
                                if( $(this).prop("checked") ){
2690
                                    items_selection[tab_id].push(itemnumber);
2691
                                } else {
2692
                                    items_selection[tab_id] = items_selection[tab_id].filter( id => id != itemnumber );
2693
                                }
2694
                                itemSelectionBuildActionLinks(tab_id);
2695
                            });
2696
                        }
2697
                    );
2683
                },
2698
                },
2699
                [% END %]
2684
                ...dt_options,
2700
                ...dt_options,
2685
            },
2701
            },
2686
            items_table_settings[tab_id],
2702
            items_table_settings[tab_id],
2687
- 

Return to bug 33568