classiccms 0.5.5 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. data/classiccms.gemspec +1 -0
  2. data/lib/classiccms/application.rb +1 -0
  3. data/lib/classiccms/controllers/admin.rb +28 -0
  4. data/lib/classiccms/controllers/cms.rb +14 -11
  5. data/lib/classiccms/helpers.rb +8 -0
  6. data/lib/classiccms/public/admin/bootstrap/css/bootstrap-responsive.css +815 -0
  7. data/lib/classiccms/public/admin/bootstrap/css/bootstrap-responsive.min.css +9 -0
  8. data/lib/classiccms/public/admin/bootstrap/css/bootstrap.css +4983 -0
  9. data/lib/classiccms/public/admin/bootstrap/css/bootstrap.min.css +9 -0
  10. data/lib/classiccms/public/admin/bootstrap/img/glyphicons-halflings-white.png +0 -0
  11. data/lib/classiccms/public/admin/bootstrap/img/glyphicons-halflings.png +0 -0
  12. data/lib/classiccms/public/admin/bootstrap/index.js +14 -0
  13. data/lib/classiccms/public/admin/bootstrap/js/bootstrap.js +1825 -0
  14. data/lib/classiccms/public/admin/bootstrap/js/bootstrap.min.js +6 -0
  15. data/lib/classiccms/public/admin/datatables/css/demo_page.css +107 -0
  16. data/lib/classiccms/public/admin/datatables/css/demo_table.css +556 -0
  17. data/lib/classiccms/public/admin/datatables/css/demo_table_jui.css +526 -0
  18. data/lib/classiccms/public/admin/datatables/css/jquery.dataTables.css +220 -0
  19. data/lib/classiccms/public/admin/datatables/css/jquery.dataTables_themeroller.css +245 -0
  20. data/lib/classiccms/public/admin/datatables/images/Sorting icons.psd +0 -0
  21. data/lib/classiccms/public/admin/datatables/images/back_disabled.png +0 -0
  22. data/lib/classiccms/public/admin/datatables/images/back_enabled.png +0 -0
  23. data/lib/classiccms/public/admin/datatables/images/back_enabled_hover.png +0 -0
  24. data/lib/classiccms/public/admin/datatables/images/favicon.ico +0 -0
  25. data/lib/classiccms/public/admin/datatables/images/forward_disabled.png +0 -0
  26. data/lib/classiccms/public/admin/datatables/images/forward_enabled.png +0 -0
  27. data/lib/classiccms/public/admin/datatables/images/forward_enabled_hover.png +0 -0
  28. data/lib/classiccms/public/admin/datatables/images/sort_asc.png +0 -0
  29. data/lib/classiccms/public/admin/datatables/images/sort_asc_disabled.png +0 -0
  30. data/lib/classiccms/public/admin/datatables/images/sort_both.png +0 -0
  31. data/lib/classiccms/public/admin/datatables/images/sort_desc.png +0 -0
  32. data/lib/classiccms/public/admin/datatables/images/sort_desc_disabled.png +0 -0
  33. data/lib/classiccms/public/admin/datatables/js/jquery.dataTables.js +11863 -0
  34. data/lib/classiccms/public/admin/datatables/js/jquery.dataTables.min.js +154 -0
  35. data/lib/classiccms/public/admin/datatables/js/jquery.js +4 -0
  36. data/lib/classiccms/public/admin/datatables/src/DataTables.js +259 -0
  37. data/lib/classiccms/public/admin/datatables/src/api/api.internal.js +128 -0
  38. data/lib/classiccms/public/admin/datatables/src/api/api.methods.js +1276 -0
  39. data/lib/classiccms/public/admin/datatables/src/api/api.static.js +98 -0
  40. data/lib/classiccms/public/admin/datatables/src/core/core.ajax.js +185 -0
  41. data/lib/classiccms/public/admin/datatables/src/core/core.columns.js +365 -0
  42. data/lib/classiccms/public/admin/datatables/src/core/core.constructor.js +439 -0
  43. data/lib/classiccms/public/admin/datatables/src/core/core.data.js +546 -0
  44. data/lib/classiccms/public/admin/datatables/src/core/core.draw.js +788 -0
  45. data/lib/classiccms/public/admin/datatables/src/core/core.filter.js +405 -0
  46. data/lib/classiccms/public/admin/datatables/src/core/core.info.js +117 -0
  47. data/lib/classiccms/public/admin/datatables/src/core/core.init.js +153 -0
  48. data/lib/classiccms/public/admin/datatables/src/core/core.length.js +122 -0
  49. data/lib/classiccms/public/admin/datatables/src/core/core.page.js +119 -0
  50. data/lib/classiccms/public/admin/datatables/src/core/core.processing.js +44 -0
  51. data/lib/classiccms/public/admin/datatables/src/core/core.scrolling.js +495 -0
  52. data/lib/classiccms/public/admin/datatables/src/core/core.sizing.js +405 -0
  53. data/lib/classiccms/public/admin/datatables/src/core/core.sort.js +460 -0
  54. data/lib/classiccms/public/admin/datatables/src/core/core.state.js +201 -0
  55. data/lib/classiccms/public/admin/datatables/src/core/core.support.js +316 -0
  56. data/lib/classiccms/public/admin/datatables/src/ext/ext.classes.js +112 -0
  57. data/lib/classiccms/public/admin/datatables/src/ext/ext.paging.js +257 -0
  58. data/lib/classiccms/public/admin/datatables/src/ext/ext.sorting.js +86 -0
  59. data/lib/classiccms/public/admin/datatables/src/ext/ext.types.js +88 -0
  60. data/lib/classiccms/public/admin/datatables/src/model/model.column.js +248 -0
  61. data/lib/classiccms/public/admin/datatables/src/model/model.defaults.columns.js +737 -0
  62. data/lib/classiccms/public/admin/datatables/src/model/model.defaults.js +1944 -0
  63. data/lib/classiccms/public/admin/datatables/src/model/model.ext.js +528 -0
  64. data/lib/classiccms/public/admin/datatables/src/model/model.row.js +64 -0
  65. data/lib/classiccms/public/admin/datatables/src/model/model.search.js +40 -0
  66. data/lib/classiccms/public/admin/datatables/src/model/model.settings.js +868 -0
  67. data/lib/classiccms/public/admin/datatables/unit_testing/controller.js +94 -0
  68. data/lib/classiccms/public/admin/datatables/unit_testing/controller.php +100 -0
  69. data/lib/classiccms/public/admin/datatables/unit_testing/index.html +7 -0
  70. data/lib/classiccms/public/admin/datatables/unit_testing/performance/draw.html +482 -0
  71. data/lib/classiccms/public/admin/datatables/unit_testing/performance/large.php +108 -0
  72. data/lib/classiccms/public/admin/datatables/unit_testing/performance/page.html +477 -0
  73. data/lib/classiccms/public/admin/datatables/unit_testing/performance/sort.html +477 -0
  74. data/lib/classiccms/public/admin/datatables/unit_testing/templates/-complex_header.php +469 -0
  75. data/lib/classiccms/public/admin/datatables/unit_testing/templates/2512.php +464 -0
  76. data/lib/classiccms/public/admin/datatables/unit_testing/templates/6776.php +116 -0
  77. data/lib/classiccms/public/admin/datatables/unit_testing/templates/complex_header_2.php +485 -0
  78. data/lib/classiccms/public/admin/datatables/unit_testing/templates/deferred_table.php +132 -0
  79. data/lib/classiccms/public/admin/datatables/unit_testing/templates/dom_data.php +465 -0
  80. data/lib/classiccms/public/admin/datatables/unit_testing/templates/dom_data_th.php +465 -0
  81. data/lib/classiccms/public/admin/datatables/unit_testing/templates/dom_data_two_headers.php +472 -0
  82. data/lib/classiccms/public/admin/datatables/unit_testing/templates/dymanic_table.php +45 -0
  83. data/lib/classiccms/public/admin/datatables/unit_testing/templates/empty_table.php +55 -0
  84. data/lib/classiccms/public/admin/datatables/unit_testing/templates/html_table.php +66 -0
  85. data/lib/classiccms/public/admin/datatables/unit_testing/templates/js_data.php +124 -0
  86. data/lib/classiccms/public/admin/datatables/unit_testing/templates/js_data_mixed_types.php +124 -0
  87. data/lib/classiccms/public/admin/datatables/unit_testing/templates/two_tables.php +227 -0
  88. data/lib/classiccms/public/admin/datatables/unit_testing/tests/1_dom/_zero_config.js +437 -0
  89. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/-complex_header.js +52 -0
  90. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/-iDraw.js +41 -0
  91. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2512.js +17 -0
  92. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2530-2.js +15 -0
  93. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2530.js +29 -0
  94. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2569.js +36 -0
  95. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2600.js +44 -0
  96. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2608.js +54 -0
  97. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2635.js +40 -0
  98. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2746-stable-sort.js +199 -0
  99. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2799.js +14 -0
  100. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2840-restore-table-width.js +19 -0
  101. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/2914-state-save-sort.js +39 -0
  102. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/5396-fnUpdate-arrays.js +103 -0
  103. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/5508-xscroll-zero-content.js +23 -0
  104. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/6776-scrolling-table-grows.js +64 -0
  105. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/_zero_config.js +437 -0
  106. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aaSorting.js +183 -0
  107. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aaSortingFixed.js +60 -0
  108. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bSearchable.js +67 -0
  109. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bSortable.js +105 -0
  110. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bUseRendered.js +145 -0
  111. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bVisible.js +132 -0
  112. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bVisible2.js +268 -0
  113. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.fnRender.js +176 -0
  114. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.iDataSort.js +88 -0
  115. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sClass.js +111 -0
  116. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sName.js +27 -0
  117. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sTitle.js +78 -0
  118. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sWidth.js +84 -0
  119. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/aoSearchCols.js +112 -0
  120. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/asStripClasses.js +106 -0
  121. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bAutoWidth.js +138 -0
  122. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bFilter.js +40 -0
  123. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js +130 -0
  124. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bInfo.js +40 -0
  125. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bJQueryUI.js +40 -0
  126. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bLengthChange.js +71 -0
  127. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bPaginate.js +55 -0
  128. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bProcessing.js +99 -0
  129. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bServerSide.js +18 -0
  130. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bSort.js +101 -0
  131. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bSortCellsTop.js +77 -0
  132. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/bSortClasses.js +128 -0
  133. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnCookieCallback.js +97 -0
  134. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnCreatedCell.js +151 -0
  135. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnCreatedRow.js +115 -0
  136. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnDeleteRow.js +30 -0
  137. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnDrawCallback.js +80 -0
  138. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnFilter.js +16 -0
  139. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnFooterCallback.js +227 -0
  140. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnHeaderCallback.js +227 -0
  141. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnInfoCallback.js +115 -0
  142. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnInitComplete.js +94 -0
  143. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnRowCallback.js +105 -0
  144. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnSetColumnVis.js +120 -0
  145. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/fnSetColumnVis2.js +236 -0
  146. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/html-autodetect-sort.js +57 -0
  147. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/iDisplayLength.js +76 -0
  148. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.oPaginate.js +80 -0
  149. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfo.js +109 -0
  150. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfoEmpty.js +75 -0
  151. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfoPostFix.js +73 -0
  152. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sLengthMenu.js +106 -0
  153. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sProcessing.js +47 -0
  154. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sSearch.js +66 -0
  155. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sUrl.js +59 -0
  156. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sZeroRecords.js +45 -0
  157. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/oSearch.js +101 -0
  158. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sAjaxSource.js +18 -0
  159. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sDom.js +319 -0
  160. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sPaginationType.js +122 -0
  161. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/sScrollXY.js +63 -0
  162. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/1_dom/th_in_body.js +437 -0
  163. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/6872-default-content-missing-props.js +285 -0
  164. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/8549--string-sorting-nonstrings.js +47 -0
  165. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/_zero_config.js +440 -0
  166. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aaSorting.js +198 -0
  167. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aaSortingFixed.js +64 -0
  168. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bSearchable.js +71 -0
  169. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bSortable.js +109 -0
  170. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bUseRendered.js +148 -0
  171. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.bVisible.js +110 -0
  172. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.fnRender.js +156 -0
  173. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.iDataSort.js +90 -0
  174. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sClass.js +115 -0
  175. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sName.js +28 -0
  176. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sTitle.js +82 -0
  177. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoColumns.sWidth.js +87 -0
  178. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/aoSearchCols.js +119 -0
  179. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/asStripClasses.js +100 -0
  180. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bAutoWidth.js +142 -0
  181. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bFilter.js +44 -0
  182. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bInfo.js +44 -0
  183. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bLengthChange.js +75 -0
  184. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bPaginate.js +59 -0
  185. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bProcessing.js +103 -0
  186. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bServerSide.js +20 -0
  187. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bSort.js +99 -0
  188. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/bSortClasses.js +132 -0
  189. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnCreatedCell.js +158 -0
  190. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnCreatedRow.js +121 -0
  191. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnDrawCallback.js +85 -0
  192. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnFooterCallback.js +240 -0
  193. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnHeaderCallback.js +240 -0
  194. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnInitComplete.js +83 -0
  195. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/fnRowCallback.js +112 -0
  196. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/iDisplayLength.js +81 -0
  197. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/js_data_mixed_types.js +392 -0
  198. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.oPaginate.js +84 -0
  199. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfo.js +117 -0
  200. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfoEmpty.js +79 -0
  201. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfoPostFix.js +78 -0
  202. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sLengthMenu.js +111 -0
  203. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sProcessing.js +49 -0
  204. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sSearch.js +70 -0
  205. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sUrl.js +62 -0
  206. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oLanguage.sZeroRecords.js +48 -0
  207. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/oSearch.js +108 -0
  208. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/sAjaxSource.js +20 -0
  209. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/sDom.js +262 -0
  210. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/2_js/sPaginationType.js +125 -0
  211. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/_zero_config.js +440 -0
  212. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aaSorting.js +198 -0
  213. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aaSortingFixed.js +67 -0
  214. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bSearchable.js +76 -0
  215. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bSortable.js +109 -0
  216. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bUseRendered.js +148 -0
  217. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bVisible.js +124 -0
  218. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.fnRender.js +156 -0
  219. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.iDataSort.js +90 -0
  220. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sClass.js +115 -0
  221. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sName.js +28 -0
  222. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sTitle.js +82 -0
  223. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sWidth.js +87 -0
  224. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/aoSearchCols.js +119 -0
  225. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/asStripClasses.js +105 -0
  226. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bAutoWidth.js +142 -0
  227. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bFilter.js +44 -0
  228. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bInfo.js +44 -0
  229. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bLengthChange.js +75 -0
  230. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bPaginate.js +59 -0
  231. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bProcessing.js +103 -0
  232. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bServerSide.js +20 -0
  233. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bSort.js +99 -0
  234. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/bSortClasses.js +132 -0
  235. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnCreatedCell.js +183 -0
  236. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnCreatedRow.js +142 -0
  237. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnDrawCallback.js +98 -0
  238. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnHeaderCallback.js +191 -0
  239. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnInitComplete.js +100 -0
  240. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnRowCallback.js +112 -0
  241. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/fnServerData.js +64 -0
  242. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/iDisplayLength.js +81 -0
  243. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.oPaginate.js +84 -0
  244. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfo.js +117 -0
  245. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoEmpty.js +79 -0
  246. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoPostFix.js +78 -0
  247. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sLengthMenu.js +111 -0
  248. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sLoadingRecords.js +65 -0
  249. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sProcessing.js +49 -0
  250. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sSearch.js +70 -0
  251. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sUrl.js +62 -0
  252. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sZeroRecords.js +48 -0
  253. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/oSearch.js +108 -0
  254. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sAjaxDataProp.js +139 -0
  255. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sAjaxDataProp2.js +139 -0
  256. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sAjaxSource.js +22 -0
  257. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sDom.js +262 -0
  258. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/3_ajax/sPaginationType.js +134 -0
  259. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/-iDraw.js +44 -0
  260. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/2440.js +32 -0
  261. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/2569.js +47 -0
  262. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/2600.js +47 -0
  263. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/_zero_config.js +424 -0
  264. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aaSorting.js +212 -0
  265. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aaSortingFixed.js +67 -0
  266. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bSearchable.js +25 -0
  267. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bSortable.js +112 -0
  268. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bUseRendered.js +43 -0
  269. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bVisible.js +123 -0
  270. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.fnRender.js +162 -0
  271. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sClass.js +118 -0
  272. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sName.js +29 -0
  273. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sTitle.js +85 -0
  274. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sWidth.js +90 -0
  275. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/aoSearchCols.js +70 -0
  276. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/asStripClasses.js +109 -0
  277. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bAutoWidth.js +145 -0
  278. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bFilter.js +47 -0
  279. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bInfiniteScroll.js +168 -0
  280. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bInfo.js +47 -0
  281. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bLengthChange.js +78 -0
  282. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bPaginate.js +62 -0
  283. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bProcessing.js +106 -0
  284. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bServerSide.js +21 -0
  285. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bSort.js +102 -0
  286. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/bSortClasses.js +135 -0
  287. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnCreatedCell.js +190 -0
  288. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnCreatedRow.js +148 -0
  289. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnDrawCallback.js +89 -0
  290. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnHeaderCallback.js +191 -0
  291. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnInitComplete.js +89 -0
  292. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/fnRowCallback.js +118 -0
  293. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/iDeferLoading.js +95 -0
  294. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/iDisplayLength.js +85 -0
  295. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.oPaginate.js +86 -0
  296. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfo.js +124 -0
  297. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoEmpty.js +82 -0
  298. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoPostFix.js +82 -0
  299. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sLengthMenu.js +115 -0
  300. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sProcessing.js +51 -0
  301. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sSearch.js +73 -0
  302. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sUrl.js +64 -0
  303. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sZeroRecords.js +58 -0
  304. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/oSearch.js +100 -0
  305. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sAjaxDataProp.js +146 -0
  306. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sAjaxSource.js +23 -0
  307. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sDom.js +269 -0
  308. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/4_server-side/sPaginationType.js +138 -0
  309. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js +847 -0
  310. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js +961 -0
  311. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js +1075 -0
  312. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js +458 -0
  313. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js +847 -0
  314. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js +961 -0
  315. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js +296 -0
  316. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js +88 -0
  317. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js +83 -0
  318. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js +116 -0
  319. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js +155 -0
  320. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js +131 -0
  321. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js +177 -0
  322. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js +90 -0
  323. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js +122 -0
  324. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js +28 -0
  325. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js +89 -0
  326. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js +87 -0
  327. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js +161 -0
  328. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js +133 -0
  329. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js +163 -0
  330. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js +65 -0
  331. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js +65 -0
  332. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js +96 -0
  333. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js +80 -0
  334. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js +124 -0
  335. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js +27 -0
  336. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bSort.js +120 -0
  337. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js +153 -0
  338. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js +126 -0
  339. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js +254 -0
  340. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js +135 -0
  341. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js +154 -0
  342. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js +92 -0
  343. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js +109 -0
  344. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js +98 -0
  345. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js +166 -0
  346. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js +100 -0
  347. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js +106 -0
  348. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js +139 -0
  349. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js +63 -0
  350. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js +91 -0
  351. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js +76 -0
  352. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js +62 -0
  353. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js +150 -0
  354. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js +29 -0
  355. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/sDom.js +311 -0
  356. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js +148 -0
  357. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/_zero_config.js +403 -0
  358. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aaSorting.js +212 -0
  359. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aaSortingFixed.js +70 -0
  360. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSearchable.js +79 -0
  361. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSortable.js +112 -0
  362. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bUseRendered.js +151 -0
  363. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bVisible.js +127 -0
  364. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.fnRender.js +190 -0
  365. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.iDataSort.js +92 -0
  366. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sClass.js +118 -0
  367. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sName.js +29 -0
  368. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sTitle.js +85 -0
  369. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sWidth.js +90 -0
  370. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoSearchCols.js +125 -0
  371. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/asStripClasses.js +109 -0
  372. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bAutoWidth.js +145 -0
  373. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bFilter.js +47 -0
  374. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bInfo.js +47 -0
  375. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bLengthChange.js +78 -0
  376. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bPaginate.js +62 -0
  377. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bProcessing.js +106 -0
  378. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bServerSide.js +21 -0
  379. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bSort.js +102 -0
  380. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/bSortClasses.js +135 -0
  381. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnDrawCallback.js +102 -0
  382. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnHeaderCallback.js +200 -0
  383. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnInitComplete.js +105 -0
  384. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnRowCallback.js +118 -0
  385. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnServerData.js +68 -0
  386. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/iDisplayLength.js +85 -0
  387. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.oPaginate.js +86 -0
  388. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfo.js +124 -0
  389. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoEmpty.js +82 -0
  390. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoPostFix.js +82 -0
  391. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sLengthMenu.js +115 -0
  392. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sProcessing.js +51 -0
  393. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sSearch.js +73 -0
  394. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sUrl.js +64 -0
  395. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sZeroRecords.js +50 -0
  396. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/oSearch.js +114 -0
  397. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp.js +140 -0
  398. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp2.js +140 -0
  399. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxSource.js +23 -0
  400. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sDom.js +269 -0
  401. data/lib/classiccms/public/admin/datatables/unit_testing/tests_onhold/6_delayed_rendering/sPaginationType.js +136 -0
  402. data/lib/classiccms/public/admin/datatables/unit_testing/unit_test.js +409 -0
  403. data/lib/classiccms/public/admin/index.js +5 -0
  404. data/lib/classiccms/scaffold/config.ru +2 -1
  405. data/lib/classiccms/version.rb +1 -1
  406. data/lib/classiccms/views/admin/index.haml +51 -0
  407. metadata +418 -2
