From 1aaecab4a7cde7f1a897f02aeed2d48cfca47a4b Mon Sep 17 00:00:00 2001 From: Maximilien Cuony Date: Sun, 5 Jan 2014 00:15:00 +0100 Subject: [PATCH] User mangement --- app/settings.py | 2 + app/urls.py | 1 + data/pip-reqs.txt | 1 + main/templates/main/home.html | 6 + media/sb-admin/css/sb-admin.css | 7 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41236 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23292 bytes media/sb-admin/vendors/BS3/Datatables.png | Bin 0 -> 58045 bytes .../vendors/BS3/assets/css/datatables.css | 181 + .../vendors/BS3/assets/images/sort_asc.png | Bin 0 -> 1118 bytes .../BS3/assets/images/sort_asc_disabled.png | Bin 0 -> 1050 bytes .../vendors/BS3/assets/images/sort_both.png | Bin 0 -> 1136 bytes .../vendors/BS3/assets/images/sort_desc.png | Bin 0 -> 1127 bytes .../BS3/assets/images/sort_desc_disabled.png | Bin 0 -> 1045 bytes .../vendors/BS3/assets/js/datatables.js | 402 + .../vendors/BS3/examples/css/datatables.css | 177 + .../vendors/BS3/examples/images/sort_asc.png | Bin 0 -> 1118 bytes .../BS3/examples/images/sort_asc_disabled.png | Bin 0 -> 1050 bytes .../vendors/BS3/examples/images/sort_both.png | Bin 0 -> 1136 bytes .../vendors/BS3/examples/images/sort_desc.png | Bin 0 -> 1127 bytes .../examples/images/sort_desc_disabled.png | Bin 0 -> 1045 bytes .../vendors/BS3/examples/js/datatables.js | 387 + .../BS3/examples/pagination_four_buttons.html | 467 + .../vendors/BS3/examples/pagination_full.html | 467 + .../BS3/examples/pagination_normal.html | 470 + .../BS3/examples/pagination_two_buttons.html | 467 + media/sb-admin/vendors/BS3/index.html | 84 + .../vendors/datatables/css/demo_page.css | 122 + .../vendors/datatables/css/demo_table.css | 577 + .../vendors/datatables/css/demo_table_jui.css | 501 + .../datatables/css/jquery.dataTables.css | 221 + .../css/jquery.dataTables_themeroller.css | 244 + .../datatables/images/Sorting icons.psd | Bin 0 -> 27490 bytes .../datatables/images/back_disabled.png | Bin 0 -> 1361 bytes .../datatables/images/back_enabled.png | Bin 0 -> 1379 bytes .../datatables/images/back_enabled_hover.png | Bin 0 -> 1375 bytes .../vendors/datatables/images/favicon.ico | Bin 0 -> 894 bytes .../datatables/images/forward_disabled.png | Bin 0 -> 1363 bytes .../datatables/images/forward_enabled.png | Bin 0 -> 1380 bytes .../images/forward_enabled_hover.png | Bin 0 -> 1379 bytes .../vendors/datatables/images/sort_asc.png | Bin 0 -> 1118 bytes .../datatables/images/sort_asc_disabled.png | Bin 0 -> 1050 bytes .../vendors/datatables/images/sort_both.png | Bin 0 -> 1136 bytes .../vendors/datatables/images/sort_desc.png | Bin 0 -> 1127 bytes .../datatables/images/sort_desc_disabled.png | Bin 0 -> 1045 bytes .../datatables/js/jquery.dataTables.js | 12099 ++++++++++++++++ .../datatables/js/jquery.dataTables.min.js | 155 + .../sb-admin/vendors/datatables/js/jquery.js | 2 + .../vendors/datatables/src/DataTables.js | 284 + .../datatables/src/api/api.internal.js | 130 + .../vendors/datatables/src/api/api.methods.js | 1294 ++ .../vendors/datatables/src/api/api.static.js | 98 + .../vendors/datatables/src/core/core.ajax.js | 185 + .../datatables/src/core/core.columns.js | 373 + .../datatables/src/core/core.constructor.js | 428 + .../vendors/datatables/src/core/core.data.js | 634 + .../vendors/datatables/src/core/core.draw.js | 792 + .../datatables/src/core/core.filter.js | 399 + .../vendors/datatables/src/core/core.info.js | 111 + .../vendors/datatables/src/core/core.init.js | 153 + .../datatables/src/core/core.length.js | 122 + .../vendors/datatables/src/core/core.page.js | 119 + .../datatables/src/core/core.processing.js | 44 + .../datatables/src/core/core.scrolling.js | 511 + .../datatables/src/core/core.sizing.js | 403 + .../vendors/datatables/src/core/core.sort.js | 451 + .../vendors/datatables/src/core/core.state.js | 216 + .../datatables/src/core/core.support.js | 346 + .../vendors/datatables/src/ext/ext.classes.js | 112 + .../vendors/datatables/src/ext/ext.paging.js | 262 + .../vendors/datatables/src/ext/ext.sorting.js | 86 + .../vendors/datatables/src/ext/ext.types.js | 88 + .../datatables/src/model/model.column.js | 263 + .../src/model/model.defaults.columns.js | 759 + .../datatables/src/model/model.defaults.js | 1952 +++ .../vendors/datatables/src/model/model.ext.js | 528 + .../vendors/datatables/src/model/model.row.js | 64 + .../datatables/src/model/model.search.js | 40 + .../datatables/src/model/model.settings.js | 882 ++ .../datatables/unit_testing/controller.js | 94 + .../datatables/unit_testing/controller.php | 100 + .../datatables/unit_testing/index.html | 7 + .../unit_testing/performance/draw.html | 482 + .../unit_testing/performance/large.php | 108 + .../unit_testing/performance/page.html | 477 + .../unit_testing/performance/sort.html | 477 + .../templates/-complex_header.php | 469 + .../unit_testing/templates/2512.php | 464 + .../unit_testing/templates/6776.php | 116 + .../templates/complex_header_2.php | 485 + .../unit_testing/templates/deferred_table.php | 132 + .../unit_testing/templates/dom_data.php | 465 + .../unit_testing/templates/dom_data_th.php | 465 + .../templates/dom_data_two_headers.php | 472 + .../unit_testing/templates/dymanic_table.php | 45 + .../unit_testing/templates/empty_table.php | 55 + .../unit_testing/templates/html_table.php | 66 + .../unit_testing/templates/js_data.php | 124 + .../templates/js_data_mixed_types.php | 124 + .../unit_testing/templates/two_tables.php | 227 + .../unit_testing/tests/1_dom/_zero_config.js | 437 + .../tests_onhold/1_dom/-complex_header.js | 52 + .../unit_testing/tests_onhold/1_dom/-iDraw.js | 41 + .../unit_testing/tests_onhold/1_dom/2512.js | 17 + .../unit_testing/tests_onhold/1_dom/2530-2.js | 15 + .../unit_testing/tests_onhold/1_dom/2530.js | 29 + .../unit_testing/tests_onhold/1_dom/2569.js | 36 + .../unit_testing/tests_onhold/1_dom/2600.js | 44 + .../unit_testing/tests_onhold/1_dom/2608.js | 54 + .../unit_testing/tests_onhold/1_dom/2635.js | 40 + .../tests_onhold/1_dom/2746-stable-sort.js | 199 + .../unit_testing/tests_onhold/1_dom/2799.js | 14 + .../1_dom/2840-restore-table-width.js | 19 + .../1_dom/2914-state-save-sort.js | 39 + .../1_dom/5396-fnUpdate-arrays-mData.js | 103 + .../1_dom/5396-fnUpdate-arrays.js | 103 + .../1_dom/5508-xscroll-zero-content.js | 23 + .../1_dom/6776-scrolling-table-grows.js | 64 + .../tests_onhold/1_dom/_getDataFunctions.js | 399 + .../tests_onhold/1_dom/_setDataFunctions.js | 190 + .../tests_onhold/1_dom/_zero_config.js | 437 + .../tests_onhold/1_dom/aaSorting.js | 183 + .../tests_onhold/1_dom/aaSortingFixed.js | 60 + .../1_dom/aoColumns.bSearchable.js | 67 + .../tests_onhold/1_dom/aoColumns.bSortable.js | 105 + .../1_dom/aoColumns.bUseRendered.js | 145 + .../tests_onhold/1_dom/aoColumns.bVisible.js | 132 + .../tests_onhold/1_dom/aoColumns.bVisible2.js | 268 + .../tests_onhold/1_dom/aoColumns.fnRender.js | 176 + .../tests_onhold/1_dom/aoColumns.iDataSort.js | 88 + .../tests_onhold/1_dom/aoColumns.sClass.js | 111 + .../tests_onhold/1_dom/aoColumns.sName.js | 27 + .../tests_onhold/1_dom/aoColumns.sTitle.js | 78 + .../tests_onhold/1_dom/aoColumns.sWidth.js | 84 + .../tests_onhold/1_dom/aoSearchCols.js | 112 + .../tests_onhold/1_dom/asStripClasses.js | 106 + .../tests_onhold/1_dom/bAutoWidth.js | 138 + .../tests_onhold/1_dom/bFilter.js | 40 + .../tests_onhold/1_dom/bInfiniteScroll.js | 130 + .../unit_testing/tests_onhold/1_dom/bInfo.js | 40 + .../tests_onhold/1_dom/bJQueryUI.js | 40 + .../tests_onhold/1_dom/bLengthChange.js | 71 + .../tests_onhold/1_dom/bPaginate.js | 55 + .../tests_onhold/1_dom/bProcessing.js | 99 + .../tests_onhold/1_dom/bServerSide.js | 18 + .../unit_testing/tests_onhold/1_dom/bSort.js | 101 + .../tests_onhold/1_dom/bSortCellsTop.js | 77 + .../tests_onhold/1_dom/bSortClasses.js | 128 + .../tests_onhold/1_dom/fnCookieCallback.js | 97 + .../tests_onhold/1_dom/fnCreatedCell.js | 151 + .../tests_onhold/1_dom/fnCreatedRow.js | 115 + .../tests_onhold/1_dom/fnDeleteRow.js | 30 + .../tests_onhold/1_dom/fnDrawCallback.js | 80 + .../tests_onhold/1_dom/fnFilter.js | 16 + .../tests_onhold/1_dom/fnFooterCallback.js | 227 + .../tests_onhold/1_dom/fnHeaderCallback.js | 227 + .../tests_onhold/1_dom/fnInfoCallback.js | 115 + .../tests_onhold/1_dom/fnInitComplete.js | 94 + .../tests_onhold/1_dom/fnRowCallback.js | 105 + .../tests_onhold/1_dom/fnSetColumnVis.js | 120 + .../tests_onhold/1_dom/fnSetColumnVis2.js | 236 + .../1_dom/html-autodetect-sort.js | 57 + .../tests_onhold/1_dom/iDisplayLength.js | 76 + .../tests_onhold/1_dom/oLanguage.oPaginate.js | 80 + .../tests_onhold/1_dom/oLanguage.sInfo.js | 109 + .../1_dom/oLanguage.sInfoEmpty.js | 75 + .../1_dom/oLanguage.sInfoPostFix.js | 73 + .../1_dom/oLanguage.sLengthMenu.js | 106 + .../1_dom/oLanguage.sProcessing.js | 47 + .../tests_onhold/1_dom/oLanguage.sSearch.js | 66 + .../tests_onhold/1_dom/oLanguage.sUrl.js | 59 + .../1_dom/oLanguage.sZeroRecords.js | 45 + .../tests_onhold/1_dom/oSearch.js | 101 + .../tests_onhold/1_dom/sAjaxSource.js | 18 + .../unit_testing/tests_onhold/1_dom/sDom.js | 319 + .../tests_onhold/1_dom/sPaginationType.js | 122 + .../tests_onhold/1_dom/sScrollXY.js | 63 + .../tests_onhold/1_dom/th_in_body.js | 437 + .../tests_onhold/2_js/39-nested-null.js | 76 + .../6872-default-content-missing-props.js | 285 + .../2_js/8549--string-sorting-nonstrings.js | 47 + .../tests_onhold/2_js/_zero_config.js | 440 + .../tests_onhold/2_js/aaSorting.js | 198 + .../tests_onhold/2_js/aaSortingFixed.js | 64 + .../2_js/aoColumns.bSearchable.js | 71 + .../tests_onhold/2_js/aoColumns.bSortable.js | 109 + .../2_js/aoColumns.bUseRendered.js | 148 + .../tests_onhold/2_js/aoColumns.bVisible.js | 110 + .../tests_onhold/2_js/aoColumns.fnRender.js | 156 + .../tests_onhold/2_js/aoColumns.iDataSort.js | 90 + .../tests_onhold/2_js/aoColumns.sClass.js | 115 + .../tests_onhold/2_js/aoColumns.sName.js | 28 + .../tests_onhold/2_js/aoColumns.sTitle.js | 82 + .../tests_onhold/2_js/aoColumns.sWidth.js | 87 + .../tests_onhold/2_js/aoSearchCols.js | 119 + .../tests_onhold/2_js/asStripClasses.js | 100 + .../tests_onhold/2_js/bAutoWidth.js | 142 + .../unit_testing/tests_onhold/2_js/bFilter.js | 44 + .../unit_testing/tests_onhold/2_js/bInfo.js | 44 + .../tests_onhold/2_js/bLengthChange.js | 75 + .../tests_onhold/2_js/bPaginate.js | 59 + .../tests_onhold/2_js/bProcessing.js | 103 + .../tests_onhold/2_js/bServerSide.js | 20 + .../unit_testing/tests_onhold/2_js/bSort.js | 99 + .../tests_onhold/2_js/bSortClasses.js | 132 + .../tests_onhold/2_js/fnCreatedCell.js | 158 + .../tests_onhold/2_js/fnCreatedRow.js | 121 + .../tests_onhold/2_js/fnDrawCallback.js | 85 + .../tests_onhold/2_js/fnFooterCallback.js | 240 + .../tests_onhold/2_js/fnHeaderCallback.js | 240 + .../tests_onhold/2_js/fnInitComplete.js | 83 + .../tests_onhold/2_js/fnRowCallback.js | 112 + .../tests_onhold/2_js/iDisplayLength.js | 81 + .../tests_onhold/2_js/js_data_mixed_types.js | 392 + .../tests_onhold/2_js/oLanguage.oPaginate.js | 84 + .../tests_onhold/2_js/oLanguage.sInfo.js | 117 + .../tests_onhold/2_js/oLanguage.sInfoEmpty.js | 79 + .../2_js/oLanguage.sInfoPostFix.js | 78 + .../2_js/oLanguage.sLengthMenu.js | 111 + .../2_js/oLanguage.sProcessing.js | 49 + .../tests_onhold/2_js/oLanguage.sSearch.js | 70 + .../tests_onhold/2_js/oLanguage.sUrl.js | 62 + .../2_js/oLanguage.sZeroRecords.js | 48 + .../unit_testing/tests_onhold/2_js/oSearch.js | 108 + .../tests_onhold/2_js/sAjaxSource.js | 20 + .../unit_testing/tests_onhold/2_js/sDom.js | 262 + .../tests_onhold/2_js/sPaginationType.js | 125 + .../tests_onhold/3_ajax/_zero_config.js | 440 + .../tests_onhold/3_ajax/aaSorting.js | 198 + .../tests_onhold/3_ajax/aaSortingFixed.js | 67 + .../3_ajax/aoColumns.bSearchable.js | 76 + .../3_ajax/aoColumns.bSortable.js | 109 + .../3_ajax/aoColumns.bUseRendered.js | 148 + .../tests_onhold/3_ajax/aoColumns.bVisible.js | 124 + .../tests_onhold/3_ajax/aoColumns.fnRender.js | 156 + .../3_ajax/aoColumns.iDataSort.js | 90 + .../tests_onhold/3_ajax/aoColumns.sClass.js | 115 + .../tests_onhold/3_ajax/aoColumns.sName.js | 28 + .../tests_onhold/3_ajax/aoColumns.sTitle.js | 82 + .../tests_onhold/3_ajax/aoColumns.sWidth.js | 87 + .../tests_onhold/3_ajax/aoSearchCols.js | 119 + .../tests_onhold/3_ajax/asStripClasses.js | 105 + .../tests_onhold/3_ajax/bAutoWidth.js | 142 + .../tests_onhold/3_ajax/bFilter.js | 44 + .../unit_testing/tests_onhold/3_ajax/bInfo.js | 44 + .../tests_onhold/3_ajax/bLengthChange.js | 75 + .../tests_onhold/3_ajax/bPaginate.js | 59 + .../tests_onhold/3_ajax/bProcessing.js | 103 + .../tests_onhold/3_ajax/bServerSide.js | 20 + .../unit_testing/tests_onhold/3_ajax/bSort.js | 99 + .../tests_onhold/3_ajax/bSortClasses.js | 132 + .../tests_onhold/3_ajax/fnCreatedCell.js | 183 + .../tests_onhold/3_ajax/fnCreatedRow.js | 142 + .../tests_onhold/3_ajax/fnDrawCallback.js | 98 + .../tests_onhold/3_ajax/fnHeaderCallback.js | 191 + .../tests_onhold/3_ajax/fnInitComplete.js | 100 + .../tests_onhold/3_ajax/fnRowCallback.js | 112 + .../tests_onhold/3_ajax/fnServerData.js | 64 + .../tests_onhold/3_ajax/iDisplayLength.js | 81 + .../3_ajax/oLanguage.oPaginate.js | 84 + .../tests_onhold/3_ajax/oLanguage.sInfo.js | 117 + .../3_ajax/oLanguage.sInfoEmpty.js | 79 + .../3_ajax/oLanguage.sInfoPostFix.js | 78 + .../3_ajax/oLanguage.sLengthMenu.js | 111 + .../3_ajax/oLanguage.sLoadingRecords.js | 65 + .../3_ajax/oLanguage.sProcessing.js | 49 + .../tests_onhold/3_ajax/oLanguage.sSearch.js | 70 + .../tests_onhold/3_ajax/oLanguage.sUrl.js | 62 + .../3_ajax/oLanguage.sZeroRecords.js | 48 + .../tests_onhold/3_ajax/oSearch.js | 108 + .../tests_onhold/3_ajax/sAjaxDataProp.js | 139 + .../tests_onhold/3_ajax/sAjaxDataProp2.js | 139 + .../tests_onhold/3_ajax/sAjaxSource.js | 22 + .../unit_testing/tests_onhold/3_ajax/sDom.js | 262 + .../tests_onhold/3_ajax/sPaginationType.js | 134 + .../tests_onhold/4_server-side/-iDraw.js | 44 + .../tests_onhold/4_server-side/2440.js | 32 + .../tests_onhold/4_server-side/2569.js | 47 + .../tests_onhold/4_server-side/2600.js | 47 + .../4_server-side/_zero_config.js | 424 + .../tests_onhold/4_server-side/aaSorting.js | 212 + .../4_server-side/aaSortingFixed.js | 67 + .../4_server-side/aoColumns.bSearchable.js | 25 + .../4_server-side/aoColumns.bSortable.js | 112 + .../4_server-side/aoColumns.bUseRendered.js | 43 + .../4_server-side/aoColumns.bVisible.js | 123 + .../4_server-side/aoColumns.fnRender.js | 162 + .../4_server-side/aoColumns.sClass.js | 118 + .../4_server-side/aoColumns.sName.js | 29 + .../4_server-side/aoColumns.sTitle.js | 85 + .../4_server-side/aoColumns.sWidth.js | 90 + .../4_server-side/aoSearchCols.js | 70 + .../4_server-side/asStripClasses.js | 109 + .../tests_onhold/4_server-side/bAutoWidth.js | 145 + .../tests_onhold/4_server-side/bFilter.js | 47 + .../4_server-side/bInfiniteScroll.js | 168 + .../tests_onhold/4_server-side/bInfo.js | 47 + .../4_server-side/bLengthChange.js | 78 + .../tests_onhold/4_server-side/bPaginate.js | 62 + .../tests_onhold/4_server-side/bProcessing.js | 106 + .../tests_onhold/4_server-side/bServerSide.js | 21 + .../tests_onhold/4_server-side/bSort.js | 102 + .../4_server-side/bSortClasses.js | 135 + .../4_server-side/fnCreatedCell.js | 190 + .../4_server-side/fnCreatedRow.js | 148 + .../4_server-side/fnDrawCallback.js | 89 + .../4_server-side/fnHeaderCallback.js | 191 + .../4_server-side/fnInitComplete.js | 89 + .../4_server-side/fnRowCallback.js | 118 + .../4_server-side/iDeferLoading.js | 95 + .../4_server-side/iDisplayLength.js | 85 + .../4_server-side/oLanguage.oPaginate.js | 86 + .../4_server-side/oLanguage.sInfo.js | 124 + .../4_server-side/oLanguage.sInfoEmpty.js | 82 + .../4_server-side/oLanguage.sInfoPostFix.js | 82 + .../4_server-side/oLanguage.sLengthMenu.js | 115 + .../4_server-side/oLanguage.sProcessing.js | 51 + .../4_server-side/oLanguage.sSearch.js | 73 + .../4_server-side/oLanguage.sUrl.js | 64 + .../4_server-side/oLanguage.sZeroRecords.js | 58 + .../tests_onhold/4_server-side/oSearch.js | 100 + .../4_server-side/sAjaxDataProp.js | 146 + .../tests_onhold/4_server-side/sAjaxSource.js | 23 + .../tests_onhold/4_server-side/sDom.js | 269 + .../4_server-side/sPaginationType.js | 138 + .../5_ajax_objects/_zero_config.js | 847 ++ .../_zero_config_arrays_subobjects.js | 961 ++ .../5_ajax_objects/_zero_config_deep.js | 1075 ++ .../5_ajax_objects/_zero_config_mDataProp.js | 847 ++ .../_zero_config_null_source.js | 458 + .../5_ajax_objects/_zero_config_objects.js | 847 ++ .../_zero_config_objects_subarrays.js | 961 ++ .../tests_onhold/5_ajax_objects/aaSorting.js | 296 + .../5_ajax_objects/aaSortingFixed.js | 88 + .../5_ajax_objects/aoColumns.bSearchable.js | 83 + .../5_ajax_objects/aoColumns.bSortable.js | 116 + .../5_ajax_objects/aoColumns.bUseRendered.js | 155 + .../5_ajax_objects/aoColumns.bVisible.js | 131 + .../5_ajax_objects/aoColumns.fnRender.js | 177 + .../5_ajax_objects/aoColumns.iDataSort.js | 90 + .../5_ajax_objects/aoColumns.sClass.js | 122 + .../5_ajax_objects/aoColumns.sName.js | 28 + .../5_ajax_objects/aoColumns.sTitle.js | 89 + .../5_ajax_objects/aoColumns.sWidth.js | 87 + .../5_ajax_objects/aoSearchCols.js | 161 + .../5_ajax_objects/asStripClasses.js | 133 + .../tests_onhold/5_ajax_objects/bAutoWidth.js | 163 + .../tests_onhold/5_ajax_objects/bFilter.js | 65 + .../tests_onhold/5_ajax_objects/bInfo.js | 65 + .../5_ajax_objects/bLengthChange.js | 96 + .../tests_onhold/5_ajax_objects/bPaginate.js | 80 + .../5_ajax_objects/bProcessing.js | 124 + .../5_ajax_objects/bServerSide.js | 27 + .../tests_onhold/5_ajax_objects/bSort.js | 120 + .../5_ajax_objects/bSortClasses.js | 153 + .../5_ajax_objects/fnDrawCallback.js | 126 + .../5_ajax_objects/fnHeaderCallback.js | 254 + .../5_ajax_objects/fnInitComplete.js | 135 + .../5_ajax_objects/fnRowCallback.js | 154 + .../5_ajax_objects/fnServerData.js | 92 + .../5_ajax_objects/iDisplayLength.js | 109 + .../5_ajax_objects/oLanguage.oPaginate.js | 98 + .../5_ajax_objects/oLanguage.sInfo.js | 166 + .../5_ajax_objects/oLanguage.sInfoEmpty.js | 100 + .../5_ajax_objects/oLanguage.sInfoPostFix.js | 106 + .../5_ajax_objects/oLanguage.sLengthMenu.js | 139 + .../5_ajax_objects/oLanguage.sProcessing.js | 63 + .../5_ajax_objects/oLanguage.sSearch.js | 91 + .../5_ajax_objects/oLanguage.sUrl.js | 76 + .../5_ajax_objects/oLanguage.sZeroRecords.js | 62 + .../tests_onhold/5_ajax_objects/oSearch.js | 150 + .../5_ajax_objects/sAjaxSource.js | 29 + .../tests_onhold/5_ajax_objects/sDom.js | 311 + .../5_ajax_objects/sPaginationType.js | 148 + .../6_delayed_rendering/_zero_config.js | 403 + .../6_delayed_rendering/aaSorting.js | 212 + .../6_delayed_rendering/aaSortingFixed.js | 70 + .../aoColumns.bSearchable.js | 79 + .../aoColumns.bSortable.js | 112 + .../aoColumns.bUseRendered.js | 151 + .../6_delayed_rendering/aoColumns.bVisible.js | 127 + .../6_delayed_rendering/aoColumns.fnRender.js | 190 + .../aoColumns.iDataSort.js | 92 + .../6_delayed_rendering/aoColumns.sClass.js | 118 + .../6_delayed_rendering/aoColumns.sName.js | 29 + .../6_delayed_rendering/aoColumns.sTitle.js | 85 + .../6_delayed_rendering/aoColumns.sWidth.js | 90 + .../6_delayed_rendering/aoSearchCols.js | 125 + .../6_delayed_rendering/asStripClasses.js | 109 + .../6_delayed_rendering/bAutoWidth.js | 145 + .../6_delayed_rendering/bFilter.js | 47 + .../tests_onhold/6_delayed_rendering/bInfo.js | 47 + .../6_delayed_rendering/bLengthChange.js | 78 + .../6_delayed_rendering/bPaginate.js | 62 + .../6_delayed_rendering/bProcessing.js | 106 + .../6_delayed_rendering/bServerSide.js | 21 + .../tests_onhold/6_delayed_rendering/bSort.js | 102 + .../6_delayed_rendering/bSortClasses.js | 135 + .../6_delayed_rendering/fnDrawCallback.js | 102 + .../6_delayed_rendering/fnHeaderCallback.js | 200 + .../6_delayed_rendering/fnInitComplete.js | 105 + .../6_delayed_rendering/fnRowCallback.js | 118 + .../6_delayed_rendering/fnServerData.js | 68 + .../6_delayed_rendering/iDisplayLength.js | 85 + .../oLanguage.oPaginate.js | 86 + .../6_delayed_rendering/oLanguage.sInfo.js | 124 + .../oLanguage.sInfoEmpty.js | 82 + .../oLanguage.sInfoPostFix.js | 82 + .../oLanguage.sLengthMenu.js | 115 + .../oLanguage.sProcessing.js | 51 + .../6_delayed_rendering/oLanguage.sSearch.js | 73 + .../6_delayed_rendering/oLanguage.sUrl.js | 64 + .../oLanguage.sZeroRecords.js | 50 + .../6_delayed_rendering/oSearch.js | 114 + .../6_delayed_rendering/sAjaxDataProp.js | 140 + .../6_delayed_rendering/sAjaxDataProp2.js | 140 + .../6_delayed_rendering/sAjaxSource.js | 23 + .../tests_onhold/6_delayed_rendering/sDom.js | 269 + .../6_delayed_rendering/sPaginationType.js | 136 + .../datatables/unit_testing/unit_test.js | 409 + templates/base.html | 31 +- users/__init__.py | 0 users/forms.py | 14 + users/models.py | 3 + users/templates/users/users/edit.html | 48 + users/templates/users/users/list.html | 65 + users/templates/users/users/show.html | 84 + users/tests.py | 16 + users/urls.py | 13 + users/views.py | 78 + 430 files changed, 76029 insertions(+), 5 deletions(-) create mode 100644 media/sb-admin/fonts/glyphicons-halflings-regular.ttf create mode 100644 media/sb-admin/fonts/glyphicons-halflings-regular.woff create mode 100644 media/sb-admin/vendors/BS3/Datatables.png create mode 100644 media/sb-admin/vendors/BS3/assets/css/datatables.css create mode 100644 media/sb-admin/vendors/BS3/assets/images/sort_asc.png create mode 100644 media/sb-admin/vendors/BS3/assets/images/sort_asc_disabled.png create mode 100644 media/sb-admin/vendors/BS3/assets/images/sort_both.png create mode 100644 media/sb-admin/vendors/BS3/assets/images/sort_desc.png create mode 100644 media/sb-admin/vendors/BS3/assets/images/sort_desc_disabled.png create mode 100644 media/sb-admin/vendors/BS3/assets/js/datatables.js create mode 100644 media/sb-admin/vendors/BS3/examples/css/datatables.css create mode 100644 media/sb-admin/vendors/BS3/examples/images/sort_asc.png create mode 100644 media/sb-admin/vendors/BS3/examples/images/sort_asc_disabled.png create mode 100644 media/sb-admin/vendors/BS3/examples/images/sort_both.png create mode 100644 media/sb-admin/vendors/BS3/examples/images/sort_desc.png create mode 100644 media/sb-admin/vendors/BS3/examples/images/sort_desc_disabled.png create mode 100644 media/sb-admin/vendors/BS3/examples/js/datatables.js create mode 100644 media/sb-admin/vendors/BS3/examples/pagination_four_buttons.html create mode 100644 media/sb-admin/vendors/BS3/examples/pagination_full.html create mode 100644 media/sb-admin/vendors/BS3/examples/pagination_normal.html create mode 100644 media/sb-admin/vendors/BS3/examples/pagination_two_buttons.html create mode 100644 media/sb-admin/vendors/BS3/index.html create mode 100644 media/sb-admin/vendors/datatables/css/demo_page.css create mode 100644 media/sb-admin/vendors/datatables/css/demo_table.css create mode 100644 media/sb-admin/vendors/datatables/css/demo_table_jui.css create mode 100644 media/sb-admin/vendors/datatables/css/jquery.dataTables.css create mode 100644 media/sb-admin/vendors/datatables/css/jquery.dataTables_themeroller.css create mode 100644 media/sb-admin/vendors/datatables/images/Sorting icons.psd create mode 100644 media/sb-admin/vendors/datatables/images/back_disabled.png create mode 100644 media/sb-admin/vendors/datatables/images/back_enabled.png create mode 100644 media/sb-admin/vendors/datatables/images/back_enabled_hover.png create mode 100644 media/sb-admin/vendors/datatables/images/favicon.ico create mode 100644 media/sb-admin/vendors/datatables/images/forward_disabled.png create mode 100644 media/sb-admin/vendors/datatables/images/forward_enabled.png create mode 100644 media/sb-admin/vendors/datatables/images/forward_enabled_hover.png create mode 100644 media/sb-admin/vendors/datatables/images/sort_asc.png create mode 100644 media/sb-admin/vendors/datatables/images/sort_asc_disabled.png create mode 100644 media/sb-admin/vendors/datatables/images/sort_both.png create mode 100644 media/sb-admin/vendors/datatables/images/sort_desc.png create mode 100644 media/sb-admin/vendors/datatables/images/sort_desc_disabled.png create mode 100644 media/sb-admin/vendors/datatables/js/jquery.dataTables.js create mode 100644 media/sb-admin/vendors/datatables/js/jquery.dataTables.min.js create mode 100644 media/sb-admin/vendors/datatables/js/jquery.js create mode 100644 media/sb-admin/vendors/datatables/src/DataTables.js create mode 100644 media/sb-admin/vendors/datatables/src/api/api.internal.js create mode 100644 media/sb-admin/vendors/datatables/src/api/api.methods.js create mode 100644 media/sb-admin/vendors/datatables/src/api/api.static.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.ajax.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.columns.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.constructor.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.data.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.draw.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.filter.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.info.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.init.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.length.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.page.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.processing.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.scrolling.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.sizing.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.sort.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.state.js create mode 100644 media/sb-admin/vendors/datatables/src/core/core.support.js create mode 100644 media/sb-admin/vendors/datatables/src/ext/ext.classes.js create mode 100644 media/sb-admin/vendors/datatables/src/ext/ext.paging.js create mode 100644 media/sb-admin/vendors/datatables/src/ext/ext.sorting.js create mode 100644 media/sb-admin/vendors/datatables/src/ext/ext.types.js create mode 100644 media/sb-admin/vendors/datatables/src/model/model.column.js create mode 100644 media/sb-admin/vendors/datatables/src/model/model.defaults.columns.js create mode 100644 media/sb-admin/vendors/datatables/src/model/model.defaults.js create mode 100644 media/sb-admin/vendors/datatables/src/model/model.ext.js create mode 100644 media/sb-admin/vendors/datatables/src/model/model.row.js create mode 100644 media/sb-admin/vendors/datatables/src/model/model.search.js create mode 100644 media/sb-admin/vendors/datatables/src/model/model.settings.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/controller.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/controller.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/index.html create mode 100644 media/sb-admin/vendors/datatables/unit_testing/performance/draw.html create mode 100644 media/sb-admin/vendors/datatables/unit_testing/performance/large.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/performance/page.html create mode 100644 media/sb-admin/vendors/datatables/unit_testing/performance/sort.html create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/-complex_header.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/2512.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/6776.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/complex_header_2.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/deferred_table.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/dom_data.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/dom_data_th.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/dom_data_two_headers.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/dymanic_table.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/empty_table.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/html_table.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/js_data.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/js_data_mixed_types.php create mode 100644 media/sb-admin/vendors/datatables/unit_testing/templates/two_tables.php create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests/1_dom/_zero_config.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/-complex_header.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/-iDraw.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2512.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2530-2.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2530.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2569.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2600.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2608.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2635.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2746-stable-sort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2799.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2840-restore-table-width.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/2914-state-save-sort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/5396-fnUpdate-arrays-mData.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/5396-fnUpdate-arrays.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/5508-xscroll-zero-content.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/6776-scrolling-table-grows.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/_getDataFunctions.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/_setDataFunctions.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/_zero_config.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aaSorting.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aaSortingFixed.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bSearchable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bSortable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bUseRendered.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bVisible.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bVisible2.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.fnRender.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.iDataSort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sClass.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sName.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sTitle.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sWidth.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/aoSearchCols.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/asStripClasses.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bAutoWidth.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bFilter.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bInfo.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bJQueryUI.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bLengthChange.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bPaginate.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bProcessing.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bServerSide.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bSort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bSortCellsTop.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/bSortClasses.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnCookieCallback.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnCreatedCell.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnCreatedRow.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnDeleteRow.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnDrawCallback.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnFilter.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnFooterCallback.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnHeaderCallback.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnInfoCallback.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnInitComplete.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnRowCallback.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnSetColumnVis.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/fnSetColumnVis2.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/html-autodetect-sort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/iDisplayLength.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.oPaginate.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfo.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfoEmpty.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sInfoPostFix.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sLengthMenu.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sProcessing.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sSearch.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sUrl.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oLanguage.sZeroRecords.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/oSearch.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/sAjaxSource.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/sDom.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/sPaginationType.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/sScrollXY.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/1_dom/th_in_body.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/39-nested-null.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/6872-default-content-missing-props.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/8549--string-sorting-nonstrings.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/_zero_config.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aaSorting.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aaSortingFixed.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.bSearchable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.bSortable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.bUseRendered.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.bVisible.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.fnRender.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.iDataSort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.sClass.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.sName.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.sTitle.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoColumns.sWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/aoSearchCols.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/asStripClasses.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bAutoWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bFilter.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bLengthChange.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bServerSide.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bSort.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/bSortClasses.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/fnCreatedCell.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/fnCreatedRow.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/fnDrawCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/fnFooterCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/fnHeaderCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/fnInitComplete.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/fnRowCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/iDisplayLength.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/js_data_mixed_types.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.oPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfoEmpty.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sInfoPostFix.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sLengthMenu.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sUrl.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oLanguage.sZeroRecords.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/oSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/sAjaxSource.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/sDom.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/2_js/sPaginationType.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/_zero_config.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aaSorting.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aaSortingFixed.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bSearchable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bSortable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bUseRendered.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.bVisible.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.fnRender.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.iDataSort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sClass.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sName.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sTitle.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoColumns.sWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/aoSearchCols.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/asStripClasses.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bAutoWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bFilter.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bLengthChange.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bServerSide.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bSort.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/bSortClasses.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/fnCreatedCell.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/fnCreatedRow.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/fnDrawCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/fnHeaderCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/fnInitComplete.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/fnRowCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/fnServerData.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/iDisplayLength.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.oPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoEmpty.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoPostFix.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sLengthMenu.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sLoadingRecords.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sUrl.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oLanguage.sZeroRecords.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/oSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/sAjaxDataProp.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/sAjaxDataProp2.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/sAjaxSource.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/sDom.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/3_ajax/sPaginationType.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/-iDraw.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/2440.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/2569.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/2600.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/_zero_config.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aaSorting.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aaSortingFixed.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bSearchable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bSortable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bUseRendered.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.bVisible.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.fnRender.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sClass.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sName.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sTitle.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoColumns.sWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/aoSearchCols.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/asStripClasses.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bAutoWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bFilter.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bInfiniteScroll.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bLengthChange.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bServerSide.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bSort.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/bSortClasses.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/fnCreatedCell.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/fnCreatedRow.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/fnDrawCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/fnHeaderCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/fnInitComplete.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/fnRowCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/iDeferLoading.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/iDisplayLength.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.oPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoEmpty.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoPostFix.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sLengthMenu.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sUrl.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oLanguage.sZeroRecords.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/oSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/sAjaxDataProp.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/sAjaxSource.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/sDom.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/4_server-side/sPaginationType.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_mDataProp.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bSort.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/sDom.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/_zero_config.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aaSorting.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aaSortingFixed.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSearchable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSortable.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bUseRendered.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bVisible.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.fnRender.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.iDataSort.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sClass.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sName.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sTitle.js create mode 100755 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/aoSearchCols.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/asStripClasses.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bAutoWidth.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bFilter.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bLengthChange.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bServerSide.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bSort.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/bSortClasses.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnDrawCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnHeaderCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnInitComplete.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnRowCallback.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/fnServerData.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/iDisplayLength.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.oPaginate.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfo.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoEmpty.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoPostFix.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sLengthMenu.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sProcessing.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sUrl.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sZeroRecords.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/oSearch.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp2.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/sAjaxSource.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/sDom.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/tests_onhold/6_delayed_rendering/sPaginationType.js create mode 100644 media/sb-admin/vendors/datatables/unit_testing/unit_test.js create mode 100644 users/__init__.py create mode 100644 users/forms.py create mode 100644 users/models.py create mode 100644 users/templates/users/users/edit.html create mode 100644 users/templates/users/users/list.html create mode 100644 users/templates/users/users/show.html create mode 100644 users/tests.py create mode 100644 users/urls.py create mode 100644 users/views.py diff --git a/app/settings.py b/app/settings.py index fe1d52a..f74c545 100644 --- a/app/settings.py +++ b/app/settings.py @@ -113,8 +113,10 @@ # 'django.contrib.admindocs', 'south', + 'bootstrap3', 'main', + 'users', ) SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer' diff --git a/app/urls.py b/app/urls.py index 722bb96..70d69ac 100644 --- a/app/urls.py +++ b/app/urls.py @@ -21,6 +21,7 @@ (r'^users/logout$', 'django.contrib.auth.views.logout', {'next_page': '/'}), url(r'', include('main.urls')), + url(r'^users/', include('users.urls')), (r'^' + settings.MEDIA_URL[1:] + '(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), # In prod, use apache ! (r'^' + settings.STATIC_URL[1:] + '(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), # In prod, use apache ! diff --git a/data/pip-reqs.txt b/data/pip-reqs.txt index 40e0ef0..b3a1e51 100644 --- a/data/pip-reqs.txt +++ b/data/pip-reqs.txt @@ -1 +1,2 @@ south +django-bootstrap3 diff --git a/main/templates/main/home.html b/main/templates/main/home.html index b560697..a0227c0 100644 --- a/main/templates/main/home.html +++ b/main/templates/main/home.html @@ -5,6 +5,12 @@ {% block content %} + +

