Lines 596-602
function _dt_default_ajax (params){
Link Here
|
596 |
} |
596 |
} |
597 |
|
597 |
|
598 |
function _dt_buttons(params){ |
598 |
function _dt_buttons(params){ |
599 |
let included_ids = params.included_ids || []; |
|
|
600 |
let settings = params.settings || {}; |
599 |
let settings = params.settings || {}; |
601 |
let table_settings = params.table_settings; |
600 |
let table_settings = params.table_settings; |
602 |
|
601 |
|
Lines 665-676
function _dt_buttons(params){
Link Here
|
665 |
} |
664 |
} |
666 |
); |
665 |
); |
667 |
|
666 |
|
668 |
if( included_ids.length > 0 ){ |
667 |
let included_columns = table_settings.columns.filter(c => !c.cannot_be_toggled); |
|
|
668 |
if( included_columns.length > 0 ){ |
669 |
buttons.push( |
669 |
buttons.push( |
670 |
{ |
670 |
{ |
671 |
extend: 'colvis', |
671 |
extend: 'colvis', |
672 |
fade: 100, |
672 |
fade: 100, |
673 |
columns: included_ids, |
673 |
columns: included_columns.map(c => "[data-colname='%s']".format(c.columnname)).join(','), |
674 |
className: "columns_controls", |
674 |
className: "columns_controls", |
675 |
titleAttr: __("Columns settings"), |
675 |
titleAttr: __("Columns settings"), |
676 |
text: '<i class="fa fa-lg fa-gear"></i> <span class="dt-button-text">' + __("Columns") + '</span>', |
676 |
text: '<i class="fa fa-lg fa-gear"></i> <span class="dt-button-text">' + __("Columns") + '</span>', |
Lines 738-774
function _dt_buttons(params){
Link Here
|
738 |
return buttons; |
738 |
return buttons; |
739 |
} |
739 |
} |
740 |
|
740 |
|
741 |
function _dt_visibility(table_settings, settings, node){ |
741 |
function _dt_visibility(table_settings, table_dt){ |
742 |
var counter = 0; |
|
|
743 |
let hidden_ids = []; |
742 |
let hidden_ids = []; |
744 |
let included_ids = []; |
|
|
745 |
if ( table_settings ) { |
743 |
if ( table_settings ) { |
746 |
var columns_settings = table_settings['columns']; |
744 |
var columns_settings = table_settings.columns; |
747 |
$(columns_settings).each( function() { |
745 |
let i = 0; |
748 |
let used_id = counter; |
746 |
let use_names = $(table_dt.table().node()).data('bKohaColumnsUseNames'); |
749 |
let use_names = $(node).data('bKohaColumnsUseNames'); |
747 |
if ( use_names ) { |
750 |
if ( use_names ) { |
748 |
let hidden_columns = table_settings.columns.filter(c => c.is_hidden); |
751 |
if (!node){ |
749 |
table_dt.columns(hidden_columns.map(c => "[data-colname='%s']".format(c.columnname)).join(',')).every(function(){ |
752 |
console.err("bKohaColumnsUseNames is set but node not passed"); |
750 |
hidden_ids.push(this.index()); |
753 |
return; |
751 |
}); |
|
|
752 |
} else { |
753 |
$(columns_settings).each( function(i, c) { |
754 |
if ( c.is_hidden == '1' ) { |
755 |
hidden_ids.push(i); |
754 |
} |
756 |
} |
755 |
let selector = '#' + node.attr('id'); |
757 |
}); |
756 |
var named_id = $( 'thead th[data-colname="' + this.columnname + '"]', selector ).index( selector + ' th' ); |
758 |
} |
757 |
used_id = named_id; |
|
|
758 |
} |
759 |
|
760 |
if ( used_id == -1 ) return; |
761 |
|
762 |
if ( this['is_hidden'] == "1" ) { |
763 |
hidden_ids.push( used_id ); |
764 |
} |
765 |
if ( this['cannot_be_toggled'] == "0" ) { |
766 |
included_ids.push( used_id ); |
767 |
} |
768 |
counter++; |
769 |
}); |
770 |
} |
759 |
} |
771 |
return [hidden_ids, included_ids]; |
760 |
return hidden_ids; |
772 |
} |
761 |
} |
773 |
|
762 |
|
774 |
function _dt_on_visibility(add_filters, table_node, table_dt){ |
763 |
function _dt_on_visibility(add_filters, table_node, table_dt){ |
Lines 894-903
function _dt_save_restore_state(table_settings, external_filter_nodes={}){
Link Here
|
894 |
localStorage.setItem( table_key, JSON.stringify(data) ) |
883 |
localStorage.setItem( table_key, JSON.stringify(data) ) |
895 |
} |
884 |
} |
896 |
|
885 |
|
897 |
function set_default(table_settings, settings){ |
886 |
function set_default(table_settings, table_dt){ |
898 |
let columns = new Array(table_settings.columns.length).fill({visible: true}); |
887 |
let columns = new Array(table_dt.columns()[0].length).fill({visible: true}); |
899 |
let hidden_ids, included_ids; |
888 |
let hidden_ids = _dt_visibility(table_settings, table_dt); |
900 |
[hidden_ids, included_ids] = _dt_visibility(table_settings, settings, $("#"+settings.nTable.id)); |
|
|
901 |
hidden_ids.forEach((id, i) => { columns[id] = { visible: false } } ); |
889 |
hidden_ids.forEach((id, i) => { columns[id] = { visible: false } } ); |
902 |
// State is not loaded if time is not passed |
890 |
// State is not loaded if time is not passed |
903 |
return { columns, time: new Date() }; |
891 |
return { columns, time: new Date() }; |
Lines 911-920
function _dt_save_restore_state(table_settings, external_filter_nodes={}){
Link Here
|
911 |
return JSON.parse(atob(state_from_url)); |
899 |
return JSON.parse(atob(state_from_url)); |
912 |
} |
900 |
} |
913 |
|
901 |
|
914 |
if (!default_save_state) return set_default(table_settings, settings); |
902 |
if (!default_save_state) return set_default(table_settings, this.api()); |
915 |
|
903 |
|
916 |
let state = localStorage.getItem(table_key); |
904 |
let state = localStorage.getItem(table_key); |
917 |
if (!state) return set_default(table_settings, settings); |
905 |
if (!state) return set_default(table_settings, this.api()); |
918 |
|
906 |
|
919 |
state = JSON.parse(state); |
907 |
state = JSON.parse(state); |
920 |
|
908 |
|
Lines 1039-1048
function _dt_save_restore_state(table_settings, external_filter_nodes={}){
Link Here
|
1039 |
}, options); |
1027 |
}, options); |
1040 |
} |
1028 |
} |
1041 |
|
1029 |
|
1042 |
let hidden_ids, included_ids; |
1030 |
settings["buttons"] = _dt_buttons({settings, table_settings}); |
1043 |
[hidden_ids, included_ids] = _dt_visibility(table_settings, settings, this) |
|
|
1044 |
|
1045 |
settings["buttons"] = _dt_buttons({included_ids, settings, table_settings}); |
1046 |
|
1031 |
|
1047 |
if ( add_filters ) { |
1032 |
if ( add_filters ) { |
1048 |
settings['orderCellsTop'] = true; |
1033 |
settings['orderCellsTop'] = true; |
1049 |
- |
|
|