Aller au contenu principal

WebClient5 Datensatz anlegen und das Verhalten danach

Commentaires

5 commentaires

  • Zendesk API User
    Author: rednoss - 1/9/2014 9:27

    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é

    0
  • Zendesk API User
    Author: Sebastian1 - 1/9/2014 9:36

    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?

    0
  • Zendesk API User
    Author: rednoss - 1/9/2014 10:09

    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é

    0
  • Zendesk API User
    Author: Sebastian1 - 1/24/2014 16:17

    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

    0
  • Zendesk API User
    Author: mbergmann - 1/24/2014 18:36

    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

    0

Vous devez vous connecter pour laisser un commentaire.