]> rtime.felk.cvut.cz Git - coffee/coffee-flask.git/blobdiff - templates/user.html
Add event logging
[coffee/coffee-flask.git] / templates / user.html
index 5ad7b901584c6fa01eab306c41af6fc878197bc6..0a8597bd70a2f100889caabeba985ca8a4751427 100644 (file)
@@ -1,3 +1,36 @@
+<style>
+.events {
+    margin: 0.8em;
+    margin-bottom: 1.5em;
+    padding: 2px;
+    border-spacing: 2em 0;
+}
+
+.events h3 {
+    display: inline-block;
+    margin-top: 1ex;
+    margin-right: 0.7em;
+}
+
+.events-box {
+    border: 1px solid black;
+    padding: 0.5em;
+    display: inline-block;
+    vertical-align: top;
+}
+
+.events-box h4 {
+    margin: 0.5ex;
+}
+.events-box .btnline {
+    text-align: left;
+}
+.events-box input {
+    padding: 1.5ex;
+    margin: 0.5ex;
+}
+</style>
+
 {% if name %}
     <form style="position: absolute; right: 15%; width: 15%; height: 15%;">
         <button type="button" id="logout_button" onclick="logout()" style="width: 100%; height: 100%;">logout</button>
@@ -5,6 +38,7 @@
 
     <h1>Hello, {{ name }}!</h1>
 
+    <p id="eventMsg"></p>
     <p id="nextStep"></p>
 
     {% if counts|length > 0 %}
     <img src="{{ url_for('coffee_graph_history', _external=True, stamp=stamp) }}">
     <img src="{{ url_for('coffee_graph_flavors', _external=True, stamp=stamp, days=7) }}">
 {% endif %}
+
+    <br />
+    <form>
+      {%- macro event_box(title, events) -%}
+        <div class="events-box">
+          <h4>{{title | capitalize}}</h4>
+          {#- The first item in the list is used as button label, last item in the overview -#}
+          {%- set verb = {
+                           "COFFEE_MACHINE_CLEANED": ["cleaned"],
+                           "COFFEE_PACK_OPENED": ["opened"],
+                           "LAST_COFFEE_PACK_OPENED": ["last opened"],
+                           "MILK_CONTAINER_CLEANED": ["cleaned (water)", "cleaned"],
+                           "MILK_CONTAINER_CLEANED_WITH_TABLET": ["cleaned (tablet)"],
+                         }
+          -%}
+          {% if name -%} {# User logged in - show action buttons #}
+            {%- for event in events %}
+              <div class="btnline">
+                <input type="button" value="{{ verb[event]|first }}"
+                       onclick="addEvent('{{ event }}', '{{ verb[events[0]]|last }} the {{ title }}')" />
+                       ({{ last_events[event] | humanize if event in last_events else "never" }})
+              </div>
+            {%- endfor -%}
+          {%- else -%}    {# Nobody logged in - show overview with summary times #}
+            {# Calculate maximum timestamp of all relevant events #}
+            {%- set when = last_events.items() | selectattr(0, 'in',
+          events) | map(attribute=1) | max | humanize -%}
+              {%- if when -%}
+                {{ verb[events[0]]|last }} {{ when }}
+              {%- else -%}
+                never {{ verb[events[0]]|last }}
+              {%- endif -%}
+          {%- endif %}
+        </div>
+      {%- endmacro %}
+      <div class="events">
+        <h3>{{ ("Record<br />event" if name else "Events") | safe }}:</h3>
+        {{ event_box('coffee machine', ['COFFEE_MACHINE_CLEANED'] ) }}
+        {{ event_box('coffee pack', ['COFFEE_PACK_OPENED'] ) }}
+        {{ event_box('milk container', ['MILK_CONTAINER_CLEANED', 'MILK_CONTAINER_CLEANED_WITH_TABLET'] ) }}
+      </div>
+    </form>