Anonymous
Not applicable

Verzeichnisauswahl via FS_Button im ContentCreator

Jump to solution

Hallo liebe Community,

wir haben derzeit einen Absatz mit einem FS_Button, den wir nutzen um via Report ein Bild darauf fallen zu lassen, damit dieses dann in FirstSpirit gespeichert wird.

So wie im folgenden Thread empfohlen, haben wir ein Auswahldialog via SelectStoreElementOperation implementiert, damit der Nutzer festlegen, wo das Bild gespeichert werden soll.
Re: Dialog beim Speichern von Medien

Im SiteArchitekten funktioniert das einwandfrei. Der Auswahldialog wird angezeigt, man wählt einen Medienordner und anschließend wird das bild dort abgelegt.

Im ContentCreator ist jedoch das SelectStoreElementOperation-Objekt ein NullPointer.

Folgendermaßen sieht derzeit unsere Implementierung aus:

BaseContext context = (BaseContext) params.get("context");

BrokerAgent brokerAgent = context.requireSpecialist(BrokerAgent.TYPE);

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

SelectStoreElementOperation pOperation = operationAgent.getOperation(SelectStoreElementOperation.TYPE); //pOperation is allways null in CC

pOperation ist null, wenn dieser Code via ContentCreator ausgeführt wird.
Vermutlich ist diese Operation unsupportet in dem Context.
(Context: de.espirit.firstspirit.webedit.server.workflow.WebeditScriptContextImpl)

Kennt jemand diesen Anwendungsfall und kennt eine Lösung für dieses Problem?

Der Kunde sollte unbedingt auch im ContentCreator in der Lage sein, den Speicherort des Bildes frei zu wählen.

Wir brauchen den Dialog daher unbedingt auch im ContentCreator.

Vielen Dank im Voraus

Liebe Grüße

Mark

0 Kudos
1 Solution

Accepted Solutions
pavone
I'm new here

Hallo Mark,

ihr könntet auch versuchen FormsAgent (FirstSpirit Developer-API) und ShowFormDialogOperation (FirstSpirit Developer-API) zu verwenden.

Das Formular könnte z. B. einfach eine FS_REFERENCE enthalten.

Ich hoffe das bringt euch weiter.

Viele Grüße

Tim

View solution in original post

0 Kudos
5 Replies
dluettel
Elite Observer

Hallo Zusammen,

noch als weiteren Hinweis:

FS-Button:

<FS_BUTTON

    name="st_picture_button"

    hFill="yes"

    icon="info"

    noBreak="no"

    onClick="script:bytehall_demo"

    onDrop="script:bytehall_demo"

    style="firstspirit"

    useLanguages="no">

    <DROPTYPES>

      <TYPE value="external"/>

      <MIME type="*/*" classname="java.lang.String"/>

      <MIME type="text/plain" classname="java.io.InputStream"/>

      <MIME type="text/comma-separated-values" classname="java.io.InputStream"/>

    </DROPTYPES>

    <LANGINFOS>

      <LANGINFO lang="*" label="TEXT" description="TEXT"/>

    </LANGINFOS>

    <PARAMS>

      <PARAM name="bytehallId">#field.st_bytehall_id</PARAM>

      <PARAM name="picture">#field.st_picture</PARAM>

    </PARAMS>

  </FS_BUTTON>

Script:

//!Beanshell

import de.espirit.firstspirit.agency.*;

import de.espirit.firstspirit.webedit.server.ClientScriptOperation;

import de.espirit.firstspirit.access.store.mediastore.Media;

import de.espirit.firstspirit.access.store.mediastore.MediaFolder;

import de.espirit.firstspirit.access.store.Store;

import de.espirit.firstspirit.ui.gadgets.aspects.operations.SelectStoreElementOperation;

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

SelectStoreElementOperation pOperation = operationAgent.getOperation(SelectStoreElementOperation.TYPE);

pOperation.setMultiSelect(false);

pOperation.addProject(null).addStoreType(Store.Type.MEDIASTORE);

pOperation.addTypeToSelect(MediaFolder.class);

pOperation.perform();

im Content Creator erhält man die Meldung:

Thu Aug 09 10:45:28 GMT+200 2018 de.espirit.firstspirit.webedit.client.script.ScriptServiceAsyncProxy

SEVERE: [executeScript] failed (in 13 ms)!

de.espirit.firstspirit.webedit.client.util.ServiceFailedException: Es ist ein unerwarteter Fehler aufgetreten.

at de.espirit.firstspirit.webedit.server.script.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:74)

at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at de.espirit.firstspirit.webedit.server.control.PollSupportingWebeditService$RPCInvoke.call(PollSupportingWebeditService.java:340)

at de.espirit.firstspirit.webedit.server.control.PollSupportingWebeditService$ServiceCallPollFeedWrapper.call(PollSupportingWebeditService.java:462)

at de.espirit.firstspirit.webedit.server.concurrent.ExecutionManager$NamedCallable.call(ExecutionManager.java:318)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:56)

0 Kudos

Hallo Daniel,

ich konnte intern zwei Bug-Vorgänge finden, die sich mit genau in dem Fahrwasser bewegen das du beschreibst. Die beiden Vorgänge sind allerdings bereits gelöst. Ich denke dass deine Anforderung funktionieren sollte und würde dich daher bitten dich direkt mit einem Bugverdacht an unseren Technical Support zu wenden. Die können dir da schneller und gezielter weiterhelfen. Nicht vergessen deine FirstSpirit-Version mit anzugeben Smiley Happy

Grüße,

Hannes

0 Kudos

Ich habe auch gesehen es gibt bereits diesen Feature-Request hier von Mark selbst: SelectStoreElementOperation auch im ContentCreator

0 Kudos
pavone
I'm new here

Hallo Mark,

ihr könntet auch versuchen FormsAgent (FirstSpirit Developer-API) und ShowFormDialogOperation (FirstSpirit Developer-API) zu verwenden.

Das Formular könnte z. B. einfach eine FS_REFERENCE enthalten.

Ich hoffe das bringt euch weiter.

Viele Grüße

Tim

0 Kudos
TanjaGroßmüller
Crownpeak employee

Hallo Mark,

benötigst Du noch weitere Hilfe oder haben Dir die Antworten von Hannes und Tim bereits geholfen?

In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere

Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung

gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Tanja

0 Kudos