README - jscancer - Javascript crap (relatively small)
(HTM) git clone git://git.codemadness.org/jscancer
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
README (5068B)
---
1 jsdatatable
2 ===========
3
4 small datatable script.
5
6
7 FEATURES
8 --------
9
10 - Small:
11 - Filesize: +- 9.1KB.
12 - Lines: +- 300, not much code, so hopefully easy to understand.
13 - No dependencies on other libraries like jQuery.
14 - Sorting on columns, multi-column support with shift-click.
15 - Filtering values: case-insensitively, tokenized (separated by space).
16 - Able to add custom filtering, parsing and sorting functions.
17 - Helper function for delayed (150ms) filtering, so filtering feels more
18 responsive for big datasets.
19 - Permissive ISC license, see LICENSE file.
20 - "Lazy scroll" mode:
21 - fixed column headers and renders only visible rows, this allows you to
22 "lazily" render millions of rows.
23 - Officially supported browsers are:
24 - Firefox and Firefox ESR.
25 - Chrome and most recent webkit-based browsers.
26 - IE10+.
27 - Lite version: datatable_lite.js and datatable_lite.css is a smaller version
28 with the following features removed:
29 - lazyload (d.lazyscroll), CSS selectors with the "-lazyload" suffix.
30 - text filtering (d.search, d.filter*, datatable_filter*, etc).
31 This reduces the filesize to +- 4.0KB and 140 lines.
32
33
34 USAGE
35 -----
36
37
38 EXAMPLES
39 --------
40
41 See example.html for an example. A stylesheet file datatable.css is also
42 included, it contains the icons as embedded images.
43
44 A table should have the classname "datatable" set, it must contain a <thead>
45 for the column headers (<td> or <th>) and <tbody> element for the data. The
46 minimal code needed for a working datatable:
47
48 <html>
49 <body>
50 <input class="filter-text" /><!-- optional -->
51 <table class="datatable">
52 <thead><!-- columns -->
53 <tr><td>Click me</td></tr>
54 </thead>
55 <tbody><!-- data -->
56 <tr><td>a</td></tr>
57 <tr><td>b</td></tr>
58 </tbody>
59 </table>
60 <script type="text/javascript" src="datatable.js"></script>
61 <script type="text/javascript">var datatables = datatable_autoload();</script>
62 </body>
63 </html>
64
65
66 COLUMN ATTRIBUTES
67 -----------------
68
69 The following column attributes are supported:
70
71 data-filterable - If "1" or "true" specifies if the column can be filtered,
72 default: "true".
73 data-parse - Specifies how to parse the values, default: "string",
74 which is datatable_parse_string(). See PARSING section
75 below.
76 data-sort - Specifies how to sort the values: default: "default",
77 which is datatable_sort_default(). See SORTING section
78 below.
79 data-sortable - If "1" or "true" specifies if the column can be sorted,
80 default: "true".
81
82
83 PARSING
84 -------
85
86 By default only parsing for the types: date, float, int and string are
87 supported, but other types can be easily added as a function with the name:
88 datatable_parse_<typename>(). The parse functions parse the data-value
89 attribute when set or else the cell content (in order). Because of this
90 behaviour you can set the actual values as the data-value attribute and use
91 the cell content for display. This is useful to display and properly sort
92 locale-aware currency, datetimes etc.
93
94
95 FILTERING
96 ---------
97
98 Filtering will be done case-insensitively on the cell content and when set also
99 on the data-value attribute. The filter string is split up as tokens separated
100 by space. Each token must match atleast once per row to display it.
101
102
103 SORTING
104 -------
105
106 Sorting is done on the parsed values by default with the function:
107 datatable_sort_default(). To change this you can set a customname string on
108 the data-sort attribute on the column which translates to the function:
109 datatable_sort_<customname>().
110
111 In some applications locale values are used, like for currency, decimal numbers
112 datetimes. Some people also like to use icons or extended HTML elements inside
113 the cell. Because jsdatatable sorts on the parsed value (see section PARSING)
114 it is possible to sort on the data-value attribute values and use the cell
115 content for display.
116
117 For example:
118
119 currency, decimal numbers:
120 use data-value attribute with floating-point number, set data-parse
121 column to "float".
122 date/datetimes:
123 use data-value attribute with UNIX timestamps (type int), set
124 data-parse on column to "int" or set the data-parse attribute on
125 column to "date" which is datatable_parse_date(), then make sure to
126 use Zulu times, like: "2016-01-01T01:02:03Z" or other
127 time strings that are parsable as the data-value attribute.
128 icons:
129 generally use data-value attribute with integer as weight value to sort
130 on, set data-parse column to "int".
131
132
133 DYNAMICALLY UPDATE DATA
134 -----------------------
135
136 To update data dynamically see example-ajax.html for an example how to do this.
137
138
139 CAVEATS
140 -------
141
142 - A date, integer, float or other values must be able to parse properly, when
143 the parse function returns NaN, null or undefined etc. the sorting behaviour
144 is also undefined. It is recommended to always set a zero value for each
145 type.
146 - <tfoot> is not supported in datatables in "lazy" mode.
147
148
149 Author
150 ------
151
152 Hiltjo Posthuma <hiltjo@codemadness.org>