knowthelist / fhem-tablet-ui

UI builder framework for FHEM
MIT License
148 stars 84 forks source link

Widget Symbol - Warning Badge, Warning Reading #150

Closed fhainz closed 7 years ago

fhainz commented 8 years ago

Hallo setstate!

Ich wollte einem Symbol ein Warning Badge verpassen das nicht im state steht. Nachdem das bisher nicht geht hab ich Symbol Widget soweit erweitert. Meiner erster Gedanke an die Namensgebung war get-warn. Das gibt es aber leider schon für Regex. Also hab ich mich für get-warn-reading entschieden.

Ich hänge das diff (gegen die aktuelle im eval branch) mal unten dran, aber wäre es nicht sinnvoller das ganze im widget_famultibutton zu erledigen und auch gleich pagebutton mit zuziehen? Ich würde ich mich da kommende Woche oder so mal dahinter klemmen. Die if kommt dann weg und eine neue Funktion rein die sich zwischen state und stateWarn entscheidet. Hab mir aber die anderen Buttons noch nicht genau angesehen.

Was meinst du grundsätzlich dazu?

Grüße

diff --git a/js/widget_symbol.js b/js/widget_symbol.js
old mode 100755
new mode 100644
index 6aff0ef..5790bc3
--- a/js/widget_symbol.js
+++ b/js/widget_symbol.js
@@ -20,6 +20,9 @@
             elem.initData('get-on'                  ,'open');
             elem.initData('get-off'                 ,'closed');
             elem.initData('get-warn'                ,-1);
+            elem.initData('get-warn-reading'        ,'');
+            
+            me.addReading(elem,'get-warn-reading'); 
             elem.data('mode', 'signal');
             me.init_attr(elem);
             me.init_ui(elem);
@@ -28,8 +31,12 @@

     function update_cb(elem,state) {
         $('.fa-stack:has(.zero)').removeClass('fa-stack');
-        if (elem.hasClass('warn') || elem.children().filter('#fg').hasClass('warn'))
+        if (elem.hasClass('warn') || elem.children().filter('#fg').hasClass('warn')) {
+           var stateWarn = elem.getReading('get-warn-reading').val;
+           if( stateWarn && stateWarn != "" )
+               state = stateWarn;
             this.showOverlay(elem,getPart(state,elem.data('get-warn')));
+        }
         else
             this.showOverlay(elem,"");
     };
knowthelist commented 7 years ago

data-warn is available now to get the warning fron a reading