1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-04-30 22:02:49 +02:00

Update sort-custom-type.html

This commit is contained in:
koalyptus 2018-12-31 13:19:39 +11:00 committed by GitHub
parent 6bda20ec8c
commit 3984231927
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,755 +2,8 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sort a custom column type | TableFilter</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<!-- Bootstrap theme -->
<link href="assets/css/bootstrap-theme.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="assets/css/theme.css" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<meta http-equiv="refresh" content="0;URL='https://www.tablefilter.com/sort-custom-type.html'">
</head>
<body>
<!-- Fixed navbar -->
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="./">TableFilter</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<!-- you can exclude pages using {{#isnt}} helper: {{#isnt data.title 'Blog'}} -->
<li>
<a href="examples.html">Examples</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Github <b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<a href="https://github.com/koalyptus/TableFilter">Repo</a>
</li>
<li>
<a href="https://github.com/koalyptus/TableFilter/wiki">Wiki</a>
</li>
</ul>
</li>
<li>
<a href="./docs" target="_blank">Docs</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<div class="container theme-showcase" role="main">
<h1>Sort a custom column type</h1>
<p>
This demo shows how to implement your own sorter for a custom column type.
The <code>sort</code> extension provides a public interface for implementing
custom sorter functions.
</p>
<table class="dummy-custom-type">
<thead>
<tr>
<th>Email</th>
<th>Custom type</th>
<th>Id</th>
<th>Phone</th>
<th>&euro;</th>
<th>US $</th>
<th>Url</th>
<th>EU Date</th>
<th>US Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>devo@flexomat.com</td>
<td>AUY78</td>
<td>66672</td>
<td>941-964-8535</td>
<td align="right">2.482,79</td>
<td align="right">2,482.79</td>
<td>http://gmail.com</td>
<td>14/12/1988</td>
<td>12/14/1988</td>
</tr>
<tr>
<td>henry@mountdev.net</td>
<td>QT2</td>
<td>35889</td>
<td>941-964-9543</td>
<td align="right">2.776,09</td>
<td align="right">2,776.09</td>
<td>http://www.gmail.com</td>
<td>19/1/1984</td>
<td>1/19/1984</td>
</tr>
<tr>
<td>christian@reno.gov</td>
<td>QT1</td>
<td>60021</td>
<td>941-964-5617</td>
<td align="right">2.743,41</td>
<td align="right">2,743.41</td>
<td>http://www.dotnet.ca</td>
<td>25/3/2000</td>
<td>3/25/2000</td>
</tr>
<tr>
<td>muffins@donuts.com</td>
<td>QT1T</td>
<td>17927</td>
<td>941-964-9511</td>
<td align="right">2.998,18</td>
<td align="right">2,998.18</td>
<td>http://google.se</td>
<td>24/1/1993</td>
<td>1/24/1993</td>
</tr>
<tr>
<td>muffins@reno.gov</td>
<td>QT28</td>
<td>76375</td>
<td>941-964-2757</td>
<td align="right">1.836,09</td>
<td align="right">1,836.09</td>
<td>http://www.samba.org</td>
<td>4/4/1988</td>
<td>4/4/1988</td>
</tr>
<tr>
<td>mendez@gmail.com</td>
<td>JH9</td>
<td>45834</td>
<td>941-964-2575</td>
<td align="right">2.805,46</td>
<td align="right">2,805.46</td>
<td>http://flexomat.com</td>
<td>12/12/1985</td>
<td>12/12/1985</td>
</tr>
<tr>
<td>dev@gmail.com</td>
<td>QT3</td>
<td>20022</td>
<td>941-964-4967</td>
<td align="right">3.296,54</td>
<td align="right">3,296.54</td>
<td>http://www.flexomat.com</td>
<td>3/7/2002</td>
<td>7/3/2002</td>
</tr>
<tr>
<td>foo@polyester.se</td>
<td>YU899</td>
<td>55987</td>
<td>941-964-745</td>
<td align="right">2.953,73</td>
<td align="right">2,953.73</td>
<td>http://www.donuts.com</td>
<td>4/8/1987</td>
<td>8/4/1987</td>
</tr>
<tr>
<td>adam@aftonbladet.se</td>
<td>QT122</td>
<td>38867</td>
<td>941-964-6302</td>
<td align="right">1.949,27</td>
<td align="right">1,949.27</td>
<td>http://flexomat.com</td>
<td>27/7/1995</td>
<td>7/27/1995</td>
</tr>
<tr>
<td>devo@donuts.com</td>
<td>QT10</td>
<td>51426</td>
<td>941-964-1234</td>
<td align="right">1.067,00</td>
<td align="right">1,067.00</td>
<td>http://www.polyester.se</td>
<td>5/1/1986</td>
<td>1/5/1986</td>
</tr>
<tr>
<td>henry@samba.org</td>
<td>TY76</td>
<td>40859</td>
<td>941-964-4856</td>
<td align="right">3.401,19</td>
<td align="right">3,401.19</td>
<td>http://www.flexomat.com</td>
<td>7/3/1990</td>
<td>3/7/1990</td>
</tr>
<tr>
<td>found@dotnet.ca</td>
<td>DF43</td>
<td>23986</td>
<td>941-964-2686</td>
<td align="right">1.393,52</td>
<td align="right">1,393.52</td>
<td>http://lostnfound.org</td>
<td>22/7/1993</td>
<td>7/22/1993</td>
</tr>
<tr>
<td>carl@fish.org</td>
<td>IU90</td>
<td>73392</td>
<td>941-964-5792</td>
<td align="right">3.876,04</td>
<td align="right">3,876.04</td>
<td>http://www.google.se</td>
<td>14/7/1984</td>
<td>7/14/1984</td>
</tr>
<tr>
<td>found@mountdev.net</td>
<td>VX113</td>
<td>03519</td>
<td>941-964-1599</td>
<td align="right">1.176,48</td>
<td align="right">1,176.48</td>
<td>http://donuts.com</td>
<td>6/8/2000</td>
<td>8/6/2000</td>
</tr>
<tr>
<td>lost@fish.org</td>
<td>ZP82</td>
<td>36628</td>
<td>941-964-5985</td>
<td align="right">822,23</td>
<td align="right">822.23</td>
<td>http://www.gmail.com</td>
<td>14/7/1994</td>
<td>7/14/1994</td>
</tr>
<tr>
<td>mendez@dotnet.ca</td>
<td>OK33</td>
<td>90442</td>
<td>941-964-1649</td>
<td align="right">1.985,72</td>
<td align="right">1,975.72</td>
<td>http://reno.gov</td>
<td>20/10/1997</td>
<td>10/20/1997</td>
</tr>
<tr>
<td>carl@donuts.com</td>
<td>EQ97</td>
<td>00412</td>
<td>941-964-6432</td>
<td align="right">1.834,77</td>
<td align="right">1,834.77</td>
<td>http://gmail.com</td>
<td>23/8/1997</td>
<td>8/23/1997</td>
</tr>
<tr>
<td>foo@fish.org</td>
<td>FS56</td>
<td>80653</td>
<td>941-964-1022</td>
<td align="right">260,26</td>
<td align="right">260.26</td>
<td>http://samba.org</td>
<td>24/11/1991</td>
<td>11/24/1991</td>
</tr>
<tr>
<td>found@fish.org</td>
<td>MW3</td>
<td>54635</td>
<td>941-964-6439</td>
<td align="right">1.442,80</td>
<td align="right">1,442.80</td>
<td>http://dotnet.ca</td>
<td>12/7/1987</td>
<td>7/12/1987</td>
</tr>
<tr>
<td>found@flexomat.com</td>
<td>RE51</td>
<td>20953</td>
<td>941-964-5544</td>
<td align="right">575,42</td>
<td align="right">575.42</td>
<td>http://gmail.com</td>
<td>10/6/1988</td>
<td>6/10/1988</td>
</tr>
</tbody>
</table>
<script src="tablefilter/tablefilter.js"></script>
<div class="alert alert-info" role="alert">
The <code>addSortType</code> method accepts the following paremeters:
<ul>
<li>
an identifier of the sort type (lowercase)
</li>
<li>
an optional function that takes a string and casts it to a desired
format, if not specified it returns the string itself
</li>
<li>
an optional compare function taking 2 values and compares them. If
not specified defaults to `less than compare` type
</li>
</ul>
</div>
<script data-config>
// Cast to integer contained in string
function customCaster(val) {
var m = val.match(/\d+/);
return parseInt(m[0], 10);
}
// Custom sorter
function customSorter(n1, n2) {
if(n1.value < n2.value) {
return -1;
}
if(n2.value < n1.value) {
return 1;
}
return 0;
}
var tfConfig = {
base_path: 'tablefilter/',
alternate_rows: true,
rows_counter: true,
btn_reset: true,
status_bar: true,
col_types: [
'string',
'customtype',
'number',
'string',
{ type: 'formatted-number', decimal: ',', thousands: '.' },
'formatted-number',
'string',
{ type: 'date', locale: 'fr' },
{ type: 'date', locale: 'en' }
],
// Sort extension
extensions: [{
name: 'sort',
// Register custom sorter when sort extension is loaded
on_sort_loaded: function(o, sort) {
// addSortType accepts:
// 1. an identifier of the sort type (lowercase)
// 2. an optional function that takes a string and casts it to a
// desired format, if not specified it returns the string
// 3. an optional compare function taking 2 values and compares
// them. If not specified defaults to `less than compare` type
sort.addSortType('customtype', customCaster, customSorter);
}
}]
};
var tf = new TableFilter(
document.querySelector('.dummy-custom-type'),
tfConfig
);
tf.init();
</script>
<hr>
<ul class="nav nav-pills">
<li class="active">
<a data-toggle="tab" href="#js">JS</a>
</li>
<li>
<a data-toggle="tab" href="#html">HTML</a>
</li>
<li>
<a data-toggle="tab" href="#css">CSS</a>
</li>
</ul>
<div class="tab-content">
<div id="js" class="tab-pane fade in active">
<!--
DO NOT COPY: NOT PART OF TABLEFILTER
-->
<pre class="js">
<code class="javascript"></code>
</pre>
<script src="assets/js/js-code-in-pre.js"></script>
<!-- -->
</div>
<div id="html" class="tab-pane fade">
<!--
DO NOT COPY: NOT PART OF TABLEFILTER
-->
<pre class="html">
<code class="xml"></code>
</pre>
<script src="assets/js/html-code-in-pre.js"></script>
<!-- -->
</div>
<div id="css" class="tab-pane fade">
<!--
DO NOT COPY: NOT PART OF TABLEFILTER
-->
<pre class="css">
<code class="css"></code>
</pre>
<script src="assets/js/css-code-in-pre.js"></script>
<!-- -->
</div>
</div>
</div>
<nav class="navbar navbar-default navbar-bottom">
<div class="container">
<ul class="nav navbar-nav">
<li>
<a href="https://github.com/koalyptus/TableFilter">Repo</a>
</li>
<li>
<a href="https://github.com/koalyptus/TableFilter/wiki">Wiki</a>
</li>
<li>
<a href="./docs" target="_blank">Docs</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="maxgug@hotmail.com">
<input type="hidden" name="lc" value="BM">
<input type="hidden" name="item_name" value="TableFilter">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHosted">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_AU/i/scr/pixel.gif" width="1" height="1">
</form>
</p>
</li>
<li>
<a href="https://flattr.com/submit/auto?user_id=koalyptus&
url=https%3A%2F%2Fgithub.com%2Fkoalyptus%2FTablefilter">
<img src="https://api.flattr.com/button/flattr-badge-large.png"
alt="TableFilter - A Javascript library making HTML tables filterable
and a bit more" />
</a>
</li>
</ul>
</div>
</nav>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://code.jquery.com/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="assets/js/bootstrap.min.js"></script>
<script src="assets/js/github-fork-me.js"></script>
<!--
DO NOT COPY: NOT PART OF TABLEFILTER
-->
<link rel="stylesheet" href="assets/js/highlight/styles/monokai-sublime.css">
<script src="assets/js/highlight/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<!-- -->
<script type="text/javascript"
src="//s7.addthis.com/js/300/addthis_widget.js#pubid=maxgug"
async="async"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-68429903-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>