Dialogbox in fhemWEB?

Begonnen von Elektrolurch, 30 März 2018, 15:02:44

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo,

gibt es eine Lösung, über eine bestehende Ansicht  (z.B. einen Raum) eine Dialogbox mit einem Text und einem OK (ev. auch einen Cancel) Button zu legen?
Zum Beispiel um zusätzliche Informationen anzuzeigen, ohne dass die ganze Seite neu berechnet und ausgegeben werden muss?

In der Form:

fw_Dialog($$) {
my ($message,$buttons) = @_;
# buttons hat Wert für OK oder OK und Cancel Button

...
return $button;

Rückgabewert wäre dann ob OK oder Cancel gedrückt wurde.

Bei dem Aufruf von get über die Kommandozeile wird ja eine solche Box angezeigt, habe aber noch nicht herausgefunden, wie das funktioniert und ob es da auch eine user - Schnittstelle gibt.

Wenn ich mich recht erinnere, habe ich da auch einen style in der css "errmsg" gesehen...

Elektrolurch
configDB und Windows befreite Zone!

mumpitzstuff

Such mal nach asyncoutput, das könnte so was sein das du suchst.

Ellert

Es gibt eine Dialogbox nur mit ok und Messagetext als Javascript mit dem Namen FW_okDialog.

Die Dialogbox kann über FW_directNotify aufgerufen werden.

https://wiki.fhem.de/wiki/DevelopmentFHEMWEB-API#FW_okDialog

https://wiki.fhem.de/wiki/DevelopmentFHEMWEB-API#FW_directNotify

Elektrolurch

Hallo, danke für den Hinweis. Aber irgendwie mache ich da noch was falsch:
Die Dialogbox erscheint, gibt aber folgendes aus:

fhemweb.js line 1:
SyntaxError: missing ) after argument list

So habe ich den Teil realisiert:

my $text = SCC_GetDetails($d,$reading);
my $room = AttrVal($name . '_Selektor_rg','room','');
Log3($name,1,"$name $rd $val: detail: $text in room $room");
map{
FW_directNotify("FILTER=room=$room", "#FHEMWEB:$_", "FW_okDialog(\'$text\')", "")
}
devspec2array("WEB.*");
]/code]
und das gibt das Log3 aus, "detail" soll in der Dialogbox erscheinen:
[code]
2018.04.02 10:47:40 1: SCC_Hb toggleDetails TV_Programm ZDF_HD_now_title: detail: <br>Familienfilm, D 2016 1/3<br>Mit: Lina Larissa Strahl, Lisa-Marie Koroll, Louis Held, Philipp Laude, Kostja Ullmann, Fabian Buch Regie: Detlev Buck  Der kunterbunte Unterhaltungsspaß der erfolgreichen 'Bibi Blocksberg'-Reihe von Detlev Buck geht in die dritte Runde. in room Keller

Zitat:
Such mal nach asyncoutput, das könnte so was sein das du suchst.

Was ist der Unterschied zwischen "asyncoutput" und dem DirektNotify mit dem Aufruf des JS?
Welche Methode ist zu bevorzugen?

Elektrolurch



configDB und Windows befreite Zone!

Ellert

Es liegt an 'Bibi Blocksberg'.

Du könntest könntest statt einfache Anführungszeichen \' doppelte Anführungszeichen \" zum escapen verwenden,  oder störende Zeichen vorher ersetzen.

Getestet in der Befehlszeile mit
{map{FW_directNotify("#FHEMWEB:$_", "FW_okDialog(\"'Bibi Blocksberg'\")", "")} devspec2array("WEB.*")}