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 0000000..a498ef4 Binary files /dev/null and b/media/sb-admin/fonts/glyphicons-halflings-regular.ttf differ diff --git a/media/sb-admin/fonts/glyphicons-halflings-regular.woff b/media/sb-admin/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..d83c539 Binary files /dev/null and b/media/sb-admin/fonts/glyphicons-halflings-regular.woff differ diff --git a/media/sb-admin/vendors/BS3/Datatables.png b/media/sb-admin/vendors/BS3/Datatables.png new file mode 100644 index 0000000..73cdf7b Binary files /dev/null and b/media/sb-admin/vendors/BS3/Datatables.png differ 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 0000000..a88d797 Binary files /dev/null and b/media/sb-admin/vendors/BS3/assets/images/sort_asc.png differ 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 0000000..4e144cf Binary files /dev/null and b/media/sb-admin/vendors/BS3/assets/images/sort_asc_disabled.png differ diff --git a/media/sb-admin/vendors/BS3/assets/images/sort_both.png b/media/sb-admin/vendors/BS3/assets/images/sort_both.png new file mode 100644 index 0000000..1867040 Binary files /dev/null and b/media/sb-admin/vendors/BS3/assets/images/sort_both.png differ 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 0000000..def071e Binary files /dev/null and b/media/sb-admin/vendors/BS3/assets/images/sort_desc.png differ 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 0000000..7824973 Binary files /dev/null and b/media/sb-admin/vendors/BS3/assets/images/sort_desc_disabled.png differ diff --git a/media/sb-admin/vendors/BS3/assets/js/datatables.js b/media/sb-admin/vendors/BS3/assets/js/datatables.js new file mode 100644 index 0000000..b443089 --- /dev/null +++ b/media/sb-admin/vendors/BS3/assets/js/datatables.js @@ -0,0 +1,402 @@ +/* Set the defaults for DataTables initialisation */ +$.extend( true, $.fn.dataTable.defaults, { + "sDom": "<'row'<'col-sm-12'<'pull-right'f><'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 0000000..a88d797 Binary files /dev/null and b/media/sb-admin/vendors/BS3/examples/images/sort_asc.png differ 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 0000000..4e144cf Binary files /dev/null and b/media/sb-admin/vendors/BS3/examples/images/sort_asc_disabled.png differ diff --git a/media/sb-admin/vendors/BS3/examples/images/sort_both.png b/media/sb-admin/vendors/BS3/examples/images/sort_both.png new file mode 100644 index 0000000..1867040 Binary files /dev/null and b/media/sb-admin/vendors/BS3/examples/images/sort_both.png differ 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 0000000..def071e Binary files /dev/null and b/media/sb-admin/vendors/BS3/examples/images/sort_desc.png differ 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 0000000..7824973 Binary files /dev/null and b/media/sb-admin/vendors/BS3/examples/images/sort_desc_disabled.png differ diff --git a/media/sb-admin/vendors/BS3/examples/js/datatables.js b/media/sb-admin/vendors/BS3/examples/js/datatables.js new file mode 100644 index 0000000..e000f95 --- /dev/null +++ b/media/sb-admin/vendors/BS3/examples/js/datatables.js @@ -0,0 +1,387 @@ +/* Set the defaults for DataTables initialisation */ +$.extend( true, $.fn.dataTable.defaults, { + "sDom": "<'row'<'col-sm-12'<'pull-right'f><'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 0000000..53b2e06 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/Sorting icons.psd differ 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 0000000..881de79 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/back_disabled.png differ 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 0000000..c608682 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/back_enabled.png differ diff --git a/media/sb-admin/vendors/datatables/images/back_enabled_hover.png b/media/sb-admin/vendors/datatables/images/back_enabled_hover.png new file mode 100644 index 0000000..d300f10 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/back_enabled_hover.png differ diff --git a/media/sb-admin/vendors/datatables/images/favicon.ico b/media/sb-admin/vendors/datatables/images/favicon.ico new file mode 100644 index 0000000..6eeaa2a Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/favicon.ico differ diff --git a/media/sb-admin/vendors/datatables/images/forward_disabled.png b/media/sb-admin/vendors/datatables/images/forward_disabled.png new file mode 100644 index 0000000..6a6ded7 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/forward_disabled.png differ 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 0000000..a4e6b53 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/forward_enabled.png differ 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 0000000..fc46c5e Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/forward_enabled_hover.png differ 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 0000000..a88d797 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/sort_asc.png differ 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 0000000..4e144cf Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/sort_asc_disabled.png differ diff --git a/media/sb-admin/vendors/datatables/images/sort_both.png b/media/sb-admin/vendors/datatables/images/sort_both.png new file mode 100644 index 0000000..1867040 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/sort_both.png differ 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 0000000..def071e Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/sort_desc.png differ 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 0000000..7824973 Binary files /dev/null and b/media/sb-admin/vendors/datatables/images/sort_desc_disabled.png differ diff --git a/media/sb-admin/vendors/datatables/js/jquery.dataTables.js b/media/sb-admin/vendors/datatables/js/jquery.dataTables.js new file mode 100644 index 0000000..1d8a220 --- /dev/null +++ b/media/sb-admin/vendors/datatables/js/jquery.dataTables.js @@ -0,0 +1,12099 @@ +/** + * @summary DataTables + * @description Paginate, search and sort HTML tables + * @version 1.9.4 + * @file jquery.dataTables.js + * @author Allan Jardine (www.sprymedia.co.uk) + * @contact www.sprymedia.co.uk/contact + * + * @copyright Copyright 2008-2012 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, available at: + * http://datatables.net/license_gpl2 + * http://datatables.net/license_bsd + * + * This source file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + * + * For details please refer to: http://www.datatables.net + */ + +/*jslint evil: true, undef: true, browser: true */ +/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/ + +(/** @lends */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