From: maxious Date: Wed, 24 Nov 2010 08:28:02 +0000 Subject: Prettier JQuery tables X-Git-Url: http://maxious.lambdacomplex.org/git/?p=contractdashboard.git&a=commitdiff&h=2168524e9590a454062a4c432b1145dabc8002cb --- Prettier JQuery tables --- --- a/admin/import.php +++ b/admin/import.php @@ -1,120 +1,113 @@ "; -$dhandle = opendir($path); -// define an array to hold the files -$files = array(); - -if ($dhandle) { - // loop through all of the files - while (false !== ($fname = readdir($dhandle))) { - if (($fname != '.') && ($fname != '..')) { - echo "$fname".filesize($path.$fname)."
"; - } - } -} - -} else { -$success =0; -$fname = $_REQUEST["fname"]; -echo " ============== $fname ==============
"; -$row = 1; -$handle = fopen($path.$fname, "r"); -//"t" mode string translates windows line breaks to unix -$datamapping0709 = Array("Agency" => "agencyName", "Parent CN ID" => "parentCN", "CN ID" => "CNID", "Publish Date" => "publishDate", "Amendment Date" => "amendDate", "Status" => "", "StartDate" => "contractStart" , "EndDate" => "contractEnd", "Value" => "value", "Description" => "description", "Agency Ref Id" => "agencyID", "Category" => "category", "Procurement Method" => "procurementMethod", "ATM ID" => "atmID", "SON ID" => "SONID","Confidentiality - Contract" => "confidentialityContract", "Confidentiality - Contract Reason(s)" => "confidentialityContractReason", "Confidentiality - Outputs" => "confidentialityOutputs", "Confidentiality - Outputs Reason(s)" => "confidentialityOutputsReason", "Consultancy" => "consultancy", "Consultancy Reason(s)" => "consultancyReason", "Amendment Reason" => "amendmentReason", "Supplier Name" => "supplierName", "Supplier Address" => "supplierAddress", "Supplier City" => "supplierCity", "Supplier Postcode" => "supplierPostcode", "Supplier Country" => "supplierCountry" , "Supplier ABNExempt" => "supplierABNExempt", "Supplier ABN" => "supplierABN" , "Agency Branch" => "contactBranch","Agency Divison" => "contactDivision", "Agency Postcode" => "contactPostcode" , "" => ""); -$headers; -$contractNoticeFields = Array("agencyName", "parentCN", "CNID", "publishDate", "amendDate", "contractStart" , "contractEnd", "value", "description", "agencyID", "category", "procurementMethod", "atmID", "SONID", "confidentialityContract", "confidentialityContractReason", "confidentialityOutputs", "confidentialityOutputsReason", "consultancy", "consultancyReason", "amendmentReason", "supplierName", "supplierAddress", "supplierCity", "supplierPostcode", "supplierCountry" , "supplierABNExempt", "supplierABN", "contactBranch","contactDivision","contactPostcode" ); -$agencyFields = Array("agencyName"); -$supplierFields = Array("supplierName", "supplierAddress", "supplierCity", "supplierPostcode", "supplierCountry" , "supplierABNExempt", "supplierABN" ); - -while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) { - $num = count($data); - - if ($row == 3) - { - $headers = $data; - } - else if ($row > 3) - { - if ($num > count($datamapping0709)) - { - die ("Error in data import; data mapping fields out of bounds or changed
".$fname.print_r($data)); - } - $firstCN= false; - $firstSupplier= true; - $firstAgency= true; - $contractNoticeInsert = "INSERT INTO contractnotice (importFile, ".implode(" , ",$contractNoticeFields). ") VALUES ( \"$fname\" "; - $supplierInsert = "INSERT INTO supplierdetails (".implode(" , ",$supplierFields). ") VALUES ("; - $agencyInsert = "INSERT INTO agency (".implode(" , ",$agencyFields). ") VALUES ("; - - $keys = array_keys($datamapping0709); - for ($c=0; $c < $num; $c++) { - $data[$c] = trim($data[$c],"="); - $data[$c] = trim($data[$c], "\""); - - if (in_array(($datamapping0709[$headers[$c]]),$contractNoticeFields)) - { - if (($datamapping0709[$headers[$c]]) == "parentCN" || ($datamapping0709[$headers[$c]]) == "CNID") - { - $data[$c] = substr($data[$c],2); - if ($data[$c] >0) - { - $contractNoticeInsert .= ($firstCN ? "" : ","). mysql_real_escape_string($data[$c]); - } else - { - $contractNoticeInsert .= ($firstCN ? "" : ",")."''"; - } - } else if (($datamapping0709[$headers[$c]]) == "amendDate" || ($datamapping0709[$headers[$c]]) == "publishDate" || ($datamapping0709[$headers[$c]]) == "contractStart" || ($datamapping0709[$headers[$c]]) == "contractEnd") - { - $contractNoticeInsert .= ($firstCN ? "" : ","). "'".date( 'Y-m-d H:i:s', strtotime($data[$c])). "'"; - } else - { - if (strstr("\" =",$data[$c] > 0)) - { - die ("Invalid Description field" . $contractNoticeInsert); - } - $contractNoticeInsert .= ($firstCN ? "" : ",") . "'". mysql_real_escape_string($data[$c])."'"; - - } - $firstCN = false; - } - if (in_array(($datamapping0709[$headers[$c]]),$supplierFields)) - { - $supplierInsert .= ($firstSupplier ? "" : ",") . "'". mysql_real_escape_string($data[$c])."'"; - $firstSupplier = false; - } - if (in_array(($datamapping0709[$headers[$c]]),$agencyFields)) - { - $agencyInsert .= ($firstAgency ? "" : ",") . "'". mysql_real_escape_string($data[$c])."'"; - $firstAgency = false; - } - - } - $contractNoticeInsert .= ");"; - $supplierInsert .= ");"; - $agencyInsert .= ");"; - -$result = mysql_query($contractNoticeInsert); -if ($result) $success++; -else if (strpos(mysql_error(),"Duplicate entry") === false) echo $data[2] . " failed CN insert.
". mysql_error() ."
$contractNoticeInsert

\n"; - - $result = mysql_query($agencyInsert); -if ($result) $success++; -else if (strpos(mysql_error(),"Duplicate entry") === false) echo $data[2] . " failed agency insert.
". mysql_error() ."
$agencyInsert

\n"; - - $result = mysql_query($supplierInsert); -if ($result) $success++; -else if (strpos(mysql_error(),"Duplicate entry") === false) echo $data[2] . " failed supplier insert.
". mysql_error() ."
$supplierInsert

\n"; - -//echo "
\n"; - } - - $row++; -} -echo "
$success records successfully created"; -fclose($handle); -} + include_once("../lib/common.inc.php"); + $path = 'data/'; + if ($_REQUEST["fname"] == "") { + echo "Get files from: https://www.tenders.gov.au/?event=public.reports.list
"; + $dhandle = opendir($path); + // define an array to hold the files + $files = array(); + + if ($dhandle) { + // loop through all of the files + while (false !== ($fname = readdir($dhandle))) { + if (($fname != '.') && ($fname != '..')) { + echo "$fname" . filesize($path . $fname) . "
"; + } + } + } + } else { + $success = 0; + $fname = $_REQUEST["fname"]; + echo " ============== $fname ==============
"; + flush(); + $row = 1; + $handle = fopen($path . $fname, "r"); + //"t" mode string translates windows line breaks to unix + $datamapping0709 = array("Agency" => "agencyName", "Parent CN ID" => "parentCN", "CN ID" => "CNID", "Publish Date" => "publishDate", "Amendment Date" => "amendDate", "Status" => "", "StartDate" => "contractStart", "EndDate" => "contractEnd", "Value" => "value", "Description" => "description", "Agency Ref Id" => "agencyID", "Category" => "category", "Procurement Method" => "procurementMethod", "ATM ID" => "atmID", "SON ID" => "SONID", "Confidentiality - Contract" => "confidentialityContract", "Confidentiality - Contract Reason(s)" => "confidentialityContractReason", "Confidentiality - Outputs" => "confidentialityOutputs", "Confidentiality - Outputs Reason(s)" => "confidentialityOutputsReason", "Consultancy" => "consultancy", "Consultancy Reason(s)" => "consultancyReason", "Amendment Reason" => "amendmentReason", "Supplier Name" => "supplierName", "Supplier Address" => "supplierAddress", "Supplier City" => "supplierCity", "Supplier Postcode" => "supplierPostcode", "Supplier Country" => "supplierCountry", "Supplier ABNExempt" => "supplierABNExempt", "Supplier ABN" => "supplierABN", "Agency Branch" => "contactBranch", "Agency Divison" => "contactDivision", "Agency Postcode" => "contactPostcode", "" => ""); + $headers; + $contractNoticeFields = array("agencyName", "parentCN", "CNID", "publishDate", "amendDate", "contractStart", "contractEnd", "value", "description", "agencyID", "category", "procurementMethod", "atmID", "SONID", "confidentialityContract", "confidentialityContractReason", "confidentialityOutputs", "confidentialityOutputsReason", "consultancy", "consultancyReason", "amendmentReason", "supplierName", "supplierAddress", "supplierCity", "supplierPostcode", "supplierCountry", "supplierABNExempt", "supplierABN", "contactBranch", "contactDivision", "contactPostcode"); + $agencyFields = array("agencyName"); + $supplierFields = array("supplierName", "supplierAddress", "supplierCity", "supplierPostcode", "supplierCountry", "supplierABNExempt", "supplierABN"); + + while (($data = fgetcsv($handle, 1000, "\t")) !== false) { + $num = count($data); + + if ($row == 3) { + $headers = $data; + } elseif ($row > 3) { + if ($num > count($datamapping0709)) { + die("Error in data import; data mapping fields out of bounds or changed
" . $fname . print_r($data)); + } + $firstCN = false; + $firstSupplier = true; + $firstAgency = true; + $contractNoticeInsert = "INSERT INTO contractnotice (importFile, " . implode(" , ", $contractNoticeFields) . ") VALUES ( \"$fname\" "; + $supplierInsert = "INSERT INTO supplierdetails (" . implode(" , ", $supplierFields) . ") VALUES ("; + $agencyInsert = "INSERT INTO agency (" . implode(" , ", $agencyFields) . ") VALUES ("; + + $keys = array_keys($datamapping0709); + for ($c = 0; $c < $num; $c++) { + $data[$c] = trim($data[$c], "="); + $data[$c] = trim($data[$c], "\""); + + if (in_array(($datamapping0709[$headers[$c]]), $contractNoticeFields)) { + if (($datamapping0709[$headers[$c]]) == "parentCN" || ($datamapping0709[$headers[$c]]) == "CNID") { + $data[$c] = substr($data[$c], 2); + if ($data[$c] > 0) { + $contractNoticeInsert .= ($firstCN ? "" : ",") . mysql_real_escape_string($data[$c]); + } else { + $contractNoticeInsert .= ($firstCN ? "" : ",") . "''"; + } + } elseif (($datamapping0709[$headers[$c]]) == "amendDate" || ($datamapping0709[$headers[$c]]) == "publishDate" || ($datamapping0709[$headers[$c]]) == "contractStart" || ($datamapping0709[$headers[$c]]) == "contractEnd") { + $contractNoticeInsert .= ($firstCN ? "" : ",") . "'" . date('Y-m-d H:i:s', strtotime($data[$c])) . "'"; + } else { + if (strstr("\" =", $data[$c] > 0)) { + die("Invalid Description field" . $contractNoticeInsert); + } + $contractNoticeInsert .= ($firstCN ? "" : ",") . "'" . mysql_real_escape_string($data[$c]) . "'"; + } + $firstCN = false; + } + if (in_array(($datamapping0709[$headers[$c]]), $supplierFields)) { + $supplierInsert .= ($firstSupplier ? "" : ",") . "'" . mysql_real_escape_string($data[$c]) . "'"; + $firstSupplier = false; + } + if (in_array(($datamapping0709[$headers[$c]]), $agencyFields)) { + $agencyInsert .= ($firstAgency ? "" : ",") . "'" . mysql_real_escape_string($data[$c]) . "'"; + $firstAgency = false; + } + } + flush(); + $contractNoticeInsert .= ");"; + $supplierInsert .= ");"; + $agencyInsert .= ");"; + + $result = mysql_query($contractNoticeInsert); + if ($result) + $success++; + elseif (strpos(mysql_error(), "Duplicate entry") === false) + echo $data[2] . " failed CN insert.
" . mysql_error() . "
$contractNoticeInsert

\n"; + + $result = mysql_query($agencyInsert); + if ($result) + $success++; + elseif (strpos(mysql_error(), "Duplicate entry") === false) + echo $data[2] . " failed agency insert.
" . mysql_error() . "
$agencyInsert

\n"; + + $result = mysql_query($supplierInsert); + if ($result) + $success++; + elseif (strpos(mysql_error(), "Duplicate entry") === false) + echo $data[2] . " failed supplier insert.
" . mysql_error() . "
$supplierInsert

\n"; + flush(); + + //echo "
\n"; + } + + $row++; + } + echo "
$success records successfully created"; + flush(); + fclose($handle); + } ?> - --- a/admin/setAgencyStatus.php +++ b/admin/setAgencyStatus.php @@ -1,16 +1,24 @@ \n"; else echo "error".mysql_error(); } foreach ($suspended as $agency) { + $agencyParts = explode("|",$agency); + $agency = $agencyParts[1]; + $agencyInsert = "INSERT INTO agency (agencyName) VALUES ('$agency')"; + $result = mysql_query($agencyInsert); $result = mysql_query("UPDATE agency SET status = 'suspended' where agencyName = '".mysql_real_escape_string($agency)."';") ; if ($result) echo $agency. " set to suspended in ". mysql_affected_rows() . " divisions/branches
\n"; else echo "error".mysql_error(); --- a/admin/setAgencyURLABN.php +++ b/admin/setAgencyURLABN.php @@ -26,9 +26,10 @@ $result = mysql_query("UPDATE agency SET website = 'http://" . $result->visibleUrl . "', abn = '{$abn[0]}' WHERE agencyName = '$agency';"); if ($result) echo $agency . " set in " . mysql_affected_rows() . "
\n"; } else { + echo "invalid ABN"; $result = mysql_query("UPDATE agency SET website = 'http://" . $result->visibleUrl . "' WHERE agencyName = '$agency';"); - if ($result) echo $agency . " set in " . mysql_affected_rows() . "
\n"; + if ($result) echo $agency . " set in " . mysql_affected_rows() . "
\n"; } // fi --- a/cutenews/data/.htaccess +++ b/cutenews/data/.htaccess --- a/cutenews/data/emoticons/.htaccess +++ b/cutenews/data/emoticons/.htaccess --- a/cutenews/data/upimages/.htaccess +++ b/cutenews/data/upimages/.htaccess --- a/cutenews/inc/.htaccess +++ b/cutenews/inc/.htaccess --- a/displayAgency.php +++ b/displayAgency.php @@ -23,6 +23,37 @@ Breakdown percentage,number,value by procurement type Histograph, overlaying number value reported per week over X years Compliance statistics: amendments, delay in reporting average and number completely late*/ + + $query = "SELECT CNID, description, value, agencyName, category, contractStart, supplierName + FROM `contractnotice` + WHERE agencyName = '".mysql_real_escape_string($agency)."' + ORDER BY value DESC"; + echo $query; + $result = mysql_query($query); + + echo " + + + + + + + + + "; + while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { + setlocale(LC_MONETARY, 'en_US'); + $value = number_format(doubleval($row['value']) , 2); + echo (" + + + + + + "); + } + echo "
Contract Notice NumberContract DescriptionTotal Contract ValueAgencyContract Start DateSupplier
{$row['CNID']}{$row['description']}\$$value{$row['agencyName']}{$row['contractStart']}{$row['supplierName']}
"; + mysql_free_result($result); } else { /* split by portfolio @@ -33,7 +64,12 @@ WHERE childCN = 0 GROUP BY agencyName "; $result = mysql_query($query); - echo ""; + echo "
+ + + + + "; while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { setlocale(LC_MONETARY, 'en_US'); $value = number_format(doubleval($row[0]) , 2); --- a/displayAmendments.php +++ b/displayAmendments.php @@ -4,8 +4,14 @@ $query = "select CNID, description, value, pvalue, (value - pvalue) as diff from contractnotice, (SELECT CNID as cn, childCN as ccn, value as pvalue FROM contractnotice where childCN > 0) a". " where ".$agencyQ.$yearQ."CNID = ccn AND (value - pvalue) <> 0 order by diff DESC"; $result = mysql_query($query); -echo $query; -echo "
AgencyTotal Contracts Value
"; + echo "
+ + + + + + + "; if ($result) { while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { setlocale(LC_MONETARY, 'en_US'); --- a/displayCalendar.php +++ b/displayCalendar.php @@ -16,7 +16,16 @@ echo ''; echo ''; - echo "
ContractOriginal ValueAmended ValueDifference
"; + echo "
+ + + + + + + + + "; while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { setlocale(LC_MONETARY, 'en_US'); $value = number_format(doubleval($row['value']) , 2); @@ -47,7 +56,13 @@ SUM(value) as val, count(1) as count FROM `contractnotice` WHERE childCN = 0 GROUP BY MONTH(contractStart), YEAR(contractStart) ORDER BY YEAR(contractStart), MONTH(contractStart) "; $result = mysql_query($query); -echo "
Contract Notice NumberContract DescriptionTotal Contract ValueAgencyContract Start DateSupplier
"; + echo "
+ + + + + + "; while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { setlocale(LC_MONETARY, 'en_US'); $value = number_format(doubleval($row["val"]),2); --- a/displayCategory.php +++ b/displayCategory.php @@ -9,7 +9,16 @@ AND category = '" . $_REQUEST['category'] . "' ORDER BY value DESC"; $result = mysql_query($query); - echo "
Month/YearTotal Contracts ValueNumber of Contracts
"; + echo "
+ + + + + + + + + "; while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { setlocale(LC_MONETARY, 'en_US'); $value = number_format(doubleval($row['value']) , 2); @@ -33,7 +42,12 @@ WHERE childCN = 0 GROUP BY category ORDER BY sum(value) DESC "; $result = mysql_query($query); -echo "
Contract Notice NumberContract DescriptionTotal Contract ValueAgencyContract Start DateSupplier
"; + echo "
+ + + + + "; while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { setlocale(LC_MONETARY, 'en_US'); $value = number_format(doubleval($row[0]) , 2); --- a/displaySupplier.php +++ b/displaySupplier.php @@ -3,10 +3,10 @@ if ($_REQUEST['supplier']) { include_header("Supplier"); - $supplier = htmlentities(strip_tags($_REQUEST['supplier'])); - echo ''; - echo ''; - echo ''; + $supplierS = htmlentities(strip_tags($_REQUEST['supplier'])); + echo ''; + echo ''; + echo ''; /*lobbyist ties links to ABR/ASIC/Google News/ASX/Court records @@ -18,6 +18,38 @@ spread of contract values spread of industries (textual?)*/ + $query = "SELECT CNID, description, value, agencyName, category, contractStart, supplierName + FROM `contractnotice` WHERE + $supplierQ $standardQ + ORDER BY value DESC"; + echo $query; + $result = mysql_query($query); +echo ''; + echo ''; + + echo "
CategoryTotal Contracts Value
+ + + + + + + + + "; + while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { + setlocale(LC_MONETARY, 'en_US'); + $value = number_format(doubleval($row['value']) , 2); + echo (" + + + + + + "); + } + echo "
Contract Notice NumberContract DescriptionTotal Contract ValueAgencyContract Start DateSupplier
{$row['CNID']}{$row['description']}\$$value{$row['agencyName']}{$row['contractStart']}{$row['supplierName']}
"; + mysql_free_result($result); } else { /* histograph of supplier size/value @@ -30,7 +62,12 @@ ORDER BY val DESC LIMIT 100"; $result = mysql_query($query); - echo ""; + echo "
+ + + + + "; while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { setlocale(LC_MONETARY, 'en_US'); $value = number_format(doubleval($row['val']) , 2); --- a/graphs/displayAgenciesGraph.php +++ b/graphs/displayAgenciesGraph.php @@ -1,7 +1,6 @@ = $startYear) AND childCN = 0 GROUP BY agencyName ORDER BY val DESC limit $topX"; $result = mysql_query($query); --- a/graphs/displayAgencySuppliersGraph.php +++ b/graphs/displayAgencySuppliersGraph.php @@ -2,7 +2,6 @@ include_once ("../lib/common.inc.php"); $agency = "AusAid"; $topX = 15; -$startYear = 2007; $query = "SELECT SUM(value) as val, supplierName FROM `contractnotice` WHERE (YEAR(contractStart) >= $startYear) AND childCN = 0 AND agencyName = '$agency' GROUP BY lower(supplierName) ORDER BY val DESC limit $topX"; $result = mysql_query($query); --- a/graphs/displayCnCGraph.php +++ b/graphs/displayCnCGraph.php @@ -4,7 +4,7 @@ $width = 800; $height = 300; $query = "select procurementMethod, count(1) as count, SUM(value) as val, MONTH(contractStart) as month, YEAR(contractStart) as year from `contractnotice` -where $agencyQ $supplierQ childCN = 0 AND YEAR(contractStart) >= 2007 AND YEAR(contractStart) <= 2009 group by procurementMethod,year,month order by procurementMethod,year,month"; +where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month"; $result = mysql_query($query); $methods = Array("Direct","Open","Select"); $dates = Array(); --- a/graphs/displayMethodCountGraph.php +++ b/graphs/displayMethodCountGraph.php @@ -4,7 +4,7 @@ $width = 800; $height = 300; $query = "select procurementMethod, count(1) as count, SUM(value) as value, MONTH(contractStart) as month, YEAR(contractStart) as year from `contractnotice` -where $agencyQ $supplierQ childCN = 0 AND YEAR(contractStart) >= 2007 AND YEAR(contractStart) <= 2009 group by procurementMethod,year,month order by procurementMethod,year,month"; +where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month"; $result = mysql_query($query); $methods = Array("Direct","Open","Select"); $dates = Array(); --- a/graphs/displayMethodValueGraph.php +++ b/graphs/displayMethodValueGraph.php @@ -4,7 +4,7 @@ $width = 800; $height = 300; $query = "select procurementMethod, SUM(value) as value, MONTH(contractStart) as month, YEAR(contractStart) as year from `contractnotice` -where $agencyQ $supplierQ childCN = 0 AND YEAR(contractStart) >= 2007 AND YEAR(contractStart) <= 2009 group by procurementMethod,year,month order by procurementMethod,year,month"; +where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month"; $result = mysql_query($query); $methods = Array("Direct","Open","Select"); $dates = Array(); --- a/lib/common.inc.php +++ b/lib/common.inc.php @@ -45,9 +45,10 @@ if ($supplierParts[0] > 0) $supplierQ = "supplierABN = '" . $supplierParts[0] . "' AND "; else $supplierQ = "supplierName LIKE '%" . $supplierParts[1] . "%' AND "; } +$startYear = 2007; $year = mysql_real_escape_string(stripslashes($_REQUEST['year'])); if ($year != "") $yearQ = "YEAR(publishDate) = " . $year . " AND "; - +$standardQ = "childCN = 0 AND YEAR(contractStart) >= 2007 AND YEAR(contractStart) <= 2010"; $start =0.0; function include_header($title) { @@ -59,9 +60,8 @@ Contract Dashboard - <?=$title?> - + - + + + + +
--- /dev/null +++ b/media/css/demo_page.css @@ -1,1 +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; +} --- /dev/null +++ b/media/css/demo_table.css @@ -1,1 +1,539 @@ - +/* + * 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; +} + --- /dev/null +++ b/media/css/demo_table_jui.css @@ -1,1 +1,509 @@ - +/* + * 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; +} + + +/* + * Sort arrow icon positioning + */ +table.dis
SupplierTotal Contract Value