Skip to content
Snippets Groups Projects
Commit ddae6f47 authored by srosse's avatar srosse
Browse files

OO-159: make the name of the shared folder URL encoded only for WebDAV

parent 46380a69
No related branches found
No related tags found
No related merge requests found
......@@ -26,7 +26,6 @@
package org.olat.modules.sharedfolder;
import org.olat.core.commons.modules.bc.FolderRunController;
import org.olat.core.commons.modules.bc.vfs.OlatNamedContainerImpl;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.link.Link;
......@@ -58,7 +57,7 @@ public class SharedFolderEditorController extends DefaultController {
private Link previewButton;
private RepositoryEntry re;
private OlatNamedContainerImpl sharedFolder;
private VFSContainer sharedFolder;
private FolderRunController folderRunController;
private CloseableModalController cmc;
private Controller controller;
......@@ -79,7 +78,7 @@ public class SharedFolderEditorController extends DefaultController {
previewButton = LinkFactory.createButtonSmall("command.preview", vcEdit, this);
re = RepositoryManager.getInstance().lookupRepositoryEntry(res, true);
sharedFolder = SharedFolderManager.getInstance().getNamedSharedFolder(re);
sharedFolder = SharedFolderManager.getInstance().getNamedSharedFolder(re, false);
folderRunController = new FolderRunController(sharedFolder, true, true, false, ureq, getWindowControl());
vcEdit.put("folder", folderRunController.getInitialComponent());
......@@ -92,7 +91,7 @@ public class SharedFolderEditorController extends DefaultController {
*/
public void event(UserRequest ureq, Component source, Event event) {
if (source == previewButton) {
VFSContainer sharedFolderPreview = SharedFolderManager.getInstance().getNamedSharedFolder(re);
VFSContainer sharedFolderPreview = SharedFolderManager.getInstance().getNamedSharedFolder(re, false);
sfdCtr = new SharedFolderDisplayController(ureq, getWindowControl(), sharedFolderPreview, re, true);
cmc = new CloseableModalController(getWindowControl(), translator.translate("close"), sfdCtr.getInitialComponent());
cmc.activate();
......
......@@ -69,8 +69,17 @@ public class SharedFolderManager extends BasicManager {
return INSTANCE;
}
public OlatNamedContainerImpl getNamedSharedFolder(RepositoryEntry re) {
return new OlatNamedContainerImpl(Formatter.makeStringFilesystemSave(re.getDisplayname()), getSharedFolder(re.getOlatResource()));
/**
* @param re The repository entry of the shared folder
* @param urlCompliant Encode the name to be file save
* @return The container
*/
public VFSContainer getNamedSharedFolder(RepositoryEntry re, boolean urlCompliant) {
String name = re.getDisplayname();
if(urlCompliant) {
name = Formatter.makeStringFilesystemSave(name);
}
return new OlatNamedContainerImpl(name, getSharedFolder(re.getOlatResource()));
}
public OlatRootFolderImpl getSharedFolder(OLATResourceable res) {
......
......@@ -138,7 +138,7 @@ public class SharedFolderWebDAVMergeSource extends MergeSource {
private VFSContainer getSharedContainer(RepositoryEntry re, boolean readOnly) {
SharedFolderManager sfm = SharedFolderManager.getInstance();
VFSContainer shared = sfm.getNamedSharedFolder(re);
VFSContainer shared = sfm.getNamedSharedFolder(re, true);
if(readOnly) {
shared.setLocalSecurityCallback(readOnlyCallback);
}
......@@ -158,7 +158,7 @@ public class SharedFolderWebDAVMergeSource extends MergeSource {
//
if (addedEntries == null || !PersistenceHelper.listContainsObjectByKey(addedEntries, entry)) {
// add the entry (readonly)
VFSContainer folder = sfm.getNamedSharedFolder(entry);
VFSContainer folder = sfm.getNamedSharedFolder(entry, true);
folder.setLocalSecurityCallback(readOnlyCallback);
rootContainer.addContainer(folder);
addedEntries.add(entry);
......@@ -170,7 +170,7 @@ public class SharedFolderWebDAVMergeSource extends MergeSource {
RepositoryManager repoManager = RepositoryManager.getInstance();
List<RepositoryEntry> ownerEntries = (List<RepositoryEntry>) repoManager.queryByOwner(identity, SharedFolderFileResource.TYPE_NAME);
for (RepositoryEntry repoEntry : ownerEntries) {
addContainer(sfm.getNamedSharedFolder(repoEntry));
addContainer(sfm.getNamedSharedFolder(repoEntry, true));
}
// see /olat3/webapp/WEB-INF/olat_extensions.xml
......
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