DataTables search enhance (ignore accents and case)

This commit is contained in:
mareksebera 2014-09-10 21:02:55 +02:00
parent 95e198b982
commit be2b39c5eb
2 changed files with 49 additions and 3 deletions

View file

@ -1,6 +1,48 @@
<script type="text/javascript"> <script type="text/javascript">
jQuery.fn.DataTable.ext.type.search.string = function (data) {
return !data ?
'' :
typeof data === 'string' ?
data
.replace(/\n/g, ' ')
.replace(/á/g, 'a')
.replace(/é/g, 'e')
.replace(/í/g, 'i')
.replace(/ó/g, 'o')
.replace(/ú/g, 'u')
.replace(/ê/g, 'e')
.replace(/î/g, 'i')
.replace(/ô/g, 'o')
.replace(/è/g, 'e')
.replace(/ï/g, 'i')
.replace(/ü/g, 'u')
.replace(/ě/g, 'e')
.replace(/š/g, 's')
.replace(/č/g, 'c')
.replace(/ř/g, 'r')
.replace(/ž/g, 'z')
.replace(/ý/g, 'y')
.replace(/ö/g, 'o')
.replace(/ä/g, 'a')
.replace(/ň/g, 'n')
.replace(/Ě/g, 'e')
.replace(/Š/g, 's')
.replace(/Č/g, 'c')
.replace(/Ř/g, 'r')
.replace(/Ž/g, 'z')
.replace(/Ý/g, 'y')
.replace(/Á/g, 'a')
.replace(/Í/g, 'i')
.replace(/É/g, 'e')
.replace(/Ň/g, 'n')
.replace(/Ť/g, 't')
.replace(/Ď/g, 'd')
.replace(/ç/g, 'c') :
data;
};
$(document).ready(function () { $(document).ready(function () {
$("#items-table").DataTable({ var table = $("#items-table").DataTable({
paging: false, paging: false,
orderMulti: true, orderMulti: true,
info: false, info: false,
@ -11,7 +53,10 @@
{searchable: true}, {searchable: true},
{searchable: true}, {searchable: true},
{searchable: false} {searchable: false}
] ],
search: {
caseInsensitive: true
}
}); });
}); });
</script> </script>

View file

@ -9,7 +9,8 @@
echo $this->Html->meta('icon'); echo $this->Html->meta('icon');
echo $this->Html->script(array( echo $this->Html->script(array(
'//code.jquery.com/jquery-1.10.2.min.js', '//code.jquery.com/jquery-1.10.2.min.js',
'//cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js' '//cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js',
'//cdn.datatables.net/plug-ins/725b2a2115b/filtering/type-based/accent-neutralise.js'
)); ));
echo $this->Html->css(array( echo $this->Html->css(array(
'reset', 'styles', 'reset', 'styles',