[Midnightbsd-cvs] mports: www/tmpls: add start of run page.
ctriv at midnightbsd.org
ctriv at midnightbsd.org
Sun Mar 16 01:13:06 EDT 2008
Log Message:
-----------
add start of run page.
Modified Files:
--------------
mports/Tools/magus/www/data/magus:
index.cgi (r1.6 -> r1.7)
mports/Tools/magus/www/data/magus/elements:
magus.css (r1.15 -> r1.16)
magus.js (r1.3 -> r1.4)
mports/Tools/magus/www/tmpls:
port.tmpl (r1.5 -> r1.6)
-------------- next part --------------
Index: index.cgi
===================================================================
RCS file: /home/cvs/mports/Tools/magus/www/data/magus/index.cgi,v
retrieving revision 1.6
retrieving revision 1.7
diff -L Tools/magus/www/data/magus/index.cgi -L Tools/magus/www/data/magus/index.cgi -u -r1.6 -r1.7
--- Tools/magus/www/data/magus/index.cgi
+++ Tools/magus/www/data/magus/index.cgi
@@ -36,10 +36,12 @@
summary_page($p);
} elsif ($path =~ m:/list/(.*):) {
list_page($p, $1);
+ } elsif ($path =~ m:runs/(.*):) {
+ run_page($p, $1);
} elsif ($path =~ m:/ports/(.*):) {
port_page($p, $1);
- } elsif ($path =~ m:/results/async/(\d+):) {
- result_details_async($p, $1);
+ } elsif ($path =~ m:/async/run-ports-list:) {
+ async_run_port_stats($p);
} elsif ($path =~ m:/search:) {
return search($p);
} else {
@@ -53,6 +55,7 @@
Magus::Port->set_sql(last_twenty => qq{
SELECT __ESSENTIAL__
FROM __TABLE__
+ WHERE status!='untested'
ORDER BY updated DESC LIMIT 20
});
@@ -89,6 +92,29 @@
print $tmpl->output;
}
+sub run_page {
+ my ($p, $run) = @_;
+
+ $run = Magus::Run->retrieve($run) || die "No such run: $run\n";
+
+ my $tmpl = template($p, "run.tmpl");
+ $tmpl->param(title => "Run $run");
+ $tmpl->param(map { $_ => $run->$_ } qw(osversion arch status created id));
+
+ my $dbh = Magus::Run->db_Main();
+
+ my $sth = $dbh->prepare("SELECT COUNT(*) AS count,status FROM ports WHERE run=? GROUP BY status ORDER BY name");
+ $sth->execute($run->id);
+ my $status_stats = $sth->fetchall_arrayref({});
+ $sth->finish;
+
+ $tmpl->param(status_stats => $status_stats);
+
+ print $p->header;
+ print $tmpl->output;
+}
+
+
sub port_page {
my ($p, $port) = @_;
@@ -113,7 +139,8 @@
machine_id => $_->machine->id,
machine => $_->machine->name,
type => $_->type,
- msg => $_->msg
+ msg => $_->msg,
+ time => $_->time,
} } $port->events;
if (@events) {
@@ -145,31 +172,30 @@
print $p->header, $tmpl->output;
}
-sub result_details_async {
- my ($p, $id) = @_;
+sub async_run_port_stats {
+ my ($p) = @_;
- my %details = (id => $id);
+ my $run = $p->param('run');
+ my $status = $p->param('status');
- my $result = Magus::Result->retrieve($id) || die "No such results: $id";
+ my %details = (run => $run, status => $status);
- my @subresults = map { {
- phase => $_->phase,
- type => $_->type,
- name => $_->name,
- msg => $_->msg,
- } } $result->subresults;
+ my @results = map {{
+ summary => $_->status,
+ port => $_->name,
+ version => $_->version,
+ arch => $_->run->arch,
+ id => $_->id,
+ run => $_->run,
+ osversion => $_->run->osversion,
+ }} Magus::Port->search(run => $run, status => $status);
+
+ my $tmpl = template($p, 'result-list.tmpl');
+ $tmpl->param(results => \@results);
- if (@subresults) {
- $details{subresults} = \@subresults;
- }
+ $details{html} = $tmpl->output;
- my $log = $result->logs->next;
-
- if ($log) {
- $details{log} = $log->data;
- }
-
- print $p->header(-type => 'text/plain'), to_json(\%details);
+ print $p->header(-type => 'text/plain'), encode_json(\%details);
}
sub list_page {
Index: magus.js
===================================================================
RCS file: /home/cvs/mports/Tools/magus/www/data/magus/elements/magus.js,v
retrieving revision 1.3
retrieving revision 1.4
diff -L Tools/magus/www/data/magus/elements/magus.js -L Tools/magus/www/data/magus/elements/magus.js -u -r1.3 -r1.4
--- Tools/magus/www/data/magus/elements/magus.js
+++ Tools/magus/www/data/magus/elements/magus.js
@@ -1,44 +1,50 @@
var loader = new Image(220, 19);
loader.src = '/magus/elements/ajax-loader.gif';
-function details_link(id) {
- var row = document.getElementById("result_" + id + "_row");
- var div = document.getElementById("result_" + id + "_details");
-
- if (!row.style.display || row.style.display == 'none') {
- row.style.display = 'table-row';
- if (!div.innerHTML) {
- var td = document.getElementById("result_" + id + "_details");
- td.innerHTML = '<p style="text-align: center"><img src="' + loader.src + '" /></p>';
- sendAsycQuery(id);
- } else {
- twiddle_link(id, 'hide');
- }
- } else {
- row.style.display = 'none';
- twiddle_link(id, 'show');
+function showPorts(id, status) {
+ if (status.length == 0) {
+ return false;
}
+ var td = document.getElementById("ports-display");
+ td.innerHTML = '<p style="text-align: center"><img src="' + loader.src + '" /></p>';
+ td.style.display = 'table-cell';
+
+ var url = 'http://www.midnightbsd.org/magus/async/run-ports-list?run=' + id + '&status=' + status;
+ sendAsycQuery(url, process_showPorts);
return false;
}
-var url = 'http://cs.emich.edu/magus/index.cgi/results/async/';
+function process_showPorts() {
+ // only if req shows "loaded"
+ if (req.readyState == 4) {
+ // only if "OK"
+ if (req.status == 200) {
+ var result = eval( "(" + req.responseText + ")" );
+ var td = document.getElementById("ports-display");
+ td.innerHTML = result.html;
+ } else {
+ alert("There was a problem retrieving the data:\n" + req.statusText);
+ }
+ }
+}
+
-function sendAsycQuery(query) {
+function sendAsycQuery(url, callback) {
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
- req.open("GET", url + query, true);
+ req.open("GET", url, true);
req.setRequestHeader('Content-type', 'application/x-json');
req.setRequestHeader('Connection', 'close');
- req.onreadystatechange = processDetailResults;
+ req.onreadystatechange = callback
req.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.open("GET", url + query, true);
- req.onreadystatechange = processDetailResults;
+ req.onreadystatechange = callback;
req.setRequestHeader('Content-Type', 'application/x-json');
req.setRequestHeader('Connection', 'close');
req.send(null);
@@ -48,48 +54,8 @@
}
}
-function processDetailResults() {
- // only if req shows "loaded"
- if (req.readyState == 4) {
- // only if "OK"
- if (req.status == 200) {
- var result = eval( "(" + req.responseText + ")" );
- var td = document.getElementById("result_" + result.id + "_details");
- var html = '';
-
- if (result.subresults) {
- html = '<ul class="subresults">';
- for (i=0; i<result.subresults.length; i++) {
- html = html + '<li class="' + result.subresults[i].type + '">' + result.subresults[i].phase + ': ' + result.subresults[i].msg + '</li>';
- }
- html = html + '</ul>';
- }
-
- if (result.log) {
- html = html + '<pre class="log">' + result.log + '</pre>';
- }
-
- td.innerHTML = html;
- twiddle_link(result.id, 'hide');
- row.style.display = 'table-row';
- } else {
- alert("There was a problem retrieving the data:\n" + req.statusText);
- }
- }
-}
-
-
-function twiddle_link(id, mode) {
- var link = document.getElementById("result_" + id + "_link");
-
- if (mode == 'show') {
- link.innerHTML = 'Show Details';
- } else {
- link.innerHTML = 'Hide Details';
- }
-}
function confirm_delete() {
Index: magus.css
===================================================================
RCS file: /home/cvs/mports/Tools/magus/www/data/magus/elements/magus.css,v
retrieving revision 1.15
retrieving revision 1.16
diff -L Tools/magus/www/data/magus/elements/magus.css -L Tools/magus/www/data/magus/elements/magus.css -u -r1.15 -r1.16
--- Tools/magus/www/data/magus/elements/magus.css
+++ Tools/magus/www/data/magus/elements/magus.css
@@ -121,7 +121,7 @@
max-width: 75%;
}
-table.result-list, table.port-results, table.event-list {
+table.run-summary, table.result-list, table.port-results, table.event-list {
max-width: 100%;
width: 100%;
}
Index: port.tmpl
===================================================================
RCS file: /home/cvs/mports/Tools/magus/www/tmpls/port.tmpl,v
retrieving revision 1.5
retrieving revision 1.6
diff -L Tools/magus/www/tmpls/port.tmpl -L Tools/magus/www/tmpls/port.tmpl -u -r1.5 -r1.6
--- Tools/magus/www/tmpls/port.tmpl
+++ Tools/magus/www/tmpls/port.tmpl
@@ -66,13 +66,15 @@
<tr>
<th>Machine</th>
<th>Type</th>
+ <th>Time</th>
<th>Message</th>
</tr>
<TMPL_LOOP name="events">
<tr class="<TMPL_VAR NAME=type><TMPL_UNLESS NAME=__odd__> even</TMPL_UNLESS>">
<td><a href="<TMPL_VAR NAME="machine_root">/<TMPL_VAR NAME="machine_id">"><TMPL_VAR NAME="machine"></a></td>
- <td><TMPL_VAR NAME="type"></td>
+ <td><TMPL_VAR NAME="type"></td>
+ <td style="white-space: nowrap; font-size: smaller"><TMPL_VAR NAME="time"></td>
<td><TMPL_VAR NAME="msg"></td>
</tr>
</TMPL_LOOP>
More information about the Midnightbsd-cvs
mailing list