Lines 56-67
var dataTablesDefaults = {
Link Here
|
56 |
"pageLength": 20, |
56 |
"pageLength": 20, |
57 |
"fixedHeader": true, |
57 |
"fixedHeader": true, |
58 |
initComplete: function( settings ) { |
58 |
initComplete: function( settings ) { |
59 |
var tableId = settings.nTable.id |
59 |
var tableId = settings.nTable.id; |
60 |
var state = settings.oLoadedState; |
60 |
let table_node = $("#" + tableId); |
|
|
61 |
|
62 |
state = settings.oLoadedState; |
61 |
state && state.search && toggledClearFilter(state.search.search, tableId); |
63 |
state && state.search && toggledClearFilter(state.search.search, tableId); |
62 |
|
64 |
|
63 |
if (settings.ajax) { |
65 |
if (settings.ajax) { |
64 |
let table_node = $("#" + tableId); |
|
|
65 |
if ( typeof this.api === 'function' ) { |
66 |
if ( typeof this.api === 'function' ) { |
66 |
_dt_add_delay(this.api(), table_node); |
67 |
_dt_add_delay(this.api(), table_node); |
67 |
} else { |
68 |
} else { |
Lines 757-762
function _dt_buttons(params){
Link Here
|
757 |
} |
758 |
} |
758 |
); |
759 |
); |
759 |
|
760 |
|
|
|
761 |
buttons.push( |
762 |
{ |
763 |
autoClose: true, |
764 |
fade: 100, |
765 |
className: "copyConditions_controls", |
766 |
titleAttr: __("Copy conditions"), |
767 |
text: '<i class="fa fa-lg fa-copy"></i> <span class="dt-button-text">' + __("Copy conditions") + '</span>', |
768 |
action: function (e, dt, node, config) { |
769 |
let state = JSON.stringify(dt.state()); |
770 |
delete state.time; |
771 |
let searchParams = new URLSearchParams(window.location.search); |
772 |
let table_id = dt.table().node().id; |
773 |
searchParams.set(table_id + '_state', btoa(state)); |
774 |
let url = window.location.origin + window.location.pathname + '?' + searchParams.toString() + window.location.hash; |
775 |
if( navigator.clipboard && navigator.clipboard.writeText){ |
776 |
navigator.clipboard.writeText( url ); |
777 |
// TODO Add tooltip "State copied to the clipboard" |
778 |
} |
779 |
}, |
780 |
} |
781 |
); |
782 |
|
760 |
if ( table_settings && CAN_user_parameters_manage_column_config ) { |
783 |
if ( table_settings && CAN_user_parameters_manage_column_config ) { |
761 |
buttons.push( |
784 |
buttons.push( |
762 |
{ |
785 |
{ |
Lines 952-957
function _dt_save_restore_state(table_settings){
Link Here
|
952 |
localStorage.setItem( table_key, JSON.stringify(data) ) |
975 |
localStorage.setItem( table_key, JSON.stringify(data) ) |
953 |
} |
976 |
} |
954 |
let stateLoadCallback = function(settings) { |
977 |
let stateLoadCallback = function(settings) { |
|
|
978 |
|
979 |
// Load state from URL |
980 |
const url = new URL(window.location.href); |
981 |
let state_from_url = url.searchParams.get( settings.nTable.id + '_state'); |
982 |
if ( state_from_url ) { |
983 |
return JSON.parse(atob(state_from_url)); |
984 |
} |
985 |
|
955 |
if (!default_save_state) return {}; |
986 |
if (!default_save_state) return {}; |
956 |
|
987 |
|
957 |
let state = localStorage.getItem(table_key); |
988 |
let state = localStorage.getItem(table_key); |
958 |
- |
|
|