Hauptmenü

[FUIP] Pagebutton

Begonnen von Kummer, 01 Juni 2019, 13:05:55

Vorheriges Thema - Nächstes Thema

Kummer

Hallo Thorsten,

mir kam die Idee ob man in FUIP nicht auch das Pagebutton-Widget von FTUI https://wiki.fhem.de/wiki/FTUI_Widget_Pagebutton nutzen könnte.
Das Problem ist, dass Pagebutton einen DIV-Container auf der Zielseite voraussetzt, den ich aber leider nicht via dem HTML::View setzen kann, da dieses ja erst via JavaScript gerendert wird.
Wäre es möglich unter "Page config" eine Option für Pagebutton einzufügen?
Wenn aktiviert, dann wird quasi der Inhalt des Bodys noch in ein DIV mit der Class page gesteckt <boyd><div class="page" id="[Konfigurierbar]">[REST DES BODYS]</div></body>
Zudem bräuchte auch der HEAD nicht generiert werden.

Gruß
Jan

Thorsten Pferdekaemper

Hi,
ich bin mir nicht so sicher, ob das mit FUIP wirklich so einfach wäre. Was genau willst Du denn damit machen?
Gruß,
   Thorsten
FUIP

Kummer

Hallo,

Mich reizt eigentlich nur der schnellere Seitenaufbau wenn ich durch die einzelnen Pages navigiere.
Meine Menüstruktur auf Basis von Pagebuttons funktioniert auch als HTML::View super.

Gruß
Jan

Thorsten Pferdekaemper

Hi,
d.h. Dir geht es insbesondere um das "prefetch"?
Könntest Du mal Deine FUIP....cfg-Datei hochladen, damit ich mir das mal im Detail anschauen kann?
Gruß,
   Thorsten
FUIP

Kummer

Hallo,

ich hab es nun mal geschafft eine kleine Demo-Umgebung aufzubauen.
Hier die RAW-Definition des FUIP-Devices
defmod ui_pb FUIP
attr ui_pb DbLogExclude .*
attr ui_pb baseHeight 50
attr ui_pb baseWidth 101
attr ui_pb cellMargin 0
attr ui_pb layout gridster
attr ui_pb locked 1
attr ui_pb toastMessages all
attr ui_pb viewportInitialScale 1.0
attr ui_pb viewportUserScalable no

Im Anhang ist die FUIP.cfg.

Damit alles Funktioniert musste ich in der 42_FUIP.pm in der sub renderPage($$$) folgendes am Ende direkt vor dem return einfügen:
if ($currentLocation =~ m/content_.*/) {
$result =
   "<!DOCTYPE html>
<html>
<head>
".'</head>
            <body><div class="page" id="'.$currentLocation.'">'
                .'<div class="gridster"';
$result .= '>
                    <ul>';
# render Cells
$result .= renderCells($hash,$currentLocation,$locked);
$result.= '</ul>
           </div>'.renderCrashedMessage($hash,$locked).'
       </div></body>
       </html>';
}


Nun werden alle FUIP-Pages die mit content_ beginnen ohne HEAD gerendert und ins passende DIV geladen.

Hoffe es hilft zu verstehen was ich genau wollte...

Gruß
Jan

Thorsten Pferdekaemper

Hi,
ich bin gerade an was anderem dran, was ein bisschen dauern kann (leider nicht FUIP), daher bitte ich um ein bisschen Geduld.
Danke&Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

So, jetzt schaue ich mir das mal genauer an.
Bist Du sicher, dass das tatsächlich schneller ist? Zumindest bei mir ist das mit den Pagebuttons "gefühlt" langsamer. Das kann aber auch daher kommen, dass die content-Seite zuerst am unteren Seitenrand angezeigt wird und dann erst nach oben hüpft.
Außerdem funktioniert bei mir nach Deiner Änderung der Änderungsmodus nicht mehr richtig. Die content-Seiten kann ich gar nicht ändern, da die ja nicht mehr richtig gerendert werden.
Dann stimmt auch noch was mit dem resizing nicht. Z.B. ist die Uhr bei content_test3 recht groß, aber als page eingebunden wird sie nur klein angezeigt.
Ich glaube, dass das ganz schön viel Aufwand wäre, das richtig in FUIP einzubauen. Ich sage jetzt nicht, dass ich das niemals machen will, aber ich glaube, dass es da ein besseres Konzept braucht als einfach nur ein <div> drumzubasteln und dem Ding eine id zu geben.
Ich muss da nochmal drüber nachdenken bzw. vielleicht hast Du noch Anmerkungen zu dem, was ich oben geschrieben habe.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
ich habe das ganze mal auf ein "normales" FUIP-Menu umgebaut. Also meiner Meinung nach navigiert man da sogar "flüssiger". Ich glaube auch nicht, dass das mehr Aufwand beim Zusammenklicken ist. (Wenn man View Templates verwendet.)
Kannst Du das mal ausprobieren? Ich habe Dir die cfg in den Anhang hier gepackt.
Gruß,
   Thorsten
FUIP