Skip to content
Snippets Groups Projects
Commit f7491df3 authored by uhensler's avatar uhensler
Browse files

OO-3940: Show learning resources office documents in collabora

parent 480c7e7b
No related branches found
No related tags found
No related merge requests found
...@@ -102,9 +102,10 @@ public class FilesWebService { ...@@ -102,9 +102,10 @@ public class FilesWebService {
} }
VFSMetadata metadata = collaboraService.getMetadata(fileId); VFSMetadata metadata = collaboraService.getMetadata(fileId);
String ownerId = metadata.getAuthor() != null? metadata.getAuthor().getKey().toString(): null;
CheckFileInfoVO checkFileInfoVO = CheckFileInfoVO.builder() CheckFileInfoVO checkFileInfoVO = CheckFileInfoVO.builder()
.withBaseFileName(metadata.getFilename()) // suffix is mandatory .withBaseFileName(metadata.getFilename()) // suffix is mandatory
.withOwnerId(metadata.getAuthor().getKey().toString()) .withOwnerId(ownerId)
.withSize(metadata.getFileSize()) .withSize(metadata.getFileSize())
.withUserId(access.getIdentity().getKey().toString()) .withUserId(access.getIdentity().getKey().toString())
.withUserFriendlyName(userManager.getUserDisplayName(access.getIdentity())) .withUserFriendlyName(userManager.getUserDisplayName(access.getIdentity()))
......
...@@ -56,6 +56,7 @@ public class CollaboraEditorController extends BasicController { ...@@ -56,6 +56,7 @@ public class CollaboraEditorController extends BasicController {
mainVC.contextPut("id", "o_" + CodeHelper.getRAMUniqueID()); mainVC.contextPut("id", "o_" + CodeHelper.getRAMUniqueID());
mainVC.contextPut("url", url); mainVC.contextPut("url", url);
putInitialPanel(mainVC); putInitialPanel(mainVC);
} }
......
...@@ -19,14 +19,19 @@ ...@@ -19,14 +19,19 @@
*/ */
package org.olat.repository.ui; package org.olat.repository.ui;
import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.olat.core.commons.services.image.Size; import org.olat.core.commons.services.image.Size;
import org.olat.core.commons.services.vfs.VFSLeafEditor;
import org.olat.core.commons.services.vfs.VFSRepositoryService;
import org.olat.core.commons.services.video.MovieService; import org.olat.core.commons.services.video.MovieService;
import org.olat.core.dispatcher.mapper.Mapper; import org.olat.core.dispatcher.mapper.Mapper;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component; import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event; import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController; import org.olat.core.gui.control.controller.BasicController;
...@@ -55,6 +60,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -55,6 +60,8 @@ import org.springframework.beans.factory.annotation.Autowired;
*/ */
public class WebDocumentRunController extends BasicController { public class WebDocumentRunController extends BasicController {
@Autowired
private VFSRepositoryService vfsService;
@Autowired @Autowired
private MovieService movieService; private MovieService movieService;
...@@ -90,6 +97,16 @@ public class WebDocumentRunController extends BasicController { ...@@ -90,6 +97,16 @@ public class WebDocumentRunController extends BasicController {
mainVC.contextPut("height", 480); mainVC.contextPut("height", 480);
mainVC.contextPut("width", 640); mainVC.contextPut("width", 640);
} }
} else if (vfsService.hasEditor(extension)) {
List<VFSLeafEditor> editors = vfsService.getEditors(document);
if (editors.size() >= 1) {
VFSLeafEditor editor = editors.get(0);
// FolderComponent should be initialized to be safe. As of today the internal
// editor does not support these file types.
Controller editCtrl = editor.getRunController(ureq, wControl, document, null, getIdentity());
listenTo(editCtrl);
mainVC.put("content", editCtrl.getInitialComponent());
}
} else { } else {
IFrameDisplayController idc = new IFrameDisplayController(ureq, getWindowControl(), document.getParentContainer(), null, null); IFrameDisplayController idc = new IFrameDisplayController(ureq, getWindowControl(), document.getParentContainer(), null, null);
listenTo(idc); listenTo(idc);
......
...@@ -6,4 +6,16 @@ ...@@ -6,4 +6,16 @@
margin-bottom: 20px; margin-bottom: 20px;
border-width: 1px; border-width: 1px;
} }
}
.o_web_content {
.o_collabora {
iframe {
width: 100%;
height: calc(100vh - 340px);
margin-top: 10px;
margin-bottom: 20px;
border-width: 1px;
}
}
} }
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment