@Dr.Niels
ich möchte, nachdem ich die Variable ausgewählt habe, die Möglichkeit habe direkt dorthin zu springen.
Uli
@Dr.Niels
ich möchte, nachdem ich die Variable ausgewählt habe, die Möglichkeit habe direkt dorthin zu springen.
Uli
Ach, innerhalb des „Listenelement bearbeiten“-Dialogs? Dort ist keine Dynamik möglich. Offiziell funktioniert da noch nicht mal der OpenObjectButton (der Button übrigens auch nicht), siehe Doku von List. Der Dialog ist auch nicht dafür gedacht, dass dort irgendwelche Logik passiert. Wenn du da etwas eigenes machen möchtest, dann solltest du eher auf das onClick hin ein eigenes Popup öffnen. Dort kannst du dann deine Wünsche auch per Dynamik umsetzen.
Der Info Button ist in der Liste „visible“: false
Im „Listenelement bearbeiten“ funktioniert er. Dort mache ich aber nur folgendes:
„onClick“: „if($ID != 0){print_r(IPS_GetVariable($ID));}“
Uli
Es mag sein, dass es aktuell funktioniert. Aber das ist undefiniertes und nicht vorgesehenes Verhalten. Verlasse dich also nicht darauf, dass das zukünftig auch so bleiben wird.
@Dr.Niels
Hallo Niels, habe jetzt den OpenObject Button ausserhalb der Liste erstell und deine Anweisungen oben befolgt. Vielen Dank für den Tip, das funktioniert als Workaround.
Schönen Feiertag !
Uli
Ich möchte das Thema nochmal aufgreifen.
Ich habe den Fall, das ich eine (readonly)-Liste (im Action-Bereich) eines Moduls habe, das die mit dieser Instanz diverse Objekte auflistet.
Und da wäre es natürlich schick, wenn ich dann betroffene Objekte (Instanzen, Ablaufpläne etc) aufrufen kann.
Natürlich könnte ich statt einer Liste zu nutzen, ein Formular dynamisch erzeugen, das dann alle Objekte auflistet mit einem OpenObjectButtom -Element für jedes Objekt erzeugt … aber so doll wäre das ja nicht.
Gibt es da eine Perspektive oder habt ihr noch eine andere Idee?
Ich weiß nicht 100% was Du machen willst, aber ich bastele auch gerade an einem sehr dynamischen Konfigurationsdialog in Verbindung mit Listen.
Ich habe es jetzt so gelöst das wenn eine Zeile in der Liste selektiert wird (grau) dann sende ich die Auswahl per IPS_RequestAction und machen Update auf „value“ usw. eines Buttons im Formular den man dann wieder drücken kann!
Wenn es das ist - meld dich einfach im Chat!
vielen Dank für den Tip.
Habe ich aufgegriffen, mache das nicht via RequestAction sondern per UpdateFormField. Da UpdateFormField ja keine globale IPs-Funktion ist musste ich dafür eine eigene winzige Wrapper-Funktion erstellen (bisschen tricky, seil es Bestandteile einer von mir global verwendeten Bibliothek ist).
Halt ein bisschen „durchs Knie ins Auge“, aber machbar.
Was mich bei so etwas etwas stört ist die Tatsache, das solche Funktionen dann auch im Script-Editor angeboten werden, eine Unterscheidung zu „echten“ public-Funktionen gibt es ja leider nicht
Freut mich, für welches Modul machst Du es?
zuerst hierfür: https://community.symcon.de/t/modul-symcon-notifications/ aber ist Bestandteile meiner libs/CommStubs/common.php und wird damit bei ein paar anderen meiner Module auch Verwendung finden
Deswegen benutze ich dafür immer IPS_RequestAction mit einer ausgedachten IDENT und Value nach wunsch.
Michael
Dann habe ich den Gedanken vielleicht noch nicht ganz verstanden. RequestAction ist doch dafür da, auf eine Variable eine Aktion auszulösen / einen Wert setzen.
Das hat doch einen Ideng und nur einen Wert, UpdateFormField hat aber ja drei Parameter …
D.h. entweder ist im Wert json-kodiert die drei Angaben (Feld, Parameter, Wert) enthalten
RequestAction(‘UpdateFormField‘, json_encode([‘Feld‘ => …))
oder im Ident das irgendwie systematisch „verschlüssele“
RequestAction(‘UpdateFormField.<Feldname>.<Parameter>‘, <Wert>)
hmm, muss ich mal drüber nachdenken… damit kann man natürlich die pseudo-public-Funktionen verbergen
Sorry, habe oben das IPS_ unterschlagen
Das ist eine Funktion welche an keine Variable gebunden ist und den Ident und Value an die Instanz übergibt.
Michael
ich finde in der Doku nur RequestAction (ohne IPS_)? (RequestAction — IP-Symcon :: Automatisierungssoftware) - schau ich schräg?
Undokumentiert
Nutze ich z.b. um Statusänderung aus dem Thread der MessageSink zu lösen.
Michael
aha!
da werde ich mal morgen mit experimentieren. danke
Danke, schaue ich mir mal an!
Hatte aber in meiner Anleitung IPS_ mit hingeschrieben
so, ich habe es auf IPS_RequestAction umgestellt.
merkwürdig: anders als hier beschrieben, kann ich kein array übergeben, ich muss da ein json_encode machen
Ja, json_encode nutze ich auch!