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
Such mal nach asyncoutput, das könnte so was sein das du suchst.
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
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
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.*")}