{% trans "Welcome !" %}

+ + {% endblock %} \ No newline at end of file diff --git a/media/sb-admin/css/sb-admin.css b/media/sb-admin/css/sb-admin.css index 35e4625..bcfbe75 100644 --- a/media/sb-admin/css/sb-admin.css +++ b/media/sb-admin/css/sb-admin.css @@ -157,3 +157,10 @@ table.tablesorter thead tr th:hover { } } + +.copy { + font-size: 10px; + position: absolute; + bottom: 2px; + right: 3px; +} diff --git a/media/sb-admin/fonts/glyphicons-halflings-regular.ttf b/media/sb-admin/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a498ef4e7c8b556fc36f580c5ff524025bb11c84 GIT binary patch literal 41236 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 bfe&(pUVaH>sS2L51o*+APWwyje!cu(Ij5@l literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/BS3/assets/css/datatables.css b/media/sb-admin/vendors/BS3/assets/css/datatables.css new file mode 100644 index 0000000..1ee4078 --- /dev/null +++ b/media/sb-admin/vendors/BS3/assets/css/datatables.css @@ -0,0 +1,181 @@ +div.dataTables_length label { + float: left; + text-align: left; +} + +div.dataTables_length select { + width: 75px; +} + +div.dataTables_filter label { + float: right; +} + +div.dataTables_info { + padding-top: 26px; +} + +div.dataTables_paginate { + float: right; + margin: 0; +} + +table.table { + clear: both; + margin-bottom: 6px !important; + max-width: none !important; +} + +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead .sorting { background: url('../images/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } + +table.dataTable th:active { + outline: none; +} + +/* Scrolling */ +div.dataTables_scrollHead table { + margin-bottom: 0 !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.dataTables_scrollHead table thead tr:last-child th:first-child, +div.dataTables_scrollHead table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody tbody tr:first-child th, +div.dataTables_scrollBody tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + border-top: none; +} + + + + +/* + * TableTools styles + */ +.table tbody tr.active td, +.table tbody tr.active th { + background-color: #08C; + color: white; +} + +.table tbody tr.active:hover td, +.table tbody tr.active:hover th { + background-color: #0075b0 !important; +} + +.table-striped tbody tr.active:nth-child(odd) td, +.table-striped tbody tr.active:nth-child(odd) th { + background-color: #017ebc; +} + +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +div.DTTT .btn { + color: #333 !important; + font-size: 12px; +} + +div.DTTT .btn:hover { + text-decoration: none !important; +} + + +ul.DTTT_dropdown.dropdown-menu a { + color: #333 !important; /* needed only when demo_page.css is included */ +} + +ul.DTTT_dropdown.dropdown-menu li:hover a { + background-color: #0088cc; + color: white !important; +} + +/* TableTools information display */ +div.DTTT_print_info.modal { + height: 150px; + margin-top: -75px; + text-align: center; +} + +div.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +div.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + + + +/* + * FixedColumns styles + */ +div.DTFC_LeftHeadWrapper table, +div.DTFC_LeftFootWrapper table, +table.DTFC_Cloned tr.even { + background-color: white; +} + +div.DTFC_LeftHeadWrapper table { + margin-bottom: 0 !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftBodyWrapper table { + border-top: none; + margin-bottom: 0 !important; +} + +div.DTFC_LeftBodyWrapper tbody tr:first-child th, +div.DTFC_LeftBodyWrapper tbody tr:first-child td { + border-top: none; +} + +div.DTFC_LeftFootWrapper table { + border-top: none; +} + +div.dataTables_wrapper label { + font-weight: normal; !important; +} \ No newline at end of file diff --git a/media/sb-admin/vendors/BS3/assets/images/sort_asc.png b/media/sb-admin/vendors/BS3/assets/images/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc GIT binary patch literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/BS3/assets/images/sort_asc_disabled.png b/media/sb-admin/vendors/BS3/assets/images/sort_asc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4e144cf0b1f786a9248a2998311e8109998d8a2d GIT binary patch literal 1050 zcmaJ=O-K|`93R^(@goeAz6hRU)S-61)?IaU({*Myml|8vh4x}JJM&z}b>>Yo&vx~s z*1>{0Sk$FMM28~iln?~vp$ zL+z1TilQ3g{c@7*P2Q^6L;g-8^nq-LaWstw(J;=d4x}PF%0Lh|)htXxRiC)>9(Gfd zk2X?ioL0_@8ZsHx!!QNYCTxo8?kU)+mV+2%VAin0^v_psXkh4J`eIPw6kCELM*pM( z2PX$o+GI}a)ajlxpt~Rv0TW^s6wEQp6$@dys4J4Qcg@nE2*J59y%|(mNdO5s5Cj>{ zuW=y`gm{Jzw6(Xlp9TWQb1WyYyx`~C#eg7k94LJ>@#g5mVp5Kkd=V>5k6>(zESt~g znS6jjPL}06J3BoMLGTlV-<`0qTJT$LYgs{tuI3mvHjo88MKy!QahN8NZl++`Te6m0 zDibLfTTpG5XE-mVGEhip#w2PB)JKi0I-PD8)*(7w)xTBHA4Yzu(Y*BKcijk8- zXslet#0bL39YHpb27^FRHN*1kB3@C%xaDHi(qLQ;(?o$W3|;IHBC-_Xc|nkPo{#bo zKE_Anh#c$_BEdk1ROZS^8#kea%Upe%D^%oqqhQ*^vkV>MD%4{RGC?tA(byrDwm?jZ z#$wTmdL^!2ITo%WmnFflUSt1hboq)*k9XV}TViYtKD5ZRJ7lb1H!ZJ`CviJ2M^c5A z%=*Sgk8hr8@-S*Kr`Ol~RJX(fddmmK4eR}O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/BS3/assets/images/sort_desc.png b/media/sb-admin/vendors/BS3/assets/images/sort_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..def071ed5afd264a036f6d9e75856366fd6ad153 GIT binary patch literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/BS3/assets/images/sort_desc_disabled.png b/media/sb-admin/vendors/BS3/assets/images/sort_desc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7824973cc60fc1841b16f2cb39323cefcdc3f942 GIT binary patch literal 1045 zcmaJ=&rj1(9IuWjVlWt@h#q(rlc~7%$2P_q>KN??ODrK{#&I!}_Kh{rzS=%m2N%F- zAW={L0VZBJnRrkSCK{q1NKA||(ZmA>6Hgw9o;Z-;>)3_|u*vIt-(X0AeGY5Bm`Mgoq{>2>Xkbiu%Ds= zw2?31f^tL9kQr8eOxQDR!ltPHq-U$zG{j&MP8pU+Z@qp?149?-TQP-IYzdZ(;duv+ z&5z`@`Drbo)5+_g-xG*{39$-1bH;K7Po%550y+EF3=OIfJT20DK^2ryARz~WSeOlI zY%dFXxiA-r#^dp8fM+?DVR?q*LtI>l@B+(%+D8*_j$RaUa;D~sSR!4**cKS3TrP*p zkuY+m7%q`W_!>MPB8ZS%v9RieEVsL^AVXJk3>zEB0=}X;iDt1#lSubcFztq{<<`nX z3dVS<&2VAXPpJ-6l>b9bvw?PT4(`W$ps<^-*pSIV7tJ~vX67YQ8ELa7v~ZoP?{i~^a{W;-ZQ@ymjxh)IjDt*2O<6Dwh=q$vY$VY; zc&J{Ds~-?cjVm3>Wk@iL-`IZ|UB4pJ;~yJiON_?gLyJtiL&kbxZhV_OiPfx}%6s1@ zcXoG^ffrPJ;LQ4(`t<(ickJ1j|E0&fC8lSh8sUh5lwUg=l~QoqsK t`nTanN|e2@a&yVMdhy<'pull-left'l>r<'clearfix'>>>t<'row'<'col-sm-12'<'pull-left'i><'pull-right'p><'clearfix'>>>", + "sPaginationType": "bs_normal", + "oLanguage": { + "sLengthMenu": "Show _MENU_ Rows", + "sSearch": "Search:" + } +} ); + +/* Default class modification */ +$.extend( $.fn.dataTableExt.oStdClasses, { + "sWrapper": "dataTables_wrapper form-inline" +} ); + +/* API method to get paging information */ +$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) +{ + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": oSettings._iDisplayLength === -1 ? + 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), + "iTotalPages": oSettings._iDisplayLength === -1 ? + 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) + }; +}; + +/* Bootstrap style pagination control */ +$.extend( $.fn.dataTableExt.oPagination, { + "bs_normal": { + "fnInit": function( oSettings, nPaging, fnDraw ) { + var oLang = oSettings.oLanguage.oPaginate; + var fnClickHandler = function ( e ) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { + fnDraw( oSettings ); + } + }; + $(nPaging).append( + '' + ); + var els = $('a', nPaging); + $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); + }, + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, ien, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + for ( i=0, ien=an.length ; i'+j+'') + .insertBefore( $('li:last', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, parseInt($('a', this).text(),10)-1) ) { + fnDraw( oSettings ); + } + } ); + } + if ( oPaging.iPage === 0 ) { + $('li:first', an[i]).addClass('disabled'); + } else { + $('li:first', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('li:last', an[i]).addClass('disabled'); + } else { + $('li:last', an[i]).removeClass('disabled'); + } + } + } + }, + "bs_two_button": { + "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) + { + var oLang = oSettings.oLanguage.oPaginate; + var oClasses = oSettings.oClasses; + var fnClickHandler = function ( e ) { + if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) ) + { + fnCallbackDraw( oSettings ); + } + }; + var sAppend = ''; + $(nPaging).append( sAppend ); + var els = $('a', nPaging); + var nPrevious = els[0], + nNext = els[1]; + oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nPrevious.id = oSettings.sTableId+'_previous'; + nNext.id = oSettings.sTableId+'_next'; + nPrevious.setAttribute('aria-controls', oSettings.sTableId); + nNext.setAttribute('aria-controls', oSettings.sTableId); + } + }, + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + var oPaging = oSettings.oInstance.fnPagingInfo(); + var oClasses = oSettings.oClasses; + var an = oSettings.aanFeatures.p; + var nNode; + for ( var i=0, iLen=an.length ; i'+ + '
  •  '+oLang.sFirst+'
  • '+ + '
  •  '+oLang.sPrevious+'
  • '+ + '
  • '+oLang.sNext+' 
  • '+ + '
  • '+oLang.sLast+' 
  • '+ + '' + ); + var els = $('a', nPaging); + var nFirst = els[0], + nPrev = els[1], + nNext = els[2], + nLast = els[3]; + oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nFirst.id =oSettings.sTableId+'_first'; + nPrev.id =oSettings.sTableId+'_previous'; + nNext.id =oSettings.sTableId+'_next'; + nLast.id =oSettings.sTableId+'_last'; + } + }, + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + var oPaging = oSettings.oInstance.fnPagingInfo(); + var oClasses = oSettings.oClasses; + var an = oSettings.aanFeatures.p; + var nNode; + for ( var i=0, iLen=an.length ; i'+ + '
  • '+oLang.sFirst+'
  • '+ + '
  • '+oLang.sPrevious+'
  • '+ + '
  • '+oLang.sNext+'
  • '+ + '
  • '+oLang.sLast+'
  • '+ + '' + ); + var els = $('a', nPaging); + var nFirst = els[0], + nPrev = els[1], + nNext = els[2], + nLast = els[3]; + oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nFirst.id =oSettings.sTableId+'_first'; + nPrev.id =oSettings.sTableId+'_previous'; + nNext.id =oSettings.sTableId+'_next'; + nLast.id =oSettings.sTableId+'_last'; + } + }, + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + var oPaging = oSettings.oInstance.fnPagingInfo(); + var iPageCount = $.fn.dataTableExt.oPagination.iFullNumbersShowPages; + var iPageCountHalf = Math.floor(iPageCount / 2); + var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength); + var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1; + var sList = ""; + var iStartButton, iEndButton, i, iLen; + var oClasses = oSettings.oClasses; + var anButtons, anStatic, nPaginateList, nNode; + var an = oSettings.aanFeatures.p; + var fnBind = function (j) { + oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) { + if( oSettings.oApi._fnPageChange( oSettings, e.data.page ) ){ + fnCallbackDraw( oSettings ); + } + e.preventDefault(); + } ); + }; + if ( oSettings._iDisplayLength === -1 ) + { + iStartButton = 1; + iEndButton = 1; + iCurrentPage = 1; + } + else if (iPages < iPageCount) + { + iStartButton = 1; + iEndButton = iPages; + } + else if (iCurrentPage <= iPageCountHalf) + { + iStartButton = 1; + iEndButton = iPageCount; + } + else if (iCurrentPage >= (iPages - iPageCountHalf)) + { + iStartButton = iPages - iPageCount + 1; + iEndButton = iPages; + } + else + { + iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; + iEndButton = iStartButton + iPageCount - 1; + } + for ( i=iStartButton ; i<=iEndButton ; i++ ) + { + sList += (iCurrentPage !== i) ? + '
  • '+oSettings.fnFormatNumber(i)+'
  • ' : + '
  • '+oSettings.fnFormatNumber(i)+'
  • '; + } + for ( i=0, iLen=an.length ; i<'span6'f>r>t<'row'<'span6'i><'span6'p>>", + //"sPaginationType": "bootstrap", + "oLanguage": { + "sLengthMenu": "_MENU_ records per page" + } + } ); + + $('.dataTables_length select').addClass('form-control input-sm'); + $('.dataTables_filter input').addClass('form-control input-sm').css('display', 'inline-block').css('width', '206px'); + + }); \ No newline at end of file diff --git a/media/sb-admin/vendors/BS3/examples/css/datatables.css b/media/sb-admin/vendors/BS3/examples/css/datatables.css new file mode 100644 index 0000000..44e05bb --- /dev/null +++ b/media/sb-admin/vendors/BS3/examples/css/datatables.css @@ -0,0 +1,177 @@ +div.dataTables_length label { + float: left; + text-align: left; +} + +div.dataTables_length select { + width: 75px; +} + +div.dataTables_filter label { + float: right; +} + +div.dataTables_info { + padding-top: 26px; +} + +div.dataTables_paginate { + float: right; + margin: 0; +} + +table.table { + clear: both; + margin-bottom: 6px !important; + max-width: none !important; +} + +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead .sorting { background: url('../images/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } + +table.dataTable th:active { + outline: none; +} + +/* Scrolling */ +div.dataTables_scrollHead table { + margin-bottom: 0 !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.dataTables_scrollHead table thead tr:last-child th:first-child, +div.dataTables_scrollHead table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody tbody tr:first-child th, +div.dataTables_scrollBody tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + border-top: none; +} + + + + +/* + * TableTools styles + */ +.table tbody tr.active td, +.table tbody tr.active th { + background-color: #08C; + color: white; +} + +.table tbody tr.active:hover td, +.table tbody tr.active:hover th { + background-color: #0075b0 !important; +} + +.table-striped tbody tr.active:nth-child(odd) td, +.table-striped tbody tr.active:nth-child(odd) th { + background-color: #017ebc; +} + +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +div.DTTT .btn { + color: #333 !important; + font-size: 12px; +} + +div.DTTT .btn:hover { + text-decoration: none !important; +} + + +ul.DTTT_dropdown.dropdown-menu a { + color: #333 !important; /* needed only when demo_page.css is included */ +} + +ul.DTTT_dropdown.dropdown-menu li:hover a { + background-color: #0088cc; + color: white !important; +} + +/* TableTools information display */ +div.DTTT_print_info.modal { + height: 150px; + margin-top: -75px; + text-align: center; +} + +div.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +div.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + + + +/* + * FixedColumns styles + */ +div.DTFC_LeftHeadWrapper table, +div.DTFC_LeftFootWrapper table, +table.DTFC_Cloned tr.even { + background-color: white; +} + +div.DTFC_LeftHeadWrapper table { + margin-bottom: 0 !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftBodyWrapper table { + border-top: none; + margin-bottom: 0 !important; +} + +div.DTFC_LeftBodyWrapper tbody tr:first-child th, +div.DTFC_LeftBodyWrapper tbody tr:first-child td { + border-top: none; +} + +div.DTFC_LeftFootWrapper table { + border-top: none; +} \ No newline at end of file diff --git a/media/sb-admin/vendors/BS3/examples/images/sort_asc.png b/media/sb-admin/vendors/BS3/examples/images/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc GIT binary patch literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/BS3/examples/images/sort_asc_disabled.png b/media/sb-admin/vendors/BS3/examples/images/sort_asc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4e144cf0b1f786a9248a2998311e8109998d8a2d GIT binary patch literal 1050 zcmaJ=O-K|`93R^(@goeAz6hRU)S-61)?IaU({*Myml|8vh4x}JJM&z}b>>Yo&vx~s z*1>{0Sk$FMM28~iln?~vp$ zL+z1TilQ3g{c@7*P2Q^6L;g-8^nq-LaWstw(J;=d4x}PF%0Lh|)htXxRiC)>9(Gfd zk2X?ioL0_@8ZsHx!!QNYCTxo8?kU)+mV+2%VAin0^v_psXkh4J`eIPw6kCELM*pM( z2PX$o+GI}a)ajlxpt~Rv0TW^s6wEQp6$@dys4J4Qcg@nE2*J59y%|(mNdO5s5Cj>{ zuW=y`gm{Jzw6(Xlp9TWQb1WyYyx`~C#eg7k94LJ>@#g5mVp5Kkd=V>5k6>(zESt~g znS6jjPL}06J3BoMLGTlV-<`0qTJT$LYgs{tuI3mvHjo88MKy!QahN8NZl++`Te6m0 zDibLfTTpG5XE-mVGEhip#w2PB)JKi0I-PD8)*(7w)xTBHA4Yzu(Y*BKcijk8- zXslet#0bL39YHpb27^FRHN*1kB3@C%xaDHi(qLQ;(?o$W3|;IHBC-_Xc|nkPo{#bo zKE_Anh#c$_BEdk1ROZS^8#kea%Upe%D^%oqqhQ*^vkV>MD%4{RGC?tA(byrDwm?jZ z#$wTmdL^!2ITo%WmnFflUSt1hboq)*k9XV}TViYtKD5ZRJ7lb1H!ZJ`CviJ2M^c5A z%=*Sgk8hr8@-S*Kr`Ol~RJX(fddmmK4eR}O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/BS3/examples/images/sort_desc.png b/media/sb-admin/vendors/BS3/examples/images/sort_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..def071ed5afd264a036f6d9e75856366fd6ad153 GIT binary patch literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/BS3/examples/images/sort_desc_disabled.png b/media/sb-admin/vendors/BS3/examples/images/sort_desc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7824973cc60fc1841b16f2cb39323cefcdc3f942 GIT binary patch literal 1045 zcmaJ=&rj1(9IuWjVlWt@h#q(rlc~7%$2P_q>KN??ODrK{#&I!}_Kh{rzS=%m2N%F- zAW={L0VZBJnRrkSCK{q1NKA||(ZmA>6Hgw9o;Z-;>)3_|u*vIt-(X0AeGY5Bm`Mgoq{>2>Xkbiu%Ds= zw2?31f^tL9kQr8eOxQDR!ltPHq-U$zG{j&MP8pU+Z@qp?149?-TQP-IYzdZ(;duv+ z&5z`@`Drbo)5+_g-xG*{39$-1bH;K7Po%550y+EF3=OIfJT20DK^2ryARz~WSeOlI zY%dFXxiA-r#^dp8fM+?DVR?q*LtI>l@B+(%+D8*_j$RaUa;D~sSR!4**cKS3TrP*p zkuY+m7%q`W_!>MPB8ZS%v9RieEVsL^AVXJk3>zEB0=}X;iDt1#lSubcFztq{<<`nX z3dVS<&2VAXPpJ-6l>b9bvw?PT4(`W$ps<^-*pSIV7tJ~vX67YQ8ELa7v~ZoP?{i~^a{W;-ZQ@ymjxh)IjDt*2O<6Dwh=q$vY$VY; zc&J{Ds~-?cjVm3>Wk@iL-`IZ|UB4pJ;~yJiON_?gLyJtiL&kbxZhV_OiPfx}%6s1@ zcXoG^ffrPJ;LQ4(`t<(ickJ1j|E0&fC8lSh8sUh5lwUg=l~QoqsK t`nTanN|e2@a&yVMdhy<'pull-left'l>r<'clearfix'>>>t<'row'<'col-sm-12'<'pull-left'i><'pull-right'p><'clearfix'>>>", + "sPaginationType": "bs_normal", + "oLanguage": { + "sLengthMenu": "Show _MENU_ Rows", + "sSearch": "" + } +} ); + +/* Default class modification */ +$.extend( $.fn.dataTableExt.oStdClasses, { + "sWrapper": "dataTables_wrapper form-inline" +} ); + +/* API method to get paging information */ +$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) +{ + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": oSettings._iDisplayLength === -1 ? + 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), + "iTotalPages": oSettings._iDisplayLength === -1 ? + 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) + }; +}; + +/* Bootstrap style pagination control */ +$.extend( $.fn.dataTableExt.oPagination, { + "bs_normal": { + "fnInit": function( oSettings, nPaging, fnDraw ) { + var oLang = oSettings.oLanguage.oPaginate; + var fnClickHandler = function ( e ) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { + fnDraw( oSettings ); + } + }; + $(nPaging).append( + '' + ); + var els = $('a', nPaging); + $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); + }, + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, ien, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + for ( i=0, ien=an.length ; i'+j+'') + .insertBefore( $('li:last', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, parseInt($('a', this).text(),10)-1) ) { + fnDraw( oSettings ); + } + } ); + } + if ( oPaging.iPage === 0 ) { + $('li:first', an[i]).addClass('disabled'); + } else { + $('li:first', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('li:last', an[i]).addClass('disabled'); + } else { + $('li:last', an[i]).removeClass('disabled'); + } + } + } + }, + "bs_two_button": { + "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) + { + var oLang = oSettings.oLanguage.oPaginate; + var oClasses = oSettings.oClasses; + var fnClickHandler = function ( e ) { + if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) ) + { + fnCallbackDraw( oSettings ); + } + }; + var sAppend = ''; + $(nPaging).append( sAppend ); + var els = $('a', nPaging); + var nPrevious = els[0], + nNext = els[1]; + oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nPrevious.id = oSettings.sTableId+'_previous'; + nNext.id = oSettings.sTableId+'_next'; + nPrevious.setAttribute('aria-controls', oSettings.sTableId); + nNext.setAttribute('aria-controls', oSettings.sTableId); + } + }, + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + var oPaging = oSettings.oInstance.fnPagingInfo(); + var oClasses = oSettings.oClasses; + var an = oSettings.aanFeatures.p; + var nNode; + for ( var i=0, iLen=an.length ; i'+ + '
  •  '+oLang.sFirst+'
  • '+ + '
  •  '+oLang.sPrevious+'
  • '+ + '
  • '+oLang.sNext+' 
  • '+ + '
  • '+oLang.sLast+' 
  • '+ + '' + ); + var els = $('a', nPaging); + var nFirst = els[0], + nPrev = els[1], + nNext = els[2], + nLast = els[3]; + oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nFirst.id =oSettings.sTableId+'_first'; + nPrev.id =oSettings.sTableId+'_previous'; + nNext.id =oSettings.sTableId+'_next'; + nLast.id =oSettings.sTableId+'_last'; + } + }, + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + var oPaging = oSettings.oInstance.fnPagingInfo(); + var oClasses = oSettings.oClasses; + var an = oSettings.aanFeatures.p; + var nNode; + for ( var i=0, iLen=an.length ; i'+ + '
  • '+oLang.sFirst+'
  • '+ + '
  • '+oLang.sPrevious+'
  • '+ + '
  • '+oLang.sNext+'
  • '+ + '
  • '+oLang.sLast+'
  • '+ + '' + ); + var els = $('a', nPaging); + var nFirst = els[0], + nPrev = els[1], + nNext = els[2], + nLast = els[3]; + oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nFirst.id =oSettings.sTableId+'_first'; + nPrev.id =oSettings.sTableId+'_previous'; + nNext.id =oSettings.sTableId+'_next'; + nLast.id =oSettings.sTableId+'_last'; + } + }, + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + var oPaging = oSettings.oInstance.fnPagingInfo(); + var iPageCount = $.fn.dataTableExt.oPagination.iFullNumbersShowPages; + var iPageCountHalf = Math.floor(iPageCount / 2); + var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength); + var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1; + var sList = ""; + var iStartButton, iEndButton, i, iLen; + var oClasses = oSettings.oClasses; + var anButtons, anStatic, nPaginateList, nNode; + var an = oSettings.aanFeatures.p; + var fnBind = function (j) { + oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) { + if ( oSettings.oApi._fnPageChange( oSettings, e.data.page ) ) { + fnCallbackDraw( oSettings ); + } + e.preventDefault(); + } ); + }; + if ( oSettings._iDisplayLength === -1 ) + { + iStartButton = 1; + iEndButton = 1; + iCurrentPage = 1; + } + else if (iPages < iPageCount) + { + iStartButton = 1; + iEndButton = iPages; + } + else if (iCurrentPage <= iPageCountHalf) + { + iStartButton = 1; + iEndButton = iPageCount; + } + else if (iCurrentPage >= (iPages - iPageCountHalf)) + { + iStartButton = iPages - iPageCount + 1; + iEndButton = iPages; + } + else + { + iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; + iEndButton = iStartButton + iPageCount - 1; + } + for ( i=iStartButton ; i<=iEndButton ; i++ ) + { + sList += (iCurrentPage !== i) ? + '
  • '+oSettings.fnFormatNumber(i)+'
  • ' : + '
  • '+oSettings.fnFormatNumber(i)+'
  • '; + } + for ( i=0, iLen=an.length ; i + + + + + + + Datatables + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    Trident + Internet + Explorer + 4.0 + Win 95+4X
    TridentInternet + Explorer 5.0Win 95+5C
    TridentInternet + Explorer 5.5Win 95+5.5A
    TridentInternet + Explorer 6Win 98+6A
    TridentInternet Explorer 7Win XP SP2+7A
    TridentAOL browser (AOL desktop)Win XP6A
    GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
    GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
    GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
    GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
    GeckoCamino 1.0OSX.2+1.8A
    GeckoCamino 1.5OSX.3+1.8A
    GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
    GeckoNetscape Browser 8Win 98SE+1.7A
    GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
    GeckoMozilla 1.0Win 95+ / OSX.1+1A
    GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
    GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
    GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
    GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
    GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
    GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
    GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
    GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
    GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
    GeckoEpiphany 2.20Gnome1.8A
    WebkitSafari 1.2OSX.3125.5A
    WebkitSafari 1.3OSX.3312.8A
    WebkitSafari 2.0OSX.4+419.3A
    WebkitSafari 3.0OSX.4+522.1A
    WebkitOmniWeb 5.5OSX.4+420A
    WebkitiPod Touch / iPhoneiPod420.1A
    WebkitS60S60413A
    PrestoOpera 7.0Win 95+ / OSX.1+-A
    PrestoOpera 7.5Win 95+ / OSX.2+-A
    PrestoOpera 8.0Win 95+ / OSX.2+-A
    PrestoOpera 8.5Win 95+ / OSX.2+-A
    PrestoOpera 9.0Win 95+ / OSX.3+-A
    PrestoOpera 9.2Win 88+ / OSX.3+-A
    PrestoOpera 9.5Win 88+ / OSX.3+-A
    PrestoOpera for WiiWii-A
    PrestoNokia N800N800-A
    PrestoNintendo DS browserNintendo DS8.5C/A1
    KHTMLKonqureror 3.1KDE 3.13.1C
    KHTMLKonqureror 3.3KDE 3.33.3A
    KHTMLKonqureror 3.5KDE 3.53.5A
    TasmanInternet Explorer 4.5Mac OS 8-9-X
    TasmanInternet Explorer 5.1Mac OS 7.6-91C
    TasmanInternet Explorer 5.2Mac OS 8-X1C
    MiscNetFront 3.1Embedded devices-C
    MiscNetFront 3.4Embedded devices-A
    MiscDillo 0.8Embedded devices-X
    MiscLinksText only-X
    MiscLynxText only-X
    MiscIE MobileWindows Mobile 6-C
    MiscPSP browserPSP-C
    Other browsersAll others--U
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    +
    +
    + + + + + + + \ No newline at end of file diff --git a/media/sb-admin/vendors/BS3/examples/pagination_full.html b/media/sb-admin/vendors/BS3/examples/pagination_full.html new file mode 100644 index 0000000..7025adb --- /dev/null +++ b/media/sb-admin/vendors/BS3/examples/pagination_full.html @@ -0,0 +1,467 @@ + + + + + + + + Datatables + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    Trident + Internet + Explorer + 4.0 + Win 95+4X
    TridentInternet + Explorer 5.0Win 95+5C
    TridentInternet + Explorer 5.5Win 95+5.5A
    TridentInternet + Explorer 6Win 98+6A
    TridentInternet Explorer 7Win XP SP2+7A
    TridentAOL browser (AOL desktop)Win XP6A
    GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
    GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
    GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
    GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
    GeckoCamino 1.0OSX.2+1.8A
    GeckoCamino 1.5OSX.3+1.8A
    GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
    GeckoNetscape Browser 8Win 98SE+1.7A
    GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
    GeckoMozilla 1.0Win 95+ / OSX.1+1A
    GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
    GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
    GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
    GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
    GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
    GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
    GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
    GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
    GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
    GeckoEpiphany 2.20Gnome1.8A
    WebkitSafari 1.2OSX.3125.5A
    WebkitSafari 1.3OSX.3312.8A
    WebkitSafari 2.0OSX.4+419.3A
    WebkitSafari 3.0OSX.4+522.1A
    WebkitOmniWeb 5.5OSX.4+420A
    WebkitiPod Touch / iPhoneiPod420.1A
    WebkitS60S60413A
    PrestoOpera 7.0Win 95+ / OSX.1+-A
    PrestoOpera 7.5Win 95+ / OSX.2+-A
    PrestoOpera 8.0Win 95+ / OSX.2+-A
    PrestoOpera 8.5Win 95+ / OSX.2+-A
    PrestoOpera 9.0Win 95+ / OSX.3+-A
    PrestoOpera 9.2Win 88+ / OSX.3+-A
    PrestoOpera 9.5Win 88+ / OSX.3+-A
    PrestoOpera for WiiWii-A
    PrestoNokia N800N800-A
    PrestoNintendo DS browserNintendo DS8.5C/A1
    KHTMLKonqureror 3.1KDE 3.13.1C
    KHTMLKonqureror 3.3KDE 3.33.3A
    KHTMLKonqureror 3.5KDE 3.53.5A
    TasmanInternet Explorer 4.5Mac OS 8-9-X
    TasmanInternet Explorer 5.1Mac OS 7.6-91C
    TasmanInternet Explorer 5.2Mac OS 8-X1C
    MiscNetFront 3.1Embedded devices-C
    MiscNetFront 3.4Embedded devices-A
    MiscDillo 0.8Embedded devices-X
    MiscLinksText only-X
    MiscLynxText only-X
    MiscIE MobileWindows Mobile 6-C
    MiscPSP browserPSP-C
    Other browsersAll others--U
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    +
    +
    + + + + + + + \ No newline at end of file diff --git a/media/sb-admin/vendors/BS3/examples/pagination_normal.html b/media/sb-admin/vendors/BS3/examples/pagination_normal.html new file mode 100644 index 0000000..a09f7d5 --- /dev/null +++ b/media/sb-admin/vendors/BS3/examples/pagination_normal.html @@ -0,0 +1,470 @@ + + + + + + + + Datatables + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    Trident + Internet + Explorer + 4.0 + Win 95+4X
    TridentInternet + Explorer 5.0Win 95+5C
    TridentInternet + Explorer 5.5Win 95+5.5A
    TridentInternet + Explorer 6Win 98+6A
    TridentInternet Explorer 7Win XP SP2+7A
    TridentAOL browser (AOL desktop)Win XP6A
    GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
    GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
    GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
    GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
    GeckoCamino 1.0OSX.2+1.8A
    GeckoCamino 1.5OSX.3+1.8A
    GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
    GeckoNetscape Browser 8Win 98SE+1.7A
    GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
    GeckoMozilla 1.0Win 95+ / OSX.1+1A
    GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
    GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
    GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
    GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
    GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
    GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
    GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
    GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
    GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
    GeckoEpiphany 2.20Gnome1.8A
    WebkitSafari 1.2OSX.3125.5A
    WebkitSafari 1.3OSX.3312.8A
    WebkitSafari 2.0OSX.4+419.3A
    WebkitSafari 3.0OSX.4+522.1A
    WebkitOmniWeb 5.5OSX.4+420A
    WebkitiPod Touch / iPhoneiPod420.1A
    WebkitS60S60413A
    PrestoOpera 7.0Win 95+ / OSX.1+-A
    PrestoOpera 7.5Win 95+ / OSX.2+-A
    PrestoOpera 8.0Win 95+ / OSX.2+-A
    PrestoOpera 8.5Win 95+ / OSX.2+-A
    PrestoOpera 9.0Win 95+ / OSX.3+-A
    PrestoOpera 9.2Win 88+ / OSX.3+-A
    PrestoOpera 9.5Win 88+ / OSX.3+-A
    PrestoOpera for WiiWii-A
    PrestoNokia N800N800-A
    PrestoNintendo DS browserNintendo DS8.5C/A1
    KHTMLKonqureror 3.1KDE 3.13.1C
    KHTMLKonqureror 3.3KDE 3.33.3A
    KHTMLKonqureror 3.5KDE 3.53.5A
    TasmanInternet Explorer 4.5Mac OS 8-9-X
    TasmanInternet Explorer 5.1Mac OS 7.6-91C
    TasmanInternet Explorer 5.2Mac OS 8-X1C
    MiscNetFront 3.1Embedded devices-C
    MiscNetFront 3.4Embedded devices-A
    MiscDillo 0.8Embedded devices-X
    MiscLinksText only-X
    MiscLynxText only-X
    MiscIE MobileWindows Mobile 6-C
    MiscPSP browserPSP-C
    Other browsersAll others--U
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    +
    +
    + + + + + + + \ No newline at end of file diff --git a/media/sb-admin/vendors/BS3/examples/pagination_two_buttons.html b/media/sb-admin/vendors/BS3/examples/pagination_two_buttons.html new file mode 100644 index 0000000..9da3c1d --- /dev/null +++ b/media/sb-admin/vendors/BS3/examples/pagination_two_buttons.html @@ -0,0 +1,467 @@ + + + + + + + + Datatables + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    Trident + Internet + Explorer + 4.0 + Win 95+4X
    TridentInternet + Explorer 5.0Win 95+5C
    TridentInternet + Explorer 5.5Win 95+5.5A
    TridentInternet + Explorer 6Win 98+6A
    TridentInternet Explorer 7Win XP SP2+7A
    TridentAOL browser (AOL desktop)Win XP6A
    GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
    GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
    GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
    GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
    GeckoCamino 1.0OSX.2+1.8A
    GeckoCamino 1.5OSX.3+1.8A
    GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
    GeckoNetscape Browser 8Win 98SE+1.7A
    GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
    GeckoMozilla 1.0Win 95+ / OSX.1+1A
    GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
    GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
    GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
    GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
    GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
    GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
    GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
    GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
    GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
    GeckoEpiphany 2.20Gnome1.8A
    WebkitSafari 1.2OSX.3125.5A
    WebkitSafari 1.3OSX.3312.8A
    WebkitSafari 2.0OSX.4+419.3A
    WebkitSafari 3.0OSX.4+522.1A
    WebkitOmniWeb 5.5OSX.4+420A
    WebkitiPod Touch / iPhoneiPod420.1A
    WebkitS60S60413A
    PrestoOpera 7.0Win 95+ / OSX.1+-A
    PrestoOpera 7.5Win 95+ / OSX.2+-A
    PrestoOpera 8.0Win 95+ / OSX.2+-A
    PrestoOpera 8.5Win 95+ / OSX.2+-A
    PrestoOpera 9.0Win 95+ / OSX.3+-A
    PrestoOpera 9.2Win 88+ / OSX.3+-A
    PrestoOpera 9.5Win 88+ / OSX.3+-A
    PrestoOpera for WiiWii-A
    PrestoNokia N800N800-A
    PrestoNintendo DS browserNintendo DS8.5C/A1
    KHTMLKonqureror 3.1KDE 3.13.1C
    KHTMLKonqureror 3.3KDE 3.33.3A
    KHTMLKonqureror 3.5KDE 3.53.5A
    TasmanInternet Explorer 4.5Mac OS 8-9-X
    TasmanInternet Explorer 5.1Mac OS 7.6-91C
    TasmanInternet Explorer 5.2Mac OS 8-X1C
    MiscNetFront 3.1Embedded devices-C
    MiscNetFront 3.4Embedded devices-A
    MiscDillo 0.8Embedded devices-X
    MiscLinksText only-X
    MiscLynxText only-X
    MiscIE MobileWindows Mobile 6-C
    MiscPSP browserPSP-C
    Other browsersAll others--U
    Rendering engineBrowserPlatform(s)Engine versionCSS grade
    +
    +
    + + + + + + + \ No newline at end of file diff --git a/media/sb-admin/vendors/BS3/index.html b/media/sb-admin/vendors/BS3/index.html new file mode 100644 index 0000000..8bc55a2 --- /dev/null +++ b/media/sb-admin/vendors/BS3/index.html @@ -0,0 +1,84 @@ + + + + + + + + Datatables + + + + +
    +
    +

    Bootstrap3 plugin for datatable

    +

    This plugin adds tweaks for datatable UI to render correctly.

    +
    +
    +
    +
    +
    +
    Files & Code
    +
    + <link rel="stylesheet" href="css/datatables.css">
    + <script src="js/datatables.js"></script>

    + + // Html code
    + <table class="datatable table table-striped table-bordered">
    + </table>

    + // Javascript code
    + $('.datatable').dataTable();
    + $('.datatable').each(function(){
    +     var datatable = $(this);
    +     var search_input = datatable.closest('.dataTables_wrapper').find('div[id$=_filter] input');
    +     search_input.attr('placeholder', 'Search');
    +     search_input.addClass('form-control input-sm');
    +     var length_sel = datatable.closest('.dataTables_wrapper').find('div[id$=_length] select');
    +     length_sel.addClass('form-control input-sm');
    + });
    +
    +
    +
    +
    Pagination types
    +
    +
    + + $('.datatable').dataTable({
    + "sPaginationType": "bs_normal"
    + }); +
    +

    View Default »

    +
    +
    + + $('.datatable').dataTable({
    + "sPaginationType": "bs_two_button"
    + }); +
    +

    View Two buttons »

    +
    +
    + + $('.datatable').dataTable({
    + "sPaginationType": "bs_four_button"
    + }); +
    +

    View Four buttons »

    +
    +
    + + $('.datatable').dataTable({
    + "sPaginationType": "bs_full"
    + }); +
    +

    View Complete »

    +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/media/sb-admin/vendors/datatables/css/demo_page.css b/media/sb-admin/vendors/datatables/css/demo_page.css new file mode 100644 index 0000000..ba5b2a6 --- /dev/null +++ b/media/sb-admin/vendors/datatables/css/demo_page.css @@ -0,0 +1,122 @@ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * General page setup + */ +#dt_example { + font: 80%/1.45em "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; + margin: 0; + padding: 0; + color: #333; + background-color: #fff; +} + + +#dt_example #container { + width: 800px; + margin: 30px auto; + padding: 0; +} + + +#dt_example #footer { + margin: 50px auto 0 auto; + padding: 0; +} + +#dt_example #demo { + margin: 30px auto 0 auto; +} + +#dt_example .demo_jui { + margin: 30px auto 0 auto; +} + +#dt_example .big { + font-size: 1.3em; + font-weight: bold; + line-height: 1.6em; + color: #4E6CA3; +} + +#dt_example .spacer { + height: 20px; + clear: both; +} + +#dt_example .clear { + clear: both; +} + +#dt_example pre { + padding: 15px; + background-color: #F5F5F5; + border: 1px solid #CCCCCC; +} + +#dt_example h1 { + margin-top: 2em; + font-size: 1.3em; + font-weight: normal; + line-height: 1.6em; + color: #4E6CA3; + border-bottom: 1px solid #B0BED9; + clear: both; +} + +#dt_example h2 { + font-size: 1.2em; + font-weight: normal; + line-height: 1.6em; + color: #4E6CA3; + clear: both; +} + +#dt_example a { + color: #0063DC; + text-decoration: none; +} + +#dt_example a:hover { + text-decoration: underline; +} + +#dt_example ul { + color: #4E6CA3; +} + +.css_right { + float: right; +} + +.css_left { + float: left; +} + +.demo_links { + float: left; + width: 50%; + margin-bottom: 1em; +} + +#demo_info { + padding: 5px; + border: 1px solid #B0BED9; + height: 100px; + width: 100%; + overflow: auto; +} + +#dt_example code { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 2px 4px !important; + white-space: nowrap; + font-size: 0.9em; + + color: #D14; + background-color: #F7F7F9; + + border: 1px solid #E1E1E8; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} diff --git a/media/sb-admin/vendors/datatables/css/demo_table.css b/media/sb-admin/vendors/datatables/css/demo_table.css new file mode 100644 index 0000000..12f352d --- /dev/null +++ b/media/sb-admin/vendors/datatables/css/demo_table.css @@ -0,0 +1,577 @@ +/* + * File: demo_table.css + * CVS: $Id$ + * Description: CSS descriptions for DataTables demo pages + * Author: Allan Jardine + * Created: Tue May 12 06:47:22 BST 2009 + * Modified: $Date$ by $Author$ + * Language: CSS + * Project: DataTables + * + * Copyright 2009 Allan Jardine. All Rights Reserved. + * + * *************************************************************************** + * DESCRIPTION + * + * The styles given here are suitable for the demos that are used with the standard DataTables + * distribution (see www.datatables.net). You will most likely wish to modify these styles to + * meet the layout requirements of your site. + * + * Common issues: + * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is + * no conflict between the two pagination types. If you want to use full_numbers pagination + * ensure that you either have "example_alt_pagination" as a body class name, or better yet, + * modify that selector. + * Note that the path used for Images is relative. All images are by default located in + * ../images/ - relative to this CSS file. + */ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables features + */ + +.dataTables_wrapper { + position: relative; + clear: both; + zoom: 1; /* Feeling sorry for IE */ +} + +.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 250px; + height: 30px; + margin-left: -125px; + margin-top: -15px; + padding: 14px 0 2px 0; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 14px; + background-color: white; +} + +.dataTables_length { + width: 40%; + float: left; +} + +.dataTables_filter { + width: 50%; + float: right; + text-align: right; +} + +.dataTables_info { + width: 60%; + float: left; +} + +.dataTables_paginate { + float: right; + text-align: right; +} + +/* Pagination nested */ +.paginate_disabled_previous, .paginate_enabled_previous, +.paginate_disabled_next, .paginate_enabled_next { + height: 19px; + float: left; + cursor: pointer; + *cursor: hand; + color: #111 !important; +} +.paginate_disabled_previous:hover, .paginate_enabled_previous:hover, +.paginate_disabled_next:hover, .paginate_enabled_next:hover { + text-decoration: none !important; +} +.paginate_disabled_previous:active, .paginate_enabled_previous:active, +.paginate_disabled_next:active, .paginate_enabled_next:active { + outline: none; +} + +.paginate_disabled_previous, +.paginate_disabled_next { + color: #666 !important; +} +.paginate_disabled_previous, .paginate_enabled_previous { + padding-left: 23px; +} +.paginate_disabled_next, .paginate_enabled_next { + padding-right: 23px; + margin-left: 10px; +} + +.paginate_disabled_previous { + background: url('../images/back_disabled.png') no-repeat top left; +} + +.paginate_enabled_previous { + background: url('../images/back_enabled.png') no-repeat top left; +} +.paginate_enabled_previous:hover { + background: url('../images/back_enabled_hover.png') no-repeat top left; +} + +.paginate_disabled_next { + background: url('../images/forward_disabled.png') no-repeat top right; +} + +.paginate_enabled_next { + background: url('../images/forward_enabled.png') no-repeat top right; +} +.paginate_enabled_next:hover { + background: url('../images/forward_enabled_hover.png') no-repeat top right; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables display + */ +table.display { + margin: 0 auto; + clear: both; + width: 100%; + + /* Note Firefox 3.5 and before have a bug with border-collapse + * ( https://bugzilla.mozilla.org/show%5Fbug.cgi?id=155955 ) + * border-spacing: 0; is one possible option. Conditional-css.com is + * useful for this kind of thing + * + * Further note IE 6/7 has problems when calculating widths with border width. + * It subtracts one px relative to the other browsers from the first column, and + * adds one to the end... + * + * If you want that effect I'd suggest setting a border-top/left on th/td's and + * then filling in the gaps with other borders. + */ +} + +table.display thead th { + padding: 3px 18px 3px 10px; + border-bottom: 1px solid black; + font-weight: bold; + cursor: pointer; + * cursor: hand; +} + +table.display tfoot th { + padding: 3px 18px 3px 10px; + border-top: 1px solid black; + font-weight: bold; +} + +table.display tr.heading2 td { + border-bottom: 1px solid #aaa; +} + +table.display td { + padding: 3px 10px; +} + +table.display td.center { + text-align: center; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables sorting + */ + +.sorting_asc { + background: url('../images/sort_asc.png') no-repeat center right; +} + +.sorting_desc { + background: url('../images/sort_desc.png') no-repeat center right; +} + +.sorting { + background: url('../images/sort_both.png') no-repeat center right; +} + +.sorting_asc_disabled { + background: url('../images/sort_asc_disabled.png') no-repeat center right; +} + +.sorting_desc_disabled { + background: url('../images/sort_desc_disabled.png') no-repeat center right; +} + +table.display thead th:active, +table.display thead td:active { + outline: none; +} + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables row classes + */ +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + +table.display tr.odd.gradeC { + background-color: #ddddff; +} + +table.display tr.even.gradeC { + background-color: #eeeeff; +} + +table.display tr.odd.gradeX { + background-color: #ffdddd; +} + +table.display tr.even.gradeX { + background-color: #ffeeee; +} + +table.display tr.odd.gradeU { + background-color: #ddd; +} + +table.display tr.even.gradeU { + background-color: #eee; +} + + +tr.odd { + background-color: #E2E4FF; +} + +tr.even { + background-color: white; +} + + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Misc + */ +.dataTables_scroll { + clear: both; +} + +.dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; +} + +.top, .bottom { + padding: 15px; + background-color: #F5F5F5; + border: 1px solid #CCCCCC; +} + +.top .dataTables_info { + float: none; +} + +.clear { + clear: both; +} + +.dataTables_empty { + text-align: center; +} + +tfoot input { + margin: 0.5em 0; + width: 100%; + color: #444; +} + +tfoot input.search_init { + color: #999; +} + +td.group { + background-color: #d1cfd0; + border-bottom: 2px solid #A19B9E; + border-top: 2px solid #A19B9E; +} + +td.details { + background-color: #d1cfd0; + border: 2px solid #A19B9E; +} + + +.example_alt_pagination div.dataTables_info { + width: 40%; +} + +.paging_full_numbers { + width: 400px; + height: 22px; + line-height: 22px; +} + +.paging_full_numbers a:active { + outline: none +} + +.paging_full_numbers a:hover { + text-decoration: none; +} + +.paging_full_numbers a.paginate_button, + .paging_full_numbers a.paginate_active { + border: 1px solid #aaa; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + padding: 2px 5px; + margin: 0 3px; + cursor: pointer; + *cursor: hand; + color: #333 !important; +} + +.paging_full_numbers a.paginate_button { + background-color: #ddd; +} + +.paging_full_numbers a.paginate_button:hover { + background-color: #ccc; + text-decoration: none !important; +} + +.paging_full_numbers a.paginate_active { + background-color: #99B3FF; +} + +table.display tr.even.row_selected td { + background-color: #B0BED9; +} + +table.display tr.odd.row_selected td { + background-color: #9FAFD1; +} + + +/* + * Sorting classes for columns + */ +/* For the standard odd/even */ +tr.odd td.sorting_1 { + background-color: #D3D6FF; +} + +tr.odd td.sorting_2 { + background-color: #DADCFF; +} + +tr.odd td.sorting_3 { + background-color: #E0E2FF; +} + +tr.even td.sorting_1 { + background-color: #EAEBFF; +} + +tr.even td.sorting_2 { + background-color: #F2F3FF; +} + +tr.even td.sorting_3 { + background-color: #F9F9FF; +} + + +/* For the Conditional-CSS grading rows */ +/* + Colour calculations (based off the main row colours) + Level 1: + dd > c4 + ee > d5 + Level 2: + dd > d1 + ee > e2 + */ +tr.odd.gradeA td.sorting_1 { + background-color: #c4ffc4; +} + +tr.odd.gradeA td.sorting_2 { + background-color: #d1ffd1; +} + +tr.odd.gradeA td.sorting_3 { + background-color: #d1ffd1; +} + +tr.even.gradeA td.sorting_1 { + background-color: #d5ffd5; +} + +tr.even.gradeA td.sorting_2 { + background-color: #e2ffe2; +} + +tr.even.gradeA td.sorting_3 { + background-color: #e2ffe2; +} + +tr.odd.gradeC td.sorting_1 { + background-color: #c4c4ff; +} + +tr.odd.gradeC td.sorting_2 { + background-color: #d1d1ff; +} + +tr.odd.gradeC td.sorting_3 { + background-color: #d1d1ff; +} + +tr.even.gradeC td.sorting_1 { + background-color: #d5d5ff; +} + +tr.even.gradeC td.sorting_2 { + background-color: #e2e2ff; +} + +tr.even.gradeC td.sorting_3 { + background-color: #e2e2ff; +} + +tr.odd.gradeX td.sorting_1 { + background-color: #ffc4c4; +} + +tr.odd.gradeX td.sorting_2 { + background-color: #ffd1d1; +} + +tr.odd.gradeX td.sorting_3 { + background-color: #ffd1d1; +} + +tr.even.gradeX td.sorting_1 { + background-color: #ffd5d5; +} + +tr.even.gradeX td.sorting_2 { + background-color: #ffe2e2; +} + +tr.even.gradeX td.sorting_3 { + background-color: #ffe2e2; +} + +tr.odd.gradeU td.sorting_1 { + background-color: #c4c4c4; +} + +tr.odd.gradeU td.sorting_2 { + background-color: #d1d1d1; +} + +tr.odd.gradeU td.sorting_3 { + background-color: #d1d1d1; +} + +tr.even.gradeU td.sorting_1 { + background-color: #d5d5d5; +} + +tr.even.gradeU td.sorting_2 { + background-color: #e2e2e2; +} + +tr.even.gradeU td.sorting_3 { + background-color: #e2e2e2; +} + + +/* + * Row highlighting example + */ +.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted { + background-color: #ECFFB3; +} + +.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted { + background-color: #E6FF99; +} + +.ex_highlight_row #example tr.even:hover { + background-color: #ECFFB3; +} + +.ex_highlight_row #example tr.even:hover td.sorting_1 { + background-color: #DDFF75; +} + +.ex_highlight_row #example tr.even:hover td.sorting_2 { + background-color: #E7FF9E; +} + +.ex_highlight_row #example tr.even:hover td.sorting_3 { + background-color: #E2FF89; +} + +.ex_highlight_row #example tr.odd:hover { + background-color: #E6FF99; +} + +.ex_highlight_row #example tr.odd:hover td.sorting_1 { + background-color: #D6FF5C; +} + +.ex_highlight_row #example tr.odd:hover td.sorting_2 { + background-color: #E0FF84; +} + +.ex_highlight_row #example tr.odd:hover td.sorting_3 { + background-color: #DBFF70; +} + + +/* + * KeyTable + */ +table.KeyTable td { + border: 3px solid transparent; +} + +table.KeyTable td.focus { + border: 3px solid #3366FF; +} + +table.display tr.gradeA { + background-color: #eeffee; +} + +table.display tr.gradeC { + background-color: #ddddff; +} + +table.display tr.gradeX { + background-color: #ffdddd; +} + +table.display tr.gradeU { + background-color: #ddd; +} + +div.box { + height: 100px; + padding: 10px; + overflow: auto; + border: 1px solid #8080FF; + background-color: #E5E5FF; +} diff --git a/media/sb-admin/vendors/datatables/css/demo_table_jui.css b/media/sb-admin/vendors/datatables/css/demo_table_jui.css new file mode 100644 index 0000000..a210af5 --- /dev/null +++ b/media/sb-admin/vendors/datatables/css/demo_table_jui.css @@ -0,0 +1,501 @@ +/* + * File: demo_table_jui.css + * CVS: $Id$ + * Description: CSS descriptions for DataTables demo pages + * Author: Allan Jardine + * Created: Tue May 12 06:47:22 BST 2009 + * Modified: $Date$ by $Author$ + * Language: CSS + * Project: DataTables + * + * Copyright 2009 Allan Jardine. All Rights Reserved. + * + * *************************************************************************** + * DESCRIPTION + * + * The styles given here are suitable for the demos that are used with the standard DataTables + * distribution (see www.datatables.net). You will most likely wish to modify these styles to + * meet the layout requirements of your site. + * + * Common issues: + * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is + * no conflict between the two pagination types. If you want to use full_numbers pagination + * ensure that you either have "example_alt_pagination" as a body class name, or better yet, + * modify that selector. + * Note that the path used for Images is relative. All images are by default located in + * ../images/ - relative to this CSS file. + */ + + +/* + * jQuery UI specific styling + */ + +.paging_two_button .ui-button { + float: left; + cursor: pointer; + * cursor: hand; +} + +.paging_full_numbers .ui-button { + padding: 2px 6px; + margin: 0; + cursor: pointer; + * cursor: hand; + color: #333 !important; +} + +.dataTables_paginate .ui-button { + margin-right: -0.1em !important; +} + +.paging_full_numbers { + width: 350px !important; +} + +.dataTables_wrapper .ui-toolbar { + padding: 5px; +} + +.dataTables_paginate { + width: auto; +} + +.dataTables_info { + padding-top: 3px; +} + +table.display thead th { + padding: 3px 0px 3px 10px; + cursor: pointer; + * cursor: hand; +} + +div.dataTables_wrapper .ui-widget-header { + font-weight: normal; +} + + +/* + * Sort arrow icon positioning + */ +table.display thead th div.DataTables_sort_wrapper { + position: relative; + padding-right: 20px; +} + +table.display thead th div.DataTables_sort_wrapper span { + position: absolute; + top: 50%; + margin-top: -8px; + right: 0; +} + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Everything below this line is the same as demo_table.css. This file is + * required for 'cleanliness' of the markup + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables features + */ + +.dataTables_wrapper { + position: relative; + clear: both; +} + +.dataTables_processing { + position: absolute; + top: 0px; + left: 50%; + width: 250px; + margin-left: -125px; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 11px; + padding: 2px 0; +} + +.dataTables_length { + width: 40%; + float: left; +} + +.dataTables_filter { + width: 50%; + float: right; + text-align: right; +} + +.dataTables_info { + width: 50%; + float: left; +} + +.dataTables_paginate { + float: right; + text-align: right; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables display + */ +table.display { + margin: 0 auto; + width: 100%; + clear: both; + border-collapse: collapse; +} + +table.display tfoot th { + padding: 3px 0px 3px 10px; + font-weight: bold; + font-weight: normal; +} + +table.display tr.heading2 td { + border-bottom: 1px solid #aaa; +} + +table.display td { + padding: 3px 10px; +} + +table.display td.center { + text-align: center; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables sorting + */ + +.sorting_asc { + background: url('../images/sort_asc.png') no-repeat center right; +} + +.sorting_desc { + background: url('../images/sort_desc.png') no-repeat center right; +} + +.sorting { + background: url('../images/sort_both.png') no-repeat center right; +} + +.sorting_asc_disabled { + background: url('../images/sort_asc_disabled.png') no-repeat center right; +} + +.sorting_desc_disabled { + background: url('../images/sort_desc_disabled.png') no-repeat center right; +} + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables row classes + */ +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + + + + +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + +table.display tr.odd.gradeC { + background-color: #ddddff; +} + +table.display tr.even.gradeC { + background-color: #eeeeff; +} + +table.display tr.odd.gradeX { + background-color: #ffdddd; +} + +table.display tr.even.gradeX { + background-color: #ffeeee; +} + +table.display tr.odd.gradeU { + background-color: #ddd; +} + +table.display tr.even.gradeU { + background-color: #eee; +} + + +tr.odd { + background-color: #E2E4FF; +} + +tr.even { + background-color: white; +} + + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Misc + */ +.dataTables_scroll { + clear: both; +} + +.dataTables_scrollBody { + -webkit-overflow-scrolling: touch; +} + +.top, .bottom { + padding: 15px; + background-color: #F5F5F5; + border: 1px solid #CCCCCC; +} + +.top .dataTables_info { + float: none; +} + +.clear { + clear: both; +} + +.dataTables_empty { + text-align: center; +} + +tfoot input { + margin: 0.5em 0; + width: 100%; + color: #444; +} + +tfoot input.search_init { + color: #999; +} + +td.group { + background-color: #d1cfd0; + border-bottom: 2px solid #A19B9E; + border-top: 2px solid #A19B9E; +} + +td.details { + background-color: #d1cfd0; + border: 2px solid #A19B9E; +} + + +.example_alt_pagination div.dataTables_info { + width: 40%; +} + +.paging_full_numbers a.paginate_button, + .paging_full_numbers a.paginate_active { + border: 1px solid #aaa; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + padding: 2px 5px; + margin: 0 3px; + cursor: pointer; + *cursor: hand; + color: #333 !important; +} + +.paging_full_numbers a.paginate_button { + background-color: #ddd; +} + +.paging_full_numbers a.paginate_button:hover { + background-color: #ccc; + text-decoration: none !important; +} + +.paging_full_numbers a.paginate_active { + background-color: #99B3FF; +} + +table.display tr.even.row_selected td { + background-color: #B0BED9; +} + +table.display tr.odd.row_selected td { + background-color: #9FAFD1; +} + + +/* + * Sorting classes for columns + */ +/* For the standard odd/even */ +tr.odd td.sorting_1 { + background-color: #D3D6FF; +} + +tr.odd td.sorting_2 { + background-color: #DADCFF; +} + +tr.odd td.sorting_3 { + background-color: #E0E2FF; +} + +tr.even td.sorting_1 { + background-color: #EAEBFF; +} + +tr.even td.sorting_2 { + background-color: #F2F3FF; +} + +tr.even td.sorting_3 { + background-color: #F9F9FF; +} + + +/* For the Conditional-CSS grading rows */ +/* + Colour calculations (based off the main row colours) + Level 1: + dd > c4 + ee > d5 + Level 2: + dd > d1 + ee > e2 + */ +tr.odd.gradeA td.sorting_1 { + background-color: #c4ffc4; +} + +tr.odd.gradeA td.sorting_2 { + background-color: #d1ffd1; +} + +tr.odd.gradeA td.sorting_3 { + background-color: #d1ffd1; +} + +tr.even.gradeA td.sorting_1 { + background-color: #d5ffd5; +} + +tr.even.gradeA td.sorting_2 { + background-color: #e2ffe2; +} + +tr.even.gradeA td.sorting_3 { + background-color: #e2ffe2; +} + +tr.odd.gradeC td.sorting_1 { + background-color: #c4c4ff; +} + +tr.odd.gradeC td.sorting_2 { + background-color: #d1d1ff; +} + +tr.odd.gradeC td.sorting_3 { + background-color: #d1d1ff; +} + +tr.even.gradeC td.sorting_1 { + background-color: #d5d5ff; +} + +tr.even.gradeC td.sorting_2 { + background-color: #e2e2ff; +} + +tr.even.gradeC td.sorting_3 { + background-color: #e2e2ff; +} + +tr.odd.gradeX td.sorting_1 { + background-color: #ffc4c4; +} + +tr.odd.gradeX td.sorting_2 { + background-color: #ffd1d1; +} + +tr.odd.gradeX td.sorting_3 { + background-color: #ffd1d1; +} + +tr.even.gradeX td.sorting_1 { + background-color: #ffd5d5; +} + +tr.even.gradeX td.sorting_2 { + background-color: #ffe2e2; +} + +tr.even.gradeX td.sorting_3 { + background-color: #ffe2e2; +} + +tr.odd.gradeU td.sorting_1 { + background-color: #c4c4c4; +} + +tr.odd.gradeU td.sorting_2 { + background-color: #d1d1d1; +} + +tr.odd.gradeU td.sorting_3 { + background-color: #d1d1d1; +} + +tr.even.gradeU td.sorting_1 { + background-color: #d5d5d5; +} + +tr.even.gradeU td.sorting_2 { + background-color: #e2e2e2; +} + +tr.even.gradeU td.sorting_3 { + background-color: #e2e2e2; +} + + +/* + * Row highlighting example + */ +.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted { + background-color: #ECFFB3; +} + +.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted { + background-color: #E6FF99; +} \ No newline at end of file diff --git a/media/sb-admin/vendors/datatables/css/jquery.dataTables.css b/media/sb-admin/vendors/datatables/css/jquery.dataTables.css new file mode 100644 index 0000000..7da7fae --- /dev/null +++ b/media/sb-admin/vendors/datatables/css/jquery.dataTables.css @@ -0,0 +1,221 @@ + +/* + * Table + */ +table.dataTable { + margin: 0 auto; + clear: both; + width: 100%; +} + +table.dataTable thead th { + padding: 3px 18px 3px 10px; + border-bottom: 1px solid black; + font-weight: bold; + cursor: pointer; + *cursor: hand; +} + +table.dataTable tfoot th { + padding: 3px 18px 3px 10px; + border-top: 1px solid black; + font-weight: bold; +} + +table.dataTable td { + padding: 3px 10px; +} + +table.dataTable td.center, +table.dataTable td.dataTables_empty { + text-align: center; +} + +table.dataTable tr.odd { background-color: #E2E4FF; } +table.dataTable tr.even { background-color: white; } + +table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; } +table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; } +table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; } +table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; } +table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; } +table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; } + + +/* + * Table wrapper + */ +.dataTables_wrapper { + position: relative; + clear: both; + *zoom: 1; +} + + +/* + * Page length menu + */ +.dataTables_length { + float: left; +} + + +/* + * Filter + */ +.dataTables_filter { + float: right; + text-align: right; +} + + +/* + * Table information + */ +.dataTables_info { + clear: both; + float: left; +} + + +/* + * Pagination + */ +.dataTables_paginate { + float: right; + text-align: right; +} + +/* Two button pagination - previous / next */ +.paginate_disabled_previous, +.paginate_enabled_previous, +.paginate_disabled_next, +.paginate_enabled_next { + height: 19px; + float: left; + cursor: pointer; + *cursor: hand; + color: #111 !important; +} +.paginate_disabled_previous:hover, +.paginate_enabled_previous:hover, +.paginate_disabled_next:hover, +.paginate_enabled_next:hover { + text-decoration: none !important; +} +.paginate_disabled_previous:active, +.paginate_enabled_previous:active, +.paginate_disabled_next:active, +.paginate_enabled_next:active { + outline: none; +} + +.paginate_disabled_previous, +.paginate_disabled_next { + color: #666 !important; +} +.paginate_disabled_previous, +.paginate_enabled_previous { + padding-left: 23px; +} +.paginate_disabled_next, +.paginate_enabled_next { + padding-right: 23px; + margin-left: 10px; +} + +.paginate_enabled_previous { background: url('../images/back_enabled.png') no-repeat top left; } +.paginate_enabled_previous:hover { background: url('../images/back_enabled_hover.png') no-repeat top left; } +.paginate_disabled_previous { background: url('../images/back_disabled.png') no-repeat top left; } + +.paginate_enabled_next { background: url('../images/forward_enabled.png') no-repeat top right; } +.paginate_enabled_next:hover { background: url('../images/forward_enabled_hover.png') no-repeat top right; } +.paginate_disabled_next { background: url('../images/forward_disabled.png') no-repeat top right; } + +/* Full number pagination */ +.paging_full_numbers { + height: 22px; + line-height: 22px; +} +.paging_full_numbers a:active { + outline: none +} +.paging_full_numbers a:hover { + text-decoration: none; +} + +.paging_full_numbers a.paginate_button, +.paging_full_numbers a.paginate_active { + border: 1px solid #aaa; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 2px 5px; + margin: 0 3px; + cursor: pointer; + *cursor: hand; + color: #333 !important; +} + +.paging_full_numbers a.paginate_button { + background-color: #ddd; +} + +.paging_full_numbers a.paginate_button:hover { + background-color: #ccc; + text-decoration: none !important; +} + +.paging_full_numbers a.paginate_active { + background-color: #99B3FF; +} + + +/* + * Processing indicator + */ +.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 250px; + height: 30px; + margin-left: -125px; + margin-top: -15px; + padding: 14px 0 2px 0; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 14px; + background-color: white; +} + + +/* + * Sorting + */ +.sorting { background: url('../images/sort_both.png') no-repeat center right; } +.sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } +.sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } + +.sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } +.sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } + +table.dataTable thead th:active, +table.dataTable thead td:active { + outline: none; +} + + +/* + * Scrolling + */ +.dataTables_scroll { + clear: both; +} + +.dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; +} + diff --git a/media/sb-admin/vendors/datatables/css/jquery.dataTables_themeroller.css b/media/sb-admin/vendors/datatables/css/jquery.dataTables_themeroller.css new file mode 100644 index 0000000..cf1d4ed --- /dev/null +++ b/media/sb-admin/vendors/datatables/css/jquery.dataTables_themeroller.css @@ -0,0 +1,244 @@ + + +/* + * Table + */ +table.dataTable { + margin: 0 auto; + clear: both; + width: 100%; + border-collapse: collapse; +} + +table.dataTable thead th { + padding: 3px 0px 3px 10px; + cursor: pointer; + *cursor: hand; +} + +table.dataTable tfoot th { + padding: 3px 10px; +} + +table.dataTable td { + padding: 3px 10px; +} + +table.dataTable td.center, +table.dataTable td.dataTables_empty { + text-align: center; +} + +table.dataTable tr.odd { background-color: #E2E4FF; } +table.dataTable tr.even { background-color: white; } + +table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; } +table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; } +table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; } +table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; } +table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; } +table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; } + + +/* + * Table wrapper + */ +.dataTables_wrapper { + position: relative; + clear: both; + *zoom: 1; +} +.dataTables_wrapper .ui-widget-header { + font-weight: normal; +} +.dataTables_wrapper .ui-toolbar { + padding: 5px; +} + + +/* + * Page length menu + */ +.dataTables_length { + float: left; +} + + +/* + * Filter + */ +.dataTables_filter { + float: right; + text-align: right; +} + + +/* + * Table information + */ +.dataTables_info { + padding-top: 3px; + clear: both; + float: left; +} + + +/* + * Pagination + */ +.dataTables_paginate { + float: right; + text-align: right; +} + +.dataTables_paginate .ui-button { + margin-right: -0.1em !important; +} + +.paging_two_button .ui-button { + float: left; + cursor: pointer; + * cursor: hand; +} + +.paging_full_numbers .ui-button { + padding: 2px 6px; + margin: 0; + cursor: pointer; + * cursor: hand; + color: #333 !important; +} + +/* Two button pagination - previous / next */ +.paginate_disabled_previous, +.paginate_enabled_previous, +.paginate_disabled_next, +.paginate_enabled_next { + height: 19px; + float: left; + cursor: pointer; + *cursor: hand; + color: #111 !important; +} +.paginate_disabled_previous:hover, +.paginate_enabled_previous:hover, +.paginate_disabled_next:hover, +.paginate_enabled_next:hover { + text-decoration: none !important; +} +.paginate_disabled_previous:active, +.paginate_enabled_previous:active, +.paginate_disabled_next:active, +.paginate_enabled_next:active { + outline: none; +} + +.paginate_disabled_previous, +.paginate_disabled_next { + color: #666 !important; +} +.paginate_disabled_previous, +.paginate_enabled_previous { + padding-left: 23px; +} +.paginate_disabled_next, +.paginate_enabled_next { + padding-right: 23px; + margin-left: 10px; +} + +.paginate_enabled_previous { background: url('../images/back_enabled.png') no-repeat top left; } +.paginate_enabled_previous:hover { background: url('../images/back_enabled_hover.png') no-repeat top left; } +.paginate_disabled_previous { background: url('../images/back_disabled.png') no-repeat top left; } + +.paginate_enabled_next { background: url('../images/forward_enabled.png') no-repeat top right; } +.paginate_enabled_next:hover { background: url('../images/forward_enabled_hover.png') no-repeat top right; } +.paginate_disabled_next { background: url('../images/forward_disabled.png') no-repeat top right; } + +/* Full number pagination */ +.paging_full_numbers a:active { + outline: none +} +.paging_full_numbers a:hover { + text-decoration: none; +} + +.paging_full_numbers a.paginate_button, +.paging_full_numbers a.paginate_active { + border: 1px solid #aaa; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 2px 5px; + margin: 0 3px; + cursor: pointer; + *cursor: hand; + color: #333 !important; +} + +.paging_full_numbers a.paginate_button { + background-color: #ddd; +} + +.paging_full_numbers a.paginate_button:hover { + background-color: #ccc; + text-decoration: none !important; +} + +.paging_full_numbers a.paginate_active { + background-color: #99B3FF; +} + + +/* + * Processing indicator + */ +.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 250px; + height: 30px; + margin-left: -125px; + margin-top: -15px; + padding: 14px 0 2px 0; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 14px; + background-color: white; +} + + +/* + * Sorting + */ +table.dataTable thead th div.DataTables_sort_wrapper { + position: relative; + padding-right: 20px; +} + +table.dataTable thead th div.DataTables_sort_wrapper span { + position: absolute; + top: 50%; + margin-top: -8px; + right: 0; +} + +table.dataTable th:active { + outline: none; +} + + +/* + * Scrolling + */ +.dataTables_scroll { + clear: both; +} + +.dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; +} + diff --git a/media/sb-admin/vendors/datatables/images/Sorting icons.psd b/media/sb-admin/vendors/datatables/images/Sorting icons.psd new file mode 100644 index 0000000000000000000000000000000000000000..53b2e06850767cb57c52b316f0b845b1a8e0ca0e GIT binary patch literal 27490 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 Y16@Zf7?Q8!JB-NJ(KYBs*Ff|C0Zg4MIsgCw literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/back_disabled.png b/media/sb-admin/vendors/datatables/images/back_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..881de7976ff98955e2a5487dca66e618a0655f3d GIT binary patch literal 1361 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVin+1c5}%-r12$=KP@(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1OVZUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnv1?G!Lpb z1-DzwaO%|uIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@i-f{BMZ3YI$qn<8~Ar-gQ zOt$tu93XPMc=CmoA1oW4o1+WYIB!k3r72K4*@xA>;l+b1ClB@qaOE!8@r8RwiN1wc zl+_Cb3(lEQAv#$bmh>Mfe(I7Woy4{G!}EFf?)^FUc%F02^;EH~5owLt3k}+qS-P)U z616t%^wT0PX2liq$807FHoQ4d$0`5rkQ{U2Kkgclu0)Awnd5T>ob((vrABTq*u(RS z>E?oy`!@uw+@i*D$dKV&#I(EL&;9;u$GTQAMM5faVZejQCzo(NvvlZ75dZt%IYnd( z*RL;GX3W}R-P)5>-Zsu`&nUT&Ho^GzHq{#}Ya$hT91>M0@O`!9^}b&yQ@87fac$Vj zkb72h`!2pMTYunpu!r@;1)uFRXDvHO zu{mw?PmW#JOy1f}J}ILj)G2cQ^TrhhTtyr5@7eCYm=Uoy?6qTPsOnt5?2i>S(pg>~ z>M~M93=YlxcD}*xKl_@hz5j0IZGT@9Yu_^8_RN8=&YkAdFR(fGAAWd4CvkG#0^hlN z8>(g;?I=2=cEEAHaL+WiOvRp~fl`n5dTf5V)bNv|ZcjyzLHRnz@2)SdPWo#3tF@Nf ZfT6u;&2Oo-XD5RSIZszVmvv4FO#nm}^+Nyv literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/back_enabled.png b/media/sb-admin/vendors/datatables/images/back_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c608682b04a6d9b8002602450c8ef7e80ebba099 GIT binary patch literal 1379 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 bdL|wQU%!)=<|i%z6_yO1u6{1-oD!M<;V$ow literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/forward_enabled.png b/media/sb-admin/vendors/datatables/images/forward_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e6b5384b8454ee7f44a8f7c75b0321b7eeb9b1 GIT binary patch literal 1380 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVip+||I$+{MJu$=KP@(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1P0rUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnqfWG!Lpb z1-Dy_aq86vIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@iW_)h2mVtrshNp{TNX4zB zKmY&RGjC-OW)@`(g)dh`10)R-NpU#bM1=1eo8Z2AYd)<-?^`_sqOFY@6XS7KM&8JXTA5$g^A9S z{TX;`xlCJF@2;-kt^WS)-(qj^YjbRh3Qo21zn9<7##PJs=)J=q?vtT6c$tqWSn$;S z{q^hJt*2*?^Szy4@bTi|;PVYm@{K=qh5oS|v0uoRWd7#=|NZ;-*VL7!+I+Ui=RzOdW2D@cF)|8@0kar@euUy>OYxL3%Wh|X{LVLRn7b4UH-Q)xXL zlsIOXI?k$WjNtJ4&-&^N(`qv`*KNBfVYRHPjKr+8GT t=fC*;><^O18kWptJjt-AJE?(znPJ1m)BPofdH;jTJx^CZmvv4FO#l_Q2A%)_ literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/forward_enabled_hover.png b/media/sb-admin/vendors/datatables/images/forward_enabled_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..fc46c5ebf0524b72a509fe2d7c1bc74995cb8a9d GIT binary patch literal 1379 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsVi#&A{2f&C=1($=KD<(AChw*vQht)WY1&)XmVs z#Kj1v*Cju>G&eP`1g19yq1OqgUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZns$AG!Lpb z1-Dx)aq86vIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@imN7BvVqjpr?&;zfQgJKk z&;S4S%v%{AKQQkRwI?VL9s)YsRaG&b6_ zgRo<91_J$Y%O?`e|&#$ZtS+eXp_f= zjUUrLb7!pi%4at>{rxttxB!poqO-MU1}Hz4_scgh+`O`|pzGU*Ppd<;SGk>1td!-8 z=;-~nzrMci*RP)sFMiM0pIiAYgm$R?>m2vx|wYgZ#kAH7}W-quPuJDiV$o>g2t#=I)c$y9~%y7A9 zTfgc1jk&Lj_4ZX)f0PV(p)9c9_0ar=AL>^e-n9Mw|Nr~<^YZ!qF*`48{dsWi)b|VZ zD%w*xPFz?Y(EM+~bAgn@|LT8!dGP4_dwn}*-YUka%$2Ws1@^aZs%Q9^A9It(GQY{> zGt)+aDgU^S%wM?fC!gsP`E`4^jM#4)q-B&8J6^t!zrwrDf%l)k#^S|Oq%QdIe*R^@ tLh*lxrsW37V+~Wv{w==9!pqEIz%cpgo%)U5J^Y|z&(qb2Z8_q literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/sort_asc.png b/media/sb-admin/vendors/datatables/images/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc GIT binary patch literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/sort_asc_disabled.png b/media/sb-admin/vendors/datatables/images/sort_asc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4e144cf0b1f786a9248a2998311e8109998d8a2d GIT binary patch literal 1050 zcmaJ=O-K|`93R^(@goeAz6hRU)S-61)?IaU({*Myml|8vh4x}JJM&z}b>>Yo&vx~s z*1>{0Sk$FMM28~iln?~vp$ zL+z1TilQ3g{c@7*P2Q^6L;g-8^nq-LaWstw(J;=d4x}PF%0Lh|)htXxRiC)>9(Gfd zk2X?ioL0_@8ZsHx!!QNYCTxo8?kU)+mV+2%VAin0^v_psXkh4J`eIPw6kCELM*pM( z2PX$o+GI}a)ajlxpt~Rv0TW^s6wEQp6$@dys4J4Qcg@nE2*J59y%|(mNdO5s5Cj>{ zuW=y`gm{Jzw6(Xlp9TWQb1WyYyx`~C#eg7k94LJ>@#g5mVp5Kkd=V>5k6>(zESt~g znS6jjPL}06J3BoMLGTlV-<`0qTJT$LYgs{tuI3mvHjo88MKy!QahN8NZl++`Te6m0 zDibLfTTpG5XE-mVGEhip#w2PB)JKi0I-PD8)*(7w)xTBHA4Yzu(Y*BKcijk8- zXslet#0bL39YHpb27^FRHN*1kB3@C%xaDHi(qLQ;(?o$W3|;IHBC-_Xc|nkPo{#bo zKE_Anh#c$_BEdk1ROZS^8#kea%Upe%D^%oqqhQ*^vkV>MD%4{RGC?tA(byrDwm?jZ z#$wTmdL^!2ITo%WmnFflUSt1hboq)*k9XV}TViYtKD5ZRJ7lb1H!ZJ`CviJ2M^c5A z%=*Sgk8hr8@-S*Kr`Ol~RJX(fddmmK4eR}O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/sort_desc.png b/media/sb-admin/vendors/datatables/images/sort_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..def071ed5afd264a036f6d9e75856366fd6ad153 GIT binary patch literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi literal 0 HcmV?d00001 diff --git a/media/sb-admin/vendors/datatables/images/sort_desc_disabled.png b/media/sb-admin/vendors/datatables/images/sort_desc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7824973cc60fc1841b16f2cb39323cefcdc3f942 GIT binary patch literal 1045 zcmaJ=&rj1(9IuWjVlWt@h#q(rlc~7%$2P_q>KN??ODrK{#&I!}_Kh{rzS=%m2N%F- zAW={L0VZBJnRrkSCK{q1NKA||(ZmA>6Hgw9o;Z-;>)3_|u*vIt-(X0AeGY5Bm`Mgoq{>2>Xkbiu%Ds= zw2?31f^tL9kQr8eOxQDR!ltPHq-U$zG{j&MP8pU+Z@qp?149?-TQP-IYzdZ(;duv+ z&5z`@`Drbo)5+_g-xG*{39$-1bH;K7Po%550y+EF3=OIfJT20DK^2ryARz~WSeOlI zY%dFXxiA-r#^dp8fM+?DVR?q*LtI>l@B+(%+D8*_j$RaUa;D~sSR!4**cKS3TrP*p zkuY+m7%q`W_!>MPB8ZS%v9RieEVsL^AVXJk3>zEB0=}X;iDt1#lSubcFztq{<<`nX z3dVS<&2VAXPpJ-6l>b9bvw?PT4(`W$ps<^-*pSIV7tJ~vX67YQ8ELa7v~ZoP?{i~^a{W;-ZQ@ymjxh)IjDt*2O<6Dwh=q$vY$VY; zc&J{Ds~-?cjVm3>Wk@iL-`IZ|UB4pJ;~yJiON_?gLyJtiL&kbxZhV_OiPfx}%6s1@ zcXoG^ffrPJ;LQ4(`t<(ickJ1j|E0&fC8lSh8sUh5lwUg=l~QoqsK t`nTanN|e2@a&yVMdhy */function( window, document, undefined ) { + +(function( factory ) { + "use strict"; + + // Define as an AMD module if possible + if ( typeof define === 'function' && define.amd ) + { + define( ['jquery'], factory ); + } + /* Define using browser globals otherwise + * Prevent multiple instantiations if the script is loaded twice + */ + else if ( jQuery && !jQuery.fn.dataTable ) + { + factory( jQuery ); + } +} +(/** @lends */function( $ ) { + "use strict"; + /** + * DataTables is a plug-in for the jQuery Javascript library. It is a + * highly flexible tool, based upon the foundations of progressive + * enhancement, which will add advanced interaction controls to any + * HTML table. For a full list of features please refer to + * DataTables.net. + * + * Note that the DataTable object is not a global variable but is + * aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which + * it may be accessed. + * + * @class + * @param {object} [oInit={}] Configuration object for DataTables. Options + * are defined by {@link DataTable.defaults} + * @requires jQuery 1.3+ + * + * @example + * // Basic initialisation + * $(document).ready( function { + * $('#example').dataTable(); + * } ); + * + * @example + * // Initialisation with configuration options - in this case, disable + * // pagination and sorting. + * $(document).ready( function { + * $('#example').dataTable( { + * "bPaginate": false, + * "bSort": false + * } ); + * } ); + */ + var DataTable = function( oInit ) + { + + + /** + * Add a column to the list used for the table with default values + * @param {object} oSettings dataTables settings object + * @param {node} nTh The th element for this column + * @memberof DataTable#oApi + */ + function _fnAddColumn( oSettings, nTh ) + { + var oDefaults = DataTable.defaults.columns; + var iCol = oSettings.aoColumns.length; + var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { + "sSortingClass": oSettings.oClasses.sSortable, + "sSortingClassJUI": oSettings.oClasses.sSortJUI, + "nTh": nTh ? nTh : document.createElement('th'), + "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', + "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], + "mData": oDefaults.mData ? oDefaults.oDefaults : iCol + } ); + oSettings.aoColumns.push( oCol ); + + /* Add a column specific filter */ + if ( oSettings.aoPreSearchCols[ iCol ] === undefined || oSettings.aoPreSearchCols[ iCol ] === null ) + { + oSettings.aoPreSearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch ); + } + else + { + var oPre = oSettings.aoPreSearchCols[ iCol ]; + + /* Don't require that the user must specify bRegex, bSmart or bCaseInsensitive */ + if ( oPre.bRegex === undefined ) + { + oPre.bRegex = true; + } + + if ( oPre.bSmart === undefined ) + { + oPre.bSmart = true; + } + + if ( oPre.bCaseInsensitive === undefined ) + { + oPre.bCaseInsensitive = true; + } + } + + /* Use the column options function to initialise classes etc */ + _fnColumnOptions( oSettings, iCol, null ); + } + + + /** + * Apply options for a column + * @param {object} oSettings dataTables settings object + * @param {int} iCol column index to consider + * @param {object} oOptions object with sType, bVisible and bSearchable etc + * @memberof DataTable#oApi + */ + function _fnColumnOptions( oSettings, iCol, oOptions ) + { + var oCol = oSettings.aoColumns[ iCol ]; + + /* User specified column options */ + if ( oOptions !== undefined && oOptions !== null ) + { + /* Backwards compatibility for mDataProp */ + if ( oOptions.mDataProp && !oOptions.mData ) + { + oOptions.mData = oOptions.mDataProp; + } + + if ( oOptions.sType !== undefined ) + { + oCol.sType = oOptions.sType; + oCol._bAutoType = false; + } + + $.extend( oCol, oOptions ); + _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); + + /* iDataSort to be applied (backwards compatibility), but aDataSort will take + * priority if defined + */ + if ( oOptions.iDataSort !== undefined ) + { + oCol.aDataSort = [ oOptions.iDataSort ]; + } + _fnMap( oCol, oOptions, "aDataSort" ); + } + + /* Cache the data get and set functions for speed */ + var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; + var mData = _fnGetObjectDataFn( oCol.mData ); + + oCol.fnGetData = function (oData, sSpecific) { + var innerData = mData( oData, sSpecific ); + + if ( oCol.mRender && (sSpecific && sSpecific !== '') ) + { + return mRender( innerData, sSpecific, oData ); + } + return innerData; + }; + oCol.fnSetData = _fnSetObjectDataFn( oCol.mData ); + + /* Feature sorting overrides column specific when off */ + if ( !oSettings.oFeatures.bSort ) + { + oCol.bSortable = false; + } + + /* Check that the class assignment is correct for sorting */ + if ( !oCol.bSortable || + ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableNone; + oCol.sSortingClassJUI = ""; + } + else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortable; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; + } + else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableAsc; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIAscAllowed; + } + else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) != -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableDesc; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIDescAllowed; + } + } + + + /** + * Adjust the table column widths for new data. Note: you would probably want to + * do a redraw after calling this function! + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnAdjustColumnSizing ( oSettings ) + { + /* Not interested in doing column width calculation if auto-width is disabled */ + if ( oSettings.oFeatures.bAutoWidth === false ) + { + return false; + } + + _fnCalculateColumnWidths( oSettings ); + for ( var i=0 , iLen=oSettings.aoColumns.length ; i