[patch] 01_FHEMWEB.pm Dateilisten gplot und styles per Attribut ausblenden

Begonnen von betateilchen, 28 April 2014, 00:18:24

Vorheriges Thema - Nächstes Thema

justme1968

aber nicht die gleichen :)

eher etwas wie
attr <...> framesToShow .*sh|[0-9][0-9].*Util.*pm|.*cfg|.*holiday|.*layout gplot css|svg:hidden

also ein attribut das alle frames in der reihenfolge auflistet die gezeigt werden sollen und dahinter angibt ob aufgeklappt oder zugeklappt.

man könnte damit sogar die zuordnung von file extension zum frame frei konfigurierbar machen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

DANN möchte ich aber auch gleich Frames selbst beliebig definieren können!

Einen Frame für die RSS Layout Dateien...
Und einen Frame für die holiday Dateien...
Und einen Frame für die eigenen *Utils.pm ...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

strauch

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

betateilchen

und ich wollte eigentlich nur zwei einfache Schalter haben  :P
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

ja. das war die idee. das attribut wird an den leerzeichen gesplittet und die teile sind jeweils die regex der extentions die in einen rahmen kommen. dahinter optional jeweils ob der default aufgeklappt oder zugeklappt ist.


die eine zeile java script brauchst du um den klick auszuwerten und dann auf und zu zu klappen. das ein oder ausgeblendet anzeigen selber geht per css
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

und ich hab statt dessen nur einen schalter vorgeschlagen. zugegeben etwas komplizierter aber er kann auch mehr :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

ich wollte einen Schalter, den auch meine Oma bedienen könnte. Du hast stattdessen ein Codeschloss mit 128 Stellen Eingabe vorgeschlagen...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

wenn du auf das konfigurieren der anzahl und des inhaltes der rahmen verzichtest kann man das schloss auf zwei stellen beschränken und deine oma sollte auch wieder damit klar kommen.

du könntest sicher auch das komplizierte bedienen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

mit der folgenden kleinen änderung in FW_displayFileList ist die überschrift über jede liste anklickbar und klappt die zugehörige liste ein und aus.

--- /Users/andre/fhem-code/fhem/FHEM/01_FHEMWEB.pm 2014-04-28 13:33:07.000000000 +0200
+++ 01_FHEMWEB.pm 2014-04-29 15:12:45.000000000 +0200
@@ -1512,8 +1512,11 @@
   my ($heading,@files)= @_;
   my $hid = lc($heading);
   $hid =~ s/[^A-Za-z]/_/g;
-  FW_pO "<div class=\"fileList $hid\">$heading</div>";
-  FW_pO "<table class=\"block fileList\">";
+  my $pgm = "Javascript:" .
+             "s=document.getElementById('$hid').style;".
+             "s.display = s.display=='none' ? 'block' : 'none';";
+  FW_pO "<a class=\"fileList $hid\" onClick=\"$pgm\">$heading</a>";
+  FW_pO "<table id=\"$hid\" class=\"block fileList\">";
   my $cfgDB = "";
   my $row = 0;
   foreach my $f (@files) {


dein initialen zustand (aufgeklappt, zugeklappt, nicht vorhanden) für jede liste könnte man dann könnte man mit einem einzigen attribut abdecken: attr <xxx> fileLists config own:hidden gplot:hidden

-> config aufgeklappt, own files und gplot zugeklappt, styles nicht vorhanden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

marvin78


betateilchen

Die letzte Lösung merkt sich aber das aufgeklappt/zugeklappt nicht. Wenn man mehrere Files hintereinander bearbeiten will ist das nicht zu gebrauchen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marvin78

Da du es doch ohnehin immer verstecken möchtest wäre das doch über das Attribut für dich nicht viel anders als deine Lösung. Und wenn man dann doch mal die CSS-Dateien ändern möchte, sind sie schnell zu sehen.

justme1968

anbei ein patch der das wie oben vorgeschlagen über ein attribut editFileLists konfigurierbar macht.

wenn interesse besteht würde ich das heute abend noch erweitern so das es auch möglich ist die liste der extentions zu konfigurieren. das würde mit dem gleichen attribut und einer etwas erweiterten syntax gehen. also 2 und 128 stellen mode und die mischung aus beidem.

für das merken des ein- und ausgeklappt zustandes habe ich eine idee. kann ich aber auch erst heute abend testen.

der patch kann jetzt schon drei dinge:

- attribut nicht gesetzt -> alles wie bisher
- attribut nur mit einer mischung aus config, own, gplot und styles gesetzt -> reihenfolge der listen konfigurierbar
- zusätzlich jeweils mit :hidden modifier -> default sichtbarkeit
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: justme1968 am 29 April 2014, 15:39:21
- attribut nur mit einer mischung aus config,

config bitte aussen vor lassen, das wird jetzt schon über configDBUsed() gesteuert und es würde verwirren, wenn es im Attribut als sichtbar konfiguriert wird und trotzdem nicht erscheint. Es macht keinen Sinn, eine fhem.cfg anzuzeigen, wenn mit configDB gearbeitet wird, deshalb wird dieser Bereich jetzt schon automatisch ausgeblendet.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

@Rudi: ich hatte ursprünglich eine völlig simple Lösung vorgeschlagen. Pragmatisch, funktional und für jedermann in der Anwendung zu verstehen. Nur zur Erinnerung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!