Hallo Anja,
ich denke das sollte sich über einen Clientservice lösen lassen. Das wären zwar ein paar kleine Umwege, aber sollte schnell gemacht sein. Ohne Garantie 😉
Idee: Über ein PermanentPlugin einen einfachen Clientservice registrieren, der drei Methoden hat: rememberElement(..), clear() und release().
Der Button im Formular würde dann das Speichern und freigeben nicht selbst machen, sondern das Element (oder auch nur dessen fs_id oder GID, also irgendwas über das man den Datensatz später identifizieren kann) in den ClientService legen. Der Button ist hier nötig, weil du nur über dessen Kontext das Element hast (im Gegensatz zu einem ValueService o.ä.) und da es ja eine Übersichts-Seite ist, kommst du auch z.B. über den WebeditUIAgent.getPreviewElement nicht an den Datensatz ran. Also per Button onClick -> Executable aufrufen, das sich deinen ClientService holt und dort die Infos rein schiebt aber sonst erstmal weiter nichts macht.
Dann bräuchtest Du noch einen Mechanismus, der nach dem Schließen des Formulars die release-Methode des clientservice triggert. Die würde, falls kein gemerktes Element da ist einfach nichts tun. Ansonsten die Freigabe durchführen und dann (wichtig!) das gemerkte Element (bzw. dessen Infos) über die clear()-Methode ebenfalls im ClientService „vergessen“.
So müsstest Du eigentlich auf der Vorschauseite (einfach im Template) immer nur z.B. per WE_API.common.execute(...) das release() des Clientservice aufrufen.
Evtl. müsste man dann noch ein bisschen tricksen (vielleicht über einen ValueService mit einer Rule when="onSave" o.ä.) um den Fall abzufangen dass zwar der Freigegeben-Button geklickt, das Formular dann aber per „Abbrechen“ geschlossen wird.
Viele Grüße
Michael