Proposal: Default "room" in motd

Begonnen von Happy Fhem User, 28 Januar 2014, 20:43:29

Vorheriges Thema - Nächstes Thema

Happy Fhem User

Ich hab da einen Vorschlag für die Erweiterung vom Modul "01_FHEMWEB.pm".

Könnte man nicht die Definition des Attributs "motd" dahingehend erweitern, dass es den "Default" Raum enthalten darf, der angezeigt wird beim Betreten der FHEM Oberfläche?

Ich teste es hier gerade seit 2 Wochen und finde es sehr angenehm und deutlich besser als <script>window.location.href='/fhem?room=Zentrale';</scipt>

und funktioniert über meine 4 FHEMWEB-Instanzen (die Javascript Lösung leider nicht).

Code-technisch bedarf es nur 4 Codezeilen (falls man als magic Tag z.b. "room=<x>;" nutzt:


       AttrVal("global", "motd", "none") ne "none") {
         my $motd = AttrVal("global","motd",undef);
+        if (($FW_room)=($motd=~/^room=(.*);/)) {
+          FW_showRoom();
+        } else {
           $motd =~ s/\n/<br>/g;
           FW_pO "<div id=\"content\">$motd</div>";
+       }
      }


Dumme Idee?

rudolfkoenig

Ja, aus zwei Gruenden:
1. es ist nicht intuitiv
2. zerstoert die urspruengliche Funktionalitaet (eine Meldung anzuzeigen)

Warum will man sowas haben, wo doch so hervorragende Bookmark-Moeglichkeiten gibt?


Happy Fhem User

Zitat
Warum will man sowas haben, wo doch so hervorragende Bookmark-Moeglichkeiten gibt?

Weil verschiedene Kommandos immer wieder auf diese Seite führen (z.B. weblink-Kommandos, Save config).


Zitat
2. zerstoert die urspruengliche Funktionalitaet (eine Meldung anzuzeigen)

Ich muss zugestehen, für diese Funktionalität fehlt mir noch der Anwendungsfall. Um eine statische Meldung auf einer Seite zu platzieren, gibt es andere Kommandos. Die erscheinen dann auch dort, wo ich es möchte.

Die Meldung "motd" erscheint meiner intuitiven Wahrnehmung nach zufälligen Aktionen, z.B. einen Weblink anklicken.

Happy Fhem User

Gibt es eine Chance auf Übernahme wenn es als Attribut an einer FHEMWEB-Instanz realsiert wird?

rudolfkoenig


Happy Fhem User

Hier die Implementierung auf dem aktuellen 01_FHEMWEB mittels eines neuen Attributs "defaultRoom" an der jeweiligen FHEMWEB-Instanz.

Das Attribut "defaultRoom" hat bei dieser Implementierung Vorrang vor dem Attribut "motd".


--- BK/01_FHEMWEB_original.pm 2014-02-16 11:38:57.682960417 +0100
+++ 01_FHEMWEB.pm 2014-02-16 11:53:06.379684982 +0100
@@ -125,6 +125,7 @@
     basicAuth
     basicAuthMsg
     column
+    defaultRoom
     endPlotNow:1,0
     endPlotToday:1,0
     fwcompress:0,1
@@ -657,6 +658,12 @@
   elsif($FW_room)              { FW_showRoom();           }
   elsif(!$FW_cmdret &&
         !$FW_contentFunc &&
+        AttrVal($FW_wname, "defaultRoom", "") ne '') {
+    $FW_room = AttrVal($FW_wname, "defaultRoom", "");
+    FW_showRoom();
+  }
+  elsif(!$FW_cmdret &&
+        !$FW_contentFunc &&
         AttrVal("global", "motd", "none") ne "none") {
     my $motd = AttrVal("global","motd",undef);
     $motd =~ s/\n/<br>/g;
@@ -2756,6 +2763,14 @@
         attr WEB sortRooms DG OG EG Keller
         </li>
         <br>
+       
+    <a name="defaultRoom"></a>
+    <li>defaultRoom<br>
+        show the specified room if no room selected, f.e. on execution of some commands.
+        if set hides the <a href="#motd">motd</a>. Example:<br>
+        attr WEB defaultRoom Zentrale
+        </li>
+        <br>

     <a name="sortby"></a>
     <li>sortby<br>


rudolfkoenig

Akzeptiert, wenn sourceforge nicht mehr zickt, dann wird es eingecheckt.

Simon74

Funktioniert.
Jedoch nicht ein defaultroom="Floorplan/Tablet1"  ?

Wäre für die Instanz "Webtablet" hilfreich.  :)