- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
WebClient5 Datensatz anlegen und das Verhalten danach
Hallo,
fรผr eine eigenes Seitentemplate habe ich fรผr den Webclient einen fsbutton eingebaut, mit dem ich einen Datensatz in den Pressemitteilungen (Demoprojekt) anlegen kann.
<span$CMS_VALUE(fsbutton(editorName:"pt_createPr",parameter:{"content2": "pressreleases"}))$>/span>
Nachdem ich im Dialog auf Speichern klicke, wird allerdings die Vorschauseite der Pressemitteilungen angezeit. D.h. es gibt einen redirect von meiner eigenen Seite zur Seite mit der neu angelegten Pressemitteilung.
Kann man dieses Verhalten dahingehend รคndern, dass nach der Speicherung des neuen Datensatzes der WebClient auf der Seite bleibt, wo sich auch der fsbutton befindet?
Viele Grรผรe,
Sebastian
- Labels:
-
Developers
- Tags:
- fsbutton
- webclient5
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
Wenn Du als zweiten Parameter der .perform()-Methode eine Liste ALLER Sprachen รผbergibst sollte es so funktionieren wie gewรผnscht. In Deinem aktuellen Code รผbergibst Du wie es scheint nur eine Liste mit EINER Sprache - dadurch steht auch nur diese im Formular zur Verfรผgung.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
wie sieht denn Dein Skript aus? Ich habe deinen Anwendungsfall mit diesem Skript nachgebaut und hier wird ein Datensatz ohne anschlieรenden redirect erzeugt.
Viele Grรผรe,
Renรฉ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Rene,
ich nutze an der Stelle kein eigenes Script, sondern eine der vorhandenen Klick-Handler Klassen (NewContent)
<FS_BUTTON
name="pt_createPr"
hidden="yes"
icon="fs:new"
onClick="class:NewContent"
style="firstspirit"
useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Create news entry"/>
<LANGINFO lang="DE" label="Meldung anlegen"/>
</LANGINFOS>
</FS_BUTTON>
D.h. ich mรผsste an dieser Stelle eine eigene Hanlder-Klasse implementieren?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
die Klasse NewContent ist so implementiert, dass ein redirect stattfindet wenn ein neuer Datensatz angelegt wird. Als Alternative bleibt dir demnach ein eigenes Skript bzw. eine eigene Klasse zu schreiben ohne redirect.
Grรผรe,
Renรฉ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
ich bin inzwischen mal dazu gekommen eine eigene Handler-Klasse zu implementieren, die genau meine Wรผnsche erfรผllt.
Es gibt allerdings noch ein kleines Problem beim Anzeigen des Formulars. Dazu erst einmal mein FS_BUTTON
<FS_BUTTON
name="pt_createNewsEntry"
hidden="yes"
icon="fs:new"
onClick="class:Content2ToListAppender"
style="firstspirit"
useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Create news entry and append to list"/>
<LANGINFO lang="DE" label="Meldung anlegen und hinzufรผgen"/>
</LANGINFOS>
<PARAMS>
<PARAM name="content2">pressreleases</PARAM>
<PARAM name="appendToList">db_news</PARAM>
</PARAMS>
</FS_BUTTON>
Der button รถffnet das passende Formular zum รผbergebenen content2-Objekt (hier 'pressreleases'). Beim Speichern wird der neu angelegte Datensatz auch an die FS_LIST gehรคngt, die im Parameter appendToList รผbergeben wurde (hier 'db_news').
Nun zu meiner Frage. Das Formular zeige ich momentan so an, indem ich eine ShowFormDialogOperation nutze und das Formular รผbergebe tableTemplate.getGomSource().
...
// get the Content2 item which has been provided via FS_BUTTON parameter
Content2 destinationContent2 = (Content2) contentStoreRoot.getStoreElement(destinationContent2Uid, Content2.UID_TYPE);
TableTemplate tableTemplate = destinationContent2.getTemplate();
//context.logInfo(language.toString());
String formString = tableTemplate.getGomSource();
OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);
ShowFormDialogOperation operation = operationAgent.getOperation(ShowFormDialogOperation.TYPE);
operation.setTitle("News anlegen und der Liste hinzufรผgen");
operation.setOkText("Speichern und schlieรen");
Form form = context.requireSpecialist(FormsAgent.TYPE).getForm(formString);
FormData formData = null;
try {
formData = operation.perform(form, Arrays.asList(language));
} catch (ShowFormDialogOperation.InvalidRulesetDefinition invalidRulesetDefinition) {
invalidRulesetDefinition.printStackTrace();
}
...
Wenn sich das Formular รถffnet fehlen allerdings die Sprachumschalter. Geht das irgendwie noch besser? Also gibt es eine Mรถglichkeit das Formular so anzuzeigen, dass auch die Sprachumschalter erscheinen also so, als ob man die Klasse NewContentExecutable nutzt?
Gruร,
Sebastian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
Wenn Du als zweiten Parameter der .perform()-Methode eine Liste ALLER Sprachen รผbergibst sollte es so funktionieren wie gewรผnscht. In Deinem aktuellen Code รผbergibst Du wie es scheint nur eine Liste mit EINER Sprache - dadurch steht auch nur diese im Formular zur Verfรผgung.
Viele Grรผรe
Michael

