Hi,
I am trying to create a Video Component, that will look like Image component(just drag and drop the asset).
This is how I build the dialog:
<video
jcr:primaryType="nt:unstructured"
sling:resourceType="cq/gui/components/authoring/dialog/fileupload"
autoStart="{Boolean}false"
class="cq-droptarget"
fieldLabel="Image asset"
fileNameParameter="./fileName"
fileReferenceParameter="./fileReference"
mimeTypes="[video/quicktime]"
multiple="{Boolean}false"
name="./video"
title="Upload Image Asset"
uploadUrl="${suffix.path}"
useHTML5="{Boolean}true"/>
But, I can not return the path from the java model.
Solved! Go to Solution.
Views
Replies
Total Likes
@AD-EngineerCan you try this:
Remove ValueMapValue annotation and add below method
@PostConstruct protected void initModel() { video = componentResource.getValueMap().get("fileReference", String.class); }
Hi @AD-Engineer
Can you try the dailog field as a path field rather than the fileupload?
Thanks,
Kiran Vedantam
It should be file upload
Hi @AD-Engineer ,
You need to used filereference in sling model to access the path of video.
Regards,
Sanjay
@Sanjay_Bangar yes but how?
this is my method:
public String getVideo() { return video; }
It is not returning anything
Hi @AD-Engineer, could you please share part of code responsible for video variable initialization,. How video value is set in you sling model?
@ValueMapValue private String video;
Ok, so assuming that video variable represents path to asset, I would suggest to do following change in your code
@ValueMapValue(name = "fileReference") private String video;
Current behavior is correct because video is not representing any specific property in the repository it's defining node name.
@AD-Engineer Could you please share the entire sling model source code?
@Model( adaptables = {SlingHttpServletRequest.class}, adapters = {VideoComp.class}, resourceType = {ResourceType.Constants.VIDEO_COMP}, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL ) @Slf4j public class VideoCompImpl implements VideoComp { @Inject Resource componentResource; @OSGiService private ModelFactory modelFactory; @Self private SlingHttpServletRequest request; @ValueMapValue(name = "fileReference") private String video; @Override public boolean isEmpty() { return false; } @Override public String getVideo() { return video; } }
@AD-EngineerCan you try this:
Remove ValueMapValue annotation and add below method
@PostConstruct protected void initModel() { video = componentResource.getValueMap().get("fileReference", String.class); }