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

(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc (-26 / +10 lines)
Lines 6-14 Link Here
6
<script>
6
<script>
7
// default_filters is not used but keeping the same constructor as kohaTable for consistency
7
// default_filters is not used but keeping the same constructor as kohaTable for consistency
8
function KohaTable(id_selector, dt_parameters, table_settings, add_filters, default_filters, filters_options) {
8
function KohaTable(id_selector, dt_parameters, table_settings, add_filters, default_filters, filters_options) {
9
    var counter = 0;
10
    var hidden_ids = [];
11
    var included_ids = [];
12
    var selector = '#' + id_selector;
9
    var selector = '#' + id_selector;
13
10
14
    if ( table_settings ) {
11
    if ( table_settings ) {
Lines 30-39 function KohaTable(id_selector, dt_parameters, table_settings, add_filters, defa Link Here
30
            localStorage.setItem( table_key, JSON.stringify(data) )
27
            localStorage.setItem( table_key, JSON.stringify(data) )
31
        }
28
        }
32
29
33
        function set_default(table_settings, settings){
30
        function set_default(table_settings, table_dt){
34
            let columns = new Array(table_settings.columns.length).fill({visible: true});
31
            let columns = new Array(table_settings.columns.length).fill({visible: true});
35
            let hidden_ids, included_ids;
32
            let hidden_ids = _dt_visibility(table_settings, table_dt);
36
            [hidden_ids, included_ids] = _dt_visibility(table_settings, settings, $("#"+settings.nTable.id));
37
            hidden_ids.forEach((id, i) => { columns[id] = { visible: false } } );
33
            hidden_ids.forEach((id, i) => { columns[id] = { visible: false } } );
38
            // State is not loaded if time is not passed
34
            // State is not loaded if time is not passed
39
            return { columns, time: new Date() };
35
            return { columns, time: new Date() };
Lines 48-57 function KohaTable(id_selector, dt_parameters, table_settings, add_filters, defa Link Here
48
                return JSON.parse(atob(state_from_url));
44
                return JSON.parse(atob(state_from_url));
49
            }
45
            }
50
46
51
            if (!default_save_state) return set_default(table_settings, settings);
47
            if (!default_save_state) return set_default(table_settings, this.api());
52
48
53
            let state = localStorage.getItem(table_key);
49
            let state = localStorage.getItem(table_key);
54
            if (!state) return set_default(table_settings, settings);
50
            if (!state) return set_default(table_settings, this.api());
55
51
56
            state = JSON.parse(state);
52
            state = JSON.parse(state);
57
53
Lines 64-83 function KohaTable(id_selector, dt_parameters, table_settings, add_filters, defa Link Here
64
            return state;
60
            return state;
65
        }
61
        }
66
62
67
        $(columns_settings).each( function() {
68
            var named_id = $( 'thead th[data-colname="' + this.columnname + '"]', selector ).index( selector + ' th' );
69
            var used_id = dt_parameters.bKohaColumnsUseNames ? named_id : counter;
70
            if ( used_id == -1 ) return;
71
72
            if ( this['is_hidden'] == "1" ) {
73
                hidden_ids.push( used_id );
74
            }
75
            if ( this['cannot_be_toggled'] == "0" ) {
76
                included_ids.push( used_id );
77
            }
78
            counter++;
79
        });
80
81
        if ( table_settings.hasOwnProperty('default_save_state') && table_settings['default_save_state'] === 0 ) {
63
        if ( table_settings.hasOwnProperty('default_save_state') && table_settings['default_save_state'] === 0 ) {
82
            localStorage.removeItem(table_key);
64
            localStorage.removeItem(table_key);
83
        }
65
        }
Lines 188-199 function KohaTable(id_selector, dt_parameters, table_settings, add_filters, defa Link Here
188
170
189
    dt_parameters[ "buttons" ] = ['clear_filter'];
171
    dt_parameters[ "buttons" ] = ['clear_filter'];
190
172
191
    if( included_ids.length > 0 ){
173
    let included_columns = table_settings.columns.filter(c => !c.cannot_be_toggled);
174
    if( included_columns.length > 0 ){
192
        dt_parameters[ "buttons" ].push(
175
        dt_parameters[ "buttons" ].push(
193
            {
176
            {
194
                extend: 'colvis',
177
                extend: 'colvis',
195
                fade: 100,
178
                fade: 100,
196
                columns: included_ids,
179
                columns: included_columns.map(c => "[data-colname='%s']".format(c.columnname)).join(','),
197
                className: "columns_controls",
180
                className: "columns_controls",
198
                titleAttr: _("Columns settings"),
181
                titleAttr: _("Columns settings"),
199
                text: '<i class="fa fa-lg fa-gear"></i> <span class="dt-button-text">' + _("Columns") + '</span>',
182
                text: '<i class="fa fa-lg fa-gear"></i> <span class="dt-button-text">' + _("Columns") + '</span>',
Lines 297-302 function KohaTable(id_selector, dt_parameters, table_settings, add_filters, defa Link Here
297
        }
280
        }
298
    }
281
    }
299
282
283
    $(table).data('bKohaColumnsUseNames', dt_parameters.bKohaColumnsUseNames);
284
300
    table.dataTable(new_parameters);
285
    table.dataTable(new_parameters);
301
    var table_dt = table.DataTable();
286
    var table_dt = table.DataTable();
302
    table_dt.on("column-visibility.dt", function(){
287
    table_dt.on("column-visibility.dt", function(){
Lines 306-312 function KohaTable(id_selector, dt_parameters, table_settings, add_filters, defa Link Here
306
            // has been updated according to the table's configuration
291
            // has been updated according to the table's configuration
307
            columnsInit(this);
292
            columnsInit(this);
308
        }
293
        }
309
    }).columns( hidden_ids ).visible( false );
294
    });
310
295
311
    if ( add_filters ) {
296
    if ( add_filters ) {
312
        _dt_add_filters(table, table_dt, filters_options);
297
        _dt_add_filters(table, table_dt, filters_options);
313
- 

Return to bug 38436