Add layer cake to dashboard.

Change-Id: I7c40bfe72c9e719b98c54cf256d8a8994f564e62
diff --git a/fudash/index.html b/fudash/index.html
index 299f117..df06390 100644
--- a/fudash/index.html
+++ b/fudash/index.html
@@ -1,22 +1,24 @@
 <html>
+
 <head>
-    <link rel="stylesheet" href="main.css">
-    <meta http-equiv="refresh" content="60">
-    <title>Fuchsia Build Dashboard</title>
+  <link rel="stylesheet" href="main.css">
+  <meta http-equiv="refresh" content="60">
+  <title>Fuchsia Build Dashboard</title>
 </head>
+
 <body>
-{% for target in targets %}
-  <h1> {{target.project}} </h1>
-  <ul class="target-container">
-      {% for build_job in target.build_jobs %}
-      <li class="{{build_job.result}}">
-        <a href="{{build_job.href}}">
-          <span class="target-name">{{build_job.name}}</span>
-        </a>
-      </li>
-      {% endfor %}
-  </ul>
-{% endfor %}
-<div class="clock">{{clock}}</div>
+  {% for target in targets %}
+  <div class="target-container">
+    {% for build_job in target.build_jobs %}
+    <a href="{{build_job.href}}">
+      <div class="{{build_job.result}}">
+        <span class="target-name">{{build_job.name}}</span>
+      </div>
+    </a>
+    {% endfor %}
+  </div>
+  {% endfor %}
+  <div class="clock">{{clock}}</div>
 </body>
-</html>
+
+</html>
\ No newline at end of file
diff --git a/fudash/main.css b/fudash/main.css
index 7bc855e..dfc4c39 100644
--- a/fudash/main.css
+++ b/fudash/main.css
@@ -11,32 +11,37 @@
     text-decoration: none;
 }
 
-h1 {
-    margin-left: 0.25em;
-}
-
 .target-container {
     border-collapse: separate;
-    border-spacing: 0.5em;
-    display: table;
+    display: flex;
     list-style-type: none;
     padding: 0;
+    margin-top: 0.5em;
     table-layout: fixed;
     width: 100%;
 }
 
