Browse Source

Categorized all data-input images into subgroup 'icon' and redesigned the
input fields.
Added data-input image 'TMP'

Signed-off-by: chanhoonseng <chanhoonseng3101@gmail.com>

chanhoonseng 7 years ago
parent
commit
fffdfcc0a8

+ 239 - 164
designer.html

@@ -89,35 +89,72 @@
 {% end %}
 
 
-{% if data['style'][key]['type'] == "valve" %}
+{% if data['style'][key]['type'] == "icon" %}
+{% if data['style'][key]['icon'] == "valve" %}
 <div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;'
 {% if "linkhtml" in data['style'][key] %}
  data-linkhtml="{{ data['style'][key]['linkhtml'] }}"
 {% else %}
+{% end %}
+{% if "on_condition" in data['style'][key] %}
+ data-onexpression="{{ data['style'][key]['on_condition'] }}"
+{% else %}
+{% end %}
+{% if "off_condition" in data['style'][key] %}
+ data-offexpression="{{ data['style'][key]['off_condition'] }}"
+{% else %}
+{% end %}
+{% if "icon" in data['style'][key] %}
+ data-icon="{{ data['style'][key]['icon'] }}"
+{% else %}
 {% end %}
  data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='varbox' id="{{ key }}">
-<img width='100%' height='100%' src='{{ static_url("ventil_inactive.png") }}'></img>
+<img width='100%' height='100%' src='{{ static_url("valve_inactive.png") }}'></img>
 </div>
 {% else %}
 {% end %}
 
-{% if data['style'][key]['type'] == "commbit" %}
+{% if data['style'][key]['icon'] == "commbit" %}
 <div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;'
 {% if "linkhtml" in data['style'][key] %}
  data-linkhtml="{{ data['style'][key]['linkhtml'] }}"
 {% else %}
+{% end %}
+{% if "on_condition" in data['style'][key] %}
+ data-onexpression="{{ data['style'][key]['on_condition'] }}"
+{% else %}
+{% end %}
+{% if "off_condition" in data['style'][key] %}
+ data-offexpression="{{ data['style'][key]['off_condition'] }}"
+{% else %}
+{% end %}
+{% if "icon" in data['style'][key] %}
+ data-icon="{{ data['style'][key]['icon'] }}"
+{% else %}
 {% end %}
  data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='varbox' id="{{ key }}">
-<img width='100%' height='100%' src='{{ static_url("Bit_inactive.svg") }}'></img>
+<img width='100%' height='100%' src='{{ static_url("commbit_inactive.svg") }}'></img>
 </div>
 {% else %}
 {% end %}
 
-{% if data['style'][key]['type'] == "alarm" %}
+{% if data['style'][key]['icon'] == "alarm" %}
 <div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;'
 {% if "linkhtml" in data['style'][key] %}
  data-linkhtml="{{ data['style'][key]['linkhtml'] }}"
 {% else %}
+{% end %}
+{% if "on_condition" in data['style'][key] %}
+ data-onexpression="{{ data['style'][key]['on_condition'] }}"
+{% else %}
+{% end %}
+{% if "off_condition" in data['style'][key] %}
+ data-offexpression="{{ data['style'][key]['off_condition'] }}"
+{% else %}
+{% end %}
+{% if "icon" in data['style'][key] %}
+ data-icon="{{ data['style'][key]['icon'] }}"
+{% else %}
 {% end %}
  data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='varbox' id="{{ key }}">
 <img width='100%' height='100%' src='{{ static_url("alarm_inactive.svg") }}'></img>
@@ -125,6 +162,32 @@
 {% else %}
 {% end %}
 
