From 8f0de4d6aab7fd3a893bab197b044f633a7ca275 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 5 Apr 2017 09:42:44 +0200 Subject: [PATCH] no-jira: make the download link for certificate in course option works for zip --- .../certificate/ui/CertificatesOptionsController.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java b/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java index d95b9455aaa..fb53665191f 100644 --- a/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java +++ b/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java @@ -63,6 +63,7 @@ import org.olat.core.util.Util; import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.core.util.coordinate.LockResult; import org.olat.core.util.event.EventBus; +import org.olat.core.util.vfs.JavaIOItem; import org.olat.core.util.vfs.VFSLeaf; import org.olat.core.util.vfs.VFSMediaResource; import org.olat.course.CourseFactory; @@ -77,6 +78,7 @@ import org.olat.course.config.CourseConfigEvent; import org.olat.course.config.CourseConfigEvent.CourseConfigType; import org.olat.course.config.ui.CourseOptionsController; import org.olat.course.run.RunMainController; +import org.olat.fileresource.ZippedDirectoryMediaResource; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntryManagedFlag; import org.olat.repository.RepositoryManager; @@ -454,7 +456,13 @@ public class CertificatesOptionsController extends FormBasicController { MediaResource resource; if(selectedTemplate != null) { VFSLeaf templateLeaf = certificatesManager.getTemplateLeaf(selectedTemplate); - resource = new VFSMediaResource(templateLeaf); + if(templateLeaf.getName().equals("index.html") && templateLeaf instanceof JavaIOItem) { + JavaIOItem indexFile = (JavaIOItem)templateLeaf; + File templateDir = indexFile.getBasefile().getParentFile(); + resource = new ZippedDirectoryMediaResource(selectedTemplate.getName(), templateDir); + } else { + resource = new VFSMediaResource(templateLeaf); + } } else { InputStream stream = certificatesManager.getDefaultTemplate(); resource = new StreamedMediaResource(stream, "Certificate_template.pdf", "application/pdf"); -- GitLab