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