|
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 |
- |
|
|