use of org.olat.core.util.vfs.VFSMediaResource in project OpenOLAT by OpenOLAT.
the class FeedManagerImpl method createItemMediaFile.
@Override
public MediaResource createItemMediaFile(OLATResourceable feed, String itemId, String fileName) {
VFSMediaResource mediaResource = null;
// Brute force method for fast delivery
try {
VFSItem item = feedFileStorage.getOrCreateFeedItemsContainer(feed);
item = item.resolve(itemId);
item = item.resolve(MEDIA_DIR);
item = item.resolve(fileName);
if (item instanceof VFSLeaf) {
mediaResource = new VFSMediaResource((VFSLeaf) item);
}
} catch (NullPointerException e) {
log.debug("Media resource could not be created from file: ", fileName);
}
return mediaResource;
}
use of org.olat.core.util.vfs.VFSMediaResource in project OpenOLAT by OpenOLAT.
the class DisclaimerController method event.
/**
* @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
*/
@Override
public void event(UserRequest ureq, Component source, Event event) {
if (source == this.downloadLink) {
ureq.getDispatchResult().setResultingMediaResource(new VFSMediaResource(this.downloadFile));
// Prevent "do not press reload" message.
this.downloadLink.setDirty(false);
}
}
use of org.olat.core.util.vfs.VFSMediaResource in project OpenOLAT by OpenOLAT.
the class CmdServeThumbnailResource method execute.
@Override
public Controller execute(FolderComponent folderComponent, UserRequest ureq, WindowControl wControl, Translator translator) {
VFSSecurityCallback inheritedSecCallback = VFSManager.findInheritedSecurityCallback(folderComponent.getCurrentContainer());
if (inheritedSecCallback != null && !inheritedSecCallback.canRead())
throw new RuntimeException("Illegal read attempt: " + folderComponent.getCurrentContainerPath());
// extract file
String path = ureq.getModuleURI();
MediaResource mr = null;
VFSLeaf vfsfile = (VFSLeaf) folderComponent.getRootContainer().resolve(path);
if (vfsfile == null) {
// double decoding of ++
vfsfile = (VFSLeaf) FolderCommandHelper.tryDoubleDecoding(ureq, folderComponent);
}
if (vfsfile instanceof MetaTagged) {
MetaInfo info = ((MetaTagged) vfsfile).getMetaInfo();
if (info != null && info.isThumbnailAvailable()) {
VFSLeaf thumbnail = info.getThumbnail(200, 200, false);
if (thumbnail != null) {
mr = new VFSMediaResource(thumbnail);
}
}
}
if (mr == null) {
mr = new NotFoundMediaResource();
}
ureq.getDispatchResult().setResultingMediaResource(mr);
return null;
}
use of org.olat.core.util.vfs.VFSMediaResource in project OpenOLAT by OpenOLAT.
the class MailAttachmentMapper method handle.
@Override
public MediaResource handle(String relPath, HttpServletRequest request) {
if (relPath != null && relPath.indexOf(ATTACHMENT_CONTEXT) >= 0) {
int startIndex = relPath.indexOf(ATTACHMENT_CONTEXT);
int endIndex = relPath.indexOf("/", startIndex + ATTACHMENT_CONTEXT.length());
if (startIndex >= 0 && endIndex > startIndex) {
String attachmentKey = relPath.substring(startIndex + ATTACHMENT_CONTEXT.length(), endIndex);
try {
Long key = new Long(attachmentKey);
VFSLeaf datas = mailManager.getAttachmentDatas(key);
MediaResource resource = new VFSMediaResource(datas);
return resource;
} catch (NumberFormatException e) {
return new NotFoundMediaResource();
}
}
}
return new NotFoundMediaResource();
}
use of org.olat.core.util.vfs.VFSMediaResource in project OpenOLAT by OpenOLAT.
the class CPDisplayController method switchToPage.
public void switchToPage(UserRequest ureq, TreeNode tn) {
String identifierRes = (String) tn.getUserObject();
OLATResourceable ores = OresHelper.createOLATResourceableInstanceWithoutCheck("path=" + identifierRes, 0l);
addToHistory(ureq, ores, null);
// security check
if (identifierRes.indexOf("../") != -1)
throw new AssertException("a non-normalized url encountered in a manifest item:" + identifierRes);
// Check also for XML resources that use XSLT for rendering
if (identifierRes.toLowerCase().lastIndexOf(FILE_SUFFIX_HTM) >= (identifierRes.length() - 4) || identifierRes.toLowerCase().endsWith(FILE_SUFFIX_XML)) {
// display html files inline or in an iframe
if (cpContentCtr != null)
cpContentCtr.setCurrentURI(identifierRes);
if (cpComponent != null)
cpComponent.setCurrentURI(identifierRes);
} else {
// initialized. Delegates displaying to the browser (and its plugins).
if (cpContentCtr != null) {
cpContentCtr.setCurrentURI(identifierRes);
} else {
// if an entry in a manifest points e.g. to a pdf file and the iframe
// controller has not been initialized display it non-inline
VFSItem currentItem = rootContainer.resolve(identifierRes);
MediaResource mr;
if (currentItem == null || !(currentItem instanceof VFSLeaf))
mr = new NotFoundMediaResource();
else
mr = new VFSMediaResource((VFSLeaf) currentItem);
ureq.getDispatchResult().setResultingMediaResource(mr);
// Prevent 'don't reload' warning
cpTree.setDirty(false);
}
}
updateNextPreviousLink(tn);
ThreadLocalUserActivityLogger.log(CourseLoggingAction.CP_GET_FILE, getClass(), LoggingResourceable.wrapCpNode(identifierRes));
}
Aggregations