diff --git a/core/src/main/java/com/mcaps/core/models/CourseModel.java b/core/src/main/java/com/mcaps/core/models/CourseModel.java new file mode 100644 index 0000000..218af76 --- /dev/null +++ b/core/src/main/java/com/mcaps/core/models/CourseModel.java @@ -0,0 +1,56 @@ +package com.mcaps.core.models; + +import static org.apache.sling.api.resource.ResourceResolver.PROPERTY_RESOURCE_TYPE; + +import javax.annotation.PostConstruct; + +import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.models.annotations.Default; +import org.apache.sling.models.annotations.Model; +import org.apache.sling.models.annotations.injectorspecific.InjectionStrategy; +import org.apache.sling.models.annotations.injectorspecific.OSGiService; +import org.apache.sling.models.annotations.injectorspecific.SlingObject; +import org.apache.sling.models.annotations.injectorspecific.ValueMapValue; + +import com.day.cq.wcm.api.Page; +import com.day.cq.wcm.api.PageManager; + +import java.util.Optional; + +@Model(adaptables = Resource.class) +public class CourseModel { + + @ValueMapValue(name=PROPERTY_RESOURCE_TYPE, injectionStrategy=InjectionStrategy.OPTIONAL) + @Default(values="No resourceType") + protected String resourceType; + + @SlingObject + private Resource currentResource; + @SlingObject + private ResourceResolver resourceResolver; + + private String message; + private String html; + + @PostConstruct + protected void init() { + PageManager pageManager = resourceResolver.adaptTo(PageManager.class); + String currentPagePath = Optional.ofNullable(pageManager) + .map(pm -> pm.getContainingPage(currentResource)) + .map(Page::getPath).orElse(""); + + message = "Hello World!\n" + + "Resource type is: " + resourceType + "\n" + + "Current page is: " + currentPagePath + "\n"; + } + + public String getMessage() { + return message; + } + + public String getHtml() { + return "

TESTING

"; + } + +} diff --git a/core/src/main/java/com/mcaps/core/workflows/ScormExtractor.java b/core/src/main/java/com/mcaps/core/workflows/ScormExtractor.java index 2a2e29f..b783626 100644 --- a/core/src/main/java/com/mcaps/core/workflows/ScormExtractor.java +++ b/core/src/main/java/com/mcaps/core/workflows/ScormExtractor.java @@ -9,6 +9,14 @@ import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import javax.jcr.AccessDeniedException; +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.lock.LockException; +import javax.jcr.nodetype.ConstraintViolationException; +import javax.jcr.version.VersionException; + +import org.apache.sling.api.resource.PersistenceException; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; import org.osgi.framework.Constants; @@ -46,10 +54,26 @@ public class ScormExtractor implements WorkflowProcess { log.warn("SCORM WORKFLOW: MetaDataMap args: " + mdm.get("PROCESS_ARGS", "string").toString()); String[] params = mdm.get("PROCESS_ARGS", "string").toString().split(","); - //String attachmentsPath = params[0]; + String excludePath = params[0]; String saveToLocation = params[1]; String payloadPath = wi.getContentPath().replace("/jcr:content/renditions/original",""); - unzipFile(payloadPath, saveToLocation); + //unzipFile(payloadPath, saveToLocation); + + String nodePath = wi.getContentPath().replace(".zip/jcr:content/renditions/original",""); + cleanup(nodePath, excludePath, resourceResolver); + } + + private void cleanup(String path, String excludePath, ResourceResolver resourceResolver) { + log.warn("SCORM WORKFLOW: inside cleanup: path - " + path); + + Resource resource = resourceResolver.getResource(path + File.separator + excludePath); + //Node zipNode = resource.adaptTo(Node.class); + try { + resourceResolver.delete(resource); + resourceResolver.commit(); + } catch (PersistenceException e) { + e.printStackTrace(); + } } private void unzipFile(String filePath, String outputFolder) { @@ -82,7 +106,7 @@ public class ScormExtractor implements WorkflowProcess { log.warn("SCORM WORKFLOW: file extracted: " + zipFilePath); } } - + zipIn.closeEntry(); entry = zipIn.getNextEntry(); } diff --git a/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/.content.xml b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/.content.xml new file mode 100644 index 0000000..d74179c --- /dev/null +++ b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/.content.xml @@ -0,0 +1,6 @@ + + diff --git a/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/course-template.html b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/course-template.html new file mode 100644 index 0000000..293ebe2 --- /dev/null +++ b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/course-template.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/course.html b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/course.html new file mode 100644 index 0000000..12bc10f --- /dev/null +++ b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/course.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/page.html b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/page.html new file mode 100644 index 0000000..201d65e --- /dev/null +++ b/ui.apps/src/main/content/jcr_root/apps/mcaps-site/components/blankpage/page.html @@ -0,0 +1,12 @@ + + + + +

SCORM Test

+ +
+ + \ No newline at end of file diff --git a/ui.content/src/main/content/jcr_root/conf/mcaps-site/settings/wcm/templates/content-package-page/initial/.content.xml b/ui.content/src/main/content/jcr_root/conf/mcaps-site/settings/wcm/templates/content-package-page/initial/.content.xml new file mode 100644 index 0000000..cb5d574 --- /dev/null +++ b/ui.content/src/main/content/jcr_root/conf/mcaps-site/settings/wcm/templates/content-package-page/initial/.content.xml @@ -0,0 +1,9 @@ + + + + +