-begin adding datagrids
|
@ -76,6 +76,10 @@
|
||||||
<controllerFile controllerName="SidePlaylist">
|
<controllerFile controllerName="SidePlaylist">
|
||||||
<actionMethod actionName="index"/>
|
<actionMethod actionName="index"/>
|
||||||
</controllerFile>
|
</controllerFile>
|
||||||
|
<controllerFile controllerName="Nowplaying">
|
||||||
|
<actionMethod actionName="index"/>
|
||||||
|
<actionMethod actionName="getDataGridData"/>
|
||||||
|
</controllerFile>
|
||||||
</controllersDirectory>
|
</controllersDirectory>
|
||||||
<formsDirectory>
|
<formsDirectory>
|
||||||
<formFile formName="Login"/>
|
<formFile formName="Login"/>
|
||||||
|
@ -89,7 +93,9 @@
|
||||||
<formFile formName="AdvancedSearchGroup"/>
|
<formFile formName="AdvancedSearchGroup"/>
|
||||||
</formsDirectory>
|
</formsDirectory>
|
||||||
<layoutsDirectory enabled="false"/>
|
<layoutsDirectory enabled="false"/>
|
||||||
<modelsDirectory/>
|
<modelsDirectory>
|
||||||
|
<modelFile modelName="Nowplaying"/>
|
||||||
|
</modelsDirectory>
|
||||||
<modulesDirectory enabled="false"/>
|
<modulesDirectory enabled="false"/>
|
||||||
<viewsDirectory>
|
<viewsDirectory>
|
||||||
<viewScriptsDirectory>
|
<viewScriptsDirectory>
|
||||||
|
@ -237,6 +243,12 @@
|
||||||
<viewControllerScriptsDirectory forControllerName="Schedule">
|
<viewControllerScriptsDirectory forControllerName="Schedule">
|
||||||
<viewScriptFile forActionName="scheduleShowDialog"/>
|
<viewScriptFile forActionName="scheduleShowDialog"/>
|
||||||
</viewControllerScriptsDirectory>
|
</viewControllerScriptsDirectory>
|
||||||
|
<viewControllerScriptsDirectory forControllerName="Nowplaying">
|
||||||
|
<viewScriptFile forActionName="index"/>
|
||||||
|
</viewControllerScriptsDirectory>
|
||||||
|
<viewControllerScriptsDirectory forControllerName="Nowplaying">
|
||||||
|
<viewScriptFile forActionName="getDataGridData"/>
|
||||||
|
</viewControllerScriptsDirectory>
|
||||||
</viewScriptsDirectory>
|
</viewScriptsDirectory>
|
||||||
<viewHelpersDirectory/>
|
<viewHelpersDirectory/>
|
||||||
<viewFiltersDirectory enabled="false"/>
|
<viewFiltersDirectory enabled="false"/>
|
||||||
|
@ -279,6 +291,7 @@
|
||||||
<testApplicationControllerFile filesystemName="ScheduleControllerTest.php"/>
|
<testApplicationControllerFile filesystemName="ScheduleControllerTest.php"/>
|
||||||
<testApplicationControllerFile filesystemName="ApiControllerTest.php"/>
|
<testApplicationControllerFile filesystemName="ApiControllerTest.php"/>
|
||||||
<testApplicationControllerFile filesystemName="UserControllerTest.php"/>
|
<testApplicationControllerFile filesystemName="UserControllerTest.php"/>
|
||||||
|
<testApplicationControllerFile filesystemName="NowplayingControllerTest.php"/>
|
||||||
</testApplicationControllerDirectory>
|
</testApplicationControllerDirectory>
|
||||||
</testApplicationDirectory>
|
</testApplicationDirectory>
|
||||||
<testLibraryDirectory>
|
<testLibraryDirectory>
|
||||||
|
|
|
@ -18,6 +18,7 @@ $ccAcl->add(new Zend_Acl_Resource('library'))
|
||||||
->add(new Zend_Acl_Resource('plupload'))
|
->add(new Zend_Acl_Resource('plupload'))
|
||||||
->add(new Zend_Acl_Resource('schedule'))
|
->add(new Zend_Acl_Resource('schedule'))
|
||||||
->add(new Zend_Acl_Resource('api'))
|
->add(new Zend_Acl_Resource('api'))
|
||||||
|
->add(new Zend_Acl_Resource('nowplaying'))
|
||||||
->add(new Zend_Acl_Resource('search'));
|
->add(new Zend_Acl_Resource('search'));
|
||||||
|
|
||||||
/** Creating permissions */
|
/** Creating permissions */
|
||||||
|
@ -25,6 +26,7 @@ $ccAcl->allow('guest', 'index')
|
||||||
->allow('guest', 'login')
|
->allow('guest', 'login')
|
||||||
->allow('guest', 'error')
|
->allow('guest', 'error')
|
||||||
->allow('guest', 'library')
|
->allow('guest', 'library')
|
||||||
|
->allow('guest', 'nowplaying')
|
||||||
->allow('guest', 'search')
|
->allow('guest', 'search')
|
||||||
->allow('guest', 'api')
|
->allow('guest', 'api')
|
||||||
->allow('host', 'plupload')
|
->allow('host', 'plupload')
|
||||||
|
|
|
@ -48,8 +48,8 @@ $pages = array(
|
||||||
array(
|
array(
|
||||||
'label' => 'Now Playing',
|
'label' => 'Now Playing',
|
||||||
'module' => 'default',
|
'module' => 'default',
|
||||||
'controller' => 'Schedule',
|
'controller' => 'Nowplaying',
|
||||||
'action' => 'view-playlist'
|
'action' => 'index'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'label' => 'Schedule',
|
'label' => 'Schedule',
|
||||||
|
|
35
application/controllers/NowplayingController.php
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class NowplayingController extends Zend_Controller_Action
|
||||||
|
{
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||||
|
$ajaxContext->addActionContext('get-data-grid-data', 'json')->initContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function indexAction()
|
||||||
|
{
|
||||||
|
$this->view->headScript()->appendFile('/js/playlist/playlist.js','text/javascript');
|
||||||
|
$this->view->headScript()->appendFile('/js/datatables/js/jquery.dataTables.min.js','text/javascript');
|
||||||
|
$this->view->headScript()->appendFile('/js/progressbar/jquery.progressbar.min.js','text/javascript');
|
||||||
|
|
||||||
|
$this->view->headLink()->appendStylesheet('/css/datatables/css/demo_page.css');
|
||||||
|
$this->view->headLink()->appendStylesheet('/css/datatables/css/demo_table.css');
|
||||||
|
|
||||||
|
$this->_helper->viewRenderer->setResponseSegment('nowplaying');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDataGridDataAction()
|
||||||
|
{
|
||||||
|
$this->view->entries = Application_Model_Nowplaying::GetDataGridData();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -193,13 +193,18 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
public function viewPlaylistAction()
|
public function viewPlaylistAction()
|
||||||
{
|
{
|
||||||
$this->view->headScript()->appendFile('/js/playlist/playlist.js','text/javascript');
|
$this->view->headScript()->appendFile('/js/playlist/playlist.js','text/javascript');
|
||||||
$this->view->headScript()->appendFile('/js/progressbar/jquery.progressbar.min.js','text/javascript');
|
$this->view->headScript()->appendFile('/js/progressbar/jquery.progressbar.min.js','text/javascript');
|
||||||
|
|
||||||
$this->_helper->viewRenderer->setResponseSegment('nowplaying');
|
$this->_helper->viewRenderer->setResponseSegment('nowplaying');
|
||||||
|
|
||||||
|
this->_helper->actionStack('', '');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
public function getCurrentPlaylistAction()
|
public function getCurrentPlaylistAction()
|
||||||
{
|
{
|
||||||
|
|
43
application/models/Nowplaying.php
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Nowplaying
|
||||||
|
{
|
||||||
|
|
||||||
|
public static function GetDataGridData(){
|
||||||
|
$timeNow = Schedule::GetSchedulerTime();
|
||||||
|
$previous = Schedule::GetPreviousItems($timeNow, 1);
|
||||||
|
$current = Schedule::GetCurrentlyPlaying($timeNow);
|
||||||
|
$next = Schedule::GetNextItems($timeNow, 10);
|
||||||
|
|
||||||
|
$columnHeaders = array(array("sTitle"=>"Date"),
|
||||||
|
array("sTitle"=>"Start"),
|
||||||
|
array("sTitle"=>"End"),
|
||||||
|
array("sTitle"=>"Duration"),
|
||||||
|
array("sTitle"=>"Song"),
|
||||||
|
array("sTitle"=>"Artist"),
|
||||||
|
array("sTitle"=>"Album"),
|
||||||
|
array("sTitle"=>"Creator"),
|
||||||
|
array("sTitle"=>"Playlist"));
|
||||||
|
$rows = array();
|
||||||
|
|
||||||
|
foreach ($previous as $item){
|
||||||
|
array_push($rows, array(substr($item["starts"], 0, strpos($item["starts"], " ")), $item["starts"], $item["ends"], $item["clip_length"], $item["track_title"], $item["artist_name"],
|
||||||
|
$item["album_title"], "x" , "y"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($current as $item){
|
||||||
|
array_push($rows, array($item["starts"], $item["starts"], $item["ends"], $item["clip_length"], $item["track_title"], $item["artist_name"],
|
||||||
|
$item["album_title"], "x" , "y"));
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($next as $item){
|
||||||
|
array_push($rows, array($item["starts"], $item["starts"], $item["ends"], $item["clip_length"], $item["track_title"], $item["artist_name"],
|
||||||
|
$item["album_title"], "x" , "y"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return array("columnHeaders"=>$columnHeaders, "rows"=>$rows);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -477,7 +477,7 @@ class Schedule {
|
||||||
"next"=>Schedule::GetNextItems($timeNow));
|
"next"=>Schedule::GetNextItems($timeNow));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function GetPreviousItems($timeNow, $prevCount = 1){
|
public static function GetPreviousItems($timeNow, $prevCount = 1){
|
||||||
global $CC_CONFIG, $CC_DBC;
|
global $CC_CONFIG, $CC_DBC;
|
||||||
$sql = "SELECT * FROM $CC_CONFIG[scheduleTable] st, $CC_CONFIG[filesTable] ft"
|
$sql = "SELECT * FROM $CC_CONFIG[scheduleTable] st, $CC_CONFIG[filesTable] ft"
|
||||||
." WHERE (st.ends < TIMESTAMP '$timeNow')"
|
." WHERE (st.ends < TIMESTAMP '$timeNow')"
|
||||||
|
@ -488,7 +488,7 @@ class Schedule {
|
||||||
return $rows;
|
return $rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function GetCurrentlyPlaying($timeNow){
|
public static function GetCurrentlyPlaying($timeNow){
|
||||||
global $CC_CONFIG, $CC_DBC;
|
global $CC_CONFIG, $CC_DBC;
|
||||||
|
|
||||||
$sql = "SELECT *, pt.name as playlistName FROM $CC_CONFIG[scheduleTable] st, $CC_CONFIG[filesTable] ft, $CC_CONFIG[playListTable] pt"
|
$sql = "SELECT *, pt.name as playlistName FROM $CC_CONFIG[scheduleTable] st, $CC_CONFIG[filesTable] ft, $CC_CONFIG[playListTable] pt"
|
||||||
|
@ -500,7 +500,7 @@ class Schedule {
|
||||||
return $rows;
|
return $rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function GetNextItems($timeNow, $nextCount = 1) {
|
public static function GetNextItems($timeNow, $nextCount = 1) {
|
||||||
global $CC_CONFIG, $CC_DBC;
|
global $CC_CONFIG, $CC_DBC;
|
||||||
$sql = "SELECT * FROM $CC_CONFIG[scheduleTable] st, $CC_CONFIG[filesTable] ft"
|
$sql = "SELECT * FROM $CC_CONFIG[scheduleTable] st, $CC_CONFIG[filesTable] ft"
|
||||||
." WHERE (st.starts > TIMESTAMP '$timeNow')"
|
." WHERE (st.starts > TIMESTAMP '$timeNow')"
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?php
|
||||||
|
echo $this->entries;
|
||||||
|
?>
|
52
application/views/scripts/nowplaying/index.phtml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<div id='col0' style='float:left; width: 10%; height: 100%;'>
|
||||||
|
<div>Listen</div>
|
||||||
|
<div>Volume</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id='col1' style='float:left; width: 25%; height: 100%;'>
|
||||||
|
<div>Show: <span id='show'></span></div>
|
||||||
|
<div>Playlist: <span id='playlist'></span></div>
|
||||||
|
<div>Host: <span id='host'></span></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id='col2' style='float:left; width: 30%; height: 100%;'>
|
||||||
|
<div>Previous: <span id='previous'></span></div>
|
||||||
|
<div>Current: <span id='current'></span></div>
|
||||||
|
<div>Upcoming: <span id='next'></span></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id='list0' style='float:left; width: 35%; height: 100%;'></div>
|
||||||
|
<div>Start: <span id='start'></span></div>
|
||||||
|
<div>End: <span id='end'></span></div>
|
||||||
|
<div><span id='progressbar'></span> <span id='songposition'></span> | <span id='songlength'></span></div>
|
||||||
|
</div>
|
||||||
|
<div id='demo'></div>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
function createDataGrid(obj){
|
||||||
|
$('#demo').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bSort" : false,
|
||||||
|
"bJQueryUI": true,
|
||||||
|
"bFilter": true,
|
||||||
|
"bInfo": false,
|
||||||
|
"bLengthChange": false,
|
||||||
|
"aaData": obj.rows,
|
||||||
|
"aoColumns": obj.columnHeaders
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
function init2(){
|
||||||
|
$.ajax({ url: "/Nowplaying/get-data-grid-data/format/json", dataType:"json", success:function(data){
|
||||||
|
//alert(data);
|
||||||
|
createDataGrid(data.entries);
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
|
||||||
|
//initialize the playlist bar in the included playlist.js
|
||||||
|
init("nowplayingbar");
|
||||||
|
});
|
||||||
|
</script>
|
93
public/css/datatables/css/demo_page.css
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* 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;
|
||||||
|
}
|
538
public/css/datatables/css/demo_table.css
Normal file
|
@ -0,0 +1,538 @@
|
||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
min-height: 302px;
|
||||||
|
clear: both;
|
||||||
|
_height: 302px;
|
||||||
|
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 {
|
||||||
|
width: 44px;
|
||||||
|
* width: 50px;
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pagination nested */
|
||||||
|
.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next {
|
||||||
|
height: 19px;
|
||||||
|
width: 19px;
|
||||||
|
margin-left: 3px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_disabled_previous {
|
||||||
|
background-image: url('../images/back_disabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_enabled_previous {
|
||||||
|
background-image: url('../images/back_enabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_disabled_next {
|
||||||
|
background-image: url('../images/forward_disabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_enabled_next {
|
||||||
|
background-image: url('../images/forward_enabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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 span.paginate_button,
|
||||||
|
.paging_full_numbers span.paginate_active {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
padding: 2px 5px;
|
||||||
|
margin: 0 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
*cursor: hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers span.paginate_button {
|
||||||
|
background-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers span.paginate_button:hover {
|
||||||
|
background-color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers span.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;
|
||||||
|
}
|
513
public/css/datatables/css/demo_table_jui.css
Normal file
|
@ -0,0 +1,513 @@
|
||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-buttonset .ui-button {
|
||||||
|
margin-right: -0.1em !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers {
|
||||||
|
width: 350px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
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;
|
||||||
|
min-height: 302px;
|
||||||
|
_height: 302px;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pagination nested */
|
||||||
|
.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next {
|
||||||
|
height: 19px;
|
||||||
|
width: 19px;
|
||||||
|
margin-left: 3px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_disabled_previous {
|
||||||
|
background-image: url('../images/back_disabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_enabled_previous {
|
||||||
|
background-image: url('../images/back_enabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_disabled_next {
|
||||||
|
background-image: url('../images/forward_disabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_enabled_next {
|
||||||
|
background-image: url('../images/forward_enabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* 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.jpg') no-repeat center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sorting_desc {
|
||||||
|
background: url('../images/sort_desc.jpg') no-repeat center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sorting {
|
||||||
|
background: url('../images/sort_both.jpg') 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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 span.paginate_button,
|
||||||
|
.paging_full_numbers span.paginate_active {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
padding: 2px 5px;
|
||||||
|
margin: 0 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
*cursor: hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers span.paginate_button {
|
||||||
|
background-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers span.paginate_button:hover {
|
||||||
|
background-color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers span.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;
|
||||||
|
}
|
BIN
public/css/datatables/images/Sorting icons.psd
Normal file
BIN
public/css/datatables/images/back_disabled.jpg
Normal file
After Width: | Height: | Size: 612 B |
BIN
public/css/datatables/images/back_enabled.jpg
Normal file
After Width: | Height: | Size: 807 B |
BIN
public/css/datatables/images/favicon.ico
Normal file
After Width: | Height: | Size: 894 B |
BIN
public/css/datatables/images/forward_disabled.jpg
Normal file
After Width: | Height: | Size: 635 B |
BIN
public/css/datatables/images/forward_enabled.jpg
Normal file
After Width: | Height: | Size: 852 B |
BIN
public/css/datatables/images/sort_asc.png
Normal file
After Width: | Height: | Size: 263 B |
BIN
public/css/datatables/images/sort_asc_disabled.png
Normal file
After Width: | Height: | Size: 252 B |
BIN
public/css/datatables/images/sort_both.png
Normal file
After Width: | Height: | Size: 282 B |
BIN
public/css/datatables/images/sort_desc.png
Normal file
After Width: | Height: | Size: 260 B |
BIN
public/css/datatables/images/sort_desc_disabled.png
Normal file
After Width: | Height: | Size: 251 B |
BIN
public/images/datatables/Sorting icons.psd
Normal file
BIN
public/images/datatables/back_disabled.jpg
Normal file
After Width: | Height: | Size: 612 B |
BIN
public/images/datatables/back_enabled.jpg
Normal file
After Width: | Height: | Size: 807 B |
BIN
public/images/datatables/favicon.ico
Normal file
After Width: | Height: | Size: 894 B |
BIN
public/images/datatables/forward_disabled.jpg
Normal file
After Width: | Height: | Size: 635 B |
BIN
public/images/datatables/forward_enabled.jpg
Normal file
After Width: | Height: | Size: 852 B |
BIN
public/images/datatables/sort_asc.png
Normal file
After Width: | Height: | Size: 263 B |
BIN
public/images/datatables/sort_asc_disabled.png
Normal file
After Width: | Height: | Size: 252 B |
BIN
public/images/datatables/sort_both.png
Normal file
After Width: | Height: | Size: 282 B |
BIN
public/images/datatables/sort_desc.png
Normal file
After Width: | Height: | Size: 260 B |
BIN
public/images/datatables/sort_desc_disabled.png
Normal file
After Width: | Height: | Size: 251 B |
6848
public/js/datatables/js/jquery.dataTables.js
vendored
Normal file
142
public/js/datatables/js/jquery.dataTables.min.js
vendored
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
/*
|
||||||
|
* File: jquery.dataTables.min.js
|
||||||
|
* Version: 1.7.5
|
||||||
|
* Author: Allan Jardine (www.sprymedia.co.uk)
|
||||||
|
* Info: www.datatables.net
|
||||||
|
*
|
||||||
|
* Copyright 2008-2010 Allan Jardine, all rights reserved.
|
||||||
|
*
|
||||||
|
* This source file is free software, under either the GPL v2 license or a
|
||||||
|
* BSD style license, as supplied with this software.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
(function(j,qa,p){j.fn.dataTableSettings=[];var D=j.fn.dataTableSettings;j.fn.dataTableExt={};var n=j.fn.dataTableExt;n.sVersion="1.7.5";n.sErrMode="alert";n.iApiIndex=0;n.oApi={};n.afnFiltering=[];n.aoFeatures=[];n.ofnSearch={};n.afnSortData=[];n.oStdClasses={sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",
|
||||||
|
sPageButtonStaticDisabled:"paginate_button",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",
|
||||||
|
sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:""};n.oJUIClasses={sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left",sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",
|
||||||
|
sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled",sPageFirst:"first ui-corner-tl ui-corner-bl",
|
||||||
|
sPagePrevious:"previous",sPageNext:"next",sPageLast:"last ui-corner-tr ui-corner-br",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",sSortableAsc:"ui-state-default",
|
||||||
|
sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortColumn:"sorting_",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollHeadInner:"dataTables_scrollHeadInner",
|
||||||
|
sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot ui-state-default",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:"ui-state-default"};n.oPagination={two_button:{fnInit:function(g,m,r){var s,w,y;if(g.bJUI){s=p.createElement("a");w=p.createElement("a");y=p.createElement("span");y.className=g.oClasses.sPageJUINext;w.appendChild(y);y=p.createElement("span");y.className=g.oClasses.sPageJUIPrev;s.appendChild(y)}else{s=p.createElement("div");w=p.createElement("div")}s.className=
|
||||||
|
g.oClasses.sPagePrevDisabled;w.className=g.oClasses.sPageNextDisabled;s.title=g.oLanguage.oPaginate.sPrevious;w.title=g.oLanguage.oPaginate.sNext;m.appendChild(s);m.appendChild(w);j(s).click(function(){g.oApi._fnPageChange(g,"previous")&&r(g)});j(w).click(function(){g.oApi._fnPageChange(g,"next")&&r(g)});j(s).bind("selectstart",function(){return false});j(w).bind("selectstart",function(){return false});if(g.sTableId!==""&&typeof g.aanFeatures.p=="undefined"){m.setAttribute("id",g.sTableId+"_paginate");
|
||||||
|
s.setAttribute("id",g.sTableId+"_previous");w.setAttribute("id",g.sTableId+"_next")}},fnUpdate:function(g){if(g.aanFeatures.p)for(var m=g.aanFeatures.p,r=0,s=m.length;r<s;r++)if(m[r].childNodes.length!==0){m[r].childNodes[0].className=g._iDisplayStart===0?g.oClasses.sPagePrevDisabled:g.oClasses.sPagePrevEnabled;m[r].childNodes[1].className=g.fnDisplayEnd()==g.fnRecordsDisplay()?g.oClasses.sPageNextDisabled:g.oClasses.sPageNextEnabled}}},iFullNumbersShowPages:5,full_numbers:{fnInit:function(g,m,r){var s=
|
||||||
|
p.createElement("span"),w=p.createElement("span"),y=p.createElement("span"),F=p.createElement("span"),x=p.createElement("span");s.innerHTML=g.oLanguage.oPaginate.sFirst;w.innerHTML=g.oLanguage.oPaginate.sPrevious;F.innerHTML=g.oLanguage.oPaginate.sNext;x.innerHTML=g.oLanguage.oPaginate.sLast;var v=g.oClasses;s.className=v.sPageButton+" "+v.sPageFirst;w.className=v.sPageButton+" "+v.sPagePrevious;F.className=v.sPageButton+" "+v.sPageNext;x.className=v.sPageButton+" "+v.sPageLast;m.appendChild(s);m.appendChild(w);
|
||||||
|
m.appendChild(y);m.appendChild(F);m.appendChild(x);j(s).click(function(){g.oApi._fnPageChange(g,"first")&&r(g)});j(w).click(function(){g.oApi._fnPageChange(g,"previous")&&r(g)});j(F).click(function(){g.oApi._fnPageChange(g,"next")&&r(g)});j(x).click(function(){g.oApi._fnPageChange(g,"last")&&r(g)});j("span",m).bind("mousedown",function(){return false}).bind("selectstart",function(){return false});if(g.sTableId!==""&&typeof g.aanFeatures.p=="undefined"){m.setAttribute("id",g.sTableId+"_paginate");
|
||||||
|
s.setAttribute("id",g.sTableId+"_first");w.setAttribute("id",g.sTableId+"_previous");F.setAttribute("id",g.sTableId+"_next");x.setAttribute("id",g.sTableId+"_last")}},fnUpdate:function(g,m){if(g.aanFeatures.p){var r=n.oPagination.iFullNumbersShowPages,s=Math.floor(r/2),w=Math.ceil(g.fnRecordsDisplay()/g._iDisplayLength),y=Math.ceil(g._iDisplayStart/g._iDisplayLength)+1,F="",x,v=g.oClasses;if(w<r){s=1;x=w}else if(y<=s){s=1;x=r}else if(y>=w-s){s=w-r+1;x=w}else{s=y-Math.ceil(r/2)+1;x=s+r-1}for(r=s;r<=
|
||||||
|
x;r++)F+=y!=r?'<span class="'+v.sPageButton+'">'+r+"</span>":'<span class="'+v.sPageButtonActive+'">'+r+"</span>";x=g.aanFeatures.p;var z,U=function(){g._iDisplayStart=(this.innerHTML*1-1)*g._iDisplayLength;m(g);return false},C=function(){return false};r=0;for(s=x.length;r<s;r++)if(x[r].childNodes.length!==0){z=j("span:eq(2)",x[r]);z.html(F);j("span",z).click(U).bind("mousedown",C).bind("selectstart",C);z=x[r].getElementsByTagName("span");z=[z[0],z[1],z[z.length-2],z[z.length-1]];j(z).removeClass(v.sPageButton+
|
||||||
|
" "+v.sPageButtonActive+" "+v.sPageButtonStaticDisabled);if(y==1){z[0].className+=" "+v.sPageButtonStaticDisabled;z[1].className+=" "+v.sPageButtonStaticDisabled}else{z[0].className+=" "+v.sPageButton;z[1].className+=" "+v.sPageButton}if(w===0||y==w||g._iDisplayLength==-1){z[2].className+=" "+v.sPageButtonStaticDisabled;z[3].className+=" "+v.sPageButtonStaticDisabled}else{z[2].className+=" "+v.sPageButton;z[3].className+=" "+v.sPageButton}}}}}};n.oSort={"string-asc":function(g,m){g=g.toLowerCase();
|
||||||
|
m=m.toLowerCase();return g<m?-1:g>m?1:0},"string-desc":function(g,m){g=g.toLowerCase();m=m.toLowerCase();return g<m?1:g>m?-1:0},"html-asc":function(g,m){g=g.replace(/<.*?>/g,"").toLowerCase();m=m.replace(/<.*?>/g,"").toLowerCase();return g<m?-1:g>m?1:0},"html-desc":function(g,m){g=g.replace(/<.*?>/g,"").toLowerCase();m=m.replace(/<.*?>/g,"").toLowerCase();return g<m?1:g>m?-1:0},"date-asc":function(g,m){g=Date.parse(g);m=Date.parse(m);if(isNaN(g)||g==="")g=Date.parse("01/01/1970 00:00:00");if(isNaN(m)||
|
||||||
|
m==="")m=Date.parse("01/01/1970 00:00:00");return g-m},"date-desc":function(g,m){g=Date.parse(g);m=Date.parse(m);if(isNaN(g)||g==="")g=Date.parse("01/01/1970 00:00:00");if(isNaN(m)||m==="")m=Date.parse("01/01/1970 00:00:00");return m-g},"numeric-asc":function(g,m){return(g=="-"||g===""?0:g*1)-(m=="-"||m===""?0:m*1)},"numeric-desc":function(g,m){return(m=="-"||m===""?0:m*1)-(g=="-"||g===""?0:g*1)}};n.aTypes=[function(g){if(g.length===0)return"numeric";var m,r=false;m=g.charAt(0);if("0123456789-".indexOf(m)==
|
||||||
|
-1)return null;for(var s=1;s<g.length;s++){m=g.charAt(s);if("0123456789.".indexOf(m)==-1)return null;if(m=="."){if(r)return null;r=true}}return"numeric"},function(g){var m=Date.parse(g);if(m!==null&&!isNaN(m)||g.length===0)return"date";return null},function(g){if(g.indexOf("<")!=-1&&g.indexOf(">")!=-1)return"html";return null}];n.fnVersionCheck=function(g){var m=function(x,v){for(;x.length<v;)x+="0";return x},r=n.sVersion.split(".");g=g.split(".");for(var s="",w="",y=0,F=g.length;y<F;y++){s+=m(r[y],
|
||||||
|
3);w+=m(g[y],3)}return parseInt(s,10)>=parseInt(w,10)};n._oExternConfig={iNextUnique:0};j.fn.dataTable=function(g){function m(){this.fnRecordsTotal=function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsTotal,10):this.aiDisplayMaster.length};this.fnRecordsDisplay=function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsDisplay,10):this.aiDisplay.length};this.fnDisplayEnd=function(){return this.oFeatures.bServerSide?this.oFeatures.bPaginate===false||this._iDisplayLength==-1?
|
||||||
|
this._iDisplayStart+this.aiDisplay.length:Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay):this._iDisplayEnd};this.sInstance=this.oInstance=null;this.oFeatures={bPaginate:true,bLengthChange:true,bFilter:true,bSort:true,bInfo:true,bAutoWidth:true,bProcessing:false,bSortClasses:true,bStateSave:false,bServerSide:false};this.oScroll={sX:"",sXInner:"",sY:"",bCollapse:false,bInfinite:false,iLoadGap:100,iBarWidth:0,bAutoCss:true};this.aanFeatures=[];this.oLanguage={sProcessing:"Processing...",
|
||||||
|
sLengthMenu:"Show _MENU_ entries",sZeroRecords:"No matching records found",sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sSearch:"Search:",sUrl:"",oPaginate:{sFirst:"First",sPrevious:"Previous",sNext:"Next",sLast:"Last"},fnInfoCallback:null};this.aoData=[];this.aiDisplay=[];this.aiDisplayMaster=[];this.aoColumns=[];this.iNextId=0;this.asDataSearch=
|
||||||
|
[];this.oPreviousSearch={sSearch:"",bRegex:false,bSmart:true};this.aoPreSearchCols=[];this.aaSorting=[[0,"asc",0]];this.aaSortingFixed=null;this.asStripClasses=[];this.asDestoryStrips=[];this.sDestroyWidth=0;this.fnFooterCallback=this.fnHeaderCallback=this.fnRowCallback=null;this.aoDrawCallback=[];this.fnInitComplete=null;this.sTableId="";this.nTableWrapper=this.nTBody=this.nTFoot=this.nTHead=this.nTable=null;this.bInitialised=false;this.aoOpenRows=[];this.sDom="lfrtip";this.sPaginationType="two_button";
|
||||||
|
this.iCookieDuration=7200;this.sCookiePrefix="SpryMedia_DataTables_";this.fnCookieCallback=null;this.aoStateSave=[];this.aoStateLoad=[];this.sAjaxSource=this.oLoadedState=null;this.bAjaxDataGet=true;this.fnServerData=function(a,b,c){j.ajax({url:a,data:b,success:c,dataType:"json",cache:false,error:function(d,f){f=="parsererror"&&alert("DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})};this.fnFormatNumber=function(a){if(a<1E3)return a;else{var b=
|
||||||
|
a+"";a=b.split("");var c="";b=b.length;for(var d=0;d<b;d++){if(d%3===0&&d!==0)c=","+c;c=a[b-d-1]+c}}return c};this.aLengthMenu=[10,25,50,100];this.bDrawing=this.iDraw=0;this.iDrawError=-1;this._iDisplayLength=10;this._iDisplayStart=0;this._iDisplayEnd=10;this._iRecordsDisplay=this._iRecordsTotal=0;this.bJUI=false;this.oClasses=n.oStdClasses;this.bSorted=this.bFiltered=false;this.oInit=null}function r(a){return function(){var b=[A(this[n.iApiIndex])].concat(Array.prototype.slice.call(arguments));return n.oApi[a].apply(this,
|
||||||
|
b)}}function s(a){var b,c;if(a.bInitialised===false)setTimeout(function(){s(a)},200);else{ra(a);U(a);K(a,true);a.oFeatures.bAutoWidth&&$(a);b=0;for(c=a.aoColumns.length;b<c;b++)if(a.aoColumns[b].sWidth!==null)a.aoColumns[b].nTh.style.width=u(a.aoColumns[b].sWidth);if(a.oFeatures.bSort)O(a);else{a.aiDisplay=a.aiDisplayMaster.slice();E(a);C(a)}if(a.sAjaxSource!==null&&!a.oFeatures.bServerSide)a.fnServerData.call(a.oInstance,a.sAjaxSource,[],function(d){for(b=0;b<d.aaData.length;b++)v(a,d.aaData[b]);
|
||||||
|
a.iInitDisplayStart=a._iDisplayStart;if(a.oFeatures.bSort)O(a);else{a.aiDisplay=a.aiDisplayMaster.slice();E(a);C(a)}K(a,false);w(a,d)});else if(!a.oFeatures.bServerSide){K(a,false);w(a)}}}function w(a,b){a._bInitComplete=true;if(typeof a.fnInitComplete=="function")typeof b!="undefined"?a.fnInitComplete.call(a.oInstance,a,b):a.fnInitComplete.call(a.oInstance,a)}function y(a,b,c){o(a.oLanguage,b,"sProcessing");o(a.oLanguage,b,"sLengthMenu");o(a.oLanguage,b,"sEmptyTable");o(a.oLanguage,b,"sZeroRecords");
|
||||||
|
o(a.oLanguage,b,"sInfo");o(a.oLanguage,b,"sInfoEmpty");o(a.oLanguage,b,"sInfoFiltered");o(a.oLanguage,b,"sInfoPostFix");o(a.oLanguage,b,"sSearch");if(typeof b.oPaginate!="undefined"){o(a.oLanguage.oPaginate,b.oPaginate,"sFirst");o(a.oLanguage.oPaginate,b.oPaginate,"sPrevious");o(a.oLanguage.oPaginate,b.oPaginate,"sNext");o(a.oLanguage.oPaginate,b.oPaginate,"sLast")}typeof b.sEmptyTable=="undefined"&&typeof b.sZeroRecords!="undefined"&&o(a.oLanguage,b,"sZeroRecords","sEmptyTable");c&&s(a)}function F(a,
|
||||||
|
b){a.aoColumns[a.aoColumns.length++]={sType:null,_bAutoType:true,bVisible:true,bSearchable:true,bSortable:true,asSorting:["asc","desc"],sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,sTitle:b?b.innerHTML:"",sName:"",sWidth:null,sWidthOrig:null,sClass:null,fnRender:null,bUseRendered:true,iDataSort:a.aoColumns.length-1,sSortDataType:"std",nTh:b?b:p.createElement("th"),nTf:null,anThExtra:[],anTfExtra:[]};b=a.aoColumns.length-1;if(typeof a.aoPreSearchCols[b]=="undefined"||a.aoPreSearchCols[b]===
|
||||||
|
null)a.aoPreSearchCols[b]={sSearch:"",bRegex:false,bSmart:true};else{if(typeof a.aoPreSearchCols[b].bRegex=="undefined")a.aoPreSearchCols[b].bRegex=true;if(typeof a.aoPreSearchCols[b].bSmart=="undefined")a.aoPreSearchCols[b].bSmart=true}x(a,b,null)}function x(a,b,c){b=a.aoColumns[b];if(typeof c!="undefined"&&c!==null){if(typeof c.sType!="undefined"){b.sType=c.sType;b._bAutoType=false}o(b,c,"bVisible");o(b,c,"bSearchable");o(b,c,"bSortable");o(b,c,"sTitle");o(b,c,"sName");o(b,c,"sWidth");o(b,c,"sWidth",
|
||||||
|
"sWidthOrig");o(b,c,"sClass");o(b,c,"fnRender");o(b,c,"bUseRendered");o(b,c,"iDataSort");o(b,c,"asSorting");o(b,c,"sSortDataType")}if(!a.oFeatures.bSort)b.bSortable=false;if(!b.bSortable||j.inArray("asc",b.asSorting)==-1&&j.inArray("desc",b.asSorting)==-1){b.sSortingClass=a.oClasses.sSortableNone;b.sSortingClassJUI=""}else if(j.inArray("asc",b.asSorting)!=-1&&j.inArray("desc",b.asSorting)==-1){b.sSortingClass=a.oClasses.sSortableAsc;b.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed}else if(j.inArray("asc",
|
||||||
|
b.asSorting)==-1&&j.inArray("desc",b.asSorting)!=-1){b.sSortingClass=a.oClasses.sSortableDesc;b.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed}}function v(a,b){if(b.length!=a.aoColumns.length&&a.iDrawError!=a.iDraw){H(a,0,"Added data (size "+b.length+") does not match known number of columns ("+a.aoColumns.length+")");a.iDrawError=a.iDraw;return-1}b=b.slice();var c=a.aoData.length;a.aoData.push({nTr:p.createElement("tr"),_iId:a.iNextId++,_aData:b,_anHidden:[],_sRowStripe:""});for(var d,f,e=0;e<b.length;e++){d=
|
||||||
|
p.createElement("td");if(b[e]===null)b[e]="";if(typeof a.aoColumns[e].fnRender=="function"){f=a.aoColumns[e].fnRender({iDataRow:c,iDataColumn:e,aData:b,oSettings:a});d.innerHTML=f;if(a.aoColumns[e].bUseRendered)a.aoData[c]._aData[e]=f}else d.innerHTML=b[e];if(typeof b[e]!="string")b[e]+="";b[e]=j.trim(b[e]);if(a.aoColumns[e].sClass!==null)d.className=a.aoColumns[e].sClass;if(a.aoColumns[e]._bAutoType&&a.aoColumns[e].sType!="string"){f=aa(a.aoData[c]._aData[e]);if(a.aoColumns[e].sType===null)a.aoColumns[e].sType=
|
||||||
|
f;else if(a.aoColumns[e].sType!=f)a.aoColumns[e].sType="string"}if(a.aoColumns[e].bVisible){a.aoData[c].nTr.appendChild(d);a.aoData[c]._anHidden[e]=null}else a.aoData[c]._anHidden[e]=d}a.aiDisplayMaster.push(c);return c}function z(a){var b,c,d,f,e,i,h,k;if(a.sAjaxSource===null){h=a.nTBody.childNodes;b=0;for(c=h.length;b<c;b++)if(h[b].nodeName.toUpperCase()=="TR"){i=a.aoData.length;a.aoData.push({nTr:h[b],_iId:a.iNextId++,_aData:[],_anHidden:[],_sRowStripe:""});a.aiDisplayMaster.push(i);k=a.aoData[i]._aData;
|
||||||
|
i=h[b].childNodes;d=e=0;for(f=i.length;d<f;d++)if(i[d].nodeName.toUpperCase()=="TD"){k[e]=j.trim(i[d].innerHTML);e++}}}h=R(a);i=[];b=0;for(c=h.length;b<c;b++){d=0;for(f=h[b].childNodes.length;d<f;d++){e=h[b].childNodes[d];e.nodeName.toUpperCase()=="TD"&&i.push(e)}}i.length!=h.length*a.aoColumns.length&&H(a,1,"Unexpected number of TD elements. Expected "+h.length*a.aoColumns.length+" and got "+i.length+". DataTables does not support rowspan / colspan in the table body, and there must be one cell for each row/column combination.");
|
||||||
|
h=0;for(d=a.aoColumns.length;h<d;h++){if(a.aoColumns[h].sTitle===null)a.aoColumns[h].sTitle=a.aoColumns[h].nTh.innerHTML;f=a.aoColumns[h]._bAutoType;e=typeof a.aoColumns[h].fnRender=="function";k=a.aoColumns[h].sClass!==null;var l=a.aoColumns[h].bVisible,q,t;if(f||e||k||!l){b=0;for(c=a.aoData.length;b<c;b++){q=i[b*d+h];if(f)if(a.aoColumns[h].sType!="string"){t=aa(a.aoData[b]._aData[h]);if(a.aoColumns[h].sType===null)a.aoColumns[h].sType=t;else if(a.aoColumns[h].sType!=t)a.aoColumns[h].sType="string"}if(e){t=
|
||||||
|
a.aoColumns[h].fnRender({iDataRow:b,iDataColumn:h,aData:a.aoData[b]._aData,oSettings:a});q.innerHTML=t;if(a.aoColumns[h].bUseRendered)a.aoData[b]._aData[h]=t}if(k)q.className+=" "+a.aoColumns[h].sClass;if(l)a.aoData[b]._anHidden[h]=null;else{a.aoData[b]._anHidden[h]=q;q.parentNode.removeChild(q)}}}}}function U(a){var b,c,d,f,e,i=a.nTHead.getElementsByTagName("tr"),h=0,k;if(a.nTHead.getElementsByTagName("th").length!==0){b=0;for(d=a.aoColumns.length;b<d;b++){c=a.aoColumns[b].nTh;a.aoColumns[b].sClass!==
|
||||||
|
null&&j(c).addClass(a.aoColumns[b].sClass);f=1;for(e=i.length;f<e;f++){k=j(i[f]).children();a.aoColumns[b].anThExtra.push(k[b-h]);a.aoColumns[b].bVisible||i[f].removeChild(k[b-h])}if(a.aoColumns[b].bVisible){if(a.aoColumns[b].sTitle!=c.innerHTML)c.innerHTML=a.aoColumns[b].sTitle}else{c.parentNode.removeChild(c);h++}}}else{f=p.createElement("tr");b=0;for(d=a.aoColumns.length;b<d;b++){c=a.aoColumns[b].nTh;c.innerHTML=a.aoColumns[b].sTitle;a.aoColumns[b].sClass!==null&&j(c).addClass(a.aoColumns[b].sClass);
|
||||||
|
a.aoColumns[b].bVisible&&f.appendChild(c)}j(a.nTHead).html("")[0].appendChild(f)}if(a.bJUI){b=0;for(d=a.aoColumns.length;b<d;b++){c=a.aoColumns[b].nTh;f=p.createElement("div");f.className=a.oClasses.sSortJUIWrapper;j(c).contents().appendTo(f);f.appendChild(p.createElement("span"));c.appendChild(f)}}d=function(){this.onselectstart=function(){return false};return false};if(a.oFeatures.bSort)for(b=0;b<a.aoColumns.length;b++)if(a.aoColumns[b].bSortable!==false){ba(a,a.aoColumns[b].nTh,b);j(a.aoColumns[b].nTh).mousedown(d)}else j(a.aoColumns[b].nTh).addClass(a.oClasses.sSortableNone);
|
||||||
|
if(a.nTFoot!==null){h=0;i=a.nTFoot.getElementsByTagName("tr");c=i[0].getElementsByTagName("th");b=0;for(d=c.length;b<d;b++)if(typeof a.aoColumns[b]!="undefined"){a.aoColumns[b].nTf=c[b-h];if(a.oClasses.sFooterTH!=="")a.aoColumns[b].nTf.className+=" "+a.oClasses.sFooterTH;f=1;for(e=i.length;f<e;f++){k=j(i[f]).children();a.aoColumns[b].anTfExtra.push(k[b-h]);a.aoColumns[b].bVisible||i[f].removeChild(k[b-h])}if(!a.aoColumns[b].bVisible){c[b-h].parentNode.removeChild(c[b-h]);h++}}}}function C(a){var b,
|
||||||
|
c,d=[],f=0,e=false;b=a.asStripClasses.length;c=a.aoOpenRows.length;a.bDrawing=true;if(typeof a.iInitDisplayStart!="undefined"&&a.iInitDisplayStart!=-1){a._iDisplayStart=a.oFeatures.bServerSide?a.iInitDisplayStart:a.iInitDisplayStart>=a.fnRecordsDisplay()?0:a.iInitDisplayStart;a.iInitDisplayStart=-1;E(a)}if(!(!a.bDestroying&&a.oFeatures.bServerSide&&!sa(a))){a.oFeatures.bServerSide||a.iDraw++;if(a.aiDisplay.length!==0){var i=a._iDisplayStart,h=a._iDisplayEnd;if(a.oFeatures.bServerSide){i=0;h=a.aoData.length}for(i=
|
||||||
|
i;i<h;i++){var k=a.aoData[a.aiDisplay[i]],l=k.nTr;if(b!==0){var q=a.asStripClasses[f%b];if(k._sRowStripe!=q){j(l).removeClass(k._sRowStripe).addClass(q);k._sRowStripe=q}}if(typeof a.fnRowCallback=="function"){l=a.fnRowCallback.call(a.oInstance,l,a.aoData[a.aiDisplay[i]]._aData,f,i);if(!l&&!e){H(a,0,"A node was not returned by fnRowCallback");e=true}}d.push(l);f++;if(c!==0)for(k=0;k<c;k++)l==a.aoOpenRows[k].nParent&&d.push(a.aoOpenRows[k].nTr)}}else{d[0]=p.createElement("tr");if(typeof a.asStripClasses[0]!=
|
||||||
|
"undefined")d[0].className=a.asStripClasses[0];e=p.createElement("td");e.setAttribute("valign","top");e.colSpan=S(a);e.className=a.oClasses.sRowEmpty;e.innerHTML=typeof a.oLanguage.sEmptyTable!="undefined"&&a.fnRecordsTotal()===0?a.oLanguage.sEmptyTable:a.oLanguage.sZeroRecords.replace("_MAX_",a.fnFormatNumber(a.fnRecordsTotal()));d[f].appendChild(e)}typeof a.fnHeaderCallback=="function"&&a.fnHeaderCallback.call(a.oInstance,j(">tr",a.nTHead)[0],V(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay);
|
||||||
|
typeof a.fnFooterCallback=="function"&&a.fnFooterCallback.call(a.oInstance,j(">tr",a.nTFoot)[0],V(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay);f=p.createDocumentFragment();b=p.createDocumentFragment();if(a.nTBody){e=a.nTBody.parentNode;b.appendChild(a.nTBody);if(!a.oScroll.bInfinite||!a._bInitComplete||a.bSorted||a.bFiltered){c=a.nTBody.childNodes;for(b=c.length-1;b>=0;b--)c[b].parentNode.removeChild(c[b])}b=0;for(c=d.length;b<c;b++)f.appendChild(d[b]);a.nTBody.appendChild(f);e!==null&&e.appendChild(a.nTBody)}for(b=
|
||||||
|
a.aoDrawCallback.length-1;b>=0;b--)a.aoDrawCallback[b].fn.call(a.oInstance,a);a.bSorted=false;a.bFiltered=false;a.bDrawing=false;if(a.oFeatures.bServerSide){K(a,false);typeof a._bInitComplete=="undefined"&&w(a)}}}function W(a){if(a.oFeatures.bSort)O(a,a.oPreviousSearch);else if(a.oFeatures.bFilter)P(a,a.oPreviousSearch);else{E(a);C(a)}}function sa(a){if(a.bAjaxDataGet){K(a,true);var b=a.aoColumns.length,c=[],d;a.iDraw++;c.push({name:"sEcho",value:a.iDraw});c.push({name:"iColumns",value:b});c.push({name:"sColumns",
|
||||||
|
value:ca(a)});c.push({name:"iDisplayStart",value:a._iDisplayStart});c.push({name:"iDisplayLength",value:a.oFeatures.bPaginate!==false?a._iDisplayLength:-1});if(a.oFeatures.bFilter!==false){c.push({name:"sSearch",value:a.oPreviousSearch.sSearch});c.push({name:"bRegex",value:a.oPreviousSearch.bRegex});for(d=0;d<b;d++){c.push({name:"sSearch_"+d,value:a.aoPreSearchCols[d].sSearch});c.push({name:"bRegex_"+d,value:a.aoPreSearchCols[d].bRegex});c.push({name:"bSearchable_"+d,value:a.aoColumns[d].bSearchable})}}if(a.oFeatures.bSort!==
|
||||||
|
false){var f=a.aaSortingFixed!==null?a.aaSortingFixed.length:0,e=a.aaSorting.length;c.push({name:"iSortingCols",value:f+e});for(d=0;d<f;d++){c.push({name:"iSortCol_"+d,value:a.aaSortingFixed[d][0]});c.push({name:"sSortDir_"+d,value:a.aaSortingFixed[d][1]})}for(d=0;d<e;d++){c.push({name:"iSortCol_"+(d+f),value:a.aaSorting[d][0]});c.push({name:"sSortDir_"+(d+f),value:a.aaSorting[d][1]})}for(d=0;d<b;d++)c.push({name:"bSortable_"+d,value:a.aoColumns[d].bSortable})}a.fnServerData.call(a.oInstance,a.sAjaxSource,
|
||||||
|
c,function(i){ta(a,i)});return false}else return true}function ta(a,b){if(typeof b.sEcho!="undefined")if(b.sEcho*1<a.iDraw)return;else a.iDraw=b.sEcho*1;if(!a.oScroll.bInfinite||a.oScroll.bInfinite&&(a.bSorted||a.bFiltered))da(a);a._iRecordsTotal=b.iTotalRecords;a._iRecordsDisplay=b.iTotalDisplayRecords;var c=ca(a);if(c=typeof b.sColumns!="undefined"&&c!==""&&b.sColumns!=c)var d=ua(a,b.sColumns);for(var f=0,e=b.aaData.length;f<e;f++)if(c){for(var i=[],h=0,k=a.aoColumns.length;h<k;h++)i.push(b.aaData[f][d[h]]);
|
||||||
|
v(a,i)}else v(a,b.aaData[f]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=false;C(a);a.bAjaxDataGet=true;K(a,false)}function ra(a){var b=p.createElement("div");a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=p.createElement("div");a.nTableWrapper.className=a.oClasses.sWrapper;a.sTableId!==""&&a.nTableWrapper.setAttribute("id",a.sTableId+"_wrapper");for(var c=a.nTableWrapper,d=a.sDom.split(""),f,e,i,h,k,l,q,t=0;t<d.length;t++){e=0;i=d[t];if(i=="<"){h=p.createElement("div");k=d[t+
|
||||||
|
1];if(k=="'"||k=='"'){l="";for(q=2;d[t+q]!=k;){l+=d[t+q];q++}if(l=="H")l="fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix";else if(l=="F")l="fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix";if(l.indexOf(".")!=-1){k=l.split(".");h.setAttribute("id",k[0].substr(1,k[0].length-1));h.className=k[1]}else if(l.charAt(0)=="#")h.setAttribute("id",l.substr(1,l.length-1));else h.className=l;t+=q}c.appendChild(h);c=h}else if(i==">")c=c.parentNode;
|
||||||
|
else if(i=="l"&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange){f=va(a);e=1}else if(i=="f"&&a.oFeatures.bFilter){f=wa(a);e=1}else if(i=="r"&&a.oFeatures.bProcessing){f=xa(a);e=1}else if(i=="t"){f=ya(a);e=1}else if(i=="i"&&a.oFeatures.bInfo){f=za(a);e=1}else if(i=="p"&&a.oFeatures.bPaginate){f=Aa(a);e=1}else if(n.aoFeatures.length!==0){h=n.aoFeatures;q=0;for(k=h.length;q<k;q++)if(i==h[q].cFeature){if(f=h[q].fnInit(a))e=1;break}}if(e==1&&f!==null){if(typeof a.aanFeatures[i]!="object")a.aanFeatures[i]=
|
||||||
|
[];a.aanFeatures[i].push(f);c.appendChild(f)}}b.parentNode.replaceChild(a.nTableWrapper,b)}function ya(a){if(a.oScroll.sX===""&&a.oScroll.sY==="")return a.nTable;var b=p.createElement("div"),c=p.createElement("div"),d=p.createElement("div"),f=p.createElement("div"),e=p.createElement("div"),i=p.createElement("div"),h=a.nTable.cloneNode(false),k=a.nTable.cloneNode(false),l=a.nTable.getElementsByTagName("thead")[0],q=a.nTable.getElementsByTagName("tfoot").length===0?null:a.nTable.getElementsByTagName("tfoot")[0],
|
||||||
|
t=typeof g.bJQueryUI!="undefined"&&g.bJQueryUI?n.oJUIClasses:n.oStdClasses;c.appendChild(d);e.appendChild(i);f.appendChild(a.nTable);b.appendChild(c);b.appendChild(f);d.appendChild(h);h.appendChild(l);if(q!==null){b.appendChild(e);i.appendChild(k);k.appendChild(q)}b.className=t.sScrollWrapper;c.className=t.sScrollHead;d.className=t.sScrollHeadInner;f.className=t.sScrollBody;e.className=t.sScrollFoot;i.className=t.sScrollFootInner;if(a.oScroll.bAutoCss){c.style.overflow="hidden";c.style.position="relative";
|
||||||
|
e.style.overflow="hidden";f.style.overflow="auto"}c.style.border="0";e.style.border="0";d.style.width="150%";h.removeAttribute("id");h.style.marginLeft="0";a.nTable.style.marginLeft="0";if(q!==null){k.removeAttribute("id");k.style.marginLeft="0"}d=j(">caption",a.nTable);i=0;for(k=d.length;i<k;i++)h.appendChild(d[i]);if(a.oScroll.sX!==""){c.style.width=u(a.oScroll.sX);f.style.width=u(a.oScroll.sX);if(q!==null)e.style.width=u(a.oScroll.sX);j(f).scroll(function(){c.scrollLeft=this.scrollLeft;if(q!==
|
||||||
|
null)e.scrollLeft=this.scrollLeft})}if(a.oScroll.sY!=="")f.style.height=u(a.oScroll.sY);a.aoDrawCallback.push({fn:Ba,sName:"scrolling"});a.oScroll.bInfinite&&j(f).scroll(function(){if(!a.bDrawing)if(j(this).scrollTop()+j(this).height()>j(a.nTable).height()-a.oScroll.iLoadGap)if(a.fnDisplayEnd()<a.fnRecordsDisplay()){ea(a,"next");E(a);C(a)}});a.nScrollHead=c;a.nScrollFoot=e;return b}function Ba(a){var b=a.nScrollHead.getElementsByTagName("div")[0],c=b.getElementsByTagName("table")[0],d=a.nTable.parentNode,
|
||||||
|
f,e,i,h,k,l,q,t,G=[];i=a.nTable.getElementsByTagName("thead");i.length>0&&a.nTable.removeChild(i[0]);if(a.nTFoot!==null){k=a.nTable.getElementsByTagName("tfoot");k.length>0&&a.nTable.removeChild(k[0])}i=a.nTHead.cloneNode(true);a.nTable.insertBefore(i,a.nTable.childNodes[0]);if(a.nTFoot!==null){k=a.nTFoot.cloneNode(true);a.nTable.insertBefore(k,a.nTable.childNodes[1])}var J=fa(i);f=0;for(e=J.length;f<e;f++){q=ga(a,f);J[f].style.width=a.aoColumns[q].sWidth}a.nTFoot!==null&&L(function(B){B.style.width=
|
||||||
|
""},k.getElementsByTagName("tr"));f=j(a.nTable).outerWidth();if(a.oScroll.sX===""){a.nTable.style.width="100%";if(j.browser.msie&&j.browser.version<=7)a.nTable.style.width=u(j(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else if(a.oScroll.sXInner!=="")a.nTable.style.width=u(a.oScroll.sXInner);else if(f==j(d).width()&&j(d).height()<j(a.nTable).height()){a.nTable.style.width=u(f-a.oScroll.iBarWidth);if(j(a.nTable).outerWidth()>f-a.oScroll.iBarWidth)a.nTable.style.width=u(f)}else a.nTable.style.width=
|
||||||
|
u(f);f=j(a.nTable).outerWidth();e=a.nTHead.getElementsByTagName("tr");i=i.getElementsByTagName("tr");L(function(B,I){l=B.style;l.paddingTop="0";l.paddingBottom="0";l.borderTopWidth="0";l.borderBottomWidth="0";l.height=0;t=j(B).width();I.style.width=u(t);G.push(t)},i,e);j(i).height(0);if(a.nTFoot!==null){h=k.getElementsByTagName("tr");k=a.nTFoot.getElementsByTagName("tr");L(function(B,I){l=B.style;l.paddingTop="0";l.paddingBottom="0";l.borderTopWidth="0";l.borderBottomWidth="0";t=j(B).width();I.style.width=
|
||||||
|
u(t);G.push(t)},h,k);j(h).height(0)}L(function(B){B.innerHTML="";B.style.width=u(G.shift())},i);a.nTFoot!==null&&L(function(B){B.innerHTML="";B.style.width=u(G.shift())},h);if(j(a.nTable).outerWidth()<f)if(a.oScroll.sX==="")H(a,1,"The table cannot fit into the current element which will cause column misalignment. It is suggested that you enable x-scrolling or increase the width the table has in which to be drawn");else a.oScroll.sXInner!==""&&H(a,1,"The table cannot fit into the current element which will cause column misalignment. It is suggested that you increase the sScrollXInner property to allow it to draw in a larger area, or simply remove that parameter to allow automatic calculation");
|
||||||
|
if(a.oScroll.sY==="")if(j.browser.msie&&j.browser.version<=7)d.style.height=u(a.nTable.offsetHeight+a.oScroll.iBarWidth);if(a.oScroll.sY!==""&&a.oScroll.bCollapse){d.style.height=u(a.oScroll.sY);h=a.oScroll.sX!==""&&a.nTable.offsetWidth>d.offsetWidth?a.oScroll.iBarWidth:0;if(a.nTable.offsetHeight<d.offsetHeight)d.style.height=u(j(a.nTable).height()+h)}h=j(a.nTable).outerWidth();c.style.width=u(h);b.style.width=u(h+a.oScroll.iBarWidth);b.parentNode.style.width=u(j(d).width());if(a.nTFoot!==null){b=
|
||||||
|
a.nScrollFoot.getElementsByTagName("div")[0];c=b.getElementsByTagName("table")[0];b.style.width=u(a.nTable.offsetWidth+a.oScroll.iBarWidth);c.style.width=u(a.nTable.offsetWidth)}if(a.bSorted||a.bFiltered)d.scrollTop=0}function X(a){if(a.oFeatures.bAutoWidth===false)return false;$(a);for(var b=0,c=a.aoColumns.length;b<c;b++)a.aoColumns[b].nTh.style.width=a.aoColumns[b].sWidth}function wa(a){var b=p.createElement("div");a.sTableId!==""&&typeof a.aanFeatures.f=="undefined"&&b.setAttribute("id",a.sTableId+
|
||||||
|
"_filter");b.className=a.oClasses.sFilter;b.innerHTML=a.oLanguage.sSearch+(a.oLanguage.sSearch===""?"":" ")+'<input type="text" />';var c=j("input",b);c.val(a.oPreviousSearch.sSearch.replace('"',"""));c.keyup(function(){for(var d=a.aanFeatures.f,f=0,e=d.length;f<e;f++)d[f]!=this.parentNode&&j("input",d[f]).val(this.value);this.value!=a.oPreviousSearch.sSearch&&P(a,{sSearch:this.value,bRegex:a.oPreviousSearch.bRegex,bSmart:a.oPreviousSearch.bSmart})});c.keypress(function(d){if(d.keyCode==13)return false});
|
||||||
|
return b}function P(a,b,c){Ca(a,b.sSearch,c,b.bRegex,b.bSmart);for(b=0;b<a.aoPreSearchCols.length;b++)Da(a,a.aoPreSearchCols[b].sSearch,b,a.aoPreSearchCols[b].bRegex,a.aoPreSearchCols[b].bSmart);n.afnFiltering.length!==0&&Ea(a);a.bFiltered=true;a._iDisplayStart=0;E(a);C(a);ha(a,0)}function Ea(a){for(var b=n.afnFiltering,c=0,d=b.length;c<d;c++)for(var f=0,e=0,i=a.aiDisplay.length;e<i;e++){var h=a.aiDisplay[e-f];if(!b[c](a,a.aoData[h]._aData,h)){a.aiDisplay.splice(e-f,1);f++}}}function Da(a,b,c,d,f){if(b!==
|
||||||
|
""){var e=0;b=ia(b,d,f);for(d=a.aiDisplay.length-1;d>=0;d--){f=ja(a.aoData[a.aiDisplay[d]]._aData[c],a.aoColumns[c].sType);if(!b.test(f)){a.aiDisplay.splice(d,1);e++}}}}function Ca(a,b,c,d,f){var e=ia(b,d,f);if(typeof c=="undefined"||c===null)c=0;if(n.afnFiltering.length!==0)c=1;if(b.length<=0){a.aiDisplay.splice(0,a.aiDisplay.length);a.aiDisplay=a.aiDisplayMaster.slice()}else if(a.aiDisplay.length==a.aiDisplayMaster.length||a.oPreviousSearch.sSearch.length>b.length||c==1||b.indexOf(a.oPreviousSearch.sSearch)!==
|
||||||
|
0){a.aiDisplay.splice(0,a.aiDisplay.length);ha(a,1);for(c=0;c<a.aiDisplayMaster.length;c++)e.test(a.asDataSearch[c])&&a.aiDisplay.push(a.aiDisplayMaster[c])}else{var i=0;for(c=0;c<a.asDataSearch.length;c++)if(!e.test(a.asDataSearch[c])){a.aiDisplay.splice(c-i,1);i++}}a.oPreviousSearch.sSearch=b;a.oPreviousSearch.bRegex=d;a.oPreviousSearch.bSmart=f}function ha(a,b){a.asDataSearch.splice(0,a.asDataSearch.length);b=typeof b!="undefined"&&b==1?a.aiDisplayMaster:a.aiDisplay;for(var c=0,d=b.length;c<d;c++)a.asDataSearch[c]=
|
||||||
|
ka(a,a.aoData[b[c]]._aData)}function ka(a,b){for(var c="",d=p.createElement("div"),f=0,e=a.aoColumns.length;f<e;f++)if(a.aoColumns[f].bSearchable)c+=ja(b[f],a.aoColumns[f].sType)+" ";if(c.indexOf("&")!==-1){d.innerHTML=c;c=d.textContent?d.textContent:d.innerText;c=c.replace(/\n/g," ").replace(/\r/g,"")}return c}function ia(a,b,c){if(c){a=b?a.split(" "):la(a).split(" ");a="^(?=.*?"+a.join(")(?=.*?")+").*$";return new RegExp(a,"i")}else{a=b?a:la(a);return new RegExp(a,"i")}}function ja(a,b){if(typeof n.ofnSearch[b]==
|
||||||
|
"function")return n.ofnSearch[b](a);else if(b=="html")return a.replace(/\n/g," ").replace(/<.*?>/g,"");else if(typeof a=="string")return a.replace(/\n/g," ");return a}function O(a,b){var c,d,f,e,i,h,k=[],l=[],q=n.oSort,t=a.aoData,G=a.aoColumns;if(!a.oFeatures.bServerSide&&(a.aaSorting.length!==0||a.aaSortingFixed!==null)){k=a.aaSortingFixed!==null?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(f=0;f<k.length;f++){e=k[f][0];i=M(a,e);h=a.aoColumns[e].sSortDataType;if(typeof n.afnSortData[h]!=
|
||||||
|
"undefined"){var J=n.afnSortData[h](a,e,i);i=0;for(h=t.length;i<h;i++)t[i]._aData[e]=J[i]}}f=0;for(e=a.aiDisplayMaster.length;f<e;f++)l[a.aiDisplayMaster[f]]=f;var B=k.length;a.aiDisplayMaster.sort(function(I,Y){var N;for(f=0;f<B;f++){c=G[k[f][0]].iDataSort;d=G[c].sType;N=q[d+"-"+k[f][1]](t[I]._aData[c],t[Y]._aData[c]);if(N!==0)return N}return q["numeric-asc"](l[I],l[Y])})}if(typeof b=="undefined"||b)T(a);a.bSorted=true;if(a.oFeatures.bFilter)P(a,a.oPreviousSearch,1);else{a.aiDisplay=a.aiDisplayMaster.slice();
|
||||||
|
a._iDisplayStart=0;E(a);C(a)}}function ba(a,b,c,d){j(b).click(function(f){if(a.aoColumns[c].bSortable!==false){var e=function(){var i,h;if(f.shiftKey){for(var k=false,l=0;l<a.aaSorting.length;l++)if(a.aaSorting[l][0]==c){k=true;i=a.aaSorting[l][0];h=a.aaSorting[l][2]+1;if(typeof a.aoColumns[i].asSorting[h]=="undefined")a.aaSorting.splice(l,1);else{a.aaSorting[l][1]=a.aoColumns[i].asSorting[h];a.aaSorting[l][2]=h}break}k===false&&a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0])}else if(a.aaSorting.length==
|
||||||
|
1&&a.aaSorting[0][0]==c){i=a.aaSorting[0][0];h=a.aaSorting[0][2]+1;if(typeof a.aoColumns[i].asSorting[h]=="undefined")h=0;a.aaSorting[0][1]=a.aoColumns[i].asSorting[h];a.aaSorting[0][2]=h}else{a.aaSorting.splice(0,a.aaSorting.length);a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0])}O(a)};if(a.oFeatures.bProcessing){K(a,true);setTimeout(function(){e();a.oFeatures.bServerSide||K(a,false)},0)}else e();typeof d=="function"&&d(a)}})}function T(a){var b,c,d,f,e,i=a.aoColumns.length,h=a.oClasses;for(b=
|
||||||
|
0;b<i;b++)a.aoColumns[b].bSortable&&j(a.aoColumns[b].nTh).removeClass(h.sSortAsc+" "+h.sSortDesc+" "+a.aoColumns[b].sSortingClass);f=a.aaSortingFixed!==null?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(b=0;b<a.aoColumns.length;b++)if(a.aoColumns[b].bSortable){e=a.aoColumns[b].sSortingClass;d=-1;for(c=0;c<f.length;c++)if(f[c][0]==b){e=f[c][1]=="asc"?h.sSortAsc:h.sSortDesc;d=c;break}j(a.aoColumns[b].nTh).addClass(e);if(a.bJUI){c=j("span",a.aoColumns[b].nTh);c.removeClass(h.sSortJUIAsc+
|
||||||
|
" "+h.sSortJUIDesc+" "+h.sSortJUI+" "+h.sSortJUIAscAllowed+" "+h.sSortJUIDescAllowed);c.addClass(d==-1?a.aoColumns[b].sSortingClassJUI:f[d][1]=="asc"?h.sSortJUIAsc:h.sSortJUIDesc)}}else j(a.aoColumns[b].nTh).addClass(a.aoColumns[b].sSortingClass);e=h.sSortColumn;if(a.oFeatures.bSort&&a.oFeatures.bSortClasses){d=Z(a);if(d.length>=i)for(b=0;b<i;b++)if(d[b].className.indexOf(e+"1")!=-1){c=0;for(a=d.length/i;c<a;c++)d[i*c+b].className=j.trim(d[i*c+b].className.replace(e+"1",""))}else if(d[b].className.indexOf(e+
|
||||||
|
"2")!=-1){c=0;for(a=d.length/i;c<a;c++)d[i*c+b].className=j.trim(d[i*c+b].className.replace(e+"2",""))}else if(d[b].className.indexOf(e+"3")!=-1){c=0;for(a=d.length/i;c<a;c++)d[i*c+b].className=j.trim(d[i*c+b].className.replace(" "+e+"3",""))}h=1;var k;for(b=0;b<f.length;b++){k=parseInt(f[b][0],10);c=0;for(a=d.length/i;c<a;c++)d[i*c+k].className+=" "+e+h;h<3&&h++}}}function Aa(a){if(a.oScroll.bInfinite)return null;var b=p.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;n.oPagination[a.sPaginationType].fnInit(a,
|
||||||
|
b,function(c){E(c);C(c)});typeof a.aanFeatures.p=="undefined"&&a.aoDrawCallback.push({fn:function(c){n.oPagination[c.sPaginationType].fnUpdate(c,function(d){E(d);C(d)})},sName:"pagination"});return b}function ea(a,b){var c=a._iDisplayStart;if(b=="first")a._iDisplayStart=0;else if(b=="previous"){a._iDisplayStart=a._iDisplayLength>=0?a._iDisplayStart-a._iDisplayLength:0;if(a._iDisplayStart<0)a._iDisplayStart=0}else if(b=="next")if(a._iDisplayLength>=0){if(a._iDisplayStart+a._iDisplayLength<a.fnRecordsDisplay())a._iDisplayStart+=
|
||||||
|
a._iDisplayLength}else a._iDisplayStart=0;else if(b=="last")if(a._iDisplayLength>=0){b=parseInt((a.fnRecordsDisplay()-1)/a._iDisplayLength,10)+1;a._iDisplayStart=(b-1)*a._iDisplayLength}else a._iDisplayStart=0;else H(a,0,"Unknown paging action: "+b);return c!=a._iDisplayStart}function za(a){var b=p.createElement("div");b.className=a.oClasses.sInfo;if(typeof a.aanFeatures.i=="undefined"){a.aoDrawCallback.push({fn:Fa,sName:"information"});a.sTableId!==""&&b.setAttribute("id",a.sTableId+"_info")}return b}
|
||||||
|
function Fa(a){if(!(!a.oFeatures.bInfo||a.aanFeatures.i.length===0)){var b=a._iDisplayStart+1,c=a.fnDisplayEnd(),d=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),e=a.fnFormatNumber(b),i=a.fnFormatNumber(c),h=a.fnFormatNumber(d),k=a.fnFormatNumber(f);if(a.oScroll.bInfinite)e=a.fnFormatNumber(1);e=a.fnRecordsDisplay()===0&&a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfoEmpty+a.oLanguage.sInfoPostFix:a.fnRecordsDisplay()===0?a.oLanguage.sInfoEmpty+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",
|
||||||
|
h)+a.oLanguage.sInfoPostFix:a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfo.replace("_START_",e).replace("_END_",i).replace("_TOTAL_",k)+a.oLanguage.sInfoPostFix:a.oLanguage.sInfo.replace("_START_",e).replace("_END_",i).replace("_TOTAL_",k)+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",a.fnFormatNumber(a.fnRecordsTotal()))+a.oLanguage.sInfoPostFix;if(a.oLanguage.fnInfoCallback!==null)e=a.oLanguage.fnInfoCallback(a,b,c,d,f,e);a=a.aanFeatures.i;b=0;for(c=a.length;b<c;b++)j(a[b]).html(e)}}
|
||||||
|
function va(a){if(a.oScroll.bInfinite)return null;var b='<select size="1" '+(a.sTableId===""?"":'name="'+a.sTableId+'_length"')+">",c,d;if(a.aLengthMenu.length==2&&typeof a.aLengthMenu[0]=="object"&&typeof a.aLengthMenu[1]=="object"){c=0;for(d=a.aLengthMenu[0].length;c<d;c++)b+='<option value="'+a.aLengthMenu[0][c]+'">'+a.aLengthMenu[1][c]+"</option>"}else{c=0;for(d=a.aLengthMenu.length;c<d;c++)b+='<option value="'+a.aLengthMenu[c]+'">'+a.aLengthMenu[c]+"</option>"}b+="</select>";var f=p.createElement("div");
|
||||||
|
a.sTableId!==""&&typeof a.aanFeatures.l=="undefined"&&f.setAttribute("id",a.sTableId+"_length");f.className=a.oClasses.sLength;f.innerHTML=a.oLanguage.sLengthMenu.replace("_MENU_",b);j('select option[value="'+a._iDisplayLength+'"]',f).attr("selected",true);j("select",f).change(function(){var e=j(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;c<d;c++)i[c]!=this.parentNode&&j("select",i[c]).val(e);a._iDisplayLength=parseInt(e,10);E(a);if(a.fnDisplayEnd()==a.fnRecordsDisplay()){a._iDisplayStart=a.fnDisplayEnd()-
|
||||||
|
a._iDisplayLength;if(a._iDisplayStart<0)a._iDisplayStart=0}if(a._iDisplayLength==-1)a._iDisplayStart=0;C(a)});return f}function xa(a){var b=p.createElement("div");a.sTableId!==""&&typeof a.aanFeatures.r=="undefined"&&b.setAttribute("id",a.sTableId+"_processing");b.innerHTML=a.oLanguage.sProcessing;b.className=a.oClasses.sProcessing;a.nTable.parentNode.insertBefore(b,a.nTable);return b}function K(a,b){if(a.oFeatures.bProcessing){a=a.aanFeatures.r;for(var c=0,d=a.length;c<d;c++)a[c].style.visibility=
|
||||||
|
b?"visible":"hidden"}}function ga(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++){a.aoColumns[d].bVisible===true&&c++;if(c==b)return d}return null}function M(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++){a.aoColumns[d].bVisible===true&&c++;if(d==b)return a.aoColumns[d].bVisible===true?c:null}return null}function Q(a,b){var c,d;c=a._iDisplayStart;for(d=a._iDisplayEnd;c<d;c++)if(a.aoData[a.aiDisplay[c]].nTr==b)return a.aiDisplay[c];c=0;for(d=a.aoData.length;c<d;c++)if(a.aoData[c].nTr==b)return c;
|
||||||
|
return null}function S(a){for(var b=0,c=0;c<a.aoColumns.length;c++)a.aoColumns[c].bVisible===true&&b++;return b}function E(a){a._iDisplayEnd=a.oFeatures.bPaginate===false?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength>a.aiDisplay.length||a._iDisplayLength==-1?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Ga(a,b){if(!a||a===null||a==="")return 0;if(typeof b=="undefined")b=p.getElementsByTagName("body")[0];var c=p.createElement("div");c.style.width=a;b.appendChild(c);a=c.offsetWidth;
|
||||||
|
b.removeChild(c);return a}function $(a){var b=0,c,d=0,f=a.aoColumns.length,e,i=j("th",a.nTHead);for(e=0;e<f;e++)if(a.aoColumns[e].bVisible){d++;if(a.aoColumns[e].sWidth!==null){c=Ga(a.aoColumns[e].sWidthOrig,a.nTable.parentNode);if(c!==null)a.aoColumns[e].sWidth=u(c);b++}}if(f==i.length&&b===0&&d==f&&a.oScroll.sX===""&&a.oScroll.sY==="")for(e=0;e<a.aoColumns.length;e++){c=j(i[e]).width();if(c!==null)a.aoColumns[e].sWidth=u(c)}else{b=a.nTable.cloneNode(false);e=p.createElement("tbody");c=p.createElement("tr");
|
||||||
|
b.removeAttribute("id");b.appendChild(a.nTHead.cloneNode(true));if(a.nTFoot!==null){b.appendChild(a.nTFoot.cloneNode(true));L(function(h){h.style.width=""},b.getElementsByTagName("tr"))}b.appendChild(e);e.appendChild(c);e=j("thead th",b);if(e.length===0)e=j("tbody tr:eq(0)>td",b);e.each(function(h){this.style.width="";h=ga(a,h);if(h!==null&&a.aoColumns[h].sWidthOrig!=="")this.style.width=a.aoColumns[h].sWidthOrig});for(e=0;e<f;e++)if(a.aoColumns[e].bVisible){d=Ha(a,e);if(d!==null){d=d.cloneNode(true);
|
||||||
|
c.appendChild(d)}}e=a.nTable.parentNode;e.appendChild(b);if(a.oScroll.sX!==""&&a.oScroll.sXInner!=="")b.style.width=u(a.oScroll.sXInner);else if(a.oScroll.sX!==""){b.style.width="";if(j(b).width()<e.offsetWidth)b.style.width=u(e.offsetWidth)}else if(a.oScroll.sY!=="")b.style.width=u(e.offsetWidth);b.style.visibility="hidden";Ia(a,b);f=j("tbody tr:eq(0)>td",b);if(f.length===0)f=j("thead tr:eq(0)>th",b);for(e=c=0;e<a.aoColumns.length;e++)if(a.aoColumns[e].bVisible){d=j(f[c]).width();if(d!==null&&d>
|
||||||
|
0)a.aoColumns[e].sWidth=u(d);c++}a.nTable.style.width=u(j(b).outerWidth());b.parentNode.removeChild(b)}}function Ia(a,b){if(a.oScroll.sX===""&&a.oScroll.sY!==""){j(b).width();b.style.width=u(j(b).outerWidth()-a.oScroll.iBarWidth)}else if(a.oScroll.sX!=="")b.style.width=u(j(b).outerWidth())}function Ha(a,b,c){if(typeof c=="undefined"||c){c=Ja(a,b);b=M(a,b);if(c<0)return null;return a.aoData[c].nTr.getElementsByTagName("td")[b]}var d=-1,f,e;c=-1;var i=p.createElement("div");i.style.visibility="hidden";
|
||||||
|
i.style.position="absolute";p.body.appendChild(i);f=0;for(e=a.aoData.length;f<e;f++){i.innerHTML=a.aoData[f]._aData[b];if(i.offsetWidth>d){d=i.offsetWidth;c=f}}p.body.removeChild(i);if(c>=0){b=M(a,b);if(a=a.aoData[c].nTr.getElementsByTagName("td")[b])return a}return null}function Ja(a,b){for(var c=-1,d=-1,f=0;f<a.aoData.length;f++){var e=a.aoData[f]._aData[b];if(e.length>c){c=e.length;d=f}}return d}function u(a){if(a===null)return"0px";if(typeof a=="number"){if(a<0)return"0px";return a+"px"}var b=
|
||||||
|
a.charCodeAt(a.length-1);if(b<48||b>57)return a;return a+"px"}function Oa(a,b){if(a.length!=b.length)return 1;for(var c=0;c<a.length;c++)if(a[c]!=b[c])return 2;return 0}function aa(a){for(var b=n.aTypes,c=b.length,d=0;d<c;d++){var f=b[d](a);if(f!==null)return f}return"string"}function A(a){for(var b=0;b<D.length;b++)if(D[b].nTable==a)return D[b];return null}function V(a){for(var b=[],c=a.aoData.length,d=0;d<c;d++)b.push(a.aoData[d]._aData);return b}function R(a){for(var b=[],c=a.aoData.length,d=0;d<
|
||||||
|
c;d++)b.push(a.aoData[d].nTr);return b}function Z(a){var b=R(a),c=[],d,f=[],e,i,h,k;e=0;for(i=b.length;e<i;e++){c=[];h=0;for(k=b[e].childNodes.length;h<k;h++){d=b[e].childNodes[h];d.nodeName.toUpperCase()=="TD"&&c.push(d)}h=d=0;for(k=a.aoColumns.length;h<k;h++)if(a.aoColumns[h].bVisible)f.push(c[h-d]);else{f.push(a.aoData[e]._anHidden[h]);d++}}return f}function la(a){return a.replace(new RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^)","g"),"\\$1")}function ma(a,b){for(var c=
|
||||||
|
-1,d=0,f=a.length;d<f;d++)if(a[d]==b)c=d;else a[d]>b&&a[d]--;c!=-1&&a.splice(c,1)}function ua(a,b){b=b.split(",");for(var c=[],d=0,f=a.aoColumns.length;d<f;d++)for(var e=0;e<f;e++)if(a.aoColumns[d].sName==b[e]){c.push(e);break}return c}function ca(a){for(var b="",c=0,d=a.aoColumns.length;c<d;c++)b+=a.aoColumns[c].sName+",";if(b.length==d)return"";return b.slice(0,-1)}function H(a,b,c){a=a.sTableId===""?"DataTables warning: "+c:"DataTables warning (table id = '"+a.sTableId+"'): "+c;if(b===0)if(n.sErrMode==
|
||||||
|
"alert")alert(a);else throw a;else typeof console!="undefined"&&typeof console.log!="undefined"&&console.log(a)}function da(a){a.aoData.splice(0,a.aoData.length);a.aiDisplayMaster.splice(0,a.aiDisplayMaster.length);a.aiDisplay.splice(0,a.aiDisplay.length);E(a)}function na(a){if(!(!a.oFeatures.bStateSave||typeof a.bDestroying!="undefined")){var b,c,d,f="{";f+='"iCreate":'+(new Date).getTime()+",";f+='"iStart":'+a._iDisplayStart+",";f+='"iEnd":'+a._iDisplayEnd+",";f+='"iLength":'+a._iDisplayLength+
|
||||||
|
",";f+='"sFilter":"'+encodeURIComponent(a.oPreviousSearch.sSearch)+'",';f+='"sFilterEsc":'+!a.oPreviousSearch.bRegex+",";f+='"aaSorting":[ ';for(b=0;b<a.aaSorting.length;b++)f+="["+a.aaSorting[b][0]+',"'+a.aaSorting[b][1]+'"],';f=f.substring(0,f.length-1);f+="],";f+='"aaSearchCols":[ ';for(b=0;b<a.aoPreSearchCols.length;b++)f+='["'+encodeURIComponent(a.aoPreSearchCols[b].sSearch)+'",'+!a.aoPreSearchCols[b].bRegex+"],";f=f.substring(0,f.length-1);f+="],";f+='"abVisCols":[ ';for(b=0;b<a.aoColumns.length;b++)f+=
|
||||||
|
a.aoColumns[b].bVisible+",";f=f.substring(0,f.length-1);f+="]";b=0;for(c=a.aoStateSave.length;b<c;b++){d=a.aoStateSave[b].fn(a,f);if(d!=="")f=d}f+="}";Ka(a.sCookiePrefix+a.sInstance,f,a.iCookieDuration,a.sCookiePrefix,a.fnCookieCallback)}}function La(a,b){if(a.oFeatures.bStateSave){var c,d,f;d=oa(a.sCookiePrefix+a.sInstance);if(d!==null&&d!==""){try{c=typeof j.parseJSON=="function"?j.parseJSON(d.replace(/'/g,'"')):eval("("+d+")")}catch(e){return}d=0;for(f=a.aoStateLoad.length;d<f;d++)if(!a.aoStateLoad[d].fn(a,
|
||||||
|
c))return;a.oLoadedState=j.extend(true,{},c);a._iDisplayStart=c.iStart;a.iInitDisplayStart=c.iStart;a._iDisplayEnd=c.iEnd;a._iDisplayLength=c.iLength;a.oPreviousSearch.sSearch=decodeURIComponent(c.sFilter);a.aaSorting=c.aaSorting.slice();a.saved_aaSorting=c.aaSorting.slice();if(typeof c.sFilterEsc!="undefined")a.oPreviousSearch.bRegex=!c.sFilterEsc;if(typeof c.aaSearchCols!="undefined")for(d=0;d<c.aaSearchCols.length;d++)a.aoPreSearchCols[d]={sSearch:decodeURIComponent(c.aaSearchCols[d][0]),bRegex:!c.aaSearchCols[d][1]};
|
||||||
|
if(typeof c.abVisCols!="undefined"){b.saved_aoColumns=[];for(d=0;d<c.abVisCols.length;d++){b.saved_aoColumns[d]={};b.saved_aoColumns[d].bVisible=c.abVisCols[d]}}}}}function Ka(a,b,c,d,f){var e=new Date;e.setTime(e.getTime()+c*1E3);c=qa.location.pathname.split("/");a=a+"_"+c.pop().replace(/[\/:]/g,"").toLowerCase();var i;if(f!==null){i=typeof j.parseJSON=="function"?j.parseJSON(b):eval("("+b+")");b=f(a,i,e.toGMTString(),c.join("/")+"/")}else b=a+"="+encodeURIComponent(b)+"; expires="+e.toGMTString()+
|
||||||
|
"; path="+c.join("/")+"/";f="";e=9999999999999;if((oa(a)!==null?p.cookie.length:b.length+p.cookie.length)+10>4096){a=p.cookie.split(";");for(var h=0,k=a.length;h<k;h++)if(a[h].indexOf(d)!=-1){var l=a[h].split("=");try{i=eval("("+decodeURIComponent(l[1])+")")}catch(q){continue}if(typeof i.iCreate!="undefined"&&i.iCreate<e){f=l[0];e=i.iCreate}}if(f!=="")p.cookie=f+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+c.join("/")+"/"}p.cookie=b}function oa(a){var b=qa.location.pathname.split("/");a=a+"_"+
|
||||||
|
b[b.length-1].replace(/[\/:]/g,"").toLowerCase()+"=";b=p.cookie.split(";");for(var c=0;c<b.length;c++){for(var d=b[c];d.charAt(0)==" ";)d=d.substring(1,d.length);if(d.indexOf(a)===0)return decodeURIComponent(d.substring(a.length,d.length))}return null}function fa(a){a=a.getElementsByTagName("tr");if(a.length==1)return a[0].getElementsByTagName("th");var b=[],c=[],d,f,e,i,h,k,l=function(I,Y,N){for(;typeof I[Y][N]!="undefined";)N++;return N},q=function(I){if(typeof b[I]=="undefined")b[I]=[]};d=0;for(i=
|
||||||
|
a.length;d<i;d++){q(d);var t=0,G=[];f=0;for(h=a[d].childNodes.length;f<h;f++)if(a[d].childNodes[f].nodeName.toUpperCase()=="TD"||a[d].childNodes[f].nodeName.toUpperCase()=="TH")G.push(a[d].childNodes[f]);f=0;for(h=G.length;f<h;f++){var J=G[f].getAttribute("colspan")*1,B=G[f].getAttribute("rowspan")*1;if(!J||J===0||J===1){k=l(b,d,t);b[d][k]=G[f].nodeName.toUpperCase()=="TD"?4:G[f];if(B||B===0||B===1)for(e=1;e<B;e++){q(d+e);b[d+e][k]=2}t++}else{k=l(b,d,t);for(e=0;e<J;e++)b[d][k+e]=3;t+=J}}}d=0;for(i=
|
||||||
|
b.length;d<i;d++){f=0;for(h=b[d].length;f<h;f++)if(typeof b[d][f]=="object"&&typeof c[f]=="undefined")c[f]=b[d][f]}return c}function Ma(){var a=p.createElement("p"),b=a.style;b.width="100%";b.height="200px";var c=p.createElement("div");b=c.style;b.position="absolute";b.top="0px";b.left="0px";b.visibility="hidden";b.width="200px";b.height="150px";b.overflow="hidden";c.appendChild(a);p.body.appendChild(c);b=a.offsetWidth;c.style.overflow="scroll";a=a.offsetWidth;if(b==a)a=c.clientWidth;p.body.removeChild(c);
|
||||||
|
return b-a}function L(a,b,c){for(var d=0,f=b.length;d<f;d++)for(var e=0,i=b[d].childNodes.length;e<i;e++)if(b[d].childNodes[e].nodeType==1)typeof c!="undefined"?a(b[d].childNodes[e],c[d].childNodes[e]):a(b[d].childNodes[e])}function o(a,b,c,d){if(typeof d=="undefined")d=c;if(typeof b[c]!="undefined")a[d]=b[c]}this.oApi={};this.fnDraw=function(a){var b=A(this[n.iApiIndex]);if(typeof a!="undefined"&&a===false){E(b);C(b)}else W(b)};this.fnFilter=function(a,b,c,d,f){var e=A(this[n.iApiIndex]);if(e.oFeatures.bFilter){if(typeof c==
|
||||||
|
"undefined")c=false;if(typeof d=="undefined")d=true;if(typeof f=="undefined")f=true;if(typeof b=="undefined"||b===null){P(e,{sSearch:a,bRegex:c,bSmart:d},1);if(f&&typeof e.aanFeatures.f!="undefined"){b=e.aanFeatures.f;c=0;for(d=b.length;c<d;c++)j("input",b[c]).val(a)}}else{e.aoPreSearchCols[b].sSearch=a;e.aoPreSearchCols[b].bRegex=c;e.aoPreSearchCols[b].bSmart=d;P(e,e.oPreviousSearch,1)}}};this.fnSettings=function(){return A(this[n.iApiIndex])};this.fnVersionCheck=n.fnVersionCheck;this.fnSort=function(a){var b=
|
||||||
|
A(this[n.iApiIndex]);b.aaSorting=a;O(b)};this.fnSortListener=function(a,b,c){ba(A(this[n.iApiIndex]),a,b,c)};this.fnAddData=function(a,b){if(a.length===0)return[];var c=[],d,f=A(this[n.iApiIndex]);if(typeof a[0]=="object")for(var e=0;e<a.length;e++){d=v(f,a[e]);if(d==-1)return c;c.push(d)}else{d=v(f,a);if(d==-1)return c;c.push(d)}f.aiDisplay=f.aiDisplayMaster.slice();if(typeof b=="undefined"||b)W(f);return c};this.fnDeleteRow=function(a,b,c){var d=A(this[n.iApiIndex]);a=typeof a=="object"?Q(d,a):
|
||||||
|
a;var f=d.aoData.splice(a,1),e=j.inArray(a,d.aiDisplay);d.asDataSearch.splice(e,1);ma(d.aiDisplayMaster,a);ma(d.aiDisplay,a);typeof b=="function"&&b.call(this,d,f);if(d._iDisplayStart>=d.aiDisplay.length){d._iDisplayStart-=d._iDisplayLength;if(d._iDisplayStart<0)d._iDisplayStart=0}if(typeof c=="undefined"||c){E(d);C(d)}return f};this.fnClearTable=function(a){var b=A(this[n.iApiIndex]);da(b);if(typeof a=="undefined"||a)C(b)};this.fnOpen=function(a,b,c){var d=A(this[n.iApiIndex]);this.fnClose(a);var f=
|
||||||
|
p.createElement("tr"),e=p.createElement("td");f.appendChild(e);e.className=c;e.colSpan=S(d);e.innerHTML=b;b=j("tr",d.nTBody);j.inArray(a,b)!=-1&&j(f).insertAfter(a);d.aoOpenRows.push({nTr:f,nParent:a});return f};this.fnClose=function(a){for(var b=A(this[n.iApiIndex]),c=0;c<b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a){(a=b.aoOpenRows[c].nTr.parentNode)&&a.removeChild(b.aoOpenRows[c].nTr);b.aoOpenRows.splice(c,1);return 0}return 1};this.fnGetData=function(a){var b=A(this[n.iApiIndex]);if(typeof a!=
|
||||||
|
"undefined"){a=typeof a=="object"?Q(b,a):a;return b.aoData[a]._aData}return V(b)};this.fnGetNodes=function(a){var b=A(this[n.iApiIndex]);if(typeof a!="undefined")return b.aoData[a].nTr;return R(b)};this.fnGetPosition=function(a){var b=A(this[n.iApiIndex]);if(a.nodeName.toUpperCase()=="TR")return Q(b,a);else if(a.nodeName.toUpperCase()=="TD")for(var c=Q(b,a.parentNode),d=0,f=0;f<b.aoColumns.length;f++)if(b.aoColumns[f].bVisible){if(b.aoData[c].nTr.getElementsByTagName("td")[f-d]==a)return[c,f-d,f]}else d++;
|
||||||
|
return null};this.fnUpdate=function(a,b,c,d,f){var e=A(this[n.iApiIndex]),i;b=typeof b=="object"?Q(e,b):b;if(typeof a!="object"){i=a;e.aoData[b]._aData[c]=i;if(e.aoColumns[c].fnRender!==null){i=e.aoColumns[c].fnRender({iDataRow:b,iDataColumn:c,aData:e.aoData[b]._aData,oSettings:e});if(e.aoColumns[c].bUseRendered)e.aoData[b]._aData[c]=i}c=M(e,c);if(c!==null)e.aoData[b].nTr.getElementsByTagName("td")[c].innerHTML=i}else{if(a.length!=e.aoColumns.length){H(e,0,"An array passed to fnUpdate must have the same number of columns as the table in question - in this case "+
|
||||||
|
e.aoColumns.length);return 1}for(var h=0;h<a.length;h++){i=a[h];e.aoData[b]._aData[h]=i;if(e.aoColumns[h].fnRender!==null){i=e.aoColumns[h].fnRender({iDataRow:b,iDataColumn:h,aData:e.aoData[b]._aData,oSettings:e});if(e.aoColumns[h].bUseRendered)e.aoData[b]._aData[h]=i}c=M(e,h);if(c!==null)e.aoData[b].nTr.getElementsByTagName("td")[c].innerHTML=i}}a=j.inArray(b,e.aiDisplay);e.asDataSearch[a]=ka(e,e.aoData[b]._aData);if(typeof f=="undefined"||f)X(e);if(typeof d=="undefined"||d)W(e);return 0};this.fnSetColumnVis=
|
||||||
|
function(a,b,c){var d=A(this[n.iApiIndex]),f,e;e=d.aoColumns.length;var i,h,k,l,q;if(d.aoColumns[a].bVisible!=b){l=j(">tr",d.nTHead)[0];i=j(">tr",d.nTFoot)[0];q=[];h=[];for(f=0;f<e;f++){q.push(d.aoColumns[f].nTh);h.push(d.aoColumns[f].nTf)}if(b){for(f=b=0;f<a;f++)d.aoColumns[f].bVisible&&b++;if(b>=S(d)){l.appendChild(q[a]);l=j(">tr",d.nTHead);f=1;for(e=l.length;f<e;f++)l[f].appendChild(d.aoColumns[a].anThExtra[f-1]);if(i){i.appendChild(h[a]);l=j(">tr",d.nTFoot);f=1;for(e=l.length;f<e;f++)l[f].appendChild(d.aoColumns[a].anTfExtra[f-
|
||||||
|
1])}f=0;for(e=d.aoData.length;f<e;f++){i=d.aoData[f]._anHidden[a];d.aoData[f].nTr.appendChild(i)}}else{for(f=a;f<e;f++){k=M(d,f);if(k!==null)break}l.insertBefore(q[a],l.getElementsByTagName("th")[k]);l=j(">tr",d.nTHead);f=1;for(e=l.length;f<e;f++){q=j(l[f]).children();l[f].insertBefore(d.aoColumns[a].anThExtra[f-1],q[k])}if(i){i.insertBefore(h[a],i.getElementsByTagName("th")[k]);l=j(">tr",d.nTFoot);f=1;for(e=l.length;f<e;f++){q=j(l[f]).children();l[f].insertBefore(d.aoColumns[a].anTfExtra[f-1],q[k])}}Z(d);
|
||||||
|
f=0;for(e=d.aoData.length;f<e;f++){i=d.aoData[f]._anHidden[a];d.aoData[f].nTr.insertBefore(i,j(">td:eq("+k+")",d.aoData[f].nTr)[0])}}d.aoColumns[a].bVisible=true}else{l.removeChild(q[a]);f=0;for(e=d.aoColumns[a].anThExtra.length;f<e;f++){k=d.aoColumns[a].anThExtra[f];k.parentNode.removeChild(k)}if(i){i.removeChild(h[a]);f=0;for(e=d.aoColumns[a].anTfExtra.length;f<e;f++){k=d.aoColumns[a].anTfExtra[f];k.parentNode.removeChild(k)}}h=Z(d);f=0;for(e=d.aoData.length;f<e;f++){i=h[f*d.aoColumns.length+a*
|
||||||
|
1];d.aoData[f]._anHidden[a]=i;i.parentNode.removeChild(i)}d.aoColumns[a].bVisible=false}f=0;for(e=d.aoOpenRows.length;f<e;f++)d.aoOpenRows[f].nTr.colSpan=S(d);if(typeof c=="undefined"||c){X(d);C(d)}na(d)}};this.fnPageChange=function(a,b){var c=A(this[n.iApiIndex]);ea(c,a);E(c);if(typeof b=="undefined"||b)C(c)};this.fnDestroy=function(){var a=A(this[n.iApiIndex]),b=a.nTableWrapper.parentNode,c=a.nTBody,d,f;a.bDestroying=true;d=0;for(f=a.aoColumns.length;d<f;d++)a.aoColumns[d].bVisible===false&&this.fnSetColumnVis(d,
|
||||||
|
true);j("tbody>tr>td."+a.oClasses.sRowEmpty,a.nTable).parent().remove();if(a.nTable!=a.nTHead.parentNode){j(">thead",a.nTable).remove();a.nTable.appendChild(a.nTHead)}if(a.nTFoot&&a.nTable!=a.nTFoot.parentNode){j(">tfoot",a.nTable).remove();a.nTable.appendChild(a.nTFoot)}a.nTable.parentNode.removeChild(a.nTable);j(a.nTableWrapper).remove();a.aaSorting=[];a.aaSortingFixed=[];T(a);j(R(a)).removeClass(a.asStripClasses.join(" "));if(a.bJUI){j("th",a.nTHead).removeClass([n.oStdClasses.sSortable,n.oJUIClasses.sSortableAsc,
|
||||||
|
n.oJUIClasses.sSortableDesc,n.oJUIClasses.sSortableNone].join(" "));j("th span",a.nTHead).remove()}else j("th",a.nTHead).removeClass([n.oStdClasses.sSortable,n.oStdClasses.sSortableAsc,n.oStdClasses.sSortableDesc,n.oStdClasses.sSortableNone].join(" "));b.appendChild(a.nTable);d=0;for(f=a.aoData.length;d<f;d++)c.appendChild(a.aoData[d].nTr);a.nTable.style.width=u(a.sDestroyWidth);j(">tr:even",c).addClass(a.asDestoryStrips[0]);j(">tr:odd",c).addClass(a.asDestoryStrips[1]);d=0;for(f=D.length;d<f;d++)D[d]==
|
||||||
|
a&&D.splice(d,1)};this.fnAdjustColumnSizing=function(a){var b=A(this[n.iApiIndex]);X(b);if(typeof a=="undefined"||a)this.fnDraw(false);else if(b.oScroll.sX!==""||b.oScroll.sY!=="")this.oApi._fnScrollDraw(b)};for(var pa in n.oApi)if(pa)this[pa]=r(pa);this.oApi._fnExternApiFunc=r;this.oApi._fnInitalise=s;this.oApi._fnLanguageProcess=y;this.oApi._fnAddColumn=F;this.oApi._fnColumnOptions=x;this.oApi._fnAddData=v;this.oApi._fnGatherData=z;this.oApi._fnDrawHead=U;this.oApi._fnDraw=C;this.oApi._fnReDraw=
|
||||||
|
W;this.oApi._fnAjaxUpdate=sa;this.oApi._fnAjaxUpdateDraw=ta;this.oApi._fnAddOptionsHtml=ra;this.oApi._fnFeatureHtmlTable=ya;this.oApi._fnScrollDraw=Ba;this.oApi._fnAjustColumnSizing=X;this.oApi._fnFeatureHtmlFilter=wa;this.oApi._fnFilterComplete=P;this.oApi._fnFilterCustom=Ea;this.oApi._fnFilterColumn=Da;this.oApi._fnFilter=Ca;this.oApi._fnBuildSearchArray=ha;this.oApi._fnBuildSearchRow=ka;this.oApi._fnFilterCreateSearch=ia;this.oApi._fnDataToSearch=ja;this.oApi._fnSort=O;this.oApi._fnSortAttachListener=
|
||||||
|
ba;this.oApi._fnSortingClasses=T;this.oApi._fnFeatureHtmlPaginate=Aa;this.oApi._fnPageChange=ea;this.oApi._fnFeatureHtmlInfo=za;this.oApi._fnUpdateInfo=Fa;this.oApi._fnFeatureHtmlLength=va;this.oApi._fnFeatureHtmlProcessing=xa;this.oApi._fnProcessingDisplay=K;this.oApi._fnVisibleToColumnIndex=ga;this.oApi._fnColumnIndexToVisible=M;this.oApi._fnNodeToDataIndex=Q;this.oApi._fnVisbleColumns=S;this.oApi._fnCalculateEnd=E;this.oApi._fnConvertToWidth=Ga;this.oApi._fnCalculateColumnWidths=$;this.oApi._fnScrollingWidthAdjust=
|
||||||
|
Ia;this.oApi._fnGetWidestNode=Ha;this.oApi._fnGetMaxLenString=Ja;this.oApi._fnStringToCss=u;this.oApi._fnArrayCmp=Oa;this.oApi._fnDetectType=aa;this.oApi._fnSettingsFromNode=A;this.oApi._fnGetDataMaster=V;this.oApi._fnGetTrNodes=R;this.oApi._fnGetTdNodes=Z;this.oApi._fnEscapeRegex=la;this.oApi._fnDeleteIndex=ma;this.oApi._fnReOrderIndex=ua;this.oApi._fnColumnOrdering=ca;this.oApi._fnLog=H;this.oApi._fnClearTable=da;this.oApi._fnSaveState=na;this.oApi._fnLoadState=La;this.oApi._fnCreateCookie=Ka;this.oApi._fnReadCookie=
|
||||||
|
oa;this.oApi._fnGetUniqueThs=fa;this.oApi._fnScrollBarWidth=Ma;this.oApi._fnApplyToChildren=L;this.oApi._fnMap=o;var Na=this;return this.each(function(){var a=0,b,c,d,f;a=0;for(b=D.length;a<b;a++){if(D[a].nTable==this)if(typeof g=="undefined"||typeof g.bRetrieve!="undefined"&&g.bRetrieve===true)return D[a].oInstance;else if(typeof g.bDestroy!="undefined"&&g.bDestroy===true){D[a].oInstance.fnDestroy();break}else{H(D[a],0,"Cannot reinitialise DataTable.\n\nTo retrieve the DataTables object for this table, please pass either no arguments to the dataTable() function, or set bRetrieve to true. Alternatively, to destory the old table and create a new one, set bDestroy to true (note that a lot of changes to the configuration can be made through the API which is usually much faster).");
|
||||||
|
return}if(D[a].sTableId!==""&&D[a].sTableId==this.getAttribute("id")){D.splice(a,1);break}}var e=new m;D.push(e);var i=false,h=false;a=this.getAttribute("id");if(a!==null){e.sTableId=a;e.sInstance=a}else e.sInstance=n._oExternConfig.iNextUnique++;if(this.nodeName.toLowerCase()!="table")H(e,0,"Attempted to initialise DataTables on a node which is not a table: "+this.nodeName);else{e.oInstance=Na;e.nTable=this;e.oApi=Na.oApi;e.sDestroyWidth=j(this).width();if(typeof g!="undefined"&&g!==null){e.oInit=
|
||||||
|
g;o(e.oFeatures,g,"bPaginate");o(e.oFeatures,g,"bLengthChange");o(e.oFeatures,g,"bFilter");o(e.oFeatures,g,"bSort");o(e.oFeatures,g,"bInfo");o(e.oFeatures,g,"bProcessing");o(e.oFeatures,g,"bAutoWidth");o(e.oFeatures,g,"bSortClasses");o(e.oFeatures,g,"bServerSide");o(e.oScroll,g,"sScrollX","sX");o(e.oScroll,g,"sScrollXInner","sXInner");o(e.oScroll,g,"sScrollY","sY");o(e.oScroll,g,"bScrollCollapse","bCollapse");o(e.oScroll,g,"bScrollInfinite","bInfinite");o(e.oScroll,g,"iScrollLoadGap","iLoadGap");
|
||||||
|
o(e.oScroll,g,"bScrollAutoCss","bAutoCss");o(e,g,"asStripClasses");o(e,g,"fnRowCallback");o(e,g,"fnHeaderCallback");o(e,g,"fnFooterCallback");o(e,g,"fnCookieCallback");o(e,g,"fnInitComplete");o(e,g,"fnServerData");o(e,g,"fnFormatNumber");o(e,g,"aaSorting");o(e,g,"aaSortingFixed");o(e,g,"aLengthMenu");o(e,g,"sPaginationType");o(e,g,"sAjaxSource");o(e,g,"iCookieDuration");o(e,g,"sCookiePrefix");o(e,g,"sDom");o(e,g,"oSearch","oPreviousSearch");o(e,g,"aoSearchCols","aoPreSearchCols");o(e,g,"iDisplayLength",
|
||||||
|
"_iDisplayLength");o(e,g,"bJQueryUI","bJUI");o(e.oLanguage,g,"fnInfoCallback");typeof g.fnDrawCallback=="function"&&e.aoDrawCallback.push({fn:g.fnDrawCallback,sName:"user"});typeof g.fnStateSaveCallback=="function"&&e.aoStateSave.push({fn:g.fnStateSaveCallback,sName:"user"});typeof g.fnStateLoadCallback=="function"&&e.aoStateLoad.push({fn:g.fnStateLoadCallback,sName:"user"});e.oFeatures.bServerSide&&e.oFeatures.bSort&&e.oFeatures.bSortClasses&&e.aoDrawCallback.push({fn:T,sName:"server_side_sort_classes"});
|
||||||
|
if(typeof g.bJQueryUI!="undefined"&&g.bJQueryUI){e.oClasses=n.oJUIClasses;if(typeof g.sDom=="undefined")e.sDom='<"H"lfr>t<"F"ip>'}if(e.oScroll.sX!==""||e.oScroll.sY!=="")e.oScroll.iBarWidth=Ma();if(typeof g.iDisplayStart!="undefined"&&typeof e.iInitDisplayStart=="undefined"){e.iInitDisplayStart=g.iDisplayStart;e._iDisplayStart=g.iDisplayStart}if(typeof g.bStateSave!="undefined"){e.oFeatures.bStateSave=g.bStateSave;La(e,g);e.aoDrawCallback.push({fn:na,sName:"state_save"})}if(typeof g.aaData!="undefined")h=
|
||||||
|
true;if(typeof g!="undefined"&&typeof g.aoData!="undefined")g.aoColumns=g.aoData;if(typeof g.oLanguage!="undefined")if(typeof g.oLanguage.sUrl!="undefined"&&g.oLanguage.sUrl!==""){e.oLanguage.sUrl=g.oLanguage.sUrl;j.getJSON(e.oLanguage.sUrl,null,function(q){y(e,q,true)});i=true}else y(e,g.oLanguage,false)}else g={};if(typeof g.asStripClasses=="undefined"){e.asStripClasses.push(e.oClasses.sStripOdd);e.asStripClasses.push(e.oClasses.sStripEven)}c=false;d=j("tbody>tr",this);a=0;for(b=e.asStripClasses.length;a<
|
||||||
|
b;a++)if(d.filter(":lt(2)").hasClass(e.asStripClasses[a])){c=true;break}if(c){e.asDestoryStrips=["",""];if(j(d[0]).hasClass(e.oClasses.sStripOdd))e.asDestoryStrips[0]+=e.oClasses.sStripOdd+" ";if(j(d[0]).hasClass(e.oClasses.sStripEven))e.asDestoryStrips[0]+=e.oClasses.sStripEven;if(j(d[1]).hasClass(e.oClasses.sStripOdd))e.asDestoryStrips[1]+=e.oClasses.sStripOdd+" ";if(j(d[1]).hasClass(e.oClasses.sStripEven))e.asDestoryStrips[1]+=e.oClasses.sStripEven;d.removeClass(e.asStripClasses.join(" "))}a=this.getElementsByTagName("thead");
|
||||||
|
c=a.length===0?[]:fa(a[0]);var k;if(typeof g.aoColumns=="undefined"){k=[];a=0;for(b=c.length;a<b;a++)k.push(null)}else k=g.aoColumns;a=0;for(b=k.length;a<b;a++){if(typeof g.saved_aoColumns!="undefined"&&g.saved_aoColumns.length==b){if(k[a]===null)k[a]={};k[a].bVisible=g.saved_aoColumns[a].bVisible}F(e,c?c[a]:null)}if(typeof g.aoColumnDefs!="undefined")for(a=g.aoColumnDefs.length-1;a>=0;a--){var l=g.aoColumnDefs[a].aTargets;j.isArray(l)||H(e,1,"aTargets must be an array of targets, not a "+typeof l);
|
||||||
|
c=0;for(d=l.length;c<d;c++)if(typeof l[c]=="number"&&l[c]>=0){for(;e.aoColumns.length<=l[c];)F(e);x(e,l[c],g.aoColumnDefs[a])}else if(typeof l[c]=="number"&&l[c]<0)x(e,e.aoColumns.length+l[c],g.aoColumnDefs[a]);else if(typeof l[c]=="string"){b=0;for(f=e.aoColumns.length;b<f;b++)if(l[c]=="_all"||e.aoColumns[b].nTh.className.indexOf(l[c])!=-1)x(e,b,g.aoColumnDefs[a])}}if(typeof k!="undefined"){a=0;for(b=k.length;a<b;a++)x(e,a,k[a])}a=0;for(b=e.aaSorting.length;a<b;a++){if(e.aaSorting[a][0]>=e.aoColumns.length)e.aaSorting[a][0]=
|
||||||
|
0;k=e.aoColumns[e.aaSorting[a][0]];if(typeof e.aaSorting[a][2]=="undefined")e.aaSorting[a][2]=0;if(typeof g.aaSorting=="undefined"&&typeof e.saved_aaSorting=="undefined")e.aaSorting[a][1]=k.asSorting[0];c=0;for(d=k.asSorting.length;c<d;c++)if(e.aaSorting[a][1]==k.asSorting[c]){e.aaSorting[a][2]=c;break}}T(e);this.getElementsByTagName("thead").length===0&&this.appendChild(p.createElement("thead"));this.getElementsByTagName("tbody").length===0&&this.appendChild(p.createElement("tbody"));e.nTHead=this.getElementsByTagName("thead")[0];
|
||||||
|
e.nTBody=this.getElementsByTagName("tbody")[0];if(this.getElementsByTagName("tfoot").length>0)e.nTFoot=this.getElementsByTagName("tfoot")[0];if(h)for(a=0;a<g.aaData.length;a++)v(e,g.aaData[a]);else z(e);e.aiDisplay=e.aiDisplayMaster.slice();e.bInitialised=true;i===false&&s(e)}})}})(jQuery,window,document);
|
BIN
public/js/datatables/js/jquery.dataTables.min.js.gz
Normal file
167
public/js/datatables/js/jquery.js
vendored
Normal file
|
@ -0,0 +1,167 @@
|
||||||
|
/*!
|
||||||
|
* jQuery JavaScript Library v1.4.4
|
||||||
|
* http://jquery.com/
|
||||||
|
*
|
||||||
|
* Copyright 2010, John Resig
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* Includes Sizzle.js
|
||||||
|
* http://sizzlejs.com/
|
||||||
|
* Copyright 2010, The Dojo Foundation
|
||||||
|
* Released under the MIT, BSD, and GPL Licenses.
|
||||||
|
*
|
||||||
|
* Date: Thu Nov 11 19:04:53 2010 -0500
|
||||||
|
*/
|
||||||
|
(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
|
||||||
|
h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
|
||||||
|
h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
|
||||||
|
"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
|
||||||
|
e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
|
||||||
|
"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
|
||||||
|
a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
|
||||||
|
C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
|
||||||
|
s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
|
||||||
|
j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
|
||||||
|
toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
|
||||||
|
-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
|
||||||
|
if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
|
||||||
|
if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
|
||||||
|
b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
|
||||||
|
!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
|
||||||
|
l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
|
||||||
|
z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
|
||||||
|
s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
|
||||||
|
s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
|
||||||
|
[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
|
||||||
|
false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
|
||||||
|
k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
|
||||||
|
scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
|
||||||
|
false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
|
||||||
|
1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
|
||||||
|
"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
|
||||||
|
c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
|
||||||
|
else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
|
||||||
|
a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
|
||||||
|
c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
|
||||||
|
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
|
||||||
|
colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
|
||||||
|
1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
|
||||||
|
l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
|
||||||
|
"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
|
||||||
|
if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
|
||||||
|
a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
|
||||||
|
attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
|
||||||
|
b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
|
||||||
|
c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
|
||||||
|
arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
|
||||||
|
d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
|
||||||
|
c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
|
||||||
|
w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
|
||||||
|
8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
|
||||||
|
"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
|
||||||
|
d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||||
|
fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||||
|
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
|
||||||
|
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
|
||||||
|
c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
|
||||||
|
var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
|
||||||
|
"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
|
||||||
|
xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
|
||||||
|
B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
|
||||||
|
"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
|
||||||
|
0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
|
||||||
|
a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
|
||||||
|
1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
|
||||||
|
"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
|
||||||
|
c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
|
||||||
|
(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
|
||||||
|
[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
|
||||||
|
break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
|
||||||
|
q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
|
||||||
|
l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
|
||||||
|
return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
|
||||||
|
B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
|
||||||
|
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
|
||||||
|
i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
|
||||||
|
i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
|
||||||
|
"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
|
||||||
|
m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
|
||||||
|
true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
|
||||||
|
g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
|
||||||
|
0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
|
||||||
|
"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
|
||||||
|
i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
|
||||||
|
if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
|
||||||
|
g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
|
||||||
|
for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
|
||||||
|
i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
|
||||||
|
n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
|
||||||
|
function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
|
||||||
|
p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
|
||||||
|
t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
|
||||||
|
function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
|
||||||
|
c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
|
||||||
|
not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
|
||||||
|
h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
|
||||||
|
c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
|
||||||
|
2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
|
||||||
|
b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
|
||||||
|
e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
|
||||||
|
"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
|
||||||
|
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
|
||||||
|
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
|
||||||
|
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
|
||||||
|
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
|
||||||
|
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
|
||||||
|
else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
|
||||||
|
c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
|
||||||
|
b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
|
||||||
|
this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
|
||||||
|
prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
|
||||||
|
b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
|
||||||
|
1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
|
||||||
|
d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
|
||||||
|
jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
|
||||||
|
zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
|
||||||
|
h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
|
||||||
|
if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
|
||||||
|
d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
|
||||||
|
e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
|
||||||
|
ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
|
||||||
|
"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
|
||||||
|
!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
|
||||||
|
getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
|
||||||
|
script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
|
||||||
|
!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
|
||||||
|
false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
|
||||||
|
A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
|
||||||
|
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
|
||||||
|
c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
|
||||||
|
c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
|
||||||
|
encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
|
||||||
|
[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
|
||||||
|
e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
|
||||||
|
if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
|
||||||
|
3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
|
||||||
|
d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
|
||||||
|
d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
|
||||||
|
"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
|
||||||
|
1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
|
||||||
|
d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
|
||||||
|
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
|
||||||
|
var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
|
||||||
|
this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
|
||||||
|
this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
|
||||||
|
c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
|
||||||
|
b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
|
||||||
|
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
|
||||||
|
for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
|
||||||
|
parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
|
||||||
|
height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
|
||||||
|
f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
|
||||||
|
"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
|
||||||
|
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
|
||||||
|
c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
|
||||||
|
c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
|
||||||
|
b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
|
94
public/js/datatables/unit_testing/controller.js
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
var giTotalTestCount = 0;
|
||||||
|
var giActiveModule = 0;
|
||||||
|
var giModuleTests;
|
||||||
|
var giStartTime;
|
||||||
|
var giTest;
|
||||||
|
var gbStop = false;
|
||||||
|
var gtoTest;
|
||||||
|
|
||||||
|
function fnTestStart ( sTestInfo )
|
||||||
|
{
|
||||||
|
gaoTest[ giActiveModule ].iTests++;
|
||||||
|
document.getElementById('test_info').innerHTML +=
|
||||||
|
(giActiveModule+1)+'.'+(giModuleTests+1)+'. '+sTestInfo+'... ';
|
||||||
|
document.getElementById('test_number').innerHTML = giTotalTestCount+1;
|
||||||
|
giModuleTests++;
|
||||||
|
giTotalTestCount++;
|
||||||
|
|
||||||
|
/* Set a timer to catch stalled script */
|
||||||
|
gtoTest = setTimeout( function () {
|
||||||
|
fnMessage( '<span class="error">WARNING - test script stalled. Likely a JS error</span>' );
|
||||||
|
gbStop = true;
|
||||||
|
}, 3000 );
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnTestResult ( bResult )
|
||||||
|
{
|
||||||
|
clearTimeout( gtoTest );
|
||||||
|
if ( bResult )
|
||||||
|
{
|
||||||
|
fnMessage( 'Passed' );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fnMessage( '<span class="error">FAILED</span>' );
|
||||||
|
gbStop = true;
|
||||||
|
fnEnd( false );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnUnitStart( iTest )
|
||||||
|
{
|
||||||
|
if ( !gbStop )
|
||||||
|
{
|
||||||
|
giModuleTests = 0;
|
||||||
|
window.parent.test_arena.location.href =
|
||||||
|
(iTest==0?"":"../")+'templates/'+gaoTest[iTest].sTemplate+'.php?scripts='+gaoTest[iTest].sTest;
|
||||||
|
giTest = iTest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnStartMessage( sMessage )
|
||||||
|
{
|
||||||
|
fnMessage( '<br><b>'+gaoTest[giTest].sGroup+' - '+sMessage+'</b>' );
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnMessage( sMessage )
|
||||||
|
{
|
||||||
|
var nInfo = document.getElementById('test_info');
|
||||||
|
nInfo.innerHTML += sMessage+'<br>';
|
||||||
|
nInfo.scrollTop = nInfo.scrollHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnUnitComplete()
|
||||||
|
{
|
||||||
|
if ( giActiveModule < gaoTest.length - 1 )
|
||||||
|
{
|
||||||
|
fnUnitStart( ++giActiveModule );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fnEnd( true );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnEnd( bSuccess )
|
||||||
|
{
|
||||||
|
var iEndTime = new Date().getTime();
|
||||||
|
var sTime = '<br>This test run took '+parseInt((iEndTime-giStartTime)/1000, 10)+
|
||||||
|
' second(s) to complete.';
|
||||||
|
|
||||||
|
if ( bSuccess )
|
||||||
|
{
|
||||||
|
$('#test_running').html( 'Tests complete. '+giTotalTestCount+' tests were run.'+sTime );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#test_running').html( 'Unit tests failed at test '+giTotalTestCount+'.'+sTime );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
giStartTime = new Date().getTime();
|
||||||
|
fnUnitStart( giActiveModule );
|
||||||
|
} );
|
100
public/js/datatables/unit_testing/controller.php
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||||
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||||
|
<title>DataTables unit test controller</title>
|
||||||
|
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
#controller {
|
||||||
|
font: 12px/1.45em "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 0 0 0.5em;
|
||||||
|
color: #333;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#test_info {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 50%;
|
||||||
|
height: 100%;
|
||||||
|
font-size: 11px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controller h1 {
|
||||||
|
color: #4E6CA3;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type="text/javascript" language="javascript" src="../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
var gaoTest = [
|
||||||
|
<?php
|
||||||
|
function fnReadDir( &$aReturn, $path )
|
||||||
|
{
|
||||||
|
$rDir = opendir( $path );
|
||||||
|
while ( ($file = readdir($rDir)) !== false )
|
||||||
|
{
|
||||||
|
if ( $file == "." || $file == ".." || $file == ".DS_Store" )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if ( is_dir( $path.'/'.$file ) )
|
||||||
|
{
|
||||||
|
fnReadDir( $aReturn, $path.'/'.$file );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
array_push( $aReturn, $path.'/'.$file );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($rDir);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get the tests dynamically from the 'tests' directory, and their templates */
|
||||||
|
$aFiles = array();
|
||||||
|
fnReadDir( &$aFiles, "tests" );
|
||||||
|
|
||||||
|
for ( $i=0 ; $i<count($aFiles) ; $i++ )
|
||||||
|
{
|
||||||
|
$sTemplate;
|
||||||
|
$fp = fopen( $aFiles[$i], "r" );
|
||||||
|
fscanf( $fp, "// DATA_TEMPLATE: %s", &$sTemplate );
|
||||||
|
fclose( $fp );
|
||||||
|
|
||||||
|
$aPath = split('/', $aFiles[$i]);
|
||||||
|
|
||||||
|
echo '{ '.
|
||||||
|
'"sTemplate": "'.$sTemplate.'", '.
|
||||||
|
'"sTest": "'.$aFiles[$i].'", '.
|
||||||
|
'"sGroup": "'.$aPath[1].'"},'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
null ];
|
||||||
|
gaoTest.pop(); /* No interest in the null */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" language="javascript" src="controller.js"></script>
|
||||||
|
</head>
|
||||||
|
<body id="controller">
|
||||||
|
<h1>DataTables unit testing</h1>
|
||||||
|
<div id="test_running">Running test: <span id="test_number"></span></div>
|
||||||
|
<div id="test_info">
|
||||||
|
<b>Test information:</b><br>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
public/js/datatables/unit_testing/index.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
|
||||||
|
<html>
|
||||||
|
<frameset rows="20%,80%">
|
||||||
|
<frame name="controller" id="controller" src="controller.php">
|
||||||
|
<frame name="test_arena" id="test_arena">
|
||||||
|
</frameset>
|
||||||
|
</html>
|
482
public/js/datatables/unit_testing/performance/draw.html
Normal file
|
@ -0,0 +1,482 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables example</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
$(document).ready(function() {
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var iStart = new Date().getTime();
|
||||||
|
|
||||||
|
//console.profile();
|
||||||
|
//for ( var i=0, iLen=1000 ; i<iLen ; i++ )
|
||||||
|
//{
|
||||||
|
// oSettings._iDisplayLength = 100;
|
||||||
|
// oTable.oApi._fnCalculateEnd( oSettings );
|
||||||
|
// oTable.oApi._fnDraw( oSettings );
|
||||||
|
//
|
||||||
|
// oSettings._iDisplayLength = 10;
|
||||||
|
// oTable.oApi._fnCalculateEnd( oSettings );
|
||||||
|
// oTable.oApi._fnDraw( oSettings );
|
||||||
|
//}
|
||||||
|
//console.profileEnd();
|
||||||
|
|
||||||
|
var iEnd = new Date().getTime();
|
||||||
|
document.getElementById('output').innerHTML = "Test took "+(iEnd-iStart)+"mS";
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> performance test - draw
|
||||||
|
</div>
|
||||||
|
<div id="output"></div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 4.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">4</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.5</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 6</td>
|
||||||
|
<td>Win 98+</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet Explorer 7</td>
|
||||||
|
<td>Win XP SP2+</td>
|
||||||
|
<td class="center">7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>AOL browser (AOL desktop)</td>
|
||||||
|
<td>Win XP</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.5</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 2.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 3.0</td>
|
||||||
|
<td>Win 2k+ / OSX.3+</td>
|
||||||
|
<td class="center">1.9</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.0</td>
|
||||||
|
<td>OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.5</td>
|
||||||
|
<td>OSX.3+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape 7.2</td>
|
||||||
|
<td>Win 95+ / Mac OS 8.6-9.2</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Browser 8</td>
|
||||||
|
<td>Win 98SE+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Navigator 9</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.1</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.2</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.2</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.3</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.4</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.4</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.5</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.6</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.7</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.8</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Seamonkey 1.1</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Epiphany 2.20</td>
|
||||||
|
<td>Gnome</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.2</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">125.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.3</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">312.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 2.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">419.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 3.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">522.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>OmniWeb 5.5</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">420</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>iPod Touch / iPhone</td>
|
||||||
|
<td>iPod</td>
|
||||||
|
<td class="center">420.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td class="center">413</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.0</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.0</td>
|
||||||
|
<td>Win 95+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.2</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.5</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera for Wii</td>
|
||||||
|
<td>Wii</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nokia N800</td>
|
||||||
|
<td>N800</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nintendo DS browser</td>
|
||||||
|
<td>Nintendo DS</td>
|
||||||
|
<td class="center">8.5</td>
|
||||||
|
<td class="center">C/A<sup>1</sup></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.1</td>
|
||||||
|
<td>KDE 3.1</td>
|
||||||
|
<td class="center">3.1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.3</td>
|
||||||
|
<td>KDE 3.3</td>
|
||||||
|
<td class="center">3.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.5</td>
|
||||||
|
<td>KDE 3.5</td>
|
||||||
|
<td class="center">3.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 4.5</td>
|
||||||
|
<td>Mac OS 8-9</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.1</td>
|
||||||
|
<td>Mac OS 7.6-9</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.2</td>
|
||||||
|
<td>Mac OS 8-X</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.1</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.4</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Dillo 0.8</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Links</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Lynx</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>IE Mobile</td>
|
||||||
|
<td>Windows Mobile 6</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>PSP browser</td>
|
||||||
|
<td>PSP</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeU">
|
||||||
|
<td>Other browsers</td>
|
||||||
|
<td>All others</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">U</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="footer" style="text-align:center;">
|
||||||
|
<span style="font-size:10px;">
|
||||||
|
DataTables © Allan Jardine 2008-2009.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
107
public/js/datatables/unit_testing/performance/large.php
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<?php
|
||||||
|
/* MySQL connection */
|
||||||
|
include( $_SERVER['DOCUMENT_ROOT']."/datatables/mysql.php" ); /* ;-) */
|
||||||
|
|
||||||
|
$gaSql['link'] = mysql_pconnect( $gaSql['server'], $gaSql['user'], $gaSql['password'] ) or
|
||||||
|
die( 'Could not open connection to server' );
|
||||||
|
|
||||||
|
mysql_select_db( $gaSql['db'], $gaSql['link'] ) or
|
||||||
|
die( 'Could not select database '. $gaSql['db'] );
|
||||||
|
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables example</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
$(document).ready(function() {
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var iStart = new Date().getTime();
|
||||||
|
|
||||||
|
//if ( typeof console != 'undefined' ) {
|
||||||
|
// console.profile();
|
||||||
|
//}
|
||||||
|
//for ( var i=0 ; i<1 ; i++ )
|
||||||
|
//{
|
||||||
|
// var oTable = $('#example').dataTable({"bDestroy": true});
|
||||||
|
//}
|
||||||
|
//if ( typeof console != 'undefined' ) {
|
||||||
|
// console.profileEnd();
|
||||||
|
//}
|
||||||
|
|
||||||
|
oTable.fnSort( [[ 1, 'asc' ]] );
|
||||||
|
oTable.fnSort( [[ 2, 'asc' ]] );
|
||||||
|
oTable.fnSort( [[ 1, 'asc' ]] );
|
||||||
|
oTable.fnSort( [[ 2, 'asc' ]] );
|
||||||
|
|
||||||
|
var iEnd = new Date().getTime();
|
||||||
|
document.getElementById('output').innerHTML = "Test took "+(iEnd-iStart)+" mS";
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> performance test - draw
|
||||||
|
</div>
|
||||||
|
<div id="output"></div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>id</th>
|
||||||
|
<th>name</th>
|
||||||
|
<th>phone</th>
|
||||||
|
<th>email</th>
|
||||||
|
<th>city</th>
|
||||||
|
<th>zip</th>
|
||||||
|
<th>state</th>
|
||||||
|
<th>country</th>
|
||||||
|
<th>zip2</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
$sQuery = "
|
||||||
|
SELECT *
|
||||||
|
FROM testData
|
||||||
|
LIMIT 2000
|
||||||
|
";
|
||||||
|
$rResult = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());
|
||||||
|
while ( $aRow = mysql_fetch_array( $rResult ) )
|
||||||
|
{
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td><a href="1">'.$aRow['id'].'</a></td>';
|
||||||
|
echo '<td>'.$aRow['name'].'</td>';
|
||||||
|
echo '<td>'.$aRow['phone'].'</td>';
|
||||||
|
echo '<td>'.$aRow['email'].'</td>';
|
||||||
|
echo '<td>'.$aRow['city'].'</td>';
|
||||||
|
echo '<td>'.$aRow['zip'].'</td>';
|
||||||
|
echo '<td>'.$aRow['state'].'</td>';
|
||||||
|
echo '<td>'.$aRow['country'].'</td>';
|
||||||
|
echo '<td>'.$aRow['zip2'].'</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
|
||||||
|
<div id="footer" style="text-align:center;">
|
||||||
|
<span style="font-size:10px;">
|
||||||
|
DataTables © Allan Jardine 2008-2009.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
477
public/js/datatables/unit_testing/performance/page.html
Normal file
|
@ -0,0 +1,477 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables example</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
$(document).ready(function() {
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var iStart = new Date().getTime();
|
||||||
|
|
||||||
|
//for ( var i=0, iLen=100 ; i<iLen ; i++ )
|
||||||
|
//{
|
||||||
|
console.profile( );
|
||||||
|
oTable.fnPageChange( "next" );
|
||||||
|
oTable.fnPageChange( "previous" );
|
||||||
|
console.profileEnd( );
|
||||||
|
//}
|
||||||
|
|
||||||
|
var iEnd = new Date().getTime();
|
||||||
|
document.getElementById('output').innerHTML = "Test took "+(iEnd-iStart)+"mS";
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> performance test - draw
|
||||||
|
</div>
|
||||||
|
<div id="output"></div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 4.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">4</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.5</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 6</td>
|
||||||
|
<td>Win 98+</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet Explorer 7</td>
|
||||||
|
<td>Win XP SP2+</td>
|
||||||
|
<td class="center">7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>AOL browser (AOL desktop)</td>
|
||||||
|
<td>Win XP</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.5</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 2.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 3.0</td>
|
||||||
|
<td>Win 2k+ / OSX.3+</td>
|
||||||
|
<td class="center">1.9</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.0</td>
|
||||||
|
<td>OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.5</td>
|
||||||
|
<td>OSX.3+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape 7.2</td>
|
||||||
|
<td>Win 95+ / Mac OS 8.6-9.2</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Browser 8</td>
|
||||||
|
<td>Win 98SE+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Navigator 9</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.1</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.2</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.2</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.3</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.4</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.4</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.5</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.6</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.7</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.8</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Seamonkey 1.1</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Epiphany 2.20</td>
|
||||||
|
<td>Gnome</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.2</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">125.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.3</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">312.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 2.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">419.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 3.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">522.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>OmniWeb 5.5</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">420</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>iPod Touch / iPhone</td>
|
||||||
|
<td>iPod</td>
|
||||||
|
<td class="center">420.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td class="center">413</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.0</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.0</td>
|
||||||
|
<td>Win 95+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.2</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.5</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera for Wii</td>
|
||||||
|
<td>Wii</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nokia N800</td>
|
||||||
|
<td>N800</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nintendo DS browser</td>
|
||||||
|
<td>Nintendo DS</td>
|
||||||
|
<td class="center">8.5</td>
|
||||||
|
<td class="center">C/A<sup>1</sup></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.1</td>
|
||||||
|
<td>KDE 3.1</td>
|
||||||
|
<td class="center">3.1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.3</td>
|
||||||
|
<td>KDE 3.3</td>
|
||||||
|
<td class="center">3.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.5</td>
|
||||||
|
<td>KDE 3.5</td>
|
||||||
|
<td class="center">3.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 4.5</td>
|
||||||
|
<td>Mac OS 8-9</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.1</td>
|
||||||
|
<td>Mac OS 7.6-9</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.2</td>
|
||||||
|
<td>Mac OS 8-X</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.1</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.4</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Dillo 0.8</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Links</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Lynx</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>IE Mobile</td>
|
||||||
|
<td>Windows Mobile 6</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>PSP browser</td>
|
||||||
|
<td>PSP</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeU">
|
||||||
|
<td>Other browsers</td>
|
||||||
|
<td>All others</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">U</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="footer" style="text-align:center;">
|
||||||
|
<span style="font-size:10px;">
|
||||||
|
DataTables © Allan Jardine 2008-2009.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
477
public/js/datatables/unit_testing/performance/sort.html
Normal file
|
@ -0,0 +1,477 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables example</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
$(document).ready(function() {
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var iStart = new Date().getTime();
|
||||||
|
|
||||||
|
for ( var i=0, iLen=100 ; i<iLen ; i++ )
|
||||||
|
{
|
||||||
|
console.profile( );
|
||||||
|
oTable.fnSort( [[1, 'asc']] );
|
||||||
|
oTable.fnSort( [[0, 'asc']] );
|
||||||
|
console.profileEnd( );
|
||||||
|
}
|
||||||
|
|
||||||
|
var iEnd = new Date().getTime();
|
||||||
|
document.getElementById('output').innerHTML = "Test took "+(iEnd-iStart)+"mS";
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> performance test - draw
|
||||||
|
</div>
|
||||||
|
<div id="output"></div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 4.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">4</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.5</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 6</td>
|
||||||
|
<td>Win 98+</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet Explorer 7</td>
|
||||||
|
<td>Win XP SP2+</td>
|
||||||
|
<td class="center">7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>AOL browser (AOL desktop)</td>
|
||||||
|
<td>Win XP</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.5</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 2.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 3.0</td>
|
||||||
|
<td>Win 2k+ / OSX.3+</td>
|
||||||
|
<td class="center">1.9</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.0</td>
|
||||||
|
<td>OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.5</td>
|
||||||
|
<td>OSX.3+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape 7.2</td>
|
||||||
|
<td>Win 95+ / Mac OS 8.6-9.2</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Browser 8</td>
|
||||||
|
<td>Win 98SE+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Navigator 9</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.1</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.2</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.2</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.3</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.4</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.4</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.5</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.6</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.7</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.8</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Seamonkey 1.1</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Epiphany 2.20</td>
|
||||||
|
<td>Gnome</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.2</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">125.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.3</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">312.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 2.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">419.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 3.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">522.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>OmniWeb 5.5</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">420</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>iPod Touch / iPhone</td>
|
||||||
|
<td>iPod</td>
|
||||||
|
<td class="center">420.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td class="center">413</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.0</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.0</td>
|
||||||
|
<td>Win 95+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.2</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.5</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera for Wii</td>
|
||||||
|
<td>Wii</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nokia N800</td>
|
||||||
|
<td>N800</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nintendo DS browser</td>
|
||||||
|
<td>Nintendo DS</td>
|
||||||
|
<td class="center">8.5</td>
|
||||||
|
<td class="center">C/A<sup>1</sup></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.1</td>
|
||||||
|
<td>KDE 3.1</td>
|
||||||
|
<td class="center">3.1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.3</td>
|
||||||
|
<td>KDE 3.3</td>
|
||||||
|
<td class="center">3.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.5</td>
|
||||||
|
<td>KDE 3.5</td>
|
||||||
|
<td class="center">3.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 4.5</td>
|
||||||
|
<td>Mac OS 8-9</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.1</td>
|
||||||
|
<td>Mac OS 7.6-9</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.2</td>
|
||||||
|
<td>Mac OS 8-X</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.1</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.4</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Dillo 0.8</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Links</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Lynx</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>IE Mobile</td>
|
||||||
|
<td>Windows Mobile 6</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>PSP browser</td>
|
||||||
|
<td>PSP</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeU">
|
||||||
|
<td>Other browsers</td>
|
||||||
|
<td>All others</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">U</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="footer" style="text-align:center;">
|
||||||
|
<span style="font-size:10px;">
|
||||||
|
DataTables © Allan Jardine 2008-2009.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
469
public/js/datatables/unit_testing/templates/-complex_header.php
Normal file
|
@ -0,0 +1,469 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables unit testing</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../unit_test.js"></script>
|
||||||
|
<?php
|
||||||
|
$aScripts = split( ":", $_GET['scripts'] );
|
||||||
|
for ( $i=0 ; $i<count($aScripts) ; $i++ )
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript" language="javascript" src="../'.$aScripts[$i].'?rand='.rand().'"></script>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> unit test template for reading DOM data
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2" class="bl bt">Rendering engine</th>
|
||||||
|
<th colspan="3" class="bl br bt">Browser details</th>
|
||||||
|
<th class="br bt">CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th class="bl">Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th class="br">Engine version</th>
|
||||||
|
<th class="br bt">CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 4.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">4</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.5</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 6</td>
|
||||||
|
<td>Win 98+</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet Explorer 7</td>
|
||||||
|
<td>Win XP SP2+</td>
|
||||||
|
<td class="center">7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>AOL browser (AOL desktop)</td>
|
||||||
|
<td>Win XP</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.5</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 2.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 3.0</td>
|
||||||
|
<td>Win 2k+ / OSX.3+</td>
|
||||||
|
<td class="center">1.9</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.0</td>
|
||||||
|
<td>OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.5</td>
|
||||||
|
<td>OSX.3+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape 7.2</td>
|
||||||
|
<td>Win 95+ / Mac OS 8.6-9.2</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Browser 8</td>
|
||||||
|
<td>Win 98SE+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Navigator 9</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.1</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.2</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.2</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.3</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.4</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.4</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.5</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.6</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.7</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.8</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Seamonkey 1.1</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Epiphany 2.20</td>
|
||||||
|
<td>Gnome</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.2</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">125.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.3</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">312.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 2.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">419.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 3.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">522.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>OmniWeb 5.5</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">420</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>iPod Touch / iPhone</td>
|
||||||
|
<td>iPod</td>
|
||||||
|
<td class="center">420.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td class="center">413</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.0</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.0</td>
|
||||||
|
<td>Win 95+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.2</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.5</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera for Wii</td>
|
||||||
|
<td>Wii</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nokia N800</td>
|
||||||
|
<td>N800</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nintendo DS browser</td>
|
||||||
|
<td>Nintendo DS</td>
|
||||||
|
<td class="center">8.5</td>
|
||||||
|
<td class="center">C/A<sup>1</sup></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.1</td>
|
||||||
|
<td>KDE 3.1</td>
|
||||||
|
<td class="center">3.1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.3</td>
|
||||||
|
<td>KDE 3.3</td>
|
||||||
|
<td class="center">3.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.5</td>
|
||||||
|
<td>KDE 3.5</td>
|
||||||
|
<td class="center">3.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 4.5</td>
|
||||||
|
<td>Mac OS 8-9</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.1</td>
|
||||||
|
<td>Mac OS 7.6-9</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.2</td>
|
||||||
|
<td>Mac OS 8-X</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.1</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.4</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Dillo 0.8</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Links</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Lynx</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>IE Mobile</td>
|
||||||
|
<td>Windows Mobile 6</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>PSP browser</td>
|
||||||
|
<td>PSP</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeU">
|
||||||
|
<td>Other browsers</td>
|
||||||
|
<td>All others</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">U</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
464
public/js/datatables/unit_testing/templates/2512.php
Normal file
|
@ -0,0 +1,464 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables unit testing</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../unit_test.js"></script>
|
||||||
|
<?php
|
||||||
|
$aScripts = split( ":", $_GET['scripts'] );
|
||||||
|
for ( $i=0 ; $i<count($aScripts) ; $i++ )
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript" language="javascript" src="../'.$aScripts[$i].'?rand='.rand().'"></script>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> unit test template for reading DOM data
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>testsearchstring <br>html & entity</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">4</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.5</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 6</td>
|
||||||
|
<td>Win 98+</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet Explorer 7</td>
|
||||||
|
<td>Win XP SP2+</td>
|
||||||
|
<td class="center">7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>AOL browser (AOL desktop)</td>
|
||||||
|
<td>Win XP</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.5</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 2.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 3.0</td>
|
||||||
|
<td>Win 2k+ / OSX.3+</td>
|
||||||
|
<td class="center">1.9</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.0</td>
|
||||||
|
<td>OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.5</td>
|
||||||
|
<td>OSX.3+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape 7.2</td>
|
||||||
|
<td>Win 95+ / Mac OS 8.6-9.2</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Browser 8</td>
|
||||||
|
<td>Win 98SE+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Navigator 9</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.1</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.2</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.2</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.3</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.4</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.4</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.5</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.6</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.7</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.8</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Seamonkey 1.1</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Epiphany 2.20</td>
|
||||||
|
<td>Gnome</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.2</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">125.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.3</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">312.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 2.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">419.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 3.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">522.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>OmniWeb 5.5</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">420</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>iPod Touch / iPhone</td>
|
||||||
|
<td>iPod</td>
|
||||||
|
<td class="center">420.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td class="center">413</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.0</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.0</td>
|
||||||
|
<td>Win 95+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.2</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.5</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera for Wii</td>
|
||||||
|
<td>Wii</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nokia N800</td>
|
||||||
|
<td>N800</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nintendo DS browser</td>
|
||||||
|
<td>Nintendo DS</td>
|
||||||
|
<td class="center">8.5</td>
|
||||||
|
<td class="center">C/A<sup>1</sup></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.1</td>
|
||||||
|
<td>KDE 3.1</td>
|
||||||
|
<td class="center">3.1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.3</td>
|
||||||
|
<td>KDE 3.3</td>
|
||||||
|
<td class="center">3.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.5</td>
|
||||||
|
<td>KDE 3.5</td>
|
||||||
|
<td class="center">3.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 4.5</td>
|
||||||
|
<td>Mac OS 8-9</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.1</td>
|
||||||
|
<td>Mac OS 7.6-9</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.2</td>
|
||||||
|
<td>Mac OS 8-X</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.1</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.4</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Dillo 0.8</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Links</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Lynx</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>IE Mobile</td>
|
||||||
|
<td>Windows Mobile 6</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>PSP browser</td>
|
||||||
|
<td>PSP</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeU">
|
||||||
|
<td>Other browsers</td>
|
||||||
|
<td>All others</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">U</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
465
public/js/datatables/unit_testing/templates/dom_data.php
Normal file
|
@ -0,0 +1,465 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables unit testing</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../unit_test.js"></script>
|
||||||
|
<?php
|
||||||
|
$aScripts = split( ":", $_GET['scripts'] );
|
||||||
|
for ( $i=0 ; $i<count($aScripts) ; $i++ )
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript" language="javascript" src="../'.$aScripts[$i].'?rand='.rand().'"></script>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> unit test template for reading DOM data
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 4.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">4</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.5</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 6</td>
|
||||||
|
<td>Win 98+</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet Explorer 7</td>
|
||||||
|
<td>Win XP SP2+</td>
|
||||||
|
<td class="center">7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>AOL browser (AOL desktop)</td>
|
||||||
|
<td>Win XP</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.5</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 2.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 3.0</td>
|
||||||
|
<td>Win 2k+ / OSX.3+</td>
|
||||||
|
<td class="center">1.9</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.0</td>
|
||||||
|
<td>OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.5</td>
|
||||||
|
<td>OSX.3+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape 7.2</td>
|
||||||
|
<td>Win 95+ / Mac OS 8.6-9.2</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Browser 8</td>
|
||||||
|
<td>Win 98SE+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Navigator 9</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.1</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.2</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.2</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.3</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.4</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.4</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.5</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.6</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">1.6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.7</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.8</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Seamonkey 1.1</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Epiphany 2.20</td>
|
||||||
|
<td>Gnome</td>
|
||||||
|
<td class="center">1.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.2</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">125.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 1.3</td>
|
||||||
|
<td>OSX.3</td>
|
||||||
|
<td class="center">312.8</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 2.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">419.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>Safari 3.0</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">522.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>OmniWeb 5.5</td>
|
||||||
|
<td>OSX.4+</td>
|
||||||
|
<td class="center">420</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>iPod Touch / iPhone</td>
|
||||||
|
<td>iPod</td>
|
||||||
|
<td class="center">420.1</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Webkit</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td>S60</td>
|
||||||
|
<td class="center">413</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 7.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.0</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 8.5</td>
|
||||||
|
<td>Win 95+ / OSX.2+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.0</td>
|
||||||
|
<td>Win 95+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.2</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera 9.5</td>
|
||||||
|
<td>Win 88+ / OSX.3+</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Opera for Wii</td>
|
||||||
|
<td>Wii</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nokia N800</td>
|
||||||
|
<td>N800</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Presto</td>
|
||||||
|
<td>Nintendo DS browser</td>
|
||||||
|
<td>Nintendo DS</td>
|
||||||
|
<td class="center">8.5</td>
|
||||||
|
<td class="center">C/A<sup>1</sup></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.1</td>
|
||||||
|
<td>KDE 3.1</td>
|
||||||
|
<td class="center">3.1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.3</td>
|
||||||
|
<td>KDE 3.3</td>
|
||||||
|
<td class="center">3.3</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>KHTML</td>
|
||||||
|
<td>Konqureror 3.5</td>
|
||||||
|
<td>KDE 3.5</td>
|
||||||
|
<td class="center">3.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 4.5</td>
|
||||||
|
<td>Mac OS 8-9</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.1</td>
|
||||||
|
<td>Mac OS 7.6-9</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Tasman</td>
|
||||||
|
<td>Internet Explorer 5.2</td>
|
||||||
|
<td>Mac OS 8-X</td>
|
||||||
|
<td class="center">1</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.1</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>NetFront 3.4</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Dillo 0.8</td>
|
||||||
|
<td>Embedded devices</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Links</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>Lynx</td>
|
||||||
|
<td>Text only</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>IE Mobile</td>
|
||||||
|
<td>Windows Mobile 6</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Misc</td>
|
||||||
|
<td>PSP browser</td>
|
||||||
|
<td>PSP</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeU">
|
||||||
|
<td>Other browsers</td>
|
||||||
|
<td>All others</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="center">-</td>
|
||||||
|
<td class="center">U</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables unit testing</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../unit_test.js"></script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#demo').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
$aScripts = split( ":", $_GET['scripts'] );
|
||||||
|
for ( $i=0 ; $i<count($aScripts) ; $i++ )
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript" language="javascript" src="../'.$aScripts[$i].'?rand='.rand().'"></script>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> dynamic table template
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h1>Live example</h1>
|
||||||
|
<div id="demo"></div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
55
public/js/datatables/unit_testing/templates/empty_table.php
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables unit testing</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../unit_test.js"></script>
|
||||||
|
<?php
|
||||||
|
$aScripts = split( ":", $_GET['scripts'] );
|
||||||
|
for ( $i=0 ; $i<count($aScripts) ; $i++ )
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript" language="javascript" src="../'.$aScripts[$i].'?rand='.rand().'"></script>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> empty table template
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h1>Live example</h1>
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
124
public/js/datatables/unit_testing/templates/js_data.php
Normal file
|
@ -0,0 +1,124 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables unit testing</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../unit_test.js"></script>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
/* Make the data source available for testing */
|
||||||
|
var gaaData = [
|
||||||
|
['Trident','Internet Explorer 4.0','Win 95+','4','X'],
|
||||||
|
['Trident','Internet Explorer 5.0','Win 95+','5','C'],
|
||||||
|
['Trident','Internet Explorer 5.5','Win 95+','5.5','A'],
|
||||||
|
['Trident','Internet Explorer 6','Win 98+','6','A'],
|
||||||
|
['Trident','Internet Explorer 7','Win XP SP2+','7','A'],
|
||||||
|
['Trident','AOL browser (AOL desktop)','Win XP','6','A'],
|
||||||
|
['Gecko','Firefox 1.0','Win 98+ / OSX.2+','1.7','A'],
|
||||||
|
['Gecko','Firefox 1.5','Win 98+ / OSX.2+','1.8','A'],
|
||||||
|
['Gecko','Firefox 2.0','Win 98+ / OSX.2+','1.8','A'],
|
||||||
|
['Gecko','Firefox 3.0','Win 2k+ / OSX.3+','1.9','A'],
|
||||||
|
['Gecko','Camino 1.0','OSX.2+','1.8','A'],
|
||||||
|
['Gecko','Camino 1.5','OSX.3+','1.8','A'],
|
||||||
|
['Gecko','Netscape 7.2','Win 95+ / Mac OS 8.6-9.2','1.7','A'],
|
||||||
|
['Gecko','Netscape Browser 8','Win 98SE+','1.7','A'],
|
||||||
|
['Gecko','Netscape Navigator 9','Win 98+ / OSX.2+','1.8','A'],
|
||||||
|
['Gecko','Mozilla 1.0','Win 95+ / OSX.1+',1,'A'],
|
||||||
|
['Gecko','Mozilla 1.1','Win 95+ / OSX.1+',1.1,'A'],
|
||||||
|
['Gecko','Mozilla 1.2','Win 95+ / OSX.1+',1.2,'A'],
|
||||||
|
['Gecko','Mozilla 1.3','Win 95+ / OSX.1+',1.3,'A'],
|
||||||
|
['Gecko','Mozilla 1.4','Win 95+ / OSX.1+',1.4,'A'],
|
||||||
|
['Gecko','Mozilla 1.5','Win 95+ / OSX.1+',1.5,'A'],
|
||||||
|
['Gecko','Mozilla 1.6','Win 95+ / OSX.1+',1.6,'A'],
|
||||||
|
['Gecko','Mozilla 1.7','Win 98+ / OSX.1+',1.7,'A'],
|
||||||
|
['Gecko','Mozilla 1.8','Win 98+ / OSX.1+',1.8,'A'],
|
||||||
|
['Gecko','Seamonkey 1.1','Win 98+ / OSX.2+','1.8','A'],
|
||||||
|
['Gecko','Epiphany 2.20','Gnome','1.8','A'],
|
||||||
|
['Webkit','Safari 1.2','OSX.3','125.5','A'],
|
||||||
|
['Webkit','Safari 1.3','OSX.3','312.8','A'],
|
||||||
|
['Webkit','Safari 2.0','OSX.4+','419.3','A'],
|
||||||
|
['Webkit','Safari 3.0','OSX.4+','522.1','A'],
|
||||||
|
['Webkit','OmniWeb 5.5','OSX.4+','420','A'],
|
||||||
|
['Webkit','iPod Touch / iPhone','iPod','420.1','A'],
|
||||||
|
['Webkit','S60','S60','413','A'],
|
||||||
|
['Presto','Opera 7.0','Win 95+ / OSX.1+','-','A'],
|
||||||
|
['Presto','Opera 7.5','Win 95+ / OSX.2+','-','A'],
|
||||||
|
['Presto','Opera 8.0','Win 95+ / OSX.2+','-','A'],
|
||||||
|
['Presto','Opera 8.5','Win 95+ / OSX.2+','-','A'],
|
||||||
|
['Presto','Opera 9.0','Win 95+ / OSX.3+','-','A'],
|
||||||
|
['Presto','Opera 9.2','Win 88+ / OSX.3+','-','A'],
|
||||||
|
['Presto','Opera 9.5','Win 88+ / OSX.3+','-','A'],
|
||||||
|
['Presto','Opera for Wii','Wii','-','A'],
|
||||||
|
['Presto','Nokia N800','N800','-','A'],
|
||||||
|
['Presto','Nintendo DS browser','Nintendo DS','8.5','C/A<sup>1</sup>'],
|
||||||
|
['KHTML','Konqureror 3.1','KDE 3.1','3.1','C'],
|
||||||
|
['KHTML','Konqureror 3.3','KDE 3.3','3.3','A'],
|
||||||
|
['KHTML','Konqureror 3.5','KDE 3.5','3.5','A'],
|
||||||
|
['Tasman','Internet Explorer 4.5','Mac OS 8-9','-','X'],
|
||||||
|
['Tasman','Internet Explorer 5.1','Mac OS 7.6-9','1','C'],
|
||||||
|
['Tasman','Internet Explorer 5.2','Mac OS 8-X','1','C'],
|
||||||
|
['Misc','NetFront 3.1','Embedded devices','-','C'],
|
||||||
|
['Misc','NetFront 3.4','Embedded devices','-','A'],
|
||||||
|
['Misc','Dillo 0.8','Embedded devices','-','X'],
|
||||||
|
['Misc','Links','Text only','-','X'],
|
||||||
|
['Misc','Lynx','Text only','-','X'],
|
||||||
|
['Misc','IE Mobile','Windows Mobile 6','-','C'],
|
||||||
|
['Misc','PSP browser','PSP','-','C'],
|
||||||
|
['Other browsers','All others','-','-','U']
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
$aScripts = split( ":", $_GET['scripts'] );
|
||||||
|
for ( $i=0 ; $i<count($aScripts) ; $i++ )
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript" language="javascript" src="../'.$aScripts[$i].'?rand='.rand().'"></script>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> unit test template for reading DOM data
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
227
public/js/datatables/unit_testing/templates/two_tables.php
Normal file
|
@ -0,0 +1,227 @@
|
||||||
|
<?php
|
||||||
|
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
|
||||||
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
|
header( 'Cache-Control: post-check=0, pre-check=0', false );
|
||||||
|
header( 'Pragma: no-cache' );
|
||||||
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
|
||||||
|
|
||||||
|
<title>DataTables unit testing</title>
|
||||||
|
<style type="text/css" title="currentStyle">
|
||||||
|
@import "../../css/demo_page.css";
|
||||||
|
@import "../../css/demo_table.css";
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../../js/jquery.dataTables.js"></script>
|
||||||
|
<script type="text/javascript" language="javascript" src="../unit_test.js"></script>
|
||||||
|
<?php
|
||||||
|
$aScripts = split( ":", $_GET['scripts'] );
|
||||||
|
for ( $i=0 ; $i<count($aScripts) ; $i++ )
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript" language="javascript" src="../'.$aScripts[$i].'?rand='.rand().'"></script>'."\n";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body id="dt_example">
|
||||||
|
<div id="container">
|
||||||
|
<div class="full_width big">
|
||||||
|
<i>DataTables</i> unit test template for two tables
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="demo">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example1">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeX">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>testsearchstring <br>html & entity</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">4</td>
|
||||||
|
<td class="center">X</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeC">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.0</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5</td>
|
||||||
|
<td class="center">C</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 5.5</td>
|
||||||
|
<td>Win 95+</td>
|
||||||
|
<td class="center">5.5</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet
|
||||||
|
Explorer 6</td>
|
||||||
|
<td>Win 98+</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>Internet Explorer 7</td>
|
||||||
|
<td>Win XP SP2+</td>
|
||||||
|
<td class="center">7</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Trident</td>
|
||||||
|
<td>AOL browser (AOL desktop)</td>
|
||||||
|
<td>Win XP</td>
|
||||||
|
<td class="center">6</td>
|
||||||
|
<td class="center">A</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
<th>Engine version</th>
|
||||||
|
<th>CSS grade</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example2">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 1.5</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 2.0</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Firefox 3.0</td>
|
||||||
|
<td>Win 2k+ / OSX.3+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.0</td>
|
||||||
|
<td>OSX.2+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Camino 1.5</td>
|
||||||
|
<td>OSX.3+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape 7.2</td>
|
||||||
|
<td>Win 95+ / Mac OS 8.6-9.2</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Browser 8</td>
|
||||||
|
<td>Win 98SE+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Netscape Navigator 9</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.0</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.1</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.2</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.3</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.4</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.5</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.6</td>
|
||||||
|
<td>Win 95+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.7</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Mozilla 1.8</td>
|
||||||
|
<td>Win 98+ / OSX.1+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Seamonkey 1.1</td>
|
||||||
|
<td>Win 98+ / OSX.2+</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="gradeA">
|
||||||
|
<td>Gecko</td>
|
||||||
|
<td>Epiphany 2.20</td>
|
||||||
|
<td>Gnome</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th>Rendering engine</th>
|
||||||
|
<th>Browser</th>
|
||||||
|
<th>Platform(s)</th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
52
public/js/datatables/unit_testing/tests_onhold/1_dom/-complex_header.js
Executable file
|
@ -0,0 +1,52 @@
|
||||||
|
// DATA_TEMPLATE: -complex_header
|
||||||
|
oTest.fnStart( "Complex header" );
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on colspan has no effect",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr td:eq(1)').html() == "Firefox 1.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on non-unique TH and first TH has no effect",
|
||||||
|
function () { $('#example thead th:eq(2)').click(); },
|
||||||
|
function () { return $('#example tbody tr td:eq(1)').html() == "Firefox 1.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on non-unique TH and second TH will not sort",
|
||||||
|
function () { $('#example thead th:eq(6)').click(); },
|
||||||
|
function () { return $('#example tbody tr td:eq(4)').html() == "A"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on non-unique TH and second TH will not sort - reserve",
|
||||||
|
function () { $('#example thead th:eq(6)').click(); },
|
||||||
|
function () { return $('#example tbody tr td:eq(4)').html() == "A"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on unique TH will sort",
|
||||||
|
function () { $('#example thead th:eq(5)').click(); },
|
||||||
|
function () { return $('#example tbody tr td:eq(3)').html() == "-"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on unique TH will sort - reserve",
|
||||||
|
function () { $('#example thead th:eq(5)').click(); },
|
||||||
|
function () { return $('#example tbody tr td:eq(3)').html() == "522.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on unique rowspan TH will sort",
|
||||||
|
function () { $('#example thead th:eq(0)').click(); },
|
||||||
|
function () { return $('#example tbody tr td:eq(0)').html() == "Gecko"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
41
public/js/datatables/unit_testing/tests_onhold/1_dom/-iDraw.js
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "iDraw - check that iDraw increments for each draw" );
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"After first draw, iDraw is 1",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.iDraw == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"After second draw, iDraw is 2",
|
||||||
|
function () { oTable.fnDraw() },
|
||||||
|
function () { return oSettings.iDraw == 2; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"After sort",
|
||||||
|
function () { oTable.fnSort([[1,'asc']]) },
|
||||||
|
function () { return oSettings.iDraw == 3; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"After filter",
|
||||||
|
function () { oTable.fnFilter('gecko') },
|
||||||
|
function () { return oSettings.iDraw == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"After another filter",
|
||||||
|
function () { oTable.fnFilter('gec') },
|
||||||
|
function () { return oSettings.iDraw == 5; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
17
public/js/datatables/unit_testing/tests_onhold/1_dom/2512.js
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
// DATA_TEMPLATE: 2512
|
||||||
|
oTest.fnStart( "Check filtering with BR and HTML entity" );
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
/* Basic checks */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check filtering",
|
||||||
|
function () { $('#example').dataTable().fnFilter('testsearchstring'); },
|
||||||
|
function () { return $('#example tbody tr').length == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
15
public/js/datatables/unit_testing/tests_onhold/1_dom/2530-2.js
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "User given with is left when no scrolling" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example')[0].style.width = "80%";
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check user width is left",
|
||||||
|
null,
|
||||||
|
function () { return $('#example').width() == 640; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
29
public/js/datatables/unit_testing/tests_onhold/1_dom/2530.js
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
// DATA_TEMPLATE: dymanic_table
|
||||||
|
oTest.fnStart( "2530 - Check width's when dealing with empty strings" );
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaData": [
|
||||||
|
['','Internet Explorer 4.0','Win 95+','4','X'],
|
||||||
|
['','Internet Explorer 5.0','Win 95+','5','C']
|
||||||
|
],
|
||||||
|
"aoColumns": [
|
||||||
|
{ "sTitle": "", "sWidth": "40px" },
|
||||||
|
{ "sTitle": "Browser" },
|
||||||
|
{ "sTitle": "Platform" },
|
||||||
|
{ "sTitle": "Version", "sClass": "center" },
|
||||||
|
{ "sTitle": "Grade", "sClass": "center" }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
|
||||||
|
/* Basic checks */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check calculated widths",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr td:eq(0)').width() < 100; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
36
public/js/datatables/unit_testing/tests_onhold/1_dom/2569.js
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "Destroy with hidden columns" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumnDefs": [
|
||||||
|
{ "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
|
||||||
|
{ "bVisible": false, "aTargets": [ 3 ] }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
$('#example').dataTable().fnDestroy();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check that the number of columns in table is correct",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(0) td').length == 5; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"And with scrolling",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"sScrollY": 200,
|
||||||
|
"aoColumnDefs": [
|
||||||
|
{ "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
|
||||||
|
{ "bVisible": false, "aTargets": [ 3 ] }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
$('#example').dataTable().fnDestroy();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td').length == 5; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
44
public/js/datatables/unit_testing/tests_onhold/1_dom/2600.js
Executable file
|
@ -0,0 +1,44 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "2600 - Display rewind when changing length" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info correct on init",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Page 2",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return $('#example_info').html() == "Showing 11 to 20 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Page 3",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return $('#example_info').html() == "Showing 21 to 30 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Page 4",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return $('#example_info').html() == "Showing 31 to 40 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Page 5",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return $('#example_info').html() == "Showing 41 to 50 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Rewind",
|
||||||
|
function () { $('#example_length select').val('100'); $('#example_length select').change(); },
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 57 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
54
public/js/datatables/unit_testing/tests_onhold/1_dom/2608.js
Executable file
|
@ -0,0 +1,54 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "2608 - State saving escaping filters" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bStateSave": true
|
||||||
|
} );
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Set the filter",
|
||||||
|
function () {
|
||||||
|
$('#example_filter input').val( '\\s*CVM\\s*$' );
|
||||||
|
$('#example_filter input').keyup();
|
||||||
|
},
|
||||||
|
function () { return $('#example_filter input').val() == '\\s*CVM\\s*$'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Destroy the table and remake it - checking the filter was saved",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bStateSave": true,
|
||||||
|
"bDestroy": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_filter input').val() == '\\s*CVM\\s*$'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Do it again without state saving and make sure filter is empty",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_filter input').val() == ''; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Clean up",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bStateSave": true,
|
||||||
|
"bDestroy": true
|
||||||
|
} );
|
||||||
|
$('#example_filter input').val( '' );
|
||||||
|
$('#example_filter input').keyup();
|
||||||
|
},
|
||||||
|
function () { return $('#example_filter input').val() == ''; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnCookieDestroy( $('#example').dataTable() );
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
40
public/js/datatables/unit_testing/tests_onhold/1_dom/2635.js
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "2635 - Hiding column and state saving" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bStateSave": true
|
||||||
|
} );
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Set the hidden column",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable().fnSetColumnVis( 2, false );
|
||||||
|
},
|
||||||
|
function () { return $('#example thead th').length == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Destroy the table and remake it - checking one column was removed",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bStateSave": true,
|
||||||
|
"bDestroy": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example thead th').length == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Do it again without state saving and make sure we are back to 5 columns",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example thead th').length == 5; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnCookieDestroy( $('#example').dataTable() );
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
199
public/js/datatables/unit_testing/tests_onhold/1_dom/2746-stable-sort.js
Executable file
|
@ -0,0 +1,199 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "2746 - Stable sorting" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Initial sort",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reserve initial sort",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(0)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Webkit' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Safari 1.2' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 1.3' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reserve to go back to initial sort sort",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(0)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reserve initial sort again",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(0)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Webkit' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Safari 1.2' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 1.3' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"And once more back to the initial sort",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(0)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sort on second column",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'AOL browser (AOL desktop)' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reserve sort on second column",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Seamonkey 1.1' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 3.0' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"And back to asc sorting on second column",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'AOL browser (AOL desktop)' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.0';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sort on third column, having now sorted on second",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(2)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Misc' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Dillo 0.8' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'NetFront 3.1';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reserve sort on third column",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(2)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Misc' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'IE Mobile' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Internet Explorer 7' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'AOL browser (AOL desktop)';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Return sorting on third column to asc",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(2)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Misc' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Dillo 0.8' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'NetFront 3.1';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sort on first column having sorted on second then third columns",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(0)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var ret =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Epiphany 2.20' &&
|
||||||
|
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Camino 1.0' &&
|
||||||
|
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.5';
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
14
public/js/datatables/unit_testing/tests_onhold/1_dom/2799.js
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
// DATA_TEMPLATE: two_tables
|
||||||
|
oTest.fnStart( "Initialise two tables" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('table.display').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check that initialisation was okay",
|
||||||
|
null,
|
||||||
|
function () { return true; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
|
@ -0,0 +1,19 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "2840 - Restore table width on fnDestory" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
document.cookie = "";
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"sScrollX": "100%",
|
||||||
|
"sScrollXInner": "110%"
|
||||||
|
} );
|
||||||
|
$('#example').dataTable().fnDestroy();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Width after destroy",
|
||||||
|
null,
|
||||||
|
function () { return $('#example').width() == "800"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
39
public/js/datatables/unit_testing/tests_onhold/1_dom/2914-state-save-sort.js
Executable file
|
@ -0,0 +1,39 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "2914 - State saving with an empty array" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
document.cookie = "";
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bStateSave": true,
|
||||||
|
"aaSorting": []
|
||||||
|
} );
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"No sort",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "4"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Next page",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable().fnPageChange( 'next' );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Destroy the table and remake it - checking we are still on the next page",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bStateSave": true,
|
||||||
|
"aaSorting": [],
|
||||||
|
"bDestroy": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnCookieDestroy( $('#example').dataTable() );
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
437
public/js/datatables/unit_testing/tests_onhold/1_dom/_zero_config.js
Executable file
|
@ -0,0 +1,437 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "Sanity checks for DataTables with DOM data" );
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"jQuery.dataTable function",
|
||||||
|
null,
|
||||||
|
function () { return typeof jQuery().dataTable == "function"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"jQuery.dataTableSettings storage array",
|
||||||
|
null,
|
||||||
|
function () { return typeof jQuery().dataTableSettings == "object"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"jQuery.dataTableExt plugin object",
|
||||||
|
null,
|
||||||
|
function () { return typeof jQuery().dataTableExt == "object"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
/* Basic checks */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Length changing div exists",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_length') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filtering div exists",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_filter') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information div exists",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Pagination div exists",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_paginate') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div is off by default",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_processing') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"10 rows shown on the first page",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Initial sort occured",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Need to use the WaitTest for sorting due to the setTimeout datatables uses */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting (first click) on second column",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting (second click) on second column",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting (third click) on second column",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting (first click) on numeric column",
|
||||||
|
function () { $('#example thead th:eq(3)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "-"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting (second click) on numeric column",
|
||||||
|
function () { $('#example thead th:eq(3)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting multi-column (first click)",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(0)').click();
|
||||||
|
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
|
||||||
|
function () { var b =
|
||||||
|
$('#example tbody td:eq(0)').html() == "Gecko" &&
|
||||||
|
$('#example tbody td:eq(1)').html() == "Camino 1.0"; return b; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting multi-column - sorting second column only",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Basic paging */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Paging to second page",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "IE Mobile"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Paging to first page",
|
||||||
|
function () { $('#example_previous').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Attempting to page back beyond the first page",
|
||||||
|
function () { $('#example_previous').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Changing length */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Changing table length to 25 records",
|
||||||
|
function () { $("select[name=example_length]").val('25').change(); },
|
||||||
|
function () { return $('#example tbody tr').length == 25; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Changing table length to 50 records",
|
||||||
|
function () { $("select[name=example_length]").val('50').change(); },
|
||||||
|
function () { return $('#example tbody tr').length == 50; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Changing table length to 100 records",
|
||||||
|
function () { $("select[name=example_length]").val('100').change(); },
|
||||||
|
function () { return $('#example tbody tr').length == 57; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Changing table length to 10 records",
|
||||||
|
function () { $("select[name=example_length]").val('10').change(); },
|
||||||
|
function () { return $('#example tbody tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Information element
|
||||||
|
*/
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information on zero config",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information on second page",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 11 to 20 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information on third page",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 21 to 30 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information on last page",
|
||||||
|
function () {
|
||||||
|
$('#example_next').click();
|
||||||
|
$('#example_next').click();
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 51 to 57 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information back on first page",
|
||||||
|
function () {
|
||||||
|
$('#example_previous').click();
|
||||||
|
$('#example_previous').click();
|
||||||
|
$('#example_previous').click();
|
||||||
|
$('#example_previous').click();
|
||||||
|
$('#example_previous').click();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with 25 records",
|
||||||
|
function () { $("select[name=example_length]").val('25').change(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 25 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with 25 records - second page",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 26 to 50 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with 100 records - first page",
|
||||||
|
function () {
|
||||||
|
$('#example_previous').click();
|
||||||
|
$("select[name=example_length]").val('100').change();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 57 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information back to 10 records",
|
||||||
|
function () {
|
||||||
|
$('#example_previous').click();
|
||||||
|
$("select[name=example_length]").val('10').change();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter 'Win'",
|
||||||
|
function () { $('#example_filter input').val("Win").keyup(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter 'Win' second page",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter 'Win' last page",
|
||||||
|
function () {
|
||||||
|
$('#example_next').click();
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 31 to 31 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter 'Win' back to first page",
|
||||||
|
function () {
|
||||||
|
$('#example_previous').click();
|
||||||
|
$('#example_previous').click();
|
||||||
|
$('#example_previous').click();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter 'Win' second page - second time",
|
||||||
|
function () {
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter increased to 'Win 98'",
|
||||||
|
function () { $('#example_filter input').val("Win 98").keyup(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 9 of 9 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter decreased to 'Win'",
|
||||||
|
function () { $('#example_filter input').val("Win").keyup(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter 'Win' second page - third time",
|
||||||
|
function () {
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information with filter removed",
|
||||||
|
function () { $('#example_filter input').val("").keyup(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Filtering
|
||||||
|
*/
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'W' - rows",
|
||||||
|
function () {
|
||||||
|
/* Reset the table such that the old sorting doesn't mess things up */
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable();
|
||||||
|
$('#example_filter input').val("W").keyup(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Gecko"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'W' - info",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 42 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Wi'",
|
||||||
|
function () { $('#example_filter input').val("Wi").keyup(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 32 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win'",
|
||||||
|
function () { $('#example_filter input').val("Win").keyup(); },
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win' - sorting column 1",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "AOL browser (AOL desktop)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win' - sorting column 1 info",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win' - sorting column 1 reverse",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win XP' - maintaing reverse sorting col 1",
|
||||||
|
function () { $('#example_filter input').val("Win XP").keyup(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Internet Explorer 7"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win XP' - sorting col 3",
|
||||||
|
function () { $('#example thead th:eq(3)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "4"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win XP' - sorting col 3 - reversed",
|
||||||
|
function () { $('#example thead th:eq(3)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "7"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'Win' - sorting col 3 - reversed info",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 6 of 6 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'nothinghere'",
|
||||||
|
function () { $('#example_filter input').val("nothinghere").keyup(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() ==
|
||||||
|
"No matching records found"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter 'nothinghere' - info",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 0 to 0 of 0 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter back to blank and 1st column sorting",
|
||||||
|
function () {
|
||||||
|
$('#example_filter input').val("").keyup();
|
||||||
|
$('#example thead th:eq(0)').click();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Prefixing a filter entry",
|
||||||
|
function () {
|
||||||
|
$('#example_filter input').val("Win").keyup();
|
||||||
|
$('#example_filter input').val("GeckoWin").keyup();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 0 to 0 of 0 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Prefixing a filter entry with space",
|
||||||
|
function () {
|
||||||
|
$('#example_filter input').val("Gecko Win").keyup();
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 17 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
183
public/js/datatables/unit_testing/tests_onhold/1_dom/aaSorting.js
Executable file
|
@ -0,0 +1,183 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aaSorting" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default sorting is single column",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
return oSettings.aaSorting.length == 1 && typeof oSettings.aaSorting[0] == 'object';
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default sorting is first column asc",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
return oSettings.aaSorting[0].length == 3 && oSettings.aaSorting[0][0] == 0 &&
|
||||||
|
oSettings.aaSorting[0][1] == 'asc';
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting is applied",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Custom sorting on single string column asc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['1','asc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Custom sorting on single string column desc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['1','desc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Custom sorting on single int column asc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['1','asc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "-"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Custom sorting on single int column desc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['1','desc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string asc / string asc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','asc'], ['1','asc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string asc / string desc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','asc'], ['1','desc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string desc / string asc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','desc'], ['1','asc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "iPod Touch / iPhone"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string desc / string desc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','desc'], ['1','desc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Safari 3.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string asc / int asc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','asc'], ['3','asc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string asc / int desc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','asc'], ['3','desc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "1.9"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string desc / int asc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','desc'], ['3','asc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "125.5"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (2 column) - string desc / int desc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','desc'], ['3','desc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column sorting (3 column) - string asc / int asc / string asc",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSorting": [['0','asc'], ['3','asc'], ['1','asc']]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(7) td:eq(1)').html() == "Firefox 1.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
60
public/js/datatables/unit_testing/tests_onhold/1_dom/aaSortingFixed.js
Executable file
|
@ -0,0 +1,60 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aaSortingFixed" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"No fixed sorting by default",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
return oSettings.aaSortingFixed == null;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Fixed sorting on first column (string/asc) with user sorting on second column (string/asc)",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSortingFixed": [['0','asc']]
|
||||||
|
} );
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Fixed sorting on first column (string/asc) with user sorting on second column (string/desc)",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/asc)",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaSortingFixed": [['3','asc']]
|
||||||
|
} );
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/desc)",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "PSP browser"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
|
@ -0,0 +1,67 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.bSeachable" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Columns are searchable by default",
|
||||||
|
function () { oTable.fnFilter("Camino"); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html().match(/Camino/); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Disabling sorting on a column removes it from the global filter",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "bSearchable": false },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
oSettings = oTable.fnSettings();
|
||||||
|
oTable.fnFilter("Camino");
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Disabled on one column has no effect on other columns",
|
||||||
|
function () { oTable.fnFilter("Webkit"); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Webkit"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Disable filtering on multiple columns",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
{ "bSearchable": false },
|
||||||
|
{ "bSearchable": false },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
oSettings = oTable.fnSettings();
|
||||||
|
oTable.fnFilter("Webkit");
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filter on second disabled column",
|
||||||
|
function () { oTable.fnFilter("Camino"); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
105
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bSortable.js
Executable file
|
@ -0,0 +1,105 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.bSortable" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"All columns are sortable by default",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Can disable sorting from one column",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "bSortable": false },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Disabled column has no sorting class",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Other columns can still sort",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(4)').click();
|
||||||
|
$('#example thead th:eq(4)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Disable sorting on multiple columns - no sorting classes",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "bSortable": false },
|
||||||
|
null,
|
||||||
|
{ "bSortable": false },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var bReturn =
|
||||||
|
$('#example thead th:eq(1)').hasClass("sorting") ||
|
||||||
|
$('#example thead th:eq(3)').hasClass("sorting")
|
||||||
|
return bReturn == false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on disabled column 1 has no effect",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on disabled column 2 has no effect",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(3)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Second sort on disabled column 2 has no effect",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(3)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Even with multiple disabled sorting columns other columns can still sort",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(4)').click();
|
||||||
|
$('#example thead th:eq(4)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
145
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bUseRendered.js
Executable file
|
@ -0,0 +1,145 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.bUseRendered" );
|
||||||
|
|
||||||
|
/* bUseRendered is used to alter sorting data, if false then the original data is used for
|
||||||
|
* sorting rather than the rendered data
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var mTmp = 0;
|
||||||
|
|
||||||
|
var oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
if ( mTmp == 0 ) {
|
||||||
|
mTmp++;
|
||||||
|
return "aaa";
|
||||||
|
} else
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
} },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default for bUseRendered is true - rendered data is used for sorting",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'aaa'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"When bUseRendered is false, original data is used for sorting",
|
||||||
|
function () {
|
||||||
|
mTmp = 0;
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"bUseRendered": false,
|
||||||
|
"fnRender": function (a) {
|
||||||
|
if ( mTmp == 0 ) {
|
||||||
|
mTmp++;
|
||||||
|
return "aaa";
|
||||||
|
} else {
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
$('#example thead th:eq(1)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"bUseRendered set to false on one columns and true (default) on two others",
|
||||||
|
function () {
|
||||||
|
mTmp = 0;
|
||||||
|
var mTmp2 = 0;
|
||||||
|
var mTmp3 = 0;
|
||||||
|
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
{
|
||||||
|
"fnRender": function (a) {
|
||||||
|
if ( mTmp == 0 ) {
|
||||||
|
mTmp++;
|
||||||
|
return "aaa1";
|
||||||
|
} else {
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bUseRendered": false,
|
||||||
|
"fnRender": function (a) {
|
||||||
|
if ( mTmp2 == 0 ) {
|
||||||
|
mTmp2++;
|
||||||
|
return "aaa2";
|
||||||
|
} else {
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fnRender": function (a) {
|
||||||
|
if ( mTmp3 == 0 ) {
|
||||||
|
mTmp3++;
|
||||||
|
return "zzz3";
|
||||||
|
} else {
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'aaa1'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column rendering - 2nd column sorting",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column rendering - 3rd column sorting",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(2)').click();
|
||||||
|
$('#example thead th:eq(2)').click();
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(2)').html() == 'zzz3'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column rendering - 4th column sorting",
|
||||||
|
function () { $('#example thead th:eq(3)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == '-'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multi-column rendering - 5th column sorting",
|
||||||
|
function () { $('#example thead th:eq(4)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
132
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.bVisible.js
Executable file
|
@ -0,0 +1,132 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.bVisible" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"All columns are visible by default",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(0) td').length == 5; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Can hide one column and it removes td column from DOM",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "bVisible": false },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td').length == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Can hide one column and it removes thead th column from DOM",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead tr:eq(0) th').length == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Can hide one column and it removes tfoot th column from DOM",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tfoot tr:eq(0) th').length == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"The correct thead column has been hidden",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var jqNodes = $('#example thead tr:eq(0) th');
|
||||||
|
var bReturn =
|
||||||
|
jqNodes[0].innerHTML == "Rendering engine" &&
|
||||||
|
jqNodes[1].innerHTML == "Platform(s)" &&
|
||||||
|
jqNodes[2].innerHTML == "Engine version" &&
|
||||||
|
jqNodes[3].innerHTML == "CSS grade";
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"The correct tbody column has been hidden",
|
||||||
|
function () {
|
||||||
|
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var jqNodes = $('#example tbody tr:eq(0) td');
|
||||||
|
var bReturn =
|
||||||
|
jqNodes[0].innerHTML == "Gecko" &&
|
||||||
|
jqNodes[1].innerHTML == "Gnome" &&
|
||||||
|
jqNodes[2].innerHTML == "1.8" &&
|
||||||
|
jqNodes[3].innerHTML == "A";
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Can hide multiple columns and it removes td column from DOM",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "bVisible": false },
|
||||||
|
{ "bVisible": false },
|
||||||
|
null,
|
||||||
|
{ "bVisible": false }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td').length == 2; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multiple hide - removes thead th column from DOM",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead tr:eq(0) th').length == 2; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multiple hide - removes tfoot th column from DOM",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tfoot tr:eq(0) th').length == 2; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multiple hide - the correct thead columns have been hidden",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var jqNodes = $('#example thead tr:eq(0) th');
|
||||||
|
var bReturn =
|
||||||
|
jqNodes[0].innerHTML == "Rendering engine" &&
|
||||||
|
jqNodes[1].innerHTML == "Engine version"
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Multiple hide - the correct tbody columns have been hidden",
|
||||||
|
function () {
|
||||||
|
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var jqNodes = $('#example tbody tr:eq(0) td');
|
||||||
|
var bReturn =
|
||||||
|
jqNodes[0].innerHTML == "Gecko" &&
|
||||||
|
jqNodes[1].innerHTML == "1"
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
175
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.fnRender.js
Executable file
|
@ -0,0 +1,175 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.fnRender" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var mTmp = 0;
|
||||||
|
var oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
mTmp++;
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
} },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Single column - fnRender is called once for each row",
|
||||||
|
null,
|
||||||
|
function () { return mTmp == 57; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Confirm that fnRender passes one argument (an object) with three parameters",
|
||||||
|
function () {
|
||||||
|
mTmp = true;
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
if ( arguments.length != 1 || typeof a.iDataRow=='undefined' ||
|
||||||
|
typeof a.iDataColumn=='undefined' || typeof a.aData=='undefined' )
|
||||||
|
{
|
||||||
|
mTmp = false;
|
||||||
|
}
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
} },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mTmp; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRender iDataColumn is row number",
|
||||||
|
function () {
|
||||||
|
var iCount = 0;
|
||||||
|
mTmp = true;
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
if ( iCount != a.iDataRow )
|
||||||
|
{
|
||||||
|
mTmp = false;
|
||||||
|
}
|
||||||
|
iCount++;
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
} },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mTmp; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRender iDataColumn is the column",
|
||||||
|
function () {
|
||||||
|
mTmp = true;
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
if ( a.iDataColumn != 1 )
|
||||||
|
{
|
||||||
|
mTmp = false;
|
||||||
|
}
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
} },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mTmp; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRender aData is data array of correct size",
|
||||||
|
function () {
|
||||||
|
mTmp = true;
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
if ( a.aData.length != 5 )
|
||||||
|
{
|
||||||
|
mTmp = false;
|
||||||
|
}
|
||||||
|
return a.aData[a.iDataColumn];
|
||||||
|
} },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mTmp; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Passed back data is put into the DOM",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
return 'unittest';
|
||||||
|
} },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'unittest'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Passed back data is put into the DOM",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
return 'unittest1';
|
||||||
|
} },
|
||||||
|
{ "fnRender": function (a) {
|
||||||
|
return 'unittest2';
|
||||||
|
} },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var bReturn =
|
||||||
|
$('#example tbody tr:eq(0) td:eq(2)').html() == 'unittest1' &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(3)').html() == 'unittest2';
|
||||||
|
return bReturn; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
88
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.iDataSort.js
Executable file
|
@ -0,0 +1,88 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.iDataSort" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Should know that sorting already works by default from other tests, so we can jump
|
||||||
|
* right in here
|
||||||
|
*/
|
||||||
|
var oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "iDataSort": 4 },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on first column is uneffected",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on second column is the order of the fifth",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reserve sorting on second column uses fifth column as well",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'X'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting on 5th column retains it's own sorting",
|
||||||
|
function () { $('#example thead th:eq(4)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Use 2nd col for sorting 5th col and via-versa - no effect on first col sorting",
|
||||||
|
function () {
|
||||||
|
mTmp = 0;
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "iDataSort": 4 },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "iDataSort": 1 }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"2nd col sorting uses fifth col",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"2nd col sorting uses fifth col - reversed",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'X'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"5th col sorting uses 2nd col",
|
||||||
|
function () { $('#example thead th:eq(4)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"5th col sorting uses 2nd col - reversed",
|
||||||
|
function () { $('#example thead th:eq(4)').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'Seamonkey 1.1'; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
111
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sClass.js
Executable file
|
@ -0,0 +1,111 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.sClass" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"By default the test class hasn't been applied to the column (sanity!)",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(2)').hasClass('unittest') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - first row",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "sClass": 'unittest' },
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(1) td:eq(2)').hasClass('unittest'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - third row",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(3) td:eq(2)').hasClass('unittest'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - last row",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(9) td:eq(2)').hasClass('unittest'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - has not applied to other columns - 1st",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - has not applied to other columns - 5th",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(3) td:eq(4)').hasClass('unittest') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - seventh row - second page",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return $('#example tbody tr:eq(6) td:eq(2)').hasClass('unittest'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - has not applied to header",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Add a class to a single column - has not applied to footer",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Class defined for multiple columns - first row",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
{ "sClass": 'unittest2' },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "sClass": 'unittest1' },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var bReturn =
|
||||||
|
$('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest2') &&
|
||||||
|
$('#example tbody tr:eq(8) td:eq(3)').hasClass('unittest1');
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Class defined for multiple columns - has not applied to other columns - 5th 1",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(4)').hasClass('unittest1') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Class defined for multiple columns - has not applied to other columns - 5th 2",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(6) td:eq(4)').hasClass('unittest2') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
27
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sName.js
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.sName" );
|
||||||
|
|
||||||
|
/* This has no effect at all in DOM methods - so we just check that it has applied the name */
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "sName": 'unit test' },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Names are stored in the columns object",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.aoColumns[3].sName =="unit test"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
78
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sTitle.js
Executable file
|
@ -0,0 +1,78 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.sTitle" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Column names are read from the DOM by default",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var jqNodes = $('#example thead tr:eq(0) th');
|
||||||
|
var bReturn =
|
||||||
|
jqNodes[0].innerHTML == "Rendering engine" &&
|
||||||
|
jqNodes[1].innerHTML == "Browser" &&
|
||||||
|
jqNodes[2].innerHTML == "Platform(s)" &&
|
||||||
|
jqNodes[3].innerHTML == "Engine version" &&
|
||||||
|
jqNodes[4].innerHTML == "CSS grade";
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Can set a single column title - and others are read from DOM",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "sTitle": 'unit test' },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var jqNodes = $('#example thead tr:eq(0) th');
|
||||||
|
var bReturn =
|
||||||
|
jqNodes[0].innerHTML == "Rendering engine" &&
|
||||||
|
jqNodes[1].innerHTML == "unit test" &&
|
||||||
|
jqNodes[2].innerHTML == "Platform(s)" &&
|
||||||
|
jqNodes[3].innerHTML == "Engine version" &&
|
||||||
|
jqNodes[4].innerHTML == "CSS grade";
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Can set multiple column titles",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "sTitle": 'unit test 1' },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "sTitle": 'unit test 2' }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var jqNodes = $('#example thead tr:eq(0) th');
|
||||||
|
var bReturn =
|
||||||
|
jqNodes[0].innerHTML == "Rendering engine" &&
|
||||||
|
jqNodes[1].innerHTML == "unit test 1" &&
|
||||||
|
jqNodes[2].innerHTML == "Platform(s)" &&
|
||||||
|
jqNodes[3].innerHTML == "Engine version" &&
|
||||||
|
jqNodes[4].innerHTML == "unit test 2";
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
84
public/js/datatables/unit_testing/tests_onhold/1_dom/aoColumns.sWidth.js
Executable file
|
@ -0,0 +1,84 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoColumns.sWidth" );
|
||||||
|
|
||||||
|
/* NOTE - we need to disable the auto width for the majority of these test in order to preform
|
||||||
|
* these tests as the auto width will convert the width to a px value. We can do 'non-exact' tests
|
||||||
|
* with auto width enabled however to ensure it scales columns as required
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable( {
|
||||||
|
"bAutoWidth": false,
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
{ "sWidth": '40%' },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"With auto width disabled the width for one column is appled",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(1)')[0].style.width == "40%"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"With auto width disabled the width for one column is appled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"bAutoWidth": false,
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "sWidth": '20%' },
|
||||||
|
{ "sWidth": '30%' },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var bReturn =
|
||||||
|
$('#example thead th:eq(2)')[0].style.width == "20%" &&
|
||||||
|
$('#example thead th:eq(3)')[0].style.width == "30%";
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"With auto width, it will make the smallest column the largest with percentage width given",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoColumns": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
{ "sWidth": '40%' },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
var anThs = $('#example thead th');
|
||||||
|
var a0 = anThs[0].offsetWidth;
|
||||||
|
var a1 = anThs[1].offsetWidth;
|
||||||
|
var a2 = anThs[2].offsetWidth;
|
||||||
|
var a3 = anThs[3].offsetWidth;
|
||||||
|
var a4 = anThs[4].offsetWidth;
|
||||||
|
|
||||||
|
if ( a3>a0 && a3>a1 && a3>a2 && a3>a4 )
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
112
public/js/datatables/unit_testing/tests_onhold/1_dom/aoSearchCols.js
Executable file
|
@ -0,0 +1,112 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "aoSearchCols" );
|
||||||
|
|
||||||
|
/* We could be here forever testing this one, so we test a limited subset on a couple of colums */
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default should be to have a empty colums array",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var bReturn =
|
||||||
|
oSettings.aoPreSearchCols[0].sSearch == 0 && !oSettings.aoPreSearchCols[0].bRegex &&
|
||||||
|
oSettings.aoPreSearchCols[1].sSearch == 0 && !oSettings.aoPreSearchCols[1].bRegex &&
|
||||||
|
oSettings.aoPreSearchCols[2].sSearch == 0 && !oSettings.aoPreSearchCols[2].bRegex &&
|
||||||
|
oSettings.aoPreSearchCols[3].sSearch == 0 && !oSettings.aoPreSearchCols[3].bRegex &&
|
||||||
|
oSettings.aoPreSearchCols[4].sSearch == 0 && !oSettings.aoPreSearchCols[4].bRegex;
|
||||||
|
return bReturn;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Search on a single column - no regex statement given",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoSearchCols": [
|
||||||
|
null,
|
||||||
|
{ "sSearch": "Mozilla" },
|
||||||
|
null,
|
||||||
|
{ "sSearch": "1" },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 9 of 9 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Search on two columns - no regex statement given",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoSearchCols": [
|
||||||
|
null,
|
||||||
|
{ "sSearch": "Mozilla" },
|
||||||
|
null,
|
||||||
|
{ "sSearch": "1.5" },
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "1.5"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Search on single column - escape regex false",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoSearchCols": [
|
||||||
|
{ "sSearch": ".*ML", "bEscapeRegex": false },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 3 of 3 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Search on two columns - escape regex false on first, true on second",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoSearchCols": [
|
||||||
|
{ "sSearch": ".*ML", "bEscapeRegex": false },
|
||||||
|
{ "sSearch": "3.3", "bEscapeRegex": true },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Konqureror 3.3"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Search on two columns (no records) - escape regex false on first, true on second",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"aoSearchCols": [
|
||||||
|
{ "sSearch": ".*ML", "bEscapeRegex": false },
|
||||||
|
{ "sSearch": "Allan", "bEscapeRegex": true },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
106
public/js/datatables/unit_testing/tests_onhold/1_dom/asStripClasses.js
Executable file
|
@ -0,0 +1,106 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "asStripClasses" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default row striping is applied",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0)').hasClass('odd') &&
|
||||||
|
$('#example tbody tr:eq(1)').hasClass('even') &&
|
||||||
|
$('#example tbody tr:eq(2)').hasClass('odd') &&
|
||||||
|
$('#example tbody tr:eq(3)').hasClass('even');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Row striping does not effect current classes",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0)').hasClass('gradeA') &&
|
||||||
|
$('#example tbody tr:eq(1)').hasClass('gradeA') &&
|
||||||
|
$('#example tbody tr:eq(2)').hasClass('gradeA') &&
|
||||||
|
$('#example tbody tr:eq(3)').hasClass('gradeA');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Row striping on the second page",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0)').hasClass('odd') &&
|
||||||
|
$('#example tbody tr:eq(1)').hasClass('even') &&
|
||||||
|
$('#example tbody tr:eq(2)').hasClass('odd') &&
|
||||||
|
$('#example tbody tr:eq(3)').hasClass('even');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
/* No striping */
|
||||||
|
oTest.fnTest(
|
||||||
|
"No row striping",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"asStripClasses": []
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0)')[0].className == "gradeA" &&
|
||||||
|
$('#example tbody tr:eq(1)')[0].className == "gradeA" &&
|
||||||
|
$('#example tbody tr:eq(2)')[0].className == "gradeA" &&
|
||||||
|
$('#example tbody tr:eq(3)')[0].className == "gradeA";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Custom striping */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Custom striping [2]",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"asStripClasses": [ 'test1', 'test2' ]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0)').hasClass('test1') &&
|
||||||
|
$('#example tbody tr:eq(1)').hasClass('test2') &&
|
||||||
|
$('#example tbody tr:eq(2)').hasClass('test1') &&
|
||||||
|
$('#example tbody tr:eq(3)').hasClass('test2');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/* long array of striping */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Custom striping [4]",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"asStripClasses": [ 'test1', 'test2', 'test3', 'test4' ]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0)').hasClass('test1') &&
|
||||||
|
$('#example tbody tr:eq(1)').hasClass('test2') &&
|
||||||
|
$('#example tbody tr:eq(2)').hasClass('test3') &&
|
||||||
|
$('#example tbody tr:eq(3)').hasClass('test4');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Custom striping is restarted on second page [2]",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0)').hasClass('test1') &&
|
||||||
|
$('#example tbody tr:eq(1)').hasClass('test2') &&
|
||||||
|
$('#example tbody tr:eq(2)').hasClass('test3') &&
|
||||||
|
$('#example tbody tr:eq(3)').hasClass('test4');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
138
public/js/datatables/unit_testing/tests_onhold/1_dom/bAutoWidth.js
Executable file
|
@ -0,0 +1,138 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bAutoWidth" );
|
||||||
|
|
||||||
|
/* It's actually a little tricky to test this. We can't test absolute numbers because
|
||||||
|
* different browsers and different platforms will render the width of the columns slightly
|
||||||
|
* differently. However, we certainly can test the principle of what should happen (column
|
||||||
|
* width doesn't change over pages)
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Auto width is enabled by default",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.oFeatures.bAutoWidth; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"First column has a width assigned to it",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(0)').attr('style').match(/width/i); }
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
This would seem like a better test - but there appear to be difficulties with tables
|
||||||
|
which are bigger (calculated) than there is actually room for. I suspect this is actually
|
||||||
|
a bug in datatables
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check column widths on first page match second page",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var anThs = $('#example thead th');
|
||||||
|
var a0 = anThs[0].offsetWidth;
|
||||||
|
var a1 = anThs[1].offsetWidth;
|
||||||
|
var a2 = anThs[2].offsetWidth;
|
||||||
|
var a3 = anThs[3].offsetWidth;
|
||||||
|
var a4 = anThs[4].offsetWidth;
|
||||||
|
$('#example_next').click();
|
||||||
|
var b0 = anThs[0].offsetWidth;
|
||||||
|
var b1 = anThs[1].offsetWidth;
|
||||||
|
var b2 = anThs[2].offsetWidth;
|
||||||
|
var b3 = anThs[3].offsetWidth;
|
||||||
|
var b4 = anThs[4].offsetWidth;
|
||||||
|
console.log( a0, b0, a1, b1, a2, b2, a3, b3 );
|
||||||
|
if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check column widths on second page match thid page",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var anThs = $('#example thead th');
|
||||||
|
var a0 = anThs[0].offsetWidth;
|
||||||
|
var a1 = anThs[1].offsetWidth;
|
||||||
|
var a2 = anThs[2].offsetWidth;
|
||||||
|
var a3 = anThs[3].offsetWidth;
|
||||||
|
var a4 = anThs[4].offsetWidth;
|
||||||
|
$('#example_next').click();
|
||||||
|
var b0 = anThs[0].offsetWidth;
|
||||||
|
var b1 = anThs[1].offsetWidth;
|
||||||
|
var b2 = anThs[2].offsetWidth;
|
||||||
|
var b3 = anThs[3].offsetWidth;
|
||||||
|
var b4 = anThs[4].offsetWidth;
|
||||||
|
if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Auto width can be disabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"bAutoWidth": false
|
||||||
|
} );
|
||||||
|
oSettings = oTable.fnSettings();
|
||||||
|
},
|
||||||
|
function () { return oSettings.oFeatures.bAutoWidth == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"First column does not have a width assigned to it",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(0)').attr('style') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check column widths on first page do not match second page",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var anThs = $('#example thead th');
|
||||||
|
var a0 = anThs[0].offsetWidth;
|
||||||
|
var a1 = anThs[1].offsetWidth;
|
||||||
|
var a2 = anThs[2].offsetWidth;
|
||||||
|
var a3 = anThs[3].offsetWidth;
|
||||||
|
var a4 = anThs[4].offsetWidth;
|
||||||
|
$('#example_next').click();
|
||||||
|
var b0 = anThs[0].offsetWidth;
|
||||||
|
var b1 = anThs[1].offsetWidth;
|
||||||
|
var b2 = anThs[2].offsetWidth;
|
||||||
|
var b3 = anThs[3].offsetWidth;
|
||||||
|
var b4 = anThs[4].offsetWidth;
|
||||||
|
if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Auto width enabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"bAutoWidth": true
|
||||||
|
} );
|
||||||
|
oSettings = oTable.fnSettings();
|
||||||
|
},
|
||||||
|
function () { return oSettings.oFeatures.bAutoWidth; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
40
public/js/datatables/unit_testing/tests_onhold/1_dom/bFilter.js
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bFilter" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filtering div exists by default",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_filter') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Fltering can be disabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bFilter": false
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_filter') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filtering enabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bFilter": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_filter') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
130
public/js/datatables/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js
Executable file
|
@ -0,0 +1,130 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bInfiniteScroll" );
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
var oTable = $('#example').dataTable( {
|
||||||
|
"bScrollInfinite": true,
|
||||||
|
"sScrollY": "200px"
|
||||||
|
} );
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"10 rows by default",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Get nodes",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody>tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnWaitTest(
|
||||||
|
"Scroll on 20px adds 10 rows",
|
||||||
|
function () { $('div.dataTables_scrollBody').scrollTop(20); },
|
||||||
|
function () { return $('#example tbody tr').length == 20; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info after 20px scroll",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 20 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Get nodes after 20px scroll",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody>tr').length == 20; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Scroll on 10px more results in the same number of rows",
|
||||||
|
function () { $('div.dataTables_scrollBody').scrollTop(30); },
|
||||||
|
function () { return $('#example tbody tr').length == 20; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info after 10 more px scroll",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 20 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnWaitTest(
|
||||||
|
"Scroll to 240px adds another 10 rows",
|
||||||
|
function () { $('div.dataTables_scrollBody').scrollTop(240); },
|
||||||
|
function () { return $('#example tbody tr').length == 30; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info after 240px scroll",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 30 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Get nodes after 240px scroll",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody>tr').length == 30; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Filtering will drop back to 10 rows",
|
||||||
|
function () {
|
||||||
|
$('div.dataTables_scrollBody').scrollTop(0);
|
||||||
|
oTable.fnFilter('gec')
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info after filtering",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 10 of 20 entries (filtered from 57 total entries)"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Get nodes after filtering",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody>tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnWaitTest(
|
||||||
|
"Scroll after filtering adds 10",
|
||||||
|
function () { $('div.dataTables_scrollBody').scrollTop(20); },
|
||||||
|
function () { return $('#example tbody tr').length == 20; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Get nodes after filtering",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody>tr').length == 20; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting will drop back to 10 rows",
|
||||||
|
function () { oTable.fnSort([[1,'asc']]) },
|
||||||
|
function () { return $('#example tbody tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnWaitTest(
|
||||||
|
"Scroll after sorting adds 10",
|
||||||
|
function () { $('div.dataTables_scrollBody').scrollTop(20); },
|
||||||
|
function () { return $('#example tbody tr').length == 20; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Get nodes after scrolling",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody>tr').length == 20; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
40
public/js/datatables/unit_testing/tests_onhold/1_dom/bInfo.js
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bInfo" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info div exists by default",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info can be disabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bInfo": false
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info enabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bInfo": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_info') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
40
public/js/datatables/unit_testing/tests_onhold/1_dom/bJQueryUI.js
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bJQueryUI" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bJQueryUI": true
|
||||||
|
} );
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Header elements are fully wrapped by DIVs",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var test = true;
|
||||||
|
$('#example thead th').each( function () {
|
||||||
|
if ( this.childNodes > 1 ) {
|
||||||
|
test = false;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
return test;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"One div for each header element",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
return $('#example thead th div').length == 5;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"One span for each header element, nested as child of div",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
return $('#example thead th div>span').length == 5;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
71
public/js/datatables/unit_testing/tests_onhold/1_dom/bLengthChange.js
Executable file
|
@ -0,0 +1,71 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bLengthChange" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Length div exists by default",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_length') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Four default options",
|
||||||
|
null,
|
||||||
|
function () { return $("select[name=example_length] option").length == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default options",
|
||||||
|
null,
|
||||||
|
function () {
|
||||||
|
var opts = $("select[name='example_length'] option");
|
||||||
|
return opts[0].getAttribute('value') == 10 && opts[1].getAttribute('value') == 25 &&
|
||||||
|
opts[2].getAttribute('value') == 50 && opts[3].getAttribute('value') == 100;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Info takes length into account",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Change length can be disabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bLengthChange": false
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_length') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information takes length disabled into account",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Length change enabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bLengthChange": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_length') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
55
public/js/datatables/unit_testing/tests_onhold/1_dom/bPaginate.js
Executable file
|
@ -0,0 +1,55 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bPaginate" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Pagiantion div exists by default",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_paginate') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information div takes paging into account",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 10 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Pagiantion can be disabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bPaginate": false
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_paginate') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Information div takes paging disabled into account",
|
||||||
|
null,
|
||||||
|
function () { return document.getElementById('example_info').innerHTML ==
|
||||||
|
"Showing 1 to 57 of 57 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Pagiantion enabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bPaginate": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return document.getElementById('example_paginate') != null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
99
public/js/datatables/unit_testing/tests_onhold/1_dom/bProcessing.js
Executable file
|
@ -0,0 +1,99 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bProcessing" );
|
||||||
|
|
||||||
|
/* It's actually a bit hard to set this one due to the fact that it will only be shown
|
||||||
|
* when DataTables is doing some kind of processing. The server-side processing is a bit
|
||||||
|
* better to test this than here - so we just the interal functions to enable it and check
|
||||||
|
* that it is available
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing is off by default",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.oFeatures.bProcessing == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div is not in the DOM",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
|
||||||
|
function () { return document.getElementById('example_processing') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div cannot be shown",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
|
||||||
|
function () { return document.getElementById('example_processing') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div cannot be hidden",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
|
||||||
|
function () { return document.getElementById('example_processing') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing can be enabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"bProcessing": true
|
||||||
|
} );
|
||||||
|
oSettings = oTable.fnSettings();
|
||||||
|
},
|
||||||
|
function () { return oSettings.oFeatures.bProcessing == true; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div is in the DOM",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
|
||||||
|
function () { return document.getElementById('example_processing'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div is hidden by default",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
|
||||||
|
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div can be shown",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
|
||||||
|
function () { return document.getElementById('example_processing').style.visibility = "visible"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div can be hidden",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
|
||||||
|
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing disabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"bProcessing": false
|
||||||
|
} );
|
||||||
|
oSettings = oTable.fnSettings();
|
||||||
|
},
|
||||||
|
function () { return oSettings.oFeatures.bProcessing == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Processing div is not in the DOM",
|
||||||
|
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
|
||||||
|
function () { return document.getElementById('example_processing') == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
18
public/js/datatables/unit_testing/tests_onhold/1_dom/bServerSide.js
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bServerSide" );
|
||||||
|
|
||||||
|
/* Not interested in server-side processing here other than to check that it is off */
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Server side is off by default",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.oFeatures.bServerSide == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
101
public/js/datatables/unit_testing/tests_onhold/1_dom/bSort.js
Executable file
|
@ -0,0 +1,101 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bSort" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting is on by default",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting Asc by default class applied",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc"); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Click on second column",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting class removed from first column",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc") != true; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting asc class applied to second column",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc"); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reverse on second column",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting acs class removed from second column",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") != true; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting desc class applied to second column",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(1)').hasClass("sorting_desc"); }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Pagiantion can be disabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bSort": false
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "4"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Disabled classes applied",
|
||||||
|
null,
|
||||||
|
function () { return $('#example thead th:eq(0)').hasClass('sorting_disabled'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Click on second column has no effect",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "4"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Reverse on second column has no effect",
|
||||||
|
function () { $('#example thead th:eq(1)').click(); },
|
||||||
|
function () { return $('#example tbody td:eq(3)').html() == "4"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting enabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bSort": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
128
public/js/datatables/unit_testing/tests_onhold/1_dom/bSortClasses.js
Executable file
|
@ -0,0 +1,128 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "bSortClasses" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting classes are applied by default",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting classes are applied to all required cells",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(7) td:eq(0)').hasClass('sorting_1'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting classes are not applied to non-sorting columns",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_1') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting multi-column - add column 1",
|
||||||
|
function () {
|
||||||
|
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting multi-column - add column 2",
|
||||||
|
function () {
|
||||||
|
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting multi-column - add column 3",
|
||||||
|
function () {
|
||||||
|
oDispacher.click( $('#example thead th:eq(3)')[0], { 'shift': true } );
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Remove sorting classes on single column sort",
|
||||||
|
function () {
|
||||||
|
$('#example thead th:eq(4)').click();
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3') == false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting class 1 was added",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr:eq(1) td:eq(4)').hasClass('sorting_1'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/* Check can disable */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting classes can be disabled",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bSortClasses": false
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting classes disabled - add column 1 - no effect",
|
||||||
|
function () {
|
||||||
|
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting classes disabled - add column 2 - no effect",
|
||||||
|
function () {
|
||||||
|
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
|
||||||
|
function () {
|
||||||
|
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
|
||||||
|
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable makes no difference */
|
||||||
|
oTest.fnTest(
|
||||||
|
"Sorting classes enabled override",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bSortClasses": true
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
97
public/js/datatables/unit_testing/tests_onhold/1_dom/fnCookieCallback.js
Executable file
|
@ -0,0 +1,97 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "Cookie callback" );
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
var mPass;
|
||||||
|
/* Note that in order to be fully effective here for saving state, there would need to be a
|
||||||
|
* stringify function to serialise the data array
|
||||||
|
*/
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"null by default",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable();
|
||||||
|
},
|
||||||
|
function () { return $('#example').dataTable().fnSettings().fnCookieCallback == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Number of arguments",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"bStateSave": true,
|
||||||
|
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
|
||||||
|
mPass = arguments.length;
|
||||||
|
return sName + "=; expires=" + sExpires +"; path=" + sPath;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Name",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"bStateSave": true,
|
||||||
|
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
|
||||||
|
mPass = sName=="SpryMedia_DataTables_example_dom_data.php";
|
||||||
|
return sName + "=; expires=" + sExpires +"; path=" + sPath;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Data",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"bStateSave": true,
|
||||||
|
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
|
||||||
|
mPass = typeof oData.iStart != 'undefined';
|
||||||
|
return sName + "=; expires=" + sExpires +"; path=" + sPath;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Expires",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"bStateSave": true,
|
||||||
|
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
|
||||||
|
mPass = typeof sExpires == 'string';
|
||||||
|
return sName + "=; expires=" + sExpires +"; path=" + sPath;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Path",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"bStateSave": true,
|
||||||
|
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
|
||||||
|
mPass = sPath.match(/media\/unit_testing\/templates/);
|
||||||
|
return sName + "=; expires=" + sExpires +"; path=" + sPath;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnCookieDestroy( $('#example').dataTable() );
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
30
public/js/datatables/unit_testing/tests_onhold/1_dom/fnDeleteRow.js
Executable file
|
@ -0,0 +1,30 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "fnDeleteRow" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check that the default data is sane",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.asDataSearch.join(' ').match(/4.0/g).length == 3; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Remove the first data row, and check that hte search data has been updated",
|
||||||
|
function () { oTable.fnDeleteRow( 0 ); },
|
||||||
|
function () { return oSettings.asDataSearch.join(' ').match(/4.0/g).length == 2; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Check that the info element has been updated",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_info').html() == "Showing 1 to 10 of 56 entries"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
80
public/js/datatables/unit_testing/tests_onhold/1_dom/fnDrawCallback.js
Executable file
|
@ -0,0 +1,80 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "fnDrawCallback" );
|
||||||
|
|
||||||
|
/* Fairly boring function compared to the others! */
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var mPass;
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default should be null",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.fnDrawCallback == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"One argument passed",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = -1;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnDrawCallback": function ( ) {
|
||||||
|
mPass = arguments.length;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"That one argument is the settings object",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"fnDrawCallback": function ( oSettings ) {
|
||||||
|
mPass = oSettings;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return oTable.fnSettings() == mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback called once on first draw",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = 0;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnDrawCallback": function ( ) {
|
||||||
|
mPass++;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback called once on each draw there after as well",
|
||||||
|
function () {
|
||||||
|
$('#example_next').click();
|
||||||
|
$('#example_next').click();
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return mPass == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
227
public/js/datatables/unit_testing/tests_onhold/1_dom/fnFooterCallback.js
Executable file
|
@ -0,0 +1,227 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "fnFooterCallback" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var mPass;
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default should be null",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.fnFooterCallback == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Five arguments passed",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = -1;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( ) {
|
||||||
|
mPass = arguments.length;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 5; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback called once per draw",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = 0;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
mPass++;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback called on paging (i.e. another draw)",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return mPass == 2; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback allows us to alter row information",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
nFoot.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tfoot th:eq(0)').html() == "Displaying 10 records"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Data array has length matching original data",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( aasData.length != 57 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Data array's column lengths match original data",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
for ( var i=0, iLen=aasData.length ; i<iLen ; i++ )
|
||||||
|
{
|
||||||
|
if ( aasData[i].length != 5 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iStart correct on first page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iStart != 0 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iStart correct on second page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iStart == 10 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iEnd correct on first page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iEnd != 10 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iEnd correct on second page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iEnd == 20 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"aiDisplay length is full data when not filtered",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( aiDisplay.length == 57 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"aiDisplay length is 9 when filtering on 'Mozilla'",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( aiDisplay.length == 9 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
oTable.fnFilter( "Mozilla" );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
227
public/js/datatables/unit_testing/tests_onhold/1_dom/fnHeaderCallback.js
Executable file
|
@ -0,0 +1,227 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "fnHeaderCallback" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var mPass;
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default should be null",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.fnHeaderCallback == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Five arguments passed",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = -1;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( ) {
|
||||||
|
mPass = arguments.length;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 5; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback called once per draw",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = 0;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
mPass++;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback called on paging (i.e. another draw)",
|
||||||
|
function () { $('#example_next').click(); },
|
||||||
|
function () { return mPass == 2; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback allows us to alter row information",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Data array has length matching original data",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( aasData.length != 57 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Data array's column lengths match original data",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
for ( var i=0, iLen=aasData.length ; i<iLen ; i++ )
|
||||||
|
{
|
||||||
|
if ( aasData[i].length != 5 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iStart correct on first page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iStart != 0 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iStart correct on second page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iStart == 10 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iEnd correct on first page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iEnd != 10 )
|
||||||
|
{
|
||||||
|
mPass = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"iEnd correct on second page",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( iEnd == 20 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"aiDisplay length is full data when not filtered",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( aiDisplay.length == 57 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"aiDisplay length is 9 when filtering on 'Mozilla'",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = false;
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
|
||||||
|
if ( aiDisplay.length == 9 )
|
||||||
|
{
|
||||||
|
mPass = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
oTable.fnFilter( "Mozilla" );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
115
public/js/datatables/unit_testing/tests_onhold/1_dom/fnInfoCallback.js
Executable file
|
@ -0,0 +1,115 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "fnInfoCallback checks" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
var mPass;
|
||||||
|
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
/* Basic checks */
|
||||||
|
oTest.fnTest(
|
||||||
|
"null by default",
|
||||||
|
null,
|
||||||
|
function () { return $('#example').dataTable().fnSettings().oLanguage.fnInfoCallback == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Agrument length",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
|
||||||
|
mPass = arguments.length;
|
||||||
|
return sPre;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 6; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Settings first",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
|
||||||
|
mPass = (oS == $('#example').dataTable().fnSettings()) ? true : false;
|
||||||
|
return sPre;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Start arg",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
|
||||||
|
return iStart;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "1"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"End arg",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
|
||||||
|
return iEnd;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "10"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Max arg",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
|
||||||
|
return iMax;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "57"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Max arg - filter",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable().fnFilter("1.0");
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "57"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Total arg",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"bDestroy": true,
|
||||||
|
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
|
||||||
|
return iTotal;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "57"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Total arg - filter",
|
||||||
|
function () {
|
||||||
|
$('#example').dataTable().fnFilter("1.0");
|
||||||
|
},
|
||||||
|
function () { return $('#example_info').html() == "3"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
94
public/js/datatables/unit_testing/tests_onhold/1_dom/fnInitComplete.js
Executable file
|
@ -0,0 +1,94 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "fnInitComplete" );
|
||||||
|
|
||||||
|
/* Fairly boring function compared to the others! */
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var mPass;
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default should be null",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.fnInitComplete == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"One argument passed (for DOM!)",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = -1;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnInitComplete": function ( ) {
|
||||||
|
mPass = arguments.length;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"That one argument is the settings object",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
oTable = $('#example').dataTable( {
|
||||||
|
"fnInitComplete": function ( oSettings ) {
|
||||||
|
mPass = oSettings;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return oTable.fnSettings() == mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnInitComplete called once on first draw",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = 0;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnInitComplete": function ( ) {
|
||||||
|
mPass++;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnInitComplete never called there after",
|
||||||
|
function () {
|
||||||
|
$('#example_next').click();
|
||||||
|
$('#example_next').click();
|
||||||
|
$('#example_next').click();
|
||||||
|
},
|
||||||
|
function () { return mPass == 1; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnWaitTest(
|
||||||
|
"10 rows in the table on complete",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = 0;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnInitComplete": function ( ) {
|
||||||
|
mPass = $('#example tbody tr').length;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
105
public/js/datatables/unit_testing/tests_onhold/1_dom/fnRowCallback.js
Executable file
|
@ -0,0 +1,105 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "fnRowCallback" );
|
||||||
|
|
||||||
|
/* Note - fnRowCallback MUST return the first arguments (modified or not) */
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
var oSettings = oTable.fnSettings();
|
||||||
|
var mPass;
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default should be null",
|
||||||
|
null,
|
||||||
|
function () { return oSettings.fnRowCallback == null; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Four arguments passed",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = -1;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnRowCallback": function ( nTr ) {
|
||||||
|
mPass = arguments.length;
|
||||||
|
return nTr;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 4; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback called once for each drawn row",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = 0;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
|
||||||
|
mPass++;
|
||||||
|
return nTr;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"fnRowCallback allows us to alter row information",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
|
||||||
|
$(nTr).addClass('unit_test');
|
||||||
|
return nTr;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr:eq(1)').hasClass('unit_test'); }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Data array has length matching columns",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
|
||||||
|
if ( asData.length != 5 )
|
||||||
|
mPass = false;
|
||||||
|
return nTr;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Data array has length matching columns",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
mPass = true;
|
||||||
|
var iCount = 0;
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
|
||||||
|
if ( iCount != iDrawIndex )
|
||||||
|
mPass = false;
|
||||||
|
iCount++;
|
||||||
|
return nTr;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return mPass; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
76
public/js/datatables/unit_testing/tests_onhold/1_dom/iDisplayLength.js
Executable file
|
@ -0,0 +1,76 @@
|
||||||
|
// DATA_TEMPLATE: dom_data
|
||||||
|
oTest.fnStart( "iDisplayLength" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
/* Check the default */
|
||||||
|
$('#example').dataTable();
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default length is ten",
|
||||||
|
null,
|
||||||
|
function () { return $('#example tbody tr').length == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Select menu shows 10",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_length select').val() == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Set initial length to 25",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"iDisplayLength": 25
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr').length == 25; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Select menu shows 25",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_length select').val() == 25; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Set initial length to 100",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"iDisplayLength": 100
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr').length == 57; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Select menu shows 25",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_length select').val() == 100; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Set initial length to 23 (unknown select menu length)",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"iDisplayLength": 23
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody tr').length == 23; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Select menu shows 10 (since 23 is unknow)",
|
||||||
|
null,
|
||||||
|
function () { return $('#example_length select').val() == 10; }
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|