Search the FirstSpirit Knowledge Base
Hallo Zusammen,
wir holen uns über einen Report Medien aus einem anderem System. Diese Medien ziehen wir per Drag&Drop auf einen FS-Button. Die dazugehörige Java-Klasse speichert das Medium anschließend in FirstSpirit. Der Speicherort wird von uns derzeit fest vorgegeben.
Wir möchten dem Redakteur jetzt gerne ermöglichen, dass er den Speicherort selber auswählen kann. Gibt es dafür einen FirstSpirit Standard Mechanismus?
Wenn ein Bild vom Desktop in die Komponente FS_REFERNCE gezogen wird, dann öffnet sich der Dialog zum Speicherort auswählen. Genau diesen Dialog hätten wir auch gerne.
Gruß
Daniel Lüttel
Hallo Daniel,
mit SelectStoreElementOperation (FirstSpirit Developer-API) solltet ihr einen passenden Dialog bauen können.
Viele Grüße
Tim
Hallo Tim,
im Content Creator erhalten wir bei der Rückgabe immer null.
Gibt es die Methode für den ContentCreator nicht?
Gruß
Daniel Lüttel
Hallo Zusammen,
noch als weiteren Hinweis, um es einfacher zu testen:
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 zusammen,
es gibt bereits diesen Feature-Request hier von Mark selbst: SelectStoreElementOperation auch im ContentCreator
Grüße,
Hannes