diff --git a/azexo_composer/DataTables/Contributing.md b/azexo_composer/DataTables/Contributing.md
new file mode 100755
index 0000000..b3894ce
--- /dev/null
+++ b/azexo_composer/DataTables/Contributing.md
@@ -0,0 +1,9 @@
+# Contributing
+
+If you are thinking of contributing code to DataTables, first of all, thank you! All fixes, patches and enhancements to DataTables are very warmly welcomed. In order to keep thing manageable, there are a number of guidelines that should be followed in order to ensure that your modification is included in DataTables as quickly as possible:
+
+1. Make contributions in the DataTables/DataTablesSrc repo. Changes to the built files in the built repo (DataTables/DataTables) will not be accepted since they would be overwritten by the next build!
+
+2. Follow the style of the code in the existing files. DataTables doesn't have a coding standards document, but simple common sense of following the same style as in the existing files is ideal. For example use tabs not spaces (as you will see all source files use tabs).
+
+3. Link to a test page showing the bug you are fixing or the feature you are adding. This allows to me to quickly identify what is being changed and why. Don't worry about being verbose in pull requests - its much better to know exactly what is changing and why!
diff --git a/azexo_composer/DataTables/Readme.md b/azexo_composer/DataTables/Readme.md
new file mode 100755
index 0000000..4a4718b
--- /dev/null
+++ b/azexo_composer/DataTables/Readme.md
@@ -0,0 +1,60 @@
+# DataTables plug-in for jQuery
+
+DataTables is a table enhancing plug-in for the [jQuery](//jquery.com) Javascript library, adding sorting, paging and filtering abilities to plain HTML tables with minimal effort. The stated goal of DataTables is:
+
+> To enhance the accessibility of data in HTML tables.
+
+To meet this goal, DataTables is developed with two distinct groups of users in mind:
+
+* You the developers using DataTables. For developers DataTables provides a wide array of options for how data should be obtained, displayed and acted upon, along with an extensive API for accessing and manipulating the table.
+
+* End users. For those using the interface DataTables presents, actions to get the most from the information contained in tables, such as sorting and filtering, along with paging and scrolling of the data in table, are easy to use, intuitive and fast.
+
+
+## Installation
+
+In most cases, to use DataTables all you need to do is include jQuery, the DataTables Javascript and DataTables CSS files in your HTML page:
+
+```html
+
+
+
+
+```
+
+
+## Usage
+
+In its simplest case, DataTables can be initialised with a single line of Javascript:
+
+```js
+$('table').dataTable();
+```
+
+where the jQuery selector is used to obtain a reference to the table you want to enhance with DataTables. Optional configuration parameters can be passed in to DataTables to have it perform certain actions by using a configuration object as the parameter passed in to the DataTables constructor. For example:
+
+```js
+$('table').dataTable( {
+ paginate: false,
+ scrollY: 300
+} );
+```
+
+will disable paging and enable scrolling.
+
+A full list of the options available for DataTables are available in the [documentation](//datatables.net).
+
+
+## Documentation
+
+Full documentation of the DataTables options, API and pug-in interface are available on the [DataTables web-site](//datatables.net). The site also contains information on the wide variety of plug-ins that are available for DataTables, which can be used to enhance and customise your table even further.
+
+
+## Support
+
+Support for DataTables is available through the [DataTables forums](//datatables.net/forums) and [commercial support options](//datatables.net/support) are available.
+
+
+## License
+
+DataTables is release under the [MIT license](//datatables.net/license). You are free to use, modify and distribute this software, as long as the copyright header is left intact (specifically the comment block which starts with `/*!`.
diff --git a/azexo_composer/DataTables/bower.json b/azexo_composer/DataTables/bower.json
new file mode 100755
index 0000000..2553423
--- /dev/null
+++ b/azexo_composer/DataTables/bower.json
@@ -0,0 +1,11 @@
+{
+ "name": "datatables",
+ "version": "1.10.0",
+ "main": [
+ "media/js/jquery.dataTables.js",
+ "media/css/jquery.dataTables.css"
+ ],
+ "dependencies": {
+ "jquery": ">=1.7.0"
+ }
+}
diff --git a/azexo_composer/DataTables/composer.json b/azexo_composer/DataTables/composer.json
new file mode 100755
index 0000000..696761b
--- /dev/null
+++ b/azexo_composer/DataTables/composer.json
@@ -0,0 +1,15 @@
+{
+ "name": "datatables/datatables",
+ "version": "1.10.0",
+ "description": "DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table.",
+ "homepage": "http://www.datatables.net/",
+ "author": "SpryMedia",
+ "license": [
+ "MIT"
+ ],
+ "prefer-stable": true,
+ "support": {
+ "forum": "https://datatables.net/forums",
+ "source": "https://github.com/DataTables/DataTablesSrc/"
+ }
+}
diff --git a/azexo_composer/DataTables/dataTables.jquery.json b/azexo_composer/DataTables/dataTables.jquery.json
new file mode 100755
index 0000000..dcd7a64
--- /dev/null
+++ b/azexo_composer/DataTables/dataTables.jquery.json
@@ -0,0 +1,32 @@
+{
+ "name": "DataTables",
+ "version": "1.10.0",
+ "description": "DataTables enhances HTML tables with the ability to sort, filter and page the data in the table very easily. It provides a comprehensive API and set of configuration options, allowing you to consume data from virtually any data source.",
+ "homepage": "http://datatables.net/",
+ "docs": "http://datatables.net/",
+ "demo": "http://datatables.net/examples",
+ "download": "http://datatables.net/download",
+ "author": {
+ "name": "Allan Jardine",
+ "url": "http://sprymedia.co.uk"
+ },
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "http://datatables.net/license_bsd"
+ }
+ ],
+ "dependencies": {
+ "jquery": ">=1.7"
+ },
+ "keywords": [
+ "DataTables",
+ "DataTable",
+ "table",
+ "grid",
+ "filter",
+ "sort",
+ "page",
+ "internationalisable"
+ ]
+}
diff --git a/azexo_composer/DataTables/examples/advanced_init/column_render.html b/azexo_composer/DataTables/examples/advanced_init/column_render.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/complex_header.html b/azexo_composer/DataTables/examples/advanced_init/complex_header.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/defaults.html b/azexo_composer/DataTables/examples/advanced_init/defaults.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/dom_multiple_elements.html b/azexo_composer/DataTables/examples/advanced_init/dom_multiple_elements.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/dom_toolbar.html b/azexo_composer/DataTables/examples/advanced_init/dom_toolbar.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/dt_events.html b/azexo_composer/DataTables/examples/advanced_init/dt_events.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/events_live.html b/azexo_composer/DataTables/examples/advanced_init/events_live.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/footer_callback.html b/azexo_composer/DataTables/examples/advanced_init/footer_callback.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/html5-data-attributes.html b/azexo_composer/DataTables/examples/advanced_init/html5-data-attributes.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/index.html b/azexo_composer/DataTables/examples/advanced_init/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/language_file.html b/azexo_composer/DataTables/examples/advanced_init/language_file.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/length_menu.html b/azexo_composer/DataTables/examples/advanced_init/length_menu.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/row_callback.html b/azexo_composer/DataTables/examples/advanced_init/row_callback.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/row_grouping.html b/azexo_composer/DataTables/examples/advanced_init/row_grouping.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/advanced_init/sort_direction_control.html b/azexo_composer/DataTables/examples/advanced_init/sort_direction_control.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/custom_data_flat.html b/azexo_composer/DataTables/examples/ajax/custom_data_flat.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/custom_data_property.html b/azexo_composer/DataTables/examples/ajax/custom_data_property.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/arrays.txt b/azexo_composer/DataTables/examples/ajax/data/arrays.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/arrays_custom_prop.txt b/azexo_composer/DataTables/examples/ajax/data/arrays_custom_prop.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/arrays_subobjects.txt b/azexo_composer/DataTables/examples/ajax/data/arrays_subobjects.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/objects.txt b/azexo_composer/DataTables/examples/ajax/data/objects.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/objects_deep.txt b/azexo_composer/DataTables/examples/ajax/data/objects_deep.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/objects_root_array.txt b/azexo_composer/DataTables/examples/ajax/data/objects_root_array.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/objects_subarrays.txt b/azexo_composer/DataTables/examples/ajax/data/objects_subarrays.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/data/orthogonal.txt b/azexo_composer/DataTables/examples/ajax/data/orthogonal.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/deep.html b/azexo_composer/DataTables/examples/ajax/deep.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/defer_render.html b/azexo_composer/DataTables/examples/ajax/defer_render.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/index.html b/azexo_composer/DataTables/examples/ajax/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/null_data_source.html b/azexo_composer/DataTables/examples/ajax/null_data_source.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/objects.html b/azexo_composer/DataTables/examples/ajax/objects.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/objects_subarrays.html b/azexo_composer/DataTables/examples/ajax/objects_subarrays.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/orthogonal-data.html b/azexo_composer/DataTables/examples/ajax/orthogonal-data.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/ajax/simple.html b/azexo_composer/DataTables/examples/ajax/simple.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/add_row.html b/azexo_composer/DataTables/examples/api/add_row.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/api_in_init.html b/azexo_composer/DataTables/examples/api/api_in_init.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/counter_columns.html b/azexo_composer/DataTables/examples/api/counter_columns.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/form.html b/azexo_composer/DataTables/examples/api/form.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/highlight.html b/azexo_composer/DataTables/examples/api/highlight.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/index.html b/azexo_composer/DataTables/examples/api/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/multi_filter.html b/azexo_composer/DataTables/examples/api/multi_filter.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/multi_filter_select.html b/azexo_composer/DataTables/examples/api/multi_filter_select.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/regex.html b/azexo_composer/DataTables/examples/api/regex.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/row_details.html b/azexo_composer/DataTables/examples/api/row_details.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/select_row.html b/azexo_composer/DataTables/examples/api/select_row.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/select_single_row.html b/azexo_composer/DataTables/examples/api/select_single_row.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/show_hide.html b/azexo_composer/DataTables/examples/api/show_hide.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/api/tabs_and_scrolling.html b/azexo_composer/DataTables/examples/api/tabs_and_scrolling.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/alt_pagination.html b/azexo_composer/DataTables/examples/basic_init/alt_pagination.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/comma-decimal.html b/azexo_composer/DataTables/examples/basic_init/comma-decimal.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/complex_header.html b/azexo_composer/DataTables/examples/basic_init/complex_header.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/dom.html b/azexo_composer/DataTables/examples/basic_init/dom.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/filter_only.html b/azexo_composer/DataTables/examples/basic_init/filter_only.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/flexible_width.html b/azexo_composer/DataTables/examples/basic_init/flexible_width.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/hidden_columns.html b/azexo_composer/DataTables/examples/basic_init/hidden_columns.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/index.html b/azexo_composer/DataTables/examples/basic_init/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/language.html b/azexo_composer/DataTables/examples/basic_init/language.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/multi_col_sort.html b/azexo_composer/DataTables/examples/basic_init/multi_col_sort.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/multiple_tables.html b/azexo_composer/DataTables/examples/basic_init/multiple_tables.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/scroll_x.html b/azexo_composer/DataTables/examples/basic_init/scroll_x.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/scroll_xy.html b/azexo_composer/DataTables/examples/basic_init/scroll_xy.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/scroll_y.html b/azexo_composer/DataTables/examples/basic_init/scroll_y.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/scroll_y_theme.html b/azexo_composer/DataTables/examples/basic_init/scroll_y_theme.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/state_save.html b/azexo_composer/DataTables/examples/basic_init/state_save.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/table_sorting.html b/azexo_composer/DataTables/examples/basic_init/table_sorting.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/basic_init/zero_configuration.html b/azexo_composer/DataTables/examples/basic_init/zero_configuration.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/data_sources/ajax.html b/azexo_composer/DataTables/examples/data_sources/ajax.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/data_sources/dom.html b/azexo_composer/DataTables/examples/data_sources/dom.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/data_sources/index.html b/azexo_composer/DataTables/examples/data_sources/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/data_sources/js_array.html b/azexo_composer/DataTables/examples/data_sources/js_array.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/data_sources/server_side.html b/azexo_composer/DataTables/examples/data_sources/server_side.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/index.html b/azexo_composer/DataTables/examples/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/plug-ins/api.html b/azexo_composer/DataTables/examples/plug-ins/api.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/plug-ins/dom_sort.html b/azexo_composer/DataTables/examples/plug-ins/dom_sort.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/plug-ins/index.html b/azexo_composer/DataTables/examples/plug-ins/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/plug-ins/range_filtering.html b/azexo_composer/DataTables/examples/plug-ins/range_filtering.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/plug-ins/sorting_auto.html b/azexo_composer/DataTables/examples/plug-ins/sorting_auto.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/plug-ins/sorting_manual.html b/azexo_composer/DataTables/examples/plug-ins/sorting_manual.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/3/dataTables.bootstrap.css b/azexo_composer/DataTables/examples/resources/bootstrap/3/dataTables.bootstrap.css
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/3/dataTables.bootstrap.js b/azexo_composer/DataTables/examples/resources/bootstrap/3/dataTables.bootstrap.js
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/3/index.html b/azexo_composer/DataTables/examples/resources/bootstrap/3/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_asc.png b/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_asc.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_asc_disabled.png b/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_asc_disabled.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_both.png b/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_both.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_desc.png b/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_desc.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_desc_disabled.png b/azexo_composer/DataTables/examples/resources/bootstrap/images/sort_desc_disabled.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/de_DE.txt b/azexo_composer/DataTables/examples/resources/de_DE.txt
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/demo.css b/azexo_composer/DataTables/examples/resources/demo.css
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/demo.js b/azexo_composer/DataTables/examples/resources/demo.js
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/details_close.png b/azexo_composer/DataTables/examples/resources/details_close.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/details_open.png b/azexo_composer/DataTables/examples/resources/details_open.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/examples.php b/azexo_composer/DataTables/examples/resources/examples.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/font/raleway_thin-webfont.eot b/azexo_composer/DataTables/examples/resources/font/raleway_thin-webfont.eot
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/font/raleway_thin-webfont.ttf b/azexo_composer/DataTables/examples/resources/font/raleway_thin-webfont.ttf
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/font/raleway_thin-webfont.woff b/azexo_composer/DataTables/examples/resources/font/raleway_thin-webfont.woff
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/foundation/dataTables.foundation.css b/azexo_composer/DataTables/examples/resources/foundation/dataTables.foundation.css
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/foundation/dataTables.foundation.js b/azexo_composer/DataTables/examples/resources/foundation/dataTables.foundation.js
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/foundation/images/sort_asc.png b/azexo_composer/DataTables/examples/resources/foundation/images/sort_asc.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/foundation/images/sort_asc_disabled.png b/azexo_composer/DataTables/examples/resources/foundation/images/sort_asc_disabled.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/foundation/images/sort_both.png b/azexo_composer/DataTables/examples/resources/foundation/images/sort_both.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/foundation/images/sort_desc.png b/azexo_composer/DataTables/examples/resources/foundation/images/sort_desc.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/foundation/images/sort_desc_disabled.png b/azexo_composer/DataTables/examples/resources/foundation/images/sort_desc_disabled.png
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/jqueryui/dataTables.jqueryui.css b/azexo_composer/DataTables/examples/resources/jqueryui/dataTables.jqueryui.css
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/jqueryui/dataTables.jqueryui.js b/azexo_composer/DataTables/examples/resources/jqueryui/dataTables.jqueryui.js
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/jqueryui/dataTables.jqueryui.scss b/azexo_composer/DataTables/examples/resources/jqueryui/dataTables.jqueryui.scss
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/jqueryui/index.html b/azexo_composer/DataTables/examples/resources/jqueryui/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/syntax/Syntax Highlighter license b/azexo_composer/DataTables/examples/resources/syntax/Syntax Highlighter license
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/syntax/shCore.css b/azexo_composer/DataTables/examples/resources/syntax/shCore.css
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/resources/syntax/shCore.js b/azexo_composer/DataTables/examples/resources/syntax/shCore.js
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/custom_vars.html b/azexo_composer/DataTables/examples/server_side/custom_vars.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/defer_loading.html b/azexo_composer/DataTables/examples/server_side/defer_loading.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/ids.html b/azexo_composer/DataTables/examples/server_side/ids.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/index.html b/azexo_composer/DataTables/examples/server_side/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/jsonp.html b/azexo_composer/DataTables/examples/server_side/jsonp.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/object_data.html b/azexo_composer/DataTables/examples/server_side/object_data.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/pipeline.html b/azexo_composer/DataTables/examples/server_side/pipeline.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/post.html b/azexo_composer/DataTables/examples/server_side/post.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/row_details.html b/azexo_composer/DataTables/examples/server_side/row_details.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/ids-arrays.php b/azexo_composer/DataTables/examples/server_side/scripts/ids-arrays.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/ids-objects.php b/azexo_composer/DataTables/examples/server_side/scripts/ids-objects.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/jsonp.php b/azexo_composer/DataTables/examples/server_side/scripts/jsonp.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/mysql.sql b/azexo_composer/DataTables/examples/server_side/scripts/mysql.sql
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/objects.php b/azexo_composer/DataTables/examples/server_side/scripts/objects.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/post.php b/azexo_composer/DataTables/examples/server_side/scripts/post.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/postgres.sql b/azexo_composer/DataTables/examples/server_side/scripts/postgres.sql
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/server_processing.php b/azexo_composer/DataTables/examples/server_side/scripts/server_processing.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/sqlite.sql b/azexo_composer/DataTables/examples/server_side/scripts/sqlite.sql
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/sqlserver.sql b/azexo_composer/DataTables/examples/server_side/scripts/sqlserver.sql
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/scripts/ssp.class.php b/azexo_composer/DataTables/examples/server_side/scripts/ssp.class.php
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/select_rows.html b/azexo_composer/DataTables/examples/server_side/select_rows.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/server_side/simple.html b/azexo_composer/DataTables/examples/server_side/simple.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/bootstrap.html b/azexo_composer/DataTables/examples/styling/bootstrap.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/cell-border.html b/azexo_composer/DataTables/examples/styling/cell-border.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/display.html b/azexo_composer/DataTables/examples/styling/display.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/foundation.html b/azexo_composer/DataTables/examples/styling/foundation.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/hover.html b/azexo_composer/DataTables/examples/styling/hover.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/index.html b/azexo_composer/DataTables/examples/styling/index.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/jqueryUI.html b/azexo_composer/DataTables/examples/styling/jqueryUI.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/no-classes.html b/azexo_composer/DataTables/examples/styling/no-classes.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/order-column.html b/azexo_composer/DataTables/examples/styling/order-column.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/row-border.html b/azexo_composer/DataTables/examples/styling/row-border.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/examples/styling/stripe.html b/azexo_composer/DataTables/examples/styling/stripe.html
new file mode 100755
index 0000000..e69de29
diff --git a/azexo_composer/DataTables/extensions/AutoFill/Readme.txt b/azexo_composer/DataTables/extensions/AutoFill/Readme.txt
new file mode 100755
index 0000000..017d1d0
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/Readme.txt
@@ -0,0 +1,38 @@
+# AutoFill
+
+AutoFill gives an Excel like option to a DataTable to click and drag over multiple cells, filling in information over the selected cells and incrementing numbers as needed. Key features include:
+
+* Click and drag cell content insertion
+* Automatic incrementing of numeric information
+* Enable and disable on any column
+* Detailed callback functions for customisation
+* Support for both DataTables and browser window scrolling
+
+
+# Installation
+
+To use AutoFill, first download DataTables ( http://datatables.net/download ) and place the unzipped AutoFill package into a `extensions` directory in the DataTables package. This will allow the pages in the examples to operate correctly. To see the examples running, open the `examples` directory in your web-browser.
+
+
+# Basic usage
+
+AutoFill is initialised using the `$.fn.dataTable.AutoFill` constructor. For example:
+
+```js
+$(document).ready( function () {
+ var table = $('#example').dataTable();
+ new $.fn.dataTable.AutoFill( table );
+} );
+```
+
+
+# Documentation / support
+
+* Documentation: http://datatables.net/extensions/autofill/
+* DataTables support forums: http://datatables.net/forums
+
+
+# GitHub
+
+If you fancy getting involved with the development of AutoFill and help make it better, please refer to its GitHub repo: https://github.com/DataTables/AutoFill
+
diff --git a/azexo_composer/DataTables/extensions/AutoFill/css/dataTables.autoFill.css b/azexo_composer/DataTables/extensions/AutoFill/css/dataTables.autoFill.css
new file mode 100755
index 0000000..cab59b3
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/css/dataTables.autoFill.css
@@ -0,0 +1,24 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * AutoFill styles
+ */
+
+div.AutoFill_filler {
+ display: none;
+ position: absolute;
+ height: 14px;
+ width: 14px;
+ background: url(../images/filler.png) no-repeat center center;
+ z-index: 1002;
+}
+
+div.AutoFill_border {
+ display: none;
+ position: absolute;
+ background-color: #0063dc;
+ z-index: 1001;
+
+ box-shadow: 0px 0px 5px #76b4ff;
+ -moz-box-shadow: 0px 0px 5px #76b4ff;
+ -webkit-box-shadow: 0px 0px 5px #76b4ff;
+}
+
diff --git a/azexo_composer/DataTables/extensions/AutoFill/css/dataTables.autoFill.min.css b/azexo_composer/DataTables/extensions/AutoFill/css/dataTables.autoFill.min.css
new file mode 100755
index 0000000..b485f21
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/css/dataTables.autoFill.min.css
@@ -0,0 +1 @@
+div.AutoFill_filler{display:none;position:absolute;height:14px;width:14px;background:url(../images/filler.png) no-repeat center center;z-index:1002}div.AutoFill_border{display:none;position:absolute;background-color:#0063dc;z-index:1001;box-shadow:0px 0px 5px #76b4ff;-moz-box-shadow:0px 0px 5px #76b4ff;-webkit-box-shadow:0px 0px 5px #76b4ff}
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/columns.html b/azexo_composer/DataTables/extensions/AutoFill/examples/columns.html
new file mode 100755
index 0000000..d891b13
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/columns.html
@@ -0,0 +1,644 @@
+
+
+
Columns can be enabled (which they are by default) and disabled from providing the end user with
+ AutoFill abilities by using either columns or columnDefs and the
+ enable option. These two arrays work in exactly the same way as in DataTables.
+
+
This example shows how disabling columns counting from the right hand side of the table can be
+ achieved. In this case, the last three columns.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/complete-callback.html b/azexo_composer/DataTables/extensions/AutoFill/examples/complete-callback.html
new file mode 100755
index 0000000..2076d4f
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/complete-callback.html
@@ -0,0 +1,652 @@
+
+
+
+
+
+
+
+ AutoFill example - Complete callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
AutoFill example Complete callback
+
+
+
AutoFill provides a number of customisable callback functions so you can tailor it's actions to
+ exactly what you need. This example shows the use of the complete callback function which
+ is executed at the end of an auto-fill drag, providing information about the cells that were
+ altered.
+
+
For a complete description of the complete callback, please refer to the AutoFill documentation.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').dataTable();
+
+ new $.fn.dataTable.AutoFill( table, {
+ complete: function ( altered ) {
+ var last = altered[ altered.length-1 ];
+ alert(
+ altered.length+' cells were altered in this auto-fill. The '+
+ 'value of the last cell altered was: '+last.oldValue+' and is '+
+ 'now '+last.newValue
+ );
+ }
+ } );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/fill-both.html b/azexo_composer/DataTables/extensions/AutoFill/examples/fill-both.html
new file mode 100755
index 0000000..f65076e
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/fill-both.html
@@ -0,0 +1,641 @@
+
+
+
+
+
+
+
+ AutoFill example - Horizontal and vertical fill
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
AutoFill example Horizontal and vertical fill
+
+
+
By default AutoFill will allow the fill to operate only on a single column at a time (i.e.
+ vertically). However, it has the ability to provide the fill either horizontally, over both axis or
+ limited to just one axis depending on the direction of the drag. This option is provided by the
+ mode sanitisation option.
+
+
In this case it is set to both (i.e. both horizontal and vertical axis) to provide the
+ filler along a row, rather than a column.
+
+
For the full range of options and syntax for mode please refer to the AutoFill documentation.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/fill-horizontal.html b/azexo_composer/DataTables/extensions/AutoFill/examples/fill-horizontal.html
new file mode 100755
index 0000000..13cadac
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/fill-horizontal.html
@@ -0,0 +1,641 @@
+
+
+
+
+
+
+
+ AutoFill example - Horizontal fill
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
AutoFill example Horizontal fill
+
+
+
By default AutoFill will allow the fill to operate only on a single column at a time (i.e.
+ vertically). However, it has the ability to provide the fill either horizontally, over both axis or
+ limited to just one axis depending on the direction of the drag. This option is provided by the
+ mode sanitisation option.
+
+
In this case it is set to x (i.e. horizontal axis) to provide the filler along a row,
+ rather than a column.
+
+
For the full range of options and syntax for mode please refer to the AutoFill documentation.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/index.html b/azexo_composer/DataTables/extensions/AutoFill/examples/index.html
new file mode 100755
index 0000000..9cade86
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/index.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ AutoFill examples - AutoFill examples
+
+
+
+
+
+
AutoFill example AutoFill examples
+
+
+
AutoFill gives an Excel like option to a DataTable to click and drag over multiple cells, filling in
+ information over the selected cells and incrementing numbers as needed.
+
+
Thanks to Phoniax AS for their sponsorship of this plug-in for
+ DataTables.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/scrolling.html b/azexo_composer/DataTables/extensions/AutoFill/examples/scrolling.html
new file mode 100755
index 0000000..66871ec
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/scrolling.html
@@ -0,0 +1,638 @@
+
+
+
+
+
+
+
+ AutoFill example - Scrolling DataTable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
AutoFill example Scrolling DataTable
+
+
+
When dragging an AutoFill handle, the table (if DataTables scrolling is enabled) or the window will
+ be automatically scrolled, as you approach the edge of the scrolling component. The example below shows
+ the effect with DataTables scrolling (and also window if needed).
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/simple.html b/azexo_composer/DataTables/extensions/AutoFill/examples/simple.html
new file mode 100755
index 0000000..ea3db49
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/simple.html
@@ -0,0 +1,631 @@
+
+
+
+
+
+
+
+ AutoFill example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
AutoFill example Basic initialisation
+
+
+
AutoFill gives an Excel like option to a DataTable to click and drag over multiple cells, filling in
+ information over the selected cells and incrementing numbers as needed.
+
+
AutoFill is initialised using the $.fn.dataTable.AutoFill function as shown in the
+ example below. It requires one parameter, the DataTable instance that AutoFill is to operate on, and
+ optionally a second configuration parameter, which is shown in the other AutoFill examples.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').DataTable();
+ new $.fn.dataTable.AutoFill( table );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/AutoFill/examples/step-callback.html b/azexo_composer/DataTables/extensions/AutoFill/examples/step-callback.html
new file mode 100755
index 0000000..c1255aa
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/AutoFill/examples/step-callback.html
@@ -0,0 +1,660 @@
+
+
+
+
+
+
+
+ AutoFill example - Step callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
AutoFill example Step callback
+
+
+
By default, AutoFill will increment cells that contain numbers by a single digit for each cell that
+ is iterated over (try the Age column below for example). This behaviour can be disabled
+ completely using the increment column option, but it can also be modified to suit your
+ requirements through use of the step column callback function.
+
+
The step callback is executed for each cell in the auto-fill set and gives complete
+ control over how data is incremented. The example below shows the step function being used on the
+ Salary column to increment by 100, rather than 1 for each cell.
+
+
For a complete description of the step callback, please refer to the AutoFill documentation.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').dataTable();
+
+ new $.fn.dataTable.AutoFill( table, {
+ columnDefs: [ {
+ targets: -1,
+ step: function ( cell, read, last, i, x, y ) {
+ var val = parseInt( (last || read).replace(/[$,]/g, ''), 10 );
+ val += (x<0 || y<0 ? -100 : 100); // - if going back up, + if going down
+
+ // Format for the currency column
+ return '$'+val.toString().replace( /\B(?=(\d{3})+(?!\d))/g, ',' );
+ }
+ } ]
+ } );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/col_filter.html b/azexo_composer/DataTables/extensions/ColReorder/examples/col_filter.html
new file mode 100755
index 0000000..cf21f58
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/col_filter.html
@@ -0,0 +1,669 @@
+
+
+
+
+
+
+
+ ColReorder example - Individual column filtering
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Individual column filtering
+
+
+
This example of how to use ColReorder shows how it can with with DataTables' ability to do
+ individual column filtering. The basic example is exactly the same as the DataTables column filtering
+ example, but with ColReorder also added to the table (through the R option for domDT).
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ // Setup - add a text input to each footer cell
+ $('#example tfoot th').each( function () {
+ var title = $('#example thead th').eq( $(this).index() ).text();
+ $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
+ } );
+
+ // DataTable
+ var table = $('#example').DataTable( {
+ dom: 'Rlfrtip'
+ } );
+
+ // Apply the filter
+ $("#example tfoot input").on( 'keyup change', function () {
+ table
+ .column( $(this).parent().index()+':visible' )
+ .search( this.value )
+ .draw();
+ } );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/colvis.html b/azexo_composer/DataTables/extensions/ColReorder/examples/colvis.html
new file mode 100755
index 0000000..158da38
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/colvis.html
@@ -0,0 +1,649 @@
+
+
+
+
+
+
+
+ ColReorder example - ColVis integration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example ColVis integration
+
+
+
ColReorder interfaces with the ColVis extension for
+ DataTables by updating the order of the list of columns whenever a reorder is done. This is shown in
+ the example below, where one column has been initially hidden to add extra emphasis to ColVis.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/fixedcolumns.html b/azexo_composer/DataTables/extensions/ColReorder/examples/fixedcolumns.html
new file mode 100755
index 0000000..055baf8
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/fixedcolumns.html
@@ -0,0 +1,866 @@
+
+
+
+
+
+
+
+ ColReorder example - FixedColumns integration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder provides the fixedColumnsLeft and fixedColumnsRight options
+ which allows you disallow reordering of the fixed columns (which is required).
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').dataTable( {
+ dom: 'Rlfrtip',
+ scrollX: true,
+ scrollCollapse: true,
+ columnDefs: [
+ { sortable: false, targets: 0 },
+ { sortable: false, targets: -1 }
+ ],
+ sorting: [[ 1, 'asc' ]],
+ colReorder: {
+ fixedColumnsLeft: 1,
+ fixedColumnsRight: 1
+ }
+ } );
+
+ // Show an index column at the start and end of the table
+ table.on( 'order.dt search.dt', function () {
+ table
+ .column([0,-1], {search:'applied', order:'applied'})
+ .nodes()
+ .each( function (cell, i) {
+ cell.innerHTML = i+1;
+ } );
+ } ).draw();
+
+ new $.fn.dataTable.fixedColumns( table, {
+ leftColumns: 1,
+ rightColumns: 1
+ } );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/fixedheader.html b/azexo_composer/DataTables/extensions/ColReorder/examples/fixedheader.html
new file mode 100755
index 0000000..fdd3ded
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/fixedheader.html
@@ -0,0 +1,649 @@
+
+
+
+
+
+
+
+ ColReorder example - FixedHeader integration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example FixedHeader integration
+
+
+
FixedHeader is a particularly useful plug-in for DataTables, allowing a table header to float at the
+ top of a scrolling window. ColReorder works well with FixedHeader, allowing you to reorder columns even
+ using the floating header, as shown in the example below.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/index.html b/azexo_composer/DataTables/extensions/ColReorder/examples/index.html
new file mode 100755
index 0000000..35e2852
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/index.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ColReorder examples - ColReorder examples
+
+
+
+
+
+
ColReorder example ColReorder examples
+
+
+
ColReorder adds the ability for the end user to click and drag column headers to reorder a table as
+ they see fit, to DataTables. Key features include:
+
+
+
Very easy integration with DataTables
+
Tight integration with all other DataTables plug-ins
+
The ability to exclude the first (or more) column from being movable
+
Predefine a column order
+
Save staving integration with DataTables
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/jqueryui.html b/azexo_composer/DataTables/extensions/ColReorder/examples/jqueryui.html
new file mode 100755
index 0000000..1951d43
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/jqueryui.html
@@ -0,0 +1,653 @@
+
+
+
+
+
+
+
+ ColReorder example - jQuery UI styling
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example jQuery UI styling
+
+
+
This example shows how the jQuery UI ThemeRoller option in DataTables can be used with
+ ColReorder.
+
+
The important thing to note here is that it is easier to use new
+ $.fn.dataTable.colReorder() to add ColReorder to the table rather than domDT as the jQuery UI integration uses a
+ complex expression for domDT.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').dataTable();
+
+ new $.fn.dataTable.colReorder( table );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/new_init.html b/azexo_composer/DataTables/extensions/ColReorder/examples/new_init.html
new file mode 100755
index 0000000..ff3b89b
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/new_init.html
@@ -0,0 +1,639 @@
+
+
+
+
+
+
+
+ ColReorder example - Initialisation using `new`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Initialisation using `new`
+
+
+
As well as providing the option to be initialised through the R option of domDT, ColReorder can also be added to a
+ DataTable using direct initialisation - new $.fn.dataTable.ColReorder(); as shown in this
+ example.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').DataTable();
+
+ new $.fn.dataTable.ColReorder( table );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/predefined.html b/azexo_composer/DataTables/extensions/ColReorder/examples/predefined.html
new file mode 100755
index 0000000..5bc6af9
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/predefined.html
@@ -0,0 +1,648 @@
+
+
+
+
+
+
+
+ ColReorder example - Predefined column ordering
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Predefined column ordering
+
+
+
ColReorder provides the ability to specify a column ordering which is not that of the HTML (which
+ typically you will want) through the parameter colReorder.order. This is an array of
+ integers with the column ordering you want.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/realtime.html b/azexo_composer/DataTables/extensions/ColReorder/examples/realtime.html
new file mode 100755
index 0000000..e756d09
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/realtime.html
@@ -0,0 +1,649 @@
+
+
+
+
+
+
+
+ ColReorder example - Realtime updating
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Realtime updating
+
+
+
While the ColReorder insertion point indicator can be styled, another option to show the end user
+ what the column will look like when the table has been reordered is to actually do the reordering while
+ the mouse is still dragging the column header. This is shown in this example and is controlled by the
+ realtime parameter.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/reset.html b/azexo_composer/DataTables/extensions/ColReorder/examples/reset.html
new file mode 100755
index 0000000..5f495a0
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/reset.html
@@ -0,0 +1,662 @@
+
+
+
+
+
+
+
+ ColReorder example - Reset ordering API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Reset ordering API
+
+
+
One useful control option to present the end user when using ColReorder is the ability to reset the
+ column ordering to that which was found in the HTML. This can be done by calling the reset
+ API function. While ColReorder does not provide a visual element for this itself (in order to provide
+ maximum flexibility) it is easy to hook to an event handler, as shown in this example.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/scrolling.html b/azexo_composer/DataTables/extensions/ColReorder/examples/scrolling.html
new file mode 100755
index 0000000..4a888df
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/scrolling.html
@@ -0,0 +1,645 @@
+
+
+
+
+
+
+
+ ColReorder example - Scrolling table
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Scrolling table
+
+
+
This is a simple example to show ColReorder working with DataTables scrolling (scrollYDT and scrollXDT).
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/server_side.html b/azexo_composer/DataTables/extensions/ColReorder/examples/server_side.html
new file mode 100755
index 0000000..c876790
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/server_side.html
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+
+ ColReorder example - Server-side processing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Server-side processing
+
+
+
Server-side processing can be exceptionally useful in DataTables when dealing with massive data
+ sets, and ColReorder works with this as would be expected.
+
+
It is recommend that you use object based data with server-side processing and ColReorder, as this
+ provides easily understandable mapping between the the columns and the data relation on the server,
+ otherwise you need to work out array indexes on each call!
+
+
+
+
+
+
Name
+
Position
+
Office
+
Extn.
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Extn.
+
Start date
+
Salary
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/simple.html b/azexo_composer/DataTables/extensions/ColReorder/examples/simple.html
new file mode 100755
index 0000000..8366fdc
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/simple.html
@@ -0,0 +1,644 @@
+
+
+
+
+
+
+
+ ColReorder example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example Basic initialisation
+
+
+
This example shows the basic use case of the ColReorder plug-in. With ColReorder enabled for a
+ table, the user has the ability to click and drag any table header cell, and drop it where they wish
+ the column to be inserted. The insert point is shown visually, and the column reordering is done as
+ soon as the mouse button is released.
+
+
ColReorder is added to a DataTable through the R character that it adds to DataTables
+ feature plug-ins. This means that you simply add the character R to the domDT parameter for your table to add
+ ColReorder - as shown in the example below.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColReorder/examples/state_save.html b/azexo_composer/DataTables/extensions/ColReorder/examples/state_save.html
new file mode 100755
index 0000000..e3ace38
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColReorder/examples/state_save.html
@@ -0,0 +1,643 @@
+
+
+
+
+
+
+
+ ColReorder example - State saving
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColReorder example State saving
+
+
+
A useful interaction pattern to use in DataTables is state saving, so when the end user reloads or
+ revisits a page its previous state is retained. ColReorder works seamlessly with state saving in
+ DataTables (stateSaveDT), remembering and restoring the
+ column positions, as well as everything else such as sorting and filtering.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
The list of columns that ColVis displays has two options for the order in which they are displayed.
+ The default mode of operation is to show the buttons in the same order as they appear in the HTML
+ table, but the second mode of operation is to show the buttons in alphabetical order. This is done by
+ specifying the order option, set to alpha. Alphabetical button ordering is
+ shown in this example.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/exclude_columns.html b/azexo_composer/DataTables/extensions/ColVis/examples/exclude_columns.html
new file mode 100755
index 0000000..7205236
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/exclude_columns.html
@@ -0,0 +1,646 @@
+
+
+
+
+
+
+
+ ColVis example - Exclude columns from list
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Exclude columns from list
+
+
+
It can at times be useful to exclude columns from being in the 'show / hide' list (for example if
+ you have hidden information that the end user shouldn't be able to make visible. This can be done by
+ the exclude ColVis configuration parameter when creating the DataTable. This is simply an
+ array of integers, indicating which columns should be excluded. This example shows the first column
+ being excluded.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/group_columns.html b/azexo_composer/DataTables/extensions/ColVis/examples/group_columns.html
new file mode 100755
index 0000000..16fb7b6
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/group_columns.html
@@ -0,0 +1,670 @@
+
+
+
+
+
+
+
+ ColVis example - Group columns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Group columns
+
+
+
It can be useful at times to show and hide multiple columns together - i.e. grouping them together.
+ Groupings are defined by the groups array. Create a group button by naming it (using the
+ title option) and specifying by index which columns belong to it (using the
+ columns option).
+
+
Note also that this ability to create groups can be used in combination exclude to
+ remove individual columns from the list (should you wish them to only be used in the groups), or set
+ exclude = [ 'all' ] to show only the grouping buttons (i.e. individual column control
+ buttons will not be shown).
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/index.html b/azexo_composer/DataTables/extensions/ColVis/examples/index.html
new file mode 100755
index 0000000..81298cb
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/index.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ColVis examples - ColVis examples
+
+
+
+
+
+
ColVis example ColVis examples
+
+
+
ColVis adds a button to the toolbars around DataTables which gives the end user of the table the
+ ability to dynamically change the visibility of the columns in the table:
+
+
+
Dynamically show and hide columns in a table
+
Very easy integration with DataTables
+
Ability to exclude columns from being either hidden or shown
+
Save saving integration with DataTables
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/jqueryui.html b/azexo_composer/DataTables/extensions/ColVis/examples/jqueryui.html
new file mode 100755
index 0000000..c87fc9c
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/jqueryui.html
@@ -0,0 +1,649 @@
+
+
+
+
+
+
+
+ ColVis example - jQuery UI styling
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example jQuery UI styling
+
+
+
This example shows how the jQuery UI ThemeRoller option in DataTables can be used with ColVis.
+
+
The important thing to note here is that it is easier to use new
+ $.fn.dataTable.colVis() to add ColVis to the table rather than domDT as the jQuery UI integration uses a
+ complex expression for domDT.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').DataTable();
+
+ new $.fn.dataTable.colVis( table );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/mouseover.html b/azexo_composer/DataTables/extensions/ColVis/examples/mouseover.html
new file mode 100755
index 0000000..f072122
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/mouseover.html
@@ -0,0 +1,645 @@
+
+
+
+
+
+
+
+ ColVis example - Mouseover activation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Mouseover activation
+
+
+
The default activation (showing the columns list) for ColVis is for the user to click the button.
+ This can be altered to a mouseover activation by making use of the activate
+ initialisation option and setting it to mouseover. This is
+ shown in the example below.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/new_init.html b/azexo_composer/DataTables/extensions/ColVis/examples/new_init.html
new file mode 100755
index 0000000..7f11b52
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/new_init.html
@@ -0,0 +1,643 @@
+
+
+
+
+
+
+
+ ColVis example - `new` initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example `new` initialisation
+
+
+
As well as providing the option to be initialised through the C option of domDT, ColVis can also be added to a
+ DataTable using direct initialisation - new $.fn.dataTable.ColVis(); as shown in this
+ example. The ColVis control button it available through its button() method, which can
+ then be used to attach to the document where you need.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/restore.html b/azexo_composer/DataTables/extensions/ColVis/examples/restore.html
new file mode 100755
index 0000000..e17d095
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/restore.html
@@ -0,0 +1,652 @@
+
+
+
+
+
+
+
+ ColVis example - Restore / show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Restore / show all
+
+
+
This demo of ColVis shows its ability to add "Restore" and "Show all" buttons to the list of column
+ visibility options. This is done with the restore and showAll options which
+ can be enabled individually if needed.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/simple.html b/azexo_composer/DataTables/extensions/ColVis/examples/simple.html
new file mode 100755
index 0000000..893a6fd
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/simple.html
@@ -0,0 +1,640 @@
+
+
+
+
+
+
+
+ ColVis example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Basic initialisation
+
+
+
ColVis is a plug-in for DataTables which presents a list of all columns to a user and allows them to
+ select which ones they wish to be visible. Click the 'Show / hide columns' button to be presented with
+ a list of columns in the table, and click the buttons to show and hide them as you wish.
+
+
ColVis is added to a DataTable by specifying the C option for domDT. The example below shows the ColVis
+ button added to the table with a clearing element after it.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/text.html b/azexo_composer/DataTables/extensions/ColVis/examples/text.html
new file mode 100755
index 0000000..a08081b
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/text.html
@@ -0,0 +1,643 @@
+
+
+
+
+
+
+
+ ColVis example - Custom button text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Custom button text
+
+
+
You may wish to use your own text in the ColVis button - this is done by making use of the
+ buttonText initialisation option, as shown in this example.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/title_callback.html b/azexo_composer/DataTables/extensions/ColVis/examples/title_callback.html
new file mode 100755
index 0000000..640124c
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/title_callback.html
@@ -0,0 +1,648 @@
+
+
+
+
+
+
+
+ ColVis example - Column button callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Column button callback
+
+
+
By default ColVis will use the information in the th cell
+ for each column as the button name to use in ColVis, which might not always be what you want (for
+ example you might has HTML in the cell that you don't want in the button). The label
+ callback provides the ability to customise the label used for the button.
+
+
In this example the column index is prefixed to the column title.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/two_tables.html b/azexo_composer/DataTables/extensions/ColVis/examples/two_tables.html
new file mode 100755
index 0000000..b9dd905
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/two_tables.html
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+
+ ColVis example - Two tables with individual controls
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Two tables with individual controls
+
+
+
It can be useful to have DataTables initialise more than one table with a single call can for them
+ to each have individual ColVis controllers. All this requires is a suitable jQuery selector to be used,
+ and DataTables and ColVis will take care of the rest - as shown in this example.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
$320,800
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
$433,060
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
$103,600
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
$342,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
$217,500
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
$92,575
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
$324,050
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
$75,650
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
$183,000
+
+
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
$90,560
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
$198,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
$132,000
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
$1,200,000
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
$145,000
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
$136,200
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
$163,500
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
$103,500
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/ColVis/examples/two_tables_identical.html b/azexo_composer/DataTables/extensions/ColVis/examples/two_tables_identical.html
new file mode 100755
index 0000000..ac9a015
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/ColVis/examples/two_tables_identical.html
@@ -0,0 +1,378 @@
+
+
+
+
+
+
+
+ ColVis example - Two tables with shared controls
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ColVis example Two tables with shared controls
+
+
+
This example shows how the DataTables API can be used with ColVis to use a single ColVis control to
+ effect other tables. This is done by applying ColVis to the first table and then listening for the
+ column-visibilityDT event and updating all other tables when
+ triggered.
+
+
This example makes use of the tables()DT and table()DT methods for working with multiple tables, and
+ also initialised ColVis using the new $.fn.dataTable.ColVis(); operator.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
$320,800
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
$433,060
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
$103,600
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
$342,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
$217,500
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
$92,575
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
$324,050
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
$75,650
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
$183,000
+
+
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
$90,560
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
$198,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
$132,000
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
$1,200,000
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
$145,000
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
$136,200
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
$163,500
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
$103,500
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var tables = $('table.display').DataTable( {
+ displayLength: 5
+ } );
+
+ // When the column visibility changes on the firs table, also change it on
+ // the others
+ tables.table(0).on('column-visibility', function ( e, settings, colIdx, visibility ) {
+ tables.tables(':gt(0)').column( colIdx ).visible( visibility );
+ } );
+
+ // Create ColVis on the first table only
+ var colvis = new $.fn.dataTable.ColVis( tables.table(0) );
+ $( colvis.button() ).insertAfter('div.info');
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
'
+ )
+ .click( function (e) {
+ var showHide = !$('input', this).is(":checked");
+ if ( e.target.nodeName.toLowerCase() !== "li" )
+ {
+ showHide = ! showHide;
+ }
+
+ /* Need to consider the case where the initialiser created more than one table - change the
+ * API index that DataTables is using
+ */
+ var oldIndex = $.fn.dataTableExt.iApiIndex;
+ $.fn.dataTableExt.iApiIndex = that._fnDataTablesApiIndex.call(that);
+
+ // Optimisation for server-side processing when scrolling - don't do a full redraw
+ if ( dt.oFeatures.bServerSide )
+ {
+ that.s.dt.oInstance.fnSetColumnVis( i, showHide, false );
+ that.s.dt.oInstance.fnAdjustColumnSizing( false );
+ if (dt.oScroll.sX !== "" || dt.oScroll.sY !== "" )
+ {
+ that.s.dt.oInstance.oApi._fnScrollDraw( that.s.dt );
+ }
+ that._fnDrawCallback();
+ }
+ else
+ {
+ that.s.dt.oInstance.fnSetColumnVis( i, showHide );
+ }
+
+ $.fn.dataTableExt.iApiIndex = oldIndex; /* Restore */
+
+ if ( that.s.fnStateChange !== null )
+ {
+ that.s.fnStateChange.call( that, i, showHide );
+ }
+ } )[0];
+ },
+
+
+ /**
+ * Get the position in the DataTables instance array of the table for this
+ * instance of ColVis
+ * @method _fnDataTablesApiIndex
+ * @returns {int} Index
+ * @private
+ */
+ "_fnDataTablesApiIndex": function ()
+ {
+ for ( var i=0, iLen=this.s.dt.oInstance.length ; i', {
+ 'class': !this.s.dt.bJUI ?
+ "ColVis_collection" :
+ "ColVis_collection ui-buttonset ui-buttonset-multi"
+ } )
+ .css( {
+ 'display': 'none',
+ 'opacity': 0,
+ 'position': ! this.s.bCssPosition ?
+ 'absolute' :
+ ''
+ } )[0];
+ },
+
+
+ /**
+ * An element to be placed on top of the activate button to catch events
+ * @method _fnDomCatcher
+ * @returns {Node} div container for the collection
+ * @private
+ */
+ "_fnDomCatcher": function ()
+ {
+ var
+ that = this,
+ nCatcher = document.createElement('div');
+ nCatcher.className = "ColVis_catcher";
+
+ $(nCatcher).click( function () {
+ that._fnCollectionHide.call( that, null, null );
+ } );
+
+ return nCatcher;
+ },
+
+
+ /**
+ * Create the element used to shade the background, and capture hide events (it is shown and
+ * hidden as needed)
+ * @method _fnDomBackground
+ * @returns {Node} div container for the background
+ * @private
+ */
+ "_fnDomBackground": function ()
+ {
+ var that = this;
+
+ var background = $('')
+ .addClass( 'ColVis_collectionBackground' )
+ .css( 'opacity', 0 )
+ .click( function () {
+ that._fnCollectionHide.call( that, null, null );
+ } );
+
+ /* When considering a mouse over action for the activation, we also consider a mouse out
+ * which is the same as a mouse over the background - without all the messing around of
+ * bubbling events. Use the catcher element to avoid messing around with bubbling
+ */
+ if ( this.s.activate == "mouseover" )
+ {
+ background.mouseover( function () {
+ that.s.overcollection = false;
+ that._fnCollectionHide.call( that, null, null );
+ } );
+ }
+
+ return background[0];
+ },
+
+
+ /**
+ * Show the show / hide list and the background
+ * @method _fnCollectionShow
+ * @returns void
+ * @private
+ */
+ "_fnCollectionShow": function ()
+ {
+ var that = this, i, iLen, iLeft;
+ var oPos = $(this.dom.button).offset();
+ var nHidden = this.dom.collection;
+ var nBackground = this.dom.background;
+ var iDivX = parseInt(oPos.left, 10);
+ var iDivY = parseInt(oPos.top + $(this.dom.button).outerHeight(), 10);
+
+ if ( ! this.s.bCssPosition )
+ {
+ nHidden.style.top = iDivY+"px";
+ nHidden.style.left = iDivX+"px";
+ }
+
+ $(nHidden).css( {
+ 'display': 'block',
+ 'opacity': 0
+ } );
+
+ nBackground.style.bottom ='0px';
+ nBackground.style.right = '0px';
+
+ var oStyle = this.dom.catcher.style;
+ oStyle.height = $(this.dom.button).outerHeight()+"px";
+ oStyle.width = $(this.dom.button).outerWidth()+"px";
+ oStyle.top = oPos.top+"px";
+ oStyle.left = iDivX+"px";
+
+ document.body.appendChild( nBackground );
+ document.body.appendChild( nHidden );
+ document.body.appendChild( this.dom.catcher );
+
+ /* This results in a very small delay for the end user but it allows the animation to be
+ * much smoother. If you don't want the animation, then the setTimeout can be removed
+ */
+ $(nHidden).animate({"opacity": 1}, that.s.iOverlayFade);
+ $(nBackground).animate({"opacity": 0.1}, that.s.iOverlayFade, 'linear', function () {
+ /* In IE6 if you set the checked attribute of a hidden checkbox, then this is not visually
+ * reflected. As such, we need to do it here, once it is visible. Unbelievable.
+ */
+ if ( $.browser && $.browser.msie && $.browser.version == "6.0" )
+ {
+ that._fnDrawCallback();
+ }
+ });
+
+ /* Visual corrections to try and keep the collection visible */
+ if ( !this.s.bCssPosition )
+ {
+ iLeft = ( this.s.sAlign=="left" ) ?
+ iDivX :
+ iDivX - $(nHidden).outerWidth() + $(this.dom.button).outerWidth();
+
+ nHidden.style.left = iLeft+"px";
+
+ var iDivWidth = $(nHidden).outerWidth();
+ var iDivHeight = $(nHidden).outerHeight();
+ var iDocWidth = $(document).width();
+
+ if ( iLeft + iDivWidth > iDocWidth )
+ {
+ nHidden.style.left = (iDocWidth-iDivWidth)+"px";
+ }
+ }
+
+ this.s.hidden = false;
+ },
+
+
+ /**
+ * Hide the show / hide list and the background
+ * @method _fnCollectionHide
+ * @returns void
+ * @private
+ */
+ "_fnCollectionHide": function ( )
+ {
+ var that = this;
+
+ if ( !this.s.hidden && this.dom.collection !== null )
+ {
+ this.s.hidden = true;
+
+ $(this.dom.collection).animate({"opacity": 0}, that.s.iOverlayFade, function (e) {
+ this.style.display = "none";
+ } );
+
+ $(this.dom.background).animate({"opacity": 0}, that.s.iOverlayFade, function (e) {
+ document.body.removeChild( that.dom.background );
+ document.body.removeChild( that.dom.catcher );
+ } );
+ }
+ },
+
+
+ /**
+ * Alter the colspan on any fnOpen rows
+ */
+ "_fnAdjustOpenRows": function ()
+ {
+ var aoOpen = this.s.dt.aoOpenRows;
+ var iVisible = this.s.dt.oApi._fnVisbleColumns( this.s.dt );
+
+ for ( var i=0, iLen=aoOpen.length ; i",{"class":!this.s.dt.bJUI?"ColVis_Button ColVis_MasterButton":"ColVis_Button ColVis_MasterButton ui-button ui-state-default"}).append(""+this.s.buttonText+"").bind("mouseover"==this.s.activate?"mouseover":"click",function(a){a.preventDefault();b._fnCollectionShow()}).appendTo(this.dom.wrapper)[0];this.dom.catcher=this._fnDomCatcher();this.dom.collection=this._fnDomCollection();this.dom.background=
+this._fnDomBackground();this._fnAddGroups();this._fnAddButtons();c=0;for(f=this.s.dt.aoColumns.length;c'+this.s.restore+"").click(function(){for(var b=0,c=a.s.abOriginal.length;b'+this.s.showAll+"").click(function(){for(var b=0,c=a.s.abOriginal.length;b<
+c;b++)-1===a.s.aiExclude.indexOf(b)&&a.s.dt.oInstance.fnSetColumnVis(b,!0,!1);a._fnAdjustOpenRows();a.s.dt.oInstance.fnAdjustColumnSizing(!1);a.s.dt.oInstance.fnDraw(!1)})[0]},_fnDomGroupButton:function(a){var b=this,c=this.s.aoGroups[a];return d('").click(function(a){var g=!d("input",this).is(":checked");"li"!==a.target.nodeName.toLowerCase()&&(g=!g);
+for(a=0;a").click(function(c){var e=!d("input",this).is(":checked");"li"!==c.target.nodeName.toLowerCase()&&(e=!e);c=d.fn.dataTableExt.iApiIndex;d.fn.dataTableExt.iApiIndex=
+b._fnDataTablesApiIndex.call(b);f.oFeatures.bServerSide?(b.s.dt.oInstance.fnSetColumnVis(a,e,!1),b.s.dt.oInstance.fnAdjustColumnSizing(!1),(""!==f.oScroll.sX||""!==f.oScroll.sY)&&b.s.dt.oInstance.oApi._fnScrollDraw(b.s.dt),b._fnDrawCallback()):b.s.dt.oInstance.fnSetColumnVis(a,e);d.fn.dataTableExt.iApiIndex=c;null!==b.s.fnStateChange&&b.s.fnStateChange.call(b,a,e)})[0]},_fnDataTablesApiIndex:function(){for(var a=0,b=this.s.dt.oInstance.length;a",{"class":!this.s.dt.bJUI?"ColVis_collection":"ColVis_collection ui-buttonset ui-buttonset-multi"}).css({display:"none",opacity:0,position:!this.s.bCssPosition?"absolute":""})[0]},_fnDomCatcher:function(){var a=this,b=i.createElement("div");b.className="ColVis_catcher";d(b).click(function(){a._fnCollectionHide.call(a,null,null)});return b},_fnDomBackground:function(){var a=this,b=d("").addClass("ColVis_collectionBackground").css("opacity",
+0).click(function(){a._fnCollectionHide.call(a,null,null)});"mouseover"==this.s.activate&&b.mouseover(function(){a.s.overcollection=!1;a._fnCollectionHide.call(a,null,null)});return b[0]},_fnCollectionShow:function(){var a=this,b;b=d(this.dom.button).offset();var c=this.dom.collection,f=this.dom.background,e=parseInt(b.left,10),h=parseInt(b.top+d(this.dom.button).outerHeight(),10);this.s.bCssPosition||(c.style.top=h+"px",c.style.left=e+"px");d(c).css({display:"block",opacity:0});f.style.bottom="0px";
+f.style.right="0px";h=this.dom.catcher.style;h.height=d(this.dom.button).outerHeight()+"px";h.width=d(this.dom.button).outerWidth()+"px";h.top=b.top+"px";h.left=e+"px";i.body.appendChild(f);i.body.appendChild(c);i.body.appendChild(this.dom.catcher);d(c).animate({opacity:1},a.s.iOverlayFade);d(f).animate({opacity:0.1},a.s.iOverlayFade,"linear",function(){d.browser&&(d.browser.msie&&d.browser.version=="6.0")&&a._fnDrawCallback()});this.s.bCssPosition||(b="left"==this.s.sAlign?e:e-d(c).outerWidth()+
+d(this.dom.button).outerWidth(),c.style.left=b+"px",f=d(c).outerWidth(),d(c).outerHeight(),e=d(i).width(),b+f>e&&(c.style.left=e-f+"px"));this.s.hidden=!1},_fnCollectionHide:function(){var a=this;!this.s.hidden&&null!==this.dom.collection&&(this.s.hidden=!0,d(this.dom.collection).animate({opacity:0},a.s.iOverlayFade,function(){this.style.display="none"}),d(this.dom.background).animate({opacity:0},a.s.iOverlayFade,function(){i.body.removeChild(a.dom.background);i.body.removeChild(a.dom.catcher)}))},
+_fnAdjustOpenRows:function(){for(var a=this.s.dt.aoOpenRows,b=this.s.dt.oApi._fnVisbleColumns(this.s.dt),c=0,d=a.length;c
+
+
+
+
+
+
+ FixedColumns example - Bootstrap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Bootstrap
+
+
+
When displaying a table which scrolls along the x-axis, it can sometimes be useful to the end user
+ for the left most column to be fixed in place, if it shows grouping, index or similar information. This
+ is basically the same idea as 'freeze columns' in Excel. This can be achieved with the FixedColumns
+ plug-in for DataTables, as shown below.
+
+
Note that FixedColumns is suitable only for use with the scrolling features in DataTables. If you want to achieve a similar effect without scrolling
+ enabled, please checkout FixedHeader, also for
+ DataTables.
+
+
FixedColumns is initialised using the constructor new $.fn.dataTable.FixedColumns(); -
+ shown below.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/col_filter.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/col_filter.html
new file mode 100755
index 0000000..78499b0
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/col_filter.html
@@ -0,0 +1,870 @@
+
+
+
+
+
+
+
+ FixedColumns example - Individual column filtering
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Individual column filtering
+
+
+
This example shows FixedColumns being configured with individual column filtering abilities. Note
+ that the event handler for the filtering is applied to the input elements before FixedColumns is initialised, so when FixedColumns clones nodes
+ it also copies the event.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ // Setup - add a text input to each footer cell
+ $('#example tfoot th').each( function () {
+ var title = $('#example thead th').eq( $(this).index() ).text();
+ $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
+ } );
+
+ // DataTable
+ var table = $('#example').DataTable( {
+ scrollY: "300px",
+ scrollX: true,
+ scrollCollapse: true,
+ paging: false
+ } );
+
+ // Apply the filter
+ table.columns().indexes().each( function (idx) {
+ $( 'input', table.column( idx ).footer() ).on( 'keyup change', function () {
+ table
+ .column( idx )
+ .search( this.value )
+ .draw();
+ } );
+ } );
+
+ new $.fn.dataTable.FixedColumns( table );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/colvis.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/colvis.html
new file mode 100755
index 0000000..830642c
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/colvis.html
@@ -0,0 +1,850 @@
+
+
+
+
+
+
+
+ FixedColumns example - ColVis integration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example ColVis integration
+
+
+
FixedColumns operates with DataTables' built-in column visibility options (columns.visibleDT and column().visible()DT), which columns that are hidden
+ not being shown in the fixed columns. This integration also means that FixedColumns works well with
+ ColVis, with columns that are dynamically shown
+ and hidden updated immediately in the fixed columns.
+
+
The example below shows ColVis and FixedColumns working together. Two columns have been fixed on the
+ left hand side of the table to show FixedColumns ability to work effortlessly with column
+ visibility.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/css_size.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/css_size.html
new file mode 100755
index 0000000..a2f21e1
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/css_size.html
@@ -0,0 +1,844 @@
+
+
+
+
+
+
+
+ FixedColumns example - CSS row sizing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example CSS row sizing
+
+
+
Because of the method FixedColumns uses to display the fixed columns, an important consideration is
+ the alignment of the rows due to different heights in the individual rows of the table. There are two
+ different algorithms in FixedColumns which can be used, or you can switch off automatic row sizing all
+ together. This is controlled through the heightMatch parameter. If can take the following
+ values:
+
+
+
none - no automatic row height matching is
+ performed. CSS can be used in this case and is useful when speed is of primary importance.
+
semiauto (default) - the height calculation will be
+ performed once, and the result cached to be used again (fnRecalculateHeight can be
+ used to force recalculation)
+
auto - height matching is performed on every draw
+ (slowest but must accurate)
+
+
+
This example shows row height matching switched off but there is a CSS statement of tr {
+ height: 50px } to force all rows to the same height.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/index.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/index.html
new file mode 100755
index 0000000..0aaef29
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/index.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ FixedColumns examples - FixedColumns examples
+
+
+
+
+
+
FixedColumns example FixedColumns examples
+
+
+
When making use of DataTables' x-axis scrolling feature (scrollXDT), you may wish to fix the left or
+ right most columns in place. This extension for DataTables provides exactly this option (for
+ non-scrolling tables, please use the FixedHeader
+ extension, which can fix headers, footers and columns). Key features include:
+
+
+
Freezes the left most column to the side of the table
+
Option to freeze two or more columns
+
Full integration with DataTables' scrolling options
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/index_column.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/index_column.html
new file mode 100755
index 0000000..c93c7ad
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/index_column.html
@@ -0,0 +1,944 @@
+
+
+
+
+
+
+
+ FixedColumns example - Index column
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Index column
+
+
+
A typical interaction to want to perform with a fixed column, is an index column. A method for how
+ this can be achieved with FixedColumns is shown in this example, building on the index column example for DataTables. Also shown
+ in this example is how the fixed column can be styled with CSS to show it more prominently.
+
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/left_right_columns.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/left_right_columns.html
new file mode 100755
index 0000000..c1c18e2
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/left_right_columns.html
@@ -0,0 +1,829 @@
+
+
+
+
+
+
+
+ FixedColumns example - Left and right fixed columns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Left and right fixed columns
+
+
+
FixedColumns allows columns to be fixed from both the left and right hand sides of the table. Fixing
+ right hand-side columns is done by using the rightColumns initialisation parameter, which
+ works just the same as leftColumns does for the left side of the table. This example shows
+ both the left and right columns being fixed in place.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/right_column.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/right_column.html
new file mode 100755
index 0000000..b12ceb9
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/right_column.html
@@ -0,0 +1,829 @@
+
+
+
+
+
+
+
+ FixedColumns example - Right column only
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Right column only
+
+
+
FixedColumns has the ability to freeze columns on both the left and right hand sides of the table.
+ By default it will fix the first column on the left, but using the initialisation parameters
+ leftColumns and rightColumns you can alter this to fix the columns on the
+ right as well. This example shows a single column fixed in place, in this case the right most
+ column.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/rowspan.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/rowspan.html
new file mode 100755
index 0000000..3d10079
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/rowspan.html
@@ -0,0 +1,670 @@
+
+
+
+
+
+
+
+ FixedColumns example - Complex headers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Complex headers
+
+
+
If you are using multiple rows in the table header, it can be useful to have a rowspanning cell on
+ the column(s) you have fixed in place - equally at other times it can be useful to not and make use of
+ the two or more cells per column. FixedColumns builds on the complex header support in DataTables to
+ make this trivial to use in FixedColumns. Just initialise your FixedColumns instance as you normally
+ would!
+
+
+
+
+
+
Name
+
HR Information
+
Contact
+
+
+
Position
+
Salary
+
Office
+
Extn.
+
E-mail
+
+
+
+
+
+
Name
+
Position
+
Salary
+
Office
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
$320,800
+
Edinburgh
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett Winters
+
Accountant
+
$170,750
+
Tokyo
+
8422
+
g.winters@datatables.net
+
+
+
Ashton Cox
+
Junior Technical Author
+
$86,000
+
San Francisco
+
1562
+
a.cox@datatables.net
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
$433,060
+
Edinburgh
+
6224
+
c.kelly@datatables.net
+
+
+
Airi Satou
+
Accountant
+
$162,700
+
Tokyo
+
5407
+
a.satou@datatables.net
+
+
+
Brielle Williamson
+
Integration Specialist
+
$372,000
+
New York
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod Chandler
+
Sales Assistant
+
$137,500
+
San Francisco
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona Davidson
+
Integration Specialist
+
$327,900
+
Tokyo
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen Hurst
+
Javascript Developer
+
$205,500
+
San Francisco
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya Frost
+
Software Engineer
+
$103,600
+
Edinburgh
+
1667
+
s.frost@datatables.net
+
+
+
Jena Gaines
+
Office Manager
+
$90,560
+
London
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn Flynn
+
Support Lead
+
$342,000
+
Edinburgh
+
9497
+
q.flynn@datatables.net
+
+
+
Charde Marshall
+
Regional Director
+
$470,600
+
San Francisco
+
6741
+
c.marshall@datatables.net
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
$313,500
+
London
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
$385,750
+
London
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael Silva
+
Marketing Designer
+
$198,500
+
London
+
1581
+
m.silva@datatables.net
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
$725,000
+
New York
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria Little
+
Systems Administrator
+
$237,500
+
New York
+
1721
+
g.little@datatables.net
+
+
+
Bradley Greer
+
Software Engineer
+
$132,000
+
London
+
2558
+
b.greer@datatables.net
+
+
+
Dai Rios
+
Personnel Lead
+
$217,500
+
Edinburgh
+
2290
+
d.rios@datatables.net
+
+
+
Jenette Caldwell
+
Development Lead
+
$345,000
+
New York
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
$675,000
+
New York
+
6154
+
y.berry@datatables.net
+
+
+
Caesar Vance
+
Pre-Sales Support
+
$106,450
+
New York
+
8330
+
c.vance@datatables.net
+
+
+
Doris Wilder
+
Sales Assistant
+
$85,600
+
Sidney
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
$1,200,000
+
London
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin Joyce
+
Developer
+
$92,575
+
Edinburgh
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer Chang
+
Regional Director
+
$357,650
+
Singapore
+
9239
+
j.chang@datatables.net
+
+
+
Brenden Wagner
+
Software Engineer
+
$206,850
+
San Francisco
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
$850,000
+
San Francisco
+
2947
+
f.green@datatables.net
+
+
+
Shou Itou
+
Regional Marketing
+
$163,000
+
Tokyo
+
8899
+
s.itou@datatables.net
+
+
+
Michelle House
+
Integration Specialist
+
$95,400
+
Sidney
+
2769
+
m.house@datatables.net
+
+
+
Suki Burks
+
Developer
+
$114,500
+
London
+
6832
+
s.burks@datatables.net
+
+
+
Prescott Bartlett
+
Technical Author
+
$145,000
+
London
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin Cortez
+
Team Leader
+
$235,500
+
San Francisco
+
2860
+
g.cortez@datatables.net
+
+
+
Martena Mccray
+
Post-Sales support
+
$324,050
+
Edinburgh
+
8240
+
m.mccray@datatables.net
+
+
+
Unity Butler
+
Marketing Designer
+
$85,675
+
San Francisco
+
5384
+
u.butler@datatables.net
+
+
+
Howard Hatfield
+
Office Manager
+
$164,500
+
San Francisco
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope Fuentes
+
Secretary
+
$109,850
+
San Francisco
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian Harrell
+
Financial Controller
+
$452,500
+
San Francisco
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy Mooney
+
Office Manager
+
$136,200
+
London
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson Bradshaw
+
Director
+
$645,750
+
New York
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia Liang
+
Support Engineer
+
$234,500
+
Singapore
+
2120
+
o.liang@datatables.net
+
+
+
Bruno Nash
+
Software Engineer
+
$163,500
+
London
+
6222
+
b.nash@datatables.net
+
+
+
Sakura Yamamoto
+
Support Engineer
+
$139,575
+
Tokyo
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor Walton
+
Developer
+
$98,540
+
New York
+
8327
+
t.walton@datatables.net
+
+
+
Finn Camacho
+
Support Engineer
+
$87,500
+
San Francisco
+
2927
+
f.camacho@datatables.net
+
+
+
Serge Baldwin
+
Data Coordinator
+
$138,575
+
Singapore
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida Frank
+
Software Engineer
+
$125,250
+
New York
+
7439
+
z.frank@datatables.net
+
+
+
Zorita Serrano
+
Software Engineer
+
$115,000
+
San Francisco
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
$75,650
+
Edinburgh
+
3431
+
j.acosta@datatables.net
+
+
+
Cara Stevens
+
Sales Assistant
+
$145,600
+
New York
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione Butler
+
Regional Director
+
$356,250
+
London
+
1016
+
h.butler@datatables.net
+
+
+
Lael Greer
+
Systems Administrator
+
$103,500
+
London
+
6733
+
l.greer@datatables.net
+
+
+
Jonas Alexander
+
Developer
+
$86,500
+
San Francisco
+
8196
+
j.alexander@datatables.net
+
+
+
Shad Decker
+
Regional Director
+
$183,000
+
Edinburgh
+
6373
+
s.decker@datatables.net
+
+
+
Michael Bruce
+
Javascript Developer
+
$183,000
+
Singapore
+
5384
+
m.bruce@datatables.net
+
+
+
Donna Snider
+
Customer Support
+
$112,000
+
New York
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/server-side-processing.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/server-side-processing.html
new file mode 100755
index 0000000..dc405e0
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/server-side-processing.html
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+ FixedColumns example - Server-side processing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Server-side processing
+
+
+
This example shows how FixedColumns can be used with server-side processing in DataTables to cope
+ with very large tables. No special considerations are required, just initialise FixedColumns as you
+ normally would!
+
+
Note that the table width is constrained in this example to allow scrolling to occur as the
+ server-side processing data set has a limited number of columns in this demo!
+
+
+
+
+
+
Name
+
Position
+
Office
+
Extn.
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Extn.
+
Start date
+
Salary
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
/* Ensure that the demo table scrolls */
+ th, td { white-space: nowrap; }
+ div.dataTables_wrapper {
+ width: 600px;
+ margin: 0 auto;
+ }
+
+ /* Lots of padding for the cells as SSP has limited data in the demo */
+ th,
+ td {
+ padding-left: 40px !important;
+ padding-right: 40px !important;
+ }
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/simple.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/simple.html
new file mode 100755
index 0000000..f82969d
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/simple.html
@@ -0,0 +1,828 @@
+
+
+
+
+
+
+
+ FixedColumns example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Basic initialisation
+
+
+
When displaying a table which scrolls along the x-axis, it can sometimes be useful to the end user
+ for the left most column to be fixed in place, if it shows grouping, index or similar information. This
+ is basically the same idea as 'freeze columns' in Excel. This can be achieved with the FixedColumns
+ plug-in for DataTables, as shown below.
+
+
Note that FixedColumns is suitable only for use with the scrolling features in DataTables. If you want to achieve a similar effect without scrolling
+ enabled, please checkout FixedHeader, also for
+ DataTables.
+
+
FixedColumns is initialised using the constructor new $.fn.dataTable.FixedColumns(); -
+ shown below.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/size_fixed.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/size_fixed.html
new file mode 100755
index 0000000..8aa18d9
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/size_fixed.html
@@ -0,0 +1,837 @@
+
+
+
+
+
+
+
+ FixedColumns example - Assigned column width
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Assigned column width
+
+
+
The columns that are fixed in place by FixedColumns take their width from the parent DataTable. As
+ such, the width of the column can be controlled using the columns.widthDT option.
+
+
This example shows the first column being set to width: 200px (note that this is not
+ pixel perfect in a table, the browser will make some adjustments!), a width that is reflected in the
+ fixed column. Resize the browser window horizontally and you will be able to see that the fixed column
+ retains its width while the scrolling viewport and the table resize.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/size_fluid.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/size_fluid.html
new file mode 100755
index 0000000..b2ed045
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/size_fluid.html
@@ -0,0 +1,838 @@
+
+
+
+
+
+
+
+ FixedColumns example - Fluid column width
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Fluid column width
+
+
+
The columns that are fixed in place by FixedColumns take their width from the parent DataTable. As
+ such, the width of the column can be controlled using the columns.widthDT option.
+
+
This example shows the first column being set to width: 20% (note that this is not
+ pixel perfect in a table, the browser will make some adjustments!), a width that is reflected in the
+ fixed column. Resize the browser window horizontally and you will be able to see that the fixed column
+ retains its proportional width (again with a small margin dictated by the browser) in the resizing
+ table.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedColumns/examples/two_columns.html b/azexo_composer/DataTables/extensions/FixedColumns/examples/two_columns.html
new file mode 100755
index 0000000..62a85fa
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedColumns/examples/two_columns.html
@@ -0,0 +1,822 @@
+
+
+
+
+
+
+
+ FixedColumns example - Multiple fixed columns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedColumns example Multiple fixed columns
+
+
+
FixedColumns allows more than one column to be frozen into place using the leftColumns
+ parameter. The example below shows two columns fixed.
+
+
+
+
+
+
First name
+
Last name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
Extn.
+
E-mail
+
+
+
+
+
+
Tiger
+
Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
5421
+
t.nixon@datatables.net
+
+
+
Garrett
+
Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
8422
+
g.winters@datatables.net
+
+
+
Ashton
+
Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
1562
+
a.cox@datatables.net
+
+
+
Cedric
+
Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
6224
+
c.kelly@datatables.net
+
+
+
Airi
+
Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
5407
+
a.satou@datatables.net
+
+
+
Brielle
+
Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
4804
+
b.williamson@datatables.net
+
+
+
Herrod
+
Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
9608
+
h.chandler@datatables.net
+
+
+
Rhona
+
Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
6200
+
r.davidson@datatables.net
+
+
+
Colleen
+
Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
2360
+
c.hurst@datatables.net
+
+
+
Sonya
+
Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
1667
+
s.frost@datatables.net
+
+
+
Jena
+
Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
3814
+
j.gaines@datatables.net
+
+
+
Quinn
+
Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
9497
+
q.flynn@datatables.net
+
+
+
Charde
+
Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
6741
+
c.marshall@datatables.net
+
+
+
Haley
+
Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
3597
+
h.kennedy@datatables.net
+
+
+
Tatyana
+
Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
1965
+
t.fitzpatrick@datatables.net
+
+
+
Michael
+
Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
1581
+
m.silva@datatables.net
+
+
+
Paul
+
Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
3059
+
p.byrd@datatables.net
+
+
+
Gloria
+
Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
1721
+
g.little@datatables.net
+
+
+
Bradley
+
Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
2558
+
b.greer@datatables.net
+
+
+
Dai
+
Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
2290
+
d.rios@datatables.net
+
+
+
Jenette
+
Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
1937
+
j.caldwell@datatables.net
+
+
+
Yuri
+
Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
6154
+
y.berry@datatables.net
+
+
+
Caesar
+
Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
8330
+
c.vance@datatables.net
+
+
+
Doris
+
Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
3023
+
d.wilder@datatables.net
+
+
+
Angelica
+
Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
5797
+
a.ramos@datatables.net
+
+
+
Gavin
+
Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
8822
+
g.joyce@datatables.net
+
+
+
Jennifer
+
Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
9239
+
j.chang@datatables.net
+
+
+
Brenden
+
Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
1314
+
b.wagner@datatables.net
+
+
+
Fiona
+
Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
2947
+
f.green@datatables.net
+
+
+
Shou
+
Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
8899
+
s.itou@datatables.net
+
+
+
Michelle
+
House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
2769
+
m.house@datatables.net
+
+
+
Suki
+
Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
6832
+
s.burks@datatables.net
+
+
+
Prescott
+
Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
3606
+
p.bartlett@datatables.net
+
+
+
Gavin
+
Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
2860
+
g.cortez@datatables.net
+
+
+
Martena
+
Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
8240
+
m.mccray@datatables.net
+
+
+
Unity
+
Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
5384
+
u.butler@datatables.net
+
+
+
Howard
+
Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
7031
+
h.hatfield@datatables.net
+
+
+
Hope
+
Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
6318
+
h.fuentes@datatables.net
+
+
+
Vivian
+
Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
9422
+
v.harrell@datatables.net
+
+
+
Timothy
+
Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
7580
+
t.mooney@datatables.net
+
+
+
Jackson
+
Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
1042
+
j.bradshaw@datatables.net
+
+
+
Olivia
+
Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
2120
+
o.liang@datatables.net
+
+
+
Bruno
+
Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
6222
+
b.nash@datatables.net
+
+
+
Sakura
+
Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
9383
+
s.yamamoto@datatables.net
+
+
+
Thor
+
Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
8327
+
t.walton@datatables.net
+
+
+
Finn
+
Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
2927
+
f.camacho@datatables.net
+
+
+
Serge
+
Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
8352
+
s.baldwin@datatables.net
+
+
+
Zenaida
+
Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
7439
+
z.frank@datatables.net
+
+
+
Zorita
+
Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
4389
+
z.serrano@datatables.net
+
+
+
Jennifer
+
Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
3431
+
j.acosta@datatables.net
+
+
+
Cara
+
Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
3990
+
c.stevens@datatables.net
+
+
+
Hermione
+
Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
1016
+
h.butler@datatables.net
+
+
+
Lael
+
Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
6733
+
l.greer@datatables.net
+
+
+
Jonas
+
Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
8196
+
j.alexander@datatables.net
+
+
+
Shad
+
Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
6373
+
s.decker@datatables.net
+
+
+
Michael
+
Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
5384
+
m.bruce@datatables.net
+
+
+
Donna
+
Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
4226
+
d.snider@datatables.net
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedHeader/examples/index.html b/azexo_composer/DataTables/extensions/FixedHeader/examples/index.html
new file mode 100755
index 0000000..2198d78
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedHeader/examples/index.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ FixedHeader examples - FixedHeader examples
+
+
+
+
+
+
FixedHeader example FixedHeader examples
+
+
+
At times it can be useful to ensure that column titles will remain always visible on a table, even
+ when a user scrolls down a table. The FixedHeader plug-in for DataTables will float the thead element above the table at all times to help address this issue.
+ The column titles also remain click-able to perform sorting. Key features include:
+
+
+
Fix the header to the top of the window
+
Ability to fix the footer and left / right columns as well
+
z-Index ordering options
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedHeader/examples/simple.html b/azexo_composer/DataTables/extensions/FixedHeader/examples/simple.html
new file mode 100755
index 0000000..1ad6efa
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedHeader/examples/simple.html
@@ -0,0 +1,637 @@
+
+
+
+
+
+
+
+ FixedHeader example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedHeader example Basic initialisation
+
+
+
When displaying large amounts of data in a table, it can often be useful for the end user to have
+ the column titles (the thead element as a whole in fact)
+ always visible. This is particularly true if using DataTables with pagination disabled, or the display
+ length is set to a high value.
+
+
The FixedHeader extension for DataTables will ensure that your column titles will scroll with the
+ page, showing at the top of the table at all times. Try the demo shown below - you might want to try
+ resizing the window for full effect! Note also that the column titles remain clickable to perform
+ sorting on the table.
+
+
FixedHeader is initialised using the constructor new $.fn.dataTable.FixedHeader(); -
+ shown below.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').DataTable();
+
+ new $.fn.dataTable.FixedHeader( table );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedHeader/examples/top_left_right.html b/azexo_composer/DataTables/extensions/FixedHeader/examples/top_left_right.html
new file mode 100755
index 0000000..f15faeb
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedHeader/examples/top_left_right.html
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+ FixedHeader example - Header, left and right all fixed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedHeader example Header, left and right all fixed
+
+
+
FixedHeader provides the ability to fix in place the header, footer, left and right columns of the
+ table. These are controlled by the options:
+
+
+
top - default true
+
bottom - default false
+
left - default false
+
right - default false
+
+
+
This example shows top, left and right enabled with index columns on the left and right.
+
+
Note that in such a situation as this, the FixedColumns extension might be more useful,
+ particularly if you want to use the scrolling options built into DataTables.
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedHeader/examples/two_tables.html b/azexo_composer/DataTables/extensions/FixedHeader/examples/two_tables.html
new file mode 100755
index 0000000..1fbb3df
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedHeader/examples/two_tables.html
@@ -0,0 +1,354 @@
+
+
+
+
+
+
+
+ FixedHeader example - Multiple tables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedHeader example Multiple tables
+
+
+
The following example shows two DataTables enhanced tables both with FixedHeader enabled on them.
+ This is done simply by initialising FixedHeader on each table. This example also shows the footer being
+ fixed in place for the two tables.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
$320,800
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
$433,060
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
$103,600
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
$342,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
$217,500
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
$92,575
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
$324,050
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
$75,650
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
$183,000
+
+
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
$90,560
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
$198,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
$132,000
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
$1,200,000
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
$145,000
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
$136,200
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
$163,500
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
$103,500
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var t1 = $('table.display').eq(0).DataTable();
+ new $.fn.dataTable.FixedHeader( t1, {
+ bottom: true
+ } );
+
+ var t2 = $('table.display').eq(1).DataTable();
+ new $.fn.dataTable.FixedHeader( t2, {
+ bottom: true
+ } );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/FixedHeader/examples/zIndexes.html b/azexo_composer/DataTables/extensions/FixedHeader/examples/zIndexes.html
new file mode 100755
index 0000000..a3292c4
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/FixedHeader/examples/zIndexes.html
@@ -0,0 +1,653 @@
+
+
+
+
+
+
+
+ FixedHeader example - z-index order control
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FixedHeader example z-index order control
+
+
+
When you have two or more columns fixed on a table, there might be occasions when you which to have
+ one column floating on top of another. This example shows how you can do that with the initialisation
+ parameters zTop, zBottom, zLeft and zRight. In this
+ example the left column is set to float on top of the header. The difference is subtle, but can be
+ effective.
+
+
The default zIndexes are:
+
+
+
zTop: 104
+
zBottom: 103
+
zLeft: 102
+
zRight: 101
+
+
+
This example shows the left column being floated on top of the header.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
div.dataTables_wrapper {
+ width: 1500px;
+ }
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/KeyTable/examples/events.html b/azexo_composer/DataTables/extensions/KeyTable/examples/events.html
new file mode 100755
index 0000000..2d090de
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/KeyTable/examples/events.html
@@ -0,0 +1,757 @@
+
+
+
+
+
+
+
+ KeyTable example - Events
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
KeyTable example Events
+
+
+
KeyTable provides the ability to listen for events such as focus, blur,
+ esc (the escape key) and 'return' (the return key) can be assigned event handling
+ functions through KeyTable's the API. This gives you the ability to take an action on a cell.
+
+
The example shown below has a few cells (selected at random, but near the top) with blur and focus
+ events assigned to them. You can also see the navigation around the table using arrow keys.
+
+
+
+ Event information:
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/KeyTable/examples/html.html b/azexo_composer/DataTables/extensions/KeyTable/examples/html.html
new file mode 100755
index 0000000..3106ae5
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/KeyTable/examples/html.html
@@ -0,0 +1,628 @@
+
+
+
+
+
+
+
+ KeyTable example - Plain HTML table
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
KeyTable example Plain HTML table
+
+
+
As well as being usable with DataTables, KeyTable can also be used with a plain HTML table. Please
+ note that this ability is deprecated and will be removed in KeyTable 1.3.
+
+
This example shows KeyTable being initialised without any parameter, which instructs it to search
+ for any table with the class KeyTable which will be used.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/KeyTable/examples/index.html b/azexo_composer/DataTables/extensions/KeyTable/examples/index.html
new file mode 100755
index 0000000..83ef995
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/KeyTable/examples/index.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ KeyTable examples - KeyTable examples
+
+
+
+
+
+
KeyTable example KeyTable examples
+
+
+
KeyTable provides enhanced accessibility and navigation options for DataTables enhanced tables, by
+ allowing Excel like cell navigation on any table. Events (focus, blur, action etc) can be assigned to
+ individual cells, columns, rows or all cells to allow advanced interaction options.. Key features
+ include:
+
+
+
Easy to use spreadsheet like interaction
+
Fully integrated with DataTables
+
Wide range of supported events
+
Works without DataTables if you just want a plain table
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/KeyTable/examples/scrolling.html b/azexo_composer/DataTables/extensions/KeyTable/examples/scrolling.html
new file mode 100755
index 0000000..a2627f3
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/KeyTable/examples/scrolling.html
@@ -0,0 +1,638 @@
+
+
+
+
+
+
+
+ KeyTable example - Scrolling table
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
KeyTable example Scrolling table
+
+
+
KeyTable supports DataTables' scrolling options (scrollXDT and scrollYDT) without required any additional
+ configuration. As the navigation keys are used to alter the focus of the KeyTable, the DataTables
+ scrolling position is altered to show the focused cell.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/KeyTable/examples/simple.html b/azexo_composer/DataTables/extensions/KeyTable/examples/simple.html
new file mode 100755
index 0000000..d7ab6ff
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/KeyTable/examples/simple.html
@@ -0,0 +1,632 @@
+
+
+
+
+
+
+
+ KeyTable example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
KeyTable example Basic initialisation
+
+
+
KeyTable allows you to use keyboard navigation on a DataTables enhanced table, like an Excel
+ spreadsheet. The focused cell is shown through the CSS class ('focus') which in the case below is
+ simply a blue border. Use your keyboard's arrow keys and click the cells in the table to navigate.
+
+
This example simply shows key table being initialised on a DataTable, but events can be listened for through the KeyTable API which provide interaction
+ options.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').DataTable();
+
+ new $.fn.dataTable.KeyTable( table );
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
This example shows a trivial use of the API methods that Scroller adds to the DataTables API to
+ scroll to a row once the table's data has been loaded. In this case scroller.scrollToRow()
+ is used to jump to row 1000.
+
+
+
+
+
+
ID
+
First name
+
Last name
+
ZIP / Post code
+
Country
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
Scroller is a virtual rendering plug-in for DataTables which allows large datasets to be drawn on
+ screen every quickly. What the virtual rendering means is that only the visible portion of the table
+ (and a bit to either side to make the scrolling smooth) is drawn, while the scrolling container gives
+ the visual impression that the whole table is visible. This is done by making use of the pagination
+ abilities of DataTables and moving the table around in the scrolling container DataTables adds to the
+ page. The scrolling container is forced to the height it would be for the full table display using an
+ extra element.
+
+
Scroller is initialised by simply including the letter S in the domDT for the table you want to have this
+ feature enabled on. Note that the S must come after the t parameter in
+ domDT.
+
+
Key features include:
+
+
+
Speed! The aim of Scroller for DataTables is to make rendering large data sets fast
+
Full compatibility with DataTables' deferred rendering for maximum speed
+
Integration with state saving in DataTables (scrolling position is saved)
+
Easy to use
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/Scroller/examples/large_js_source.html b/azexo_composer/DataTables/extensions/Scroller/examples/large_js_source.html
new file mode 100755
index 0000000..9d39ffa
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/Scroller/examples/large_js_source.html
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+ Scroller example - Client-side data source (50,000 rows)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Scroller example Client-side data source (50,000 rows)
+
+
+
This example is completely artificial in that the data generated is created on the client-side by
+ just looping around a Javascript array and then passing that to DataTables. However, it does show quite
+ nicely that DataTables and Scroller can cope with large amounts of data on the client-side quite
+ nicely. Typically data such as this would be Ajax sourced and server-side processing should be
+ considered.
+
+
Please be aware that the performance of this page will depend on your browser as the array of data
+ is generated - for example IE6 will crawl!
+
+
+
+
+
+
ID
+
First name
+
Last name
+
ZIP / Post code
+
Country
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var data = [];
+ for ( var i=0 ; i<50000 ; i++ ) {
+ data.push( [ i, i, i, i, i ] );
+ }
+
+ var oTable = $('#example').dataTable( {
+ data: data,
+ deferRender: true,
+ dom: "frtiS",
+ scrollY: 200,
+ scrollCollapse: true
+ } );
+ } );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/Scroller/examples/server-side_processing.html b/azexo_composer/DataTables/extensions/Scroller/examples/server-side_processing.html
new file mode 100755
index 0000000..6208213
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/Scroller/examples/server-side_processing.html
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+ Scroller example - Server-side processing (5,000,000 rows)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Scroller example Server-side processing (5,000,000 rows)
+
+
+
DataTables' server-side processing mode is a feature that naturally fits in with Scroller perfectly.
+ Server-side processing can be used to show large data sets, with the server being used to do the data
+ processing, and Scroller optimising the display of the data in a scrolling viewport.
+
+
When using server-side processing, Scroller will wait a small amount of time to allow the scrolling
+ to finish before requesting more data from the server (200mS by default). This prevents you from DoSing
+ your own server!
+
+
This example shows Scroller using server-side processing mode and 5 million rows.
+ Important This particular example uses ajaxDT as a function to 'fake' the data to
+ show Scroller's ability to show large data sets. It does not have a real database behind it! You would
+ normally not use ajaxDT as a function to generate data, but
+ rather as a url for where to fetch the real data!
+
+
In this example we also enable the loadingIndicator option of Scroller to show the end
+ user what is happening when they scroll passed the currently loaded data.
+
+
+
+
+
+
ID
+
First name
+
Last name
+
ZIP / Post code
+
Country
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/Scroller/examples/simple.html b/azexo_composer/DataTables/extensions/Scroller/examples/simple.html
new file mode 100755
index 0000000..6d54a6c
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/Scroller/examples/simple.html
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+ Scroller example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Scroller example Basic initialisation
+
+
+
Scroller is a plug-in for DataTables which enhances DataTables' built-in scrolling features to allow
+ large amounts of data to be rendered on page very quickly. This is done by Scroller through the use of
+ a virtual rendering technique that will render only the part of the table that is actually required for
+ the current view.
+
+
Note that Scroller assumes that all rows are of the same height (in order to preform the required
+ calculations. You can use td { white-space: nowrap; } in your CSS to ensure that text in
+ rows does not wrap.
+
+
This example shows how Scroller for DataTables can be initialised by simply including the character
+ S in sDom (note that the S must come after the t in sDom).
+ Deferred rendering an and Ajax data source are also used in this example.
+
+
+
+
+
+
ID
+
First name
+
Last name
+
ZIP / Post code
+
Country
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/Scroller/examples/state_saving.html b/azexo_composer/DataTables/extensions/Scroller/examples/state_saving.html
new file mode 100755
index 0000000..3dc8c3d
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/Scroller/examples/state_saving.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+ Scroller example - State saving
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Scroller example State saving
+
+
+
Scroller will automatically integrate with DataTables in order to save the scrolling position of the
+ table, if state saving is enabled in the DataTable (stateSaveDT). This example shows that in
+ practice - to demonstrate, scroll the table and then reload the page.
+
+
+
+
+
+
ID
+
First name
+
Last name
+
ZIP / Post code
+
Country
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/Scroller/images/loading-background.png b/azexo_composer/DataTables/extensions/Scroller/images/loading-background.png
new file mode 100755
index 0000000..2d81507
Binary files /dev/null and b/azexo_composer/DataTables/extensions/Scroller/images/loading-background.png differ
diff --git a/azexo_composer/DataTables/extensions/Scroller/js/dataTables.scroller.js b/azexo_composer/DataTables/extensions/Scroller/js/dataTables.scroller.js
new file mode 100755
index 0000000..9399fb8
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/Scroller/js/dataTables.scroller.js
@@ -0,0 +1,1185 @@
+/*! Scroller 1.2.1
+ * 2011-2014 SpryMedia Ltd - datatables.net/license
+ */
+
+/**
+ * @summary Scroller
+ * @description Virtual rendering for DataTables
+ * @version 1.2.1
+ * @file dataTables.scroller.js
+ * @author SpryMedia Ltd (www.sprymedia.co.uk)
+ * @contact www.sprymedia.co.uk/contact
+ * @copyright Copyright 2011-2014 SpryMedia Ltd.
+ *
+ * This source file is free software, available under the following license:
+ * MIT license - http://datatables.net/license/mit
+ *
+ * This source file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
+ *
+ * For details please refer to: http://www.datatables.net
+ */
+
+(function(window, document, undefined){
+
+
+var factory = function( $, DataTable ) {
+"use strict";
+
+/**
+ * Scroller is a virtual rendering plug-in for DataTables which allows large
+ * datasets to be drawn on screen every quickly. What the virtual rendering means
+ * is that only the visible portion of the table (and a bit to either side to make
+ * the scrolling smooth) is drawn, while the scrolling container gives the
+ * visual impression that the whole table is visible. This is done by making use
+ * of the pagination abilities of DataTables and moving the table around in the
+ * scrolling container DataTables adds to the page. The scrolling container is
+ * forced to the height it would be for the full table display using an extra
+ * element.
+ *
+ * Note that rows in the table MUST all be the same height. Information in a cell
+ * which expands on to multiple lines will cause some odd behaviour in the scrolling.
+ *
+ * Scroller is initialised by simply including the letter 'S' in the sDom for the
+ * table you want to have this feature enabled on. Note that the 'S' must come
+ * AFTER the 't' parameter in `dom`.
+ *
+ * Key features include:
+ *
+ *
Speed! The aim of Scroller for DataTables is to make rendering large data sets fast
+ *
Full compatibility with deferred rendering in DataTables 1.9 for maximum speed
+ *
Display millions of rows
+ *
Integration with state saving in DataTables (scrolling position is saved)
+ *
Easy to use
+ *
+ *
+ * @class
+ * @constructor
+ * @global
+ * @param {object} oDT DataTables settings object
+ * @param {object} [oOpts={}] Configuration object for FixedColumns. Options
+ * are defined by {@link Scroller.defaults}
+ *
+ * @requires jQuery 1.7+
+ * @requires DataTables 1.9.0+
+ *
+ * @example
+ * $(document).ready(function() {
+ * $('#example').dataTable( {
+ * "sScrollY": "200px",
+ * "sAjaxSource": "media/dataset/large.txt",
+ * "sDom": "frtiS",
+ * "bDeferRender": true
+ * } );
+ * } );
+ */
+var Scroller = function ( oDTSettings, oOpts ) {
+ /* Sanity check - you just know it will happen */
+ if ( ! this instanceof Scroller )
+ {
+ alert( "Scroller warning: Scroller must be initialised with the 'new' keyword." );
+ return;
+ }
+
+ if ( typeof oOpts == 'undefined' )
+ {
+ oOpts = {};
+ }
+
+ /**
+ * Settings object which contains customisable information for the Scroller instance
+ * @namespace
+ * @private
+ * @extends Scroller.defaults
+ */
+ this.s = {
+ /**
+ * DataTables settings object
+ * @type object
+ * @default Passed in as first parameter to constructor
+ */
+ "dt": oDTSettings,
+
+ /**
+ * Pixel location of the top of the drawn table in the viewport
+ * @type int
+ * @default 0
+ */
+ "tableTop": 0,
+
+ /**
+ * Pixel location of the bottom of the drawn table in the viewport
+ * @type int
+ * @default 0
+ */
+ "tableBottom": 0,
+
+ /**
+ * Pixel location of the boundary for when the next data set should be loaded and drawn
+ * when scrolling up the way.
+ * @type int
+ * @default 0
+ * @private
+ */
+ "redrawTop": 0,
+
+ /**
+ * Pixel location of the boundary for when the next data set should be loaded and drawn
+ * when scrolling down the way. Note that this is actually caluated as the offset from
+ * the top.
+ * @type int
+ * @default 0
+ * @private
+ */
+ "redrawBottom": 0,
+
+ /**
+ * Auto row height or not indicator
+ * @type bool
+ * @default 0
+ */
+ "autoHeight": true,
+
+ /**
+ * Number of rows calculated as visible in the visible viewport
+ * @type int
+ * @default 0
+ */
+ "viewportRows": 0,
+
+ /**
+ * setTimeout reference for state saving, used when state saving is enabled in the DataTable
+ * and when the user scrolls the viewport in order to stop the cookie set taking too much
+ * CPU!
+ * @type int
+ * @default 0
+ */
+ "stateTO": null,
+
+ /**
+ * setTimeout reference for the redraw, used when server-side processing is enabled in the
+ * DataTables in order to prevent DoSing the server
+ * @type int
+ * @default null
+ */
+ "drawTO": null,
+
+ heights: {
+ jump: null,
+ page: null,
+ virtual: null,
+ scroll: null,
+
+ /**
+ * Height of rows in the table
+ * @type int
+ * @default 0
+ */
+ row: null,
+
+ /**
+ * Pixel height of the viewport
+ * @type int
+ * @default 0
+ */
+ viewport: null
+ },
+
+ topRowFloat: 0,
+ scrollDrawDiff: null
+ };
+
+ // @todo The defaults should extend a `c` property and the internal settings
+ // only held in the `s` property. At the moment they are mixed
+ this.s = $.extend( this.s, Scroller.oDefaults, oOpts );
+
+ // Workaround for row height being read from height object (see above comment)
+ this.s.heights.row = this.s.rowHeight;
+
+ /**
+ * DOM elements used by the class instance
+ * @private
+ * @namespace
+ *
+ */
+ this.dom = {
+ "force": document.createElement('div'),
+ "scroller": null,
+ "table": null
+ };
+
+ /* Attach the instance to the DataTables instance so it can be accessed */
+ this.s.dt.oScroller = this;
+
+ /* Let's do it */
+ this._fnConstruct();
+};
+
+
+
+Scroller.prototype = /** @lends Scroller.prototype */{
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Public methods
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * Calculate the pixel position from the top of the scrolling container for
+ * a given row
+ * @param {int} iRow Row number to calculate the position of
+ * @returns {int} Pixels
+ * @example
+ * $(document).ready(function() {
+ * $('#example').dataTable( {
+ * "sScrollY": "200px",
+ * "sAjaxSource": "media/dataset/large.txt",
+ * "sDom": "frtiS",
+ * "bDeferRender": true,
+ * "fnInitComplete": function (o) {
+ * // Find where row 25 is
+ * alert( o.oScroller.fnRowToPixels( 25 ) );
+ * }
+ * } );
+ * } );
+ */
+ "fnRowToPixels": function ( rowIdx, intParse, virtual )
+ {
+ var pixels;
+
+ if ( virtual ) {
+ pixels = this._domain( 'virtualToPhysical', rowIdx * this.s.heights.row );
+ }
+ else {
+ var diff = rowIdx - this.s.baseRowTop;
+ pixels = this.s.baseScrollTop + (diff * this.s.heights.row);
+ }
+
+ return intParse || intParse === undefined ?
+ parseInt( pixels, 10 ) :
+ pixels;
+ },
+
+
+ /**
+ * Calculate the row number that will be found at the given pixel position
+ * (y-scroll).
+ *
+ * Please note that when the height of the full table exceeds 1 million
+ * pixels, Scroller switches into a non-linear mode for the scrollbar to fit
+ * all of the records into a finite area, but this function returns a linear
+ * value (relative to the last non-linear positioning).
+ * @param {int} iPixels Offset from top to calculate the row number of
+ * @param {int} [intParse=true] If an integer value should be returned
+ * @param {int} [virtual=false] Perform the calculations in the virtual domain
+ * @returns {int} Row index
+ * @example
+ * $(document).ready(function() {
+ * $('#example').dataTable( {
+ * "sScrollY": "200px",
+ * "sAjaxSource": "media/dataset/large.txt",
+ * "sDom": "frtiS",
+ * "bDeferRender": true,
+ * "fnInitComplete": function (o) {
+ * // Find what row number is at 500px
+ * alert( o.oScroller.fnPixelsToRow( 500 ) );
+ * }
+ * } );
+ * } );
+ */
+ "fnPixelsToRow": function ( pixels, intParse, virtual )
+ {
+ var diff = pixels - this.s.baseScrollTop;
+ var row = virtual ?
+ this._domain( 'physicalToVirtual', pixels ) / this.s.heights.row :
+ ( diff / this.s.heights.row ) + this.s.baseRowTop;
+
+ return intParse || intParse === undefined ?
+ parseInt( row, 10 ) :
+ row;
+ },
+
+
+ /**
+ * Calculate the row number that will be found at the given pixel position (y-scroll)
+ * @param {int} iRow Row index to scroll to
+ * @param {bool} [bAnimate=true] Animate the transision or not
+ * @returns {void}
+ * @example
+ * $(document).ready(function() {
+ * $('#example').dataTable( {
+ * "sScrollY": "200px",
+ * "sAjaxSource": "media/dataset/large.txt",
+ * "sDom": "frtiS",
+ * "bDeferRender": true,
+ * "fnInitComplete": function (o) {
+ * // Immediately scroll to row 1000
+ * o.oScroller.fnScrollToRow( 1000 );
+ * }
+ * } );
+ *
+ * // Sometime later on use the following to scroll to row 500...
+ * var oSettings = $('#example').dataTable().fnSettings();
+ * oSettings.oScroller.fnScrollToRow( 500 );
+ * } );
+ */
+ "fnScrollToRow": function ( iRow, bAnimate )
+ {
+ var that = this;
+ var ani = false;
+ var px = this.fnRowToPixels( iRow );
+
+ // We need to know if the table will redraw or not before doing the
+ // scroll. If it will not redraw, then we need to use the currently
+ // displayed table, and scroll with the physical pixels. Otherwise, we
+ // need to calculate the table's new position from the virtual
+ // transform.
+ var preRows = ((this.s.displayBuffer-1)/2) * this.s.viewportRows;
+ var drawRow = iRow - preRows;
+ if ( drawRow < 0 ) {
+ drawRow = 0;
+ }
+
+ if ( (px > this.s.redrawBottom || px < this.s.redrawTop) && this.s.dt._iDisplayStart !== drawRow ) {
+ ani = true;
+ px = this.fnRowToPixels( iRow, false, true );
+ }
+
+ if ( typeof bAnimate == 'undefined' || bAnimate )
+ {
+ this.s.ani = ani;
+ $(this.dom.scroller).animate( {
+ "scrollTop": px
+ }, function () {
+ // This needs to happen after the animation has completed and
+ // the final scroll event fired
+ setTimeout( function () {
+ that.s.ani = false;
+ }, 0 );
+ } );
+ }
+ else
+ {
+ $(this.dom.scroller).scrollTop( px );
+ }
+ },
+
+
+ /**
+ * Calculate and store information about how many rows are to be displayed
+ * in the scrolling viewport, based on current dimensions in the browser's
+ * rendering. This can be particularly useful if the table is initially
+ * drawn in a hidden element - for example in a tab.
+ * @param {bool} [bRedraw=true] Redraw the table automatically after the recalculation, with
+ * the new dimentions forming the basis for the draw.
+ * @returns {void}
+ * @example
+ * $(document).ready(function() {
+ * // Make the example container hidden to throw off the browser's sizing
+ * document.getElementById('container').style.display = "none";
+ * var oTable = $('#example').dataTable( {
+ * "sScrollY": "200px",
+ * "sAjaxSource": "media/dataset/large.txt",
+ * "sDom": "frtiS",
+ * "bDeferRender": true,
+ * "fnInitComplete": function (o) {
+ * // Immediately scroll to row 1000
+ * o.oScroller.fnScrollToRow( 1000 );
+ * }
+ * } );
+ *
+ * setTimeout( function () {
+ * // Make the example container visible and recalculate the scroller sizes
+ * document.getElementById('container').style.display = "block";
+ * oTable.fnSettings().oScroller.fnMeasure();
+ * }, 3000 );
+ */
+ "fnMeasure": function ( bRedraw )
+ {
+ if ( this.s.autoHeight )
+ {
+ this._fnCalcRowHeight();
+ }
+
+ var heights = this.s.heights;
+
+ heights.viewport = $(this.dom.scroller).height();
+ this.s.viewportRows = parseInt( heights.viewport / heights.row, 10 )+1;
+ this.s.dt._iDisplayLength = this.s.viewportRows * this.s.displayBuffer;
+
+ if ( typeof bRedraw == 'undefined' || bRedraw )
+ {
+ this.s.dt.oInstance.fnDraw();
+ }
+ },
+
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Private methods (they are of course public in JS, but recommended as private)
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * Initialisation for Scroller
+ * @returns {void}
+ * @private
+ */
+ "_fnConstruct": function ()
+ {
+ var that = this;
+
+ /* Sanity check */
+ if ( !this.s.dt.oFeatures.bPaginate ) {
+ this.s.dt.oApi._fnLog( this.s.dt, 0, 'Pagination must be enabled for Scroller' );
+ return;
+ }
+
+ /* Insert a div element that we can use to force the DT scrolling container to
+ * the height that would be required if the whole table was being displayed
+ */
+ this.dom.force.style.position = "absolute";
+ this.dom.force.style.top = "0px";
+ this.dom.force.style.left = "0px";
+ this.dom.force.style.width = "1px";
+
+ this.dom.scroller = $('div.'+this.s.dt.oClasses.sScrollBody, this.s.dt.nTableWrapper)[0];
+ this.dom.scroller.appendChild( this.dom.force );
+ this.dom.scroller.style.position = "relative";
+
+ this.dom.table = $('>table', this.dom.scroller)[0];
+ this.dom.table.style.position = "absolute";
+ this.dom.table.style.top = "0px";
+ this.dom.table.style.left = "0px";
+
+ // Add class to 'announce' that we are a Scroller table
+ $(this.s.dt.nTableWrapper).addClass('DTS');
+
+ // Add a 'loading' indicator
+ if ( this.s.loadingIndicator )
+ {
+ $(this.dom.scroller.parentNode)
+ .css('position', 'relative')
+ .append('
'+this.s.dt.oLanguage.sLoadingRecords+'
');
+ }
+
+ /* Initial size calculations */
+ if ( this.s.heights.row && this.s.heights.row != 'auto' )
+ {
+ this.s.autoHeight = false;
+ }
+ this.fnMeasure( false );
+
+ /* Scrolling callback to see if a page change is needed */
+ $(this.dom.scroller).on( 'scroll.DTS', function () {
+ that._fnScroll.call( that );
+ } );
+
+ /* In iOS we catch the touchstart event incase the user tries to scroll
+ * while the display is already scrolling
+ */
+ $(this.dom.scroller).on('touchstart.DTS', function () {
+ that._fnScroll.call( that );
+ } );
+
+ /* Update the scroller when the DataTable is redrawn */
+ this.s.dt.aoDrawCallback.push( {
+ "fn": function () {
+ if ( that.s.dt.bInitialised ) {
+ that._fnDrawCallback.call( that );
+ }
+ },
+ "sName": "Scroller"
+ } );
+
+ /* On resize, update the information element, since the number of rows shown might change */
+ $(window).on( 'resize.DTS', function () {
+ that._fnInfo();
+ } );
+
+ /* Add a state saving parameter to the DT state saving so we can restore the exact
+ * position of the scrolling
+ */
+ var initialStateSave = true;
+ this.s.dt.oApi._fnCallbackReg( this.s.dt, 'aoStateSaveParams', function (oS, oData) {
+ /* Set iScroller to saved scroll position on initialization.
+ */
+ if(initialStateSave && that.s.dt.oLoadedState){
+ oData.iScroller = that.s.dt.oLoadedState.iScroller;
+ initialStateSave = false;
+ } else {
+ oData.iScroller = that.dom.scroller.scrollTop;
+ }
+ }, "Scroller_State" );
+
+ /* Destructor */
+ this.s.dt.aoDestroyCallback.push( {
+ "sName": "Scroller",
+ "fn": function () {
+ $(window).off( 'resize.DTS' );
+ $(that.dom.scroller).off('touchstart.DTS scroll.DTS');
+ $(that.s.dt.nTableWrapper).removeClass('DTS');
+ $('div.DTS_Loading', that.dom.scroller.parentNode).remove();
+
+ that.dom.table.style.position = "";
+ that.dom.table.style.top = "";
+ that.dom.table.style.left = "";
+ }
+ } );
+ },
+
+
+ /**
+ * Scrolling function - fired whenever the scrolling position is changed.
+ * This method needs to use the stored values to see if the table should be
+ * redrawn as we are moving towards the end of the information that is
+ * currently drawn or not. If needed, then it will redraw the table based on
+ * the new position.
+ * @returns {void}
+ * @private
+ */
+ "_fnScroll": function ()
+ {
+ var
+ that = this,
+ heights = this.s.heights,
+ iScrollTop = this.dom.scroller.scrollTop,
+ iTopRow;
+
+ if ( this.s.skip ) {
+ return;
+ }
+
+ /* If the table has been sorted or filtered, then we use the redraw that
+ * DataTables as done, rather than performing our own
+ */
+ if ( this.s.dt.bFiltered || this.s.dt.bSorted ) {
+ this.s.lastScrollTop = 0;
+ return;
+ }
+
+ /* Update the table's information display for what is now in the viewport */
+ this._fnInfo();
+
+ /* We don't want to state save on every scroll event - that's heavy
+ * handed, so use a timeout to update the state saving only when the
+ * scrolling has finished
+ */
+ clearTimeout( this.s.stateTO );
+ this.s.stateTO = setTimeout( function () {
+ that.s.dt.oApi._fnSaveState( that.s.dt );
+ }, 250 );
+
+ /* Check if the scroll point is outside the trigger boundary which would required
+ * a DataTables redraw
+ */
+ if ( iScrollTop < this.s.redrawTop || iScrollTop > this.s.redrawBottom ) {
+ var preRows = Math.ceil( ((this.s.displayBuffer-1)/2) * this.s.viewportRows );
+
+ if ( Math.abs( iScrollTop - this.s.lastScrollTop ) > heights.viewport || this.s.ani ) {
+ iTopRow = parseInt(this._domain( 'physicalToVirtual', iScrollTop ) / heights.row, 10) - preRows;
+ this.s.topRowFloat = (this._domain( 'physicalToVirtual', iScrollTop ) / heights.row);
+ }
+ else {
+ iTopRow = this.fnPixelsToRow( iScrollTop ) - preRows;
+ this.s.topRowFloat = this.fnPixelsToRow( iScrollTop, false );
+ }
+
+ if ( iTopRow <= 0 ) {
+ /* At the start of the table */
+ iTopRow = 0;
+ }
+ else if ( iTopRow + this.s.dt._iDisplayLength > this.s.dt.fnRecordsDisplay() ) {
+ /* At the end of the table */
+ iTopRow = this.s.dt.fnRecordsDisplay() - this.s.dt._iDisplayLength;
+ if ( iTopRow < 0 ) {
+ iTopRow = 0;
+ }
+ }
+ else if ( iTopRow % 2 !== 0 ) {
+ // For the row-striping classes (odd/even) we want only to start
+ // on evens otherwise the stripes will change between draws and
+ // look rubbish
+ iTopRow++;
+ }
+
+ if ( iTopRow != this.s.dt._iDisplayStart ) {
+ /* Cache the new table position for quick lookups */
+ this.s.tableTop = $(this.s.dt.nTable).offset().top;
+ this.s.tableBottom = $(this.s.dt.nTable).height() + this.s.tableTop;
+
+ var draw = function () {
+ if ( that.s.scrollDrawReq === null ) {
+ that.s.scrollDrawReq = iScrollTop;
+ }
+
+ that.s.dt._iDisplayStart = iTopRow;
+ if ( that.s.dt.oApi._fnCalculateEnd ) { // Removed in 1.10
+ that.s.dt.oApi._fnCalculateEnd( that.s.dt );
+ }
+ that.s.dt.oApi._fnDraw( that.s.dt );
+ };
+
+ /* Do the DataTables redraw based on the calculated start point - note that when
+ * using server-side processing we introduce a small delay to not DoS the server...
+ */
+ if ( this.s.dt.oFeatures.bServerSide ) {
+ clearTimeout( this.s.drawTO );
+ this.s.drawTO = setTimeout( draw, this.s.serverWait );
+ }
+ else {
+ draw();
+ }
+ }
+ }
+
+ this.s.lastScrollTop = iScrollTop;
+ },
+
+
+ /**
+ * Convert from one domain to another. The physical domain is the actual
+ * pixel count on the screen, while the virtual is if we had browsers which
+ * had scrolling containers of infinite height (i.e. the absolute value)
+ *
+ * @param {string} dir Domain transform direction, `virtualToPhysical` or
+ * `physicalToVirtual`
+ * @returns {number} Calculated transform
+ * @private
+ */
+ _domain: function ( dir, val )
+ {
+ var heights = this.s.heights;
+ var coeff;
+
+ // If the virtual and physical height match, then we use a linear
+ // transform between the two, allowing the scrollbar to be linear
+ if ( heights.virtual === heights.scroll ) {
+ coeff = (heights.virtual-heights.viewport) / (heights.scroll-heights.viewport);
+
+ if ( dir === 'virtualToPhysical' ) {
+ return val / coeff;
+ }
+ else if ( dir === 'physicalToVirtual' ) {
+ return val * coeff;
+ }
+ }
+
+ // Otherwise, we want a non-linear scrollbar to take account of the
+ // redrawing regions at the start and end of the table, otherwise these
+ // can stutter badly - on large tables 30px (for example) scroll might
+ // be hundreds of rows, so the table would be redrawing every few px at
+ // the start and end. Use a simple quadratic to stop this. It does mean
+ // the scrollbar is non-linear, but with such massive data sets, the
+ // scrollbar is going to be a best guess anyway
+ var xMax = (heights.scroll - heights.viewport) / 2;
+ var yMax = (heights.virtual - heights.viewport) / 2;
+
+ coeff = yMax / ( xMax * xMax );
+
+ if ( dir === 'virtualToPhysical' ) {
+ if ( val < yMax ) {
+ return Math.pow(val / coeff, 0.5);
+ }
+ else {
+ val = (yMax*2) - val;
+ return val < 0 ?
+ heights.scroll :
+ (xMax*2) - Math.pow(val / coeff, 0.5);
+ }
+ }
+ else if ( dir === 'physicalToVirtual' ) {
+ if ( val < xMax ) {
+ return val * val * coeff;
+ }
+ else {
+ val = (xMax*2) - val;
+ return val < 0 ?
+ heights.virtual :
+ (yMax*2) - (val * val * coeff);
+ }
+ }
+ },
+
+
+ /**
+ * Draw callback function which is fired when the DataTable is redrawn. The main function of
+ * this method is to position the drawn table correctly the scrolling container for the rows
+ * that is displays as a result of the scrolling position.
+ * @returns {void}
+ * @private
+ */
+ "_fnDrawCallback": function ()
+ {
+ var
+ that = this,
+ heights = this.s.heights,
+ iScrollTop = this.dom.scroller.scrollTop,
+ iActualScrollTop = iScrollTop,
+ iScrollBottom = iScrollTop + heights.viewport,
+ iTableHeight = $(this.s.dt.nTable).height(),
+ displayStart = this.s.dt._iDisplayStart,
+ displayLen = this.s.dt._iDisplayLength,
+ displayEnd = this.s.dt.fnRecordsDisplay();
+
+ // Disable the scroll event listener while we are updating the DOM
+ this.s.skip = true;
+
+ // Resize the scroll forcing element
+ this._fnScrollForce();
+
+ // Reposition the scrolling for the updated virtual position if needed
+ if ( displayStart === 0 ) {
+ // Linear calculation at the top of the table
+ iScrollTop = this.s.topRowFloat * heights.row;
+ }
+ else if ( displayStart + displayLen >= displayEnd ) {
+ // Linear calculation that the bottom as well
+ iScrollTop = heights.scroll - ((displayEnd - this.s.topRowFloat) * heights.row);
+ }
+ else {
+ // Domain scaled in the middle
+ iScrollTop = this._domain( 'virtualToPhysical', this.s.topRowFloat * heights.row );
+ }
+
+ this.dom.scroller.scrollTop = iScrollTop;
+
+ // Store positional information so positional calculations can be based
+ // upon the current table draw position
+ this.s.baseScrollTop = iScrollTop;
+ this.s.baseRowTop = this.s.topRowFloat;
+
+ // Position the table in the virtual scroller
+ var tableTop = iScrollTop - ((this.s.topRowFloat - displayStart) * heights.row);
+ if ( displayStart === 0 ) {
+ tableTop = 0;
+ }
+ else if ( displayStart + displayLen >= displayEnd ) {
+ tableTop = heights.scroll - iTableHeight;
+ }
+
+ this.dom.table.style.top = tableTop+'px';
+
+ /* Cache some information for the scroller */
+ this.s.tableTop = tableTop;
+ this.s.tableBottom = iTableHeight + this.s.tableTop;
+
+ // Calculate the boundaries for where a redraw will be triggered by the
+ // scroll event listener
+ var boundaryPx = (iScrollTop - this.s.tableTop) * this.s.boundaryScale;
+ this.s.redrawTop = iScrollTop - boundaryPx;
+ this.s.redrawBottom = iScrollTop + boundaryPx;
+
+ this.s.skip = false;
+
+ // Because of the order of the DT callbacks, the info update will
+ // take precidence over the one we want here. So a 'thread' break is
+ // needed
+ setTimeout( function () {
+ that._fnInfo.call( that );
+ }, 0 );
+
+ // Restore the scrolling position that was saved by DataTable's state
+ // saving Note that this is done on the second draw when data is Ajax
+ // sourced, and the first draw when DOM soured
+ if ( this.s.dt.oFeatures.bStateSave && this.s.dt.oLoadedState !== null &&
+ typeof this.s.dt.oLoadedState.iScroller != 'undefined' )
+ {
+ var ajaxSourced = this.s.dt.sAjaxSource || that.s.dt.ajax ?
+ true :
+ false;
+
+ if ( ( ajaxSourced && this.s.dt.iDraw == 2) ||
+ (!ajaxSourced && this.s.dt.iDraw == 1) )
+ {
+ setTimeout( function () {
+ $(that.dom.scroller).scrollTop( that.s.dt.oLoadedState.iScroller );
+ that.s.redrawTop = that.s.dt.oLoadedState.iScroller - (heights.viewport/2);
+ }, 0 );
+ }
+ }
+ },
+
+
+ /**
+ * Force the scrolling container to have height beyond that of just the
+ * table that has been drawn so the user can scroll the whole data set.
+ *
+ * Note that if the calculated required scrolling height exceeds a maximum
+ * value (1 million pixels - hard-coded) the forcing element will be set
+ * only to that maximum value and virtual / physical domain transforms will
+ * be used to allow Scroller to display tables of any number of records.
+ * @returns {void}
+ * @private
+ */
+ _fnScrollForce: function ()
+ {
+ var heights = this.s.heights;
+ var max = 1000000;
+
+ heights.virtual = heights.row * this.s.dt.fnRecordsDisplay();
+ heights.scroll = heights.virtual;
+
+ if ( heights.scroll > max ) {
+ heights.scroll = max;
+ }
+
+ this.dom.force.style.height = heights.scroll+"px";
+ },
+
+
+ /**
+ * Automatic calculation of table row height. This is just a little tricky here as using
+ * initialisation DataTables has tale the table out of the document, so we need to create
+ * a new table and insert it into the document, calculate the row height and then whip the
+ * table out.
+ * @returns {void}
+ * @private
+ */
+ "_fnCalcRowHeight": function ()
+ {
+ var origTable = this.s.dt.nTable;
+ var nTable = origTable.cloneNode( false );
+ var tbody = $('').appendTo( nTable );
+ var container = $(
+ '
'+
+ '
'+
+ ''+
+ '
'+
+ '
'
+ );
+
+ // Want 3 rows in the sizing table so :first-child and :last-child
+ // CSS styles don't come into play - take the size of the middle row
+ $('tbody tr:lt(4)', origTable).clone().appendTo( tbody );
+ while( $('tr', tbody).length < 3 ) {
+ tbody.append( '
' );
+ }
+
+ $('div.'+this.s.dt.oClasses.sScrollBody, container).append( nTable );
+
+ container.appendTo( this.s.dt.nHolding );
+ this.s.heights.row = $('tr', tbody).eq(1).outerHeight();
+ container.remove();
+ },
+
+
+ /**
+ * Update any information elements that are controlled by the DataTable based on the scrolling
+ * viewport and what rows are visible in it. This function basically acts in the same way as
+ * _fnUpdateInfo in DataTables, and effectively replaces that function.
+ * @returns {void}
+ * @private
+ */
+ "_fnInfo": function ()
+ {
+ if ( !this.s.dt.oFeatures.bInfo )
+ {
+ return;
+ }
+
+ var
+ dt = this.s.dt,
+ iScrollTop = this.dom.scroller.scrollTop,
+ iStart = Math.floor( this.fnPixelsToRow(iScrollTop, false, this.s.ani)+1 ),
+ iMax = dt.fnRecordsTotal(),
+ iTotal = dt.fnRecordsDisplay(),
+ iPossibleEnd = Math.ceil( this.fnPixelsToRow(iScrollTop+this.s.heights.viewport, false, this.s.ani) ),
+ iEnd = iTotal < iPossibleEnd ? iTotal : iPossibleEnd,
+ sStart = dt.fnFormatNumber( iStart ),
+ sEnd = dt.fnFormatNumber( iEnd ),
+ sMax = dt.fnFormatNumber( iMax ),
+ sTotal = dt.fnFormatNumber( iTotal ),
+ sOut;
+
+ if ( dt.fnRecordsDisplay() === 0 &&
+ dt.fnRecordsDisplay() == dt.fnRecordsTotal() )
+ {
+ /* Empty record set */
+ sOut = dt.oLanguage.sInfoEmpty+ dt.oLanguage.sInfoPostFix;
+ }
+ else if ( dt.fnRecordsDisplay() === 0 )
+ {
+ /* Rmpty record set after filtering */
+ sOut = dt.oLanguage.sInfoEmpty +' '+
+ dt.oLanguage.sInfoFiltered.replace('_MAX_', sMax)+
+ dt.oLanguage.sInfoPostFix;
+ }
+ else if ( dt.fnRecordsDisplay() == dt.fnRecordsTotal() )
+ {
+ /* Normal record set */
+ sOut = dt.oLanguage.sInfo.
+ replace('_START_', sStart).
+ replace('_END_', sEnd).
+ replace('_TOTAL_', sTotal)+
+ dt.oLanguage.sInfoPostFix;
+ }
+ else
+ {
+ /* Record set after filtering */
+ sOut = dt.oLanguage.sInfo.
+ replace('_START_', sStart).
+ replace('_END_', sEnd).
+ replace('_TOTAL_', sTotal) +' '+
+ dt.oLanguage.sInfoFiltered.replace('_MAX_',
+ dt.fnFormatNumber(dt.fnRecordsTotal()))+
+ dt.oLanguage.sInfoPostFix;
+ }
+
+ var n = dt.aanFeatures.i;
+ if ( typeof n != 'undefined' )
+ {
+ for ( var i=0, iLen=n.length ; if&&(f=0);if((g>this.s.redrawBottom||gtable",this.dom.scroller)[0];this.dom.table.style.position="absolute";this.dom.table.style.top="0px";this.dom.table.style.left="0px";e(this.s.dt.nTableWrapper).addClass("DTS");this.s.loadingIndicator&&e(this.dom.scroller.parentNode).css("position","relative").append('
'+this.s.dt.oLanguage.sLoadingRecords+"
");this.s.heights.row&&"auto"!=this.s.heights.row&&(this.s.autoHeight=!1);this.fnMeasure(!1);e(this.dom.scroller).on("scroll.DTS",function(){a._fnScroll.call(a)});
+e(this.dom.scroller).on("touchstart.DTS",function(){a._fnScroll.call(a)});this.s.dt.aoDrawCallback.push({fn:function(){a.s.dt.bInitialised&&a._fnDrawCallback.call(a)},sName:"Scroller"});e(j).on("resize.DTS",function(){a._fnInfo()});var b=!0;this.s.dt.oApi._fnCallbackReg(this.s.dt,"aoStateSaveParams",function(c,d){if(b&&a.s.dt.oLoadedState){d.iScroller=a.s.dt.oLoadedState.iScroller;b=false}else d.iScroller=a.dom.scroller.scrollTop},"Scroller_State");this.s.dt.aoDestroyCallback.push({sName:"Scroller",
+fn:function(){e(j).off("resize.DTS");e(a.dom.scroller).off("touchstart.DTS scroll.DTS");e(a.s.dt.nTableWrapper).removeClass("DTS");e("div.DTS_Loading",a.dom.scroller.parentNode).remove();a.dom.table.style.position="";a.dom.table.style.top="";a.dom.table.style.left=""}})}else this.s.dt.oApi._fnLog(this.s.dt,0,"Pagination must be enabled for Scroller")},_fnScroll:function(){var a=this,b=this.s.heights,c=this.dom.scroller.scrollTop,d;if(!this.s.skip)if(this.s.dt.bFiltered||this.s.dt.bSorted)this.s.lastScrollTop=
+0;else{this._fnInfo();clearTimeout(this.s.stateTO);this.s.stateTO=setTimeout(function(){a.s.dt.oApi._fnSaveState(a.s.dt)},250);if(cthis.s.redrawBottom){var g=Math.ceil((this.s.displayBuffer-1)/2*this.s.viewportRows);Math.abs(c-this.s.lastScrollTop)>b.viewport||this.s.ani?(d=parseInt(this._domain("physicalToVirtual",c)/b.row,10)-g,this.s.topRowFloat=this._domain("physicalToVirtual",c)/b.row):(d=this.fnPixelsToRow(c)-g,this.s.topRowFloat=this.fnPixelsToRow(c,!1));0>=d?d=0:d+this.s.dt._iDisplayLength>
+this.s.dt.fnRecordsDisplay()?(d=this.s.dt.fnRecordsDisplay()-this.s.dt._iDisplayLength,0>d&&(d=0)):0!==d%2&&d++;d!=this.s.dt._iDisplayStart&&(this.s.tableTop=e(this.s.dt.nTable).offset().top,this.s.tableBottom=e(this.s.dt.nTable).height()+this.s.tableTop,b=function(){if(a.s.scrollDrawReq===null)a.s.scrollDrawReq=c;a.s.dt._iDisplayStart=d;a.s.dt.oApi._fnCalculateEnd&&a.s.dt.oApi._fnCalculateEnd(a.s.dt);a.s.dt.oApi._fnDraw(a.s.dt)},this.s.dt.oFeatures.bServerSide?(clearTimeout(this.s.drawTO),this.s.drawTO=
+setTimeout(b,this.s.serverWait)):b())}this.s.lastScrollTop=c}},_domain:function(a,b){var c=this.s.heights,d;if(c.virtual===c.scroll){d=(c.virtual-c.viewport)/(c.scroll-c.viewport);if("virtualToPhysical"===a)return b/d;if("physicalToVirtual"===a)return b*d}var e=(c.scroll-c.viewport)/2,f=(c.virtual-c.viewport)/2;d=f/(e*e);if("virtualToPhysical"===a){if(bb?c.scroll:2*e-Math.pow(b/d,0.5)}if("physicalToVirtual"===a){if(bb?c.virtual:
+2*f-b*b*d}},_fnDrawCallback:function(){var a=this,b=this.s.heights,c=this.dom.scroller.scrollTop,d=e(this.s.dt.nTable).height(),g=this.s.dt._iDisplayStart,f=this.s.dt._iDisplayLength,h=this.s.dt.fnRecordsDisplay();this.s.skip=!0;this._fnScrollForce();c=0===g?this.s.topRowFloat*b.row:g+f>=h?b.scroll-(h-this.s.topRowFloat)*b.row:this._domain("virtualToPhysical",this.s.topRowFloat*b.row);this.dom.scroller.scrollTop=c;this.s.baseScrollTop=c;this.s.baseRowTop=this.s.topRowFloat;var i=c-(this.s.topRowFloat-
+g)*b.row;0===g?i=0:g+f>=h&&(i=b.scroll-d);this.dom.table.style.top=i+"px";this.s.tableTop=i;this.s.tableBottom=d+this.s.tableTop;d=(c-this.s.tableTop)*this.s.boundaryScale;this.s.redrawTop=c-d;this.s.redrawBottom=c+d;this.s.skip=!1;setTimeout(function(){a._fnInfo.call(a)},0);this.s.dt.oFeatures.bStateSave&&null!==this.s.dt.oLoadedState&&"undefined"!=typeof this.s.dt.oLoadedState.iScroller&&((c=this.s.dt.sAjaxSource||a.s.dt.ajax?!0:!1)&&2==this.s.dt.iDraw||!c&&1==this.s.dt.iDraw)&&setTimeout(function(){e(a.dom.scroller).scrollTop(a.s.dt.oLoadedState.iScroller);
+a.s.redrawTop=a.s.dt.oLoadedState.iScroller-b.viewport/2},0)},_fnScrollForce:function(){var a=this.s.heights;a.virtual=a.row*this.s.dt.fnRecordsDisplay();a.scroll=a.virtual;1E6").appendTo(b),d=e('
TableTools makes it very simple to arrange the buttons in the toolbar as you see fit. Using the
+ aButtons parameter you can use any of the predefined buttons or customised buttons. The example below
+ shows how TableTools can be initialised to provide only the 'copy-to-clipboard' and 'print view'
+ options (i.e. no save to local file option is available).
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/bootstrap.html b/azexo_composer/DataTables/extensions/TableTools/examples/bootstrap.html
new file mode 100755
index 0000000..d0af00f
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/bootstrap.html
@@ -0,0 +1,662 @@
+
+
+
+
+
+
+
+ TableTools example - Bootstrap styling
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Bootstrap styling
+
+
+
Twitter Bootstrap is a very powerful design
+ framework for allowing you to very quickly create applications with a unified look and feel. DataTables integrates well with Bootstrap, and so
+ does TableTools.
+
+
This example shows the default Bootstrap theme being used with a Bootstrap styled DataTable. The
+ new form of initialising TableTools is used here, as the
+ Bootstrap integration uses a complex domDT option (it is possible
+ to provide a custom domDT option if you want to, this is just
+ for simplicity!).
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').DataTable();
+ var tt = new $.fn.dataTable.TableTools( table );
+
+ $( tt.fnContainer() ).insertBefore('div.dataTables_wrapper');
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/button_text.html b/azexo_composer/DataTables/extensions/TableTools/examples/button_text.html
new file mode 100755
index 0000000..6fc05ea
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/button_text.html
@@ -0,0 +1,681 @@
+
+
+
+
+
+
+
+ TableTools example - Custom button text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Custom button text
+
+
+
You may wish to set your own text for the buttons in the TableTools toolbar, rather than relying on
+ the default built-in text. This is done by overriding the sButtonText parameter of
+ whatever button you wish to alter. The way TableTools allows you to alter a predefined button is by
+ 'extending' it (using the sExtends parameter) and then setting the overriding
+ parameter.
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/collection.html b/azexo_composer/DataTables/extensions/TableTools/examples/collection.html
new file mode 100755
index 0000000..90423cd
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/collection.html
@@ -0,0 +1,665 @@
+
+
+
+
+
+
+
+ TableTools example - Button collections
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Button collections
+
+
+
TableTools provides the ability to group buttons into a hidden drop down list, which is activated by
+ clicking on a top-level button. This is achieved by extending the 'collection' predefined button type
+ and setting it's aButtons parameter with the same options as the top level buttons (note
+ that you cannot currently use a collection within a collection).
+
+
The example below shows the file save buttons grouped into a collection, while the copy and print
+ buttons are left on the top level.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/defaults.html b/azexo_composer/DataTables/extensions/TableTools/examples/defaults.html
new file mode 100755
index 0000000..b2e6c7d
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/defaults.html
@@ -0,0 +1,644 @@
+
+
+
+
+
+
+
+ TableTools example - Defaults
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Defaults
+
+
+
TableTools provides the ability to override the default initialisation parameters that are used when
+ creating a new instance. This this particularly useful if you have multiple tables which you want to
+ have the same TableTools behaviour - rather than declaring the structure multiple times, you can just
+ set the defaults once. This example shows how to alter the default buttons.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/index.html b/azexo_composer/DataTables/extensions/TableTools/examples/index.html
new file mode 100755
index 0000000..4912d5b
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/index.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ TableTools examples - TableTools examples
+
+
+
+
+
+
TableTools example TableTools examples
+
+
+
TableTools is a plug-in for the DataTables HTML table enhancer, which adds a highly customisable
+ button toolbar to a DataTable. Key features include:
+
+
+
Copy to clipboard
+
Save table data as CSV, XLS or PDF files
+
Print view for clean printing
+
Row selection options
+
Easy use predefined buttons
+
Simple customisation of buttons
+
Well defined API for advanced control
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/multi_instance.html b/azexo_composer/DataTables/extensions/TableTools/examples/multi_instance.html
new file mode 100755
index 0000000..4f9f65e
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/multi_instance.html
@@ -0,0 +1,649 @@
+
+
+
+
+
+
+
+ TableTools example - Multiple toolbars
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Multiple toolbars
+
+
+
Like all DataTables control elements, TableTools can have multiple instances specified in the
+ domDT parameter of DataTables. This will
+ create two TableTools toolbars next to the table, providing the same functions.
+
+
An example of when this might be useful is to show the toolbar both above and below the table - as
+ is done in this example.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/multiple_tables.html b/azexo_composer/DataTables/extensions/TableTools/examples/multiple_tables.html
new file mode 100755
index 0000000..cb46337
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/multiple_tables.html
@@ -0,0 +1,353 @@
+
+
+
+
+
+
+
+ TableTools example - Multiple tables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Multiple tables
+
+
+
This example shows how multiple tables can be initialised with DataTables and TableTools in a single
+ call to the $().DataTable() function. Basically it works as you would expect - no special
+ considerations need be made!
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
$320,800
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
$433,060
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
$103,600
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
$342,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
$217,500
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
$92,575
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
$324,050
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
$75,650
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
$183,000
+
+
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Salary
+
+
+
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
$90,560
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
$198,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
$132,000
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
$1,200,000
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
$145,000
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
$136,200
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
$163,500
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
$103,500
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/new_init.html b/azexo_composer/DataTables/extensions/TableTools/examples/new_init.html
new file mode 100755
index 0000000..eb0074e
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/new_init.html
@@ -0,0 +1,647 @@
+
+
+
+
+
+
+
+ TableTools example - Initialisation with `new`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Initialisation with `new`
+
+
+
Typically when working with TableTools, the initialisation and insertion into the DOM will be done
+ automatically by DataTables, through the use of the domDT parameter. However, it is also
+ possible to initialise TableTools manually as shown in the example below using new
+ $.fn.dataTable.TableTools();.
+
+
Once initialised you can insert the TableTools tool bar node anywhere you wish into the DOM using
+ the fnContainer() API method to get the node.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
$(document).ready(function() {
+ var table = $('#example').DataTable();
+ var tt = new $.fn.dataTable.TableTools( table );
+
+ $( tt.fnContainer() ).insertAfter('div.info');
+} );
+
+
In addition to the above code, the following Javascript library files are loaded for use in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/pdf_message.html b/azexo_composer/DataTables/extensions/TableTools/examples/pdf_message.html
new file mode 100755
index 0000000..78c95fa
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/pdf_message.html
@@ -0,0 +1,665 @@
+
+
+
+
+
+
+
+ TableTools example - PDF message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example PDF message
+
+
+
This example shows how you can add a message to the saved PDF using the sPdfMessage
+ parameter. It also shows that the orientation of the output PDF can be changed to landscape which is
+ useful if you have a lot of columns.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/plug-in.html b/azexo_composer/DataTables/extensions/TableTools/examples/plug-in.html
new file mode 100755
index 0000000..db7255a
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/plug-in.html
@@ -0,0 +1,686 @@
+
+
+
+
+
+
+
+ TableTools example - Plug-in button types
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Plug-in button types
+
+
+
This example shows how you can add a message to the saved PDF using the sPdfMessage
+ parameter. It also shows that the orientation of the output PDF can be changed to landscape which is
+ useful if you have a lot of columns.
+
+
+
+ Copy output will go here
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/select_column.html b/azexo_composer/DataTables/extensions/TableTools/examples/select_column.html
new file mode 100755
index 0000000..3ee9e86
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/select_column.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+ TableTools example - Row selection - row selector on specific cells
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Row selection - row selector on specific cells
+
+
+
By default, TableTools' row selector option will register a row selection click on any part of the
+ row. Although this is often desirable, you might wish at times to limit the row selection to just a
+ single column, or other elements in the row. This might be useful, for example, with Editor's inline editing, so you don't select the row on click of a cell
+ that is to be edited.
+
+
The sRowSelector method provides this ability, allowing a custom jQuery selector to be
+ passed in. TableTools will use the parent row of any element that is selected by the end user.
+
+
In this case, the row selector is attached to the cells in the first column of the table, and
+ Font Awesome is used to display a checkbox
+ indicating the selection state of the row, in addition to the row background colouring.
+
+
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/select_multi.html b/azexo_composer/DataTables/extensions/TableTools/examples/select_multi.html
new file mode 100755
index 0000000..0ad5786
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/select_multi.html
@@ -0,0 +1,659 @@
+
+
+
+
+
+
+
+ TableTools example - Row selection - multi-row select
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Row selection - multi-row select
+
+
+
As well as providing a button toolbar, TableTools provides everything needed to have selectable rows
+ in the table. TableTools has four row selection modes of operation:
+
+
+
none - Default, where no user row selection options are available
+
single - A single row can be selected
+
multi - Multiple rows can be selected simply by clicking on the rows
+
os - Operating System like selection where you can use the shift and ctrl / cmd
+ keys on your keyboard to add / remove rows from the selection.
+
+
+
This example shows the multi select option. There are also a number of pre-defined buttons to provide functions such as
+ select-all and select-none, as shown in this example.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/select_os.html b/azexo_composer/DataTables/extensions/TableTools/examples/select_os.html
new file mode 100755
index 0000000..7a7a568
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/select_os.html
@@ -0,0 +1,660 @@
+
+
+
+
+
+
+
+ TableTools example - Row selection - operating system style
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Row selection - operating system style
+
+
+
As well as providing a button toolbar, TableTools provides everything needed to have selectable rows
+ in the table. TableTools has four row selection modes of operation:
+
+
+
none - Default, where no user row selection options are available
+
single - A single row can be selected
+
multi - Multiple rows can be selected simply by clicking on the rows
+
os - Operating System like selection where you can use the shift and ctrl / cmd
+ keys on your keyboard to add / remove rows from the selection.
+
+
+
This example shows the os select option. Without keyboard interaction a single row can
+ be selected at a time, but multiple rows can be selected in a range using the shift key, while rows can
+ be added and removed from the selection using the ctrl / cmd key.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/select_single.html b/azexo_composer/DataTables/extensions/TableTools/examples/select_single.html
new file mode 100755
index 0000000..7349b7c
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/select_single.html
@@ -0,0 +1,656 @@
+
+
+
+
+
+
+
+ TableTools example - Row selection - single row select
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Row selection - single row select
+
+
+
As well as providing a button toolbar, TableTools provides everything needed to have selectable rows
+ in the table. TableTools has four row selection modes of operation:
+
+
+
none - Default, where no user row selection options are available
+
single - A single row can be selected
+
multi - Multiple rows can be selected simply by clicking on the rows
+
os - Operating System like selection where you can use the shift and ctrl / cmd
+ keys on your keyboard to add / remove rows from the selection.
+
+
+
This example shows the single select option.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/simple.html b/azexo_composer/DataTables/extensions/TableTools/examples/simple.html
new file mode 100755
index 0000000..6dd18ec
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/simple.html
@@ -0,0 +1,645 @@
+
+
+
+
+
+
+
+ TableTools example - Basic initialisation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Basic initialisation
+
+
+
This example shows the basic initialisation of TableTools by simply including the T option in DataTables' domDT parameter. This tell DataTables to
+ insert the TableTools toolbar in that location. Remember to include the Javascript and CSS source files
+ as well!
+
+
It is worth noting that you might need to set the sSwfPath
+ parameter to tell TableTools where to find the SWF file for copy and file save.
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/examples/swf_path.html b/azexo_composer/DataTables/extensions/TableTools/examples/swf_path.html
new file mode 100755
index 0000000..6327190
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/examples/swf_path.html
@@ -0,0 +1,650 @@
+
+
+
+
+
+
+
+ TableTools example - Setting the SWF path
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TableTools example Setting the SWF path
+
+
+
TableTools uses a Flash SWF file to provide the ability to copy text to the system clipboard and
+ save files locally. TableTools must be able to load the SWF file in order to provide these facilities.
+ If you aren't using the same directory structure as the TableTools package, you will need to set the
+ sSwfPath TableTools parameter, as shown in this example.
+
+
Note that TableTools ships with two different SWF files - the only difference between them is that
+ one of them provides the ability to save PDF files while the other doesn't. The trade off is that the
+ PDF capable file is significantly larger in size (56K v 2K).
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Name
+
Position
+
Office
+
Age
+
Start date
+
Salary
+
+
+
+
+
+
Tiger Nixon
+
System Architect
+
Edinburgh
+
61
+
2011/04/25
+
$320,800
+
+
+
Garrett Winters
+
Accountant
+
Tokyo
+
63
+
2011/07/25
+
$170,750
+
+
+
Ashton Cox
+
Junior Technical Author
+
San Francisco
+
66
+
2009/01/12
+
$86,000
+
+
+
Cedric Kelly
+
Senior Javascript Developer
+
Edinburgh
+
22
+
2012/03/29
+
$433,060
+
+
+
Airi Satou
+
Accountant
+
Tokyo
+
33
+
2008/11/28
+
$162,700
+
+
+
Brielle Williamson
+
Integration Specialist
+
New York
+
61
+
2012/12/02
+
$372,000
+
+
+
Herrod Chandler
+
Sales Assistant
+
San Francisco
+
59
+
2012/08/06
+
$137,500
+
+
+
Rhona Davidson
+
Integration Specialist
+
Tokyo
+
55
+
2010/10/14
+
$327,900
+
+
+
Colleen Hurst
+
Javascript Developer
+
San Francisco
+
39
+
2009/09/15
+
$205,500
+
+
+
Sonya Frost
+
Software Engineer
+
Edinburgh
+
23
+
2008/12/13
+
$103,600
+
+
+
Jena Gaines
+
Office Manager
+
London
+
30
+
2008/12/19
+
$90,560
+
+
+
Quinn Flynn
+
Support Lead
+
Edinburgh
+
22
+
2013/03/03
+
$342,000
+
+
+
Charde Marshall
+
Regional Director
+
San Francisco
+
36
+
2008/10/16
+
$470,600
+
+
+
Haley Kennedy
+
Senior Marketing Designer
+
London
+
43
+
2012/12/18
+
$313,500
+
+
+
Tatyana Fitzpatrick
+
Regional Director
+
London
+
19
+
2010/03/17
+
$385,750
+
+
+
Michael Silva
+
Marketing Designer
+
London
+
66
+
2012/11/27
+
$198,500
+
+
+
Paul Byrd
+
Chief Financial Officer (CFO)
+
New York
+
64
+
2010/06/09
+
$725,000
+
+
+
Gloria Little
+
Systems Administrator
+
New York
+
59
+
2009/04/10
+
$237,500
+
+
+
Bradley Greer
+
Software Engineer
+
London
+
41
+
2012/10/13
+
$132,000
+
+
+
Dai Rios
+
Personnel Lead
+
Edinburgh
+
35
+
2012/09/26
+
$217,500
+
+
+
Jenette Caldwell
+
Development Lead
+
New York
+
30
+
2011/09/03
+
$345,000
+
+
+
Yuri Berry
+
Chief Marketing Officer (CMO)
+
New York
+
40
+
2009/06/25
+
$675,000
+
+
+
Caesar Vance
+
Pre-Sales Support
+
New York
+
21
+
2011/12/12
+
$106,450
+
+
+
Doris Wilder
+
Sales Assistant
+
Sidney
+
23
+
2010/09/20
+
$85,600
+
+
+
Angelica Ramos
+
Chief Executive Officer (CEO)
+
London
+
47
+
2009/10/09
+
$1,200,000
+
+
+
Gavin Joyce
+
Developer
+
Edinburgh
+
42
+
2010/12/22
+
$92,575
+
+
+
Jennifer Chang
+
Regional Director
+
Singapore
+
28
+
2010/11/14
+
$357,650
+
+
+
Brenden Wagner
+
Software Engineer
+
San Francisco
+
28
+
2011/06/07
+
$206,850
+
+
+
Fiona Green
+
Chief Operating Officer (COO)
+
San Francisco
+
48
+
2010/03/11
+
$850,000
+
+
+
Shou Itou
+
Regional Marketing
+
Tokyo
+
20
+
2011/08/14
+
$163,000
+
+
+
Michelle House
+
Integration Specialist
+
Sidney
+
37
+
2011/06/02
+
$95,400
+
+
+
Suki Burks
+
Developer
+
London
+
53
+
2009/10/22
+
$114,500
+
+
+
Prescott Bartlett
+
Technical Author
+
London
+
27
+
2011/05/07
+
$145,000
+
+
+
Gavin Cortez
+
Team Leader
+
San Francisco
+
22
+
2008/10/26
+
$235,500
+
+
+
Martena Mccray
+
Post-Sales support
+
Edinburgh
+
46
+
2011/03/09
+
$324,050
+
+
+
Unity Butler
+
Marketing Designer
+
San Francisco
+
47
+
2009/12/09
+
$85,675
+
+
+
Howard Hatfield
+
Office Manager
+
San Francisco
+
51
+
2008/12/16
+
$164,500
+
+
+
Hope Fuentes
+
Secretary
+
San Francisco
+
41
+
2010/02/12
+
$109,850
+
+
+
Vivian Harrell
+
Financial Controller
+
San Francisco
+
62
+
2009/02/14
+
$452,500
+
+
+
Timothy Mooney
+
Office Manager
+
London
+
37
+
2008/12/11
+
$136,200
+
+
+
Jackson Bradshaw
+
Director
+
New York
+
65
+
2008/09/26
+
$645,750
+
+
+
Olivia Liang
+
Support Engineer
+
Singapore
+
64
+
2011/02/03
+
$234,500
+
+
+
Bruno Nash
+
Software Engineer
+
London
+
38
+
2011/05/03
+
$163,500
+
+
+
Sakura Yamamoto
+
Support Engineer
+
Tokyo
+
37
+
2009/08/19
+
$139,575
+
+
+
Thor Walton
+
Developer
+
New York
+
61
+
2013/08/11
+
$98,540
+
+
+
Finn Camacho
+
Support Engineer
+
San Francisco
+
47
+
2009/07/07
+
$87,500
+
+
+
Serge Baldwin
+
Data Coordinator
+
Singapore
+
64
+
2012/04/09
+
$138,575
+
+
+
Zenaida Frank
+
Software Engineer
+
New York
+
63
+
2010/01/04
+
$125,250
+
+
+
Zorita Serrano
+
Software Engineer
+
San Francisco
+
56
+
2012/06/01
+
$115,000
+
+
+
Jennifer Acosta
+
Junior Javascript Developer
+
Edinburgh
+
43
+
2013/02/01
+
$75,650
+
+
+
Cara Stevens
+
Sales Assistant
+
New York
+
46
+
2011/12/06
+
$145,600
+
+
+
Hermione Butler
+
Regional Director
+
London
+
47
+
2011/03/21
+
$356,250
+
+
+
Lael Greer
+
Systems Administrator
+
London
+
21
+
2009/02/27
+
$103,500
+
+
+
Jonas Alexander
+
Developer
+
San Francisco
+
30
+
2010/07/14
+
$86,500
+
+
+
Shad Decker
+
Regional Director
+
Edinburgh
+
51
+
2008/11/13
+
$183,000
+
+
+
Michael Bruce
+
Javascript Developer
+
Singapore
+
29
+
2011/06/27
+
$183,000
+
+
+
Donna Snider
+
Customer Support
+
New York
+
27
+
2011/01/25
+
$112,000
+
+
+
+
+
+
Javascript
+
HTML
+
CSS
+
Ajax
+
Server-side script
+
+
+
+
+
The Javascript shown below is used to initialise the table shown in this
+ example:
The HTML shown below is the raw HTML table element, before it has been enhanced by
+ DataTables:
+
+
+
+
+
This example uses a little bit of additional CSS beyond what is loaded from the library
+ files (below), in order to correctly display the table. The additional CSS used is shown
+ below:
+
+
+
The following CSS library files are loaded for use in this example to provide the styling of the
+ table:
This table loads data by Ajax. The latest data that has been loaded is shown below. This data
+ will update automatically as any additional data is loaded.
+
+
+
+
The script used to perform the server-side processing for this table is shown below. Please note
+ that this is just an example script using PHP. Server-side processing scripts can be written in any
+ language, using the protocol described in the
+ DataTables documentation.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/background.png b/azexo_composer/DataTables/extensions/TableTools/images/background.png
new file mode 100755
index 0000000..915efba
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/background.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/collection.png b/azexo_composer/DataTables/extensions/TableTools/images/collection.png
new file mode 100755
index 0000000..5dd4dfd
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/collection.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/collection_hover.png b/azexo_composer/DataTables/extensions/TableTools/images/collection_hover.png
new file mode 100755
index 0000000..7b37b1e
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/collection_hover.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/copy.png b/azexo_composer/DataTables/extensions/TableTools/images/copy.png
new file mode 100755
index 0000000..5b01ab1
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/copy.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/copy_hover.png b/azexo_composer/DataTables/extensions/TableTools/images/copy_hover.png
new file mode 100755
index 0000000..039a7fc
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/copy_hover.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/csv.png b/azexo_composer/DataTables/extensions/TableTools/images/csv.png
new file mode 100755
index 0000000..43df155
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/csv.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/csv_hover.png b/azexo_composer/DataTables/extensions/TableTools/images/csv_hover.png
new file mode 100755
index 0000000..10b34d3
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/csv_hover.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/pdf.png b/azexo_composer/DataTables/extensions/TableTools/images/pdf.png
new file mode 100755
index 0000000..1b038d0
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/pdf.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/pdf_hover.png b/azexo_composer/DataTables/extensions/TableTools/images/pdf_hover.png
new file mode 100755
index 0000000..eb06855
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/pdf_hover.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/print.png b/azexo_composer/DataTables/extensions/TableTools/images/print.png
new file mode 100755
index 0000000..2db0824
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/print.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/print_hover.png b/azexo_composer/DataTables/extensions/TableTools/images/print_hover.png
new file mode 100755
index 0000000..9808a9c
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/print_hover.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/psd/collection.psd b/azexo_composer/DataTables/extensions/TableTools/images/psd/collection.psd
new file mode 100755
index 0000000..7eb7caf
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/psd/collection.psd differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/psd/copy document.psd b/azexo_composer/DataTables/extensions/TableTools/images/psd/copy document.psd
new file mode 100755
index 0000000..ca207ad
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/psd/copy document.psd differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/psd/file_types.psd b/azexo_composer/DataTables/extensions/TableTools/images/psd/file_types.psd
new file mode 100755
index 0000000..0f280ad
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/psd/file_types.psd differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/psd/printer.psd b/azexo_composer/DataTables/extensions/TableTools/images/psd/printer.psd
new file mode 100755
index 0000000..8c33f7a
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/psd/printer.psd differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/xls.png b/azexo_composer/DataTables/extensions/TableTools/images/xls.png
new file mode 100755
index 0000000..5aaf40d
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/xls.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/images/xls_hover.png b/azexo_composer/DataTables/extensions/TableTools/images/xls_hover.png
new file mode 100755
index 0000000..5b1930a
Binary files /dev/null and b/azexo_composer/DataTables/extensions/TableTools/images/xls_hover.png differ
diff --git a/azexo_composer/DataTables/extensions/TableTools/js/dataTables.tableTools.js b/azexo_composer/DataTables/extensions/TableTools/js/dataTables.tableTools.js
new file mode 100755
index 0000000..f5c361d
--- /dev/null
+++ b/azexo_composer/DataTables/extensions/TableTools/js/dataTables.tableTools.js
@@ -0,0 +1,3084 @@
+/*! TableTools 2.2.1
+ * 2009-2014 SpryMedia Ltd - datatables.net/license
+ *
+ * ZeroClipboard 1.0.4
+ * Author: Joseph Huckaby - MIT licensed
+ */
+
+/**
+ * @summary TableTools
+ * @description Tools and buttons for DataTables
+ * @version 2.2.1
+ * @file dataTables.tableTools.js
+ * @author SpryMedia Ltd (www.sprymedia.co.uk)
+ * @contact www.sprymedia.co.uk/contact
+ * @copyright Copyright 2009-2014 SpryMedia Ltd.
+ *
+ * This source file is free software, available under the following license:
+ * MIT license - http://datatables.net/license/mit
+ *
+ * This source file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
+ *
+ * For details please refer to: http://www.datatables.net
+ */
+
+
+/* Global scope for TableTools for backwards compatibility.
+ * Will be removed in 2.3
+ */
+var TableTools;
+
+(function(window, document, undefined) {
+
+
+var factory = function( $, DataTable ) {
+"use strict";
+
+
+//include ZeroClipboard.js
+/* ZeroClipboard 1.0.4
+ * Author: Joseph Huckaby
+ */
+
+var ZeroClipboard_TableTools = {
+
+ version: "1.0.4-TableTools2",
+ clients: {}, // registered upload clients on page, indexed by id
+ moviePath: '', // URL to movie
+ nextId: 1, // ID of next movie
+
+ $: function(thingy) {
+ // simple DOM lookup utility function
+ if (typeof(thingy) == 'string') {
+ thingy = document.getElementById(thingy);
+ }
+ if (!thingy.addClass) {
+ // extend element with a few useful methods
+ thingy.hide = function() { this.style.display = 'none'; };
+ thingy.show = function() { this.style.display = ''; };
+ thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; };
+ thingy.removeClass = function(name) {
+ this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, '');
+ };
+ thingy.hasClass = function(name) {
+ return !!this.className.match( new RegExp("\\s*" + name + "\\s*") );
+ };
+ }
+ return thingy;
+ },
+
+ setMoviePath: function(path) {
+ // set path to ZeroClipboard.swf
+ this.moviePath = path;
+ },
+
+ dispatch: function(id, eventName, args) {
+ // receive event from flash movie, send to client
+ var client = this.clients[id];
+ if (client) {
+ client.receiveEvent(eventName, args);
+ }
+ },
+
+ register: function(id, client) {
+ // register new client to receive events
+ this.clients[id] = client;
+ },
+
+ getDOMObjectPosition: function(obj) {
+ // get absolute coordinates for dom element
+ var info = {
+ left: 0,
+ top: 0,
+ width: obj.width ? obj.width : obj.offsetWidth,
+ height: obj.height ? obj.height : obj.offsetHeight
+ };
+
+ if ( obj.style.width !== "" ) {
+ info.width = obj.style.width.replace("px","");
+ }
+
+ if ( obj.style.height !== "" ) {
+ info.height = obj.style.height.replace("px","");
+ }
+
+ while (obj) {
+ info.left += obj.offsetLeft;
+ info.top += obj.offsetTop;
+ obj = obj.offsetParent;
+ }
+
+ return info;
+ },
+
+ Client: function(elem) {
+ // constructor for new simple upload client
+ this.handlers = {};
+
+ // unique ID
+ this.id = ZeroClipboard_TableTools.nextId++;
+ this.movieId = 'ZeroClipboard_TableToolsMovie_' + this.id;
+
+ // register client with singleton to receive flash events
+ ZeroClipboard_TableTools.register(this.id, this);
+
+ // create movie
+ if (elem) {
+ this.glue(elem);
+ }
+ }
+};
+
+ZeroClipboard_TableTools.Client.prototype = {
+
+ id: 0, // unique ID for us
+ ready: false, // whether movie is ready to receive events or not
+ movie: null, // reference to movie object
+ clipText: '', // text to copy to clipboard
+ fileName: '', // default file save name
+ action: 'copy', // action to perform
+ handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor
+ cssEffects: true, // enable CSS mouse effects on dom container
+ handlers: null, // user event handlers
+ sized: false,
+
+ glue: function(elem, title) {
+ // glue to DOM element
+ // elem can be ID or actual DOM element object
+ this.domElement = ZeroClipboard_TableTools.$(elem);
+
+ // float just above object, or zIndex 99 if dom element isn't set
+ var zIndex = 99;
+ if (this.domElement.style.zIndex) {
+ zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
+ }
+
+ // find X/Y position of domElement
+ var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement);
+
+ // create floating DIV above element
+ this.div = document.createElement('div');
+ var style = this.div.style;
+ style.position = 'absolute';
+ style.left = '0px';
+ style.top = '0px';
+ style.width = (box.width) + 'px';
+ style.height = box.height + 'px';
+ style.zIndex = zIndex;
+
+ if ( typeof title != "undefined" && title !== "" ) {
+ this.div.title = title;
+ }
+ if ( box.width !== 0 && box.height !== 0 ) {
+ this.sized = true;
+ }
+
+ // style.backgroundColor = '#f00'; // debug
+ if ( this.domElement ) {
+ this.domElement.appendChild(this.div);
+ this.div.innerHTML = this.getHTML( box.width, box.height ).replace(/&/g, '&');
+ }
+ },
+
+ positionElement: function() {
+ var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement);
+ var style = this.div.style;
+
+ style.position = 'absolute';
+ //style.left = (this.domElement.offsetLeft)+'px';
+ //style.top = this.domElement.offsetTop+'px';
+ style.width = box.width + 'px';
+ style.height = box.height + 'px';
+
+ if ( box.width !== 0 && box.height !== 0 ) {
+ this.sized = true;
+ } else {
+ return;
+ }
+
+ var flash = this.div.childNodes[0];
+ flash.width = box.width;
+ flash.height = box.height;
+ },
+
+ getHTML: function(width, height) {
+ // return HTML for movie
+ var html = '';
+ var flashvars = 'id=' + this.id +
+ '&width=' + width +
+ '&height=' + height;
+
+ if (navigator.userAgent.match(/MSIE/)) {
+ // IE gets an OBJECT tag
+ var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
+ html += '';
+ }
+ else {
+ // all other browsers get an EMBED tag
+ html += '';
+ }
+ return html;
+ },
+
+ hide: function() {
+ // temporarily hide floater offscreen
+ if (this.div) {
+ this.div.style.left = '-2000px';
+ }
+ },
+
+ show: function() {
+ // show ourselves after a call to hide()
+ this.reposition();
+ },
+
+ destroy: function() {
+ // destroy control and floater
+ if (this.domElement && this.div) {
+ this.hide();
+ this.div.innerHTML = '';
+
+ var body = document.getElementsByTagName('body')[0];
+ try { body.removeChild( this.div ); } catch(e) {}
+
+ this.domElement = null;
+ this.div = null;
+ }
+ },
+
+ reposition: function(elem) {
+ // reposition our floating div, optionally to new container
+ // warning: container CANNOT change size, only position
+ if (elem) {
+ this.domElement = ZeroClipboard_TableTools.$(elem);
+ if (!this.domElement) {
+ this.hide();
+ }
+ }
+
+ if (this.domElement && this.div) {
+ var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement);
+ var style = this.div.style;
+ style.left = '' + box.left + 'px';
+ style.top = '' + box.top + 'px';
+ }
+ },
+
+ clearText: function() {
+ // clear the text to be copy / saved
+ this.clipText = '';
+ if (this.ready) {
+ this.movie.clearText();
+ }
+ },
+
+ appendText: function(newText) {
+ // append text to that which is to be copied / saved
+ this.clipText += newText;
+ if (this.ready) { this.movie.appendText(newText) ;}
+ },
+
+ setText: function(newText) {
+ // set text to be copied to be copied / saved
+ this.clipText = newText;
+ if (this.ready) { this.movie.setText(newText) ;}
+ },
+
+ setCharSet: function(charSet) {
+ // set the character set (UTF16LE or UTF8)
+ this.charSet = charSet;
+ if (this.ready) { this.movie.setCharSet(charSet) ;}
+ },
+
+ setBomInc: function(bomInc) {
+ // set if the BOM should be included or not
+ this.incBom = bomInc;
+ if (this.ready) { this.movie.setBomInc(bomInc) ;}
+ },
+
+ setFileName: function(newText) {
+ // set the file name
+ this.fileName = newText;
+ if (this.ready) {
+ this.movie.setFileName(newText);
+ }
+ },
+
+ setAction: function(newText) {
+ // set action (save or copy)
+ this.action = newText;
+ if (this.ready) {
+ this.movie.setAction(newText);
+ }
+ },
+
+ addEventListener: function(eventName, func) {
+ // add user event listener for event
+ // event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
+ eventName = eventName.toString().toLowerCase().replace(/^on/, '');
+ if (!this.handlers[eventName]) {
+ this.handlers[eventName] = [];
+ }
+ this.handlers[eventName].push(func);
+ },
+
+ setHandCursor: function(enabled) {
+ // enable hand cursor (true), or default arrow cursor (false)
+ this.handCursorEnabled = enabled;
+ if (this.ready) {
+ this.movie.setHandCursor(enabled);
+ }
+ },
+
+ setCSSEffects: function(enabled) {
+ // enable or disable CSS effects on DOM container
+ this.cssEffects = !!enabled;
+ },
+
+ receiveEvent: function(eventName, args) {
+ var self;
+
+ // receive event from flash
+ eventName = eventName.toString().toLowerCase().replace(/^on/, '');
+
+ // special behavior for certain events
+ switch (eventName) {
+ case 'load':
+ // movie claims it is ready, but in IE this isn't always the case...
+ // bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
+ this.movie = document.getElementById(this.movieId);
+ if (!this.movie) {
+ self = this;
+ setTimeout( function() { self.receiveEvent('load', null); }, 1 );
+ return;
+ }
+
+ // firefox on pc needs a "kick" in order to set these in certain cases
+ if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
+ self = this;
+ setTimeout( function() { self.receiveEvent('load', null); }, 100 );
+ this.ready = true;
+ return;
+ }
+
+ this.ready = true;
+ this.movie.clearText();
+ this.movie.appendText( this.clipText );
+ this.movie.setFileName( this.fileName );
+ this.movie.setAction( this.action );
+ this.movie.setCharSet( this.charSet );
+ this.movie.setBomInc( this.incBom );
+ this.movie.setHandCursor( this.handCursorEnabled );
+ break;
+
+ case 'mouseover':
+ if (this.domElement && this.cssEffects) {
+ //this.domElement.addClass('hover');
+ if (this.recoverActive) {
+ this.domElement.addClass('active');
+ }
+ }
+ break;
+
+ case 'mouseout':
+ if (this.domElement && this.cssEffects) {
+ this.recoverActive = false;
+ if (this.domElement.hasClass('active')) {
+ this.domElement.removeClass('active');
+ this.recoverActive = true;
+ }
+ //this.domElement.removeClass('hover');
+ }
+ break;
+
+ case 'mousedown':
+ if (this.domElement && this.cssEffects) {
+ this.domElement.addClass('active');
+ }
+ break;
+
+ case 'mouseup':
+ if (this.domElement && this.cssEffects) {
+ this.domElement.removeClass('active');
+ this.recoverActive = false;
+ }
+ break;
+ } // switch eventName
+
+ if (this.handlers[eventName]) {
+ for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
+ var func = this.handlers[eventName][idx];
+
+ if (typeof(func) == 'function') {
+ // actual function reference
+ func(this, args);
+ }
+ else if ((typeof(func) == 'object') && (func.length == 2)) {
+ // PHP style object + method, i.e. [myObject, 'myMethod']
+ func[0][ func[1] ](this, args);
+ }
+ else if (typeof(func) == 'string') {
+ // name of function
+ window[func](this, args);
+ }
+ } // foreach event handler defined
+ } // user defined handler for event
+ }
+
+};
+
+// For the Flash binding to work, ZeroClipboard_TableTools must be on the global
+// object list
+window.ZeroClipboard_TableTools = ZeroClipboard_TableTools;
+//include TableTools.js
+/* TableTools
+ * 2009-2014 SpryMedia Ltd - datatables.net/license
+ */
+
+/*globals TableTools,ZeroClipboard_TableTools*/
+
+
+(function($, window, document) {
+
+/**
+ * TableTools provides flexible buttons and other tools for a DataTables enhanced table
+ * @class TableTools
+ * @constructor
+ * @param {Object} oDT DataTables instance. When using DataTables 1.10 this can
+ * also be a jQuery collection, jQuery selector, table node, DataTables API
+ * instance or DataTables settings object.
+ * @param {Object} oOpts TableTools options
+ * @param {String} oOpts.sSwfPath ZeroClipboard SWF path
+ * @param {String} oOpts.sRowSelect Row selection options - 'none', 'single', 'multi' or 'os'
+ * @param {Function} oOpts.fnPreRowSelect Callback function just prior to row selection
+ * @param {Function} oOpts.fnRowSelected Callback function just after row selection
+ * @param {Function} oOpts.fnRowDeselected Callback function when row is deselected
+ * @param {Array} oOpts.aButtons List of buttons to be used
+ */
+TableTools = function( oDT, oOpts )
+{
+ /* Santiy check that we are a new instance */
+ if ( ! this instanceof TableTools )
+ {
+ alert( "Warning: TableTools must be initialised with the keyword 'new'" );
+ }
+
+ // In 1.10 we can use the API to get the settings object from a number of
+ // sources
+ var dtSettings = $.fn.dataTable.Api ?
+ new $.fn.dataTable.Api( oDT ).settings()[0] :
+ oDT.fnSettings();
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Public class variables
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * @namespace Settings object which contains customisable information for TableTools instance
+ */
+ this.s = {
+ /**
+ * Store 'this' so the instance can be retrieved from the settings object
+ * @property that
+ * @type object
+ * @default this
+ */
+ "that": this,
+
+ /**
+ * DataTables settings objects
+ * @property dt
+ * @type object
+ * @default From the oDT init option
+ */
+ "dt": dtSettings,
+
+ /**
+ * @namespace Print specific information
+ */
+ "print": {
+ /**
+ * DataTables draw 'start' point before the printing display was shown
+ * @property saveStart
+ * @type int
+ * @default -1
+ */
+ "saveStart": -1,
+
+ /**
+ * DataTables draw 'length' point before the printing display was shown
+ * @property saveLength
+ * @type int
+ * @default -1
+ */
+ "saveLength": -1,
+
+ /**
+ * Page scrolling point before the printing display was shown so it can be restored
+ * @property saveScroll
+ * @type int
+ * @default -1
+ */
+ "saveScroll": -1,
+
+ /**
+ * Wrapped function to end the print display (to maintain scope)
+ * @property funcEnd
+ * @type Function
+ * @default function () {}
+ */
+ "funcEnd": function () {}
+ },
+
+ /**
+ * A unique ID is assigned to each button in each instance
+ * @property buttonCounter
+ * @type int
+ * @default 0
+ */
+ "buttonCounter": 0,
+
+ /**
+ * @namespace Select rows specific information
+ */
+ "select": {
+ /**
+ * Select type - can be 'none', 'single' or 'multi'
+ * @property type
+ * @type string
+ * @default ""
+ */
+ "type": "",
+
+ /**
+ * Array of nodes which are currently selected
+ * @property selected
+ * @type array
+ * @default []
+ */
+ "selected": [],
+
+ /**
+ * Function to run before the selection can take place. Will cancel the select if the
+ * function returns false
+ * @property preRowSelect
+ * @type Function
+ * @default null
+ */
+ "preRowSelect": null,
+
+ /**
+ * Function to run when a row is selected
+ * @property postSelected
+ * @type Function
+ * @default null
+ */
+ "postSelected": null,
+
+ /**
+ * Function to run when a row is deselected
+ * @property postDeselected
+ * @type Function
+ * @default null
+ */
+ "postDeselected": null,
+
+ /**
+ * Indicate if all rows are selected (needed for server-side processing)
+ * @property all
+ * @type boolean
+ * @default false
+ */
+ "all": false,
+
+ /**
+ * Class name to add to selected TR nodes
+ * @property selectedClass
+ * @type String
+ * @default ""
+ */
+ "selectedClass": ""
+ },
+
+ /**
+ * Store of the user input customisation object
+ * @property custom
+ * @type object
+ * @default {}
+ */
+ "custom": {},
+
+ /**
+ * SWF movie path
+ * @property swfPath
+ * @type string
+ * @default ""
+ */
+ "swfPath": "",
+
+ /**
+ * Default button set
+ * @property buttonSet
+ * @type array
+ * @default []
+ */
+ "buttonSet": [],
+
+ /**
+ * When there is more than one TableTools instance for a DataTable, there must be a
+ * master which controls events (row selection etc)
+ * @property master
+ * @type boolean
+ * @default false
+ */
+ "master": false,
+
+ /**
+ * Tag names that are used for creating collections and buttons
+ * @namesapce
+ */
+ "tags": {}
+ };
+
+
+ /**
+ * @namespace Common and useful DOM elements for the class instance
+ */
+ this.dom = {
+ /**
+ * DIV element that is create and all TableTools buttons (and their children) put into
+ * @property container
+ * @type node
+ * @default null
+ */
+ "container": null,
+
+ /**
+ * The table node to which TableTools will be applied
+ * @property table
+ * @type node
+ * @default null
+ */
+ "table": null,
+
+ /**
+ * @namespace Nodes used for the print display
+ */
+ "print": {
+ /**
+ * Nodes which have been removed from the display by setting them to display none
+ * @property hidden
+ * @type array
+ * @default []
+ */
+ "hidden": [],
+
+ /**
+ * The information display saying telling the user about the print display
+ * @property message
+ * @type node
+ * @default null
+ */
+ "message": null
+ },
+
+ /**
+ * @namespace Nodes used for a collection display. This contains the currently used collection
+ */
+ "collection": {
+ /**
+ * The div wrapper containing the buttons in the collection (i.e. the menu)
+ * @property collection
+ * @type node
+ * @default null
+ */
+ "collection": null,
+
+ /**
+ * Background display to provide focus and capture events
+ * @property background
+ * @type node
+ * @default null
+ */
+ "background": null
+ }
+ };
+
+ /**
+ * @namespace Name space for the classes that this TableTools instance will use
+ * @extends TableTools.classes
+ */
+ this.classes = $.extend( true, {}, TableTools.classes );
+ if ( this.s.dt.bJUI )
+ {
+ $.extend( true, this.classes, TableTools.classes_themeroller );
+ }
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Public class methods
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * Retreieve the settings object from an instance
+ * @method fnSettings
+ * @returns {object} TableTools settings object
+ */
+ this.fnSettings = function () {
+ return this.s;
+ };
+
+
+ /* Constructor logic */
+ if ( typeof oOpts == 'undefined' )
+ {
+ oOpts = {};
+ }
+
+ this._fnConstruct( oOpts );
+
+ return this;
+};
+
+
+
+TableTools.prototype = {
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Public methods
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * Retreieve the settings object from an instance
+ * @returns {array} List of TR nodes which are currently selected
+ * @param {boolean} [filtered=false] Get only selected rows which are
+ * available given the filtering applied to the table. By default
+ * this is false - i.e. all rows, regardless of filtering are
+ selected.
+ */
+ "fnGetSelected": function ( filtered )
+ {
+ var
+ out = [],
+ data = this.s.dt.aoData,
+ displayed = this.s.dt.aiDisplay,
+ i, iLen;
+
+ if ( filtered )
+ {
+ // Only consider filtered rows
+ for ( i=0, iLen=displayed.length ; i 0 )
+ {
+ sTitle = anTitle[0].innerHTML;
+ }
+ }
+
+ /* Strip characters which the OS will object to - checking for UTF8 support in the scripting
+ * engine
+ */
+ if ( "\u00A1".toString().length < 4 ) {
+ return sTitle.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g, "");
+ } else {
+ return sTitle.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g, "");
+ }
+ },
+
+
+ /**
+ * Calculate a unity array with the column width by proportion for a set of columns to be
+ * included for a button. This is particularly useful for PDF creation, where we can use the
+ * column widths calculated by the browser to size the columns in the PDF.
+ * @param {Object} oConfig Button configuration object
+ * @returns {Array} Unity array of column ratios
+ */
+ "fnCalcColRatios": function ( oConfig )
+ {
+ var
+ aoCols = this.s.dt.aoColumns,
+ aColumnsInc = this._fnColumnTargets( oConfig.mColumns ),
+ aColWidths = [],
+ iWidth = 0, iTotal = 0, i, iLen;
+
+ for ( i=0, iLen=aColumnsInc.length ; i')
+ .addClass( this.classes.print.info )
+ .html( message )
+ .appendTo( 'body' );
+
+ setTimeout( function() {
+ info.fadeOut( "normal", function() {
+ info.remove();
+ } );
+ }, time );
+ },
+
+
+
+ /**
+ * Get the container element of the instance for attaching to the DOM
+ * @returns {node} DOM node
+ */
+ "fnContainer": function () {
+ return this.dom.container;
+ },
+
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Private methods (they are of course public in JS, but recommended as private)
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * Constructor logic
+ * @method _fnConstruct
+ * @param {Object} oOpts Same as TableTools constructor
+ * @returns void
+ * @private
+ */
+ "_fnConstruct": function ( oOpts )
+ {
+ var that = this;
+
+ this._fnCustomiseSettings( oOpts );
+
+ /* Container element */
+ this.dom.container = document.createElement( this.s.tags.container );
+ this.dom.container.className = this.classes.container;
+
+ /* Row selection config */
+ if ( this.s.select.type != 'none' )
+ {
+ this._fnRowSelectConfig();
+ }
+
+ /* Buttons */
+ this._fnButtonDefinations( this.s.buttonSet, this.dom.container );
+
+ /* Destructor */
+ this.s.dt.aoDestroyCallback.push( {
+ "sName": "TableTools",
+ "fn": function () {
+ $(that.s.dt.nTBody).off( 'click.DTTT_Select', 'tr' );
+ $(that.dom.container).empty();
+
+ // Remove the instance
+ var idx = $.inArray( that, TableTools._aInstances );
+ if ( idx !== -1 ) {
+ TableTools._aInstances.splice( idx, 1 );
+ }
+ }
+ } );
+ },
+
+
+ /**
+ * Take the user defined settings and the default settings and combine them.
+ * @method _fnCustomiseSettings
+ * @param {Object} oOpts Same as TableTools constructor
+ * @returns void
+ * @private
+ */
+ "_fnCustomiseSettings": function ( oOpts )
+ {
+ /* Is this the master control instance or not? */
+ if ( typeof this.s.dt._TableToolsInit == 'undefined' )
+ {
+ this.s.master = true;
+ this.s.dt._TableToolsInit = true;
+ }
+
+ /* We can use the table node from comparisons to group controls */
+ this.dom.table = this.s.dt.nTable;
+
+ /* Clone the defaults and then the user options */
+ this.s.custom = $.extend( {}, TableTools.DEFAULTS, oOpts );
+
+ /* Flash file location */
+ this.s.swfPath = this.s.custom.sSwfPath;
+ if ( typeof ZeroClipboard_TableTools != 'undefined' )
+ {
+ ZeroClipboard_TableTools.moviePath = this.s.swfPath;
+ }
+
+ /* Table row selecting */
+ this.s.select.type = this.s.custom.sRowSelect;
+ this.s.select.preRowSelect = this.s.custom.fnPreRowSelect;
+ this.s.select.postSelected = this.s.custom.fnRowSelected;
+ this.s.select.postDeselected = this.s.custom.fnRowDeselected;
+
+ // Backwards compatibility - allow the user to specify a custom class in the initialiser
+ if ( this.s.custom.sSelectedClass )
+ {
+ this.classes.select.row = this.s.custom.sSelectedClass;
+ }
+
+ this.s.tags = this.s.custom.oTags;
+
+ /* Button set */
+ this.s.buttonSet = this.s.custom.aButtons;
+ },
+
+
+ /**
+ * Take the user input arrays and expand them to be fully defined, and then add them to a given
+ * DOM element
+ * @method _fnButtonDefinations
+ * @param {array} buttonSet Set of user defined buttons
+ * @param {node} wrapper Node to add the created buttons to
+ * @returns void
+ * @private
+ */
+ "_fnButtonDefinations": function ( buttonSet, wrapper )
+ {
+ var buttonDef;
+
+ for ( var i=0, iLen=buttonSet.length ; iiDocHeight)? iWinHeight : iDocHeight) +"px";
+ nBackground.style.width = ((iWinWidth>iDocWidth)? iWinWidth : iDocWidth) +"px";
+ nBackground.className = this.classes.collection.background;
+ $(nBackground).css('opacity',0);
+
+ document.body.appendChild( nBackground );
+ document.body.appendChild( nHidden );
+
+ /* Visual corrections to try and keep the collection visible */
+ var iDivWidth = $(nHidden).outerWidth();
+ var iDivHeight = $(nHidden).outerHeight();
+
+ if ( iDivX + iDivWidth > iDocWidth )
+ {
+ nHidden.style.left = (iDocWidth-iDivWidth)+"px";
+ }
+
+ if ( iDivY + iDivHeight > iDocHeight )
+ {
+ nHidden.style.top = (iDivY-iDivHeight-$(nButton).outerHeight())+"px";
+ }
+
+ this.dom.collection.collection = nHidden;
+ this.dom.collection.background = nBackground;
+
+ /* This results in a very small delay for the end user but it allows the animation to be
+ * much smoother. If you don't want the animation, then the setTimeout can be removed
+ */
+ setTimeout( function () {
+ $(nHidden).animate({"opacity": 1}, 500);
+ $(nBackground).animate({"opacity": 0.25}, 500);
+ }, 10 );
+
+ /* Resize the buttons to the Flash contents fit */
+ this.fnResizeButtons();
+
+ /* Event handler to remove the collection display */
+ $(nBackground).click( function () {
+ that._fnCollectionHide.call( that, null, null );
+ } );
+ },
+
+
+ /**
+ * Hide a button collection
+ * @param {Node} nButton Button to use for the collection
+ * @param {Object} oConfig Button configuration object
+ * @returns void
+ * @private
+ */
+ "_fnCollectionHide": function ( nButton, oConfig )
+ {
+ if ( oConfig !== null && oConfig.sExtends == 'collection' )
+ {
+ return;
+ }
+
+ if ( this.dom.collection.collection !== null )
+ {
+ $(this.dom.collection.collection).animate({"opacity": 0}, 500, function (e) {
+ this.style.display = "none";
+ } );
+
+ $(this.dom.collection.background).animate({"opacity": 0}, 500, function (e) {
+ this.parentNode.removeChild( this );
+ } );
+
+ this.dom.collection.collection = null;
+ this.dom.collection.background = null;
+ }
+ },
+
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Row selection functions
+ */
+
+ /**
+ * Add event handlers to a table to allow for row selection
+ * @method _fnRowSelectConfig
+ * @returns void
+ * @private
+ */
+ "_fnRowSelectConfig": function ()
+ {
+ if ( this.s.master )
+ {
+ var
+ that = this,
+ i, iLen,
+ dt = this.s.dt,
+ aoOpenRows = this.s.dt.aoOpenRows;
+
+ $(dt.nTable).addClass( this.classes.select.table );
+
+ // When using OS style selection, we want to cancel the shift text
+ // selection, but only when the shift key is used (so you can
+ // actually still select text in the table)
+ if ( this.s.select.type === 'os' ) {
+ $(dt.nTBody).on( 'mousedown.DTTT_Select', 'tr', function(e) {
+ if ( e.shiftKey ) {
+
+ $(dt.nTBody)
+ .css( '-moz-user-select', 'none' )
+ .one('selectstart.DTTT_Select', 'tr', function () {
+ return false;
+ } );
+ }
+ } );
+
+ $(dt.nTBody).on( 'mouseup.DTTT_Select', 'tr', function(e) {
+ $(dt.nTBody).css( '-moz-user-select', '' );
+ } );
+ }
+
+ // Row selection
+ $(dt.nTBody).on( 'click.DTTT_Select', this.s.custom.sRowSelector, function(e) {
+ var row = this.nodeName.toLowerCase() === 'tr' ?
+ this :
+ $(this).parents('tr')[0];
+
+ var select = that.s.select;
+ var pos = that.s.dt.oInstance.fnGetPosition( row );
+
+ /* Sub-table must be ignored (odd that the selector won't do this with >) */
+ if ( row.parentNode != dt.nTBody ) {
+ return;
+ }
+
+ /* Check that we are actually working with a DataTables controlled row */
+ if ( dt.oInstance.fnGetData(row) === null ) {
+ return;
+ }
+
+ // Shift click, ctrl click and simple click handling to make
+ // row selection a lot like a file system in desktop OSs
+ if ( select.type == 'os' ) {
+ if ( e.ctrlKey || e.metaKey ) {
+ // Add or remove from the selection
+ if ( that.fnIsSelected( row ) ) {
+ that._fnRowDeselect( row, e );
+ }
+ else {
+ that._fnRowSelect( row, e );
+ }
+ }
+ else if ( e.shiftKey ) {
+ // Add a range of rows, from the last selected row to
+ // this one
+ var rowIdxs = that.s.dt.aiDisplay.slice(); // visible rows
+ var idx1 = $.inArray( select.lastRow, rowIdxs );
+ var idx2 = $.inArray( pos, rowIdxs );
+
+ if ( that.fnGetSelected().length === 0 || idx1 === -1 ) {
+ // select from top to here - slightly odd, but both
+ // Windows and Mac OS do this
+ rowIdxs.splice( $.inArray( pos, rowIdxs )+1, rowIdxs.length );
+ }
+ else {
+ // reverse so we can shift click 'up' as well as down
+ if ( idx1 > idx2 ) {
+ var tmp = idx2;
+ idx2 = idx1;
+ idx1 = tmp;
+ }
+
+ rowIdxs.splice( idx2+1, rowIdxs.length );
+ rowIdxs.splice( 0, idx1 );
+ }
+
+ if ( ! that.fnIsSelected( row ) ) {
+ // Select range
+ that._fnRowSelect( rowIdxs, e );
+ }
+ else {
+ // Deselect range - need to keep the clicked on row selected
+ rowIdxs.splice( $.inArray( pos, rowIdxs ), 1 );
+ that._fnRowDeselect( rowIdxs, e );
+ }
+ }
+ else {
+ // No cmd or shift click. Deselect current if selected,
+ // or select this row only
+ if ( that.fnIsSelected( row ) && that.fnGetSelected().length === 1 ) {
+ that._fnRowDeselect( row, e );
+ }
+ else {
+ that.fnSelectNone();
+ that._fnRowSelect( row, e );
+ }
+ }
+ }
+ else if ( that.fnIsSelected( row ) ) {
+ that._fnRowDeselect( row, e );
+ }
+ else if ( select.type == "single" ) {
+ that.fnSelectNone();
+ that._fnRowSelect( row, e );
+ }
+ else if ( select.type == "multi" ) {
+ that._fnRowSelect( row, e );
+ }
+
+ select.lastRow = pos;
+ } );//.on('selectstart', function () { return false; } );
+
+ // Bind a listener to the DataTable for when new rows are created.
+ // This allows rows to be visually selected when they should be and
+ // deferred rendering is used.
+ dt.oApi._fnCallbackReg( dt, 'aoRowCreatedCallback', function (tr, data, index) {
+ if ( dt.aoData[index]._DTTT_selected ) {
+ $(tr).addClass( that.classes.select.row );
+ }
+ }, 'TableTools-SelectAll' );
+ }
+ },
+
+ /**
+ * Select rows
+ * @param {*} src Rows to select - see _fnSelectData for a description of valid inputs
+ * @private
+ */
+ "_fnRowSelect": function ( src, e )
+ {
+ var
+ that = this,
+ data = this._fnSelectData( src ),
+ firstTr = data.length===0 ? null : data[0].nTr,
+ anSelected = [],
+ i, len;
+
+ // Get all the rows that will be selected
+ for ( i=0, len=data.length ; i/g, "" ).replace(/^\s+|\s+$/g,"");
+ sLoopData = this._fnHtmlDecode( sLoopData );
+
+ aRow.push( this._fnBoundData( sLoopData, oConfig.sFieldBoundary, regex ) );
+ }
+ }
+
+ aData.push( aRow.join(oConfig.sFieldSeperator) );
+ }
+
+ /*
+ * Body
+ */
+ var aSelected = this.fnGetSelected();
+ bSelectedOnly = this.s.select.type !== "none" && bSelectedOnly && aSelected.length !== 0;
+
+ var aDataIndex = dt.oInstance
+ .$('tr', oConfig.oSelectorOpts)
+ .map( function (id, row) {
+ // If "selected only", then ensure that the row is in the selected list
+ return bSelectedOnly && $.inArray( row, aSelected ) === -1 ?
+ null :
+ dt.oInstance.fnGetPosition( row );
+ } )
+ .get();
+
+ for ( j=0, jLen=aDataIndex.length ; j]+)).*?>/gi,
+ '$1$2$3');
+ sLoopData = sLoopData.replace( /<.*?>/g, "" );
+ }
+ else
+ {
+ sLoopData = mTypeData+"";
+ }
+
+ /* Trim and clean the data */
+ sLoopData = sLoopData.replace(/^\s+/, '').replace(/\s+$/, '');
+ sLoopData = this._fnHtmlDecode( sLoopData );
+
+ /* Bound it and add it to the total data */
+ aRow.push( this._fnBoundData( sLoopData, oConfig.sFieldBoundary, regex ) );
+ }
+ }
+
+ aData.push( aRow.join(oConfig.sFieldSeperator) );
+
+ /* Details rows from fnOpen */
+ if ( oConfig.bOpenRows )
+ {
+ arr = $.grep(dt.aoOpenRows, function(o) { return o.nParent === tr; });
+
+ if ( arr.length === 1 )
+ {
+ sLoopData = this._fnBoundData( $('td', arr[0].nTr).html(), oConfig.sFieldBoundary, regex );
+ aData.push( sLoopData );
+ }
+ }
+ }
+
+ /*
+ * Footer
+ */
+ if ( oConfig.bFooter && dt.nTFoot !== null )
+ {
+ aRow = [];
+
+ for ( i=0, iLen=dt.aoColumns.length ; i/g, "" );
+ sLoopData = this._fnHtmlDecode( sLoopData );
+
+ aRow.push( this._fnBoundData( sLoopData, oConfig.sFieldBoundary, regex ) );
+ }
+ }
+
+ aData.push( aRow.join(oConfig.sFieldSeperator) );
+ }
+
+ var _sLastData = aData.join( this._fnNewline(oConfig) );
+ return _sLastData;
+ },
+
+
+ /**
+ * Wrap data up with a boundary string
+ * @method _fnBoundData
+ * @param {String} sData data to bound
+ * @param {String} sBoundary bounding char(s)
+ * @param {RegExp} regex search for the bounding chars - constructed outside for efficiency
+ * in the loop
+ * @returns {String} bound data
+ * @private
+ */
+ "_fnBoundData": function ( sData, sBoundary, regex )
+ {
+ if ( sBoundary === "" )
+ {
+ return sData;
+ }
+ else
+ {
+ return sBoundary + sData.replace(regex, sBoundary+sBoundary) + sBoundary;
+ }
+ },
+
+
+ /**
+ * Break a string up into an array of smaller strings
+ * @method _fnChunkData
+ * @param {String} sData data to be broken up
+ * @param {Int} iSize chunk size
+ * @returns {Array} String array of broken up text
+ * @private
+ */
+ "_fnChunkData": function ( sData, iSize )
+ {
+ var asReturn = [];
+ var iStrlen = sData.length;
+
+ for ( var i=0 ; i')
+ .addClass( this.classes.print.message )
+ .html( oConfig.sMessage )
+ .prependTo( 'body' );
+ }
+
+ /* Cache the scrolling and the jump to the top of the page */
+ this.s.print.saveScroll = $(window).scrollTop();
+ window.scrollTo( 0, 0 );
+
+ /* Bind a key event listener to the document for the escape key -
+ * it is removed in the callback
+ */
+ $(document).bind( "keydown.DTTT", function(e) {
+ /* Only interested in the escape key */
+ if ( e.keyCode == 27 )
+ {
+ e.preventDefault();
+ that._fnPrintEnd.call( that, e );
+ }
+ } );
+ },
+
+
+ /**
+ * Printing is finished, resume normal display
+ * @method _fnPrintEnd
+ * @param {Event} e Event object
+ * @returns void
+ * @private
+ */
+ "_fnPrintEnd": function ( e )
+ {
+ var that = this;
+ var oSetDT = this.s.dt;
+ var oSetPrint = this.s.print;
+ var oDomPrint = this.dom.print;
+
+ /* Show all hidden nodes */
+ this._fnPrintShowNodes();
+
+ /* Restore DataTables' scrolling */
+ if ( oSetDT.oScroll.sX !== "" || oSetDT.oScroll.sY !== "" )
+ {
+ $(this.s.dt.nTable).unbind('draw.DTTT_Print');
+
+ this._fnPrintScrollEnd();
+ }
+
+ /* Restore the scroll */
+ window.scrollTo( 0, oSetPrint.saveScroll );
+
+ /* Drop the print message */
+ $('div.'+this.classes.print.message).remove();
+
+ /* Styling class */
+ $(document.body).removeClass( 'DTTT_Print' );
+
+ /* Restore the table length */
+ oSetDT._iDisplayStart = oSetPrint.saveStart;
+ oSetDT._iDisplayLength = oSetPrint.saveLength;
+ if ( oSetDT.oApi._fnCalculateEnd ) {
+ oSetDT.oApi._fnCalculateEnd( oSetDT );
+ }
+ oSetDT.oApi._fnDraw( oSetDT );
+
+ $(document).unbind( "keydown.DTTT" );
+ },
+
+
+ /**
+ * Take account of scrolling in DataTables by showing the full table
+ * @returns void
+ * @private
+ */
+ "_fnPrintScrollStart": function ()
+ {
+ var
+ oSetDT = this.s.dt,
+ nScrollHeadInner = oSetDT.nScrollHead.getElementsByTagName('div')[0],
+ nScrollHeadTable = nScrollHeadInner.getElementsByTagName('table')[0],
+ nScrollBody = oSetDT.nTable.parentNode,
+ nTheadSize, nTfootSize;
+
+ /* Copy the header in the thead in the body table, this way we show one single table when
+ * in print view. Note that this section of code is more or less verbatim from DT 1.7.0
+ */
+ nTheadSize = oSetDT.nTable.getElementsByTagName('thead');
+ if ( nTheadSize.length > 0 )
+ {
+ oSetDT.nTable.removeChild( nTheadSize[0] );
+ }
+
+ if ( oSetDT.nTFoot !== null )
+ {
+ nTfootSize = oSetDT.nTable.getElementsByTagName('tfoot');
+ if ( nTfootSize.length > 0 )
+ {
+ oSetDT.nTable.removeChild( nTfootSize[0] );
+ }
+ }
+
+ nTheadSize = oSetDT.nTHead.cloneNode(true);
+ oSetDT.nTable.insertBefore( nTheadSize, oSetDT.nTable.childNodes[0] );
+
+ if ( oSetDT.nTFoot !== null )
+ {
+ nTfootSize = oSetDT.nTFoot.cloneNode(true);
+ oSetDT.nTable.insertBefore( nTfootSize, oSetDT.nTable.childNodes[1] );
+ }
+
+ /* Now adjust the table's viewport so we can actually see it */
+ if ( oSetDT.oScroll.sX !== "" )
+ {
+ oSetDT.nTable.style.width = $(oSetDT.nTable).outerWidth()+"px";
+ nScrollBody.style.width = $(oSetDT.nTable).outerWidth()+"px";
+ nScrollBody.style.overflow = "visible";
+ }
+
+ if ( oSetDT.oScroll.sY !== "" )
+ {
+ nScrollBody.style.height = $(oSetDT.nTable).outerHeight()+"px";
+ nScrollBody.style.overflow = "visible";
+ }
+ },
+
+
+ /**
+ * Take account of scrolling in DataTables by showing the full table. Note that the redraw of
+ * the DataTable that we do will actually deal with the majority of the hard work here
+ * @returns void
+ * @private
+ */
+ "_fnPrintScrollEnd": function ()
+ {
+ var
+ oSetDT = this.s.dt,
+ nScrollBody = oSetDT.nTable.parentNode;
+
+ if ( oSetDT.oScroll.sX !== "" )
+ {
+ nScrollBody.style.width = oSetDT.oApi._fnStringToCss( oSetDT.oScroll.sX );
+ nScrollBody.style.overflow = "auto";
+ }
+
+ if ( oSetDT.oScroll.sY !== "" )
+ {
+ nScrollBody.style.height = oSetDT.oApi._fnStringToCss( oSetDT.oScroll.sY );
+ nScrollBody.style.overflow = "auto";
+ }
+ },
+
+
+ /**
+ * Resume the display of all TableTools hidden nodes
+ * @method _fnPrintShowNodes
+ * @returns void
+ * @private
+ */
+ "_fnPrintShowNodes": function ( )
+ {
+ var anHidden = this.dom.print.hidden;
+
+ for ( var i=0, iLen=anHidden.length ; iTable copied'+
+ '
', {
+ 'valign': 'top',
+ 'colSpan': _fnVisbleColumns( oSettings ),
+ 'class': oSettings.oClasses.sRowEmpty
+ } ).html( sZero ) )[0];
+ }
+
+ /* Header and footer callbacks */
+ _fnCallbackFire( oSettings, 'aoHeaderCallback', 'header', [ $(oSettings.nTHead).children('tr')[0],
+ _fnGetDataMaster( oSettings ), iDisplayStart, iDisplayEnd, aiDisplay ] );
+
+ _fnCallbackFire( oSettings, 'aoFooterCallback', 'footer', [ $(oSettings.nTFoot).children('tr')[0],
+ _fnGetDataMaster( oSettings ), iDisplayStart, iDisplayEnd, aiDisplay ] );
+
+ var body = $(oSettings.nTBody);
+
+ body.children().detach();
+ body.append( $(anRows) );
+
+ /* Call all required callback functions for the end of a draw */
+ _fnCallbackFire( oSettings, 'aoDrawCallback', 'draw', [oSettings] );
+
+ /* Draw is complete, sorting and filtering must be as well */
+ oSettings.bSorted = false;
+ oSettings.bFiltered = false;
+ oSettings.bDrawing = false;
+ }
+
+
+ /**
+ * Redraw the table - taking account of the various features which are enabled
+ * @param {object} oSettings dataTables settings object
+ * @param {boolean} [holdPosition] Keep the current paging position. By default
+ * the paging is reset to the first page
+ * @memberof DataTable#oApi
+ */
+ function _fnReDraw( settings, holdPosition )
+ {
+ var
+ features = settings.oFeatures,
+ sort = features.bSort,
+ filter = features.bFilter;
+
+ if ( sort ) {
+ _fnSort( settings );
+ }
+
+ if ( filter ) {
+ _fnFilterComplete( settings, settings.oPreviousSearch );
+ }
+ else {
+ // No filtering, so we want to just use the display master
+ settings.aiDisplay = settings.aiDisplayMaster.slice();
+ }
+
+ if ( holdPosition !== true ) {
+ settings._iDisplayStart = 0;
+ }
+
+ _fnDraw( settings );
+ }
+
+
+ /**
+ * Add the options to the page HTML for the table
+ * @param {object} oSettings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+ function _fnAddOptionsHtml ( oSettings )
+ {
+ var classes = oSettings.oClasses;
+ var table = $(oSettings.nTable);
+ var holding = $('').insertBefore( table ); // Holding element for speed
+ var features = oSettings.oFeatures;
+
+ // All DataTables are wrapped in a div
+ var insert = $('', {
+ id: oSettings.sTableId+'_wrapper',
+ 'class': classes.sWrapper + (oSettings.nTFoot ? '' : ' '+classes.sNoFooter)
+ } );
+
+ oSettings.nHolding = holding[0];
+ oSettings.nTableWrapper = insert[0];
+ oSettings.nTableReinsertBefore = oSettings.nTable.nextSibling;
+
+ /* Loop over the user set positioning and place the elements as needed */
+ var aDom = oSettings.sDom.split('');
+ var featureNode, cOption, nNewNode, cNext, sAttr, j;
+ for ( var i=0 ; i')[0];
+
+ /* Check to see if we should append an id and/or a class name to the container */
+ cNext = aDom[i+1];
+ if ( cNext == "'" || cNext == '"' )
+ {
+ sAttr = "";
+ j = 2;
+ while ( aDom[i+j] != cNext )
+ {
+ sAttr += aDom[i+j];
+ j++;
+ }
+
+ /* Replace jQuery UI constants @todo depreciated */
+ if ( sAttr == "H" )
+ {
+ sAttr = classes.sJUIHeader;
+ }
+ else if ( sAttr == "F" )
+ {
+ sAttr = classes.sJUIFooter;
+ }
+
+ /* The attribute can be in the format of "#id.class", "#id" or "class" This logic
+ * breaks the string into parts and applies them as needed
+ */
+ if ( sAttr.indexOf('.') != -1 )
+ {
+ var aSplit = sAttr.split('.');
+ nNewNode.id = aSplit[0].substr(1, aSplit[0].length-1);
+ nNewNode.className = aSplit[1];
+ }
+ else if ( sAttr.charAt(0) == "#" )
+ {
+ nNewNode.id = sAttr.substr(1, sAttr.length-1);
+ }
+ else
+ {
+ nNewNode.className = sAttr;
+ }
+
+ i += j; /* Move along the position array */
+ }
+
+ insert.append( nNewNode );
+ insert = $(nNewNode);
+ }
+ else if ( cOption == '>' )
+ {
+ /* End container div */
+ insert = insert.parent();
+ }
+ // @todo Move options into their own plugins?
+ else if ( cOption == 'l' && features.bPaginate && features.bLengthChange )
+ {
+ /* Length */
+ featureNode = _fnFeatureHtmlLength( oSettings );
+ }
+ else if ( cOption == 'f' && features.bFilter )
+ {
+ /* Filter */
+ featureNode = _fnFeatureHtmlFilter( oSettings );
+ }
+ else if ( cOption == 'r' && features.bProcessing )
+ {
+ /* pRocessing */
+ featureNode = _fnFeatureHtmlProcessing( oSettings );
+ }
+ else if ( cOption == 't' )
+ {
+ /* Table */
+ featureNode = _fnFeatureHtmlTable( oSettings );
+ }
+ else if ( cOption == 'i' && features.bInfo )
+ {
+ /* Info */
+ featureNode = _fnFeatureHtmlInfo( oSettings );
+ }
+ else if ( cOption == 'p' && features.bPaginate )
+ {
+ /* Pagination */
+ featureNode = _fnFeatureHtmlPaginate( oSettings );
+ }
+ else if ( DataTable.ext.feature.length !== 0 )
+ {
+ /* Plug-in features */
+ var aoFeatures = DataTable.ext.feature;
+ for ( var k=0, kLen=aoFeatures.length ; k';
+
+ var str = settings.oLanguage.sSearch;
+ str = str.match(/_INPUT_/) ?
+ str.replace('_INPUT_', input) :
+ str+input;
+
+ var filter = $('', {
+ 'id': ! features.f ? tableId+'_filter' : null,
+ 'class': classes.sFilter
+ } )
+ .append( $('' ).append( str ) );
+
+ var searchFn = function() {
+ /* Update all other filter input elements for the new display */
+ var n = features.f;
+ var val = !this.value ? "" : this.value; // mental IE8 fix :-(
+
+ /* Now do the filter */
+ if ( val != previousSearch.sSearch ) {
+ _fnFilterComplete( settings, {
+ "sSearch": val,
+ "bRegex": previousSearch.bRegex,
+ "bSmart": previousSearch.bSmart ,
+ "bCaseInsensitive": previousSearch.bCaseInsensitive
+ } );
+
+ // Need to redraw, without resorting
+ settings._iDisplayStart = 0;
+ _fnDraw( settings );
+ }
+ };
+ var jqFilter = $('input', filter)
+ .val( previousSearch.sSearch.replace('"','"') )
+ .bind(
+ 'keyup.DT search.DT input.DT paste.DT cut.DT',
+ _fnDataSource( settings ) === 'ssp' ?
+ _fnThrottle( searchFn, 400 ):
+ searchFn
+ )
+ .bind( 'keypress.DT', function(e) {
+ /* Prevent form submission */
+ if ( e.keyCode == 13 ) {
+ return false;
+ }
+ } )
+ .attr('aria-controls', tableId);
+
+ // Update the input elements whenever the table is filtered
+ $(settings.nTable).on( 'filter.DT', function () {
+ // IE9 throws an 'unknown error' if document.activeElement is used
+ // inside an iframe or frame...
+ try {
+ if ( jqFilter[0] !== document.activeElement ) {
+ jqFilter.val( previousSearch.sSearch );
+ }
+ }
+ catch ( e ) {}
+ } );
+
+ return filter[0];
+ }
+
+
+ /**
+ * Filter the table using both the global filter and column based filtering
+ * @param {object} oSettings dataTables settings object
+ * @param {object} oSearch search information
+ * @param {int} [iForce] force a research of the master array (1) or not (undefined or 0)
+ * @memberof DataTable#oApi
+ */
+ function _fnFilterComplete ( oSettings, oInput, iForce )
+ {
+ var oPrevSearch = oSettings.oPreviousSearch;
+ var aoPrevSearch = oSettings.aoPreSearchCols;
+ var fnSaveFilter = function ( oFilter ) {
+ /* Save the filtering values */
+ oPrevSearch.sSearch = oFilter.sSearch;
+ oPrevSearch.bRegex = oFilter.bRegex;
+ oPrevSearch.bSmart = oFilter.bSmart;
+ oPrevSearch.bCaseInsensitive = oFilter.bCaseInsensitive;
+ };
+ var fnRegex = function ( o ) {
+ // Backwards compatibility with the bEscapeRegex option
+ return o.bEscapeRegex !== undefined ? !o.bEscapeRegex : o.bRegex;
+ };
+
+ // Resolve any column types that are unknown due to addition or invalidation
+ // @todo As per sort - can this be moved into an event handler?
+ _fnColumnTypes( oSettings );
+
+ /* In server-side processing all filtering is done by the server, so no point hanging around here */
+ if ( _fnDataSource( oSettings ) != 'ssp' )
+ {
+ /* Global filter */
+ _fnFilter( oSettings, oInput.sSearch, iForce, fnRegex(oInput), oInput.bSmart, oInput.bCaseInsensitive );
+ fnSaveFilter( oInput );
+
+ /* Now do the individual column filter */
+ for ( var i=0 ; i=0 ; j-- ) {
+ rowIdx = displayRows[ j ];
+ row = settings.aoData[ rowIdx ];
+
+ if ( ! filters[i]( settings, row._aFilterData, rowIdx, row._aData ) ) {
+ displayRows.splice( j, 1 );
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Filter the table on a per-column basis
+ * @param {object} oSettings dataTables settings object
+ * @param {string} sInput string to filter on
+ * @param {int} iColumn column to filter
+ * @param {bool} bRegex treat search string as a regular expression or not
+ * @param {bool} bSmart use smart filtering or not
+ * @param {bool} bCaseInsensitive Do case insenstive matching or not
+ * @memberof DataTable#oApi
+ */
+ function _fnFilterColumn ( settings, searchStr, colIdx, regex, smart, caseInsensitive )
+ {
+ if ( searchStr === '' ) {
+ return;
+ }
+
+ var data;
+ var display = settings.aiDisplay;
+ var rpSearch = _fnFilterCreateSearch( searchStr, regex, smart, caseInsensitive );
+
+ for ( var i=display.length-1 ; i>=0 ; i-- ) {
+ data = settings.aoData[ display[i] ]._aFilterData[ colIdx ];
+
+ if ( ! rpSearch.test( data ) ) {
+ display.splice( i, 1 );
+ }
+ }
+ }
+
+
+ /**
+ * Filter the data table based on user input and draw the table
+ * @param {object} settings dataTables settings object
+ * @param {string} input string to filter on
+ * @param {int} force optional - force a research of the master array (1) or not (undefined or 0)
+ * @param {bool} regex treat as a regular expression or not
+ * @param {bool} smart perform smart filtering or not
+ * @param {bool} caseInsensitive Do case insenstive matching or not
+ * @memberof DataTable#oApi
+ */
+ function _fnFilter( settings, input, force, regex, smart, caseInsensitive )
+ {
+ var rpSearch = _fnFilterCreateSearch( input, regex, smart, caseInsensitive );
+ var prevSearch = settings.oPreviousSearch.sSearch;
+ var displayMaster = settings.aiDisplayMaster;
+ var display, invalidated, i;
+
+ // Need to take account of custom filtering functions - always filter
+ if ( DataTable.ext.search.length !== 0 ) {
+ force = true;
+ }
+
+ // Check if any of the rows were invalidated
+ invalidated = _fnFilterData( settings );
+
+ // If the input is blank - we just want the full data set
+ if ( input.length <= 0 ) {
+ settings.aiDisplay = displayMaster.slice();
+ }
+ else {
+ // New search - start from the master array
+ if ( invalidated ||
+ force ||
+ prevSearch.length > input.length ||
+ input.indexOf(prevSearch) !== 0 ||
+ settings.bSorted // On resort, the display master needs to be
+ // re-filtered since indexes will have changed
+ ) {
+ settings.aiDisplay = displayMaster.slice();
+ }
+
+ // Search the display array
+ display = settings.aiDisplay;
+
+ for ( i=display.length-1 ; i>=0 ; i-- ) {
+ if ( ! rpSearch.test( settings.aoData[ display[i] ]._sFilterRow ) ) {
+ display.splice( i, 1 );
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Build a regular expression object suitable for searching a table
+ * @param {string} sSearch string to search for
+ * @param {bool} bRegex treat as a regular expression or not
+ * @param {bool} bSmart perform smart filtering or not
+ * @param {bool} bCaseInsensitive Do case insensitive matching or not
+ * @returns {RegExp} constructed object
+ * @memberof DataTable#oApi
+ */
+ function _fnFilterCreateSearch( search, regex, smart, caseInsensitive )
+ {
+ search = regex ?
+ search :
+ _fnEscapeRegex( search );
+
+ if ( smart ) {
+ /* For smart filtering we want to allow the search to work regardless of
+ * word order. We also want double quoted text to be preserved, so word
+ * order is important - a la google. So this is what we want to
+ * generate:
+ *
+ * ^(?=.*?\bone\b)(?=.*?\btwo three\b)(?=.*?\bfour\b).*$
+ */
+ var a = $.map( search.match( /"[^"]+"|[^ ]+/g ) || '', function ( word ) {
+ return word.charAt(0) === '"' ?
+ word.match( /^"(.*)"$/ )[1] :
+ word;
+ } );
+
+ search = '^(?=.*?'+a.join( ')(?=.*?' )+').*$';
+ }
+
+ return new RegExp( search, caseInsensitive ? 'i' : '' );
+ }
+
+
+ /**
+ * scape a string such that it can be used in a regular expression
+ * @param {string} sVal string to escape
+ * @returns {string} escaped string
+ * @memberof DataTable#oApi
+ */
+ function _fnEscapeRegex ( sVal )
+ {
+ return sVal.replace( _re_escape_regex, '\\$1' );
+ }
+
+
+
+ var __filter_div = $('
')[0];
+ var __filter_div_textContent = __filter_div.textContent !== undefined;
+
+ // Update the filtering data for each row if needed (by invalidation or first run)
+ function _fnFilterData ( settings )
+ {
+ var columns = settings.aoColumns;
+ var column;
+ var i, j, ien, jen, filterData, cellData, row;
+ var fomatters = DataTable.ext.type.search;
+ var wasInvalidated = false;
+
+ for ( i=0, ien=settings.aoData.length ; i', {
+ 'class': settings.oClasses.sInfo,
+ 'id': ! nodes ? tid+'_info' : null
+ } );
+
+ if ( ! nodes ) {
+ // Update display on each draw
+ settings.aoDrawCallback.push( {
+ "fn": _fnUpdateInfo,
+ "sName": "information"
+ } );
+
+ n
+ .attr( 'role', 'status' )
+ .attr( 'aria-live', 'polite' );
+
+ // Table is described by our info div
+ $(settings.nTable).attr( 'aria-describedby', tid+'_info' );
+ }
+
+ return n[0];
+ }
+
+
+ /**
+ * Update the information elements in the display
+ * @param {object} settings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+ function _fnUpdateInfo ( settings )
+ {
+ /* Show information about the table */
+ var nodes = settings.aanFeatures.i;
+ if ( nodes.length === 0 ) {
+ return;
+ }
+
+ var
+ lang = settings.oLanguage,
+ start = settings._iDisplayStart+1,
+ end = settings.fnDisplayEnd(),
+ max = settings.fnRecordsTotal(),
+ total = settings.fnRecordsDisplay(),
+ out = total ?
+ lang.sInfo :
+ lang.sInfoEmpty;
+
+ if ( total !== max ) {
+ /* Record set after filtering */
+ out += ' ' + lang.sInfoFiltered;
+ }
+
+ // Convert the macros
+ out += lang.sInfoPostFix;
+ out = _fnInfoMacros( settings, out );
+
+ var callback = lang.fnInfoCallback;
+ if ( callback !== null ) {
+ out = callback.call( settings.oInstance,
+ settings, start, end, max, total, out
+ );
+ }
+
+ $(nodes).html( out );
+ }
+
+
+ function _fnInfoMacros ( settings, str )
+ {
+ // When infinite scrolling, we are always starting at 1. _iDisplayStart is used only
+ // internally
+ var
+ formatter = settings.fnFormatNumber,
+ start = settings._iDisplayStart+1,
+ len = settings._iDisplayLength,
+ vis = settings.fnRecordsDisplay(),
+ all = len === -1;
+
+ return str.
+ replace(/_START_/g, formatter.call( settings, start ) ).
+ replace(/_END_/g, formatter.call( settings, settings.fnDisplayEnd() ) ).
+ replace(/_MAX_/g, formatter.call( settings, settings.fnRecordsTotal() ) ).
+ replace(/_TOTAL_/g, formatter.call( settings, vis ) ).
+ replace(/_PAGE_/g, formatter.call( settings, all ? 1 : Math.ceil( start / len ) ) ).
+ replace(/_PAGES_/g, formatter.call( settings, all ? 1 : Math.ceil( vis / len ) ) );
+ }
+
+
+
+ /**
+ * Draw the table for the first time, adding all required features
+ * @param {object} settings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+ function _fnInitialise ( settings )
+ {
+ var i, iLen, iAjaxStart=settings.iInitDisplayStart;
+ var columns = settings.aoColumns, column;
+ var features = settings.oFeatures;
+
+ /* Ensure that the table data is fully initialised */
+ if ( ! settings.bInitialised ) {
+ setTimeout( function(){ _fnInitialise( settings ); }, 200 );
+ return;
+ }
+
+ /* Show the display HTML options */
+ _fnAddOptionsHtml( settings );
+
+ /* Build and draw the header / footer for the table */
+ _fnBuildHead( settings );
+ _fnDrawHead( settings, settings.aoHeader );
+ _fnDrawHead( settings, settings.aoFooter );
+
+ /* Okay to show that something is going on now */
+ _fnProcessingDisplay( settings, true );
+
+ /* Calculate sizes for columns */
+ if ( features.bAutoWidth ) {
+ _fnCalculateColumnWidths( settings );
+ }
+
+ for ( i=0, iLen=columns.length ; i', {
+ 'name': tableId+'_length',
+ 'aria-controls': tableId,
+ 'class': classes.sLengthSelect
+ } );
+
+ for ( var i=0, ien=lengths.length ; i
').addClass( classes.sLength );
+ if ( ! settings.aanFeatures.l ) {
+ div[0].id = tableId+'_length';
+ }
+
+ var a = settings.oLanguage.sLengthMenu.split(/(_MENU_)/);
+ div.children().append( a.length > 1 ?
+ [ a[0], select, a[2] ] :
+ a[0]
+ );
+
+ // Can't use `select` variable, as user might provide their own select menu
+ $('select', div)
+ .val( settings._iDisplayLength )
+ .bind( 'change.DT', function(e) {
+ _fnLengthChange( settings, $(this).val() );
+ _fnDraw( settings );
+ } );
+
+ // Update node value whenever anything changes the table's length
+ $(settings.nTable).bind( 'length.dt.DT', function (e, s, len) {
+ $('select', div).val( len );
+ } );
+
+ return div[0];
+ }
+
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Note that most of the paging logic is done in
+ * DataTable.ext.pager
+ */
+
+ /**
+ * Generate the node required for default pagination
+ * @param {object} oSettings dataTables settings object
+ * @returns {node} Pagination feature node
+ * @memberof DataTable#oApi
+ */
+ function _fnFeatureHtmlPaginate ( settings )
+ {
+ var
+ type = settings.sPaginationType,
+ plugin = DataTable.ext.pager[ type ],
+ modern = typeof plugin === 'function',
+ redraw = function( settings ) {
+ _fnDraw( settings );
+ },
+ node = $('').addClass( settings.oClasses.sPaging + type )[0],
+ features = settings.aanFeatures;
+
+ if ( ! modern ) {
+ plugin.fnInit( settings, node, redraw );
+ }
+
+ /* Add a draw callback for the pagination on first instance, to update the paging display */
+ if ( ! features.p )
+ {
+ node.id = settings.sTableId+'_paginate';
+
+ settings.aoDrawCallback.push( {
+ "fn": function( settings ) {
+ if ( modern ) {
+ var
+ start = settings._iDisplayStart,
+ len = settings._iDisplayLength,
+ visRecords = settings.fnRecordsDisplay(),
+ all = len === -1,
+ page = all ? 0 : Math.ceil( start / len ),
+ pages = all ? 1 : Math.ceil( visRecords / len ),
+ buttons = plugin(page, pages),
+ i, ien;
+
+ for ( i=0, ien=features.p.length ; i records )
+ {
+ start = 0;
+ }
+ }
+ else if ( action == "first" )
+ {
+ start = 0;
+ }
+ else if ( action == "previous" )
+ {
+ start = len >= 0 ?
+ start - len :
+ 0;
+
+ if ( start < 0 )
+ {
+ start = 0;
+ }
+ }
+ else if ( action == "next" )
+ {
+ if ( start + len < records )
+ {
+ start += len;
+ }
+ }
+ else if ( action == "last" )
+ {
+ start = Math.floor( (records-1) / len) * len;
+ }
+ else
+ {
+ _fnLog( settings, 0, "Unknown paging action: "+action, 5 );
+ }
+
+ var changed = settings._iDisplayStart !== start;
+ settings._iDisplayStart = start;
+
+ if ( changed ) {
+ _fnCallbackFire( settings, null, 'page', [settings] );
+
+ if ( redraw ) {
+ _fnDraw( settings );
+ }
+ }
+
+ return changed;
+ }
+
+
+
+ /**
+ * Generate the node required for the processing node
+ * @param {object} settings dataTables settings object
+ * @returns {node} Processing element
+ * @memberof DataTable#oApi
+ */
+ function _fnFeatureHtmlProcessing ( settings )
+ {
+ return $('', {
+ 'id': ! settings.aanFeatures.r ? settings.sTableId+'_processing' : null,
+ 'class': settings.oClasses.sProcessing
+ } )
+ .html( settings.oLanguage.sProcessing )
+ .insertBefore( settings.nTable )[0];
+ }
+
+
+ /**
+ * Display or hide the processing indicator
+ * @param {object} settings dataTables settings object
+ * @param {bool} show Show the processing indicator (true) or not (false)
+ * @memberof DataTable#oApi
+ */
+ function _fnProcessingDisplay ( settings, show )
+ {
+ if ( settings.oFeatures.bProcessing ) {
+ $(settings.aanFeatures.r).css( 'display', show ? 'block' : 'none' );
+ }
+
+ _fnCallbackFire( settings, null, 'processing', [settings, show] );
+ }
+
+ /**
+ * Add any control elements for the table - specifically scrolling
+ * @param {object} settings dataTables settings object
+ * @returns {node} Node to add to the DOM
+ * @memberof DataTable#oApi
+ */
+ function _fnFeatureHtmlTable ( settings )
+ {
+ var table = $(settings.nTable);
+
+ // Add the ARIA grid role to the table
+ table.attr( 'role', 'grid' );
+
+ // Scrolling from here on in
+ var scroll = settings.oScroll;
+
+ if ( scroll.sX === '' && scroll.sY === '' ) {
+ return settings.nTable;
+ }
+
+ var scrollX = scroll.sX;
+ var scrollY = scroll.sY;
+ var classes = settings.oClasses;
+ var caption = table.children('caption');
+ var captionSide = caption.length ? caption[0]._captionSide : null;
+ var headerClone = $( table[0].cloneNode(false) );
+ var footerClone = $( table[0].cloneNode(false) );
+ var footer = table.children('tfoot');
+ var _div = '';
+ var size = function ( s ) {
+ return !s ? null : _fnStringToCss( s );
+ };
+
+ // This is fairly messy, but with x scrolling enabled, if the table has a
+ // width attribute, regardless of any width applied using the column width
+ // options, the browser will shrink or grow the table as needed to fit into
+ // that 100%. That would make the width options useless. So we remove it.
+ // This is okay, under the assumption that width:100% is applied to the
+ // table in CSS (it is in the default stylesheet) which will set the table
+ // width as appropriate (the attribute and css behave differently...)
+ if ( scroll.sX && table.attr('width') === '100%' ) {
+ table.removeAttr('width');
+ }
+
+ if ( ! footer.length ) {
+ footer = null;
+ }
+
+ /*
+ * The HTML structure that we want to generate in this function is:
+ * div - scroller
+ * div - scroll head
+ * div - scroll head inner
+ * table - scroll head table
+ * thead - thead
+ * div - scroll body
+ * table - table (master table)
+ * thead - thead clone for sizing
+ * tbody - tbody
+ * div - scroll foot
+ * div - scroll foot inner
+ * table - scroll foot table
+ * tfoot - tfoot
+ */
+ var scroller = $( _div, { 'class': classes.sScrollWrapper } )
+ .append(
+ $(_div, { 'class': classes.sScrollHead } )
+ .css( {
+ overflow: 'hidden',
+ position: 'relative',
+ border: 0,
+ width: scrollX ? size(scrollX) : '100%'
+ } )
+ .append(
+ $(_div, { 'class': classes.sScrollHeadInner } )
+ .css( {
+ 'box-sizing': 'content-box',
+ width: scroll.sXInner || '100%'
+ } )
+ .append(
+ headerClone
+ .removeAttr('id')
+ .css( 'margin-left', 0 )
+ .append(
+ table.children('thead')
+ )
+ )
+ )
+ .append( captionSide === 'top' ? caption : null )
+ )
+ .append(
+ $(_div, { 'class': classes.sScrollBody } )
+ .css( {
+ overflow: 'auto',
+ height: size( scrollY ),
+ width: size( scrollX )
+ } )
+ .append( table )
+ );
+
+ if ( footer ) {
+ scroller.append(
+ $(_div, { 'class': classes.sScrollFoot } )
+ .css( {
+ overflow: 'hidden',
+ border: 0,
+ width: scrollX ? size(scrollX) : '100%'
+ } )
+ .append(
+ $(_div, { 'class': classes.sScrollFootInner } )
+ .append(
+ footerClone
+ .removeAttr('id')
+ .css( 'margin-left', 0 )
+ .append(
+ table.children('tfoot')
+ )
+ )
+ )
+ .append( captionSide === 'bottom' ? caption : null )
+ );
+ }
+
+ var children = scroller.children();
+ var scrollHead = children[0];
+ var scrollBody = children[1];
+ var scrollFoot = footer ? children[2] : null;
+
+ // When the body is scrolled, then we also want to scroll the headers
+ if ( scrollX ) {
+ $(scrollBody).scroll( function (e) {
+ var scrollLeft = this.scrollLeft;
+
+ scrollHead.scrollLeft = scrollLeft;
+
+ if ( footer ) {
+ scrollFoot.scrollLeft = scrollLeft;
+ }
+ } );
+ }
+
+ settings.nScrollHead = scrollHead;
+ settings.nScrollBody = scrollBody;
+ settings.nScrollFoot = scrollFoot;
+
+ // On redraw - align columns
+ settings.aoDrawCallback.push( {
+ "fn": _fnScrollDraw,
+ "sName": "scrolling"
+ } );
+
+ return scroller[0];
+ }
+
+
+
+ /**
+ * Update the header, footer and body tables for resizing - i.e. column
+ * alignment.
+ *
+ * Welcome to the most horrible function DataTables. The process that this
+ * function follows is basically:
+ * 1. Re-create the table inside the scrolling div
+ * 2. Take live measurements from the DOM
+ * 3. Apply the measurements to align the columns
+ * 4. Clean up
+ *
+ * @param {object} settings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+ function _fnScrollDraw ( settings )
+ {
+ // Given that this is such a monster function, a lot of variables are use
+ // to try and keep the minimised size as small as possible
+ var
+ scroll = settings.oScroll,
+ scrollX = scroll.sX,
+ scrollXInner = scroll.sXInner,
+ scrollY = scroll.sY,
+ barWidth = scroll.iBarWidth,
+ divHeader = $(settings.nScrollHead),
+ divHeaderStyle = divHeader[0].style,
+ divHeaderInner = divHeader.children('div'),
+ divHeaderInnerStyle = divHeaderInner[0].style,
+ divHeaderTable = divHeaderInner.children('table'),
+ divBodyEl = settings.nScrollBody,
+ divBody = $(divBodyEl),
+ divBodyStyle = divBodyEl.style,
+ divFooter = $(settings.nScrollFoot),
+ divFooterInner = divFooter.children('div'),
+ divFooterTable = divFooterInner.children('table'),
+ header = $(settings.nTHead),
+ table = $(settings.nTable),
+ tableEl = table[0],
+ tableStyle = tableEl.style,
+ footer = settings.nTFoot ? $(settings.nTFoot) : null,
+ browser = settings.oBrowser,
+ ie67 = browser.bScrollOversize,
+ headerTrgEls, footerTrgEls,
+ headerSrcEls, footerSrcEls,
+ headerCopy, footerCopy,
+ headerWidths=[], footerWidths=[],
+ headerContent=[],
+ idx, correction, sanityWidth,
+ zeroOut = function(nSizer) {
+ var style = nSizer.style;
+ style.paddingTop = "0";
+ style.paddingBottom = "0";
+ style.borderTopWidth = "0";
+ style.borderBottomWidth = "0";
+ style.height = 0;
+ };
+
+ /*
+ * 1. Re-create the table inside the scrolling div
+ */
+
+ // Remove the old minimised thead and tfoot elements in the inner table
+ table.children('thead, tfoot').remove();
+
+ // Clone the current header and footer elements and then place it into the inner table
+ headerCopy = header.clone().prependTo( table );
+ headerTrgEls = header.find('tr'); // original header is in its own table
+ headerSrcEls = headerCopy.find('tr');
+ headerCopy.find('th, td').removeAttr('tabindex');
+
+ if ( footer ) {
+ footerCopy = footer.clone().prependTo( table );
+ footerTrgEls = footer.find('tr'); // the original tfoot is in its own table and must be sized
+ footerSrcEls = footerCopy.find('tr');
+ }
+
+
+ /*
+ * 2. Take live measurements from the DOM - do not alter the DOM itself!
+ */
+
+ // Remove old sizing and apply the calculated column widths
+ // Get the unique column headers in the newly created (cloned) header. We want to apply the
+ // calculated sizes to this header
+ if ( ! scrollX )
+ {
+ divBodyStyle.width = '100%';
+ divHeader[0].style.width = '100%';
+ }
+
+ $.each( _fnGetUniqueThs( settings, headerCopy ), function ( i, el ) {
+ idx = _fnVisibleToColumnIndex( settings, i );
+ el.style.width = settings.aoColumns[idx].sWidth;
+ } );
+
+ if ( footer ) {
+ _fnApplyToChildren( function(n) {
+ n.style.width = "";
+ }, footerSrcEls );
+ }
+
+ // If scroll collapse is enabled, when we put the headers back into the body for sizing, we
+ // will end up forcing the scrollbar to appear, making our measurements wrong for when we
+ // then hide it (end of this function), so add the header height to the body scroller.
+ if ( scroll.bCollapse && scrollY !== "" ) {
+ divBodyStyle.height = (divBody[0].offsetHeight + header[0].offsetHeight)+"px";
+ }
+
+ // Size the table as a whole
+ sanityWidth = table.outerWidth();
+ if ( scrollX === "" ) {
+ // No x scrolling
+ tableStyle.width = "100%";
+
+ // IE7 will make the width of the table when 100% include the scrollbar
+ // - which is shouldn't. When there is a scrollbar we need to take this
+ // into account.
+ if ( ie67 && (table.find('tbody').height() > divBodyEl.offsetHeight ||
+ divBody.css('overflow-y') == "scroll")
+ ) {
+ tableStyle.width = _fnStringToCss( table.outerWidth() - barWidth);
+ }
+ }
+ else
+ {
+ // x scrolling
+ if ( scrollXInner !== "" ) {
+ // x scroll inner has been given - use it
+ tableStyle.width = _fnStringToCss(scrollXInner);
+ }
+ else if ( sanityWidth == divBody.width() && divBody.height() < table.height() ) {
+ // There is y-scrolling - try to take account of the y scroll bar
+ tableStyle.width = _fnStringToCss( sanityWidth-barWidth );
+ if ( table.outerWidth() > sanityWidth-barWidth ) {
+ // Not possible to take account of it
+ tableStyle.width = _fnStringToCss( sanityWidth );
+ }
+ }
+ else {
+ // When all else fails
+ tableStyle.width = _fnStringToCss( sanityWidth );
+ }
+ }
+
+ // Recalculate the sanity width - now that we've applied the required width,
+ // before it was a temporary variable. This is required because the column
+ // width calculation is done before this table DOM is created.
+ sanityWidth = table.outerWidth();
+
+ // Hidden header should have zero height, so remove padding and borders. Then
+ // set the width based on the real headers
+
+ // Apply all styles in one pass
+ _fnApplyToChildren( zeroOut, headerSrcEls );
+
+ // Read all widths in next pass
+ _fnApplyToChildren( function(nSizer) {
+ headerContent.push( nSizer.innerHTML );
+ headerWidths.push( _fnStringToCss( $(nSizer).css('width') ) );
+ }, headerSrcEls );
+
+ // Apply all widths in final pass
+ _fnApplyToChildren( function(nToSize, i) {
+ nToSize.style.width = headerWidths[i];
+ }, headerTrgEls );
+
+ $(headerSrcEls).height(0);
+
+ /* Same again with the footer if we have one */
+ if ( footer )
+ {
+ _fnApplyToChildren( zeroOut, footerSrcEls );
+
+ _fnApplyToChildren( function(nSizer) {
+ footerWidths.push( _fnStringToCss( $(nSizer).css('width') ) );
+ }, footerSrcEls );
+
+ _fnApplyToChildren( function(nToSize, i) {
+ nToSize.style.width = footerWidths[i];
+ }, footerTrgEls );
+
+ $(footerSrcEls).height(0);
+ }
+
+
+ /*
+ * 3. Apply the measurements
+ */
+
+ // "Hide" the header and footer that we used for the sizing. We need to keep
+ // the content of the cell so that the width applied to the header and body
+ // both match, but we want to hide it completely. We want to also fix their
+ // width to what they currently are
+ _fnApplyToChildren( function(nSizer, i) {
+ nSizer.innerHTML = '
'+headerContent[i]+'
';
+ nSizer.style.width = headerWidths[i];
+ }, headerSrcEls );
+
+ if ( footer )
+ {
+ _fnApplyToChildren( function(nSizer, i) {
+ nSizer.innerHTML = "";
+ nSizer.style.width = footerWidths[i];
+ }, footerSrcEls );
+ }
+
+ // Sanity check that the table is of a sensible width. If not then we are going to get
+ // misalignment - try to prevent this by not allowing the table to shrink below its min width
+ if ( table.outerWidth() < sanityWidth )
+ {
+ // The min width depends upon if we have a vertical scrollbar visible or not */
+ correction = ((divBodyEl.scrollHeight > divBodyEl.offsetHeight ||
+ divBody.css('overflow-y') == "scroll")) ?
+ sanityWidth+barWidth :
+ sanityWidth;
+
+ // IE6/7 are a law unto themselves...
+ if ( ie67 && (divBodyEl.scrollHeight >
+ divBodyEl.offsetHeight || divBody.css('overflow-y') == "scroll")
+ ) {
+ tableStyle.width = _fnStringToCss( correction-barWidth );
+ }
+
+ // And give the user a warning that we've stopped the table getting too small
+ if ( scrollX === "" || scrollXInner !== "" ) {
+ _fnLog( settings, 1, 'Possible column misalignment', 6 );
+ }
+ }
+ else
+ {
+ correction = '100%';
+ }
+
+ // Apply to the container elements
+ divBodyStyle.width = _fnStringToCss( correction );
+ divHeaderStyle.width = _fnStringToCss( correction );
+
+ if ( footer ) {
+ settings.nScrollFoot.style.width = _fnStringToCss( correction );
+ }
+
+
+ /*
+ * 4. Clean up
+ */
+ if ( ! scrollY ) {
+ /* IE7< puts a vertical scrollbar in place (when it shouldn't be) due to subtracting
+ * the scrollbar height from the visible display, rather than adding it on. We need to
+ * set the height in order to sort this. Don't want to do it in any other browsers.
+ */
+ if ( ie67 ) {
+ divBodyStyle.height = _fnStringToCss( tableEl.offsetHeight+barWidth );
+ }
+ }
+
+ if ( scrollY && scroll.bCollapse ) {
+ divBodyStyle.height = _fnStringToCss( scrollY );
+
+ var iExtra = (scrollX && tableEl.offsetWidth > divBodyEl.offsetWidth) ?
+ barWidth :
+ 0;
+
+ if ( tableEl.offsetHeight < divBodyEl.offsetHeight ) {
+ divBodyStyle.height = _fnStringToCss( tableEl.offsetHeight+iExtra );
+ }
+ }
+
+ /* Finally set the width's of the header and footer tables */
+ var iOuterWidth = table.outerWidth();
+ divHeaderTable[0].style.width = _fnStringToCss( iOuterWidth );
+ divHeaderInnerStyle.width = _fnStringToCss( iOuterWidth );
+
+ // Figure out if there are scrollbar present - if so then we need a the header and footer to
+ // provide a bit more space to allow "overflow" scrolling (i.e. past the scrollbar)
+ var bScrolling = table.height() > divBodyEl.clientHeight || divBody.css('overflow-y') == "scroll";
+ var padding = 'padding' + (browser.bScrollbarLeft ? 'Left' : 'Right' );
+ divHeaderInnerStyle[ padding ] = bScrolling ? barWidth+"px" : "0px";
+
+ if ( footer ) {
+ divFooterTable[0].style.width = _fnStringToCss( iOuterWidth );
+ divFooterInner[0].style.width = _fnStringToCss( iOuterWidth );
+ divFooterInner[0].style[padding] = bScrolling ? barWidth+"px" : "0px";
+ }
+
+ /* Adjust the position of the header in case we loose the y-scrollbar */
+ divBody.scroll();
+
+ /* If sorting or filtering has occurred, jump the scrolling back to the top */
+ if ( settings.bSorted || settings.bFiltered ) {
+ divBodyEl.scrollTop = 0;
+ }
+ }
+
+
+
+ /**
+ * Apply a given function to the display child nodes of an element array (typically
+ * TD children of TR rows
+ * @param {function} fn Method to apply to the objects
+ * @param array {nodes} an1 List of elements to look through for display children
+ * @param array {nodes} an2 Another list (identical structure to the first) - optional
+ * @memberof DataTable#oApi
+ */
+ function _fnApplyToChildren( fn, an1, an2 )
+ {
+ var index=0, i=0, iLen=an1.length;
+ var nNode1, nNode2;
+
+ while ( i < iLen ) {
+ nNode1 = an1[i].firstChild;
+ nNode2 = an2 ? an2[i].firstChild : null;
+
+ while ( nNode1 ) {
+ if ( nNode1.nodeType === 1 ) {
+ if ( an2 ) {
+ fn( nNode1, nNode2, index );
+ }
+ else {
+ fn( nNode1, index );
+ }
+
+ index++;
+ }
+
+ nNode1 = nNode1.nextSibling;
+ nNode2 = an2 ? nNode2.nextSibling : null;
+ }
+
+ i++;
+ }
+ }
+
+
+
+ var __re_html_remove = /<.*?>/g;
+
+
+ /**
+ * Calculate the width of columns for the table
+ * @param {object} oSettings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+ function _fnCalculateColumnWidths ( oSettings )
+ {
+ var
+ table = oSettings.nTable,
+ columns = oSettings.aoColumns,
+ scroll = oSettings.oScroll,
+ scrollY = scroll.sY,
+ scrollX = scroll.sX,
+ scrollXInner = scroll.sXInner,
+ columnCount = columns.length,
+ visibleColumns = _fnGetColumns( oSettings, 'bVisible' ),
+ headerCells = $('th', oSettings.nTHead),
+ tableWidthAttr = table.getAttribute('width'),
+ tableContainer = table.parentNode,
+ userInputs = false,
+ i, column, columnIdx, width, outerWidth;
+
+ /* Convert any user input sizes into pixel sizes */
+ for ( i=0 ; i
') );
+
+ // Remove any assigned widths from the footer (from scrolling)
+ tmpTable.find('tfoot th, tfoot td').css('width', '');
+
+ var tr = tmpTable.find( 'tbody tr' );
+
+ // Apply custom sizing to the cloned header
+ headerCells = _fnGetUniqueThs( oSettings, tmpTable.find('thead')[0] );
+
+ for ( i=0 ; i')
+ .css( 'width', _fnStringToCss( width ) )
+ .appendTo( parent || document.body );
+
+ var val = n[0].offsetWidth;
+ n.remove();
+
+ return val;
+ }
+
+
+ /**
+ * Adjust a table's width to take account of vertical scroll bar
+ * @param {object} oSettings dataTables settings object
+ * @param {node} n table node
+ * @memberof DataTable#oApi
+ */
+
+ function _fnScrollingWidthAdjust ( settings, n )
+ {
+ var scroll = settings.oScroll;
+
+ if ( scroll.sX || scroll.sY ) {
+ // When y-scrolling only, we want to remove the width of the scroll bar
+ // so the table + scroll bar will fit into the area available, otherwise
+ // we fix the table at its current size with no adjustment
+ var correction = ! scroll.sX ? scroll.iBarWidth : 0;
+ n.style.width = _fnStringToCss( $(n).outerWidth() - correction );
+ }
+ }
+
+
+ /**
+ * Get the widest node
+ * @param {object} settings dataTables settings object
+ * @param {int} colIdx column of interest
+ * @returns {node} widest table node
+ * @memberof DataTable#oApi
+ */
+ function _fnGetWidestNode( settings, colIdx )
+ {
+ var idx = _fnGetMaxLenString( settings, colIdx );
+ if ( idx < 0 ) {
+ return null;
+ }
+
+ var data = settings.aoData[ idx ];
+ return ! data.nTr ? // Might not have been created when deferred rendering
+ $('
').html( _fnGetCellData( settings, idx, colIdx, 'display' ) )[0] :
+ data.anCells[ colIdx ];
+ }
+
+
+ /**
+ * Get the maximum strlen for each data column
+ * @param {object} settings dataTables settings object
+ * @param {int} colIdx column of interest
+ * @returns {string} max string length for each column
+ * @memberof DataTable#oApi
+ */
+ function _fnGetMaxLenString( settings, colIdx )
+ {
+ var s, max=-1, maxIdx = -1;
+
+ for ( var i=0, ien=settings.aoData.length ; i max ) {
+ max = s.length;
+ maxIdx = i;
+ }
+ }
+
+ return maxIdx;
+ }
+
+
+ /**
+ * Append a CSS unit (only if required) to a string
+ * @param {string} value to css-ify
+ * @returns {string} value with css unit
+ * @memberof DataTable#oApi
+ */
+ function _fnStringToCss( s )
+ {
+ if ( s === null ) {
+ return '0px';
+ }
+
+ if ( typeof s == 'number' ) {
+ return s < 0 ?
+ '0px' :
+ s+'px';
+ }
+
+ // Check it has a unit character already
+ return s.match(/\d$/) ?
+ s+'px' :
+ s;
+ }
+
+
+ /**
+ * Get the width of a scroll bar in this browser being used
+ * @returns {int} width in pixels
+ * @memberof DataTable#oApi
+ */
+ function _fnScrollBarWidth ()
+ {
+ // On first run a static variable is set, since this is only needed once.
+ // Subsequent runs will just use the previously calculated value
+ if ( ! DataTable.__scrollbarWidth ) {
+ var inner = $('').css( {
+ width: '100%',
+ height: 200,
+ padding: 0
+ } )[0];
+
+ var outer = $('')
+ .css( {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ width: 200,
+ height: 150,
+ padding: 0,
+ overflow: 'hidden',
+ visibility: 'hidden'
+ } )
+ .append( inner )
+ .appendTo( 'body' );
+
+ var w1 = inner.offsetWidth;
+ outer.css( 'overflow', 'scroll' );
+ var w2 = inner.offsetWidth;
+
+ if ( w1 === w2 ) {
+ w2 = outer[0].clientWidth;
+ }
+
+ outer.remove();
+
+ DataTable.__scrollbarWidth = w1 - w2;
+ }
+
+ return DataTable.__scrollbarWidth;
+ }
+
+
+
+ function _fnSortFlatten ( settings )
+ {
+ var
+ i, iLen, k, kLen,
+ aSort = [],
+ aiOrig = [],
+ aoColumns = settings.aoColumns,
+ aDataSort, iCol, sType, srcCol,
+ fixed = settings.aaSortingFixed,
+ fixedObj = $.isPlainObject( fixed ),
+ nestedSort = [],
+ add = function ( a ) {
+ if ( a.length && ! $.isArray( a[0] ) ) {
+ // 1D array
+ nestedSort.push( a );
+ }
+ else {
+ // 2D array
+ nestedSort.push.apply( nestedSort, a );
+ }
+ };
+
+ // Build the sort array, with pre-fix and post-fix options if they have been
+ // specified
+ if ( $.isArray( fixed ) ) {
+ add( fixed );
+ }
+
+ if ( fixedObj && fixed.pre ) {
+ add( fixed.pre );
+ }
+
+ add( settings.aaSorting );
+
+ if (fixedObj && fixed.post ) {
+ add( fixed.post );
+ }
+
+ for ( i=0 ; iy ? 1 : 0;
+ if ( test !== 0 ) {
+ return sort.dir === 'asc' ? test : -test;
+ }
+ }
+
+ x = aiOrig[a];
+ y = aiOrig[b];
+ return xy ? 1 : 0;
+ } );
+ }
+ else {
+ // Depreciated - remove in 1.11 (providing a plug-in option)
+ // Not all sort types have formatting methods, so we have to call their sorting
+ // methods.
+ displayMaster.sort( function ( a, b ) {
+ var
+ x, y, k, l, test, sort, fn,
+ len=aSort.length,
+ dataA = aoData[a]._aSortData,
+ dataB = aoData[b]._aSortData;
+
+ for ( k=0 ; ky ? 1 : 0;
+ } );
+ }
+ }
+
+ /* Tell the draw function that we have sorted the data */
+ oSettings.bSorted = true;
+ }
+
+
+ function _fnSortAria ( settings )
+ {
+ var label;
+ var nextSort;
+ var columns = settings.aoColumns;
+ var aSort = _fnSortFlatten( settings );
+ var oAria = settings.oLanguage.oAria;
+
+ // ARIA attributes - need to loop all columns, to update all (removing old
+ // attributes as needed)
+ for ( var i=0, iLen=columns.length ; i/g, "" );
+ var th = col.nTh;
+
+ // IE7 is throwing an error when setting these properties with jQuery's
+ // attr() and removeAttr() methods...
+ th.removeAttribute('aria-sort');
+
+ /* In ARIA only the first sorting column can be marked as sorting - no multi-sort option */
+ if ( col.bSortable ) {
+ if ( aSort.length > 0 && aSort[0].col == i ) {
+ th.setAttribute('aria-sort', aSort[0].dir=="asc" ? "ascending" : "descending" );
+ nextSort = asSorting[ aSort[0].index+1 ] || asSorting[0];
+ }
+ else {
+ nextSort = asSorting[0];
+ }
+
+ label = sTitle + ( nextSort === "asc" ?
+ oAria.sSortAscending :
+ oAria.sSortDescending
+ );
+ }
+ else {
+ label = sTitle;
+ }
+
+ th.setAttribute('aria-label', label);
+ }
+ }
+
+
+ /**
+ * Function to run on user sort request
+ * @param {object} settings dataTables settings object
+ * @param {node} attachTo node to attach the handler to
+ * @param {int} colIdx column sorting index
+ * @param {boolean} [append=false] Append the requested sort to the existing
+ * sort if true (i.e. multi-column sort)
+ * @param {function} [callback] callback function
+ * @memberof DataTable#oApi
+ */
+ function _fnSortListener ( settings, colIdx, append, callback )
+ {
+ var col = settings.aoColumns[ colIdx ];
+ var sorting = settings.aaSorting;
+ var asSorting = col.asSorting;
+ var nextSortIdx;
+ var next = function ( a ) {
+ var idx = a._idx;
+ if ( idx === undefined ) {
+ idx = $.inArray( a[1], asSorting );
+ }
+
+ return idx+1 >= asSorting.length ? 0 : idx+1;
+ };
+
+ // If appending the sort then we are multi-column sorting
+ if ( append && settings.oFeatures.bSortMulti ) {
+ // Are we already doing some kind of sort on this column?
+ var sortIdx = $.inArray( colIdx, _pluck(sorting, '0') );
+
+ if ( sortIdx !== -1 ) {
+ // Yes, modify the sort
+ nextSortIdx = next( sorting[sortIdx] );
+
+ sorting[sortIdx][1] = asSorting[ nextSortIdx ];
+ sorting[sortIdx]._idx = nextSortIdx;
+ }
+ else {
+ // No sort on this column yet
+ sorting.push( [ colIdx, asSorting[0], 0 ] );
+ sorting[sorting.length-1]._idx = 0;
+ }
+ }
+ else if ( sorting.length && sorting[0][0] == colIdx ) {
+ // Single column - already sorting on this column, modify the sort
+ nextSortIdx = next( sorting[0] );
+
+ sorting.length = 1;
+ sorting[0][1] = asSorting[ nextSortIdx ];
+ sorting[0]._idx = nextSortIdx;
+ }
+ else {
+ // Single column - sort only on this column
+ sorting.length = 0;
+ sorting.push( [ colIdx, asSorting[0] ] );
+ sorting[0]._idx = 0;
+ }
+
+ // Run the sort by calling a full redraw
+ _fnReDraw( settings );
+
+ // callback used for async user interaction
+ if ( typeof callback == 'function' ) {
+ callback( settings );
+ }
+ }
+
+
+ /**
+ * Attach a sort handler (click) to a node
+ * @param {object} settings dataTables settings object
+ * @param {node} attachTo node to attach the handler to
+ * @param {int} colIdx column sorting index
+ * @param {function} [callback] callback function
+ * @memberof DataTable#oApi
+ */
+ function _fnSortAttachListener ( settings, attachTo, colIdx, callback )
+ {
+ var col = settings.aoColumns[ colIdx ];
+
+ _fnBindAction( attachTo, {}, function (e) {
+ /* If the column is not sortable - don't to anything */
+ if ( col.bSortable === false ) {
+ return;
+ }
+
+ // If processing is enabled use a timeout to allow the processing
+ // display to be shown - otherwise to it synchronously
+ if ( settings.oFeatures.bProcessing ) {
+ _fnProcessingDisplay( settings, true );
+
+ setTimeout( function() {
+ _fnSortListener( settings, colIdx, e.shiftKey, callback );
+
+ // In server-side processing, the draw callback will remove the
+ // processing display
+ if ( _fnDataSource( settings ) !== 'ssp' ) {
+ _fnProcessingDisplay( settings, false );
+ }
+ }, 0 );
+ }
+ else {
+ _fnSortListener( settings, colIdx, e.shiftKey, callback );
+ }
+ } );
+ }
+
+
+ /**
+ * Set the sorting classes on table's body, Note: it is safe to call this function
+ * when bSort and bSortClasses are false
+ * @param {object} oSettings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+ function _fnSortingClasses( settings )
+ {
+ var oldSort = settings.aLastSort;
+ var sortClass = settings.oClasses.sSortColumn;
+ var sort = _fnSortFlatten( settings );
+ var features = settings.oFeatures;
+ var i, ien, colIdx;
+
+ if ( features.bSort && features.bSortClasses ) {
+ // Remove old sorting classes
+ for ( i=0, ien=oldSort.length ; i 0 && oData.iCreate < +new Date() - (duration*1000) ) {
+ return;
+ }
+
+ // Number of columns have changed - all bets are off, no restore of settings
+ if ( columns.length !== oData.aoSearchCols.length ) {
+ return;
+ }
+
+ /* Store the saved state so it might be accessed at any time */
+ oSettings.oLoadedState = $.extend( true, {}, oData );
+
+ /* Restore key features */
+ oSettings._iDisplayStart = oData.iStart;
+ oSettings.iInitDisplayStart = oData.iStart;
+ oSettings._iDisplayLength = oData.iLength;
+ oSettings.aaSorting = $.map( oData.aaSorting, function ( col, i ) {
+ return col[0] >= columns.length ?
+ [ 0, col[1] ] :
+ col;
+ } );
+
+ /* Search filtering */
+ $.extend( oSettings.oPreviousSearch, oData.oSearch );
+ $.extend( true, oSettings.aoPreSearchCols, oData.aoSearchCols );
+
+ /* Column visibility state */
+ var visColumns = oData.abVisCols;
+ for ( i=0, ien=visColumns.length ; i
+ *
1D array of data - add a single row with the data provided
+ *
2D array of arrays - add multiple rows in a single call
+ *
object - data object when using mData
+ *
array of objects - multiple data objects when using mData
+ *
+ * @param {bool} [redraw=true] redraw the table or not
+ * @returns {array} An array of integers, representing the list of indexes in
+ * aoData ({@link DataTable.models.oSettings}) that have been added to
+ * the table.
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * // Global var for counter
+ * var giCount = 2;
+ *
+ * $(document).ready(function() {
+ * $('#example').dataTable();
+ * } );
+ *
+ * function fnClickAddRow() {
+ * $('#example').dataTable().fnAddData( [
+ * giCount+".1",
+ * giCount+".2",
+ * giCount+".3",
+ * giCount+".4" ]
+ * );
+ *
+ * giCount++;
+ * }
+ */
+ this.fnAddData = function( data, redraw )
+ {
+ var api = this.api( true );
+
+ /* Check if we want to add multiple rows or not */
+ var rows = $.isArray(data) && ( $.isArray(data[0]) || $.isPlainObject(data[0]) ) ?
+ api.rows.add( data ) :
+ api.row.add( data );
+
+ if ( redraw === undefined || redraw ) {
+ api.draw();
+ }
+
+ return rows.flatten().toArray();
+ };
+
+
+ /**
+ * This function will make DataTables recalculate the column sizes, based on the data
+ * contained in the table and the sizes applied to the columns (in the DOM, CSS or
+ * through the sWidth parameter). This can be useful when the width of the table's
+ * parent element changes (for example a window resize).
+ * @param {boolean} [bRedraw=true] Redraw the table or not, you will typically want to
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable( {
+ * "sScrollY": "200px",
+ * "bPaginate": false
+ * } );
+ *
+ * $(window).bind('resize', function () {
+ * oTable.fnAdjustColumnSizing();
+ * } );
+ * } );
+ */
+ this.fnAdjustColumnSizing = function ( bRedraw )
+ {
+ var api = this.api( true ).columns.adjust();
+ var settings = api.settings()[0];
+ var scroll = settings.oScroll;
+
+ if ( bRedraw === undefined || bRedraw ) {
+ api.draw( false );
+ }
+ else if ( scroll.sX !== "" || scroll.sY !== "" ) {
+ /* If not redrawing, but scrolling, we want to apply the new column sizes anyway */
+ _fnScrollDraw( settings );
+ }
+ };
+
+
+ /**
+ * Quickly and simply clear a table
+ * @param {bool} [bRedraw=true] redraw the table or not
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...)
+ * oTable.fnClearTable();
+ * } );
+ */
+ this.fnClearTable = function( bRedraw )
+ {
+ var api = this.api( true ).clear();
+
+ if ( bRedraw === undefined || bRedraw ) {
+ api.draw();
+ }
+ };
+
+
+ /**
+ * The exact opposite of 'opening' a row, this function will close any rows which
+ * are currently 'open'.
+ * @param {node} nTr the table row to 'close'
+ * @returns {int} 0 on success, or 1 if failed (can't find the row)
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable;
+ *
+ * // 'open' an information row when a row is clicked on
+ * $('#example tbody tr').click( function () {
+ * if ( oTable.fnIsOpen(this) ) {
+ * oTable.fnClose( this );
+ * } else {
+ * oTable.fnOpen( this, "Temporary row opened", "info_row" );
+ * }
+ * } );
+ *
+ * oTable = $('#example').dataTable();
+ * } );
+ */
+ this.fnClose = function( nTr )
+ {
+ this.api( true ).row( nTr ).child.hide();
+ };
+
+
+ /**
+ * Remove a row for the table
+ * @param {mixed} target The index of the row from aoData to be deleted, or
+ * the TR element you want to delete
+ * @param {function|null} [callBack] Callback function
+ * @param {bool} [redraw=true] Redraw the table or not
+ * @returns {array} The row that was deleted
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Immediately remove the first row
+ * oTable.fnDeleteRow( 0 );
+ * } );
+ */
+ this.fnDeleteRow = function( target, callback, redraw )
+ {
+ var api = this.api( true );
+ var rows = api.rows( target );
+ var settings = rows.settings()[0];
+ var data = settings.aoData[ rows[0][0] ];
+
+ rows.remove();
+
+ if ( callback ) {
+ callback.call( this, settings, data );
+ }
+
+ if ( redraw === undefined || redraw ) {
+ api.draw();
+ }
+
+ return data;
+ };
+
+
+ /**
+ * Restore the table to it's original state in the DOM by removing all of DataTables
+ * enhancements, alterations to the DOM structure of the table and event listeners.
+ * @param {boolean} [remove=false] Completely remove the table from the DOM
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * // This example is fairly pointless in reality, but shows how fnDestroy can be used
+ * var oTable = $('#example').dataTable();
+ * oTable.fnDestroy();
+ * } );
+ */
+ this.fnDestroy = function ( remove )
+ {
+ this.api( true ).destroy( remove );
+ };
+
+
+ /**
+ * Redraw the table
+ * @param {bool} [complete=true] Re-filter and resort (if enabled) the table before the draw.
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Re-draw the table - you wouldn't want to do it here, but it's an example :-)
+ * oTable.fnDraw();
+ * } );
+ */
+ this.fnDraw = function( complete )
+ {
+ // Note that this isn't an exact match to the old call to _fnDraw - it takes
+ // into account the new data, but can old position.
+ this.api( true ).draw( ! complete );
+ };
+
+
+ /**
+ * Filter the input based on data
+ * @param {string} sInput String to filter the table on
+ * @param {int|null} [iColumn] Column to limit filtering to
+ * @param {bool} [bRegex=false] Treat as regular expression or not
+ * @param {bool} [bSmart=true] Perform smart filtering or not
+ * @param {bool} [bShowGlobal=true] Show the input global filter in it's input box(es)
+ * @param {bool} [bCaseInsensitive=true] Do case-insensitive matching (true) or not (false)
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Sometime later - filter...
+ * oTable.fnFilter( 'test string' );
+ * } );
+ */
+ this.fnFilter = function( sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseInsensitive )
+ {
+ var api = this.api( true );
+
+ if ( iColumn === null || iColumn === undefined ) {
+ api.search( sInput, bRegex, bSmart, bCaseInsensitive );
+ }
+ else {
+ api.column( iColumn ).search( sInput, bRegex, bSmart, bCaseInsensitive );
+ }
+
+ api.draw();
+ };
+
+
+ /**
+ * Get the data for the whole table, an individual row or an individual cell based on the
+ * provided parameters.
+ * @param {int|node} [src] A TR row node, TD/TH cell node or an integer. If given as
+ * a TR node then the data source for the whole row will be returned. If given as a
+ * TD/TH cell node then iCol will be automatically calculated and the data for the
+ * cell returned. If given as an integer, then this is treated as the aoData internal
+ * data index for the row (see fnGetPosition) and the data for that row used.
+ * @param {int} [col] Optional column index that you want the data of.
+ * @returns {array|object|string} If mRow is undefined, then the data for all rows is
+ * returned. If mRow is defined, just data for that row, and is iCol is
+ * defined, only data for the designated cell is returned.
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * // Row data
+ * $(document).ready(function() {
+ * oTable = $('#example').dataTable();
+ *
+ * oTable.$('tr').click( function () {
+ * var data = oTable.fnGetData( this );
+ * // ... do something with the array / object of data for the row
+ * } );
+ * } );
+ *
+ * @example
+ * // Individual cell data
+ * $(document).ready(function() {
+ * oTable = $('#example').dataTable();
+ *
+ * oTable.$('td').click( function () {
+ * var sData = oTable.fnGetData( this );
+ * alert( 'The cell clicked on had the value of '+sData );
+ * } );
+ * } );
+ */
+ this.fnGetData = function( src, col )
+ {
+ var api = this.api( true );
+
+ if ( src !== undefined ) {
+ var type = src.nodeName ? src.nodeName.toLowerCase() : '';
+
+ return col !== undefined || type == 'td' || type == 'th' ?
+ api.cell( src, col ).data() :
+ api.row( src ).data() || null;
+ }
+
+ return api.data().toArray();
+ };
+
+
+ /**
+ * Get an array of the TR nodes that are used in the table's body. Note that you will
+ * typically want to use the '$' API method in preference to this as it is more
+ * flexible.
+ * @param {int} [iRow] Optional row index for the TR element you want
+ * @returns {array|node} If iRow is undefined, returns an array of all TR elements
+ * in the table's body, or iRow is defined, just the TR element requested.
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Get the nodes from the table
+ * var nNodes = oTable.fnGetNodes( );
+ * } );
+ */
+ this.fnGetNodes = function( iRow )
+ {
+ var api = this.api( true );
+
+ return iRow !== undefined ?
+ api.row( iRow ).node() :
+ api.rows().nodes().flatten().toArray();
+ };
+
+
+ /**
+ * Get the array indexes of a particular cell from it's DOM element
+ * and column index including hidden columns
+ * @param {node} node this can either be a TR, TD or TH in the table's body
+ * @returns {int} If nNode is given as a TR, then a single index is returned, or
+ * if given as a cell, an array of [row index, column index (visible),
+ * column index (all)] is given.
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * $('#example tbody td').click( function () {
+ * // Get the position of the current data from the node
+ * var aPos = oTable.fnGetPosition( this );
+ *
+ * // Get the data array for this row
+ * var aData = oTable.fnGetData( aPos[0] );
+ *
+ * // Update the data array and return the value
+ * aData[ aPos[1] ] = 'clicked';
+ * this.innerHTML = 'clicked';
+ * } );
+ *
+ * // Init DataTables
+ * oTable = $('#example').dataTable();
+ * } );
+ */
+ this.fnGetPosition = function( node )
+ {
+ var api = this.api( true );
+ var nodeName = node.nodeName.toUpperCase();
+
+ if ( nodeName == 'TR' ) {
+ return api.row( node ).index();
+ }
+ else if ( nodeName == 'TD' || nodeName == 'TH' ) {
+ var cell = api.cell( node ).index();
+
+ return [
+ cell.row,
+ cell.columnVisible,
+ cell.column
+ ];
+ }
+ return null;
+ };
+
+
+ /**
+ * Check to see if a row is 'open' or not.
+ * @param {node} nTr the table row to check
+ * @returns {boolean} true if the row is currently open, false otherwise
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable;
+ *
+ * // 'open' an information row when a row is clicked on
+ * $('#example tbody tr').click( function () {
+ * if ( oTable.fnIsOpen(this) ) {
+ * oTable.fnClose( this );
+ * } else {
+ * oTable.fnOpen( this, "Temporary row opened", "info_row" );
+ * }
+ * } );
+ *
+ * oTable = $('#example').dataTable();
+ * } );
+ */
+ this.fnIsOpen = function( nTr )
+ {
+ return this.api( true ).row( nTr ).child.isShown();
+ };
+
+
+ /**
+ * This function will place a new row directly after a row which is currently
+ * on display on the page, with the HTML contents that is passed into the
+ * function. This can be used, for example, to ask for confirmation that a
+ * particular record should be deleted.
+ * @param {node} nTr The table row to 'open'
+ * @param {string|node|jQuery} mHtml The HTML to put into the row
+ * @param {string} sClass Class to give the new TD cell
+ * @returns {node} The row opened. Note that if the table row passed in as the
+ * first parameter, is not found in the table, this method will silently
+ * return.
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable;
+ *
+ * // 'open' an information row when a row is clicked on
+ * $('#example tbody tr').click( function () {
+ * if ( oTable.fnIsOpen(this) ) {
+ * oTable.fnClose( this );
+ * } else {
+ * oTable.fnOpen( this, "Temporary row opened", "info_row" );
+ * }
+ * } );
+ *
+ * oTable = $('#example').dataTable();
+ * } );
+ */
+ this.fnOpen = function( nTr, mHtml, sClass )
+ {
+ return this.api( true )
+ .row( nTr )
+ .child( mHtml, sClass )
+ .show()
+ .child()[0];
+ };
+
+
+ /**
+ * Change the pagination - provides the internal logic for pagination in a simple API
+ * function. With this function you can have a DataTables table go to the next,
+ * previous, first or last pages.
+ * @param {string|int} mAction Paging action to take: "first", "previous", "next" or "last"
+ * or page number to jump to (integer), note that page 0 is the first page.
+ * @param {bool} [bRedraw=true] Redraw the table or not
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ * oTable.fnPageChange( 'next' );
+ * } );
+ */
+ this.fnPageChange = function ( mAction, bRedraw )
+ {
+ var api = this.api( true ).page( mAction );
+
+ if ( bRedraw === undefined || bRedraw ) {
+ api.draw(false);
+ }
+ };
+
+
+ /**
+ * Show a particular column
+ * @param {int} iCol The column whose display should be changed
+ * @param {bool} bShow Show (true) or hide (false) the column
+ * @param {bool} [bRedraw=true] Redraw the table or not
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Hide the second column after initialisation
+ * oTable.fnSetColumnVis( 1, false );
+ * } );
+ */
+ this.fnSetColumnVis = function ( iCol, bShow, bRedraw )
+ {
+ var api = this.api( true ).column( iCol ).visible( bShow );
+
+ if ( bRedraw === undefined || bRedraw ) {
+ api.columns.adjust().draw();
+ }
+ };
+
+
+ /**
+ * Get the settings for a particular table for external manipulation
+ * @returns {object} DataTables settings object. See
+ * {@link DataTable.models.oSettings}
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ * var oSettings = oTable.fnSettings();
+ *
+ * // Show an example parameter from the settings
+ * alert( oSettings._iDisplayStart );
+ * } );
+ */
+ this.fnSettings = function()
+ {
+ return _fnSettingsFromNode( this[_ext.iApiIndex] );
+ };
+
+
+ /**
+ * Sort the table by a particular column
+ * @param {int} iCol the data index to sort on. Note that this will not match the
+ * 'display index' if you have hidden data entries
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Sort immediately with columns 0 and 1
+ * oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );
+ * } );
+ */
+ this.fnSort = function( aaSort )
+ {
+ this.api( true ).order( aaSort ).draw();
+ };
+
+
+ /**
+ * Attach a sort listener to an element for a given column
+ * @param {node} nNode the element to attach the sort listener to
+ * @param {int} iColumn the column that a click on this node will sort on
+ * @param {function} [fnCallback] callback function when sort is run
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ *
+ * // Sort on column 1, when 'sorter' is clicked on
+ * oTable.fnSortListener( document.getElementById('sorter'), 1 );
+ * } );
+ */
+ this.fnSortListener = function( nNode, iColumn, fnCallback )
+ {
+ this.api( true ).order.listener( nNode, iColumn, fnCallback );
+ };
+
+
+ /**
+ * Update a table cell or row - this method will accept either a single value to
+ * update the cell with, an array of values with one element for each column or
+ * an object in the same format as the original data source. The function is
+ * self-referencing in order to make the multi column updates easier.
+ * @param {object|array|string} mData Data to update the cell/row with
+ * @param {node|int} mRow TR element you want to update or the aoData index
+ * @param {int} [iColumn] The column to update, give as null or undefined to
+ * update a whole row.
+ * @param {bool} [bRedraw=true] Redraw the table or not
+ * @param {bool} [bAction=true] Perform pre-draw actions or not
+ * @returns {int} 0 on success, 1 on error
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ * oTable.fnUpdate( 'Example update', 0, 0 ); // Single cell
+ * oTable.fnUpdate( ['a', 'b', 'c', 'd', 'e'], $('tbody tr')[0] ); // Row
+ * } );
+ */
+ this.fnUpdate = function( mData, mRow, iColumn, bRedraw, bAction )
+ {
+ var api = this.api( true );
+
+ if ( iColumn === undefined || iColumn === null ) {
+ api.row( mRow ).data( mData );
+ }
+ else {
+ api.cell( mRow, iColumn ).data( mData );
+ }
+
+ if ( bAction === undefined || bAction ) {
+ api.columns.adjust();
+ }
+
+ if ( bRedraw === undefined || bRedraw ) {
+ api.draw();
+ }
+ return 0;
+ };
+
+
+ /**
+ * Provide a common method for plug-ins to check the version of DataTables being used, in order
+ * to ensure compatibility.
+ * @param {string} sVersion Version string to check for, in the format "X.Y.Z". Note that the
+ * formats "X" and "X.Y" are also acceptable.
+ * @returns {boolean} true if this version of DataTables is greater or equal to the required
+ * version, or false if this version of DataTales is not suitable
+ * @method
+ * @dtopt API
+ * @deprecated Since v1.10
+ *
+ * @example
+ * $(document).ready(function() {
+ * var oTable = $('#example').dataTable();
+ * alert( oTable.fnVersionCheck( '1.9.0' ) );
+ * } );
+ */
+ this.fnVersionCheck = _ext.fnVersionCheck;
+
+
+ var _that = this;
+ var emptyInit = options === undefined;
+ var len = this.length;
+
+ if ( emptyInit ) {
+ options = {};
+ }
+
+ this.oApi = this.internal = _ext.internal;
+
+ // Extend with old style plug-in API methods
+ for ( var fn in DataTable.ext.internal ) {
+ if ( fn ) {
+ this[fn] = _fnExternApiFunc(fn);
+ }
+ }
+
+ this.each(function() {
+ // For each initialisation we want to give it a clean initialisation
+ // object that can be bashed around
+ var o = {};
+ var oInit = len > 1 ? // optimisation for single table case
+ _fnExtend( o, options, true ) :
+ options;
+
+ /*global oInit,_that,emptyInit*/
+ var i=0, iLen, j, jLen, k, kLen;
+ var sId = this.getAttribute( 'id' );
+ var bInitHandedOff = false;
+ var defaults = DataTable.defaults;
+
+
+ /* Sanity check */
+ if ( this.nodeName.toLowerCase() != 'table' )
+ {
+ _fnLog( null, 0, 'Non-table node initialisation ('+this.nodeName+')', 2 );
+ return;
+ }
+
+ /* Backwards compatibility for the defaults */
+ _fnCompatOpts( defaults );
+ _fnCompatCols( defaults.column );
+
+ /* Convert the camel-case defaults to Hungarian */
+ _fnCamelToHungarian( defaults, defaults, true );
+ _fnCamelToHungarian( defaults.column, defaults.column, true );
+
+ /* Setting up the initialisation object */
+ _fnCamelToHungarian( defaults, oInit );
+
+ /* Check to see if we are re-initialising a table */
+ var allSettings = DataTable.settings;
+ for ( i=0, iLen=allSettings.length ; i').appendTo(this);
+ }
+ oSettings.nTHead = thead[0];
+
+ var tbody = $(this).children('tbody');
+ if ( tbody.length === 0 )
+ {
+ tbody = $('').appendTo(this);
+ }
+ oSettings.nTBody = tbody[0];
+
+ var tfoot = $(this).children('tfoot');
+ if ( tfoot.length === 0 && captions.length > 0 && (oSettings.oScroll.sX !== "" || oSettings.oScroll.sY !== "") )
+ {
+ // If we are a scrolling table, and no footer has been given, then we need to create
+ // a tfoot element for the caption element to be appended to
+ tfoot = $('').appendTo(this);
+ }
+
+ if ( tfoot.length === 0 || tfoot.children().length === 0 ) {
+ $(this).addClass( oClasses.sNoFooter );
+ }
+ else if ( tfoot.length > 0 ) {
+ oSettings.nTFoot = tfoot[0];
+ _fnDetectHeader( oSettings.aoFooter, oSettings.nTFoot );
+ }
+
+ /* Check if there is data passing into the constructor */
+ if ( oInit.aaData )
+ {
+ for ( i=0 ; i idx ?
+ new _Api( ctx[idx], this[idx] ) :
+ null;
+ },
+
+
+ filter: function ( fn )
+ {
+ var a = [];
+
+ if ( __arrayProto.filter ) {
+ a = __arrayProto.filter.call( this, fn, this );
+ }
+ else {
+ // Compatibility for browsers without EMCA-252-5 (JS 1.6)
+ for ( var i=0, ien=this.length ; i 0 ) {
+ return ctx[0].json;
+ }
+
+ // else return undefined;
+ } );
+
+
+ /**
+ * Get the data submitted in the last Ajax request
+ */
+ _api_register( 'ajax.params()', function () {
+ var ctx = this.context;
+
+ if ( ctx.length > 0 ) {
+ return ctx[0].oAjaxData;
+ }
+
+ // else return undefined;
+ } );
+
+
+ /**
+ * Reload tables from the Ajax data source. Note that this function will
+ * automatically re-draw the table when the remote data has been loaded.
+ *
+ * @param {boolean} [reset=true] Reset (default) or hold the current paging
+ * position. A full re-sort and re-filter is performed when this method is
+ * called, which is why the pagination reset is the default action.
+ * @returns {DataTables.Api} this
+ */
+ _api_register( 'ajax.reload()', function ( callback, resetPaging ) {
+ return this.iterator( 'table', function (settings) {
+ __reload( settings, resetPaging===false, callback );
+ } );
+ } );
+
+
+ /**
+ * Get the current Ajax URL. Note that this returns the URL from the first
+ * table in the current context.
+ *
+ * @return {string} Current Ajax source URL
+ *//**
+ * Set the Ajax URL. Note that this will set the URL for all tables in the
+ * current context.
+ *
+ * @param {string} url URL to set.
+ * @returns {DataTables.Api} this
+ */
+ _api_register( 'ajax.url()', function ( url ) {
+ var ctx = this.context;
+
+ if ( url === undefined ) {
+ // get
+ if ( ctx.length === 0 ) {
+ return undefined;
+ }
+ ctx = ctx[0];
+
+ return ctx.ajax ?
+ $.isPlainObject( ctx.ajax ) ?
+ ctx.ajax.url :
+ ctx.ajax :
+ ctx.sAjaxSource;
+ }
+
+ // set
+ return this.iterator( 'table', function ( settings ) {
+ if ( $.isPlainObject( settings.ajax ) ) {
+ settings.ajax.url = url;
+ }
+ else {
+ settings.ajax = url;
+ }
+ // No need to consider sAjaxSource here since DataTables gives priority
+ // to `ajax` over `sAjaxSource`. So setting `ajax` here, renders any
+ // value of `sAjaxSource` redundant.
+ } );
+ } );
+
+
+ /**
+ * Load data from the newly set Ajax URL. Note that this method is only
+ * available when `ajax.url()` is used to set a URL. Additionally, this method
+ * has the same effect as calling `ajax.reload()` but is provided for
+ * convenience when setting a new URL. Like `ajax.reload()` it will
+ * automatically redraw the table once the remote data has been loaded.
+ *
+ * @returns {DataTables.Api} this
+ */
+ _api_register( 'ajax.url().load()', function ( callback, resetPaging ) {
+ // Same as a reload, but makes sense to present it for easy access after a
+ // url change
+ return this.iterator( 'table', function ( ctx ) {
+ __reload( ctx, resetPaging===false, callback );
+ } );
+ } );
+
+
+
+
+ var _selector_run = function ( selector, select )
+ {
+ var
+ out = [], res,
+ a, i, ien, j, jen;
+
+ // Can't just check for isArray here, as an API or jQuery instance might be
+ // given with their array like look
+ if ( ! selector || typeof selector === 'string' || selector.length === undefined ) {
+ selector = [ selector ];
+ }
+
+ for ( i=0, ien=selector.length ; i 0 ) {
+ // Assign the first element to the first item in the instance
+ // and truncate the instance and context
+ inst[0] = inst[i];
+ inst.length = 1;
+ inst.context = [ inst.context[i] ];
+
+ return inst;
+ }
+ }
+
+ // Not found - return an empty instance
+ inst.length = 0;
+ return inst;
+ };
+
+
+ var _selector_row_indexes = function ( settings, opts )
+ {
+ var
+ i, ien, tmp, a=[],
+ displayFiltered = settings.aiDisplay,
+ displayMaster = settings.aiDisplayMaster;
+
+ var
+ search = opts.search, // none, applied, removed
+ order = opts.order, // applied, current, index (original - compatibility with 1.9)
+ page = opts.page; // all, current
+
+ if ( _fnDataSource( settings ) == 'ssp' ) {
+ // In server-side processing mode, most options are irrelevant since
+ // rows not shown don't exist and the index order is the applied order
+ // Removed is a special case - for consistency just return an empty
+ // array
+ return search === 'removed' ?
+ [] :
+ _range( 0, displayMaster.length );
+ }
+ else if ( page == 'current' ) {
+ // Current page implies that order=current and fitler=applied, since it is
+ // fairly senseless otherwise, regardless of what order and search actually
+ // are
+ for ( i=settings._iDisplayStart, ien=settings.fnDisplayEnd() ; i
');
+ $('td', created)
+ .addClass( k )
+ .html( r )
+ [0].colSpan = _fnVisbleColumns( ctx );
+
+ rows.push( created[0] );
+ }
+ };
+
+ if ( $.isArray( data ) || data instanceof $ ) {
+ for ( var i=0, ien=data.length ; i 0 ) {
+ // On each draw, insert the required elements into the document
+ api.on( drawEvent, function () {
+ api.rows( {page:'current'} ).eq(0).each( function (idx) {
+ // Internal data grab
+ var row = settings.aoData[ idx ];
+
+ if ( row._detailsShow ) {
+ row._details.insertAfter( row.nTr );
+ }
+ } );
+ } );
+
+ // Column visibility change - update the colspan
+ api.on( colvisEvent, function ( e, settings, idx, vis ) {
+ // Update the colspan for the details rows (note, only if it already has
+ // a colspan)
+ var row, visible = _fnVisbleColumns( settings );
+
+ for ( var i=0, ien=settings.aoData.length ; i=0 count from left, <0 count from right)
+ * "{integer}:visIdx" - visible column index (i.e. translate to column index) (>=0 count from left, <0 count from right)
+ * "{integer}:visible" - alias for {integer}:visIdx (>=0 count from left, <0 count from right)
+ * "{string}:name" - column name
+ * "{string}" - jQuery selector on column header nodes
+ *
+ */
+
+ // can be an array of these items, comma separated list, or an array of comma
+ // separated lists
+
+ var __re_column_selector = /^(.*):(name|visIdx|visible)$/;
+
+ var __column_selector = function ( settings, selector, opts )
+ {
+ var
+ columns = settings.aoColumns,
+ names = _pluck( columns, 'sName' ),
+ nodes = _pluck( columns, 'nTh' );
+
+ return _selector_run( selector, function ( s ) {
+ var selInt = _intVal( s );
+
+ if ( s === '' ) {
+ // All columns
+ return _range( columns.length );
+ }
+ else if ( selInt !== null ) {
+ // Integer selector
+ return [ selInt >= 0 ?
+ selInt : // Count from left
+ columns.length + selInt // Count from right (+ because its a negative value)
+ ];
+ }
+ else {
+ var match = typeof s === 'string' ?
+ s.match( __re_column_selector ) :
+ '';
+
+ if ( match ) {
+ switch( match[2] ) {
+ case 'visIdx':
+ case 'visible':
+ var idx = parseInt( match[1], 10 );
+ // Visible index given, convert to column index
+ if ( idx < 0 ) {
+ // Counting from the right
+ var visColumns = $.map( columns, function (col,i) {
+ return col.bVisible ? i : null;
+ } );
+ return [ visColumns[ visColumns.length + idx ] ];
+ }
+ // Counting from the left
+ return [ _fnVisibleToColumnIndex( settings, idx ) ];
+
+ case 'name':
+ // match by name. `names` is column index complete and in order
+ return $.map( names, function (name, i) {
+ return name === match[1] ? i : null;
+ } );
+ }
+ }
+ else {
+ // jQuery selector on the TH elements for the columns
+ return $( nodes )
+ .filter( s )
+ .map( function () {
+ return $.inArray( this, nodes ); // `nodes` is column index complete and in order
+ } )
+ .toArray();
+ }
+ }
+ } );
+ };
+
+
+
+
+
+ var __setColumnVis = function ( settings, column, vis ) {
+ var
+ cols = settings.aoColumns,
+ col = cols[ column ],
+ data = settings.aoData,
+ row, cells, i, ien, tr;
+
+ // Get
+ if ( vis === undefined ) {
+ return col.bVisible;
+ }
+
+ // Set
+ // No change
+ if ( col.bVisible === vis ) {
+ return;
+ }
+
+ if ( vis ) {
+ // Insert column
+ // Need to decide if we should use appendChild or insertBefore
+ var insertBefore = $.inArray( true, _pluck(cols, 'bVisible'), column+1 );
+
+ for ( i=0, ien=data.length ; i iThat;
+ }
+
+ return true;
+ };
+
+
+ /**
+ * Check if a `
` node is a DataTable table already or not.
+ *
+ * @param {node|jquery|string} table Table node, jQuery object or jQuery
+ * selector for the table to test. Note that if more than more than one
+ * table is passed on, only the first will be checked
+ * @returns {boolean} true the table given is a DataTable, or false otherwise
+ * @static
+ * @dtopt API-Static
+ *
+ * @example
+ * if ( ! $.fn.DataTable.isDataTable( '#example' ) ) {
+ * $('#example').dataTable();
+ * }
+ */
+ DataTable.isDataTable = DataTable.fnIsDataTable = function ( table )
+ {
+ var t = $(table).get(0);
+ var is = false;
+
+ $.each( DataTable.settings, function (i, o) {
+ if ( o.nTable === t || o.nScrollHead === t || o.nScrollFoot === t ) {
+ is = true;
+ }
+ } );
+
+ return is;
+ };
+
+
+ /**
+ * Get all DataTable tables that have been initialised - optionally you can
+ * select to get only currently visible tables.
+ *
+ * @param {boolean} [visible=false] Flag to indicate if you want all (default)
+ * or visible tables only.
+ * @returns {array} Array of `table` nodes (not DataTable instances) which are
+ * DataTables
+ * @static
+ * @dtopt API-Static
+ *
+ * @example
+ * $.each( $.fn.dataTable.tables(true), function () {
+ * $(table).DataTable().columns.adjust();
+ * } );
+ */
+ DataTable.tables = DataTable.fnTables = function ( visible )
+ {
+ return jQuery.map( DataTable.settings, function (o) {
+ if ( !visible || (visible && $(o.nTable).is(':visible')) ) {
+ return o.nTable;
+ }
+ } );
+ };
+
+
+ /**
+ * Convert from camel case parameters to Hungarian notation. This is made public
+ * for the extensions to provide the same ability as DataTables core to accept
+ * either the 1.9 style Hungarian notation, or the 1.10+ style camelCase
+ * parameters.
+ *
+ * @param {object} src The model object which holds all parameters that can be
+ * mapped.
+ * @param {object} user The object to convert from camel case to Hungarian.
+ * @param {boolean} force When set to `true`, properties which already have a
+ * Hungarian value in the `user` object will be overwritten. Otherwise they
+ * won't be.
+ */
+ DataTable.camelToHungarian = _fnCamelToHungarian;
+
+
+
+ /**
+ *
+ */
+ _api_register( '$()', function ( selector, opts ) {
+ var
+ rows = this.rows( opts ).nodes(), // Get all rows
+ jqRows = $(rows);
+
+ return $( [].concat(
+ jqRows.filter( selector ).toArray(),
+ jqRows.find( selector ).toArray()
+ ) );
+ } );
+
+
+ // jQuery functions to operate on the tables
+ $.each( [ 'on', 'one', 'off' ], function (i, key) {
+ _api_register( key+'()', function ( /* event, handler */ ) {
+ var args = Array.prototype.slice.call(arguments);
+
+ // Add the `dt` namespace automatically if it isn't already present
+ if ( args[0].indexOf( '.dt' ) === -1 ) {
+ args[0] += '.dt';
+ }
+
+ var inst = $( this.tables().nodes() );
+ inst[key].apply( inst, args );
+ return this;
+ } );
+ } );
+
+
+ _api_register( 'clear()', function () {
+ return this.iterator( 'table', function ( settings ) {
+ _fnClearTable( settings );
+ } );
+ } );
+
+
+ _api_register( 'settings()', function () {
+ return new _Api( this.context, this.context );
+ } );
+
+
+ _api_register( 'data()', function () {
+ return this.iterator( 'table', function ( settings ) {
+ return _pluck( settings.aoData, '_aData' );
+ } ).flatten();
+ } );
+
+
+ _api_register( 'destroy()', function ( remove ) {
+ remove = remove || false;
+
+ return this.iterator( 'table', function ( settings ) {
+ var orig = settings.nTableWrapper.parentNode;
+ var classes = settings.oClasses;
+ var table = settings.nTable;
+ var tbody = settings.nTBody;
+ var thead = settings.nTHead;
+ var tfoot = settings.nTFoot;
+ var jqTable = $(table);
+ var jqTbody = $(tbody);
+ var jqWrapper = $(settings.nTableWrapper);
+ var rows = $.map( settings.aoData, function (r) { return r.nTr; } );
+ var i, ien;
+
+ // Flag to note that the table is currently being destroyed - no action
+ // should be taken
+ settings.bDestroying = true;
+
+ // Fire off the destroy callbacks for plug-ins etc
+ _fnCallbackFire( settings, "aoDestroyCallback", "destroy", [settings] );
+
+ // If not being removed from the document, make all columns visible
+ if ( ! remove ) {
+ new _Api( settings ).columns().visible( true );
+ }
+
+ // Blitz all `DT` namespaced events (these are internal events, the
+ // lowercase, `dt` events are user subscribed and they are responsible
+ // for removing them
+ jqWrapper.unbind('.DT').find(':not(tbody *)').unbind('.DT');
+ $(window).unbind('.DT-'+settings.sInstance);
+
+ // When scrolling we had to break the table up - restore it
+ if ( table != thead.parentNode ) {
+ jqTable.children('thead').detach();
+ jqTable.append( thead );
+ }
+
+ if ( tfoot && table != tfoot.parentNode ) {
+ jqTable.children('tfoot').detach();
+ jqTable.append( tfoot );
+ }
+
+ // Remove the DataTables generated nodes, events and classes
+ jqTable.detach();
+ jqWrapper.detach();
+
+ settings.aaSorting = [];
+ settings.aaSortingFixed = [];
+ _fnSortingClasses( settings );
+
+ $( rows ).removeClass( settings.asStripeClasses.join(' ') );
+
+ $('th, td', thead).removeClass( classes.sSortable+' '+
+ classes.sSortableAsc+' '+classes.sSortableDesc+' '+classes.sSortableNone
+ );
+
+ if ( settings.bJUI ) {
+ $('th span.'+classes.sSortIcon+ ', td span.'+classes.sSortIcon, thead).detach();
+ $('th, td', thead).each( function () {
+ var wrapper = $('div.'+classes.sSortJUIWrapper, this);
+ $(this).append( wrapper.contents() );
+ wrapper.detach();
+ } );
+ }
+
+ if ( ! remove && orig ) {
+ // insertBefore acts like appendChild if !arg[1]
+ orig.insertBefore( table, settings.nTableReinsertBefore );
+ }
+
+ // Add the TR elements back into the table in their original order
+ jqTbody.children().detach();
+ jqTbody.append( rows );
+
+ // Restore the width of the original table - was read from the style property,
+ // so we can restore directly to that
+ jqTable
+ .css( 'width', settings.sDestroyWidth )
+ .removeClass( classes.sTable );
+
+ // If the were originally stripe classes - then we add them back here.
+ // Note this is not fool proof (for example if not all rows had stripe
+ // classes - but it's a good effort without getting carried away
+ ien = settings.asDestroyStripes.length;
+
+ if ( ien ) {
+ jqTbody.children().each( function (i) {
+ $(this).addClass( settings.asDestroyStripes[i % ien] );
+ } );
+ }
+
+ /* Remove the settings object from the settings array */
+ var idx = $.inArray( settings, DataTable.settings );
+ if ( idx !== -1 ) {
+ DataTable.settings.splice( idx, 1 );
+ }
+ } );
+ } );
+
+
+ /**
+ * Version string for plug-ins to check compatibility. Allowed format is
+ * `a.b.c-d` where: a:int, b:int, c:int, d:string(dev|beta|alpha). `d` is used
+ * only for non-release builds. See http://semver.org/ for more information.
+ * @member
+ * @type string
+ * @default Version number
+ */
+ DataTable.version = "1.10.0";
+
+ /**
+ * Private data store, containing all of the settings objects that are
+ * created for the tables on a given page.
+ *
+ * Note that the `DataTable.settings` object is aliased to
+ * `jQuery.fn.dataTableExt` through which it may be accessed and
+ * manipulated, or `jQuery.fn.dataTable.settings`.
+ * @member
+ * @type array
+ * @default []
+ * @private
+ */
+ DataTable.settings = [];
+
+ /**
+ * Object models container, for the various models that DataTables has
+ * available to it. These models define the objects that are used to hold
+ * the active state and configuration of the table.
+ * @namespace
+ */
+ DataTable.models = {};
+
+
+
+ /**
+ * Template object for the way in which DataTables holds information about
+ * search information for the global filter and individual column filters.
+ * @namespace
+ */
+ DataTable.models.oSearch = {
+ /**
+ * Flag to indicate if the filtering should be case insensitive or not
+ * @type boolean
+ * @default true
+ */
+ "bCaseInsensitive": true,
+
+ /**
+ * Applied search term
+ * @type string
+ * @default Empty string
+ */
+ "sSearch": "",
+
+ /**
+ * Flag to indicate if the search term should be interpreted as a
+ * regular expression (true) or not (false) and therefore and special
+ * regex characters escaped.
+ * @type boolean
+ * @default false
+ */
+ "bRegex": false,
+
+ /**
+ * Flag to indicate if DataTables is to use its smart filtering or not.
+ * @type boolean
+ * @default true
+ */
+ "bSmart": true
+ };
+
+
+
+
+ /**
+ * Template object for the way in which DataTables holds information about
+ * each individual row. This is the object format used for the settings
+ * aoData array.
+ * @namespace
+ */
+ DataTable.models.oRow = {
+ /**
+ * TR element for the row
+ * @type node
+ * @default null
+ */
+ "nTr": null,
+
+ /**
+ * Array of TD elements for each row. This is null until the row has been
+ * created.
+ * @type array nodes
+ * @default []
+ */
+ "anCells": null,
+
+ /**
+ * Data object from the original data source for the row. This is either
+ * an array if using the traditional form of DataTables, or an object if
+ * using mData options. The exact type will depend on the passed in
+ * data from the data source, or will be an array if using DOM a data
+ * source.
+ * @type array|object
+ * @default []
+ */
+ "_aData": [],
+
+ /**
+ * Sorting data cache - this array is ostensibly the same length as the
+ * number of columns (although each index is generated only as it is
+ * needed), and holds the data that is used for sorting each column in the
+ * row. We do this cache generation at the start of the sort in order that
+ * the formatting of the sort data need be done only once for each cell
+ * per sort. This array should not be read from or written to by anything
+ * other than the master sorting methods.
+ * @type array
+ * @default null
+ * @private
+ */
+ "_aSortData": null,
+
+ /**
+ * Per cell filtering data cache. As per the sort data cache, used to
+ * increase the performance of the filtering in DataTables
+ * @type array
+ * @default null
+ * @private
+ */
+ "_aFilterData": null,
+
+ /**
+ * Filtering data cache. This is the same as the cell filtering cache, but
+ * in this case a string rather than an array. This is easily computed with
+ * a join on `_aFilterData`, but is provided as a cache so the join isn't
+ * needed on every search (memory traded for performance)
+ * @type array
+ * @default null
+ * @private
+ */
+ "_sFilterRow": null,
+
+ /**
+ * Cache of the class name that DataTables has applied to the row, so we
+ * can quickly look at this variable rather than needing to do a DOM check
+ * on className for the nTr property.
+ * @type string
+ * @default Empty string
+ * @private
+ */
+ "_sRowStripe": "",
+
+ /**
+ * Denote if the original data source was from the DOM, or the data source
+ * object. This is used for invalidating data, so DataTables can
+ * automatically read data from the original source, unless uninstructed
+ * otherwise.
+ * @type string
+ * @default null
+ * @private
+ */
+ "src": null
+ };
+
+
+ /**
+ * Template object for the column information object in DataTables. This object
+ * is held in the settings aoColumns array and contains all the information that
+ * DataTables needs about each individual column.
+ *
+ * Note that this object is related to {@link DataTable.defaults.column}
+ * but this one is the internal data store for DataTables's cache of columns.
+ * It should NOT be manipulated outside of DataTables. Any configuration should
+ * be done through the initialisation options.
+ * @namespace
+ */
+ DataTable.models.oColumn = {
+ /**
+ * Column index. This could be worked out on-the-fly with $.inArray, but it
+ * is faster to just hold it as a variable
+ * @type integer
+ * @default null
+ */
+ "idx": null,
+
+ /**
+ * A list of the columns that sorting should occur on when this column
+ * is sorted. That this property is an array allows multi-column sorting
+ * to be defined for a column (for example first name / last name columns
+ * would benefit from this). The values are integers pointing to the
+ * columns to be sorted on (typically it will be a single integer pointing
+ * at itself, but that doesn't need to be the case).
+ * @type array
+ */
+ "aDataSort": null,
+
+ /**
+ * Define the sorting directions that are applied to the column, in sequence
+ * as the column is repeatedly sorted upon - i.e. the first value is used
+ * as the sorting direction when the column if first sorted (clicked on).
+ * Sort it again (click again) and it will move on to the next index.
+ * Repeat until loop.
+ * @type array
+ */
+ "asSorting": null,
+
+ /**
+ * Flag to indicate if the column is searchable, and thus should be included
+ * in the filtering or not.
+ * @type boolean
+ */
+ "bSearchable": null,
+
+ /**
+ * Flag to indicate if the column is sortable or not.
+ * @type boolean
+ */
+ "bSortable": null,
+
+ /**
+ * Flag to indicate if the column is currently visible in the table or not
+ * @type boolean
+ */
+ "bVisible": null,
+
+ /**
+ * Store for manual type assignment using the `column.type` option. This
+ * is held in store so we can manipulate the column's `sType` property.
+ * @type string
+ * @default null
+ * @private
+ */
+ "_sManualType": null,
+
+ /**
+ * Flag to indicate if HTML5 data attributes should be used as the data
+ * source for filtering or sorting. True is either are.
+ * @type boolean
+ * @default false
+ * @private
+ */
+ "_bAttrSrc": false,
+
+ /**
+ * Developer definable function that is called whenever a cell is created (Ajax source,
+ * etc) or processed for input (DOM source). This can be used as a compliment to mRender
+ * allowing you to modify the DOM element (add background colour for example) when the
+ * element is available.
+ * @type function
+ * @param {element} nTd The TD node that has been created
+ * @param {*} sData The Data for the cell
+ * @param {array|object} oData The data for the whole row
+ * @param {int} iRow The row index for the aoData data store
+ * @default null
+ */
+ "fnCreatedCell": null,
+
+ /**
+ * Function to get data from a cell in a column. You should never
+ * access data directly through _aData internally in DataTables - always use
+ * the method attached to this property. It allows mData to function as
+ * required. This function is automatically assigned by the column
+ * initialisation method
+ * @type function
+ * @param {array|object} oData The data array/object for the array
+ * (i.e. aoData[]._aData)
+ * @param {string} sSpecific The specific data type you want to get -
+ * 'display', 'type' 'filter' 'sort'
+ * @returns {*} The data for the cell from the given row's data
+ * @default null
+ */
+ "fnGetData": null,
+
+ /**
+ * Function to set data for a cell in the column. You should never
+ * set the data directly to _aData internally in DataTables - always use
+ * this method. It allows mData to function as required. This function
+ * is automatically assigned by the column initialisation method
+ * @type function
+ * @param {array|object} oData The data array/object for the array
+ * (i.e. aoData[]._aData)
+ * @param {*} sValue Value to set
+ * @default null
+ */
+ "fnSetData": null,
+
+ /**
+ * Property to read the value for the cells in the column from the data
+ * source array / object. If null, then the default content is used, if a
+ * function is given then the return from the function is used.
+ * @type function|int|string|null
+ * @default null
+ */
+ "mData": null,
+
+ /**
+ * Partner property to mData which is used (only when defined) to get
+ * the data - i.e. it is basically the same as mData, but without the
+ * 'set' option, and also the data fed to it is the result from mData.
+ * This is the rendering method to match the data method of mData.
+ * @type function|int|string|null
+ * @default null
+ */
+ "mRender": null,
+
+ /**
+ * Unique header TH/TD element for this column - this is what the sorting
+ * listener is attached to (if sorting is enabled.)
+ * @type node
+ * @default null
+ */
+ "nTh": null,
+
+ /**
+ * Unique footer TH/TD element for this column (if there is one). Not used
+ * in DataTables as such, but can be used for plug-ins to reference the
+ * footer for each column.
+ * @type node
+ * @default null
+ */
+ "nTf": null,
+
+ /**
+ * The class to apply to all TD elements in the table's TBODY for the column
+ * @type string
+ * @default null
+ */
+ "sClass": null,
+
+ /**
+ * When DataTables calculates the column widths to assign to each column,
+ * it finds the longest string in each column and then constructs a
+ * temporary table and reads the widths from that. The problem with this
+ * is that "mmm" is much wider then "iiii", but the latter is a longer
+ * string - thus the calculation can go wrong (doing it properly and putting
+ * it into an DOM object and measuring that is horribly(!) slow). Thus as
+ * a "work around" we provide this option. It will append its value to the
+ * text that is found to be the longest string for the column - i.e. padding.
+ * @type string
+ */
+ "sContentPadding": null,
+
+ /**
+ * Allows a default value to be given for a column's data, and will be used
+ * whenever a null data source is encountered (this can be because mData
+ * is set to null, or because the data source itself is null).
+ * @type string
+ * @default null
+ */
+ "sDefaultContent": null,
+
+ /**
+ * Name for the column, allowing reference to the column by name as well as
+ * by index (needs a lookup to work by name).
+ * @type string
+ */
+ "sName": null,
+
+ /**
+ * Custom sorting data type - defines which of the available plug-ins in
+ * afnSortData the custom sorting will use - if any is defined.
+ * @type string
+ * @default std
+ */
+ "sSortDataType": 'std',
+
+ /**
+ * Class to be applied to the header element when sorting on this column
+ * @type string
+ * @default null
+ */
+ "sSortingClass": null,
+
+ /**
+ * Class to be applied to the header element when sorting on this column -
+ * when jQuery UI theming is used.
+ * @type string
+ * @default null
+ */
+ "sSortingClassJUI": null,
+
+ /**
+ * Title of the column - what is seen in the TH element (nTh).
+ * @type string
+ */
+ "sTitle": null,
+
+ /**
+ * Column sorting and filtering type
+ * @type string
+ * @default null
+ */
+ "sType": null,
+
+ /**
+ * Width of the column
+ * @type string
+ * @default null
+ */
+ "sWidth": null,
+
+ /**
+ * Width of the column when it was first "encountered"
+ * @type string
+ * @default null
+ */
+ "sWidthOrig": null
+ };
+
+
+ /*
+ * Developer note: The properties of the object below are given in Hungarian
+ * notation, that was used as the interface for DataTables prior to v1.10, however
+ * from v1.10 onwards the primary interface is camel case. In order to avoid
+ * breaking backwards compatibility utterly with this change, the Hungarian
+ * version is still, internally the primary interface, but is is not documented
+ * - hence the @name tags in each doc comment. This allows a Javascript function
+ * to create a map from Hungarian notation to camel case (going the other direction
+ * would require each property to be listed, which would at around 3K to the size
+ * of DataTables, while this method is about a 0.5K hit.
+ *
+ * Ultimately this does pave the way for Hungarian notation to be dropped
+ * completely, but that is a massive amount of work and will break current
+ * installs (therefore is on-hold until v2).
+ */
+
+ /**
+ * Initialisation options that can be given to DataTables at initialisation
+ * time.
+ * @namespace
+ */
+ DataTable.defaults = {
+ /**
+ * An array of data to use for the table, passed in at initialisation which
+ * will be used in preference to any data which is already in the DOM. This is
+ * particularly useful for constructing tables purely in Javascript, for
+ * example with a custom Ajax call.
+ * @type array
+ * @default null
+ *
+ * @dtopt Option
+ * @name DataTable.defaults.data
+ *
+ * @example
+ * // Using a 2D array data source
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "data": [
+ * ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'],
+ * ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'],
+ * ],
+ * "columns": [
+ * { "title": "Engine" },
+ * { "title": "Browser" },
+ * { "title": "Platform" },
+ * { "title": "Version" },
+ * { "title": "Grade" }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using an array of objects as a data source (`data`)
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "data": [
+ * {
+ * "engine": "Trident",
+ * "browser": "Internet Explorer 4.0",
+ * "platform": "Win 95+",
+ * "version": 4,
+ * "grade": "X"
+ * },
+ * {
+ * "engine": "Trident",
+ * "browser": "Internet Explorer 5.0",
+ * "platform": "Win 95+",
+ * "version": 5,
+ * "grade": "C"
+ * }
+ * ],
+ * "columns": [
+ * { "title": "Engine", "data": "engine" },
+ * { "title": "Browser", "data": "browser" },
+ * { "title": "Platform", "data": "platform" },
+ * { "title": "Version", "data": "version" },
+ * { "title": "Grade", "data": "grade" }
+ * ]
+ * } );
+ * } );
+ */
+ "aaData": null,
+
+
+ /**
+ * If ordering is enabled, then DataTables will perform a first pass sort on
+ * initialisation. You can define which column(s) the sort is performed
+ * upon, and the sorting direction, with this variable. The `sorting` array
+ * should contain an array for each column to be sorted initially containing
+ * the column's index and a direction string ('asc' or 'desc').
+ * @type array
+ * @default [[0,'asc']]
+ *
+ * @dtopt Option
+ * @name DataTable.defaults.order
+ *
+ * @example
+ * // Sort by 3rd column first, and then 4th column
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "order": [[2,'asc'], [3,'desc']]
+ * } );
+ * } );
+ *
+ * // No initial sorting
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "order": []
+ * } );
+ * } );
+ */
+ "aaSorting": [[0,'asc']],
+
+
+ /**
+ * This parameter is basically identical to the `sorting` parameter, but
+ * cannot be overridden by user interaction with the table. What this means
+ * is that you could have a column (visible or hidden) which the sorting
+ * will always be forced on first - any sorting after that (from the user)
+ * will then be performed as required. This can be useful for grouping rows
+ * together.
+ * @type array
+ * @default null
+ *
+ * @dtopt Option
+ * @name DataTable.defaults.orderFixed
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "orderFixed": [[0,'asc']]
+ * } );
+ * } )
+ */
+ "aaSortingFixed": [],
+
+
+ /**
+ * DataTables can be instructed to load data to display in the table from a
+ * Ajax source. This option defines how that Ajax call is made and where to.
+ *
+ * The `ajax` property has three different modes of operation, depending on
+ * how it is defined. These are:
+ *
+ * * `string` - Set the URL from where the data should be loaded from.
+ * * `object` - Define properties for `jQuery.ajax`.
+ * * `function` - Custom data get function
+ *
+ * `string`
+ * --------
+ *
+ * As a string, the `ajax` property simply defines the URL from which
+ * DataTables will load data.
+ *
+ * `object`
+ * --------
+ *
+ * As an object, the parameters in the object are passed to
+ * [jQuery.ajax](http://api.jquery.com/jQuery.ajax/) allowing fine control
+ * of the Ajax request. DataTables has a number of default parameters which
+ * you can override using this option. Please refer to the jQuery
+ * documentation for a full description of the options available, although
+ * the following parameters provide additional options in DataTables or
+ * require special consideration:
+ *
+ * * `data` - As with jQuery, `data` can be provided as an object, but it
+ * can also be used as a function to manipulate the data DataTables sends
+ * to the server. The function takes a single parameter, an object of
+ * parameters with the values that DataTables has readied for sending. An
+ * object may be returned which will be merged into the DataTables
+ * defaults, or you can add the items to the object that was passed in and
+ * not return anything from the function. This supersedes `fnServerParams`
+ * from DataTables 1.9-.
+ *
+ * * `dataSrc` - By default DataTables will look for the property `data` (or
+ * `aaData` for compatibility with DataTables 1.9-) when obtaining data
+ * from an Ajax source or for server-side processing - this parameter
+ * allows that property to be changed. You can use Javascript dotted
+ * object notation to get a data source for multiple levels of nesting, or
+ * it my be used as a function. As a function it takes a single parameter,
+ * the JSON returned from the server, which can be manipulated as
+ * required, with the returned value being that used by DataTables as the
+ * data source for the table. This supersedes `sAjaxDataProp` from
+ * DataTables 1.9-.
+ *
+ * * `success` - Should not be overridden it is used internally in
+ * DataTables. To manipulate / transform the data returned by the server
+ * use `ajax.dataSrc`, or use `ajax` as a function (see below).
+ *
+ * `function`
+ * ----------
+ *
+ * As a function, making the Ajax call is left up to yourself allowing
+ * complete control of the Ajax request. Indeed, if desired, a method other
+ * than Ajax could be used to obtain the required data, such as Web storage
+ * or an AIR database.
+ *
+ * The function is given four parameters and no return is required. The
+ * parameters are:
+ *
+ * 1. _object_ - Data to send to the server
+ * 2. _function_ - Callback function that must be executed when the required
+ * data has been obtained. That data should be passed into the callback
+ * as the only parameter
+ * 3. _object_ - DataTables settings object for the table
+ *
+ * Note that this supersedes `fnServerData` from DataTables 1.9-.
+ *
+ * @type string|object|function
+ * @default null
+ *
+ * @dtopt Option
+ * @name DataTable.defaults.ajax
+ * @since 1.10.0
+ *
+ * @example
+ * // Get JSON data from a file via Ajax.
+ * // Note DataTables expects data in the form `{ data: [ ...data... ] }` by default).
+ * $('#example').dataTable( {
+ * "ajax": "data.json"
+ * } );
+ *
+ * @example
+ * // Get JSON data from a file via Ajax, using `dataSrc` to change
+ * // `data` to `tableData` (i.e. `{ tableData: [ ...data... ] }`)
+ * $('#example').dataTable( {
+ * "ajax": {
+ * "url": "data.json",
+ * "dataSrc": "tableData"
+ * }
+ * } );
+ *
+ * @example
+ * // Get JSON data from a file via Ajax, using `dataSrc` to read data
+ * // from a plain array rather than an array in an object
+ * $('#example').dataTable( {
+ * "ajax": {
+ * "url": "data.json",
+ * "dataSrc": ""
+ * }
+ * } );
+ *
+ * @example
+ * // Manipulate the data returned from the server - add a link to data
+ * // (note this can, should, be done using `render` for the column - this
+ * // is just a simple example of how the data can be manipulated).
+ * $('#example').dataTable( {
+ * "ajax": {
+ * "url": "data.json",
+ * "dataSrc": function ( json ) {
+ * for ( var i=0, ien=json.length ; i
+ *
a string - class name will be matched on the TH for the column
+ *
0 or a positive integer - column index counting from the left
+ *
a negative integer - column index counting from the right
+ *
the string "_all" - all columns (i.e. assign a default)
+ *
+ * @member
+ *
+ * @name DataTable.defaults.columnDefs
+ */
+ "aoColumnDefs": null,
+
+
+ /**
+ * Basically the same as `search`, this parameter defines the individual column
+ * filtering state at initialisation time. The array must be of the same size
+ * as the number of columns, and each element be an object with the parameters
+ * `search` and `escapeRegex` (the latter is optional). 'null' is also
+ * accepted and the default will be used.
+ * @type array
+ * @default []
+ *
+ * @dtopt Option
+ * @name DataTable.defaults.searchCols
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "searchCols": [
+ * null,
+ * { "search": "My filter" },
+ * null,
+ * { "search": "^[0-9]", "escapeRegex": false }
+ * ]
+ * } );
+ * } )
+ */
+ "aoSearchCols": [],
+
+
+ /**
+ * An array of CSS classes that should be applied to displayed rows. This
+ * array may be of any length, and DataTables will apply each class
+ * sequentially, looping when required.
+ * @type array
+ * @default null Will take the values determined by the `oClasses.stripe*`
+ * options
+ *
+ * @dtopt Option
+ * @name DataTable.defaults.stripeClasses
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stripeClasses": [ 'strip1', 'strip2', 'strip3' ]
+ * } );
+ * } )
+ */
+ "asStripeClasses": null,
+
+
+ /**
+ * Enable or disable automatic column width calculation. This can be disabled
+ * as an optimisation (it takes some time to calculate the widths) if the
+ * tables widths are passed in using `columns`.
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.autoWidth
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "autoWidth": false
+ * } );
+ * } );
+ */
+ "bAutoWidth": true,
+
+
+ /**
+ * Deferred rendering can provide DataTables with a huge speed boost when you
+ * are using an Ajax or JS data source for the table. This option, when set to
+ * true, will cause DataTables to defer the creation of the table elements for
+ * each row until they are needed for a draw - saving a significant amount of
+ * time.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.deferRender
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "ajax": "sources/arrays.txt",
+ * "deferRender": true
+ * } );
+ * } );
+ */
+ "bDeferRender": false,
+
+
+ /**
+ * Replace a DataTable which matches the given selector and replace it with
+ * one which has the properties of the new initialisation object passed. If no
+ * table matches the selector, then the new DataTable will be constructed as
+ * per normal.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.destroy
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "srollY": "200px",
+ * "paginate": false
+ * } );
+ *
+ * // Some time later....
+ * $('#example').dataTable( {
+ * "filter": false,
+ * "destroy": true
+ * } );
+ * } );
+ */
+ "bDestroy": false,
+
+
+ /**
+ * Enable or disable filtering of data. Filtering in DataTables is "smart" in
+ * that it allows the end user to input multiple words (space separated) and
+ * will match a row containing those words, even if not in the order that was
+ * specified (this allow matching across multiple columns). Note that if you
+ * wish to use filtering in DataTables this must remain 'true' - to remove the
+ * default filtering input box and retain filtering abilities, please use
+ * {@link DataTable.defaults.dom}.
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.searching
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "searching": false
+ * } );
+ * } );
+ */
+ "bFilter": true,
+
+
+ /**
+ * Enable or disable the table information display. This shows information
+ * about the data that is currently visible on the page, including information
+ * about filtered data if that action is being performed.
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.info
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "info": false
+ * } );
+ * } );
+ */
+ "bInfo": true,
+
+
+ /**
+ * Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some
+ * slightly different and additional mark-up from what DataTables has
+ * traditionally used).
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.jQueryUI
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "jQueryUI": true
+ * } );
+ * } );
+ */
+ "bJQueryUI": false,
+
+
+ /**
+ * Allows the end user to select the size of a formatted page from a select
+ * menu (sizes are 10, 25, 50 and 100). Requires pagination (`paginate`).
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.lengthChange
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "lengthChange": false
+ * } );
+ * } );
+ */
+ "bLengthChange": true,
+
+
+ /**
+ * Enable or disable pagination.
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.paging
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "paging": false
+ * } );
+ * } );
+ */
+ "bPaginate": true,
+
+
+ /**
+ * Enable or disable the display of a 'processing' indicator when the table is
+ * being processed (e.g. a sort). This is particularly useful for tables with
+ * large amounts of data where it can take a noticeable amount of time to sort
+ * the entries.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.processing
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "processing": true
+ * } );
+ * } );
+ */
+ "bProcessing": false,
+
+
+ /**
+ * Retrieve the DataTables object for the given selector. Note that if the
+ * table has already been initialised, this parameter will cause DataTables
+ * to simply return the object that has already been set up - it will not take
+ * account of any changes you might have made to the initialisation object
+ * passed to DataTables (setting this parameter to true is an acknowledgement
+ * that you understand this). `destroy` can be used to reinitialise a table if
+ * you need.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.retrieve
+ *
+ * @example
+ * $(document).ready( function() {
+ * initTable();
+ * tableActions();
+ * } );
+ *
+ * function initTable ()
+ * {
+ * return $('#example').dataTable( {
+ * "scrollY": "200px",
+ * "paginate": false,
+ * "retrieve": true
+ * } );
+ * }
+ *
+ * function tableActions ()
+ * {
+ * var table = initTable();
+ * // perform API operations with oTable
+ * }
+ */
+ "bRetrieve": false,
+
+
+ /**
+ * When vertical (y) scrolling is enabled, DataTables will force the height of
+ * the table's viewport to the given height at all times (useful for layout).
+ * However, this can look odd when filtering data down to a small data set,
+ * and the footer is left "floating" further down. This parameter (when
+ * enabled) will cause DataTables to collapse the table's viewport down when
+ * the result set will fit within the given Y height.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.scrollCollapse
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "scrollY": "200",
+ * "scrollCollapse": true
+ * } );
+ * } );
+ */
+ "bScrollCollapse": false,
+
+
+ /**
+ * Configure DataTables to use server-side processing. Note that the
+ * `ajax` parameter must also be given in order to give DataTables a
+ * source to obtain the required data for each draw.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Features
+ * @dtopt Server-side
+ * @name DataTable.defaults.serverSide
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "serverSide": true,
+ * "ajax": "xhr.php"
+ * } );
+ * } );
+ */
+ "bServerSide": false,
+
+
+ /**
+ * Enable or disable sorting of columns. Sorting of individual columns can be
+ * disabled by the `sortable` option for each column.
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.ordering
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "ordering": false
+ * } );
+ * } );
+ */
+ "bSort": true,
+
+
+ /**
+ * Enable or display DataTables' ability to sort multiple columns at the
+ * same time (activated by shift-click by the user).
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.orderMulti
+ *
+ * @example
+ * // Disable multiple column sorting ability
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "orderMulti": false
+ * } );
+ * } );
+ */
+ "bSortMulti": true,
+
+
+ /**
+ * Allows control over whether DataTables should use the top (true) unique
+ * cell that is found for a single column, or the bottom (false - default).
+ * This is useful when using complex headers.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.orderCellsTop
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "orderCellsTop": true
+ * } );
+ * } );
+ */
+ "bSortCellsTop": false,
+
+
+ /**
+ * Enable or disable the addition of the classes `sorting\_1`, `sorting\_2` and
+ * `sorting\_3` to the columns which are currently being sorted on. This is
+ * presented as a feature switch as it can increase processing time (while
+ * classes are removed and added) so for large data sets you might want to
+ * turn this off.
+ * @type boolean
+ * @default true
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.orderClasses
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "orderClasses": false
+ * } );
+ * } );
+ */
+ "bSortClasses": true,
+
+
+ /**
+ * Enable or disable state saving. When enabled HTML5 `localStorage` will be
+ * used to save table display information such as pagination information,
+ * display length, filtering and sorting. As such when the end user reloads
+ * the page the display display will match what thy had previously set up.
+ *
+ * Due to the use of `localStorage` the default state saving is not supported
+ * in IE6 or 7. If state saving is required in those browsers, use
+ * `stateSaveCallback` to provide a storage solution such as cookies.
+ * @type boolean
+ * @default false
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.stateSave
+ *
+ * @example
+ * $(document).ready( function () {
+ * $('#example').dataTable( {
+ * "stateSave": true
+ * } );
+ * } );
+ */
+ "bStateSave": false,
+
+
+ /**
+ * This function is called when a TR element is created (and all TD child
+ * elements have been inserted), or registered if using a DOM source, allowing
+ * manipulation of the TR element (adding classes etc).
+ * @type function
+ * @param {node} row "TR" element for the current row
+ * @param {array} data Raw data array for this row
+ * @param {int} dataIndex The index of this row in the internal aoData array
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.createdRow
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "createdRow": function( row, data, dataIndex ) {
+ * // Bold the grade for all 'A' grade browsers
+ * if ( data[4] == "A" )
+ * {
+ * $('td:eq(4)', row).html( 'A' );
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "fnCreatedRow": null,
+
+
+ /**
+ * This function is called on every 'draw' event, and allows you to
+ * dynamically modify any aspect you want about the created DOM.
+ * @type function
+ * @param {object} settings DataTables settings object
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.drawCallback
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "drawCallback": function( settings ) {
+ * alert( 'DataTables has redrawn the table' );
+ * }
+ * } );
+ * } );
+ */
+ "fnDrawCallback": null,
+
+
+ /**
+ * Identical to fnHeaderCallback() but for the table footer this function
+ * allows you to modify the table footer on every 'draw' event.
+ * @type function
+ * @param {node} foot "TR" element for the footer
+ * @param {array} data Full table data (as derived from the original HTML)
+ * @param {int} start Index for the current display starting point in the
+ * display array
+ * @param {int} end Index for the current display ending point in the
+ * display array
+ * @param {array int} display Index array to translate the visual position
+ * to the full data array
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.footerCallback
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "footerCallback": function( tfoot, data, start, end, display ) {
+ * tfoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+start;
+ * }
+ * } );
+ * } )
+ */
+ "fnFooterCallback": null,
+
+
+ /**
+ * When rendering large numbers in the information element for the table
+ * (i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers
+ * to have a comma separator for the 'thousands' units (e.g. 1 million is
+ * rendered as "1,000,000") to help readability for the end user. This
+ * function will override the default method DataTables uses.
+ * @type function
+ * @member
+ * @param {int} toFormat number to be formatted
+ * @returns {string} formatted string for DataTables to show the number
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.formatNumber
+ *
+ * @example
+ * // Format a number using a single quote for the separator (note that
+ * // this can also be done with the language.thousands option)
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "formatNumber": function ( toFormat ) {
+ * return toFormat.toString().replace(
+ * /\B(?=(\d{3})+(?!\d))/g, "'"
+ * );
+ * };
+ * } );
+ * } );
+ */
+ "fnFormatNumber": function ( toFormat ) {
+ return toFormat.toString().replace(
+ /\B(?=(\d{3})+(?!\d))/g,
+ this.oLanguage.sThousands
+ );
+ },
+
+
+ /**
+ * This function is called on every 'draw' event, and allows you to
+ * dynamically modify the header row. This can be used to calculate and
+ * display useful information about the table.
+ * @type function
+ * @param {node} head "TR" element for the header
+ * @param {array} data Full table data (as derived from the original HTML)
+ * @param {int} start Index for the current display starting point in the
+ * display array
+ * @param {int} end Index for the current display ending point in the
+ * display array
+ * @param {array int} display Index array to translate the visual position
+ * to the full data array
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.headerCallback
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "fheaderCallback": function( head, data, start, end, display ) {
+ * head.getElementsByTagName('th')[0].innerHTML = "Displaying "+(end-start)+" records";
+ * }
+ * } );
+ * } )
+ */
+ "fnHeaderCallback": null,
+
+
+ /**
+ * The information element can be used to convey information about the current
+ * state of the table. Although the internationalisation options presented by
+ * DataTables are quite capable of dealing with most customisations, there may
+ * be times where you wish to customise the string further. This callback
+ * allows you to do exactly that.
+ * @type function
+ * @param {object} oSettings DataTables settings object
+ * @param {int} start Starting position in data for the draw
+ * @param {int} end End position in data for the draw
+ * @param {int} max Total number of rows in the table (regardless of
+ * filtering)
+ * @param {int} total Total number of rows in the data set, after filtering
+ * @param {string} pre The string that DataTables has formatted using it's
+ * own rules
+ * @returns {string} The string to be displayed in the information element.
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.infoCallback
+ *
+ * @example
+ * $('#example').dataTable( {
+ * "infoCallback": function( settings, start, end, max, total, pre ) {
+ * return start +" to "+ end;
+ * }
+ * } );
+ */
+ "fnInfoCallback": null,
+
+
+ /**
+ * Called when the table has been initialised. Normally DataTables will
+ * initialise sequentially and there will be no need for this function,
+ * however, this does not hold true when using external language information
+ * since that is obtained using an async XHR call.
+ * @type function
+ * @param {object} settings DataTables settings object
+ * @param {object} json The JSON object request from the server - only
+ * present if client-side Ajax sourced data is used
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.initComplete
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "initComplete": function(settings, json) {
+ * alert( 'DataTables has finished its initialisation.' );
+ * }
+ * } );
+ * } )
+ */
+ "fnInitComplete": null,
+
+
+ /**
+ * Called at the very start of each table draw and can be used to cancel the
+ * draw by returning false, any other return (including undefined) results in
+ * the full draw occurring).
+ * @type function
+ * @param {object} settings DataTables settings object
+ * @returns {boolean} False will cancel the draw, anything else (including no
+ * return) will allow it to complete.
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.preDrawCallback
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "preDrawCallback": function( settings ) {
+ * if ( $('#test').val() == 1 ) {
+ * return false;
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "fnPreDrawCallback": null,
+
+
+ /**
+ * This function allows you to 'post process' each row after it have been
+ * generated for each table draw, but before it is rendered on screen. This
+ * function might be used for setting the row class name etc.
+ * @type function
+ * @param {node} row "TR" element for the current row
+ * @param {array} data Raw data array for this row
+ * @param {int} displayIndex The display index for the current table draw
+ * @param {int} displayIndexFull The index of the data in the full list of
+ * rows (after filtering)
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.rowCallback
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "rowCallback": function( row, data, displayIndex, displayIndexFull ) {
+ * // Bold the grade for all 'A' grade browsers
+ * if ( data[4] == "A" ) {
+ * $('td:eq(4)', row).html( 'A' );
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "fnRowCallback": null,
+
+
+ /**
+ * __Deprecated__ The functionality provided by this parameter has now been
+ * superseded by that provided through `ajax`, which should be used instead.
+ *
+ * This parameter allows you to override the default function which obtains
+ * the data from the server so something more suitable for your application.
+ * For example you could use POST data, or pull information from a Gears or
+ * AIR database.
+ * @type function
+ * @member
+ * @param {string} source HTTP source to obtain the data from (`ajax`)
+ * @param {array} data A key/value pair object containing the data to send
+ * to the server
+ * @param {function} callback to be called on completion of the data get
+ * process that will draw the data on the page.
+ * @param {object} settings DataTables settings object
+ *
+ * @dtopt Callbacks
+ * @dtopt Server-side
+ * @name DataTable.defaults.serverData
+ *
+ * @deprecated 1.10. Please use `ajax` for this functionality now.
+ */
+ "fnServerData": null,
+
+
+ /**
+ * __Deprecated__ The functionality provided by this parameter has now been
+ * superseded by that provided through `ajax`, which should be used instead.
+ *
+ * It is often useful to send extra data to the server when making an Ajax
+ * request - for example custom filtering information, and this callback
+ * function makes it trivial to send extra information to the server. The
+ * passed in parameter is the data set that has been constructed by
+ * DataTables, and you can add to this or modify it as you require.
+ * @type function
+ * @param {array} data Data array (array of objects which are name/value
+ * pairs) that has been constructed by DataTables and will be sent to the
+ * server. In the case of Ajax sourced data with server-side processing
+ * this will be an empty array, for server-side processing there will be a
+ * significant number of parameters!
+ * @returns {undefined} Ensure that you modify the data array passed in,
+ * as this is passed by reference.
+ *
+ * @dtopt Callbacks
+ * @dtopt Server-side
+ * @name DataTable.defaults.serverParams
+ *
+ * @deprecated 1.10. Please use `ajax` for this functionality now.
+ */
+ "fnServerParams": null,
+
+
+ /**
+ * Load the table state. With this function you can define from where, and how, the
+ * state of a table is loaded. By default DataTables will load from `localStorage`
+ * but you might wish to use a server-side database or cookies.
+ * @type function
+ * @member
+ * @param {object} settings DataTables settings object
+ * @return {object} The DataTables state object to be loaded
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.stateLoadCallback
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stateSave": true,
+ * "stateLoadCallback": function (settings) {
+ * var o;
+ *
+ * // Send an Ajax request to the server to get the data. Note that
+ * // this is a synchronous request.
+ * $.ajax( {
+ * "url": "/state_load",
+ * "async": false,
+ * "dataType": "json",
+ * "success": function (json) {
+ * o = json;
+ * }
+ * } );
+ *
+ * return o;
+ * }
+ * } );
+ * } );
+ */
+ "fnStateLoadCallback": function ( settings ) {
+ try {
+ return JSON.parse(
+ (settings.iStateDuration === -1 ? sessionStorage : localStorage).getItem(
+ 'DataTables_'+settings.sInstance+'_'+location.pathname
+ )
+ );
+ } catch (e) {}
+ },
+
+
+ /**
+ * Callback which allows modification of the saved state prior to loading that state.
+ * This callback is called when the table is loading state from the stored data, but
+ * prior to the settings object being modified by the saved state. Note that for
+ * plug-in authors, you should use the `stateLoadParams` event to load parameters for
+ * a plug-in.
+ * @type function
+ * @param {object} settings DataTables settings object
+ * @param {object} data The state object that is to be loaded
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.stateLoadParams
+ *
+ * @example
+ * // Remove a saved filter, so filtering is never loaded
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stateSave": true,
+ * "stateLoadParams": function (settings, data) {
+ * data.oSearch.sSearch = "";
+ * }
+ * } );
+ * } );
+ *
+ * @example
+ * // Disallow state loading by returning false
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stateSave": true,
+ * "stateLoadParams": function (settings, data) {
+ * return false;
+ * }
+ * } );
+ * } );
+ */
+ "fnStateLoadParams": null,
+
+
+ /**
+ * Callback that is called when the state has been loaded from the state saving method
+ * and the DataTables settings object has been modified as a result of the loaded state.
+ * @type function
+ * @param {object} settings DataTables settings object
+ * @param {object} data The state object that was loaded
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.stateLoaded
+ *
+ * @example
+ * // Show an alert with the filtering value that was saved
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stateSave": true,
+ * "stateLoaded": function (settings, data) {
+ * alert( 'Saved filter was: '+data.oSearch.sSearch );
+ * }
+ * } );
+ * } );
+ */
+ "fnStateLoaded": null,
+
+
+ /**
+ * Save the table state. This function allows you to define where and how the state
+ * information for the table is stored By default DataTables will use `localStorage`
+ * but you might wish to use a server-side database or cookies.
+ * @type function
+ * @member
+ * @param {object} settings DataTables settings object
+ * @param {object} data The state object to be saved
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.stateSaveCallback
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stateSave": true,
+ * "stateSaveCallback": function (settings, data) {
+ * // Send an Ajax request to the server with the state object
+ * $.ajax( {
+ * "url": "/state_save",
+ * "data": data,
+ * "dataType": "json",
+ * "method": "POST"
+ * "success": function () {}
+ * } );
+ * }
+ * } );
+ * } );
+ */
+ "fnStateSaveCallback": function ( settings, data ) {
+ try {
+ (settings.iStateDuration === -1 ? sessionStorage : localStorage).setItem(
+ 'DataTables_'+settings.sInstance+'_'+location.pathname,
+ JSON.stringify( data )
+ );
+ } catch (e) {}
+ },
+
+
+ /**
+ * Callback which allows modification of the state to be saved. Called when the table
+ * has changed state a new state save is required. This method allows modification of
+ * the state saving object prior to actually doing the save, including addition or
+ * other state properties or modification. Note that for plug-in authors, you should
+ * use the `stateSaveParams` event to save parameters for a plug-in.
+ * @type function
+ * @param {object} settings DataTables settings object
+ * @param {object} data The state object to be saved
+ *
+ * @dtopt Callbacks
+ * @name DataTable.defaults.stateSaveParams
+ *
+ * @example
+ * // Remove a saved filter, so filtering is never saved
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stateSave": true,
+ * "stateSaveParams": function (settings, data) {
+ * data.oSearch.sSearch = "";
+ * }
+ * } );
+ * } );
+ */
+ "fnStateSaveParams": null,
+
+
+ /**
+ * Duration for which the saved state information is considered valid. After this period
+ * has elapsed the state will be returned to the default.
+ * Value is given in seconds.
+ * @type int
+ * @default 7200 (2 hours)
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.stateDuration
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "stateDuration": 60*60*24; // 1 day
+ * } );
+ * } )
+ */
+ "iStateDuration": 7200,
+
+
+ /**
+ * When enabled DataTables will not make a request to the server for the first
+ * page draw - rather it will use the data already on the page (no sorting etc
+ * will be applied to it), thus saving on an XHR at load time. `deferLoading`
+ * is used to indicate that deferred loading is required, but it is also used
+ * to tell DataTables how many records there are in the full table (allowing
+ * the information element and pagination to be displayed correctly). In the case
+ * where a filtering is applied to the table on initial load, this can be
+ * indicated by giving the parameter as an array, where the first element is
+ * the number of records available after filtering and the second element is the
+ * number of records without filtering (allowing the table information element
+ * to be shown correctly).
+ * @type int | array
+ * @default null
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.deferLoading
+ *
+ * @example
+ * // 57 records available in the table, no filtering applied
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "serverSide": true,
+ * "ajax": "scripts/server_processing.php",
+ * "deferLoading": 57
+ * } );
+ * } );
+ *
+ * @example
+ * // 57 records after filtering, 100 without filtering (an initial filter applied)
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "serverSide": true,
+ * "ajax": "scripts/server_processing.php",
+ * "deferLoading": [ 57, 100 ],
+ * "search": {
+ * "search": "my_filter"
+ * }
+ * } );
+ * } );
+ */
+ "iDeferLoading": null,
+
+
+ /**
+ * Number of rows to display on a single page when using pagination. If
+ * feature enabled (`lengthChange`) then the end user will be able to override
+ * this to a custom setting using a pop-up menu.
+ * @type int
+ * @default 10
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.pageLength
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "pageLength": 50
+ * } );
+ * } )
+ */
+ "iDisplayLength": 10,
+
+
+ /**
+ * Define the starting point for data display when using DataTables with
+ * pagination. Note that this parameter is the number of records, rather than
+ * the page number, so if you have 10 records per page and want to start on
+ * the third page, it should be "20".
+ * @type int
+ * @default 0
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.displayStart
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "displayStart": 20
+ * } );
+ * } )
+ */
+ "iDisplayStart": 0,
+
+
+ /**
+ * By default DataTables allows keyboard navigation of the table (sorting, paging,
+ * and filtering) by adding a `tabindex` attribute to the required elements. This
+ * allows you to tab through the controls and press the enter key to activate them.
+ * The tabindex is default 0, meaning that the tab follows the flow of the document.
+ * You can overrule this using this parameter if you wish. Use a value of -1 to
+ * disable built-in keyboard navigation.
+ * @type int
+ * @default 0
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.tabIndex
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "tabIndex": 1
+ * } );
+ * } );
+ */
+ "iTabIndex": 0,
+
+
+ /**
+ * Classes that DataTables assigns to the various components and features
+ * that it adds to the HTML table. This allows classes to be configured
+ * during initialisation in addition to through the static
+ * {@link DataTable.ext.oStdClasses} object).
+ * @namespace
+ * @name DataTable.defaults.classes
+ */
+ "oClasses": {},
+
+
+ /**
+ * All strings that DataTables uses in the user interface that it creates
+ * are defined in this object, allowing you to modified them individually or
+ * completely replace them all as required.
+ * @namespace
+ * @name DataTable.defaults.language
+ */
+ "oLanguage": {
+ /**
+ * Strings that are used for WAI-ARIA labels and controls only (these are not
+ * actually visible on the page, but will be read by screenreaders, and thus
+ * must be internationalised as well).
+ * @namespace
+ * @name DataTable.defaults.language.aria
+ */
+ "oAria": {
+ /**
+ * ARIA label that is added to the table headers when the column may be
+ * sorted ascending by activing the column (click or return when focused).
+ * Note that the column header is prefixed to this string.
+ * @type string
+ * @default : activate to sort column ascending
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.aria.sortAscending
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "aria": {
+ * "sortAscending": " - click/return to sort ascending"
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "sSortAscending": ": activate to sort column ascending",
+
+ /**
+ * ARIA label that is added to the table headers when the column may be
+ * sorted descending by activing the column (click or return when focused).
+ * Note that the column header is prefixed to this string.
+ * @type string
+ * @default : activate to sort column ascending
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.aria.sortDescending
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "aria": {
+ * "sortDescending": " - click/return to sort descending"
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "sSortDescending": ": activate to sort column descending"
+ },
+
+ /**
+ * Pagination string used by DataTables for the built-in pagination
+ * control types.
+ * @namespace
+ * @name DataTable.defaults.language.paginate
+ */
+ "oPaginate": {
+ /**
+ * Text to use when using the 'full_numbers' type of pagination for the
+ * button to take the user to the first page.
+ * @type string
+ * @default First
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.paginate.first
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "paginate": {
+ * "first": "First page"
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "sFirst": "First",
+
+
+ /**
+ * Text to use when using the 'full_numbers' type of pagination for the
+ * button to take the user to the last page.
+ * @type string
+ * @default Last
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.paginate.last
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "paginate": {
+ * "last": "Last page"
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "sLast": "Last",
+
+
+ /**
+ * Text to use for the 'next' pagination button (to take the user to the
+ * next page).
+ * @type string
+ * @default Next
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.paginate.next
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "paginate": {
+ * "next": "Next page"
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "sNext": "Next",
+
+
+ /**
+ * Text to use for the 'previous' pagination button (to take the user to
+ * the previous page).
+ * @type string
+ * @default Previous
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.paginate.previous
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "paginate": {
+ * "previous": "Previous page"
+ * }
+ * }
+ * } );
+ * } );
+ */
+ "sPrevious": "Previous"
+ },
+
+ /**
+ * This string is shown in preference to `zeroRecords` when the table is
+ * empty of data (regardless of filtering). Note that this is an optional
+ * parameter - if it is not given, the value of `zeroRecords` will be used
+ * instead (either the default or given value).
+ * @type string
+ * @default No data available in table
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.emptyTable
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "emptyTable": "No data available in table"
+ * }
+ * } );
+ * } );
+ */
+ "sEmptyTable": "No data available in table",
+
+
+ /**
+ * This string gives information to the end user about the information
+ * that is current on display on the page. The following tokens can be
+ * used in the string and will be dynamically replaced as the table
+ * display updates. This tokens can be placed anywhere in the string, or
+ * removed as needed by the language requires:
+ *
+ * * `\_START\_` - Display index of the first record on the current page
+ * * `\_END\_` - Display index of the last record on the current page
+ * * `\_TOTAL\_` - Number of records in the table after filtering
+ * * `\_MAX\_` - Number of records in the table without filtering
+ * * `\_PAGE\_` - Current page number
+ * * `\_PAGES\_` - Total number of pages of data in the table
+ *
+ * @type string
+ * @default Showing _START_ to _END_ of _TOTAL_ entries
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.info
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "info": "Showing page _PAGE_ of _PAGES_"
+ * }
+ * } );
+ * } );
+ */
+ "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries",
+
+
+ /**
+ * Display information string for when the table is empty. Typically the
+ * format of this string should match `info`.
+ * @type string
+ * @default Showing 0 to 0 of 0 entries
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.infoEmpty
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "infoEmpty": "No entries to show"
+ * }
+ * } );
+ * } );
+ */
+ "sInfoEmpty": "Showing 0 to 0 of 0 entries",
+
+
+ /**
+ * When a user filters the information in a table, this string is appended
+ * to the information (`info`) to give an idea of how strong the filtering
+ * is. The variable _MAX_ is dynamically updated.
+ * @type string
+ * @default (filtered from _MAX_ total entries)
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.infoFiltered
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "infoFiltered": " - filtering from _MAX_ records"
+ * }
+ * } );
+ * } );
+ */
+ "sInfoFiltered": "(filtered from _MAX_ total entries)",
+
+
+ /**
+ * If can be useful to append extra information to the info string at times,
+ * and this variable does exactly that. This information will be appended to
+ * the `info` (`infoEmpty` and `infoFiltered` in whatever combination they are
+ * being used) at all times.
+ * @type string
+ * @default Empty string
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.infoPostFix
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "infoPostFix": "All records shown are derived from real information."
+ * }
+ * } );
+ * } );
+ */
+ "sInfoPostFix": "",
+
+
+ /**
+ * This decimal place operator is a little different from the other
+ * language options since DataTables doesn't output floating point
+ * numbers, so it won't ever use this for display of a number. Rather,
+ * what this parameter does is modify the sort methods of the table so
+ * that numbers which are in a format which has a character other than
+ * a period (`.`) as a decimal place will be sorted numerically.
+ *
+ * Note that numbers with different decimal places cannot be shown in
+ * the same table and still be sortable, the table must be consistent.
+ * However, multiple different tables on the page can use different
+ * decimal place characters.
+ * @type string
+ * @default
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.decimal
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "decimal": ","
+ * "thousands": "."
+ * }
+ * } );
+ * } );
+ */
+ "sDecimal": "",
+
+
+ /**
+ * DataTables has a build in number formatter (`formatNumber`) which is
+ * used to format large numbers that are used in the table information.
+ * By default a comma is used, but this can be trivially changed to any
+ * character you wish with this parameter.
+ * @type string
+ * @default ,
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.thousands
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "thousands": "'"
+ * }
+ * } );
+ * } );
+ */
+ "sThousands": ",",
+
+
+ /**
+ * Detail the action that will be taken when the drop down menu for the
+ * pagination length option is changed. The '_MENU_' variable is replaced
+ * with a default select list of 10, 25, 50 and 100, and can be replaced
+ * with a custom select box if required.
+ * @type string
+ * @default Show _MENU_ entries
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.lengthMenu
+ *
+ * @example
+ * // Language change only
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "lengthMenu": "Display _MENU_ records"
+ * }
+ * } );
+ * } );
+ *
+ * @example
+ * // Language and options change
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "lengthMenu": 'Display records'
+ * }
+ * } );
+ * } );
+ */
+ "sLengthMenu": "Show _MENU_ entries",
+
+
+ /**
+ * When using Ajax sourced data and during the first draw when DataTables is
+ * gathering the data, this message is shown in an empty row in the table to
+ * indicate to the end user the the data is being loaded. Note that this
+ * parameter is not used when loading data by server-side processing, just
+ * Ajax sourced data with client-side processing.
+ * @type string
+ * @default Loading...
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.loadingRecords
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "loadingRecords": "Please wait - loading..."
+ * }
+ * } );
+ * } );
+ */
+ "sLoadingRecords": "Loading...",
+
+
+ /**
+ * Text which is displayed when the table is processing a user action
+ * (usually a sort command or similar).
+ * @type string
+ * @default Processing...
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.processing
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "processing": "DataTables is currently busy"
+ * }
+ * } );
+ * } );
+ */
+ "sProcessing": "Processing...",
+
+
+ /**
+ * Details the actions that will be taken when the user types into the
+ * filtering input text box. The variable "_INPUT_", if used in the string,
+ * is replaced with the HTML text box for the filtering input allowing
+ * control over where it appears in the string. If "_INPUT_" is not given
+ * then the input box is appended to the string automatically.
+ * @type string
+ * @default Search:
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.search
+ *
+ * @example
+ * // Input text box will be appended at the end automatically
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "search": "Filter records:"
+ * }
+ * } );
+ * } );
+ *
+ * @example
+ * // Specify where the filter should appear
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "search": "Apply filter _INPUT_ to table"
+ * }
+ * } );
+ * } );
+ */
+ "sSearch": "Search:",
+
+
+ /**
+ * All of the language information can be stored in a file on the
+ * server-side, which DataTables will look up if this parameter is passed.
+ * It must store the URL of the language file, which is in a JSON format,
+ * and the object has the same properties as the oLanguage object in the
+ * initialiser object (i.e. the above parameters). Please refer to one of
+ * the example language files to see how this works in action.
+ * @type string
+ * @default Empty string - i.e. disabled
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.url
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "url": "http://www.sprymedia.co.uk/dataTables/lang.txt"
+ * }
+ * } );
+ * } );
+ */
+ "sUrl": "",
+
+
+ /**
+ * Text shown inside the table records when the is no information to be
+ * displayed after filtering. `emptyTable` is shown when there is simply no
+ * information in the table at all (regardless of filtering).
+ * @type string
+ * @default No matching records found
+ *
+ * @dtopt Language
+ * @name DataTable.defaults.language.zeroRecords
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "language": {
+ * "zeroRecords": "No records to display"
+ * }
+ * } );
+ * } );
+ */
+ "sZeroRecords": "No matching records found"
+ },
+
+
+ /**
+ * This parameter allows you to have define the global filtering state at
+ * initialisation time. As an object the `search` parameter must be
+ * defined, but all other parameters are optional. When `regex` is true,
+ * the search string will be treated as a regular expression, when false
+ * (default) it will be treated as a straight string. When `smart`
+ * DataTables will use it's smart filtering methods (to word match at
+ * any point in the data), when false this will not be done.
+ * @namespace
+ * @extends DataTable.models.oSearch
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.search
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "search": {"search": "Initial search"}
+ * } );
+ * } )
+ */
+ "oSearch": $.extend( {}, DataTable.models.oSearch ),
+
+
+ /**
+ * __Deprecated__ The functionality provided by this parameter has now been
+ * superseded by that provided through `ajax`, which should be used instead.
+ *
+ * By default DataTables will look for the property `data` (or `aaData` for
+ * compatibility with DataTables 1.9-) when obtaining data from an Ajax
+ * source or for server-side processing - this parameter allows that
+ * property to be changed. You can use Javascript dotted object notation to
+ * get a data source for multiple levels of nesting.
+ * @type string
+ * @default data
+ *
+ * @dtopt Options
+ * @dtopt Server-side
+ * @name DataTable.defaults.ajaxDataProp
+ *
+ * @deprecated 1.10. Please use `ajax` for this functionality now.
+ */
+ "sAjaxDataProp": "data",
+
+
+ /**
+ * __Deprecated__ The functionality provided by this parameter has now been
+ * superseded by that provided through `ajax`, which should be used instead.
+ *
+ * You can instruct DataTables to load data from an external
+ * source using this parameter (use aData if you want to pass data in you
+ * already have). Simply provide a url a JSON object can be obtained from.
+ * @type string
+ * @default null
+ *
+ * @dtopt Options
+ * @dtopt Server-side
+ * @name DataTable.defaults.ajaxSource
+ *
+ * @deprecated 1.10. Please use `ajax` for this functionality now.
+ */
+ "sAjaxSource": null,
+
+
+ /**
+ * This initialisation variable allows you to specify exactly where in the
+ * DOM you want DataTables to inject the various controls it adds to the page
+ * (for example you might want the pagination controls at the top of the
+ * table). DIV elements (with or without a custom class) can also be added to
+ * aid styling. The follow syntax is used:
+ *
+ * @type string
+ * @default lfrtip (when `jQueryUI` is false)or
+ * <"H"lfr>t<"F"ip> (when `jQueryUI` is true)
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.dom
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "dom": '<"top"i>rt<"bottom"flp><"clear">'
+ * } );
+ * } );
+ */
+ "sDom": "lfrtip",
+
+
+ /**
+ * DataTables features four different built-in options for the buttons to
+ * display for pagination control:
+ *
+ * * `simple` - 'Previous' and 'Next' buttons only
+ * * 'simple_numbers` - 'Previous' and 'Next' buttons, plus page numbers
+ * * `full` - 'First', 'Previous', 'Next' and 'Last' buttons
+ * * `full_numbers` - 'First', 'Previous', 'Next' and 'Last' buttons, plus
+ * page numbers
+ *
+ * Further methods can be added using {@link DataTable.ext.oPagination}.
+ * @type string
+ * @default simple_numbers
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.pagingType
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "pagingType": "full_numbers"
+ * } );
+ * } )
+ */
+ "sPaginationType": "simple_numbers",
+
+
+ /**
+ * Enable horizontal scrolling. When a table is too wide to fit into a
+ * certain layout, or you have a large number of columns in the table, you
+ * can enable x-scrolling to show the table in a viewport, which can be
+ * scrolled. This property can be `true` which will allow the table to
+ * scroll horizontally when needed, or any CSS unit, or a number (in which
+ * case it will be treated as a pixel measurement). Setting as simply `true`
+ * is recommended.
+ * @type boolean|string
+ * @default blank string - i.e. disabled
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.scrollX
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "scrollX": true,
+ * "scrollCollapse": true
+ * } );
+ * } );
+ */
+ "sScrollX": "",
+
+
+ /**
+ * This property can be used to force a DataTable to use more width than it
+ * might otherwise do when x-scrolling is enabled. For example if you have a
+ * table which requires to be well spaced, this parameter is useful for
+ * "over-sizing" the table, and thus forcing scrolling. This property can by
+ * any CSS unit, or a number (in which case it will be treated as a pixel
+ * measurement).
+ * @type string
+ * @default blank string - i.e. disabled
+ *
+ * @dtopt Options
+ * @name DataTable.defaults.scrollXInner
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "scrollX": "100%",
+ * "scrollXInner": "110%"
+ * } );
+ * } );
+ */
+ "sScrollXInner": "",
+
+
+ /**
+ * Enable vertical scrolling. Vertical scrolling will constrain the DataTable
+ * to the given height, and enable scrolling for any data which overflows the
+ * current viewport. This can be used as an alternative to paging to display
+ * a lot of data in a small area (although paging and scrolling can both be
+ * enabled at the same time). This property can be any CSS unit, or a number
+ * (in which case it will be treated as a pixel measurement).
+ * @type string
+ * @default blank string - i.e. disabled
+ *
+ * @dtopt Features
+ * @name DataTable.defaults.scrollY
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "scrollY": "200px",
+ * "paginate": false
+ * } );
+ * } );
+ */
+ "sScrollY": "",
+
+
+ /**
+ * __Deprecated__ The functionality provided by this parameter has now been
+ * superseded by that provided through `ajax`, which should be used instead.
+ *
+ * Set the HTTP method that is used to make the Ajax call for server-side
+ * processing or Ajax sourced data.
+ * @type string
+ * @default GET
+ *
+ * @dtopt Options
+ * @dtopt Server-side
+ * @name DataTable.defaults.serverMethod
+ *
+ * @deprecated 1.10. Please use `ajax` for this functionality now.
+ */
+ "sServerMethod": "GET",
+
+
+ /**
+ * DataTables makes use of renderers when displaying HTML elements for
+ * a table. These renderers can be added or modified by plug-ins to
+ * generate suitable mark-up for a site. For example the Bootstrap
+ * integration plug-in for DataTables uses a paging button renderer to
+ * display pagination buttons in the mark-up required by Bootstrap.
+ *
+ * For further information about the renderers available see
+ * DataTable.ext.renderer
+ * @type string|object
+ * @default null
+ *
+ * @name DataTable.defaults.renderer
+ *
+ */
+ "renderer": null
+ };
+
+ _fnHungarianMap( DataTable.defaults );
+
+
+
+ /*
+ * Developer note - See note in model.defaults.js about the use of Hungarian
+ * notation and camel case.
+ */
+
+ /**
+ * Column options that can be given to DataTables at initialisation time.
+ * @namespace
+ */
+ DataTable.defaults.column = {
+ /**
+ * Define which column(s) an order will occur on for this column. This
+ * allows a column's ordering to take multiple columns into account when
+ * doing a sort or use the data from a different column. For example first
+ * name / last name columns make sense to do a multi-column sort over the
+ * two columns.
+ * @type array|int
+ * @default null Takes the value of the column index automatically
+ *
+ * @name DataTable.defaults.column.orderData
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "orderData": [ 0, 1 ], "targets": [ 0 ] },
+ * { "orderData": [ 1, 0 ], "targets": [ 1 ] },
+ * { "orderData": 2, "targets": [ 2 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "orderData": [ 0, 1 ] },
+ * { "orderData": [ 1, 0 ] },
+ * { "orderData": 2 },
+ * null,
+ * null
+ * ]
+ * } );
+ * } );
+ */
+ "aDataSort": null,
+ "iDataSort": -1,
+
+
+ /**
+ * You can control the default ordering direction, and even alter the
+ * behaviour of the sort handler (i.e. only allow ascending ordering etc)
+ * using this parameter.
+ * @type array
+ * @default [ 'asc', 'desc' ]
+ *
+ * @name DataTable.defaults.column.orderSequence
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "orderSequence": [ "asc" ], "targets": [ 1 ] },
+ * { "orderSequence": [ "desc", "asc", "asc" ], "targets": [ 2 ] },
+ * { "orderSequence": [ "desc" ], "targets": [ 3 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * null,
+ * { "orderSequence": [ "asc" ] },
+ * { "orderSequence": [ "desc", "asc", "asc" ] },
+ * { "orderSequence": [ "desc" ] },
+ * null
+ * ]
+ * } );
+ * } );
+ */
+ "asSorting": [ 'asc', 'desc' ],
+
+
+ /**
+ * Enable or disable filtering on the data in this column.
+ * @type boolean
+ * @default true
+ *
+ * @name DataTable.defaults.column.searchable
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "searchable": false, "targets": [ 0 ] }
+ * ] } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "searchable": false },
+ * null,
+ * null,
+ * null,
+ * null
+ * ] } );
+ * } );
+ */
+ "bSearchable": true,
+
+
+ /**
+ * Enable or disable ordering on this column.
+ * @type boolean
+ * @default true
+ *
+ * @name DataTable.defaults.column.orderable
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "orderable": false, "targets": [ 0 ] }
+ * ] } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "orderable": false },
+ * null,
+ * null,
+ * null,
+ * null
+ * ] } );
+ * } );
+ */
+ "bSortable": true,
+
+
+ /**
+ * Enable or disable the display of this column.
+ * @type boolean
+ * @default true
+ *
+ * @name DataTable.defaults.column.visible
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "visible": false, "targets": [ 0 ] }
+ * ] } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "visible": false },
+ * null,
+ * null,
+ * null,
+ * null
+ * ] } );
+ * } );
+ */
+ "bVisible": true,
+
+
+ /**
+ * Developer definable function that is called whenever a cell is created (Ajax source,
+ * etc) or processed for input (DOM source). This can be used as a compliment to mRender
+ * allowing you to modify the DOM element (add background colour for example) when the
+ * element is available.
+ * @type function
+ * @param {element} td The TD node that has been created
+ * @param {*} cellData The Data for the cell
+ * @param {array|object} rowData The data for the whole row
+ * @param {int} row The row index for the aoData data store
+ * @param {int} col The column index for aoColumns
+ *
+ * @name DataTable.defaults.column.createdCell
+ * @dtopt Columns
+ *
+ * @example
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [3],
+ * "createdCell": function (td, cellData, rowData, row, col) {
+ * if ( cellData == "1.7" ) {
+ * $(td).css('color', 'blue')
+ * }
+ * }
+ * } ]
+ * });
+ * } );
+ */
+ "fnCreatedCell": null,
+
+
+ /**
+ * This parameter has been replaced by `data` in DataTables to ensure naming
+ * consistency. `dataProp` can still be used, as there is backwards
+ * compatibility in DataTables for this option, but it is strongly
+ * recommended that you use `data` in preference to `dataProp`.
+ * @name DataTable.defaults.column.dataProp
+ */
+
+
+ /**
+ * This property can be used to read data from any data source property,
+ * including deeply nested objects / properties. `data` can be given in a
+ * number of different ways which effect its behaviour:
+ *
+ * * `integer` - treated as an array index for the data source. This is the
+ * default that DataTables uses (incrementally increased for each column).
+ * * `string` - read an object property from the data source. There are
+ * three 'special' options that can be used in the string to alter how
+ * DataTables reads the data from the source object:
+ * * `.` - Dotted Javascript notation. Just as you use a `.` in
+ * Javascript to read from nested objects, so to can the options
+ * specified in `data`. For example: `browser.version` or
+ * `browser.name`. If your object parameter name contains a period, use
+ * `\\` to escape it - i.e. `first\\.name`.
+ * * `[]` - Array notation. DataTables can automatically combine data
+ * from and array source, joining the data with the characters provided
+ * between the two brackets. For example: `name[, ]` would provide a
+ * comma-space separated list from the source array. If no characters
+ * are provided between the brackets, the original array source is
+ * returned.
+ * * `()` - Function notation. Adding `()` to the end of a parameter will
+ * execute a function of the name given. For example: `browser()` for a
+ * simple function on the data source, `browser.version()` for a
+ * function in a nested property or even `browser().version` to get an
+ * object property if the function called returns an object. Note that
+ * function notation is recommended for use in `render` rather than
+ * `data` as it is much simpler to use as a renderer.
+ * * `null` - use the original data source for the row rather than plucking
+ * data directly from it. This action has effects on two other
+ * initialisation options:
+ * * `defaultContent` - When null is given as the `data` option and
+ * `defaultContent` is specified for the column, the value defined by
+ * `defaultContent` will be used for the cell.
+ * * `render` - When null is used for the `data` option and the `render`
+ * option is specified for the column, the whole data source for the
+ * row is used for the renderer.
+ * * `function` - the function given will be executed whenever DataTables
+ * needs to set or get the data for a cell in the column. The function
+ * takes three parameters:
+ * * Parameters:
+ * * `{array|object}` The data source for the row
+ * * `{string}` The type call data requested - this will be 'set' when
+ * setting data or 'filter', 'display', 'type', 'sort' or undefined
+ * when gathering data. Note that when `undefined` is given for the
+ * type DataTables expects to get the raw data for the object back<
+ * * `{*}` Data to set when the second parameter is 'set'.
+ * * Return:
+ * * The return value from the function is not required when 'set' is
+ * the type of call, but otherwise the return is what will be used
+ * for the data requested.
+ *
+ * Note that `data` is a getter and setter option. If you just require
+ * formatting of data for output, you will likely want to use `render` which
+ * is simply a getter and thus simpler to use.
+ *
+ * Note that prior to DataTables 1.9.2 `data` was called `mDataProp`. The
+ * name change reflects the flexibility of this property and is consistent
+ * with the naming of mRender. If 'mDataProp' is given, then it will still
+ * be used by DataTables, as it automatically maps the old name to the new
+ * if required.
+ *
+ * @type string|int|function|null
+ * @default null Use automatically calculated column index
+ *
+ * @name DataTable.defaults.column.data
+ * @dtopt Columns
+ *
+ * @example
+ * // Read table data from objects
+ * // JSON structure for each row:
+ * // {
+ * // "engine": {value},
+ * // "browser": {value},
+ * // "platform": {value},
+ * // "version": {value},
+ * // "grade": {value}
+ * // }
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "ajaxSource": "sources/objects.txt",
+ * "columns": [
+ * { "data": "engine" },
+ * { "data": "browser" },
+ * { "data": "platform" },
+ * { "data": "version" },
+ * { "data": "grade" }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Read information from deeply nested objects
+ * // JSON structure for each row:
+ * // {
+ * // "engine": {value},
+ * // "browser": {value},
+ * // "platform": {
+ * // "inner": {value}
+ * // },
+ * // "details": [
+ * // {value}, {value}
+ * // ]
+ * // }
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "ajaxSource": "sources/deep.txt",
+ * "columns": [
+ * { "data": "engine" },
+ * { "data": "browser" },
+ * { "data": "platform.inner" },
+ * { "data": "platform.details.0" },
+ * { "data": "platform.details.1" }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `data` as a function to provide different information for
+ * // sorting, filtering and display. In this case, currency (price)
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [ 0 ],
+ * "data": function ( source, type, val ) {
+ * if (type === 'set') {
+ * source.price = val;
+ * // Store the computed dislay and filter values for efficiency
+ * source.price_display = val=="" ? "" : "$"+numberFormat(val);
+ * source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val;
+ * return;
+ * }
+ * else if (type === 'display') {
+ * return source.price_display;
+ * }
+ * else if (type === 'filter') {
+ * return source.price_filter;
+ * }
+ * // 'sort', 'type' and undefined all just use the integer
+ * return source.price;
+ * }
+ * } ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using default content
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [ 0 ],
+ * "data": null,
+ * "defaultContent": "Click to edit"
+ * } ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using array notation - outputting a list from an array
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [ 0 ],
+ * "data": "name[, ]"
+ * } ]
+ * } );
+ * } );
+ *
+ */
+ "mData": null,
+
+
+ /**
+ * This property is the rendering partner to `data` and it is suggested that
+ * when you want to manipulate data for display (including filtering,
+ * sorting etc) without altering the underlying data for the table, use this
+ * property. `render` can be considered to be the the read only companion to
+ * `data` which is read / write (then as such more complex). Like `data`
+ * this option can be given in a number of different ways to effect its
+ * behaviour:
+ *
+ * * `integer` - treated as an array index for the data source. This is the
+ * default that DataTables uses (incrementally increased for each column).
+ * * `string` - read an object property from the data source. There are
+ * three 'special' options that can be used in the string to alter how
+ * DataTables reads the data from the source object:
+ * * `.` - Dotted Javascript notation. Just as you use a `.` in
+ * Javascript to read from nested objects, so to can the options
+ * specified in `data`. For example: `browser.version` or
+ * `browser.name`. If your object parameter name contains a period, use
+ * `\\` to escape it - i.e. `first\\.name`.
+ * * `[]` - Array notation. DataTables can automatically combine data
+ * from and array source, joining the data with the characters provided
+ * between the two brackets. For example: `name[, ]` would provide a
+ * comma-space separated list from the source array. If no characters
+ * are provided between the brackets, the original array source is
+ * returned.
+ * * `()` - Function notation. Adding `()` to the end of a parameter will
+ * execute a function of the name given. For example: `browser()` for a
+ * simple function on the data source, `browser.version()` for a
+ * function in a nested property or even `browser().version` to get an
+ * object property if the function called returns an object.
+ * * `object` - use different data for the different data types requested by
+ * DataTables ('filter', 'display', 'type' or 'sort'). The property names
+ * of the object is the data type the property refers to and the value can
+ * defined using an integer, string or function using the same rules as
+ * `render` normally does. Note that an `_` option _must_ be specified.
+ * This is the default value to use if you haven't specified a value for
+ * the data type requested by DataTables.
+ * * `function` - the function given will be executed whenever DataTables
+ * needs to set or get the data for a cell in the column. The function
+ * takes three parameters:
+ * * Parameters:
+ * * {array|object} The data source for the row (based on `data`)
+ * * {string} The type call data requested - this will be 'filter',
+ * 'display', 'type' or 'sort'.
+ * * {array|object} The full data source for the row (not based on
+ * `data`)
+ * * Return:
+ * * The return value from the function is what will be used for the
+ * data requested.
+ *
+ * @type string|int|function|object|null
+ * @default null Use the data source value.
+ *
+ * @name DataTable.defaults.column.render
+ * @dtopt Columns
+ *
+ * @example
+ * // Create a comma separated list from an array of objects
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "ajaxSource": "sources/deep.txt",
+ * "columns": [
+ * { "data": "engine" },
+ * { "data": "browser" },
+ * {
+ * "data": "platform",
+ * "render": "[, ].name"
+ * }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Execute a function to obtain data
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [ 0 ],
+ * "data": null, // Use the full data source object for the renderer's source
+ * "render": "browserName()"
+ * } ]
+ * } );
+ * } );
+ *
+ * @example
+ * // As an object, extracting different data for the different types
+ * // This would be used with a data source such as:
+ * // { "phone": 5552368, "phone_filter": "5552368 555-2368", "phone_display": "555-2368" }
+ * // Here the `phone` integer is used for sorting and type detection, while `phone_filter`
+ * // (which has both forms) is used for filtering for if a user inputs either format, while
+ * // the formatted phone number is the one that is shown in the table.
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [ 0 ],
+ * "data": null, // Use the full data source object for the renderer's source
+ * "render": {
+ * "_": "phone",
+ * "filter": "phone_filter",
+ * "display": "phone_display"
+ * }
+ * } ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Use as a function to create a link from the data source
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [ 0 ],
+ * "data": "download_link",
+ * "render": function ( data, type, full ) {
+ * return 'Download';
+ * }
+ * } ]
+ * } );
+ * } );
+ */
+ "mRender": null,
+
+
+ /**
+ * Change the cell type created for the column - either TD cells or TH cells. This
+ * can be useful as TH cells have semantic meaning in the table body, allowing them
+ * to act as a header for a row (you may wish to add scope='row' to the TH elements).
+ * @type string
+ * @default td
+ *
+ * @name DataTable.defaults.column.cellType
+ * @dtopt Columns
+ *
+ * @example
+ * // Make the first column use TH cells
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [ {
+ * "targets": [ 0 ],
+ * "cellType": "th"
+ * } ]
+ * } );
+ * } );
+ */
+ "sCellType": "td",
+
+
+ /**
+ * Class to give to each cell in this column.
+ * @type string
+ * @default Empty string
+ *
+ * @name DataTable.defaults.column.class
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "class": "my_class", "targets": [ 0 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "class": "my_class" },
+ * null,
+ * null,
+ * null,
+ * null
+ * ]
+ * } );
+ * } );
+ */
+ "sClass": "",
+
+ /**
+ * When DataTables calculates the column widths to assign to each column,
+ * it finds the longest string in each column and then constructs a
+ * temporary table and reads the widths from that. The problem with this
+ * is that "mmm" is much wider then "iiii", but the latter is a longer
+ * string - thus the calculation can go wrong (doing it properly and putting
+ * it into an DOM object and measuring that is horribly(!) slow). Thus as
+ * a "work around" we provide this option. It will append its value to the
+ * text that is found to be the longest string for the column - i.e. padding.
+ * Generally you shouldn't need this!
+ * @type string
+ * @default Empty string
+ *
+ * @name DataTable.defaults.column.contentPadding
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * null,
+ * null,
+ * null,
+ * {
+ * "contentPadding": "mmm"
+ * }
+ * ]
+ * } );
+ * } );
+ */
+ "sContentPadding": "",
+
+
+ /**
+ * Allows a default value to be given for a column's data, and will be used
+ * whenever a null data source is encountered (this can be because `data`
+ * is set to null, or because the data source itself is null).
+ * @type string
+ * @default null
+ *
+ * @name DataTable.defaults.column.defaultContent
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * {
+ * "data": null,
+ * "defaultContent": "Edit",
+ * "targets": [ -1 ]
+ * }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * null,
+ * null,
+ * null,
+ * {
+ * "data": null,
+ * "defaultContent": "Edit"
+ * }
+ * ]
+ * } );
+ * } );
+ */
+ "sDefaultContent": null,
+
+
+ /**
+ * This parameter is only used in DataTables' server-side processing. It can
+ * be exceptionally useful to know what columns are being displayed on the
+ * client side, and to map these to database fields. When defined, the names
+ * also allow DataTables to reorder information from the server if it comes
+ * back in an unexpected order (i.e. if you switch your columns around on the
+ * client-side, your server-side code does not also need updating).
+ * @type string
+ * @default Empty string
+ *
+ * @name DataTable.defaults.column.name
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "name": "engine", "targets": [ 0 ] },
+ * { "name": "browser", "targets": [ 1 ] },
+ * { "name": "platform", "targets": [ 2 ] },
+ * { "name": "version", "targets": [ 3 ] },
+ * { "name": "grade", "targets": [ 4 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "name": "engine" },
+ * { "name": "browser" },
+ * { "name": "platform" },
+ * { "name": "version" },
+ * { "name": "grade" }
+ * ]
+ * } );
+ * } );
+ */
+ "sName": "",
+
+
+ /**
+ * Defines a data source type for the ordering which can be used to read
+ * real-time information from the table (updating the internally cached
+ * version) prior to ordering. This allows ordering to occur on user
+ * editable elements such as form inputs.
+ * @type string
+ * @default std
+ *
+ * @name DataTable.defaults.column.orderDataType
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "orderDataType": "dom-text", "targets": [ 2, 3 ] },
+ * { "type": "numeric", "targets": [ 3 ] },
+ * { "orderDataType": "dom-select", "targets": [ 4 ] },
+ * { "orderDataType": "dom-checkbox", "targets": [ 5 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * null,
+ * null,
+ * { "orderDataType": "dom-text" },
+ * { "orderDataType": "dom-text", "type": "numeric" },
+ * { "orderDataType": "dom-select" },
+ * { "orderDataType": "dom-checkbox" }
+ * ]
+ * } );
+ * } );
+ */
+ "sSortDataType": "std",
+
+
+ /**
+ * The title of this column.
+ * @type string
+ * @default null Derived from the 'TH' value for this column in the
+ * original HTML table.
+ *
+ * @name DataTable.defaults.column.title
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "title": "My column title", "targets": [ 0 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "title": "My column title" },
+ * null,
+ * null,
+ * null,
+ * null
+ * ]
+ * } );
+ * } );
+ */
+ "sTitle": null,
+
+
+ /**
+ * The type allows you to specify how the data for this column will be
+ * ordered. Four types (string, numeric, date and html (which will strip
+ * HTML tags before ordering)) are currently available. Note that only date
+ * formats understood by Javascript's Date() object will be accepted as type
+ * date. For example: "Mar 26, 2008 5:03 PM". May take the values: 'string',
+ * 'numeric', 'date' or 'html' (by default). Further types can be adding
+ * through plug-ins.
+ * @type string
+ * @default null Auto-detected from raw data
+ *
+ * @name DataTable.defaults.column.type
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "type": "html", "targets": [ 0 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "type": "html" },
+ * null,
+ * null,
+ * null,
+ * null
+ * ]
+ * } );
+ * } );
+ */
+ "sType": null,
+
+
+ /**
+ * Defining the width of the column, this parameter may take any CSS value
+ * (3em, 20px etc). DataTables applies 'smart' widths to columns which have not
+ * been given a specific width through this interface ensuring that the table
+ * remains readable.
+ * @type string
+ * @default null Automatic
+ *
+ * @name DataTable.defaults.column.width
+ * @dtopt Columns
+ *
+ * @example
+ * // Using `columnDefs`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columnDefs": [
+ * { "width": "20%", "targets": [ 0 ] }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Using `columns`
+ * $(document).ready( function() {
+ * $('#example').dataTable( {
+ * "columns": [
+ * { "width": "20%" },
+ * null,
+ * null,
+ * null,
+ * null
+ * ]
+ * } );
+ * } );
+ */
+ "sWidth": null
+ };
+
+ _fnHungarianMap( DataTable.defaults.column );
+
+
+
+ /**
+ * DataTables settings object - this holds all the information needed for a
+ * given table, including configuration, data and current application of the
+ * table options. DataTables does not have a single instance for each DataTable
+ * with the settings attached to that instance, but rather instances of the
+ * DataTable "class" are created on-the-fly as needed (typically by a
+ * $().dataTable() call) and the settings object is then applied to that
+ * instance.
+ *
+ * Note that this object is related to {@link DataTable.defaults} but this
+ * one is the internal data store for DataTables's cache of columns. It should
+ * NOT be manipulated outside of DataTables. Any configuration should be done
+ * through the initialisation options.
+ * @namespace
+ * @todo Really should attach the settings object to individual instances so we
+ * don't need to create new instances on each $().dataTable() call (if the
+ * table already exists). It would also save passing oSettings around and
+ * into every single function. However, this is a very significant
+ * architecture change for DataTables and will almost certainly break
+ * backwards compatibility with older installations. This is something that
+ * will be done in 2.0.
+ */
+ DataTable.models.oSettings = {
+ /**
+ * Primary features of DataTables and their enablement state.
+ * @namespace
+ */
+ "oFeatures": {
+
+ /**
+ * Flag to say if DataTables should automatically try to calculate the
+ * optimum table and columns widths (true) or not (false).
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bAutoWidth": null,
+
+ /**
+ * Delay the creation of TR and TD elements until they are actually
+ * needed by a driven page draw. This can give a significant speed
+ * increase for Ajax source and Javascript source data, but makes no
+ * difference at all fro DOM and server-side processing tables.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bDeferRender": null,
+
+ /**
+ * Enable filtering on the table or not. Note that if this is disabled
+ * then there is no filtering at all on the table, including fnFilter.
+ * To just remove the filtering input use sDom and remove the 'f' option.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bFilter": null,
+
+ /**
+ * Table information element (the 'Showing x of y records' div) enable
+ * flag.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bInfo": null,
+
+ /**
+ * Present a user control allowing the end user to change the page size
+ * when pagination is enabled.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bLengthChange": null,
+
+ /**
+ * Pagination enabled or not. Note that if this is disabled then length
+ * changing must also be disabled.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bPaginate": null,
+
+ /**
+ * Processing indicator enable flag whenever DataTables is enacting a
+ * user request - typically an Ajax request for server-side processing.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bProcessing": null,
+
+ /**
+ * Server-side processing enabled flag - when enabled DataTables will
+ * get all data from the server for every draw - there is no filtering,
+ * sorting or paging done on the client-side.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bServerSide": null,
+
+ /**
+ * Sorting enablement flag.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bSort": null,
+
+ /**
+ * Multi-column sorting
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bSortMulti": null,
+
+ /**
+ * Apply a class to the columns which are being sorted to provide a
+ * visual highlight or not. This can slow things down when enabled since
+ * there is a lot of DOM interaction.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bSortClasses": null,
+
+ /**
+ * State saving enablement flag.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bStateSave": null
+ },
+
+
+ /**
+ * Scrolling settings for a table.
+ * @namespace
+ */
+ "oScroll": {
+ /**
+ * When the table is shorter in height than sScrollY, collapse the
+ * table container down to the height of the table (when true).
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ */
+ "bCollapse": null,
+
+ /**
+ * Width of the scrollbar for the web-browser's platform. Calculated
+ * during table initialisation.
+ * @type int
+ * @default 0
+ */
+ "iBarWidth": 0,
+
+ /**
+ * Viewport width for horizontal scrolling. Horizontal scrolling is
+ * disabled if an empty string.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type string
+ */
+ "sX": null,
+
+ /**
+ * Width to expand the table to when using x-scrolling. Typically you
+ * should not need to use this.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type string
+ * @deprecated
+ */
+ "sXInner": null,
+
+ /**
+ * Viewport height for vertical scrolling. Vertical scrolling is disabled
+ * if an empty string.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type string
+ */
+ "sY": null
+ },
+
+ /**
+ * Language information for the table.
+ * @namespace
+ * @extends DataTable.defaults.oLanguage
+ */
+ "oLanguage": {
+ /**
+ * Information callback function. See
+ * {@link DataTable.defaults.fnInfoCallback}
+ * @type function
+ * @default null
+ */
+ "fnInfoCallback": null
+ },
+
+ /**
+ * Browser support parameters
+ * @namespace
+ */
+ "oBrowser": {
+ /**
+ * Indicate if the browser incorrectly calculates width:100% inside a
+ * scrolling element (IE6/7)
+ * @type boolean
+ * @default false
+ */
+ "bScrollOversize": false,
+
+ /**
+ * Determine if the vertical scrollbar is on the right or left of the
+ * scrolling container - needed for rtl language layout, although not
+ * all browsers move the scrollbar (Safari).
+ * @type boolean
+ * @default false
+ */
+ "bScrollbarLeft": false
+ },
+
+
+ "ajax": null,
+
+
+ /**
+ * Array referencing the nodes which are used for the features. The
+ * parameters of this object match what is allowed by sDom - i.e.
+ *
+ *
'l' - Length changing
+ *
'f' - Filtering input
+ *
't' - The table!
+ *
'i' - Information
+ *
'p' - Pagination
+ *
'r' - pRocessing
+ *
+ * @type array
+ * @default []
+ */
+ "aanFeatures": [],
+
+ /**
+ * Store data information - see {@link DataTable.models.oRow} for detailed
+ * information.
+ * @type array
+ * @default []
+ */
+ "aoData": [],
+
+ /**
+ * Array of indexes which are in the current display (after filtering etc)
+ * @type array
+ * @default []
+ */
+ "aiDisplay": [],
+
+ /**
+ * Array of indexes for display - no filtering
+ * @type array
+ * @default []
+ */
+ "aiDisplayMaster": [],
+
+ /**
+ * Store information about each column that is in use
+ * @type array
+ * @default []
+ */
+ "aoColumns": [],
+
+ /**
+ * Store information about the table's header
+ * @type array
+ * @default []
+ */
+ "aoHeader": [],
+
+ /**
+ * Store information about the table's footer
+ * @type array
+ * @default []
+ */
+ "aoFooter": [],
+
+ /**
+ * Store the applied global search information in case we want to force a
+ * research or compare the old search to a new one.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @namespace
+ * @extends DataTable.models.oSearch
+ */
+ "oPreviousSearch": {},
+
+ /**
+ * Store the applied search for each column - see
+ * {@link DataTable.models.oSearch} for the format that is used for the
+ * filtering information for each column.
+ * @type array
+ * @default []
+ */
+ "aoPreSearchCols": [],
+
+ /**
+ * Sorting that is applied to the table. Note that the inner arrays are
+ * used in the following manner:
+ *
+ *
Index 0 - column number
+ *
Index 1 - current sorting direction
+ *
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type array
+ * @todo These inner arrays should really be objects
+ */
+ "aaSorting": null,
+
+ /**
+ * Sorting that is always applied to the table (i.e. prefixed in front of
+ * aaSorting).
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type array
+ * @default []
+ */
+ "aaSortingFixed": [],
+
+ /**
+ * Classes to use for the striping of a table.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type array
+ * @default []
+ */
+ "asStripeClasses": null,
+
+ /**
+ * If restoring a table - we should restore its striping classes as well
+ * @type array
+ * @default []
+ */
+ "asDestroyStripes": [],
+
+ /**
+ * If restoring a table - we should restore its width
+ * @type int
+ * @default 0
+ */
+ "sDestroyWidth": 0,
+
+ /**
+ * Callback functions array for every time a row is inserted (i.e. on a draw).
+ * @type array
+ * @default []
+ */
+ "aoRowCallback": [],
+
+ /**
+ * Callback functions for the header on each draw.
+ * @type array
+ * @default []
+ */
+ "aoHeaderCallback": [],
+
+ /**
+ * Callback function for the footer on each draw.
+ * @type array
+ * @default []
+ */
+ "aoFooterCallback": [],
+
+ /**
+ * Array of callback functions for draw callback functions
+ * @type array
+ * @default []
+ */
+ "aoDrawCallback": [],
+
+ /**
+ * Array of callback functions for row created function
+ * @type array
+ * @default []
+ */
+ "aoRowCreatedCallback": [],
+
+ /**
+ * Callback functions for just before the table is redrawn. A return of
+ * false will be used to cancel the draw.
+ * @type array
+ * @default []
+ */
+ "aoPreDrawCallback": [],
+
+ /**
+ * Callback functions for when the table has been initialised.
+ * @type array
+ * @default []
+ */
+ "aoInitComplete": [],
+
+
+ /**
+ * Callbacks for modifying the settings to be stored for state saving, prior to
+ * saving state.
+ * @type array
+ * @default []
+ */
+ "aoStateSaveParams": [],
+
+ /**
+ * Callbacks for modifying the settings that have been stored for state saving
+ * prior to using the stored values to restore the state.
+ * @type array
+ * @default []
+ */
+ "aoStateLoadParams": [],
+
+ /**
+ * Callbacks for operating on the settings object once the saved state has been
+ * loaded
+ * @type array
+ * @default []
+ */
+ "aoStateLoaded": [],
+
+ /**
+ * Cache the table ID for quick access
+ * @type string
+ * @default Empty string
+ */
+ "sTableId": "",
+
+ /**
+ * The TABLE node for the main table
+ * @type node
+ * @default null
+ */
+ "nTable": null,
+
+ /**
+ * Permanent ref to the thead element
+ * @type node
+ * @default null
+ */
+ "nTHead": null,
+
+ /**
+ * Permanent ref to the tfoot element - if it exists
+ * @type node
+ * @default null
+ */
+ "nTFoot": null,
+
+ /**
+ * Permanent ref to the tbody element
+ * @type node
+ * @default null
+ */
+ "nTBody": null,
+
+ /**
+ * Cache the wrapper node (contains all DataTables controlled elements)
+ * @type node
+ * @default null
+ */
+ "nTableWrapper": null,
+
+ /**
+ * Indicate if when using server-side processing the loading of data
+ * should be deferred until the second draw.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type boolean
+ * @default false
+ */
+ "bDeferLoading": false,
+
+ /**
+ * Indicate if all required information has been read in
+ * @type boolean
+ * @default false
+ */
+ "bInitialised": false,
+
+ /**
+ * Information about open rows. Each object in the array has the parameters
+ * 'nTr' and 'nParent'
+ * @type array
+ * @default []
+ */
+ "aoOpenRows": [],
+
+ /**
+ * Dictate the positioning of DataTables' control elements - see
+ * {@link DataTable.model.oInit.sDom}.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type string
+ * @default null
+ */
+ "sDom": null,
+
+ /**
+ * Which type of pagination should be used.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type string
+ * @default two_button
+ */
+ "sPaginationType": "two_button",
+
+ /**
+ * The state duration (for `stateSave`) in seconds.
+ * Note that this parameter will be set by the initialisation routine. To
+ * set a default use {@link DataTable.defaults}.
+ * @type int
+ * @default 0
+ */
+ "iStateDuration": 0,
+
+ /**
+ * Array of callback functions for state saving. Each array element is an
+ * object with the following parameters:
+ *
+ *
function:fn - function to call. Takes two parameters, oSettings
+ * and the JSON string to save that has been thus far created. Returns
+ * a JSON string to be inserted into a json object
+ * (i.e. '"param": [ 0, 1, 2]')
+ *
string:sName - name of callback
+ *
+ * @type array
+ * @default []
+ */
+ "aoStateSave": [],
+
+ /**
+ * Array of callback functions for state loading. Each array element is an
+ * object with the following parameters:
+ *
+ *
function:fn - function to call. Takes two parameters, oSettings
+ * and the object stored. May return false to cancel state loading
+ ScrollMagic is a jQuery plugin which essentially lets you use the scrollbar like a playback scrub control.
+ It's the plugin for you, if you want to ...
+
+
+
... start an animation at a specific scroll position.
+
... synchronize an animation to the scrollbar movement.
+
... pin an element at a specific scroll position (sticky elements).
+
... pin an element for a limited amount of scroll progress (sticky elements).
+
... easily add a parallax effect to your website.
+
... create an inifinitely scrolling page (ajax load of additional content).
+
... call functions when the user hits certain scroll positions or react in any other way to the current scroll position.
')
+e("body").prepend(v),e(v).find("."+n+"modal-body").append(l),e(l).find("> ul a:first")[a+"tab"]("show"),e(v).find("[data-az-element]").click(function(){var n=e(this).attr("data-az-element"),o=t.get_nested_depth(n)
+if(o
'+r+"
"
+d=e(d).appendTo(o).click(function(){var n=e(this).attr("data-az-template")
+k(n,function(n){var i=t.children.length
+K.prototype.parse_shortcode.call(t,n)
+for(var o=i;o').appendTo(d).click(function(){var t=e(this).attr("data-az-template")
+T(t),e(o).find('[data-az-template="'+t+'"]').remove()})}})})},show:function(t,n){e("#az-elements-modal").remove(),this.make_elements_modal(t,n),e("#az-elements-modal")[a+"modal"]("show"),e("#az-elements-modal #az-elements-tabs").find("> ul a:first")[a+"tab"]("show")},get_element:function(e){return this.elements_instances[e]},delete_element:function(e){this.raiseEvent("delete_element",e),delete this.elements_instances[e]},add_element:function(e,t,n){this.elements_instances[e]=t,this.raiseEvent("add_element",{id:e,parse:n})}}),K.prototype={el_classes:_.object([n+"optgroup-bootstrap",n+"bg-primary",n+"text-primary",n+"bg-default",n+"text-default",n+"text-muted",n+"small",n+"text-left",n+"text-right",n+"text-center",n+"text-justify",n+"pull-left",n+"pull-right",n+"center-block",n+"well",n+"visible-xs-block",n+"visible-sm-block",n+"visible-md-block",n+"visible-lg-block",n+"hidden-xs",n+"hidden-sm",n+"hidden-md",n+"hidden-lg"],[p("Bootstrap classes"),p("Background primary style"),p("Text primary style"),p("Background default style"),p("Text default style"),p("Text muted style"),p("Text small style"),p("Text align left"),p("Text align right"),p("Text align center"),p("Text align justify"),p("Pull left"),p("Pull right"),p("Block align center"),p("Well"),p("Visible on extra small devices, phones (<768px)"),p("Visible on small devices, tablets (≥768px)"),p("Visible on medium devices, desktops (≥992px)"),p("Visible onn large devices, desktops (≥1200px)"),p("Hidden on extra small devices, phones (<768px)"),p("Hidden on small devices, tablets (≥768px)"),p("Hidden on medium devices, desktops (≥992px)"),p("Hidden on large devices, desktops (≥1200px)")]),elements:{},tags:{},max_nested_depth:3,name:"",category:"",description:"",params:[J({type:"textfield",heading:p("Element classes"),param_name:"el_class",description:p("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.")}),J({type:"style",heading:p("Style"),param_name:"style",description:p("Style options."),tab:p("Style")}),J({type:"style",heading:p("Hover style"),param_name:"hover_style",important:!0,description:p("Hover style options."),tab:p("Hover style")}),J({type:"integer_slider",heading:p("Left"),param_name:"pos_left",tab:p("Placement"),max:"1",step:"0.01",hidden:!0}),J({type:"integer_slider",heading:p("Right"),param_name:"pos_right",tab:p("Placement"),max:"1",step:"0.01",hidden:!0}),J({type:"integer_slider",heading:p("Top"),param_name:"pos_top",tab:p("Placement"),max:"1",step:"0.01",hidden:!0}),J({type:"integer_slider",heading:p("Bottom"),param_name:"pos_bottom",tab:p("Placement"),max:"1",step:"0.01",hidden:!0}),J({type:"integer_slider",heading:p("Width"),param_name:"pos_width",tab:p("Placement"),max:"1",step:"0.01",hidden:!0}),J({type:"integer_slider",heading:p("Height"),param_name:"pos_height",tab:p("Placement"),max:"1",step:"0.01",hidden:!0}),J({type:"integer_slider",heading:p("Z-index"),param_name:"pos_zindex",tab:p("Placement"),hidden:!0})],icon:"",is_container:!1,has_content:!1,frontend_render:!1,show_settings_on_create:!1,wrapper_class:"",weight:0,hidden:!1,disallowed_elements:[],controls_position:function(){if(!this.is_container||this.has_content){var t=e(this.dom_element).height(),n=e(window).height()
+if(t>n){var a=e(window).scrollTop(),i=(e(this.controls).offset().top,e(this.dom_element).offset().top),o=a-i+n/2
+o>40&&t>o?e(this.controls).css("top",o):o>t?e(this.controls).css("top",t-40):e(this.controls).css("top",40)}}},show_controls:function(){if(window.azexo_editor){this.controls=e('').prependTo(this.dom_element),e(''+this.name+"").appendTo(this.controls),this.is_container&&!this.has_content&&(e('').appendTo(this.controls).click({object:this},this.click_add),e('').appendTo(this.controls).click({object:this},this.click_paste)),e('').appendTo(this.controls).click({object:this},this.click_edit),e('').appendTo(this.controls).click({object:this},this.click_copy),e('').appendTo(this.controls).click({object:this},this.click_clone),e('').appendTo(this.controls).click({object:this},this.click_remove),e('').appendTo(this.controls).click({object:this},this.click_save_template),this.update_empty()
+var t=this
+setTimeout(function(){t.controls_position()},1e3),e(window).scroll(function(){t.controls_position()})
+var t=this
+t.right_click_number=0,e(this.dom_element).mousedown(function(n){if(2==n.which){t.right_click_number++
+for(var a=1,i=t,o=!1;a0)){o=!0
+break}var r=e(i.dom_element).parent().closest("[data-az-id]").attr("data-az-id")
+i=s.get_element(r),a++}if(e(".controls").css("visibility","hidden").css("opacity","0"),e(".control").css("opacity","0"),e(".az-element").removeClass("highlight"),o)t.right_click_number=0
+else if(i instanceof mt)if(i.layer_number .controls").css("visibility","visible").css("opacity","1").find(" > .control").css("opacity","1"),e(l.dom_element).addClass("highlight"),t.right_click_number--,i.layer_number++}else e(i.dom_element).find(" > .controls").css("visibility","visible").css("opacity","1").find(" > .control").css("opacity","1"),e(i.dom_element).addClass("highlight"),i.layer_number=0
+else e(i.dom_element).find(" > .controls").css("visibility","visible").css("opacity","1").find(" > .control").css("opacity","1"),e(i.dom_element).addClass("highlight")
+return!1}}),e(this.dom_element).mouseenter(function(){t.right_click_number=0,t instanceof mt&&(t.layer_number=0)}),e(this.dom_element).mouseleave(function(){e(t.dom_element).hasClass("highlight")&&(e(".controls").css("visibility","").css("opacity",""),e(".control").css("opacity",""),e(".az-element").removeClass("highlight"))})}},get_empty:function(){return'
")[0]
+e(a).find("> script").remove(),e(a).find("> link[href]").remove(),e(a).find("> .az-container > script").remove(),e(a).find("> .az-container > link[href]").remove(),e(t).css("display","none")
+var i=null
+e(a).find("> .az-container[data-az-type][data-az-name]").length>0?i=e(a).children().insertAfter(t):(i=e('').insertAfter(t),i.append(e(a).html())),window.azexo_title["Save container"]=p("Generate HTML and JS for all elements which placed in current container element.")
+var n=it(i)
+e(t).data("azexo_composer",n),n.save_container=function(){azexo_add_js({path:"js/json2.min.js",loaded:"JSON"in window,callback:function(){_.defer(function(){if(n.id in s.elements_instances){var a=n.attrs.container.split("/")[1],i=n.get_container_html()
+e(t).val('
').appendTo(t)
+for(var d in a[i])var m=o(e(l).find(".properties"),d,a[i][d])
+e('").appendTo(e(l).find(".add-property")).click(function(){o(e(l).find(".properties"),"","")})}var i=b[b[t]]
+e(d).find(".options").empty(),e(d).find(".options").append('