Advertisement
Guest User

js part

a guest
Jun 7th, 2014
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <link href="tablesorter/tablesortingStyle.css" rel="stylesheet" />
  2. <script type="text/javascript" src="tablesorter/jquery.dataTables.min.js"></script>
  3. <script type="text/javascript" language="javascript" class="init">
  4.     $.fn.dataTable.pipeline = function ( opts ) {
  5.         var conf = $.extend( {
  6.             pages: 5,    
  7.             url: '',    
  8.             data: null,
  9.             method: 'GET'
  10.         }, opts );
  11.         var cacheLower = -1;
  12.         var cacheUpper = null;
  13.         var cacheLastRequest = null;
  14.         var cacheLastJson = null;
  15.      
  16.         return function ( request, drawCallback, settings ) {
  17.             var ajax          = false;
  18.             var requestStart  = request.start;
  19.             var drawStart     = request.start;
  20.             var requestLength = request.length;
  21.             var requestEnd    = requestStart + requestLength;
  22.              
  23.             if ( settings.clearCache ) {
  24.                 ajax = true;
  25.                 settings.clearCache = false;
  26.             }
  27.             else if ( cacheLower < 0 || requestStart < cacheLower || requestEnd > cacheUpper ) {
  28.                 ajax = true;
  29.             }
  30.             else if ( JSON.stringify( request.order )   !== JSON.stringify( cacheLastRequest.order ) ||
  31.                       JSON.stringify( request.columns ) !== JSON.stringify( cacheLastRequest.columns ) ||
  32.                       JSON.stringify( request.search )  !== JSON.stringify( cacheLastRequest.search )
  33.             ) {
  34.                 ajax = true;
  35.             }
  36.             cacheLastRequest = $.extend( true, {}, request );
  37.             if ( ajax ) {
  38.                 if ( requestStart < cacheLower ) {
  39.                     requestStart = requestStart - (requestLength*(conf.pages-1));
  40.      
  41.                     if ( requestStart < 0 ) {
  42.                         requestStart = 0;
  43.                     }
  44.                 }
  45.                 cacheLower = requestStart;
  46.                 cacheUpper = requestStart + (requestLength * conf.pages);
  47.                 request.start = requestStart;
  48.                 request.length = requestLength*conf.pages;
  49.                 if ( $.isFunction ( conf.data ) ) {
  50.                     var d = conf.data( request );
  51.                     if ( d ) {
  52.                         $.extend( request, d );
  53.                     }
  54.                 }
  55.                 else if ( $.isPlainObject( conf.data ) ) {
  56.                     $.extend( request, conf.data );
  57.                 }
  58.                 settings.jqXHR = $.ajax( {
  59.                     "type":     conf.method,
  60.                     "url":      conf.url,
  61.                     "data":     request,
  62.                     "dataType": "json",
  63.                     "cache":    false,
  64.                     "success":  function ( json ) {
  65.                         cacheLastJson = $.extend(true, {}, json);
  66.      
  67.                         if ( cacheLower != drawStart ) {
  68.                             json.data.splice( 0, drawStart-cacheLower );
  69.                         }
  70.                         json.data.splice( requestLength, json.data.length );
  71.                          
  72.                         drawCallback( json );
  73.                     }
  74.                 } );
  75.             }
  76.             else {
  77.                 json = $.extend( true, {}, cacheLastJson );
  78.                 json.draw = request.draw;
  79.                 json.data.splice( 0, requestStart-cacheLower );
  80.                 json.data.splice( requestLength, json.data.length );
  81.      
  82.                 drawCallback(json);
  83.             }
  84.         }
  85.     };
  86.     $.fn.dataTable.Api.register( 'clearPipeline()', function () {
  87.         return this.iterator( 'table', function ( settings ) {
  88.             settings.clearCache = true;
  89.         } );
  90.     });
  91.  
  92.     $(document).ready(function(){
  93.         // Login-Logs-Tabelle, wird mit DataTables initialisiert
  94.         $('#mylogins').dataTable({
  95.             "processing": true,
  96.             "serverSide": true,
  97.             "language": {
  98.                 "emptyTable":     "Keine Daten verfügbar.",
  99.                 "info":           "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
  100.                 "infoEmpty":      "Zeige 0 bis 0 von 0 Einträgen",
  101.                 "infoFiltered":   "(gefiltert von _MAX_ insgesamten Einträgen)",
  102.                 "infoPostFix":    "",
  103.                 "thousands":      ",",
  104.                 "lengthMenu":     "Zeige _MENU_ Einträge",
  105.                 "loadingRecords": "Lade...",
  106.                 "processing":     "Wird verarbeitet...",
  107.                 "search":         "Suche:",
  108.                 "zeroRecords":    "Keine passenden Einträge gefunden",
  109.                 "paginate": {
  110.                     "first":      "Erste",
  111.                     "last":       "Letzte",
  112.                     "next":       "Nächste",
  113.                     "previous":   "Vorherige"
  114.                 },
  115.                 "aria": {
  116.                     "sortAscending":  ": Aktivieren, um die Spalte aufsteigend zu sortieren",
  117.                     "sortDescending": ": Aktivieren, um die Spalte absteigend zu sortieren"
  118.                 }
  119.             },
  120.             "ajax": $.fn.dataTable.pipeline({
  121.                 url: 'tablesorter/serverside/loginlogs.php',
  122.                 pages: 5 // Seiten die gecached werden
  123.             })
  124.         });
  125.     });
  126. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement