4 new revisions:
Revision: 04786c69f4cf
Author: Jussi Malinen
Date: Mon Jun 6 05:18:28 2011
Log: tabs for details - only styles, no functionality at this point
http://code.google.com/p/robotframework/source/detail?r=04786c69f4cf
Revision: 86d67f08860d
Author: Jussi Malinen
Date: Mon Jun 6 06:13:29 2011
Log: tabs functionality
http://code.google.com/p/robotframework/source/detail?r=86d67f08860d
Revision: ba05aff33cbb
Author: Jussi Malinen
Date: Mon Jun 6 06:30:40 2011
Log: update hashes on drop down selections. also reordered functions
http://code.google.com/p/robotframework/source/detail?r=ba05aff33cbb
Revision: 22409acdce42
Author: Jussi Malinen
Date: Mon Jun 6 06:47:14 2011
Log: tab style tweaking
http://code.google.com/p/robotframework/source/detail?r=22409acdce42
==============================================================================
Revision: 04786c69f4cf
Author: Jussi Malinen
Date: Mon Jun 6 05:18:28 2011
Log: tabs for details - only styles, no functionality at this point
http://code.google.com/p/robotframework/source/detail?r=04786c69f4cf
Modified:
/src/robot/webcontent/report.html
=======================================
--- /src/robot/webcontent/report.html Mon Jun 6 04:01:04 2011
+++ /src/robot/webcontent/report.html Mon Jun 6 05:18:28 2011
@@ -90,6 +90,33 @@
padding: 2px 4px;
white-space: pre-wrap;
}
+ /* Tabs - adapted from http://www.htmldog.com/articles/tabs */
+ #detail_tabs {
+ list-style: none;
+ padding: 0;
+ margin: 0px 1px;
+ }
+ #detail_tabs li {
+ display: inline;
+ background: #C6C6C6;
+ border: 1px solid black;
+ border-bottom-width: 0;
+ margin: 0 0.5em 0 0;
+ padding-top: 0.1em;
+ }
+ #detail_tabs li:hover {
+ background: yellow;
+ }
+ #detail_tabs li a {
+ color: black;
+ text-decoration: none;
+ font-weight: bold;
+ padding: 0 1em;
+ }
+ #detail_tabs #detail_tabs_selected {
+ padding-bottom: 1px;
+ background: white;
+ }
</style>
<style media="all" type="text/css">
/* Generic styles */
@@ -599,6 +626,11 @@
<script type="text/html" id="details_header">
<h2 id="${linkTarget}">Test Details</h2>
+ <ul id="detail_tabs">
+ <li><a href="#">Totals</a></li>
+ <li id="detail_tabs_selected"><a href="#">Tags</a></li>
+ <li><a href="#">Suites</a></li>
+ </ul>
<table class="details" id="details_header">
<tr>
<th>Name:</th>
==============================================================================
Revision: 86d67f08860d
Author: Jussi Malinen
Date: Mon Jun 6 06:13:29 2011
Log: tabs functionality
http://code.google.com/p/robotframework/source/detail?r=86d67f08860d
Modified:
/src/robot/webcontent/report.html
=======================================
--- /src/robot/webcontent/report.html Mon Jun 6 05:18:28 2011
+++ /src/robot/webcontent/report.html Mon Jun 6 06:13:29 2011
@@ -113,7 +113,7 @@
font-weight: bold;
padding: 0 1em;
}
- #detail_tabs #detail_tabs_selected {
+ #detail_tabs .tab_selected {
padding-bottom: 1px;
background: white;
}
@@ -338,9 +338,10 @@
addHeader();
addSummary(topsuite);
addStatistics();
- renderDetailsHeader("no_selection");
- if(window.location.hash !== "") {
+ if (window.location.hash) {
showDetailsByHash();
+ } else {
+ renderTotalSelector("no_selection");
}
});
@@ -348,15 +349,44 @@
$.tmpl(window.templates.summaryTable,
topsuite).insertAfter($('#header_div'));
}
-function renderDetailsHeader(linkTarget) {
- var tagstats = window.testdata.statistics().tag;
- var suitestats = window.testdata.statistics().suite;
- $.tmpl(window.templates.detailsHeader, {tags: tagstats, suites:
suitestats, linkTarget: linkTarget}).appendTo('#test_details_container');
+function showTotalsTab() {
+ renderTotalSelector('totals');
+}
+
+function showTagsTab() {
+ renderTagsSelector('tags');
+}
+
+function showSuitesTab() {
+ renderSuiteSelector('suites');
+}
+
+function renderTotalSelector(linkTarget) {
+ $('#test_details_container').empty();
+ var args = {linkTarget: linkTarget, totals_tab_status: 'tab_selected'};
+ $.tmpl(window.templates.detailsHeader,
args).appendTo('#test_details_container');
+
$.tmpl(window.templates.totalDetailsSelector).appendTo('#test_details_container');
+}
+
+function renderTagsSelector(linkTarget) {
+ $('#test_details_container').empty();
+ var args = {linkTarget: linkTarget, tags_tab_status: 'tab_selected'};
+ var tagstats = {tags: window.testdata.statistics().tag};
+ $.tmpl(window.templates.detailsHeader,
args).appendTo('#test_details_container');
+ $.tmpl(window.templates.tagDetailsSelector,
tagstats).appendTo('#test_details_container');
+}
+
+function renderSuiteSelector(linkTarget) {
+ $('#test_details_container').empty();
+ var args = {linkTarget: linkTarget, suites_tab_status: 'tab_selected'};
+ var suitestats = {suites: window.testdata.statistics().suite};
+ $.tmpl(window.templates.detailsHeader,
args).appendTo('#test_details_container');
+ $.tmpl(window.templates.suiteDetailsSelector,
suitestats).appendTo('#test_details_container');
}
function tagDetailSelected(name) {
if (name == "") return;
- refreshDetailsHeader("tag_"+name);
+ renderTagsSelector("tag_"+name);
var alltags = window.testdata.statistics().tag;
var tag = findTagByName(name, alltags);
renderDetailsByTag(tag);
@@ -365,22 +395,17 @@
function suiteDetailSelected(name) {
if (name == "") return;
- refreshDetailsHeader("suite_"+name);
+ renderSuiteSelector("suite_"+name);
renderDetailsBySuite(name);
ensureSuiteDetailsAreVisible(name);
}
function totalDetailSelected(type) {
if (type == "") return;
- refreshDetailsHeader("total_"+type);
+ renderTotalSelector("total_"+type);
renderTotalDetails(type);
ensureTotalDetailsAreVisible(type);
}
-
-function refreshDetailsHeader(linkTarget) {
- $('#test_details_container').empty();
- renderDetailsHeader(linkTarget);
-}
function renderDetailsByTag(tag) {
var tests = getTestsHavingTag(tag);
@@ -427,6 +452,7 @@
}
function showDetailsByHash() {
+ // TODO: cleanup
hash = window.location.hash.substring(1);
if(hash.indexOf("suite_")==0){
suite = hash.substring("suite_".length);
@@ -440,6 +466,15 @@
type = hash.substring("total_".length);
totalDetailSelected(type)
}
+ else if(hash=='totals'){
+ showTotalsTab();
+ }
+ else if(hash=='tags'){
+ showTagsTab();
+ }
+ else if(hash=='suites'){
+ showSuitesTab();
+ }
window.location.hash = window.location.hash.substring(1);
}
@@ -504,6 +539,9 @@
noTagsRow: $('#no_tags_row').template(),
testDetailsRow: $('#report_test_details_row').template(),
detailsHeader: $('#details_header').template(),
+ totalDetailsSelector: $('#total_details_selector').template(),
+ tagDetailsSelector: $('#tag_details_selector').template(),
+ suiteDetailsSelector: $('#suite_details_selector').template(),
tagDetails: $('#tag_details').template(),
suiteDetails: $('#suite_details').template(),
totalDetails: $('#total_details').template(),
@@ -627,12 +665,30 @@
<script type="text/html" id="details_header">
<h2 id="${linkTarget}">Test Details</h2>
<ul id="detail_tabs">
- <li><a href="#">Totals</a></li>
- <li id="detail_tabs_selected"><a href="#">Tags</a></li>
- <li><a href="#">Suites</a></li>
+ <li class="${totals_tab_status}"><a href="#totals"
onclick="showTotalsTab();">Totals</a></li>
+ <li class="${tags_tab_status}"><a href="#tags"
onclick="showTagsTab();">Tags</a></li>
+ <li class="${suites_tab_status}"><a href="#suites"
onclick="showSuitesTab();">Suites</a></li>
</ul>
+</script>
+
+<script type="text/html" id="total_details_selector">
<table class="details" id="details_header">
<tr>
+ <th>Name:</th>
+ <td>
+ <select id="total_detail_selector"
onchange="totalDetailSelected(this.options[this.selectedIndex].value);">
+ <option value="">Select see to totals...</option>
+ <option value="All Tests">All tests</option>
+ <option value="Critical Tests">Critical tests</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+</script>
+
+<script type="text/html" id="tag_details_selector">
+ <table class="details" id="details_header">
+ <tr>
<th>Name:</th>
<td>
<select id="tag_detail_selector"
onchange="tagDetailSelected(this.options[this.selectedIndex].value);">
@@ -641,16 +697,21 @@
<option value="${$value.label}">${$value.label}
${$value.shownInfo}</option>
{{/each}}
</select>
+ </td>
+ </tr>
+ </table>
+</script>
+
+<script type="text/html" id="suite_details_selector">
+ <table class="details" id="details_header">
+ <tr>
+ <th>Name:</th>
+ <td>
<select id="suite_detail_selector"
onchange="suiteDetailSelected(this.options[this.selectedIndex].value);">
<option value="">Select suite...</option>
{{each suites}}
<option
value="${$value.fullname}">${$value.fullname}</option>
{{/each}}
- </select>
- <select id="total_detail_selector"
onchange="totalDetailSelected(this.options[this.selectedIndex].value);">
- <option value="">Select see to totals...</option>
- <option value="All Tests">All tests</option>
- <option value="Critical Tests">Critical tests</option>
</select>
</td>
</tr>
==============================================================================
Revision: ba05aff33cbb
Author: Jussi Malinen
Date: Mon Jun 6 06:30:40 2011
Log: update hashes on drop down selections. also reordered functions
http://code.google.com/p/robotframework/source/detail?r=ba05aff33cbb
Modified:
/src/robot/webcontent/report.html
=======================================
--- /src/robot/webcontent/report.html Mon Jun 6 06:13:29 2011
+++ /src/robot/webcontent/report.html Mon Jun 6 06:30:40 2011
@@ -383,6 +383,13 @@
$.tmpl(window.templates.detailsHeader,
args).appendTo('#test_details_container');
$.tmpl(window.templates.suiteDetailsSelector,
suitestats).appendTo('#test_details_container');
}
+
+function totalDetailSelected(type) {
+ if (type == "") return;
+ renderTotalSelector("total_"+type);
+ renderTotalDetails(type);
+ ensureTotalDetailsAreVisible(type);
+}
function tagDetailSelected(name) {
if (name == "") return;
@@ -400,11 +407,9 @@
ensureSuiteDetailsAreVisible(name);
}
-function totalDetailSelected(type) {
- if (type == "") return;
- renderTotalSelector("total_"+type);
- renderTotalDetails(type);
- ensureTotalDetailsAreVisible(type);
+function renderTotalDetails(type) {
+ $.tmpl(window.templates.totalDetails,
{type:type}).appendTo('#details_header');
+ drawTestDetailsTable(getTotalTests(type));
}
function renderDetailsByTag(tag) {
@@ -421,27 +426,25 @@
$.tmpl(window.templates.suiteDetails,
suite).appendTo('#details_header');
drawTestDetailsTable(suite.allTests())
}
-
-function renderTotalDetails(type) {
- $.tmpl(window.templates.totalDetails,
{type:type}).appendTo('#details_header');
- drawTestDetailsTable(getTotalTests(type));
-}
function drawTestDetailsTable(tests) {
$.tmpl(window.templates.testDetailsTable).appendTo('#test_details_container');
$.tmpl(window.templates.testDetailsRow,
tests).appendTo('#tests_detail_table');
}
+
+function ensureTotalDetailsAreVisible(type) {
+ document.getElementById('total_detail_selector').value = type;
+ window.location.hash = 'total_'+type
+}
function ensureTagDetailsAreVisible(name) {
document.getElementById('tag_detail_selector').value = name;
+ window.location.hash = 'tag_'+name;
}
function ensureSuiteDetailsAreVisible(name) {
document.getElementById('suite_detail_selector').value = name;
-}
-
-function ensureTotalDetailsAreVisible(type) {
- document.getElementById('total_detail_selector').value = type;
+ window.location.hash = 'suite_'+name;
}
function findTagByName(name, tags) {
@@ -453,7 +456,7 @@
function showDetailsByHash() {
// TODO: cleanup
- hash = window.location.hash.substring(1);
+ hash = decodeURI(window.location.hash.substring(1));
if(hash.indexOf("suite_")==0){
suite = hash.substring("suite_".length);
suiteDetailSelected(suite)
@@ -678,8 +681,8 @@
<td>
<select id="total_detail_selector"
onchange="totalDetailSelected(this.options[this.selectedIndex].value);">
<option value="">Select see to totals...</option>
- <option value="All Tests">All tests</option>
- <option value="Critical Tests">Critical tests</option>
+ <option value="All Tests">All Tests</option>
+ <option value="Critical Tests">Critical Tests</option>
</select>
</td>
</tr>
==============================================================================
Revision: 22409acdce42
Author: Jussi Malinen
Date: Mon Jun 6 06:47:14 2011
Log: tab style tweaking
http://code.google.com/p/robotframework/source/detail?r=22409acdce42
Modified:
/src/robot/webcontent/report.html
=======================================
--- /src/robot/webcontent/report.html Mon Jun 6 06:30:40 2011
+++ /src/robot/webcontent/report.html Mon Jun 6 06:47:14 2011
@@ -94,7 +94,7 @@
#detail_tabs {
list-style: none;
padding: 0;
- margin: 0px 1px;
+ margin: 0px 1em;
}
#detail_tabs li {
display: inline;
@@ -103,6 +103,7 @@
border-bottom-width: 0;
margin: 0 0.5em 0 0;
padding-top: 0.1em;
+ border-radius: 3px 3px 0 0;
}
#detail_tabs li:hover {
background: yellow;
@@ -113,10 +114,13 @@
font-weight: bold;
padding: 0 1em;
}
- #detail_tabs .tab_selected {
+ #detail_tabs li.tab_selected {
padding-bottom: 1px;
background: white;
}
+ #detail_tabs li.tab_selected:hover {
+ background: white;
+ }
</style>
<style media="all" type="text/css">
/* Generic styles */