Search the FirstSpirit Knowledge Base
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
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
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)
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
Grüße,
Hannes
Ich habe auch gesehen es gibt bereits diesen Feature-Request hier von Mark selbst: SelectStoreElementOperation auch im ContentCreator
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
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