classiccms 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- data/classiccms.gemspec +1 -0
- data/lib/classiccms/application.rb +1 -0
- data/lib/classiccms/controllers/admin.rb +28 -0
- data/lib/classiccms/controllers/cms.rb +14 -11
- data/lib/classiccms/helpers.rb +8 -0
- data/lib/classiccms/public/admin/bootstrap/css/bootstrap-responsive.css +815 -0
- data/lib/classiccms/public/admin/bootstrap/css/bootstrap-responsive.min.css +9 -0
- data/lib/classiccms/public/admin/bootstrap/css/bootstrap.css +4983 -0
- data/lib/classiccms/public/admin/bootstrap/css/bootstrap.min.css +9 -0
- data/lib/classiccms/public/admin/bootstrap/img/glyphicons-halflings-white.png +0 -0
- data/lib/classiccms/public/admin/bootstrap/img/glyphicons-halflings.png +0 -0
- data/lib/classiccms/public/admin/bootstrap/index.js +14 -0
- data/lib/classiccms/public/admin/bootstrap/js/bootstrap.js +1825 -0
- data/lib/classiccms/public/admin/bootstrap/js/bootstrap.min.js +6 -0
- data/lib/classiccms/public/admin/datatables/css/demo_page.css +107 -0
- data/lib/classiccms/public/admin/datatables/css/demo_table.css +556 -0
- data/lib/classiccms/public/admin/datatables/css/demo_table_jui.css +526 -0
- data/lib/classiccms/public/admin/datatables/css/jquery.dataTables.css +220 -0
- data/lib/classiccms/public/admin/datatables/css/jquery.dataTables_themeroller.css +245 -0
- data/lib/classiccms/public/admin/datatables/images/Sorting icons.psd +0 -0
- data/lib/classiccms/public/admin/datatables/images/back_disabled.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/back_enabled.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/back_enabled_hover.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/favicon.ico +0 -0
- data/lib/classiccms/public/admin/datatables/images/forward_disabled.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/forward_enabled.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/forward_enabled_hover.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/sort_asc.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/sort_asc_disabled.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/sort_both.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/sort_desc.png +0 -0
- data/lib/classiccms/public/admin/datatables/images/sort_desc_disabled.png +0 -0
- data/lib/classiccms/public/admin/datatables/js/jquery.dataTables.js +11863 -0
- data/lib/classiccms/public/admin/datatables/js/jquery.dataTables.min.js +154 -0
- data/lib/classiccms/public/admin/datatables/js/jquery.js +4 -0
- data/lib/classiccms/public/admin/datatables/src/DataTables.js +259 -0
- data/lib/classiccms/public/admin/datatables/src/api/api.internal.js +128 -0
- data/lib/classiccms/public/admin/datatables/src/api/api.methods.js +1276 -0
- data/lib/classiccms/public/admin/datatables/src/api/api.static.js +98 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.ajax.js +185 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.columns.js +365 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.constructor.js +439 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.data.js +546 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.draw.js +788 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.filter.js +405 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.info.js +117 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.init.js +153 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.length.js +122 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.page.js +119 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.processing.js +44 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.scrolling.js +495 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.sizing.js +405 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.sort.js +460 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.state.js +201 -0
- data/lib/classiccms/public/admin/datatables/src/core/core.support.js +316 -0
- data/lib/classiccms/public/admin/datatables/src/ext/ext.classes.js +112 -0
- data/lib/classiccms/public/admin/datatables/src/ext/ext.paging.js +257 -0
- data/lib/classiccms/public/admin/datatables/src/ext/ext.sorting.js +86 -0
- data/lib/classiccms/public/admin/datatables/src/ext/ext.types.js +88 -0
- data/lib/classiccms/public/admin/datatables/src/model/model.column.js +248 -0
- data/lib/classiccms/public/admin/datatables/src/model/model.defaults.columns.js +737 -0
- data/lib/classiccms/public/admin/datatables/src/model/model.defaults.js +1944 -0
- data/lib/classiccms/public/admin/datatables/src/model/model.ext.js +528 -0
- data/lib/classiccms/public/admin/datatables/src/model/model.row.js +64 -0
- data/lib/classiccms/public/admin/datatables/src/model/model.search.js +40 -0
- data/lib/classiccms/public/admin/datatables/src/model/model.settings.js +868 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/controller.js +94 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/controller.php +100 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/index.html +7 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/performance/draw.html +482 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/performance/large.php +108 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/performance/page.html +477 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/performance/sort.html +477 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/-complex_header.php +469 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/2512.php +464 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/6776.php +116 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/complex_header_2.php +485 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/deferred_table.php +132 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/dom_data.php +465 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/dom_data_th.php +465 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/dom_data_two_headers.php +472 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/dymanic_table.php +45 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/empty_table.php +55 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/html_table.php +66 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/js_data.php +124 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/js_data_mixed_types.php +124 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/templates/two_tables.php +227 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests/1_dom/_zero_config.js +437 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/-complex_header.js +52 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/-iDraw.js +41 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2512.js +17 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2530-2.js +15 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2530.js +29 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2569.js +36 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2600.js +44 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2608.js +54 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2635.js +40 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2746-stable-sort.js +199 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2799.js +14 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2840-restore-table-width.js +19 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2914-state-save-sort.js +39 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/5396-fnUpdate-arrays.js +103 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/5508-xscroll-zero-content.js +23 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/6776-scrolling-table-grows.js +64 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/_zero_config.js +437 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aaSorting.js +183 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aaSortingFixed.js +60 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bSearchable.js +67 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bSortable.js +105 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bUseRendered.js +145 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bVisible.js +132 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bVisible2.js +268 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.fnRender.js +176 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.iDataSort.js +88 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sClass.js +111 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sName.js +27 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sTitle.js +78 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sWidth.js +84 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoSearchCols.js +112 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/asStripClasses.js +106 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bAutoWidth.js +138 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bFilter.js +40 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js +130 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bInfo.js +40 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bJQueryUI.js +40 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bLengthChange.js +71 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bPaginate.js +55 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bProcessing.js +99 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bServerSide.js +18 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bSort.js +101 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bSortCellsTop.js +77 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bSortClasses.js +128 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnCookieCallback.js +97 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnCreatedCell.js +151 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnCreatedRow.js +115 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnDeleteRow.js +30 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnDrawCallback.js +80 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnFilter.js +16 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnFooterCallback.js +227 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnHeaderCallback.js +227 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnInfoCallback.js +115 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnInitComplete.js +94 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnRowCallback.js +105 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnSetColumnVis.js +120 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnSetColumnVis2.js +236 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/html-autodetect-sort.js +57 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/iDisplayLength.js +76 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.oPaginate.js +80 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfo.js +109 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfoEmpty.js +75 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfoPostFix.js +73 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sLengthMenu.js +106 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sProcessing.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sSearch.js +66 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sUrl.js +59 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sZeroRecords.js +45 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oSearch.js +101 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sAjaxSource.js +18 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sDom.js +319 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sPaginationType.js +122 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sScrollXY.js +63 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/th_in_body.js +437 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/6872-default-content-missing-props.js +285 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/8549--string-sorting-nonstrings.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/_zero_config.js +440 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aaSorting.js +198 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aaSortingFixed.js +64 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bSearchable.js +71 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bSortable.js +109 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bUseRendered.js +148 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bVisible.js +110 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.fnRender.js +156 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.iDataSort.js +90 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sClass.js +115 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sName.js +28 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sTitle.js +82 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sWidth.js +87 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoSearchCols.js +119 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/asStripClasses.js +100 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bAutoWidth.js +142 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bFilter.js +44 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bInfo.js +44 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bLengthChange.js +75 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bPaginate.js +59 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bProcessing.js +103 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bServerSide.js +20 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bSort.js +99 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bSortClasses.js +132 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnCreatedCell.js +158 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnCreatedRow.js +121 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnDrawCallback.js +85 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnFooterCallback.js +240 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnHeaderCallback.js +240 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnInitComplete.js +83 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnRowCallback.js +112 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/iDisplayLength.js +81 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/js_data_mixed_types.js +392 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.oPaginate.js +84 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfo.js +117 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfoEmpty.js +79 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfoPostFix.js +78 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sLengthMenu.js +111 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sProcessing.js +49 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sSearch.js +70 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sUrl.js +62 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sZeroRecords.js +48 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oSearch.js +108 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/sAjaxSource.js +20 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/sDom.js +262 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/sPaginationType.js +125 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/_zero_config.js +440 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aaSorting.js +198 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aaSortingFixed.js +67 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bSearchable.js +76 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bSortable.js +109 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bUseRendered.js +148 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bVisible.js +124 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.fnRender.js +156 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.iDataSort.js +90 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sClass.js +115 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sName.js +28 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sTitle.js +82 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sWidth.js +87 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoSearchCols.js +119 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/asStripClasses.js +105 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bAutoWidth.js +142 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bFilter.js +44 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bInfo.js +44 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bLengthChange.js +75 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bPaginate.js +59 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bProcessing.js +103 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bServerSide.js +20 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bSort.js +99 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bSortClasses.js +132 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnCreatedCell.js +183 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnCreatedRow.js +142 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnDrawCallback.js +98 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnHeaderCallback.js +191 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnInitComplete.js +100 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnRowCallback.js +112 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnServerData.js +64 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/iDisplayLength.js +81 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.oPaginate.js +84 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfo.js +117 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoEmpty.js +79 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoPostFix.js +78 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sLengthMenu.js +111 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sLoadingRecords.js +65 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sProcessing.js +49 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sSearch.js +70 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sUrl.js +62 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sZeroRecords.js +48 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oSearch.js +108 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sAjaxDataProp.js +139 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sAjaxDataProp2.js +139 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sAjaxSource.js +22 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sDom.js +262 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sPaginationType.js +134 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/-iDraw.js +44 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/2440.js +32 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/2569.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/2600.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/_zero_config.js +424 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aaSorting.js +212 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aaSortingFixed.js +67 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bSearchable.js +25 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bSortable.js +112 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bUseRendered.js +43 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bVisible.js +123 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.fnRender.js +162 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sClass.js +118 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sName.js +29 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sTitle.js +85 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sWidth.js +90 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoSearchCols.js +70 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/asStripClasses.js +109 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bAutoWidth.js +145 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bFilter.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bInfiniteScroll.js +168 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bInfo.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bLengthChange.js +78 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bPaginate.js +62 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bProcessing.js +106 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bServerSide.js +21 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bSort.js +102 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bSortClasses.js +135 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnCreatedCell.js +190 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnCreatedRow.js +148 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnDrawCallback.js +89 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnHeaderCallback.js +191 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnInitComplete.js +89 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnRowCallback.js +118 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/iDeferLoading.js +95 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/iDisplayLength.js +85 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.oPaginate.js +86 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfo.js +124 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoEmpty.js +82 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoPostFix.js +82 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sLengthMenu.js +115 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sProcessing.js +51 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sSearch.js +73 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sUrl.js +64 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sZeroRecords.js +58 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oSearch.js +100 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sAjaxDataProp.js +146 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sAjaxSource.js +23 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sDom.js +269 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sPaginationType.js +138 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js +847 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js +961 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js +1075 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js +458 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js +847 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js +961 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js +296 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js +88 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js +83 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js +116 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js +155 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js +131 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js +177 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js +90 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js +122 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js +28 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js +89 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js +87 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js +161 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js +133 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js +163 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js +65 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js +65 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js +96 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js +80 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js +124 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js +27 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bSort.js +120 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js +153 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js +126 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js +254 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js +135 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js +154 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js +92 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js +109 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js +98 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js +166 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js +100 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js +106 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js +139 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js +63 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js +91 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js +76 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js +62 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js +150 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js +29 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/sDom.js +311 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js +148 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/_zero_config.js +403 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aaSorting.js +212 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aaSortingFixed.js +70 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSearchable.js +79 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSortable.js +112 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bUseRendered.js +151 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bVisible.js +127 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.fnRender.js +190 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.iDataSort.js +92 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sClass.js +118 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sName.js +29 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sTitle.js +85 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sWidth.js +90 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoSearchCols.js +125 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/asStripClasses.js +109 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bAutoWidth.js +145 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bFilter.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bInfo.js +47 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bLengthChange.js +78 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bPaginate.js +62 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bProcessing.js +106 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bServerSide.js +21 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bSort.js +102 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bSortClasses.js +135 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnDrawCallback.js +102 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnHeaderCallback.js +200 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnInitComplete.js +105 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnRowCallback.js +118 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnServerData.js +68 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/iDisplayLength.js +85 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.oPaginate.js +86 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfo.js +124 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoEmpty.js +82 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoPostFix.js +82 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sLengthMenu.js +115 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sProcessing.js +51 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sSearch.js +73 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sUrl.js +64 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sZeroRecords.js +50 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oSearch.js +114 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp.js +140 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp2.js +140 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxSource.js +23 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sDom.js +269 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sPaginationType.js +136 -0
- data/lib/classiccms/public/admin/datatables/unit_testing/unit_test.js +409 -0
- data/lib/classiccms/public/admin/index.js +5 -0
- data/lib/classiccms/scaffold/config.ru +2 -1
- data/lib/classiccms/version.rb +1 -1
- data/lib/classiccms/views/admin/index.haml +51 -0
- metadata +418 -2
@@ -0,0 +1,460 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Change the order of the table
|
5
|
+
* @param {object} oSettings dataTables settings object
|
6
|
+
* @param {bool} bApplyClasses optional - should we apply classes or not
|
7
|
+
* @memberof DataTable#oApi
|
8
|
+
*/
|
9
|
+
function _fnSort ( oSettings, bApplyClasses )
|
10
|
+
{
|
11
|
+
var
|
12
|
+
i, iLen, j, jLen, k, kLen,
|
13
|
+
sDataType, nTh,
|
14
|
+
aaSort = [],
|
15
|
+
aiOrig = [],
|
16
|
+
oSort = DataTable.ext.oSort,
|
17
|
+
aoData = oSettings.aoData,
|
18
|
+
aoColumns = oSettings.aoColumns,
|
19
|
+
oAria = oSettings.oLanguage.oAria;
|
20
|
+
|
21
|
+
/* No sorting required if server-side or no sorting array */
|
22
|
+
if ( !oSettings.oFeatures.bServerSide &&
|
23
|
+
(oSettings.aaSorting.length !== 0 || oSettings.aaSortingFixed !== null) )
|
24
|
+
{
|
25
|
+
aaSort = ( oSettings.aaSortingFixed !== null ) ?
|
26
|
+
oSettings.aaSortingFixed.concat( oSettings.aaSorting ) :
|
27
|
+
oSettings.aaSorting.slice();
|
28
|
+
|
29
|
+
/* If there is a sorting data type, and a fuction belonging to it, then we need to
|
30
|
+
* get the data from the developer's function and apply it for this column
|
31
|
+
*/
|
32
|
+
for ( i=0 ; i<aaSort.length ; i++ )
|
33
|
+
{
|
34
|
+
var iColumn = aaSort[i][0];
|
35
|
+
var iVisColumn = _fnColumnIndexToVisible( oSettings, iColumn );
|
36
|
+
sDataType = oSettings.aoColumns[ iColumn ].sSortDataType;
|
37
|
+
if ( DataTable.ext.afnSortData[sDataType] )
|
38
|
+
{
|
39
|
+
var aData = DataTable.ext.afnSortData[sDataType].call(
|
40
|
+
oSettings.oInstance, oSettings, iColumn, iVisColumn
|
41
|
+
);
|
42
|
+
if ( aData.length === aoData.length )
|
43
|
+
{
|
44
|
+
for ( j=0, jLen=aoData.length ; j<jLen ; j++ )
|
45
|
+
{
|
46
|
+
_fnSetCellData( oSettings, j, iColumn, aData[j] );
|
47
|
+
}
|
48
|
+
}
|
49
|
+
else
|
50
|
+
{
|
51
|
+
_fnLog( oSettings, 0, "Returned data sort array (col "+iColumn+") is the wrong length" );
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
/* Create a value - key array of the current row positions such that we can use their
|
57
|
+
* current position during the sort, if values match, in order to perform stable sorting
|
58
|
+
*/
|
59
|
+
for ( i=0, iLen=oSettings.aiDisplayMaster.length ; i<iLen ; i++ )
|
60
|
+
{
|
61
|
+
aiOrig[ oSettings.aiDisplayMaster[i] ] = i;
|
62
|
+
}
|
63
|
+
|
64
|
+
/* Build an internal data array which is specific to the sort, so we can get and prep
|
65
|
+
* the data to be sorted only once, rather than needing to do it every time the sorting
|
66
|
+
* function runs. This make the sorting function a very simple comparison
|
67
|
+
*/
|
68
|
+
var iSortLen = aaSort.length;
|
69
|
+
var fnSortFormat, aDataSort;
|
70
|
+
for ( i=0, iLen=aoData.length ; i<iLen ; i++ )
|
71
|
+
{
|
72
|
+
for ( j=0 ; j<iSortLen ; j++ )
|
73
|
+
{
|
74
|
+
aDataSort = aoColumns[ aaSort[j][0] ].aDataSort;
|
75
|
+
|
76
|
+
for ( k=0, kLen=aDataSort.length ; k<kLen ; k++ )
|
77
|
+
{
|
78
|
+
sDataType = aoColumns[ aDataSort[k] ].sType;
|
79
|
+
fnSortFormat = oSort[ (sDataType ? sDataType : 'string')+"-pre" ];
|
80
|
+
|
81
|
+
aoData[i]._aSortData[ aDataSort[k] ] = fnSortFormat ?
|
82
|
+
fnSortFormat( _fnGetCellData( oSettings, i, aDataSort[k], 'sort' ) ) :
|
83
|
+
_fnGetCellData( oSettings, i, aDataSort[k], 'sort' );
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
88
|
+
/* Do the sort - here we want multi-column sorting based on a given data source (column)
|
89
|
+
* and sorting function (from oSort) in a certain direction. It's reasonably complex to
|
90
|
+
* follow on it's own, but this is what we want (example two column sorting):
|
91
|
+
* fnLocalSorting = function(a,b){
|
92
|
+
* var iTest;
|
93
|
+
* iTest = oSort['string-asc']('data11', 'data12');
|
94
|
+
* if (iTest !== 0)
|
95
|
+
* return iTest;
|
96
|
+
* iTest = oSort['numeric-desc']('data21', 'data22');
|
97
|
+
* if (iTest !== 0)
|
98
|
+
* return iTest;
|
99
|
+
* return oSort['numeric-asc']( aiOrig[a], aiOrig[b] );
|
100
|
+
* }
|
101
|
+
* Basically we have a test for each sorting column, if the data in that column is equal,
|
102
|
+
* test the next column. If all columns match, then we use a numeric sort on the row
|
103
|
+
* positions in the original data array to provide a stable sort.
|
104
|
+
*/
|
105
|
+
oSettings.aiDisplayMaster.sort( function ( a, b ) {
|
106
|
+
var k, l, lLen, iTest, aDataSort, sDataType;
|
107
|
+
for ( k=0 ; k<iSortLen ; k++ )
|
108
|
+
{
|
109
|
+
aDataSort = aoColumns[ aaSort[k][0] ].aDataSort;
|
110
|
+
|
111
|
+
for ( l=0, lLen=aDataSort.length ; l<lLen ; l++ )
|
112
|
+
{
|
113
|
+
sDataType = aoColumns[ aDataSort[l] ].sType;
|
114
|
+
|
115
|
+
iTest = oSort[ (sDataType ? sDataType : 'string')+"-"+aaSort[k][1] ](
|
116
|
+
aoData[a]._aSortData[ aDataSort[l] ],
|
117
|
+
aoData[b]._aSortData[ aDataSort[l] ]
|
118
|
+
);
|
119
|
+
|
120
|
+
if ( iTest !== 0 )
|
121
|
+
{
|
122
|
+
return iTest;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
126
|
+
|
127
|
+
return oSort['numeric-asc']( aiOrig[a], aiOrig[b] );
|
128
|
+
} );
|
129
|
+
}
|
130
|
+
|
131
|
+
/* Alter the sorting classes to take account of the changes */
|
132
|
+
if ( (bApplyClasses === undefined || bApplyClasses) && !oSettings.oFeatures.bDeferRender )
|
133
|
+
{
|
134
|
+
_fnSortingClasses( oSettings );
|
135
|
+
}
|
136
|
+
|
137
|
+
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
138
|
+
{
|
139
|
+
var sTitle = aoColumns[i].sTitle.replace( /<.*?>/g, "" );
|
140
|
+
nTh = aoColumns[i].nTh;
|
141
|
+
nTh.removeAttribute('aria-sort');
|
142
|
+
nTh.removeAttribute('aria-label');
|
143
|
+
|
144
|
+
/* In ARIA only the first sorting column can be marked as sorting - no multi-sort option */
|
145
|
+
if ( aoColumns[i].bSortable )
|
146
|
+
{
|
147
|
+
if ( aaSort.length > 0 && aaSort[0][0] == i )
|
148
|
+
{
|
149
|
+
nTh.setAttribute('aria-sort', aaSort[0][1]=="asc" ? "ascending" : "descending" );
|
150
|
+
|
151
|
+
var nextSort = (aoColumns[i].asSorting[ aaSort[0][2]+1 ]) ?
|
152
|
+
aoColumns[i].asSorting[ aaSort[0][2]+1 ] : aoColumns[i].asSorting[0];
|
153
|
+
nTh.setAttribute('aria-label', sTitle+
|
154
|
+
(nextSort=="asc" ? oAria.sSortAscending : oAria.sSortDescending) );
|
155
|
+
}
|
156
|
+
else
|
157
|
+
{
|
158
|
+
nTh.setAttribute('aria-label', sTitle+
|
159
|
+
(aoColumns[i].asSorting[0]=="asc" ? oAria.sSortAscending : oAria.sSortDescending) );
|
160
|
+
}
|
161
|
+
}
|
162
|
+
else
|
163
|
+
{
|
164
|
+
nTh.setAttribute('aria-label', sTitle);
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
/* Tell the draw function that we have sorted the data */
|
169
|
+
oSettings.bSorted = true;
|
170
|
+
$(oSettings.oInstance).trigger('sort', oSettings);
|
171
|
+
|
172
|
+
/* Copy the master data into the draw array and re-draw */
|
173
|
+
if ( oSettings.oFeatures.bFilter )
|
174
|
+
{
|
175
|
+
/* _fnFilter() will redraw the table for us */
|
176
|
+
_fnFilterComplete( oSettings, oSettings.oPreviousSearch, 1 );
|
177
|
+
}
|
178
|
+
else
|
179
|
+
{
|
180
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
181
|
+
oSettings._iDisplayStart = 0; /* reset display back to page 0 */
|
182
|
+
_fnCalculateEnd( oSettings );
|
183
|
+
_fnDraw( oSettings );
|
184
|
+
}
|
185
|
+
}
|
186
|
+
|
187
|
+
|
188
|
+
/**
|
189
|
+
* Attach a sort handler (click) to a node
|
190
|
+
* @param {object} oSettings dataTables settings object
|
191
|
+
* @param {node} nNode node to attach the handler to
|
192
|
+
* @param {int} iDataIndex column sorting index
|
193
|
+
* @param {function} [fnCallback] callback function
|
194
|
+
* @memberof DataTable#oApi
|
195
|
+
*/
|
196
|
+
function _fnSortAttachListener ( oSettings, nNode, iDataIndex, fnCallback )
|
197
|
+
{
|
198
|
+
_fnBindAction( nNode, {}, function (e) {
|
199
|
+
/* If the column is not sortable - don't to anything */
|
200
|
+
if ( oSettings.aoColumns[iDataIndex].bSortable === false )
|
201
|
+
{
|
202
|
+
return;
|
203
|
+
}
|
204
|
+
|
205
|
+
/*
|
206
|
+
* This is a little bit odd I admit... I declare a temporary function inside the scope of
|
207
|
+
* _fnBuildHead and the click handler in order that the code presented here can be used
|
208
|
+
* twice - once for when bProcessing is enabled, and another time for when it is
|
209
|
+
* disabled, as we need to perform slightly different actions.
|
210
|
+
* Basically the issue here is that the Javascript engine in modern browsers don't
|
211
|
+
* appear to allow the rendering engine to update the display while it is still excuting
|
212
|
+
* it's thread (well - it does but only after long intervals). This means that the
|
213
|
+
* 'processing' display doesn't appear for a table sort. To break the js thread up a bit
|
214
|
+
* I force an execution break by using setTimeout - but this breaks the expected
|
215
|
+
* thread continuation for the end-developer's point of view (their code would execute
|
216
|
+
* too early), so we on;y do it when we absolutely have to.
|
217
|
+
*/
|
218
|
+
var fnInnerSorting = function () {
|
219
|
+
var iColumn, iNextSort;
|
220
|
+
|
221
|
+
/* If the shift key is pressed then we are multipe column sorting */
|
222
|
+
if ( e.shiftKey )
|
223
|
+
{
|
224
|
+
/* Are we already doing some kind of sort on this column? */
|
225
|
+
var bFound = false;
|
226
|
+
for ( var i=0 ; i<oSettings.aaSorting.length ; i++ )
|
227
|
+
{
|
228
|
+
if ( oSettings.aaSorting[i][0] == iDataIndex )
|
229
|
+
{
|
230
|
+
bFound = true;
|
231
|
+
iColumn = oSettings.aaSorting[i][0];
|
232
|
+
iNextSort = oSettings.aaSorting[i][2]+1;
|
233
|
+
|
234
|
+
if ( !oSettings.aoColumns[iColumn].asSorting[iNextSort] )
|
235
|
+
{
|
236
|
+
/* Reached the end of the sorting options, remove from multi-col sort */
|
237
|
+
oSettings.aaSorting.splice( i, 1 );
|
238
|
+
}
|
239
|
+
else
|
240
|
+
{
|
241
|
+
/* Move onto next sorting direction */
|
242
|
+
oSettings.aaSorting[i][1] = oSettings.aoColumns[iColumn].asSorting[iNextSort];
|
243
|
+
oSettings.aaSorting[i][2] = iNextSort;
|
244
|
+
}
|
245
|
+
break;
|
246
|
+
}
|
247
|
+
}
|
248
|
+
|
249
|
+
/* No sort yet - add it in */
|
250
|
+
if ( bFound === false )
|
251
|
+
{
|
252
|
+
oSettings.aaSorting.push( [ iDataIndex,
|
253
|
+
oSettings.aoColumns[iDataIndex].asSorting[0], 0 ] );
|
254
|
+
}
|
255
|
+
}
|
256
|
+
else
|
257
|
+
{
|
258
|
+
/* If no shift key then single column sort */
|
259
|
+
if ( oSettings.aaSorting.length == 1 && oSettings.aaSorting[0][0] == iDataIndex )
|
260
|
+
{
|
261
|
+
iColumn = oSettings.aaSorting[0][0];
|
262
|
+
iNextSort = oSettings.aaSorting[0][2]+1;
|
263
|
+
if ( !oSettings.aoColumns[iColumn].asSorting[iNextSort] )
|
264
|
+
{
|
265
|
+
iNextSort = 0;
|
266
|
+
}
|
267
|
+
oSettings.aaSorting[0][1] = oSettings.aoColumns[iColumn].asSorting[iNextSort];
|
268
|
+
oSettings.aaSorting[0][2] = iNextSort;
|
269
|
+
}
|
270
|
+
else
|
271
|
+
{
|
272
|
+
oSettings.aaSorting.splice( 0, oSettings.aaSorting.length );
|
273
|
+
oSettings.aaSorting.push( [ iDataIndex,
|
274
|
+
oSettings.aoColumns[iDataIndex].asSorting[0], 0 ] );
|
275
|
+
}
|
276
|
+
}
|
277
|
+
|
278
|
+
/* Run the sort */
|
279
|
+
_fnSort( oSettings );
|
280
|
+
}; /* /fnInnerSorting */
|
281
|
+
|
282
|
+
if ( !oSettings.oFeatures.bProcessing )
|
283
|
+
{
|
284
|
+
fnInnerSorting();
|
285
|
+
}
|
286
|
+
else
|
287
|
+
{
|
288
|
+
_fnProcessingDisplay( oSettings, true );
|
289
|
+
setTimeout( function() {
|
290
|
+
fnInnerSorting();
|
291
|
+
if ( !oSettings.oFeatures.bServerSide )
|
292
|
+
{
|
293
|
+
_fnProcessingDisplay( oSettings, false );
|
294
|
+
}
|
295
|
+
}, 0 );
|
296
|
+
}
|
297
|
+
|
298
|
+
/* Call the user specified callback function - used for async user interaction */
|
299
|
+
if ( typeof fnCallback == 'function' )
|
300
|
+
{
|
301
|
+
fnCallback( oSettings );
|
302
|
+
}
|
303
|
+
} );
|
304
|
+
}
|
305
|
+
|
306
|
+
|
307
|
+
/**
|
308
|
+
* Set the sorting classes on the header, Note: it is safe to call this function
|
309
|
+
* when bSort and bSortClasses are false
|
310
|
+
* @param {object} oSettings dataTables settings object
|
311
|
+
* @memberof DataTable#oApi
|
312
|
+
*/
|
313
|
+
function _fnSortingClasses( oSettings )
|
314
|
+
{
|
315
|
+
var i, iLen, j, jLen, iFound;
|
316
|
+
var aaSort, sClass;
|
317
|
+
var iColumns = oSettings.aoColumns.length;
|
318
|
+
var oClasses = oSettings.oClasses;
|
319
|
+
|
320
|
+
for ( i=0 ; i<iColumns ; i++ )
|
321
|
+
{
|
322
|
+
if ( oSettings.aoColumns[i].bSortable )
|
323
|
+
{
|
324
|
+
$(oSettings.aoColumns[i].nTh).removeClass( oClasses.sSortAsc +" "+ oClasses.sSortDesc +
|
325
|
+
" "+ oSettings.aoColumns[i].sSortingClass );
|
326
|
+
}
|
327
|
+
}
|
328
|
+
|
329
|
+
if ( oSettings.aaSortingFixed !== null )
|
330
|
+
{
|
331
|
+
aaSort = oSettings.aaSortingFixed.concat( oSettings.aaSorting );
|
332
|
+
}
|
333
|
+
else
|
334
|
+
{
|
335
|
+
aaSort = oSettings.aaSorting.slice();
|
336
|
+
}
|
337
|
+
|
338
|
+
/* Apply the required classes to the header */
|
339
|
+
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
|
340
|
+
{
|
341
|
+
if ( oSettings.aoColumns[i].bSortable )
|
342
|
+
{
|
343
|
+
sClass = oSettings.aoColumns[i].sSortingClass;
|
344
|
+
iFound = -1;
|
345
|
+
for ( j=0 ; j<aaSort.length ; j++ )
|
346
|
+
{
|
347
|
+
if ( aaSort[j][0] == i )
|
348
|
+
{
|
349
|
+
sClass = ( aaSort[j][1] == "asc" ) ?
|
350
|
+
oClasses.sSortAsc : oClasses.sSortDesc;
|
351
|
+
iFound = j;
|
352
|
+
break;
|
353
|
+
}
|
354
|
+
}
|
355
|
+
$(oSettings.aoColumns[i].nTh).addClass( sClass );
|
356
|
+
|
357
|
+
if ( oSettings.bJUI )
|
358
|
+
{
|
359
|
+
/* jQuery UI uses extra markup */
|
360
|
+
var jqSpan = $("span."+oClasses.sSortIcon, oSettings.aoColumns[i].nTh);
|
361
|
+
jqSpan.removeClass(oClasses.sSortJUIAsc +" "+ oClasses.sSortJUIDesc +" "+
|
362
|
+
oClasses.sSortJUI +" "+ oClasses.sSortJUIAscAllowed +" "+ oClasses.sSortJUIDescAllowed );
|
363
|
+
|
364
|
+
var sSpanClass;
|
365
|
+
if ( iFound == -1 )
|
366
|
+
{
|
367
|
+
sSpanClass = oSettings.aoColumns[i].sSortingClassJUI;
|
368
|
+
}
|
369
|
+
else if ( aaSort[iFound][1] == "asc" )
|
370
|
+
{
|
371
|
+
sSpanClass = oClasses.sSortJUIAsc;
|
372
|
+
}
|
373
|
+
else
|
374
|
+
{
|
375
|
+
sSpanClass = oClasses.sSortJUIDesc;
|
376
|
+
}
|
377
|
+
|
378
|
+
jqSpan.addClass( sSpanClass );
|
379
|
+
}
|
380
|
+
}
|
381
|
+
else
|
382
|
+
{
|
383
|
+
/* No sorting on this column, so add the base class. This will have been assigned by
|
384
|
+
* _fnAddColumn
|
385
|
+
*/
|
386
|
+
$(oSettings.aoColumns[i].nTh).addClass( oSettings.aoColumns[i].sSortingClass );
|
387
|
+
}
|
388
|
+
}
|
389
|
+
|
390
|
+
/*
|
391
|
+
* Apply the required classes to the table body
|
392
|
+
* Note that this is given as a feature switch since it can significantly slow down a sort
|
393
|
+
* on large data sets (adding and removing of classes is always slow at the best of times..)
|
394
|
+
* Further to this, note that this code is admitadly fairly ugly. It could be made a lot
|
395
|
+
* simpiler using jQuery selectors and add/removeClass, but that is significantly slower
|
396
|
+
* (on the order of 5 times slower) - hence the direct DOM manipulation here.
|
397
|
+
* Note that for defered drawing we do use jQuery - the reason being that taking the first
|
398
|
+
* row found to see if the whole column needs processed can miss classes since the first
|
399
|
+
* column might be new.
|
400
|
+
*/
|
401
|
+
sClass = oClasses.sSortColumn;
|
402
|
+
|
403
|
+
if ( oSettings.oFeatures.bSort && oSettings.oFeatures.bSortClasses )
|
404
|
+
{
|
405
|
+
var nTds = _fnGetTdNodes( oSettings );
|
406
|
+
|
407
|
+
/* Remove the old classes */
|
408
|
+
if ( oSettings.oFeatures.bDeferRender )
|
409
|
+
{
|
410
|
+
$(nTds).removeClass(sClass+'1 '+sClass+'2 '+sClass+'3');
|
411
|
+
}
|
412
|
+
else if ( nTds.length >= iColumns )
|
413
|
+
{
|
414
|
+
for ( i=0 ; i<iColumns ; i++ )
|
415
|
+
{
|
416
|
+
if ( nTds[i].className.indexOf(sClass+"1") != -1 )
|
417
|
+
{
|
418
|
+
for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
|
419
|
+
{
|
420
|
+
nTds[(iColumns*j)+i].className =
|
421
|
+
$.trim( nTds[(iColumns*j)+i].className.replace( sClass+"1", "" ) );
|
422
|
+
}
|
423
|
+
}
|
424
|
+
else if ( nTds[i].className.indexOf(sClass+"2") != -1 )
|
425
|
+
{
|
426
|
+
for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
|
427
|
+
{
|
428
|
+
nTds[(iColumns*j)+i].className =
|
429
|
+
$.trim( nTds[(iColumns*j)+i].className.replace( sClass+"2", "" ) );
|
430
|
+
}
|
431
|
+
}
|
432
|
+
else if ( nTds[i].className.indexOf(sClass+"3") != -1 )
|
433
|
+
{
|
434
|
+
for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
|
435
|
+
{
|
436
|
+
nTds[(iColumns*j)+i].className =
|
437
|
+
$.trim( nTds[(iColumns*j)+i].className.replace( " "+sClass+"3", "" ) );
|
438
|
+
}
|
439
|
+
}
|
440
|
+
}
|
441
|
+
}
|
442
|
+
|
443
|
+
/* Add the new classes to the table */
|
444
|
+
var iClass = 1, iTargetCol;
|
445
|
+
for ( i=0 ; i<aaSort.length ; i++ )
|
446
|
+
{
|
447
|
+
iTargetCol = parseInt( aaSort[i][0], 10 );
|
448
|
+
for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
|
449
|
+
{
|
450
|
+
nTds[(iColumns*j)+iTargetCol].className += " "+sClass+iClass;
|
451
|
+
}
|
452
|
+
|
453
|
+
if ( iClass < 3 )
|
454
|
+
{
|
455
|
+
iClass++;
|
456
|
+
}
|
457
|
+
}
|
458
|
+
}
|
459
|
+
}
|
460
|
+
|
@@ -0,0 +1,201 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Save the state of a table in a cookie such that the page can be reloaded
|
5
|
+
* @param {object} oSettings dataTables settings object
|
6
|
+
* @memberof DataTable#oApi
|
7
|
+
*/
|
8
|
+
function _fnSaveState ( oSettings )
|
9
|
+
{
|
10
|
+
if ( !oSettings.oFeatures.bStateSave || oSettings.bDestroying )
|
11
|
+
{
|
12
|
+
return;
|
13
|
+
}
|
14
|
+
|
15
|
+
/* Store the interesting variables */
|
16
|
+
var i, iLen, bInfinite=oSettings.oScroll.bInfinite;
|
17
|
+
var oState = {
|
18
|
+
"iCreate": new Date().getTime(),
|
19
|
+
"iStart": (bInfinite ? 0 : oSettings._iDisplayStart),
|
20
|
+
"iEnd": (bInfinite ? oSettings._iDisplayLength : oSettings._iDisplayEnd),
|
21
|
+
"iLength": oSettings._iDisplayLength,
|
22
|
+
"aaSorting": $.extend( true, [], oSettings.aaSorting ),
|
23
|
+
"oSearch": $.extend( true, {}, oSettings.oPreviousSearch ),
|
24
|
+
"aoSearchCols": $.extend( true, [], oSettings.aoPreSearchCols ),
|
25
|
+
"abVisCols": []
|
26
|
+
};
|
27
|
+
|
28
|
+
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
29
|
+
{
|
30
|
+
oState.abVisCols.push( oSettings.aoColumns[i].bVisible );
|
31
|
+
}
|
32
|
+
|
33
|
+
_fnCallbackFire( oSettings, "aoStateSaveParams", 'stateSaveParams', [oSettings, oState] );
|
34
|
+
|
35
|
+
oSettings.fnStateSave.call( oSettings.oInstance, oSettings, oState );
|
36
|
+
}
|
37
|
+
|
38
|
+
|
39
|
+
/**
|
40
|
+
* Attempt to load a saved table state from a cookie
|
41
|
+
* @param {object} oSettings dataTables settings object
|
42
|
+
* @param {object} oInit DataTables init object so we can override settings
|
43
|
+
* @memberof DataTable#oApi
|
44
|
+
*/
|
45
|
+
function _fnLoadState ( oSettings, oInit )
|
46
|
+
{
|
47
|
+
if ( !oSettings.oFeatures.bStateSave )
|
48
|
+
{
|
49
|
+
return;
|
50
|
+
}
|
51
|
+
|
52
|
+
var oData = oSettings.fnStateLoad.call( oSettings.oInstance, oSettings );
|
53
|
+
if ( !oData )
|
54
|
+
{
|
55
|
+
return;
|
56
|
+
}
|
57
|
+
|
58
|
+
/* Allow custom and plug-in manipulation functions to alter the saved data set and
|
59
|
+
* cancelling of loading by returning false
|
60
|
+
*/
|
61
|
+
var abStateLoad = _fnCallbackFire( oSettings, 'aoStateLoadParams', 'stateLoadParams', [oSettings, oData] );
|
62
|
+
if ( $.inArray( false, abStateLoad ) !== -1 )
|
63
|
+
{
|
64
|
+
return;
|
65
|
+
}
|
66
|
+
|
67
|
+
/* Store the saved state so it might be accessed at any time */
|
68
|
+
oSettings.oLoadedState = $.extend( true, {}, oData );
|
69
|
+
|
70
|
+
/* Restore key features */
|
71
|
+
oSettings._iDisplayStart = oData.iStart;
|
72
|
+
oSettings.iInitDisplayStart = oData.iStart;
|
73
|
+
oSettings._iDisplayEnd = oData.iEnd;
|
74
|
+
oSettings._iDisplayLength = oData.iLength;
|
75
|
+
oSettings.aaSorting = oData.aaSorting.slice();
|
76
|
+
oSettings.saved_aaSorting = oData.aaSorting.slice();
|
77
|
+
|
78
|
+
/* Search filtering */
|
79
|
+
$.extend( oSettings.oPreviousSearch, oData.oSearch );
|
80
|
+
$.extend( true, oSettings.aoPreSearchCols, oData.aoSearchCols );
|
81
|
+
|
82
|
+
/* Column visibility state
|
83
|
+
* Pass back visibiliy settings to the init handler, but to do not here override
|
84
|
+
* the init object that the user might have passed in
|
85
|
+
*/
|
86
|
+
oInit.saved_aoColumns = [];
|
87
|
+
for ( var i=0 ; i<oData.abVisCols.length ; i++ )
|
88
|
+
{
|
89
|
+
oInit.saved_aoColumns[i] = {};
|
90
|
+
oInit.saved_aoColumns[i].bVisible = oData.abVisCols[i];
|
91
|
+
}
|
92
|
+
|
93
|
+
_fnCallbackFire( oSettings, 'aoStateLoaded', 'stateLoaded', [oSettings, oData] );
|
94
|
+
}
|
95
|
+
|
96
|
+
|
97
|
+
/**
|
98
|
+
* Create a new cookie with a value to store the state of a table
|
99
|
+
* @param {string} sName name of the cookie to create
|
100
|
+
* @param {string} sValue the value the cookie should take
|
101
|
+
* @param {int} iSecs duration of the cookie
|
102
|
+
* @param {string} sBaseName sName is made up of the base + file name - this is the base
|
103
|
+
* @param {function} fnCallback User definable function to modify the cookie
|
104
|
+
* @memberof DataTable#oApi
|
105
|
+
*/
|
106
|
+
function _fnCreateCookie ( sName, sValue, iSecs, sBaseName, fnCallback )
|
107
|
+
{
|
108
|
+
var date = new Date();
|
109
|
+
date.setTime( date.getTime()+(iSecs*1000) );
|
110
|
+
|
111
|
+
/*
|
112
|
+
* Shocking but true - it would appear IE has major issues with having the path not having
|
113
|
+
* a trailing slash on it. We need the cookie to be available based on the path, so we
|
114
|
+
* have to append the file name to the cookie name. Appalling. Thanks to vex for adding the
|
115
|
+
* patch to use at least some of the path
|
116
|
+
*/
|
117
|
+
var aParts = window.location.pathname.split('/');
|
118
|
+
var sNameFile = sName + '_' + aParts.pop().replace(/[\/:]/g,"").toLowerCase();
|
119
|
+
var sFullCookie, oData;
|
120
|
+
|
121
|
+
if ( fnCallback !== null )
|
122
|
+
{
|
123
|
+
oData = (typeof $.parseJSON === 'function') ?
|
124
|
+
$.parseJSON( sValue ) : eval( '('+sValue+')' );
|
125
|
+
sFullCookie = fnCallback( sNameFile, oData, date.toGMTString(),
|
126
|
+
aParts.join('/')+"/" );
|
127
|
+
}
|
128
|
+
else
|
129
|
+
{
|
130
|
+
sFullCookie = sNameFile + "=" + encodeURIComponent(sValue) +
|
131
|
+
"; expires=" + date.toGMTString() +"; path=" + aParts.join('/')+"/";
|
132
|
+
}
|
133
|
+
|
134
|
+
/* Are we going to go over the cookie limit of 4KiB? If so, try to delete a cookies
|
135
|
+
* belonging to DataTables. This is FAR from bullet proof
|
136
|
+
*/
|
137
|
+
var sOldName="", iOldTime=9999999999999;
|
138
|
+
var iLength = _fnReadCookie( sNameFile )!==null ? document.cookie.length :
|
139
|
+
sFullCookie.length + document.cookie.length;
|
140
|
+
|
141
|
+
if ( iLength+10 > 4096 ) /* Magic 10 for padding */
|
142
|
+
{
|
143
|
+
var aCookies =document.cookie.split(';');
|
144
|
+
for ( var i=0, iLen=aCookies.length ; i<iLen ; i++ )
|
145
|
+
{
|
146
|
+
if ( aCookies[i].indexOf( sBaseName ) != -1 )
|
147
|
+
{
|
148
|
+
/* It's a DataTables cookie, so eval it and check the time stamp */
|
149
|
+
var aSplitCookie = aCookies[i].split('=');
|
150
|
+
try { oData = eval( '('+decodeURIComponent(aSplitCookie[1])+')' ); }
|
151
|
+
catch( e ) { continue; }
|
152
|
+
|
153
|
+
if ( oData.iCreate && oData.iCreate < iOldTime )
|
154
|
+
{
|
155
|
+
sOldName = aSplitCookie[0];
|
156
|
+
iOldTime = oData.iCreate;
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
if ( sOldName !== "" )
|
162
|
+
{
|
163
|
+
document.cookie = sOldName+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+
|
164
|
+
aParts.join('/') + "/";
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
document.cookie = sFullCookie;
|
169
|
+
}
|
170
|
+
|
171
|
+
|
172
|
+
/**
|
173
|
+
* Read an old cookie to get a cookie with an old table state
|
174
|
+
* @param {string} sName name of the cookie to read
|
175
|
+
* @returns {string} contents of the cookie - or null if no cookie with that name found
|
176
|
+
* @memberof DataTable#oApi
|
177
|
+
*/
|
178
|
+
function _fnReadCookie ( sName )
|
179
|
+
{
|
180
|
+
var
|
181
|
+
aParts = window.location.pathname.split('/'),
|
182
|
+
sNameEQ = sName + '_' + aParts[aParts.length-1].replace(/[\/:]/g,"").toLowerCase() + '=',
|
183
|
+
sCookieContents = document.cookie.split(';');
|
184
|
+
|
185
|
+
for( var i=0 ; i<sCookieContents.length ; i++ )
|
186
|
+
{
|
187
|
+
var c = sCookieContents[i];
|
188
|
+
|
189
|
+
while (c.charAt(0)==' ')
|
190
|
+
{
|
191
|
+
c = c.substring(1,c.length);
|
192
|
+
}
|
193
|
+
|
194
|
+
if (c.indexOf(sNameEQ) === 0)
|
195
|
+
{
|
196
|
+
return decodeURIComponent( c.substring(sNameEQ.length,c.length) );
|
197
|
+
}
|
198
|
+
}
|
199
|
+
return null;
|
200
|
+
}
|
201
|
+
|