+{% if data['style'][key]['icon'] == "tmp" %}
+<div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;'
+{% if "linkhtml" in data['style'][key] %}
+ data-linkhtml="{{ data['style'][key]['linkhtml'] }}"
+{% else %}
+{% end %}
+{% if "on_condition" in data['style'][key] %}
+ data-onexpression="{{ data['style'][key]['on_condition'] }}"
+{% else %}
+{% end %}
+{% if "off_condition" in data['style'][key] %}
+ data-offexpression="{{ data['style'][key]['off_condition'] }}"
+{% else %}
+{% end %}
+{% if "icon" in data['style'][key] %}
+ data-icon="{{ data['style'][key]['icon'] }}"
+{% else %}
+{% end %}
+ data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='varbox' id="{{ key }}">
+<img width='100%' height='100%' src='{{ static_url("tmp_inactive.svg") }}'></img>
+</div>
+{% else %}
+{% end %}
+{% else %}
+{% end %}
+
 
 {% if data['style'][key]['type'] == "integer-to-string" %}
 <div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{
@@ -175,15 +238,21 @@
 {% end %}
 </select>
 <span class="info">Type</span>
-<select id="vartype" style="font-size:16pt;">
+<select id="vartype" onchange="inputEnable()" style="font-size:16pt;">
   <option value="data">data</option>
-  <option value="valve">valve</option>
-  <option value="commbit">commbit</option>
-  <option value="alarm">alarm</option>
+  <option value="icon">icon</option>
   <option value="integer-to-string">integer-to-string</option>
   <option value="header">header</option>
   <option value="calc">calc</option>
 </select>
+<span class="info">Icon</span>
+<select id="icon" style="font-size:16pt;" disabled="true">
+  <option disabled selected value></option>
+  <option value="valve">valve</option>
+  <option value="commbit">commbit</option>
+  <option value="alarm">alarm</option>
+  <option value="tmp">TMP</option>
+</select>
 <span class="info">Attribute</span>
 <select id="varattr" style="font-size:16pt;">
   <option value="normal">Normal</option>
@@ -192,6 +261,21 @@
 <span class="info">Virtual ID</span>
 <input type="text" id="virtual_id_text" placeholder="text" style="font-size:16pt; width=100px;"/>
 <br /><br />
+<span class="info">Condition: on when x </span>
+<select id="onexpression" style="font-size:16pt;" disabled>
+  <option value="onsmaller"><</option>
+  <option value="onequal">=</option>
+  <option value="ongreater">></option>
+</select>
+<input type="text" id="onvalue" placeholder="number" style="font-size:16pt; width=100px;" disabled/>
+<span class="info">&nbsp;&nbsp;&nbsp;&nbsp; off when x </span>
+<select id="offexpression" style="font-size:16pt;" disabled>
+  <option value="offsmaller"><</option>
+  <option value="offequal">=</option>
+  <option value="offgreater">></option>
+</select>
+<input type="text" id="offvalue" placeholder="number" style="font-size:16pt; width=100px;" disabled/>
+<br /><br />
 <span class="info">Title</span>:
 
 <input type="text" id="elem_title_text" placeholder="text" style="font-size:16pt; width=100px;"/>
@@ -216,15 +300,14 @@
 </select>
 <span class="info">Exp</span><input type="checkbox" id="elem_exponential" style="font-size:16pt; width:20px; height:20px;"/>
 <br /><br />
-<span class="info">Background colour</span>
-<input type="text" id="background_color" placeholder="hex code" style="font-size:16pt; width=100px;"/>
-<span class="info">Link</span><input type="checkbox" id="elem_linkhtml" style="font-size:16pt; width:20px; height:20px;"/>
-<br /><br />
 <button class="button save" onclick="backup()">Backup</button>
 <button style="display:none;" id="buttonHighlight" class="button highlight" onclick="highlight({{ data['cache'] }})">Highlight</button>
 <button class="button add" onclick="add()">Add</button>
 <button class="button remove" onclick="myremove()">Remove</button>
 <button class="button save" onclick="mysave({{ data['cache'] }})">Save</button>
+<span class="info"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Background colour</span>
+<input type="text" id="background_color" placeholder="hex code" style="font-size:16pt; width=100px;"/>
+<span class="info">Link</span><input type="checkbox" id="elem_linkhtml" style="font-size:16pt; width:20px; height:20px;"/>
 
 </div>
 
@@ -233,6 +316,23 @@
 <script src="{{ static_url("jquery-1.12.3.min.js") }}"></script>
 <script src="{{ static_url("jquery-ui.min.js") }}"></script>
 <script>
+
+function inputEnable() {
+    if ($("#vartype option:selected").val()=="icon") {
+        $("#icon").prop("disabled",false);
+        $("#onexpression").prop("disabled",false);
+        $("#onvalue").prop("disabled",false);
+        $("#offexpression").prop("disabled",false);
+        $("#offvalue").prop("disabled",false);
+    } else {
+        $("#icon").prop("disabled",true);
+        $("#onexpression").prop("disabled",true);
+        $("#onvalue").prop("disabled",true);
+        $("#offexpression").prop("disabled",true);
+        $("#offvalue").prop("disabled",true);
+    }
+}
+
 function backup() {
     $.ajax({
         url: '/backup/',
@@ -298,6 +398,11 @@ function add() {
     varval = $( "#varname option:selected").val();
     varname = $("#varname option:selected").text();
     vartype = $("#vartype option:selected").val();
+    icon = $("#icon option:selected").val();
+    onexpression = $("#onexpression option:selected").val();
+    onvalue = $("#onvalue").val();
+    offexpression = $("#offexpression option:selected").val();
+    offvalue = $("#offvalue").val();
     varattr = $("#varattr option:selected").val();
     console.log("Selected");
     console.log(varattr);
@@ -394,7 +499,6 @@ function add() {
             if (data_formula.length > 0) {
                 var clean_text = data_formula.replace(/[^a-zA-Z0-9 ]/g, "")
                 varname = "calc_" + clean_text.replace(/\s+/g, '-').toLowerCase();
-                console.log('Hi');
                 console.log(varname);
                 html_text = "<div " +
                         "style='position: absolute; " +
@@ -434,134 +538,54 @@ function add() {
                 $('#elem_formula').addClass('glowing_border');
             }
             
-        } else if (vartype == "valve") {
-            
-            if (varattr=="virtual") {
-                virtual_name = "virtual_" + varname + "_" + virtual_id;
-                if ( $("#" + virtual_name).length > 0 ) {
-                    for (i = 0; i < 50; i++) {
-                        virtual_name = "virtual_" + varname + "_" + i.toString();
-                        console.log($("#" + virtual_name).length);
-                        if (!$("#" + virtual_name).length){
-                            break;
-                         }
-                    }
-                }
-                varname = virtual_name;
-            }
-            console.log("Ventil");
-            if (unit_text.length > 0) {
-                var token = JSON.parse(unit_text);
-                data_on = token["on"];
-                data_off = token["off"];
-                 html_text = "<div " +
-                    "style='position: absolute; " +
-                           "top:0; " +
-                           "left:0;' " +
-                    "class='varbox box_highlight' " +
-                    "id='" + varname +
-                    "' data-type='" + vartype +
-                    "' data-cond='" + data_condition +
-                    "' data-lesser='" + data_lesser +
-                            "' data-larger='" + data_larger +
-                            "' data-on='" + data_on +
-                            "' data-off='" + data_off +
-                    "' data-linkhtml='" + data_linkhtml +
-                    "'>" +
-                            "<img width='100%' height='100%' " +
-                    "src='{{ static_url("ventil_inactive.png") }}'></img>" +
-                        "</div>";
-                 $('#elem_unit_text').removeClass('glowing_border');
-            } else{
-                console.log("NoInput");
-                html_text = "";
-                $('#elem_unit_text').addClass('glowing_border');
-            }
-        } else if (vartype == "commbit") {
-           
-            if (varattr=="virtual") {
-                virtual_name = "virtual_" + varname + "_" + virtual_id;
-                if ( $("#" + virtual_name).length > 0 ) {
-                    for (i = 0; i < 50; i++) {
-                        virtual_name = "virtual_" + varname + "_" + i.toString();
-                        console.log($("#" + virtual_name).length);
-                        if (!$("#" + virtual_name).length){
-                            break;
-                         }
-                    }
-                }
-                varname = virtual_name;
-            }
-            console.log("commbit");
-            if (unit_text.length > 0) {
-                var token = JSON.parse(unit_text);
-                data_on = token["on"];
-                data_off = token["off"];
-                 html_text = "<div " +
-                    "style='position: absolute; " +
-                           "top:0; " +
-                           "left:0;' " +
-                    "class='varbox box_highlight' " +
-                    "id='" + varname +
-                    "' data-type='" + vartype +
-                    "' data-cond='" + data_condition +
-                    "' data-lesser='" + data_lesser +
-                            "' data-larger='" + data_larger +
-                            "' data-on='" + data_on +
-                            "' data-off='" + data_off +
-                    "' data-linkhtml='" + data_linkhtml +
-                    "'>" +
-                            "<img width='100%' height='100%' " +
-                    "src='{{ static_url("Bit_inactive.svg") }}'></img>" +
-                        "</div>";
-                 $('#elem_unit_text').removeClass('glowing_border');
-            } else{
-                console.log("NoInput");
-                html_text = "";
-                $('#elem_unit_text').addClass('glowing_border');
-            }
-        } else if (vartype == "alarm") {
-            if (varattr=="virtual") {
-                virtual_name = "virtual_" + varname + "_" + virtual_id;
-                if ( $("#" + virtual_name).length > 0 ) {
-                    for (i = 0; i < 50; i++) {
-                        virtual_name = "virtual_" + varname + "_" + i.toString();
-                        console.log($("#" + virtual_name).length);
-                        if (!$("#" + virtual_name).length){
-                            break;
-                         }
+        } else if (vartype == "icon") {
+                if (varattr=="virtual") {
+                    virtual_name = "virtual_" + varname + "_" + virtual_id;
+                    if ( $("#" + virtual_name).length > 0 ) {
+                        for (i = 0; i < 50; i++) {
+                            virtual_name = "virtual_" + varname + "_" + i.toString();
+                            console.log($("#" + virtual_name).length);
+                            if (!$("#" + virtual_name).length){
+                                break;
+                            }
+                        }
                     }
+                    varname = virtual_name;
                 }
-                varname = virtual_name;
-            }
-            console.log("alarm");
-            if (unit_text.length > 0) {
-                var token = JSON.parse(unit_text);
-                data_on = token["on"];
-                data_off = token["off"];
-                 html_text = "<div " +
-                    "style='position: absolute; " +
-                           "top:0; " +
-                           "left:0;' " +
-                    "class='varbox box_highlight' " +
-                    "id='" + varname +
-                    "' data-type='" + vartype +
-                    "' data-cond='" + data_condition +
-                    "' data-lesser='" + data_lesser +
-                            "' data-larger='" + data_larger +
-                            "' data-on='" + data_on +
-                            "' data-off='" + data_off +
-                    "' data-linkhtml='" + data_linkhtml +
-                    "'>" +
-                            "<img width='100%' height='100%' " +
-                    "src='{{ static_url("alarm_inactive.svg") }}'></img>" +
-                        "</div>";
-                 $('#elem_unit_text').removeClass('glowing_border');
-            } else{
-                console.log("NoInput");
-                html_text = "";
-                $('#elem_unit_text').addClass('glowing_border');
-            }
+                console.log(icon);
+                if ((onvalue.length > 0)&&(offvalue.length > 0)) {
+                    //var token = JSON.parse(unit_text);
+                    //data_on = token["on"];
+                    //data_off = token["off"];
+                    html_text = "<div " +
+                        "style='position: absolute; " +
+                               "top:0; " +
+                               "left:0;' " +
+                        "class='varbox box_highlight' " +
+                        "id='" + varname +
+                        "' data-type='" + vartype +
+                        "' data-cond='" + data_condition +
+                        "' data-icon='" + icon +
+                        "' data-lesser='" + data_lesser +
+                                "' data-larger='" + data_larger +
+                                "' data-onexpression='" + onexpression +
+                                "' data-on='" + onvalue +
+                                "' data-offexpression='" + offexpression +
+                                "' data-off='" + offvalue +
+                        "' data-linkhtml='" + data_linkhtml +
+                        "'>" +
+                                "<img width='100%' height='100%' " +
+                        "src='/static/" + icon + "_inactive.svg' ></img>" +
+                            "</div>";
+                     $('#onvalue').removeClass('glowing_border');
+                     $('#offvalue').removeClass('glowing_border');
+                 } else{
+                     console.log("NoInput");
+                     html_text = "";
+                     $('#onvalue').addClass('glowing_border');
+                     $('#offvalue').addClass('glowing_border');
+                 }
+         
 	} else if (vartype == "integer-to-string") {
             if (varattr=="virtual") {
                 virtual_name = "virtual_" + varname + "_" + virtual_id;
@@ -571,7 +595,7 @@ function add() {
                         console.log($("#" + virtual_name).length);
                         if (!$("#" + virtual_name).length){
                             break;
-                         }
+                        }
                     }
                 }
                 varname = virtual_name;
@@ -626,6 +650,8 @@ function myremove() {
     if($("#" + varname).length > 0) {
         $("#"+varname).remove();
         console.log(varname +" removed.");
+nexpression = $("#onexpression option:selected").val();
+    onvalue = $("#onvalue").val();
     }
 }
 function mysave(data) {
@@ -671,7 +697,6 @@ function mysave(data) {
                     } else {
                         tmp["background_color"] = '#0000ffff';
                     } 
-                    //console.log('Hi');
                     //console.log($("#"+key).css("background-color"));
                     header = {};
             	    header["title"] = $("#elem_title_text").val().trim();
@@ -738,13 +763,16 @@ function mysave(data) {
 	    //	header["size"] = $(".title", "#"+key).css("font-size");
 	    //	header["weight"] = $(".title", "#"+key).css("font-weight");
             //	tmp["header"] = header;
-           } else if ( $("#"+key).attr("data-type") == "valve" ) {
+           } else if ( $("#"+key).attr("data-type") == "icon" ) {
                 if ((varname == key) && (varattr == "normal")) {
-                    var unit_text = $("#elem_unit_text").val();
-                    unit_text = unit_text.trim();
-                    var dtoken = JSON.parse(unit_text);
-                    tmp["on"] = dtoken["on"];
-                    tmp["off"] = dtoken["off"];
+                    //var unit_text = $("#elem_unit_text").val();
+                    //unit_text = unit_text.trim();
+                    //var dtoken = JSON.parse(unit_text);
+                    tmp["on"] = $("#onvalue").val();
+                    tmp["on_condition"] = $("#onexpression").val();
+                    tmp["off"] = $("#offvalue").val();
+                    tmp["off_condition"] = $("#offexpression").val();
+                    tmp["icon"] = $("#"+key).attr("data-icon");
                     if ($('#elem_linkhtml').is(":checked")) {
                         tmp["linkhtml"] = "true";
                         $("#"+key).attr("data-linkhtml", "true");
@@ -753,10 +781,14 @@ function mysave(data) {
                         $("#"+key).attr("data-linkhtml","false");
                     }
                 } else {
+                    tmp["icon"] = $("#"+key).attr("data-icon");
                     tmp["on"] = $("#"+key).attr("data-on");
+                    tmp["on_condition"] = $("#"+key).attr("data-onexpression");
                     tmp["off"] = $("#"+key).attr("data-off");
+                    tmp["off_condition"] = $("#"+key).attr("data-offexpression");
                     tmp["linkhtml"] = $("#"+key).attr("data-linkhtml");
-                } 
+                }
+           /* 
            } else if ( $("#"+key).attr("data-type") == "commbit" ) {
                 if ((varname == key) && (varattr == "normal")) {
                     var unit_text = $("#elem_unit_text").val();
@@ -794,7 +826,7 @@ function mysave(data) {
                     tmp["on"] = $("#"+key).attr("data-on");
                     tmp["off"] = $("#"+key).attr("data-off");
                     tmp["linkhtml"] = $("#"+key).attr("data-linkhtml");
-                }
+                }*/
             } else if ( $("#"+key).attr("data-type") == "integer-to-string" ) {
                 if ((varname == key)&& (varattr == "normal")) {
                     var unit_text = $("#elem_unit_text").val();
@@ -940,13 +972,16 @@ function mysave(data) {
 	    //	        header["size"] = $(".title", "#"+key).css("font-size");
 	    //	        header["weight"] = $(".title", "#"+key).css("font-weight");
             //	tmp["header"] = header;
-            } else if ( $("#"+key).attr("data-type") == "valve" ) {
+            } else if ( $("#"+key).attr("data-type") == "icon" ) {
                 if (varname == key) {
-                    var unit_text = $("#elem_unit_text").val();
-                    unit_text = unit_text.trim();
-                    var dtoken = JSON.parse(unit_text);
-                    tmp["on"] = dtoken["on"];
-                    tmp["off"] = dtoken["off"];
+                    //var unit_text = $("#elem_unit_text").val();
+                    //unit_text = unit_text.trim();
+                    //var dtoken = JSON.parse(unit_text);
+                    tmp["on"] = $("#onvalue").val();
+                    tmp["on_condition"] = $("#onexpression").val();
+                    tmp["off"] = $("#offvalue").val();
+                    tmp["off_condition"] = $("#offexpression").val();
+		    tmp["icon"] = $("#"+key).attr("data-icon");
                     if ($('#elem_linkhtml').is(":checked")) {
                         tmp["linkhtml"] = "true";
                         $("#"+key).attr("data-linkhtml", "true");
@@ -955,10 +990,14 @@ function mysave(data) {
                         $("#"+key).attr("data-linkhtml","false");
                     }
                 } else {
-            	    tmp["on"] = $("#"+key).attr("data-on");
-            	    tmp["off"] = $("#"+key).attr("data-off");
+		    tmp["icon"] = $("#"+key).attr("data-icon");
+                    tmp["on"] = $("#"+key).attr("data-on");
+                    tmp["on_condition"] = $("#"+key).attr("data-onexpression");
+                    tmp["off"] = $("#"+key).attr("data-off");
+                    tmp["off_condition"] = $("#"+key).attr("data-offexpression");
                     tmp["linkhtml"] = $("#"+key).attr("data-linkhtml");
                 }
+		/*
             } else if ( $("#"+key).attr("data-type") == "commbit" ) {
                 if (varname == key) {
                     var unit_text = $("#elem_unit_text").val();
@@ -996,7 +1035,7 @@ function mysave(data) {
                     tmp["on"] = $("#"+key).attr("data-on");
                     tmp["off"] = $("#"+key).attr("data-off");
                     tmp["linkhtml"] = $("#"+key).attr("data-linkhtml");
-                }
+                }*/
             } else if ( $("#"+key).attr("data-type") == "integer-to-string" ) {
                 if (varname == key) {
                     var unit_text = $("#elem_unit_text").val();
@@ -1053,7 +1092,6 @@ function mysave(data) {
     $('[id^=header_]').each(function( index ) {
         tmp = {};
         var hkey = $( this ).attr('id');
-        console.log('Hi');
         console.log(hkey);
         tmp["left"] = $("#"+hkey).css("left");
         tmp["top"] = $("#"+hkey).css("top");
@@ -1178,17 +1216,20 @@ function highlight(mydata) {
     console.log("highlight");
     varname = $("#varname option:selected").text();
     vartype = $("#"+varname).attr("data-type");
+    icon = $("#"+varname).attr("data-icon");
     $("#vartype").val(vartype);
-    console.log(varname, vartype);
+    console.log(varname, vartype,icon);
     // clear values
     $("#elem_title_text").val("");
     $("#elem_title_size").val("");
+    $("#elem_title_style").val("");
     $("#elem_unit_text").val("");
     $("#elem_unit_size").val("");
     $("#elem_lesser_range").val("");
     $("#elem_larger_range").val("");
     $("#elem_condition_range").val("");
     $("#elem_formula").val("");
+    $("#varattr").val("normal");
     $("#virtual_id_text").val("");
     $("#background_color").val("");
     $('#elem_exponential').prop('checked', false);
@@ -1196,6 +1237,16 @@ function highlight(mydata) {
     $('#elem_unit_text').removeClass('glowing_border');  
     $('#elem_title_text').removeClass('glowing_border');
     $('#elem_formula').removeClass('glowing_border');
+    $("#icon").val("");
+    $('#icon').prop('disabled', true);
+    $('#onexpression').prop('disabled', true);
+    $('#onvalue').prop('disabled', true);
+    $('#offexpression').prop('disabled', true);
+    $('#offvalue').prop('disabled', true);
+    $('#onexpression').val("");
+    $('#onvalue').val("");
+    $('#offexpression').val('disabled', true);
+    $('#offvalue').val("");
  
     if (vartype == "header") {
         $("#elem_title_text").val($("#"+varname + " .title").text());
@@ -1271,6 +1322,12 @@ function highlight(mydata) {
         if (fontWeight == 'bold' || fontWeight == '700') {
             $("#elem_unit_style").val("700"); 
         }
+  
+        if (varname.includes("virtual")){
+            $("#varattr").val("virtual");
+        } else {
+            $("#varattr").val("normal");
+        }
    
     } else if (vartype == "calc") {
         var vid = varname.split("_");
@@ -1308,13 +1365,31 @@ function highlight(mydata) {
         if ($("#"+varname).css("background-color") ) {
             $("#background_color").val($("#"+varname).css("background-color"));
         }
-     } else if (vartype == "valve") {
-        $("#elem_unit_text").val('{"on":'+$("#"+varname).attr("data-on") + ',"off":'+$("#"+varname).attr("data-off")+'}' );
+     } else if (vartype == "icon") {
+        $("#icon").val(icon);
+        $('#icon').prop('disabled', false);
+        $('#onexpression').prop('disabled', false);
+        $('#onvalue').prop('disabled', false);
+        $('#offexpression').prop('disabled', false);
+        $('#offvalue').prop('disabled', false);
+        $('#onvalue').val($("#"+varname).attr("data-on"));
+        $('#onexpression').val($("#"+varname).attr("data-onexpression"))
+        $('#offvalue').val($("#"+varname).attr("data-off"));
+        $('#offexpression').val($("#"+varname).attr("data-offexpression"))
+        //$("#elem_unit_text").val('{"on":'+$("#"+varname).attr("data-on") + ',"off":'+$("#"+varname).attr("data-off")+'}' );
+
         if (($("#"+varname).attr("data-linkhtml")) == "true" || ($("#"+varname).attr("data-linkhtml")) == "true") {
             $('#elem_linkhtml').prop('checked', true);
         } else {
             $('#elem_linkhtml').prop('checked', false);
         }
+        
+        if (varname.includes("virtual")){
+            $("#varattr").val("virtual");
+        } else {
+            $("#varattr").val("normal");
+        }
+    /*
     } else if (vartype == "commbit") {
         $("#elem_unit_text").val('{"on":'+$("#"+varname).attr("data-on") + ',"off":'+$("#"+varname).attr("data-off")+'}' );
         if (($("#"+varname).attr("data-linkhtml")) == "true" || ($("#"+varname).attr("data-linkhtml")) == "true") {
@@ -1328,7 +1403,7 @@ function highlight(mydata) {
             $('#elem_linkhtml').prop('checked', true);
         } else {
             $('#elem_linkhtml').prop('checked', false);
-        }
+        }*/
     } else if (vartype == "integer-to-string") {
         $("#elem_title_text").val($("#"+varname + " .title").text().trim());
         $("#elem_title_size").val("");

+ 111 - 0
static/TMP_green.svg

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="25.658602mm"
+   height="60.129822mm"
+   viewBox="0 0 90.916305 213.05842"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="TMP_green.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.979899"
+     inkscape:cx="70.945171"
+     inkscape:cy="137.53436"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-576.37233,-758.07186)">
+    <g
+       id="g4187"
+       transform="translate(-96.226618,-31.314725)"
+       style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1">
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4203"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4201"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4199"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4197"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4195"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4193"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4191"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#00e800;fill-opacity:0.69732941;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4189"
+         inkscape:connector-curvature="0" />
+    </g>
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+       d="m 577.55217,970.19478 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15465,9.25902 l 6.32813,6.27569 0,15.42826 0,15.42826 3.04687,1.73904 c 7.94188,4.53292 14.54388,14.64757 16.59612,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92188,-4.84758 c -5.63618,-5.55111 -10.75037,-8.06921 -14.53914,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+       id="path4185"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 111 - 0
static/TMP_inactive.svg

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="25.658602mm"
+   height="60.129822mm"
+   viewBox="0 0 90.916305 213.05842"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="TMP_inactive.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.979899"
+     inkscape:cx="43.926133"
+     inkscape:cy="155.21203"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-603.39137,-775.74953)">
+    <g
+       id="g4187"
+       transform="translate(-69.207574,-13.637055)"
+       style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1">
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4203"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4201"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4199"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4197"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4195"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4193"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4191"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.07418398;stroke:none;stroke-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4189"
+         inkscape:connector-curvature="0" />
+    </g>
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+       d="m 604.57121,987.87245 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15465,9.25902 l 6.32813,6.27569 0,15.42826 0,15.42826 3.04687,1.73904 c 7.94188,4.53292 14.54388,14.64757 16.59612,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92188,-4.84758 c -5.63618,-5.55111 -10.75037,-8.06921 -14.53914,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+       id="path4185"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 111 - 0
static/TMP_red.svg

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="25.658602mm"
+   height="60.129822mm"
+   viewBox="0 0 90.916305 213.05842"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="TMP_red.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.979899"
+     inkscape:cx="86.860156"
+     inkscape:cy="155.21204"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-560.45735,-775.74953)">
+    <g
+       id="g4187"
+       transform="translate(-112.14159,-13.637059)"
+       style="fill:#ff0000;fill-opacity:1">
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4203"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4201"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4199"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4197"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z"
+         id="path4195"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4193"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4191"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#ff0000;fill-opacity:1"
+         d="m 673.77879,1001.0097 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15466,9.25902 l 6.32812,6.27569 0,15.42826 0,15.42826 3.04688,1.73904 c 7.94187,4.53292 14.54387,14.64757 16.59611,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92187,-4.84758 c -5.63619,-5.55111 -10.75038,-8.06921 -14.53915,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+         id="path4189"
+         inkscape:connector-curvature="0" />
+    </g>
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+       d="m 561.63719,987.87245 c -1.14134,-1.14135 -0.73997,-132.85592 0.4215,-138.32232 2.23751,-10.53074 10.09509,-22.04594 17.276,-25.31778 l 2.29342,-1.04496 0,-15.21056 0,-15.21057 4.39345,-5.33668 c 4.49911,-5.46503 9.78359,-8.82752 16.87377,-10.73671 6.21921,-1.67466 13.21884,1.38895 21.15465,9.25902 l 6.32813,6.27569 0,15.42826 0,15.42826 3.04687,1.73904 c 7.94188,4.53292 14.54388,14.64757 16.59612,25.42619 0.74667,3.92163 0.98118,25.24891 0.78811,71.67653 l -0.27485,66.09379 -44.13155,0.2434 c -24.27235,0.1339 -44.41688,-0.042 -44.76562,-0.3906 z m 82.59884,-71.80596 -0.26417,-66.79688 -2.62888,-5.625 c -3.00536,-6.43055 -6.88427,-10.79743 -12.52953,-14.10577 -3.81989,-2.2386 -4.43927,-2.30048 -23.02811,-2.30048 l -19.10264,0 -4.16792,2.68648 c -5.82249,3.75295 -8.79967,7.20009 -11.84929,13.71977 l -2.63113,5.625 -0.26417,66.79688 -0.26418,66.79687 38.4971,0 38.4971,0 -0.26418,-66.79687 z m -69.17042,-12.42188 0,-37.96875 3.28125,0 3.28125,0 0,37.96875 0,37.96875 -3.28125,0 -3.28125,0 0,-37.96875 z m 8.4375,-6.09375 0,-44.0625 3.28125,0 3.28125,0 0,44.0625 0,44.0625 -3.28125,0 -3.28125,0 0,-44.0625 z m 40.3125,-90.2664 0,-12.4539 -4.92188,-4.84758 c -5.63618,-5.55111 -10.75037,-8.06921 -14.53914,-7.15872 -4.91317,1.1807 -9.28718,3.99368 -12.7155,8.17749 l -3.44848,4.20842 0,12.26409 0,12.2641 17.8125,0 17.8125,0 0,-12.4539 z"
+       id="path4185"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 0 - 0
static/alarm_active.svg → static/alarm_green.svg


File diff suppressed because it is too large
+ 58 - 0
static/alarm_red.svg


+ 0 - 0
static/Bit_green.svg → static/commbit_green.svg


+ 0 - 0
static/Bit_inactive.svg → static/commbit_inactive.svg


+ 0 - 0
static/Bit_red.svg → static/commbit_red.svg


+ 0 - 0
static/ventil_active.png → static/valve_active.png


+ 0 - 0
static/ventil_green.png → static/valve_green.png


+ 127 - 0
static/valve_green.svg

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="18.372665mm"
+   height="17.102667mm"
+   viewBox="0 0 65.099996 60.6"
+   id="svg4147"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="valve_green.svg">
+  <defs
+     id="defs4149" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="-1028.1643"
+     inkscape:cy="418.8714"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata4152">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-738.8786,-890.63361)">
+    <image
+       y="890.63361"
+       x="738.8786"
+       id="image4703"
+       xlink:href="data:image/png;base64,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
+zHPyJC9uAAAAAElFTkSuQmCC
+"
+       preserveAspectRatio="none"
+       height="60.599998"
+       width="65.099998" />
+  </g>
+</svg>

+ 0 - 0
static/ventil_inactive.png → static/valve_inactive.png


+ 136 - 0
static/valve_inactive.svg

@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="18.372665mm"
+   height="17.102667mm"
+   viewBox="0 0 65.099996 60.6"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="valve_inactive.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="-1148.1643"
+     inkscape:cy="436.01428"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     showborder="false"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-858.8786,-907.77649)">
+    <image
+       y="907.77649"
+       x="858.8786"
+       id="image4144"
+       xlink:href="data:image/png;base64,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
+AAMAeXh0DLlmEZgAAAAASUVORK5CYII=
+"
+       preserveAspectRatio="none"
+       height="60.599998"
+       width="65.099998" />
+  </g>
+</svg>

+ 0 - 0
static/ventil_red.png → static/valve_red.png


+ 127 - 0
static/valve_red.svg

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="18.372665mm"
+   height="17.102667mm"
+   viewBox="0 0 65.099996 60.6"
+   id="svg4706"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="valve_red.svg">
+  <defs
+     id="defs4708" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="-1093.8785"
+     inkscape:cy="390.29999"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1680"
+     inkscape:window-height="975"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata4711">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-804.59283,-862.06219)">
+    <image
+       y="862.06219"
+       x="804.59283"
+       id="image5262"
+       xlink:href="data:image/png;base64,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
+fwEGAOR/zHPmdTNzAAAAAElFTkSuQmCC
+"
+       preserveAspectRatio="none"
+       height="60.599998"
+       width="65.099998" />
+  </g>
+</svg>

+ 110 - 37
status.html

@@ -105,8 +105,8 @@ data-type="{{ data['style'][key]['type'] }}" id="{{ key }}">
 {% else %}
 {% end %}
 
-
-{% if data['style'][key]['type'] == "valve" %}
+{% if data['style'][key]['type'] == "icon" %}
+{% if data['style'][key]['icon'] == "valve" %}
 {% if "ref" in data['style'][key] %}
 <div tooltip="{{ data['style'][key]['ref'] }}"
 {% else %}
@@ -121,18 +121,18 @@ onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data
 {% else %}
 {% end %}
 {% if "ref" in data['style'][key] %}
-data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='databox' id="{{ key }}">
-<img width='100%' height='100%' src='{{ static_url("ventil_inactive.png") }}'></img>
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
+<img width='100%' height='100%' src='{{ static_url("valve_inactive.png") }}'></img>
 </div>
 {% else %}
-data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='databox' id="{{ key }}">
-<img width='100%' height='100%' src='{{ static_url("ventil_inactive.png") }}'></img>
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
+<img width='100%' height='100%' src='{{ static_url("valve_inactive.png") }}'></img>
 {% end %}
 
 {% else %}
 {% end %}
 
-{% if data['style'][key]['type'] == "commbit" %}
+{% if data['style'][key]['icon'] == "commbit" %}
 {% if "ref" in data['style'][key] %}
 <div tooltip="{{ data['style'][key]['ref'] }}"
 {% else %}
@@ -147,19 +147,19 @@ onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data
 {% else %}
 {% end %}
 {% if "ref" in data['style'][key] %}
-data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='databox' id="{{ key }}">
-<img width='100%' height='100%' src='{{ static_url("Bit_inactive.svg") }}'></img>
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
+<img width='100%' height='100%' src='{{ static_url("commbit_inactive.svg") }}'></img>
 </div>
 {% else %}
-data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='databox' id="{{ key }}">
-<img width='100%' height='100%' src='{{ static_url("Bit_inactive.svg") }}'></img>
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
+<img width='100%' height='100%' src='{{ static_url("commbit_inactive.svg") }}'></img>
 </div>
 {% end %}
 
 {% else %}
 {% end %}
 
-{% if data['style'][key]['type'] == "alarm" %}
+{% if data['style'][key]['icon'] == "alarm" %}
 {% if "ref" in data['style'][key] %}
 <div tooltip="{{ data['style'][key]['ref'] }}"
 {% else %}
@@ -174,11 +174,11 @@ onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data
 {% else %}
 {% end %}
 {% if "ref" in data['style'][key] %}
-data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='databox' id="{{ key }}">
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
 <img width='100%' height='100%' src='{{ static_url("alarm_inactive.svg") }}'></img>
 </div>
 {% else %}
-data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['off'] }}" data-on="{{ data['style'][key]['on'] }}" class='databox' id="{{ key }}">
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
 <img width='100%' height='100%' src='{{ static_url("alarm_inactive.svg") }}'></img>
 </div>
 {% end %}
@@ -186,7 +186,34 @@ data-type="{{ data['style'][key]['type'] }}" data-off="{{ data['style'][key]['of
 {% else %}
 {% end %}
 
+{% if data['style'][key]['icon'] == "tmp" %}
+{% if "ref" in data['style'][key] %}
+<div tooltip="{{ data['style'][key]['ref'] }}"
+{% else %}
+<div tooltip="{{ key }}"
+{% end %}
+style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;'
+{% if data['style'][key]['linkhtml'] == 'true' %}
+{% if "server" in data %}
+onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
+{% else %}
+{% end %}
+{% else %}
+{% end %}
+{% if "ref" in data['style'][key] %}
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
+<img width='100%' height='100%' src='{{ static_url("TMP_inactive.svg") }}'></img>
+</div>
+{% else %}
+data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
+<img width='100%' height='100%' src='{{ static_url("TMP_inactive.svg") }}'></img>
+</div>
+{% end %}
 
+{% else %}
+{% end %}
+{% else %}
+{% end %}
 
 {% if data['style'][key]['type'] == "integer-to-string" %}
 <div tooltip="{{ key }}" style='position: absolute; top: {{
@@ -311,25 +338,48 @@ function myTimer() {
 		    	$(".varval", "#" + key).css("color", set_color);
 		    	$(".unit_title", "#" + key).css("color", set_color);
                     
-		    } else if (data_type == "ventil") {
+		    } else if (data_type == "icon") {
                         //console.log("ventil");
                         var on_attr = $("#" + key).attr('data-on');
                         var off_attr = $("#" + key).attr('data-off');
- 			if (parseFloat(response[key]) == parseFloat(on_attr)) {
- 			    $("img", "#" + key).attr("src", "{{ static_url('ventil_green.png') }}");
-      			}
- 			if (parseFloat(response[key]) == parseFloat(off_attr)) {
- 			    $("img", "#" + key).attr("src", "{{ static_url('ventil_red.png') }}");
-      			}
+			var on_condition = $("#" + key).attr('data-onexpression');
+			var off_condition = $("#" + key).attr('data-offexpression');
+                        if (on_condition == 'onequal'){
+		            if (parseFloat(response[key]) == parseFloat(on_attr)) {
+                                $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
+                            }
+                        } else if (on_condition == 'onsmaller'){	 
+ 			    if (parseFloat(response[key]) < parseFloat(on_attr)) {
+ 			        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
+                            }
+      			} else if (on_condition == 'ongreater'){
+ 			    if (parseFloat(response[key]) > parseFloat(on_attr)) {
+ 			        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
+      			    }
+                        }
+                        if (off_condition == 'offequal'){
+                            if (parseFloat(response[key]) == parseFloat(off_attr)) {
+                                $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
+                            }
+                        } else if (off_condition == 'offsmaller'){
+                            if (parseFloat(response[key]) < parseFloat(off_attr)) {
+                                $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
+                            }
+                        } else if (off_condition == 'offgreater'){
+                            if (parseFloat(response[key]) > parseFloat(off_attr)) {
+                                $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
+                            }
+                        }
+			/*
                     } else if (data_type == "commbit") {
                         //console.log("commbit");
                         var on_attr = $("#" + key).attr('data-on');
                         var off_attr = $("#" + key).attr('data-off');
                         if (parseFloat(response[key]) == parseFloat(on_attr)) {
-                            $("img", "#" + key).attr("src", "{{ static_url('Bit_green.svg') }}");
+                            $("img", "#" + key).attr("src", "{{ static_url('commbit_green.svg') }}");
                         }
                         if (parseFloat(response[key]) == parseFloat(off_attr)) {
-                            $("img", "#" + key).attr("src", "{{ static_url('Bit_red.svg') }}");
+                            $("img", "#" + key).attr("src", "{{ static_url('commbit_red.svg') }}");
                         }
                     } else if (data_type == "alarm") {
                         //console.log("alarm");
@@ -340,7 +390,7 @@ function myTimer() {
                         }
                         if (parseFloat(response[key]) == parseFloat(off_attr)) {
                             $("img", "#" + key).attr("src", "{{ static_url('alarm_inactive.svg') }}");
-                        }
+                        }*/
 		    } else if (data_type == "integer-to-string") {
                         //console.log("integer-to-string");
                         var dict_attr = JSON.parse($("#" + key).attr('data-dict'));
@@ -369,7 +419,7 @@ function myTimer() {
 		ref.pop();
 		ref = ref.join("_");
 		//ref = ref[1];
-		console.log(ref);
+		console.log(ref, key);
                 data_type = $("#" + key).attr('data-type');
                 if($("#" + key).length > 0) {
                     if (data_type == "data") {
@@ -413,23 +463,46 @@ function myTimer() {
 		    	        $(".varval", "#" + key).css("color", set_color);
 		    	        $(".unit_title", "#" + key).css("color", set_color);
                     
-		            } else if (data_type == "ventil") {
-                        var on_attr = $("#" + key).attr('data-on');
-                        var off_attr = $("#" + key).attr('data-off');
- 			            if (parseFloat(response[ref]) == parseFloat(on_attr)) {
- 			                $("img", "#" + key).attr("src", "{{ static_url('ventil_green.png') }}");
-      			        }
- 			            if (parseFloat(response[ref]) == parseFloat(off_attr)) {
- 			                $("img", "#" + key).attr("src", "{{ static_url('ventil_red.png') }}");
-      			        }
+		            } else if (data_type == "icon") {
+                                var on_attr = $("#" + key).attr('data-on');
+                                var off_attr = $("#" + key).attr('data-off');
+                                var on_condition = $("#" + key).attr('data-onexpression');
+                                var off_condition = $("#" + key).attr('data-offexpression');
+                                if (on_condition == 'onequal'){
+                                    if (parseFloat(response[ref]) == parseFloat(on_attr)) {
+                                        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
+                                    }
+                                } else if (on_condition == 'onsmaller'){
+                                    if (parseFloat(response[ref]) < parseFloat(on_attr)) {
+                                        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
+                                    }
+                                } else if (on_condition == 'ongreater'){
+                                    if (parseFloat(response[ref]) > parseFloat(on_attr)) {
+                                        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
+                                    }
+                                }
+                                if (off_condition == 'offequal'){
+                                    if (parseFloat(response[ref]) == parseFloat(off_attr)) {
+                                        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
+                                    }
+                                } else if (off_condition == 'offsmaller'){
+                                    if (parseFloat(response[ref]) < parseFloat(off_attr)) {
+                                        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
+                                    }
+                                } else if (off_condition == 'offgreater'){
+                                    if (parseFloat(response[ref]) > parseFloat(off_attr)) {
+                                        $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
+                                    }
+                                }
+                            /*
                             } else if (data_type == "commbit") {
                         var on_attr = $("#" + key).attr('data-on');
                         var off_attr = $("#" + key).attr('data-off');
                                     if (parseFloat(response[ref]) == parseFloat(on_attr)) {
-                                        $("img", "#" + key).attr("src", "{{ static_url('Bit_green.svg') }}");
+                                        $("img", "#" + key).attr("src", "{{ static_url('commbit_green.svg') }}");
                                 }
                                     if (parseFloat(response[ref]) == parseFloat(off_attr)) {
-                                        $("img", "#" + key).attr("src", "{{ static_url('Bit_red.svg') }}");
+                                        $("img", "#" + key).attr("src", "{{ static_url('commbit_red.svg') }}");
                                 }
                             } else if (data_type == "alarm") {
                         var on_attr = $("#" + key).attr('data-on');
@@ -439,7 +512,7 @@ function myTimer() {
                                 }
                                     if (parseFloat(response[ref]) == parseFloat(off_attr)) {
                                         $("img", "#" + key).attr("src", "{{ static_url('alarm_inactive.svg') }}");
-                                }
+                                }*/
 		            } else if (data_type == "integer-to-string") {
                         var dict_attr = JSON.parse($("#" + key).attr('data-dict'));
                         var dict_cond;

Some files were not shown because too many files changed in this diff