mstaender
I'm new here

Freigabeprozess: Wie kann ich dort ein eigenes Panel anzeigen?

Jump to solution

Hi,

in den letzten Tagen haben sich einige Fragen aufgetan die jetzt alle hier landen, nicht wundern Smiley Happy

Ich habe einen externen Dienst der mir Daten generiert die ich im Freigabeprozess darstellen muss. Ein Freigebender muss also bestätigen, dass die Daten so OK sind. Gibt es Beispiele wie ich eigenen Code (SWING?) in das UI bekomme oder wie finde ich hier einen Ansatz? Bisher bin ich noch etwas ratlos leider Smiley Sad

MfG Marcus

Labels (1)
Tags (2)
1 Solution

Accepted Solutions
nagel
I'm new here

Re: Freigabeprozess: Wie kann ich dort ein eigenes Panel anzeigen?

Jump to solution

Hallo Marcus,

hier nun ein kleines Beispiel wie du mit den Klassen und den FirstSpirit Eingabekomponenten so etwas ansastzweise lösen kannst:

final OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);

final ShowFormDialogOperation showFormDialogOperation =   operationAgent.getOperation(ShowFormDialogOperation.TYPE);

showFormDialogOperation.setMultiLanguage(false);

final FormsAgent formsAgent = context.requireSpecialist(FormsAgent.TYPE);

String gomForm = getGomForm();

Form form = formsAgent.getForm(gomForm);

showFormDialogOperation.setTitle(title);

FormData newFormData = form.createFormData();

fillFormData(newFormData);

showFormDialogOperation.setFormData(newFormData);

showFormDialogOperation.setRuleset(getRuleset());

LanguageAgent languageAgent = context.requireSpecialist(LanguageAgent.TYPE);

Language masterLanguage = languageAgent.getMasterLanguage();

FormData formDataResult = showFormDialogOperation.perform(form, Arrays.asList(languageAgent.getMasterLanguage()));

Dein gomForm könnte dann zum Beispiel wie folgt aussehen:

<CMS_MODULE>

  <FS_CATALOG name="wf_images" height="4" useLanguages="no" viewMode="symbols">

    <LANGINFOS>

      <LANGINFO lang="*" label="Images to check"/>

    </LANGINFOS>

    <TEMPLATES type="section">

      <TEMPLATE uid="wf_image"/>

    </TEMPLATES>

  </FS_CATALOG>

</CMS_MODULE>

Die dazu gehörigen Regeln ( getRuleset() 😞

<RULES>

          <RULE when="ONLOCK">

                    <WITH>

                              <FALSE/>

                    </WITH>

                    <DO>

                              <PROPERTY name="NEW" source="wf_images"/>

                              <PROPERTY name="EDIT" source="wf_images"/>

                              <PROPERTY name="REMOVE" source="wf_images"/>

                    </DO>

          </RULE>

</RULES>

Und das SectionTemplate:

<CMS_MODULE>

  <FS_REFERENCE name="wf_image" hFill="yes" imagePreview="yes" upload="no" useLanguages="no">

    <FILTER>

      <HIDE type="all"/>

      <ALLOW type="media"/>

    </FILTER>

    <LANGINFOS>

      <LANGINFO lang="*" label="Image"/>

    </LANGINFOS>

    <PROJECTS>

      <LOCAL name=".">

        <SOURCES>

          <FOLDER name="root" store="MEDIASTORE"/>

        </SOURCES>

      </LOCAL>

    </PROJECTS>

  </FS_REFERENCE>

</CMS_MODULE>

Um das FormData zu befüllen kannst du nun die normalen Methoden eines FormData und der FormFields benutzen.

Da musst natürlich die Bilder erst mal als Media im MediaStore abgelegt haben. Wenn die Medien durch den Redakteur abgelehnt werden musst du sie nur noch im Anschluss entfernen.

Viele Grüße

Benjamin

View solution in original post

4 Replies
nagel
I'm new here

Re: Freigabeprozess: Wie kann ich dort ein eigenes Panel anzeigen?

Jump to solution

Hallo Marcus,

ich bin mir nicht 100%ig sicher ob ich deine Frage richtig verstanden habe.

Du holst dir in einem Workflow Daten aus einer externen Schnittstelle und möchtest diese Daten dann durch einen Redakteur noch einmal sichten lassen bevor du sie weiterverarbeitest, oder?

Wenn das der Fall sein sollte:

Jeder Workflow hat ein eigenes Formular in dem der Redakteur Daten hinterlegen kann. Dieses Formular könntest du benutzen um die Daten aus der externen Schnittstelle anzeige zu lassen.

Alterantiv kannst du mit dem OperationAgent und darüber mit dem ShowFormDialogOperation und dem FormsAgent ein Formular erstellen und befüllen das du dann anzeigen lassen kannst. Darüber könntest du optionalerweise dem Redakteur auch die Möglichkeit geben die Daten anzupassen.

Beide Methoden hätten den Vorteil, dass sie nicht nur im SiteArchitect funktionieren würden, sondern auch im ContentCreator. Außerdem würde es keinen Stillbruch geben, da du weiterhin die FirstSpirit Eingabekomponenten benutzt.

Viele Grüße

Benjamin Nagel

0 Kudos
mstaender
I'm new here

Re: Freigabeprozess: Wie kann ich dort ein eigenes Panel anzeigen?

Jump to solution

Hi Benjamin,

danke für die ANtwort. Du hast das korrekt verstanden. Im Workflow werden Daten von einem externen Service abgeholt (in diesem Fall 30 Bilder) welche die kontrollierende Instanz sichten muss. Istd er Inhalt und diese Bilder alle OK kann es weiter gehen.

Workflows kamen in der DTA leider nicht drau (außer, dass es sie gibt). Wo finde ich denn am besten ein Beispiel, wie man das Formular generiert und bestenfalls sogar, wie ich drauf zugreife? ich glaube aber es gibt keine sinnvolle Möglichkeit 30 Bilder in einem FS Formular halbwegs sinnvoll anzuzeigen oder?

MfG Marcus

0 Kudos
nagel
I'm new here

Re: Freigabeprozess: Wie kann ich dort ein eigenes Panel anzeigen?

Jump to solution

Hallo Marcus,

hier nun ein kleines Beispiel wie du mit den Klassen und den FirstSpirit Eingabekomponenten so etwas ansastzweise lösen kannst:

final OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);

