]> jspc29.x-matter.uni-frankfurt.de Git - mvd_epics.git/commitdiff
DASH: navbar in bs base view & new bs pv_overview
authorPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Mon, 18 Sep 2017 14:17:45 +0000 (16:17 +0200)
committerPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Mon, 18 Sep 2017 14:17:45 +0000 (16:17 +0200)
python_suite/dashboard/dashboard.py
python_suite/dashboard/example.config.json
python_suite/dashboard/views/base.jinja2
python_suite/dashboard/views/base_bootstrap.jinja2
python_suite/dashboard/views/gview.jinja2

index d7710a5d81b350c6b64306713895e7eaed88679e..2643667f0c38190677f3a0e4322b7c9ffd415a26 100755 (executable)
@@ -190,7 +190,11 @@ def list_pvs(page):
 @route('/gview/<name>')
 @view('gview.jinja2')
 def gview(name):
-    return {'config': CONFIG, 'svg': name}
+    try:
+        svg = CONFIG['pages'][name]['gview']
+    except KeyError:
+        return abort(404, 'Page not found')
+    return {'config': CONFIG, 'svg': svg}
 
 @route('/api/values.json')
 @json_replace_nan()
index d0146434d1a972cb3af1b71af83ecba826609e5c..f8d52c3268a5d2471f5d99ce1a2dea7064f7161c 100644 (file)
                {"name": "CBM:MVD:PT100:VAC:CONV_RATE"}
        ],
        "page_hierarchy": {
-                       "top": ["general_overview"],
-                       "general_overview": ["cooling_system", "low_voltage_system"]
+                       "top": ["top_list"],
+                       "top_gview": ["gview_cooling", "gview_cooling_vac"],
+                       "top_list": ["general_overview"],
+                       "general_overview": ["cooling_system", "low_voltage_system", "relhum"]
                },
        "pages": {
                        "general_overview": {
                                        "temperature"
                                ]
                        },
+                       "gview_cooling": {
+                               "name": "PRESTO Cooling System",
+                               "gview": "/static/gview/cooling.svg"
+                        },
+                       "gview_cooling_vac": {
+                               "name": "PRESTO Cooling & Vaccum System",
+                               "gview": "/static/gview/Cooling.svg"
+                        },
                        "cooling_system": {
                                "name": "Details Cooling System",
                                "groups": [
                                        "cooling_extended"
                                ]
                         },
+                        "relhum": {
+                                "name": "Relative Humidity",
+                                "groups": [
+                                        "relhum"
+                                ]
+                        },
                         "low_voltage_system": {
                                 "name": "Details Low Voltage",
                                 "groups": [
index 5a279f7d3108eccf76054d0df9f6de534eae2efe..fdafa5d386852bc05937bfec650d64d39cfe57c4 100644 (file)
@@ -14,7 +14,7 @@
                        <h1>PRESTO - Overview<br/> Prototype of the Second Station of the Micro Vertex Detector of the Compressed Baryonic Matter</h1>
                </div>
                <nav class="menu_bar">
-                       {% for page in config.page_hierarchy.top %}
+                       {% for page in config.page_hierarchy.top_list %}
                        <a class="{{ 'active' if page == req_page else '' }}" href="/list/{{ page }}">{{ config.pages[page].name }}</a> <span style="color: white;">→</span>
                                {% for page in config.page_hierarchy[page] %}
                                <a class="{{ 'active' if page == req_page else '' }}" href="/list/{{ page }}">{{ config.pages[page].name }}</a>
index bf7cad10566b657963d430b84f08747d00f61ce0..9ebc7bc48d7dbe99a44a980320aab0538cbd2c69 100644 (file)
@@ -24,7 +24,7 @@
     {% endblock %}
   </head>
   <body>
-    <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
+    <nav class="navbar navbar-expand-md navbar-dark bg-primary fixed-top">
       <a class="navbar-brand" href="/">DASHBOARD</a>
       <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
         <span class="navbar-toggler-icon"></span>
 
       <div class="collapse navbar-collapse" id="navbarsExampleDefault">
         <ul class="navbar-nav mr-auto">
-          <li class="nav-item active">
-            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
-          </li>
           <li class="nav-item">
-            <a class="nav-link" href="#">Link</a>
+            <a class="nav-link" href="/">Home </a>
           </li>
-          <li class="nav-item">
-            <a class="nav-link disabled" href="#">Disabled</a>
+          <li class="nav-item dropdown ">
+            <a class="nav-link dropdown-toggle" href="#" id="DropdownPages" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">PV Overviews</a>
+            <div class="dropdown-menu" aria-labelledby="dropdown01">
+              {% for page in config.page_hierarchy.top_list %}
+                <a class="dropdown-item {{ 'active' if page == req_page else '' }}" href="/list_bs/{{ page }}">{{ config.pages[page].name }}</a>
+                <div class="dropdown-divider"></div>
+                {% for page in config.page_hierarchy[page] %}
+                <a class="dropdown-item {{ 'active' if page == req_page else '' }}" href="/list_bs/{{ page }}">{{ config.pages[page].name }}</a>
+                {% endfor %}
+                {% if not loop.last %}<div class="dropdown-divider"></div>{% endif %}
+              {% endfor %}
+            </div>
           </li>
           <li class="nav-item dropdown">
-            <a class="nav-link dropdown-toggle" href="http://example.com" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
+            <a class="nav-link dropdown-toggle" href="http://example.com" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">GViews</a>
             <div class="dropdown-menu" aria-labelledby="dropdown01">
-              <a class="dropdown-item" href="#">Action</a>
-              <a class="dropdown-item" href="#">Another action</a>
-              <a class="dropdown-item" href="#">Something else here</a>
+              {% for page in config.page_hierarchy.top_gview %}
+                <a class="dropdown-item {{ 'active' if page == req_page else '' }}" href="/gview/{{ page }}">{{ config.pages[page].name }}</a>
+                <!-- <div class="dropdown-divider"></div>
+                {% for page in config.page_hierarchy[page] %}
+                <a class="dropdown-item {{ 'active' if page == req_page else '' }}" href="/gview/{{ page }}">{{ config.pages[page].name }}</a>
+                {% endfor %} -->
+                {% if not loop.last %}<div class="dropdown-divider"></div>{% endif %}
+              {% endfor %}
             </div>
           </li>
         </ul>
         <form class="form-inline my-2 my-lg-0">
-          <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
-          <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
+          <img src="/static/images/ikf_logo.png" height="40">
         </form>
       </div>
     </nav>
index 9b7e806d904ea4dd941bceee6ccf5bdfec4ad60b..97986566d04a3068537038cb26ef051dab8bf8ff 100644 (file)
@@ -1,4 +1,4 @@
-{% extends "base.jinja2" %}
+{% extends "base_bootstrap.jinja2" %}
 
 {% block title %}GView  {{ svg }}{% endblock %}
 
@@ -13,7 +13,7 @@
          </div>
        </div>
        <div class="gview">
-               <object id="gview" style="margin: 2ex auto; display: block;" class="gview gview-{{ svg }}" data="/static/gview/{{ svg }}.svg" type="image/svg+xml">
+               <object id="gview" style="margin: 2ex auto; display: block;" class="gview gview-{{ svg }}" data="{{ svg }}" type="image/svg+xml">
                Your browser doesn't support SVG
                </object>
        </div>