-.target-container>li {
-    display: table-cell;
+.target-container div {
+    display: flex;
+    justify-content: center;
+    align-items: center;
     border: 0.5px solid #333;
     font-size: 1.5em;
     line-height: 2em;
-    margin-bottom: 0.5em;
-    padding: 0.3em;
+    padding: 1.3em;
     text-align: center;
+    min-height:100px;
+}
+
+.target-container a {
+    flex:1;
+    align-items: stretch;
+    margin-left: 0.5em;
 }
 
 .target-name {
     color: white;
+    line-height: 1.2em;
 }
 
 .fail {
diff --git a/fudash/main.py b/fudash/main.py
index 31aec4f..1f39faa 100644
--- a/fudash/main.py
+++ b/fudash/main.py
@@ -21,34 +21,53 @@
 BASE_URL = 'https://luci-scheduler.appspot.com/jobs/'
 SNAPSHOT_URL = 'https://storage.googleapis.com/fuchsia/jiri/snapshots'
 
-TARGETS = {
-    'fuchsia': [
+TARGETS = [
+    [
+        ('fuchsia'),
         ('fuchsia/fuchsia-aarch64-linux-debug', 'fuchsia-aarch64-linux-debug'),
         ('fuchsia/fuchsia-aarch64-linux-release', 'fuchsia-aarch64-linux-release'),
         ('fuchsia/fuchsia-x86_64-linux-debug', 'fuchsia-x86_64-linux-debug'),
         ('fuchsia/fuchsia-x86_64-linux-release', 'fuchsia-x86_64-linux-release'),
     ],
-    'fuchsia-drivers': [
-        ('fuchsia/drivers-aarch64-linux-debug', 'drivers-aarch64-linux-debug'),
-        ('fuchsia/drivers-aarch64-linux-release', 'drivers-aarch64-linux-release'),
-        ('fuchsia/drivers-x86_64-linux-debug', 'drivers-x86_64-linux-debug'),
-        ('fuchsia/drivers-x86_64-linux-release', 'drivers-x86_64-linux-release'),
+    [
+        ('topaz'),
+        ('fuchsia/topaz-aarch64-linux-debug', 'topaz-aarch64-linux-debug'),
+        ('fuchsia/topaz-aarch64-linux-release', 'topaz-aarch64-linux-release'),
+        ('fuchsia/topaz-x86_64-linux-debug', 'topaz-x86_64-linux-debug'),
+        ('fuchsia/topaz-x86_64-linux-release', 'topaz-x86_64-linux-release'),
     ],
-    'zircon': [
+    [
+        ('peridot'),
+        ('fuchsia/peridot-aarch64-linux-debug', 'peridot-aarch64-linux-debug'),
+        ('fuchsia/peridot-aarch64-linux-release', 'peridot-aarch64-linux-release'),
+        ('fuchsia/peridot-x86_64-linux-debug', 'peridot-x86_64-linux-debug'),
+        ('fuchsia/peridot-x86_64-linux-release', 'peridot-x86_64-linux-release'),
+    ],
+    [
+        ('garnet'),
+        ('fuchsia/garnet-aarch64-linux-debug', 'garnet-aarch64-linux-debug'),
+        ('fuchsia/garnet-aarch64-linux-release', 'garnet-aarch64-linux-release'),
+        ('fuchsia/garnet-x86_64-linux-debug', 'garnet-x86_64-linux-debug'),
+        ('fuchsia/garnet-x86_64-linux-release', 'garnet-x86_64-linux-release'),
+    ],
+    [
+        ('zircon'),
         ('fuchsia/zircon-pc-x86-64-clang', 'zircon-pc-x86-64-clang'),
         ('fuchsia/zircon-pc-x86-64-gcc', 'zircon-pc-x86-64-gcc'),
         ('fuchsia/zircon-qemu-arm64-clang', 'zircon-qemu-arm64-clang'),
         ('fuchsia/zircon-qemu-arm64-gcc', 'zircon-qemu-arm64-gcc'),
     ],
-    'fyi': [
-        ('fuchsia/zircon-pc-x86-64-asan', 'zircon-pc-x86-64-asan'),
-        ('fuchsia/zircon-qemu-arm64-asan', 'zircon-qemu-arm64-asan'),
-    ],
-    'jiri': [
+    [
+        ('jiri'),
         ('fuchsia/jiri-x86_64-linux', 'jiri-x86_64-linux'),
         ('fuchsia/jiri-x86_64-mac', 'jiri-x86_64-mac'),
+    ],
+    [
+        ('fyi'),
+        ('fuchsia/zircon-pc-x86-64-asan', 'zircon-pc-x86-64-asan'),
+        ('fuchsia/zircon-qemu-arm64-asan', 'zircon-qemu-arm64-asan'),
     ]
-}
+]
 
 
 class BuildResult:
@@ -145,9 +164,11 @@
             'clock': time.strftime("%H:%M UTC", time.gmtime()),
             'targets': [],
         }
-        for t in sorted(TARGETS):
+        for t in TARGETS:
             build_jobs = []
-            for job in TARGETS[t]:
+            project = t[0]
+            job_targets = t[1:]
+            for job in job_targets:
                 url_suffix = job[0]
                 display_name = job[1]
                 result, link = getBuildResult(url_suffix)
@@ -158,7 +179,7 @@
                 }
                 build_jobs.append(result)
             target = {
-                'project': t,
+                'project': project,
                 'build_jobs': build_jobs
             }
             template_values['targets'].append(target)
@@ -172,8 +193,9 @@
 
     def get(self, target):
         snapshot_found = False
-        for t in sorted(TARGETS):
-            for j in TARGETS[t]:
+        for t in TARGETS:
+            job_targets = t[1:]
+            for j in job_targets:
                 if target == j[1]:
                     result, link = getBuildResult(j[0], True)
                     self.redirect(getSnapshot(link))