final ShowFormDialogOperation showFormDialogOperation =   operationAgent.getOperation(ShowFormDialogOperation.TYPE);

showFormDialogOperation.setMultiLanguage(false);

final FormsAgent formsAgent = context.requireSpecialist(FormsAgent.TYPE);

String gomForm = getGomForm();

Form form = formsAgent.getForm(gomForm);

showFormDialogOperation.setTitle(title);

FormData newFormData = form.createFormData();

fillFormData(newFormData);

showFormDialogOperation.setFormData(newFormData);

showFormDialogOperation.setRuleset(getRuleset());

LanguageAgent languageAgent = context.requireSpecialist(LanguageAgent.TYPE);

Language masterLanguage = languageAgent.getMasterLanguage();

FormData formDataResult = showFormDialogOperation.perform(form, Arrays.asList(languageAgent.getMasterLanguage()));

Dein gomForm könnte dann zum Beispiel wie folgt aussehen:

<CMS_MODULE>

  <FS_CATALOG name="wf_images" height="4" useLanguages="no" viewMode="symbols">

    <LANGINFOS>

      <LANGINFO lang="*" label="Images to check"/>

    </LANGINFOS>

    <TEMPLATES type="section">

      <TEMPLATE uid="wf_image"/>

    </TEMPLATES>

  </FS_CATALOG>

</CMS_MODULE>

Die dazu gehörigen Regeln ( getRuleset() 😞

<RULES>

          <RULE when="ONLOCK">

                    <WITH>

                              <FALSE/>

                    </WITH>

                    <DO>

                              <PROPERTY name="NEW" source="wf_images"/>

                              <PROPERTY name="EDIT" source="wf_images"/>

                              <PROPERTY name="REMOVE" source="wf_images"/>

                    </DO>

          </RULE>

</RULES>

Und das SectionTemplate:

<CMS_MODULE>

  <FS_REFERENCE name="wf_image" hFill="yes" imagePreview="yes" upload="no" useLanguages="no">

    <FILTER>

      <HIDE type="all"/>

      <ALLOW type="media"/>

    </FILTER>

    <LANGINFOS>

      <LANGINFO lang="*" label="Image"/>

    </LANGINFOS>

    <PROJECTS>

      <LOCAL name=".">

        <SOURCES>

          <FOLDER name="root" store="MEDIASTORE"/>

        </SOURCES>

      </LOCAL>

    </PROJECTS>

  </FS_REFERENCE>

</CMS_MODULE>

Um das FormData zu befüllen kannst du nun die normalen Methoden eines FormData und der FormFields benutzen.

Da musst natürlich die Bilder erst mal als Media im MediaStore abgelegt haben. Wenn die Medien durch den Redakteur abgelehnt werden musst du sie nur noch im Anschluss entfernen.

Viele Grüße

Benjamin

MichaelaReydt
Community Manager
Community Manager

Re: Freigabeprozess: Wie kann ich dort ein eigenes Panel anzeigen?

Jump to solution

Hallo Marcus,

ist dieses Posting noch aktuell? Benötigst du noch weitere Hilfe oder konnte Benjamin dir bereits weiterhelfen? In diesem Fall wäre es super, wenn du seine "richtige Antwort" entsprechend markiest.

Viele Grüße

Michaela

0 Kudos