summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorAndrew Gerrand <adg@golang.org>2010-03-31 17:01:16 +1100
committerAndrew Gerrand <adg@golang.org>2010-03-31 17:01:16 +1100
commit867aa94eb6c414512801b14f5931dc27d51cd3d4 (patch)
treed7b9a10e875b45f344da4652c497574d158e3b3e /misc
parent12ae4e7f38eff90d232f37dd52041acff0dd0487 (diff)
downloadgolang-867aa94eb6c414512801b14f5931dc27d51cd3d4.tar.gz
godashboard: new stylesheet, build status pagination
R=rsc, gri, r CC=golang-dev http://codereview.appspot.com/822044
Diffstat (limited to 'misc')
-rw-r--r--misc/dashboard/godashboard/app.yaml5
-rw-r--r--misc/dashboard/godashboard/gobuild.py23
-rw-r--r--misc/dashboard/godashboard/main.html77
-rw-r--r--misc/dashboard/godashboard/package.html76
-rw-r--r--misc/dashboard/godashboard/static/style.css87
5 files changed, 148 insertions, 120 deletions
diff --git a/misc/dashboard/godashboard/app.yaml b/misc/dashboard/godashboard/app.yaml
index 1c786a6c1..fb742d8ed 100644
--- a/misc/dashboard/godashboard/app.yaml
+++ b/misc/dashboard/godashboard/app.yaml
@@ -1,9 +1,12 @@
application: godashboard
-version: 3
+version: 4
runtime: python
api_version: 1
handlers:
+- url: /static
+ static_dir: static
+
- url: /package.*
script: package.py
diff --git a/misc/dashboard/godashboard/gobuild.py b/misc/dashboard/godashboard/gobuild.py
index dcae7c8ad..2dfba433b 100644
--- a/misc/dashboard/godashboard/gobuild.py
+++ b/misc/dashboard/godashboard/gobuild.py
@@ -122,9 +122,25 @@ class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
+ try:
+ page = int(self.request.get('p', 1))
+ if not page > 0:
+ raise
+ except:
+ page = 1
+
+ try:
+ num = int(self.request.get('n', N))
+ if num <= 0 or num > 200:
+ raise
+ except:
+ num = N
+
+ offset = (page-1) * num
+
q = Commit.all()
q.order('-__key__')
- results = q.fetch(N)
+ results = q.fetch(num, offset)
revs = [toRev(r) for r in results]
builders = {}
@@ -144,6 +160,11 @@ class MainPage(webapp.RequestHandler):
builders.sort()
values = {"revs": revs, "builders": [v for k,v in builders]}
+ values['num'] = num
+ values['prev'] = page - 1
+ if len(results) == num:
+ values['next'] = page + 1
+
path = os.path.join(os.path.dirname(__file__), 'main.html')
self.response.out.write(template.render(path, values))
diff --git a/misc/dashboard/godashboard/main.html b/misc/dashboard/godashboard/main.html
index 7ba9aeed9..6de8e9315 100644
--- a/misc/dashboard/godashboard/main.html
+++ b/misc/dashboard/godashboard/main.html
@@ -1,67 +1,23 @@
<!DOCTYPE HTML>
<html>
<head>
- <title>Go dashboard</title>
-
- <style>
- h1 {
- font-size: 1em;
- font-weight: bold;
- }
- h2 {
- font-size: 1em;
- font-weight: bold;
- }
- table.alternate {
- white-space: nowrap;
- }
- table.alternate tr td {
- padding-right: 10px;
- }
- table.alternate tr td:last-child {
- padding-right: 0;
- }
- table.alternate tr:nth-child(2n) {
- background-color: #f8f8f8;
- }
- td.revision {
- }
- span.hash {
- font-family: monospace;
- font-size: small;
- color: #aaa;
- }
- span.nodeseq {
- }
- td.user {
- font-size: small;
- }
- td.date {
- color: #aaa;
- font-size: small;
- }
- td.result {
- text-align: center;
- }
- span.ok {
- }
- td.desc {
- font-size: small;
- font-family: sans-serif;
- }
- th.builder {
- font-weight: bold;
- padding-right: 0.5em;
- }
- </style>
+ <title>Build Status - Go Dashboard</title>
+ <link rel="stylesheet" type="text/css" href="static/style.css">
</head>
<body>
- <h1>Go dashboard</h1>
+ <a id="top"></a>
+
+ <ul class="menu">
+ <li>Build Status</li>
+ <li><a href="/package">Packages</a></li>
+ <li><a href="/benchmarks">Benchmarks</a></li>
+ <li><a href="http://golang.org/">golang.org</a></li>
+ </ul>
- <a href="benchmarks">benchmarks</a>
+ <h1>Go Dashboard</h1>
- <h2>Build status</h2>
+ <h2>Build Status</h2>
<table class="alternate" cellpadding="0" cellspacing="0">
<tr>
<th></th>
@@ -83,9 +39,9 @@
<span class="ok">ok</span>
{% else %}
{% if b.log %}
- <a href="/log/{{b.log}}">fail</a>
+ <a class="fail" href="/log/{{b.log}}">fail</a>
{% else %}
- <span/>
+ &nbsp;
{% endif %}
{% endif %}
</td>
@@ -97,5 +53,10 @@
</tr>
{% endfor %}
</table>
+ <div class="paginate">
+ <a{% if prev %} href="?n={{num}}&p={{prev}}"{% else %} class="inactive"{% endif %}>prev</a>
+ <a{% if next %} href="?n={{num}}&p={{next}}"{% else %} class="inactive"{% endif %}>next</a>
+ <a href="#top">top</a>
+ </div>
</body>
</html>
diff --git a/misc/dashboard/godashboard/package.html b/misc/dashboard/godashboard/package.html
index 57d23d9af..64d86d7b8 100644
--- a/misc/dashboard/godashboard/package.html
+++ b/misc/dashboard/godashboard/package.html
@@ -1,75 +1,31 @@
<!DOCTYPE HTML>
<html>
<head>
- <title>Go packages</title>
-
- <style>
- h1 {
- font-size: 1em;
- font-weight: bold;
- }
- h2 {
- font-size: 1em;
- font-weight: bold;
- }
- table.alternate {
- white-space: nowrap;
- }
- table.alternate tr td {
- padding-right: 10px;
- }
- table.alternate tr td:last-child {
- padding-right: 0;
- }
- table.alternate tr:nth-child(2n) {
- background-color: #f8f8f8;
- }
- td.revision {
- }
- span.hash {
- font-family: monospace;
- font-size: small;
- color: #aaa;
- }
- span.nodeseq {
- }
- td.user {
- font-size: small;
- }
- td.date {
- color: #aaa;
- font-size: small;
- }
- td.result {
- text-align: center;
- }
- span.ok {
- }
- td.desc {
- font-size: small;
- font-family: sans-serif;
- }
- th.builder {
- font-weight: bold;
- padding-right: 0.5em;
- }
- </style>
+ <title>Packages - Go Dashboard</title>
+ <link rel="stylesheet" type="text/css" href="static/style.css">
</head>
<body>
- <h1>Go packages</h1>
+ <ul class="menu">
+ <li><a href="/">Build Status</a></li>
+ <li>Packages</li>
+ <li><a href="/benchmarks">Benchmarks</a></li>
+ <li><a href="http://golang.org/">golang.org</a></li>
+ </ul>
+
+ <h1>Go Dashboard</h1>
- <a href="/">build status</a>
- <br><br>
- (Packages listed on this page are written by third parties and
- may or may not build or be safe to use.)
+ <p>
+ Packages listed on this page are written by third parties and
+ may or may not build or be safe to use.
+ </p>
<h2>Recently Installed Packages</h2>
<table class="alternate" cellpadding="0" cellspacing="0">
<tr><th>last install</th><th>count</th><th>path</th></tr>
{% for r in by_time %}
<tr>
- <td class="time">{{r.last_install}}</td>
+ <td class="time">{{r.last_install|date:"Y-M-d H:i"}}</td>
<td class="count">{{r.count}}</td>
<td class="path"><a href="{{r.web_url}}">{{r.path}}</a></td>
</tr>
@@ -81,7 +37,7 @@
<tr><th>last install</th><th>count</th><th>path</th></tr>
{% for r in by_count %}
<tr>
- <td class="time">{{r.last_install}}</td>
+ <td class="time">{{r.last_install|date:"Y-M-d H:i"}}</td>
<td class="count">{{r.count}}</td>
<td class="path"><a href="{{r.web_url}}">{{r.path}}</a></td>
</tr>
diff --git a/misc/dashboard/godashboard/static/style.css b/misc/dashboard/godashboard/static/style.css
new file mode 100644
index 000000000..882b854ab
--- /dev/null
+++ b/misc/dashboard/godashboard/static/style.css
@@ -0,0 +1,87 @@
+body {
+ font-family: sans-serif;
+ margin: 0;
+ padding: 0;
+}
+h1, h2, ul, table, p {
+ padding: 0 0.2em;
+}
+h1, h2 {
+ margin: 0;
+ background: #eee;
+}
+h1 {
+ border-bottom: 1px solid #ccc;
+ font-size: 1em;
+ padding: 0.5em;
+ margin-bottom: 0.5em;
+ text-align: right;
+}
+h2 {
+ border-top: 1px solid #ccc;
+}
+table.alternate {
+ white-space: nowrap;
+ margin: 0.5em 0;
+}
+table.alternate td,
+table.alternate th {
+ padding: 0.1em 0.25em;
+ font-size: small;
+}
+table.alternate tr td:last-child {
+ padding-right: 0;
+}
+table.alternate tr:nth-child(2n) {
+ background-color: #f8f8f8;
+}
+span.hash {
+ font-family: monospace;
+ font-size: small;
+ color: #aaa;
+}
+td.date {
+ color: #aaa;
+}
+td.result {
+ text-align: center;
+}
+th.builder {
+ font-weight: bold;
+}
+a.fail {
+ color: #F00;
+}
+a.fail:visited {
+ color: #900;
+}
+ul.menu {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+ul.menu li {
+ float: left;
+ display: block;
+ font-size: 1em;
+ padding: 0.5em;
+ background: #EEF;
+ margin-left: 0.5em;
+ border-left: 1px solid #999;
+ border-right: 1px solid #999;
+}
+div.paginate {
+ padding: 0.5em;
+}
+div.paginate a {
+ padding: 0.5em;
+ margin-right: 0.5em;
+ background: #eee;
+ color: blue;
+}
+div.paginate a.inactive {
+ color: #999;
+}
+td.time {
+ font-family: monospace;
+}