PHP Classes

File: source/asset/crules/datatables-plugins/filtering/row-based/TableTools.ShowSelectedOnly.js

Recommend this page to a friend!
  Classes of ask sa sa   Rimau waf   source/asset/crules/datatables-plugins/filtering/row-based/TableTools.ShowSelectedOnly.js   Download  
File: source/asset/crules/datatables-plugins/filtering/row-based/TableTools.ShowSelectedOnly.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Rimau waf
Application to configure Web server module options
Author: By
Last change:
Date: 1 year ago
Size: 6,452 bytes
 

Contents

Class file image Download
?/** * Used in combination with TableTools and selectable rows, this will allow you * to switch between showing all rows and just the selected ones. * * @name Show selected only * @summary Show only selected rows, or all rows, through filtering * @requires TableTools * @author [Caleb Harrelson](http://stackoverflow.com/users/8507/phloopy) * * @example * $('#example').dataTable({ * "sDom": 'T<"clear">Sfrtip', * "oTableTools": { * "sRowSelect": "multi", * }, * "oLanguage": { * "oFilterSelectedOptions": { * AllText: "All Widgets", * SelectedText: "Selected Widgets" * } * } * }); */ (function (window, document, $, undefined) { $.fn.dataTable.SelectedLengthMenu = function(oSettings) { if (oSettings.oScroll.bInfinite) { return null; } /* This can be overruled by not using the _MENU_ var/macro in the language variable */ var sName = 'name="' + oSettings.sTableId + '_length"'; var sStdMenu = '<select size="1" ' + sName + '>'; var i, iLen; var aLengthMenu = oSettings.aLengthMenu; if (aLengthMenu.length == 2 && typeof aLengthMenu[0] === 'object' && typeof aLengthMenu[1] === 'object') { for (i = 0, iLen = aLengthMenu[0].length; i < iLen; i++) { sStdMenu += '<option value="' + aLengthMenu[0][i] + '">' + aLengthMenu[1][i] + '</option>'; } } else { for (i = 0, iLen = aLengthMenu.length; i < iLen; i++) { sStdMenu += '<option value="' + aLengthMenu[i] + '">' + aLengthMenu[i] + '</option>'; } } sStdMenu += '</select>'; // select box to show all or only selected items var oFilterSelectedOptions = oSettings.oLanguage.oFilterSelectedOptions; if (!oFilterSelectedOptions) oFilterSelectedOptions = { "AllText": "All Items", "SelectedText": "Selected Items" }; var sSelectedMenu = '<select name="' + oSettings.sTableId + '_selectedFilter">'; if (typeof oFilterSelectedOptions === 'object') { sSelectedMenu += '<option value="All">' + oFilterSelectedOptions.AllText + '</option>'; sSelectedMenu += '<option value="Selected">' + oFilterSelectedOptions.SelectedText + '</option>'; } else { sSelectedMenu += '<option value="All">' + oFilterSelectedOptions[0] + '</option>'; sSelectedMenu += '<option value="Selected">' + oFilterSelectedOptions[1] + '</option>'; } sSelectedMenu += '</select>'; var nLength = document.createElement('div'); if (!oSettings.aanFeatures.l) { nLength.id = oSettings.sTableId + '_length'; } nLength.className = oSettings.oClasses.sLength; var sLengthMenu = oSettings.oLanguage.sLengthMenu; if (sLengthMenu == 'Show _MENU_ entries') sLengthMenu = 'Show _MENU_ of _SELECTEDMENU_'; nLength.innerHTML = '<span>' + sLengthMenu.replace('_MENU_', sStdMenu).replace('_SELECTEDMENU_', sSelectedMenu) + '</span>'; var $lengthSelect = $('select[name="' + oSettings.sTableId + '_length"]', nLength); if ($lengthSelect.length == 0) $lengthSelect = $('select :eq(0)', nLength); /* * Set the length to the current display length - thanks to Andrea Pavlovic for this fix, * and Stefan Skopnik for fixing the fix! */ $lengthSelect.find('option[value="' + oSettings._iDisplayLength + '"]', nLength).attr("selected", true); $lengthSelect.bind('change.DT', function(e) { var iVal = $(this).val(); /* Update all other length options for the new display */ var n = oSettings.aanFeatures.S; for (i = 0, iLen = n.length; i < iLen; i++) { if (n[i] != this.parentNode) { $('select', n[i]).val(iVal); } } /* Redraw the table */ oSettings._iDisplayLength = parseInt(iVal, 10); oSettings.oApi._fnCalculateEnd(oSettings); /* If we have space to show extra rows (backing up from the end point - then do so */ if (oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay()) { oSettings._iDisplayStart = oSettings.fnDisplayEnd() - oSettings._iDisplayLength; if (oSettings._iDisplayStart < 0) { oSettings._iDisplayStart = 0; } } if (oSettings._iDisplayLength == -1) { oSettings._iDisplayStart = 0; } oSettings.oApi._fnDraw(oSettings); }); var $filterSelectedSelect = $('select[name="' + oSettings.sTableId + '_selectedFilter"]', nLength); if ($filterSelectedSelect.length == 0) $filterSelectedSelect = $('select :eq(1)', nLength); $filterSelectedSelect.find('option[value="' + oSettings._sFilterSelected + '"]', nLength).attr('selected', true); $filterSelectedSelect.on('change', function () { oSettings._sFilterSelected = $(this).val(); $('#' + oSettings.sTableId).dataTable().fnDraw(); }); $('select', nLength).attr('aria-controls', oSettings.sTableId); return nLength; }; $.fn.dataTableExt.afnFiltering.push( function (oSettings, aData, iDataIndex) { var $filterSelectedSelect = $('select[name="' + oSettings.sTableId + '_selectedFilter"]'); if ($filterSelectedSelect.length == 0) return true; // feature not enabled if ($filterSelectedSelect.val() == 'All') return true; // all items selected var oTable = $('#' + oSettings.sTableId).dataTable(); var row = oTable.fnGetNodes(iDataIndex); var oTableTools = TableTools.fnGetInstance(oSettings.sTableId); var isSelected = oTableTools.fnIsSelected(row); return isSelected; } ); // Subscribe the feature plug-in to DataTables, ready for use $.fn.dataTableExt.aoFeatures.push({ "fnInit": function (oSettings) { return new $.fn.dataTable.SelectedLengthMenu(oSettings); }, "cFeature": "O", "sFeature": "SelectedLengthMenu" }); })(window, document, jQuery);