diff options
author | Joey Hagedorn <hagedorn@mcs.anl.gov> | 2005-11-25 10:01:42 +0000 |
---|---|---|
committer | Joey Hagedorn <hagedorn@mcs.anl.gov> | 2005-11-25 10:01:42 +0000 |
commit | 93ed73d6469134a1d570c67fda5ceb8b97540151 (patch) | |
tree | b7ba8f8ea02bf1390259ee12b936ad582b3c9176 | |
parent | f77b645867e746b79456daa77f515ae997cae39c (diff) | |
download | bcfg2-93ed73d6469134a1d570c67fda5ceb8b97540151.tar.gz bcfg2-93ed73d6469134a1d570c67fda5ceb8b97540151.tar.bz2 bcfg2-93ed73d6469134a1d570c67fda5ceb8b97540151.zip |
(Logical change 1.365)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1526 ce84e21b-d406-0410-9b95-82705330c041
3 files changed, 440 insertions, 0 deletions
diff --git a/reports/xsl-transforms/xsl-transform-includes/boxypastel-css.xsl b/reports/xsl-transforms/xsl-transform-includes/boxypastel-css.xsl index e69de29bb..2fdd7aee4 100644 --- a/reports/xsl-transforms/xsl-transform-includes/boxypastel-css.xsl +++ b/reports/xsl-transforms/xsl-transform-includes/boxypastel-css.xsl @@ -0,0 +1,191 @@ +<?xml version="1.0"?> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:output method="html" indent="no"/> +<xsl:variable name="boxypastel-css"> + +<style type="text/css"> +/* body */ +body { + background-color: #fff; + color: #000; + font: 12px 'Lucida Grande', Arial, Helvetica, sans-serif; + margin-left:25px; + margin-right:100px; + } +/* links */ +a:link { + color: #00f; + text-decoration: none; + } +a:visited { + color: #00a; + text-decoration: none; + } +a:hover { + color: #00a; + text-decoration: underline; + } +a:active { + color: #00a; + text-decoration: underline; + } +/* divs*/ +div.bad { + border: 1px solid #660000; + background: #FF6A6A; + margin: 10px 0; + padding: 8px; + text-align: left; + margin-left:50px; + margin-right:50px; + } +div.modified { + border: 1px solid #CC9900; + background: #FFEC8B; + margin: 10px 0; + padding: 8px; + text-align: left; + margin-left:50px; + margin-right:50px; + } +div.clean { + border: 1px solid #006600; + background: #9AFF9A; + margin: 10px 0; + padding: 8px; + text-align: left; + margin-left:50px; + margin-right:50px; + } +div.extra { + border: 1px solid #006600; + background: #6699CC; + margin: 10px 0; + padding: 8px; + text-align: left; + margin-left:50px; + margin-right:50px; + } +div.warning { + border: 1px solid #CC3300; + background: #FF9933; + margin: 10px 0; + padding: 8px; + text-align: left; + margin-left:50px; + margin-right:50px; + } +div.all-warning { + border: 1px solid #DD5544; + background: #FFD9A2; + margin: 10px 0; + padding: 8px; + text-align: left; + margin-left:50px; + margin-right:50px; + } +div.down { + border: 1px solid #999; + background-color: #DDD; + margin: 10px 0; + padding: 8px; + text-align: left; + margin-left:50px; + margin-right:50px; + } +div.items { + display: none; + } +div.nodebox { + border: 1px solid #c7cfd5; + background: #f1f5f9; + margin: 20px 0; + padding: 8px 8px 16px 8px; + text-align: left; + position:relative; + } +div.header { + background-color: #DDD; + padding: 8px; + text-indent:50px; + position:relative; + } + +/*Spans*/ +.nodename { + font-style: italic; + } +.nodelisttitle { + font-size: 14px; + } + +h2 { + font-size: 16px; + color: #000; + } + +ul.plain { + list-style-type:none; + text-align: left; + } + +.notebox { + position: absolute; + top: 0px; + right: 0px; + padding: 1px; + text-indent:0px; + border: 1px solid #FFF; + background: #999; + color: #FFF; + } + +.configbox { + position: absolute; + bottom: 0px; + right: 0px; + padding: 1px; + text-indent:0px; + border: 1px solid #999; + background: #FFF; + color: #999; + } + +p.indented{ + text-indent: 50px + } + +/* Sortable tables */ +table.sortable a.sortheader { + background-color:#dfd; + font-weight: bold; + text-decoration: none; + display: block; + +} +table.sortable { + padding: 2px 4px 2px 4px; + border: 1px solid #000000; + border-spacing: 0px +} +td.sortable{ + padding: 2px 8px 2px 8px; +} + +th.sortable{ + background-color:#F3DD91; + border: 1px solid #FFFFFF; +} +tr.tablelist { + background-color:#EDF3FE; +} +tr.tablelist-alt{ + background-color:#FFFFFF; +} + +</style> +</xsl:variable> +</xsl:stylesheet> + diff --git a/reports/xsl-transforms/xsl-transform-includes/main-js.xsl b/reports/xsl-transforms/xsl-transform-includes/main-js.xsl index e69de29bb..b112504b4 100644 --- a/reports/xsl-transforms/xsl-transform-includes/main-js.xsl +++ b/reports/xsl-transforms/xsl-transform-includes/main-js.xsl @@ -0,0 +1,33 @@ +<?xml version="1.0"?> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:output method="html" indent="no"/> +<xsl:variable name="main-js"> + +<script language="JavaScript"><xsl:comment> +function toggleLayer(whichLayer) + { + if (document.getElementById) + { + // this is the way the standards work + var style2 = document.getElementById(whichLayer).style; + style2.display = style2.display? "":"block"; + } + else if (document.all) + { + // this is the way old msie versions work + var style2 = document.all[whichLayer].style; + style2.display = style2.display? "":"block"; + } + else if (document.layers) + { + // this is the way nn4 works + var style2 = document.layers[whichLayer].style; + style2.display = style2.display? "":"block"; + } + } +// </xsl:comment></script> +</xsl:variable> +</xsl:stylesheet> + diff --git a/reports/xsl-transforms/xsl-transform-includes/sorttable-js.xsl b/reports/xsl-transforms/xsl-transform-includes/sorttable-js.xsl index e69de29bb..ea2cb64a5 100644 --- a/reports/xsl-transforms/xsl-transform-includes/sorttable-js.xsl +++ b/reports/xsl-transforms/xsl-transform-includes/sorttable-js.xsl @@ -0,0 +1,216 @@ +<?xml version="1.0"?> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:output method="html" indent="no"/> +<xsl:variable name="sorttable-js"> + +<script language="JavaScript"><xsl:comment> +<![CDATA[ + +// +// Sourced originally from: +// +// http://www.kryogenix.org/code/browser/sorttable/ + + + +addEvent(window, "load", sortables_init); + +var SORT_COLUMN_INDEX; + +function sortables_init() { + // Find all tables with class sortable and make them sortable + if (!document.getElementsByTagName) return; + tbls = document.getElementsByTagName("table"); + for (ti=0;ti<tbls.length;ti++) { + thisTbl = tbls[ti]; + if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) { + //initTable(thisTbl.id); + ts_makeSortable(thisTbl); + } + } +} + +function ts_makeSortable(table) { + if (table.rows && table.rows.length > 0) { + var firstRow = table.rows[0]; + } + if (!firstRow) return; + + // Assign classes to the rows when the table's first loaded + for (i=1;i<table.rows.length;i++) { + if (i%2 == 0) table.rows[i].className='tablelist'; + else table.rows[i].className='tablelist tablelist-alt'; + } + + // We have a first row: assume it's the header, and make its contents clickable links + for (var i=0;i<firstRow.cells.length;i++) { + var cell = firstRow.cells[i]; + var txt = ts_getInnerText(cell); + cell.innerHTML = '<a href="#" onclick="ts_resortTable(this, '+i+');return false;">'+txt+'<span class="sortarrow"></span></a>'; + } +} + +function ts_getInnerText(el) { + if (typeof el == "string") return el; + if (typeof el == "undefined") { return el }; + if (el.innerText) return el.innerText; //Not needed but it is faster + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + str += ts_getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; + } + } + return str; +} + +function ts_resortTable(lnk, clid) { + // get the span + var span; + for (var ci=0;ci<lnk.childNodes.length;ci++) { + if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci]; + } + var spantext = ts_getInnerText(span); + var td = lnk.parentNode; + var column = clid || td.cellIndex; + var table = getParent(td,'TABLE'); + + // Work out a type for the column + if (table.rows.length <= 1) return; + var itm = ts_getInnerText(table.rows[1].cells[column]); + sortfn = ts_sort_caseinsensitive; + if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = ts_sort_date; + if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = ts_sort_date; + + if (itm.match(/^[\d\.]+$/)) sortfn = ts_sort_numeric; + SORT_COLUMN_INDEX = column; + var firstRow = new Array(); + var newRows = new Array(); + for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; } + for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j]; } + + newRows.sort(sortfn); + + if (span.getAttribute("sortdir") == 'down') { + ARROW = ''; + newRows.reverse(); + span.setAttribute('sortdir','up'); + } else { + ARROW = ''; + span.setAttribute('sortdir','down'); + } + + // Assign updated classes to the rows when the sort's finished + for (i=0;i<newRows.length;i++) { + if (i%2 == 1) newRows[i].className='tablelist'; + else newRows[i].className='tablelist tablelist-alt'; + } + + // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones + // don't do sortbottom rows + for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);} + // do sortbottom rows only + for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);} + + // Delete any other arrows there may be showing + var allspans = document.getElementsByTagName("span"); + for (var ci=0;ci<allspans.length;ci++) { + if (allspans[ci].className == 'sortarrow') { + if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us? + allspans[ci].innerHTML = ''; + } + } + } + + span.innerHTML = ARROW; +} + +function getParent(el, pTagName) { + if (el == null) return null; + else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase + return el; + else + return getParent(el.parentNode, pTagName); +} +function ts_sort_date(a,b) { + // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX + aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); + bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); + if (aa.length == 10) { + dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2); + } else { + yr = aa.substr(6,2); + if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } + dt1 = yr+aa.substr(3,2)+aa.substr(0,2); + } + if (bb.length == 10) { + dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2); + } else { + yr = bb.substr(6,2); + if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } + dt2 = yr+bb.substr(3,2)+bb.substr(0,2); + } + if (dt1==dt2) return 0; + if (dt1<dt2) return -1; + return 1; +} + +function ts_sort_currency(a,b) { + aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,''); + bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,''); + return parseFloat(aa) - parseFloat(bb); +} + +function ts_sort_numeric(a,b) { + aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX])); + if (isNaN(aa)) aa = 0; + bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX])); + if (isNaN(bb)) bb = 0; + return aa-bb; +} + +function ts_sort_caseinsensitive(a,b) { + aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase(); + bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase(); + if (aa==bb) return 0; + if (aa<bb) return -1; + return 1; +} + +function ts_sort_default(a,b) { + aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); + bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); + if (aa==bb) return 0; + if (aa<bb) return -1; + return 1; +} + + +function addEvent(elm, evType, fn, useCapture) +// addEvent and removeEvent +// cross-browser event handling for IE5+, NS6 and Mozilla +// By Scott Andrew +{ + if (elm.addEventListener){ + elm.addEventListener(evType, fn, useCapture); + return true; + } else if (elm.attachEvent){ + var r = elm.attachEvent("on"+evType, fn); + return r; + } else { + alert("Handler could not be removed"); + } +} +]]> +// </xsl:comment></script> +</xsl:variable> +</xsl:stylesheet>
\ No newline at end of file |