@@ -0,0 +1,405 @@
1
+
2
+
3
+ /**
4
+ * Generate the node required for filtering text
5
+ * @returns {node} Filter control element
6
+ * @param {object} oSettings dataTables settings object
7
+ * @memberof DataTable#oApi
8
+ */
9
+ function _fnFeatureHtmlFilter ( oSettings )
10
+ {
11
+ var oPreviousSearch = oSettings.oPreviousSearch;
12
+
13
+ var sSearchStr = oSettings.oLanguage.sSearch;
14
+ sSearchStr = (sSearchStr.indexOf('_INPUT_') !== -1) ?
15
+ sSearchStr.replace('_INPUT_', '<input type="text" />') :
16
+ sSearchStr==="" ? '<input type="text" />' : sSearchStr+' <input type="text" />';
17
+
18
+ var nFilter = document.createElement( 'div' );
19
+ nFilter.className = oSettings.oClasses.sFilter;
20
+ nFilter.innerHTML = '<label>'+sSearchStr+'</label>';
21
+ if ( !oSettings.aanFeatures.f )
22
+ {
23
+ nFilter.id = oSettings.sTableId+'_filter';
24
+ }
25
+
26
+ var jqFilter = $('input[type="text"]', nFilter);
27
+
28
+ // Store a reference to the input element, so other input elements could be
29
+ // added to the filter wrapper if needed (submit button for example)
30
+ nFilter._DT_Input = jqFilter[0];
31
+
32
+ jqFilter.val( oPreviousSearch.sSearch.replace('"','&quot;') );
33
+ jqFilter.bind( 'keyup.DT', function(e) {
34
+ /* Update all other filter input elements for the new display */
35
+ var n = oSettings.aanFeatures.f;
36
+ var val = this.value==="" ? "" : this.value; // mental IE8 fix :-(
37
+
38
+ for ( var i=0, iLen=n.length ; i<iLen ; i++ )
39
+ {
40
+ if ( n[i] != $(this).parents('div.dataTables_filter')[0] )
41
+ {
42
+ $(n[i]._DT_Input).val( val );
43
+ }
44
+ }
45
+
46
+ /* Now do the filter */
47
+ if ( val != oPreviousSearch.sSearch )
48
+ {
49
+ _fnFilterComplete( oSettings, {
50
+ "sSearch": val,
51
+ "bRegex": oPreviousSearch.bRegex,
52
+ "bSmart": oPreviousSearch.bSmart ,
53
+ "bCaseInsensitive": oPreviousSearch.bCaseInsensitive
54
+ } );
55
+ }
56
+ } );
57
+
58
+ jqFilter
59
+ .attr('aria-controls', oSettings.sTableId)
60
+ .bind( 'keypress.DT', function(e) {
61
+ /* Prevent form submission */
62
+ if ( e.keyCode == 13 )
63
+ {
64
+ return false;
65
+ }
66
+ }
67
+ );
68
+
69
+ return nFilter;
70
+ }
71
+
72
+
73
+ /**
74
+ * Filter the table using both the global filter and column based filtering
75
+ * @param {object} oSettings dataTables settings object
76
+ * @param {object} oSearch search information
77
+ * @param {int} [iForce] force a research of the master array (1) or not (undefined or 0)
78
+ * @memberof DataTable#oApi
79
+ */
80
+ function _fnFilterComplete ( oSettings, oInput, iForce )
81
+ {
82
+ var oPrevSearch = oSettings.oPreviousSearch;
83
+ var aoPrevSearch = oSettings.aoPreSearchCols;
84
+ var fnSaveFilter = function ( oFilter ) {
85
+ /* Save the filtering values */
86
+ oPrevSearch.sSearch = oFilter.sSearch;
87
+ oPrevSearch.bRegex = oFilter.bRegex;
88
+ oPrevSearch.bSmart = oFilter.bSmart;
89
+ oPrevSearch.bCaseInsensitive = oFilter.bCaseInsensitive;
90
+ };
91
+
92
+ /* In server-side processing all filtering is done by the server, so no point hanging around here */
93
+ if ( !oSettings.oFeatures.bServerSide )
94
+ {
95
+ /* Global filter */
96
+ _fnFilter( oSettings, oInput.sSearch, iForce, oInput.bRegex, oInput.bSmart, oInput.bCaseInsensitive );
97
+ fnSaveFilter( oInput );
98
+
99
+ /* Now do the individual column filter */
100
+ for ( var i=0 ; i<oSettings.aoPreSearchCols.length ; i++ )
101
+ {
102
+ _fnFilterColumn( oSettings, aoPrevSearch[i].sSearch, i, aoPrevSearch[i].bRegex,
103
+ aoPrevSearch[i].bSmart, aoPrevSearch[i].bCaseInsensitive );
104
+ }
105
+
106
+ /* Custom filtering */
107
+ _fnFilterCustom( oSettings );
108
+ }
109
+ else
110
+ {
111
+ fnSaveFilter( oInput );
112
+ }
113
+
114
+ /* Tell the draw function we have been filtering */
115
+ oSettings.bFiltered = true;
116
+ $(oSettings.oInstance).trigger('filter', oSettings);
117
+
118
+ /* Redraw the table */
119
+ oSettings._iDisplayStart = 0;
120
+ _fnCalculateEnd( oSettings );
121
+ _fnDraw( oSettings );
122
+
123
+ /* Rebuild search array 'offline' */
124
+ _fnBuildSearchArray( oSettings, 0 );
125
+ }
126
+
127
+
128
+ /**
129
+ * Apply custom filtering functions
130
+ * @param {object} oSettings dataTables settings object
131
+ * @memberof DataTable#oApi
132
+ */
133
+ function _fnFilterCustom( oSettings )
134
+ {
135
+ var afnFilters = DataTable.ext.afnFiltering;
136
+ for ( var i=0, iLen=afnFilters.length ; i<iLen ; i++ )
137
+ {
138
+ var iCorrector = 0;
139
+ for ( var j=0, jLen=oSettings.aiDisplay.length ; j<jLen ; j++ )
140
+ {
141
+ var iDisIndex = oSettings.aiDisplay[j-iCorrector];
142
+
143
+ /* Check if we should use this row based on the filtering function */
144
+ if ( !afnFilters[i]( oSettings, _fnGetRowData( oSettings, iDisIndex, 'filter' ), iDisIndex ) )
145
+ {
146
+ oSettings.aiDisplay.splice( j-iCorrector, 1 );
147
+ iCorrector++;
148
+ }
149
+ }
150
+ }
151
+ }
152
+
153
+
154
+ /**
155
+ * Filter the table on a per-column basis
156
+ * @param {object} oSettings dataTables settings object
157
+ * @param {string} sInput string to filter on
158
+ * @param {int} iColumn column to filter
159
+ * @param {bool} bRegex treat search string as a regular expression or not
160
+ * @param {bool} bSmart use smart filtering or not
161
+ * @param {bool} bCaseInsensitive Do case insenstive matching or not
162
+ * @memberof DataTable#oApi
163
+ */
164
+ function _fnFilterColumn ( oSettings, sInput, iColumn, bRegex, bSmart, bCaseInsensitive )
165
+ {
166
+ if ( sInput === "" )
167
+ {
168
+ return;
169
+ }
170
+
171
+ var iIndexCorrector = 0;
172
+ var rpSearch = _fnFilterCreateSearch( sInput, bRegex, bSmart, bCaseInsensitive );
173
+
174
+ for ( var i=oSettings.aiDisplay.length-1 ; i>=0 ; i-- )
175
+ {
176
+ var sData = _fnDataToSearch( _fnGetCellData( oSettings, oSettings.aiDisplay[i], iColumn, 'filter' ),
177
+ oSettings.aoColumns[iColumn].sType );
178
+ if ( ! rpSearch.test( sData ) )
179
+ {
180
+ oSettings.aiDisplay.splice( i, 1 );
181
+ iIndexCorrector++;
182
+ }
183
+ }
184
+ }
185
+
186
+
187
+ /**
188
+ * Filter the data table based on user input and draw the table
189
+ * @param {object} oSettings dataTables settings object
190
+ * @param {string} sInput string to filter on
191
+ * @param {int} iForce optional - force a research of the master array (1) or not (undefined or 0)
192
+ * @param {bool} bRegex treat as a regular expression or not
193
+ * @param {bool} bSmart perform smart filtering or not
194
+ * @param {bool} bCaseInsensitive Do case insenstive matching or not
195
+ * @memberof DataTable#oApi
196
+ */
197
+ function _fnFilter( oSettings, sInput, iForce, bRegex, bSmart, bCaseInsensitive )
198
+ {
199
+ var i;
200
+ var rpSearch = _fnFilterCreateSearch( sInput, bRegex, bSmart, bCaseInsensitive );
201
+ var oPrevSearch = oSettings.oPreviousSearch;
202
+
203
+ /* Check if we are forcing or not - optional parameter */
204
+ if ( !iForce )
205
+ {
206
+ iForce = 0;
207
+ }
208
+
209
+ /* Need to take account of custom filtering functions - always filter */
210
+ if ( DataTable.ext.afnFiltering.length !== 0 )
211
+ {
212
+ iForce = 1;
213
+ }
214
+
215
+ /*
216
+ * If the input is blank - we want the full data set
217
+ */
218
+ if ( sInput.length <= 0 )
219
+ {
220
+ oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length);
221
+ oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
222
+ }
223
+ else
224
+ {
225
+ /*
226
+ * We are starting a new search or the new search string is smaller
227
+ * then the old one (i.e. delete). Search from the master array
228
+ */
229
+ if ( oSettings.aiDisplay.length == oSettings.aiDisplayMaster.length ||
230
+ oPrevSearch.sSearch.length > sInput.length || iForce == 1 ||
231
+ sInput.indexOf(oPrevSearch.sSearch) !== 0 )
232
+ {
233
+ /* Nuke the old display array - we are going to rebuild it */
234
+ oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length);
235
+
236
+ /* Force a rebuild of the search array */
237
+ _fnBuildSearchArray( oSettings, 1 );
238
+
239
+ /* Search through all records to populate the search array
240
+ * The the oSettings.aiDisplayMaster and asDataSearch arrays have 1 to 1
241
+ * mapping
242
+ */
243
+ for ( i=0 ; i<oSettings.aiDisplayMaster.length ; i++ )
244
+ {
245
+ if ( rpSearch.test(oSettings.asDataSearch[i]) )
246
+ {
247
+ oSettings.aiDisplay.push( oSettings.aiDisplayMaster[i] );
248
+ }
249
+ }
250
+ }
251
+ else
252
+ {
253
+ /* Using old search array - refine it - do it this way for speed
254
+ * Don't have to search the whole master array again
255
+ */
256
+ var iIndexCorrector = 0;
257
+
258
+ /* Search the current results */
259
+ for ( i=0 ; i<oSettings.asDataSearch.length ; i++ )
260
+ {
261
+ if ( ! rpSearch.test(oSettings.asDataSearch[i]) )
262
+ {
263
+ oSettings.aiDisplay.splice( i-iIndexCorrector, 1 );
264
+ iIndexCorrector++;
265
+ }
266
+ }
267
+ }
268
+ }
269
+ }
270
+
271
+
272
+ /**
273
+ * Create an array which can be quickly search through
274
+ * @param {object} oSettings dataTables settings object
275
+ * @param {int} iMaster use the master data array - optional
276
+ * @memberof DataTable#oApi
277
+ */
278
+ function _fnBuildSearchArray ( oSettings, iMaster )
279
+ {
280
+ if ( !oSettings.oFeatures.bServerSide )
281
+ {
282
+ /* Clear out the old data */
283
+ oSettings.asDataSearch.splice( 0, oSettings.asDataSearch.length );
284
+
285
+ var aArray = (iMaster && iMaster===1) ?
286
+ oSettings.aiDisplayMaster : oSettings.aiDisplay;
287
+
288
+ for ( var i=0, iLen=aArray.length ; i<iLen ; i++ )
289
+ {
290
+ oSettings.asDataSearch[i] = _fnBuildSearchRow( oSettings,
291
+ _fnGetRowData( oSettings, aArray[i], 'filter' ) );
292
+ }
293
+ }
294
+ }
295
+
296
+
297
+ /**
298
+ * Create a searchable string from a single data row
299
+ * @param {object} oSettings dataTables settings object
300
+ * @param {array} aData Row data array to use for the data to search
301
+ * @memberof DataTable#oApi
302
+ */
303
+ function _fnBuildSearchRow( oSettings, aData )
304
+ {
305
+ var sSearch = '';
306
+ if ( oSettings.__nTmpFilter === undefined )
307
+ {
308
+ oSettings.__nTmpFilter = document.createElement('div');
309
+ }
310
+ var nTmp = oSettings.__nTmpFilter;
311
+
312
+ for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ )
313
+ {
314
+ if ( oSettings.aoColumns[j].bSearchable )
315
+ {
316
+ var sData = aData[j];
317
+ sSearch += _fnDataToSearch( sData, oSettings.aoColumns[j].sType )+' ';
318
+ }
319
+ }
320
+
321
+ /* If it looks like there is an HTML entity in the string, attempt to decode it */
322
+ if ( sSearch.indexOf('&') !== -1 )
323
+ {
324
+ nTmp.innerHTML = sSearch;
325
+ sSearch = nTmp.textContent ? nTmp.textContent : nTmp.innerText;
326
+
327
+ /* IE and Opera appear to put an newline where there is a <br> tag - remove it */
328
+ sSearch = sSearch.replace(/\n/g," ").replace(/\r/g,"");
329
+ }
330
+
331
+ return sSearch;
332
+ }
333
+
334
+ /**
335
+ * Build a regular expression object suitable for searching a table
336
+ * @param {string} sSearch string to search for
337
+ * @param {bool} bRegex treat as a regular expression or not
338
+ * @param {bool} bSmart perform smart filtering or not
339
+ * @param {bool} bCaseInsensitive Do case insenstive matching or not
340
+ * @returns {RegExp} constructed object
341
+ * @memberof DataTable#oApi
342
+ */
343
+ function _fnFilterCreateSearch( sSearch, bRegex, bSmart, bCaseInsensitive )
344
+ {
345
+ var asSearch, sRegExpString;
346
+
347
+ if ( bSmart )
348
+ {
349
+ /* Generate the regular expression to use. Something along the lines of:
350
+ * ^(?=.*?\bone\b)(?=.*?\btwo\b)(?=.*?\bthree\b).*$
351
+ */
352
+ asSearch = bRegex ? sSearch.split( ' ' ) : _fnEscapeRegex( sSearch ).split( ' ' );
353
+ sRegExpString = '^(?=.*?'+asSearch.join( ')(?=.*?' )+').*$';
354
+ return new RegExp( sRegExpString, bCaseInsensitive ? "i" : "" );
355
+ }
356
+ else
357
+ {
358
+ sSearch = bRegex ? sSearch : _fnEscapeRegex( sSearch );
359
+ return new RegExp( sSearch, bCaseInsensitive ? "i" : "" );
360
+ }
361
+ }
362
+
363
+
364
+ /**
365
+ * Convert raw data into something that the user can search on
366
+ * @param {string} sData data to be modified
367
+ * @param {string} sType data type
368
+ * @returns {string} search string
369
+ * @memberof DataTable#oApi
370
+ */
371
+ function _fnDataToSearch ( sData, sType )
372
+ {
373
+ if ( typeof DataTable.ext.ofnSearch[sType] === "function" )
374
+ {
375
+ return DataTable.ext.ofnSearch[sType]( sData );
376
+ }
377
+ else if ( sData === null )
378
+ {
379
+ return '';
380
+ }
381
+ else if ( sType == "html" )
382
+ {
383
+ return sData.replace(/[\r\n]/g," ").replace( /<.*?>/g, "" );
384
+ }
385
+ else if ( typeof sData === "string" )
386
+ {
387
+ return sData.replace(/[\r\n]/g," ");
388
+ }
389
+ return sData;
390
+ }
391
+
392
+
393
+ /**
394
+ * scape a string stuch that it can be used in a regular expression
395
+ * @param {string} sVal string to escape
396
+ * @returns {string} escaped string
397
+ * @memberof DataTable#oApi
398
+ */
399
+ function _fnEscapeRegex ( sVal )
400
+ {
401
+ var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ];
402
+ var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' );
403
+ return sVal.replace(reReplace, '\\$1');
404
+ }
405
+
@@ -0,0 +1,117 @@
1
+
2
+
3
+ /**
4
+ * Generate the node required for the info display
5
+ * @param {object} oSettings dataTables settings object
6
+ * @returns {node} Information element
7
+ * @memberof DataTable#oApi
8
+ */
9
+ function _fnFeatureHtmlInfo ( oSettings )
10
+ {
11
+ var nInfo = document.createElement( 'div' );
12
+ nInfo.className = oSettings.oClasses.sInfo;
13
+
14
+ /* Actions that are to be taken once only for this feature */
15
+ if ( !oSettings.aanFeatures.i )
16
+ {
17
+ /* Add draw callback */
18
+ oSettings.aoDrawCallback.push( {
19
+ "fn": _fnUpdateInfo,
20
+ "sName": "information"
21
+ } );
22
+
23
+ /* Add id */
24
+ nInfo.id = oSettings.sTableId+'_info';
25
+ }
26
+ oSettings.nTable.setAttribute( 'aria-describedby', oSettings.sTableId+'_info' );
27
+
28
+ return nInfo;
29
+ }
30
+
31
+
32
+ /**
33
+ * Update the information elements in the display
34
+ * @param {object} oSettings dataTables settings object
35
+ * @memberof DataTable#oApi
36
+ */
37
+ function _fnUpdateInfo ( oSettings )
38
+ {
39
+ /* Show information about the table */
40
+ if ( !oSettings.oFeatures.bInfo || oSettings.aanFeatures.i.length === 0 )
41
+ {
42
+ return;
43
+ }
44
+
45
+ var
46
+ oLang = oSettings.oLanguage,
47
+ iStart = oSettings._iDisplayStart+1,
48
+ iEnd = oSettings.fnDisplayEnd(),
49
+ iMax = oSettings.fnRecordsTotal(),
50
+ iTotal = oSettings.fnRecordsDisplay(),
51
+ sOut;
52
+
53
+ if ( iTotal === 0 && iTotal == iMax )
54
+ {
55
+ /* Empty record set */
56
+ sOut = oLang.sInfoEmpty;
57
+ }
58
+ else if ( iTotal === 0 )
59
+ {
60
+ /* Empty record set after filtering */
61
+ sOut = oLang.sInfoEmpty +' '+ oLang.sInfoFiltered;
62
+ }
63
+ else if ( iTotal == iMax )
64
+ {
65
+ /* Normal record set */
66
+ sOut = oLang.sInfo;
67
+ }
68
+ else
69
+ {
70
+ /* Record set after filtering */
71
+ sOut = oLang.sInfo +' '+ oLang.sInfoFiltered;
72
+ }
73
+
74
+ // Convert the macros
75
+ sOut += oLang.sInfoPostFix;
76
+ sOut = _fnInfoMacros( oSettings, sOut );
77
+
78
+ if ( oLang.fnInfoCallback !== null )
79
+ {
80
+ sOut = oLang.fnInfoCallback.call( oSettings.oInstance,
81
+ oSettings, iStart, iEnd, iMax, iTotal, sOut );
82
+ }
83
+
84
+ var n = oSettings.aanFeatures.i;
85
+ for ( var i=0, iLen=n.length ; i<iLen ; i++ )
86
+ {
87
+ $(n[i]).html( sOut );
88
+ }
89
+ }
90
+
91
+
92
+ function _fnInfoMacros ( oSettings, str )
93
+ {
94
+ var
95
+ iStart = oSettings._iDisplayStart+1,
96
+ sStart = oSettings.fnFormatNumber( iStart ),
97
+ iEnd = oSettings.fnDisplayEnd(),
98
+ sEnd = oSettings.fnFormatNumber( iEnd ),
99
+ iTotal = oSettings.fnRecordsDisplay(),
100
+ sTotal = oSettings.fnFormatNumber( iTotal ),
101
+ iMax = oSettings.fnRecordsTotal(),
102
+ sMax = oSettings.fnFormatNumber( iMax );
103
+
104
+ // When infinite scrolling, we are always starting at 1. _iDisplayStart is used only
105
+ // internally
106
+ if ( oSettings.oScroll.bInfinite )
107
+ {
108
+ sStart = oSettings.fnFormatNumber( 1 );
109
+ }
110
+
111
+ return str.
112
+ replace('_START_', sStart).
113
+ replace('_END_', sEnd).
114
+ replace('_TOTAL_', sTotal).
115
+ replace('_MAX_', sMax);
116
+ }
117
+
@@ -0,0 +1,153 @@
1
+
2
+
3
+ /**
4
+ * Draw the table for the first time, adding all required features
5
+ * @param {object} oSettings dataTables settings object
6
+ * @memberof DataTable#oApi
7
+ */
8
+ function _fnInitialise ( oSettings )
9
+ {
10
+ var i, iLen, iAjaxStart=oSettings.iInitDisplayStart;
11
+
12
+ /* Ensure that the table data is fully initialised */
13
+ if ( oSettings.bInitialised === false )
14
+ {
15
+ setTimeout( function(){ _fnInitialise( oSettings ); }, 200 );
16
+ return;
17
+ }
18
+
19
+ /* Show the display HTML options */
20
+ _fnAddOptionsHtml( oSettings );
21
+
22
+ /* Build and draw the header / footer for the table */
23
+ _fnBuildHead( oSettings );
24
+ _fnDrawHead( oSettings, oSettings.aoHeader );
25
+ if ( oSettings.nTFoot )
26
+ {
27
+ _fnDrawHead( oSettings, oSettings.aoFooter );
28
+ }
29
+
30
+ /* Okay to show that something is going on now */
31
+ _fnProcessingDisplay( oSettings, true );
32
+
33
+ /* Calculate sizes for columns */
34
+ if ( oSettings.oFeatures.bAutoWidth )
35
+ {
36
+ _fnCalculateColumnWidths( oSettings );
37
+ }
38
+
39
+ for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
40
+ {
41
+ if ( oSettings.aoColumns[i].sWidth !== null )
42
+ {
43
+ oSettings.aoColumns[i].nTh.style.width = _fnStringToCss( oSettings.aoColumns[i].sWidth );
44
+ }
45
+ }
46
+
47
+ /* If there is default sorting required - let's do it. The sort function will do the
48
+ * drawing for us. Otherwise we draw the table regardless of the Ajax source - this allows
49
+ * the table to look initialised for Ajax sourcing data (show 'loading' message possibly)
50
+ */
51
+ if ( oSettings.oFeatures.bSort )
52
+ {
53
+ _fnSort( oSettings );
54
+ }
55
+ else if ( oSettings.oFeatures.bFilter )
56
+ {
57
+ _fnFilterComplete( oSettings, oSettings.oPreviousSearch );
58
+ }
59
+ else
60
+ {
61
+ oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
62
+ _fnCalculateEnd( oSettings );
63
+ _fnDraw( oSettings );
64
+ }
65
+
66
+ /* if there is an ajax source load the data */
67
+ if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide )
68
+ {
69
+ var aoData = [];
70
+ _fnServerParams( oSettings, aoData );
71
+ oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aoData, function(json) {
72
+ var aData = (oSettings.sAjaxDataProp !== "") ?
73
+ _fnGetObjectDataFn( oSettings.sAjaxDataProp )(json) : json;
74
+
75
+ /* Got the data - add it to the table */
76
+ for ( i=0 ; i<aData.length ; i++ )
77
+ {
78
+ _fnAddData( oSettings, aData[i] );
79
+ }
80
+
81
+ /* Reset the init display for cookie saving. We've already done a filter, and
82
+ * therefore cleared it before. So we need to make it appear 'fresh'
83
+ */
84
+ oSettings.iInitDisplayStart = iAjaxStart;
85
+
86
+ if ( oSettings.oFeatures.bSort )
87
+ {
88
+ _fnSort( oSettings );
89
+ }
90
+ else
91
+ {
92
+ oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
93
+ _fnCalculateEnd( oSettings );
94
+ _fnDraw( oSettings );
95
+ }
96
+
97
+ _fnProcessingDisplay( oSettings, false );
98
+ _fnInitComplete( oSettings, json );
99
+ }, oSettings );
100
+ return;
101
+ }
102
+
103
+ /* Server-side processing initialisation complete is done at the end of _fnDraw */
104
+ if ( !oSettings.oFeatures.bServerSide )
105
+ {
106
+ _fnProcessingDisplay( oSettings, false );
107
+ _fnInitComplete( oSettings );
108
+ }
109
+ }
110
+
111
+
112
+ /**
113
+ * Draw the table for the first time, adding all required features
114
+ * @param {object} oSettings dataTables settings object
115
+ * @param {object} [json] JSON from the server that completed the table, if using Ajax source
116
+ * with client-side processing (optional)
117
+ * @memberof DataTable#oApi
118
+ */
119
+ function _fnInitComplete ( oSettings, json )
120
+ {
121
+ oSettings._bInitComplete = true;
122
+ _fnCallbackFire( oSettings, 'aoInitComplete', 'init', [oSettings, json] );
123
+ }
124
+
125
+
126
+ /**
127
+ * Language compatibility - when certain options are given, and others aren't, we
128
+ * need to duplicate the values over, in order to provide backwards compatibility
129
+ * with older language files.
130
+ * @param {object} oSettings dataTables settings object
131
+ * @memberof DataTable#oApi
132
+ */
133
+ function _fnLanguageCompat( oLanguage )
134
+ {
135
+ var oDefaults = DataTable.defaults.oLanguage;
136
+
137
+ /* Backwards compatibility - if there is no sEmptyTable given, then use the same as
138
+ * sZeroRecords - assuming that is given.
139
+ */
140
+ if ( !oLanguage.sEmptyTable && oLanguage.sZeroRecords &&
141
+ oDefaults.sEmptyTable === "No data available in table" )
142
+ {
143
+ _fnMap( oLanguage, oLanguage, 'sZeroRecords', 'sEmptyTable' );
144
+ }
145
+
146
+ /* Likewise with loading records */
147
+ if ( !oLanguage.sLoadingRecords && oLanguage.sZeroRecords &&
148
+ oDefaults.sLoadingRecords === "Loading..." )
149
+ {
150
+ _fnMap( oLanguage, oLanguage, 'sZeroRecords', 'sLoadingRecords' );
151
+ }
152
+ }
153
+