- [% content %]
-
+
diff --git a/src/root/navbar.tt b/src/root/navbar.tt
index 18f140ed..cb91dd5e 100644
--- a/src/root/navbar.tt
+++ b/src/root/navbar.tt
@@ -5,61 +5,36 @@
[% END %]
+
+[% BLOCK menuItem %]
+
+ [% title %]
+
+[% END %]
+
[% BLOCK makeLink -%]
[% INCLUDE makeLinkWrapped content="" -%]
[% END %]
[% BLOCK makeSubMenu %]
[% extra = collapsed ? "collapsed" : "" %]
-
+
[% END %]
+[% IF project %]
-
-
-
-
diff --git a/src/root/overview.tt b/src/root/overview.tt
index c6feda2d..7a4b234b 100644
--- a/src/root/overview.tt
+++ b/src/root/overview.tt
@@ -34,6 +34,14 @@ href="http://nixos.org/hydra">
[Read more...]
+[% IF c.user_exists %]
+
+ [ [% INCLUDE maybeLink
+ uri = c.uri_for(c.controller('Project').action_for('create'))
+ content = "Create project" %] ]
+
+[% END %]
+
Channels
diff --git a/src/root/static/css/hydra.css b/src/root/static/css/hydra.css
index 9d5c10db..af543c21 100644
--- a/src/root/static/css/hydra.css
+++ b/src/root/static/css/hydra.css
@@ -1,5 +1,5 @@
#logo img {
- width: 11em;
+ width: 8em;
}
tr.clickable:hover {
@@ -154,3 +154,4 @@ button {
form.inline {
display: inline;
}
+
diff --git a/src/root/static/css/nixos-site.css b/src/root/static/css/nixos-site.css
new file mode 100644
index 00000000..dcebca4f
--- /dev/null
+++ b/src/root/static/css/nixos-site.css
@@ -0,0 +1,170 @@
+body {
+ background-color: gray;
+ margin: 0;
+}
+
+/* The main container element. */
+div#page {
+ max-width: 80em;
+ min-width: 50em;
+ min-height: 20em;
+ margin: 1em auto;
+ background-color: white;
+
+ /* Put a rounded border around the page. */
+ border: 1px solid black;
+ padding: 1em;
+ border-radius: 1em;
+ -moz-border-radius: 1em;
+ -webkit-border-radius: 1em;
+ -moz-box-shadow: #404040 0px 5px 50px;
+ -webkit-box-shadow: #404040 0px 5px 50px;
+}
+
+/* The header. */
+div#header {
+ border-bottom: 1px solid black;
+ position: relative;
+ padding-bottom: 1em;
+}
+
+div#logo {
+ display: inline;
+}
+
+ul#top-menu {
+ top: 0em;
+}
+
+ul#context-menu {
+ bottom: 1em;
+}
+
+
+/* The footer. */
+div#footer {
+ margin-top: 1em;
+ border-top: 1px solid black;
+ position: relative;
+}
+
+div#last-modified {
+ font-size: 80%;
+ font-style: italic;
+}
+
+ul#bottom-menu {
+ bottom: 0em;
+}
+
+/* The top and bottom menus. */
+ul.short-menu {
+ display: block;
+ position: absolute;
+ right: 0em;
+ margin: 0;
+ padding: 0;
+}
+
+ul.short-menu li {
+ display: inline;
+
+ /* Put a ">" in front of the menu item. */
+ margin-left: 0.5em;
+ padding-left: 1.3em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ background-image: url(../images/arrow-right.gif);
+ background-repeat: no-repeat;
+ background-position: 0.3em center;
+}
+
+ul.short-menu li a {
+ color: black;
+ text-decoration: none;
+}
+
+ul.short-menu li a:hover {
+ text-decoration: none;
+ border-bottom: 1px dotted black;
+ background: white;
+}
+
+/* The left menu. */
+div#main {
+ position: relative;
+ min-height: 10em;
+}
+
+div#left-bar {
+ position: absolute;
+ left: 0em;
+ width: 8em;
+ min-height: 10em;
+}
+
+div#left-title {
+ font-weight: bold;
+ padding-bottom: 0.5em;
+ margin-bottom: 0.5em;
+ border-bottom: 1px dotted black;
+}
+
+ul#left-menu {
+ padding: 0 0 0 0;
+ margin: 0 0 0 0;
+}
+
+ul#left-menu li {
+ font-size: 90%;
+ list-style: none;
+ padding-left: 1.3em;
+ margin-bottom: 0.5em;
+}
+
+ul#left-menu li {
+ background-image: url(../images/arrow-right.gif);
+ background-repeat: no-repeat;
+ background-position: 0 center;
+}
+
+ul#left-menu li.active {
+ background-image: url(../images/arrow-right-active.gif);
+ background-color: #eef2ff;
+ font-weight: bold;
+ color: #606060;
+}
+
+/* The content. */
+div#left-bar + div#content {
+ margin-left: 9em;
+}
+
+/* Inline (floating) images. */
+img.inline, img.inlineNoBorder {
+ float: right;
+ margin-left: 1em;
+ margin-bottom: 1em;
+}
+
+/* Release tables. */
+.reldate {
+ font-style: italic;
+}
+
+table.releases td {
+ border: 0px;
+}
+
+/* Screenshot table. */
+table.screenshots {
+ border-style: hidden;
+}
+
+table.screenshots td {
+ vertical-align: middle;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border: 0px;
+ border-bottom: 1px dotted black;
+}
diff --git a/src/root/topbar.tt b/src/root/topbar.tt
new file mode 100644
index 00000000..c1d4e0f3
--- /dev/null
+++ b/src/root/topbar.tt
@@ -0,0 +1,47 @@
+[% BLOCK makeLinkWrapped %]
+
+ [% title %]
+ [% content %]
+
+[% END %]
+
+[% BLOCK makeLink -%]
+[% INCLUDE makeLinkWrapped content="" -%]
+[% END %]
+
+[% BLOCK makeSubMenu %]
+
+
+[% END %]
+
+
+ [% WRAPPER makeSubMenu title="Hydra" %]
+ [% INCLUDE makeLink
+ uri = c.uri_for(c.controller('Root').action_for('index'))
+ title = "Overview" %]
+ [% INCLUDE makeLink
+ uri = c.uri_for(c.controller('Root').action_for('queue'))
+ title = "Queue" %]
+ [% INCLUDE makeLink
+ uri = c.uri_for(c.controller('Root').action_for('all'))
+ title = "All builds" %]
+ [% INCLUDE makeLink
+ uri = c.uri_for(c.controller('Root').action_for('jobstatus'))
+ title = "Job status" %]
+ [% INCLUDE makeLink
+ uri = c.uri_for(c.controller('Root').action_for('errors'))
+ title = "Errors" %]
+ [% IF c.user_exists %]
+ [% INCLUDE makeLink
+ uri = c.uri_for(c.controller('Root').action_for('logout'))
+ title = "Sign out" %]
+ [% ELSE %]
+ [% INCLUDE makeLink
+ uri = c.uri_for(c.controller('Root').action_for('login'))
+ title = "Sign in" %]
+ [% END %]
+ [% END %]
+
+