Author: taylor
Date: Wed Mar 10 02:01:10 2021
New Revision: 1887402

URL: http://svn.apache.org/viewvc?rev=1887402&view=rev
Log:
JS2-1373: page load message optional feature

Added:
    
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/images/spinner.gif
   (with props)
    
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/
    
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner-instructions.txt
    
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner.html
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/LoadingMessageValve.java
Modified:
    
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
    
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/extended-pipelines.xml

Modified: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm?rev=1887402&r1=1887401&r2=1887402&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
 (original)
+++ 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
 Wed Mar 10 02:01:10 2021
@@ -110,10 +110,24 @@ $resourceHeader.getContent()
   #else
    #set($resourceHeaderFactory = 
$jetspeed.getComponent("org.apache.jetspeed.headerresource.HeaderResourceFactory"))
   #end
-  #set($resourceHeader = 
$resourceHeaderFactory.getHeaderResouce($JS2RequestContext))
+  #set($resourceHeader = 
$resourceHeaderFactory.getHeaderResource($JS2RequestContext, 
$jetspeed.url.basePortalUrl(), false, null))
  #end
 #end
 
+#macro (acquireHeaderResourceSecure)
+    #if ( ! $resourceHeader )
+        #if ( $JS2ComponentManager )
+            #set($resourceHeaderFactory = 
$JS2ComponentManager.getComponent("org.apache.jetspeed.headerresource.HeaderResourceFactory"))s
+            #set($base = $JS2ComponentManager.getComponent("BasePortalURL"))
+        #else
+            #set($resourceHeaderFactory = 
$jetspeed.getComponent("org.apache.jetspeed.headerresource.HeaderResourceFactory"))
+            #set($base = $jetspeed.getComponent("BasePortalURL"))
+        #end
+        ### #set($resourceHeader = 
$resourceHeaderFactory.getHeaderResouce($JS2RequestContext))
+        #set($myMap = {})
+        #set($resourceHeader = 
$resourceHeaderFactory.getHeaderResource($JS2RequestContext, $base, false, 
$myMap))
+    #end
+#end
 
 #*
 * Returns the base CSS class to use in top level tags

Added: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/images/spinner.gif
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/images/spinner.gif?rev=1887402&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/images/spinner.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner-instructions.txt
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner-instructions.txt?rev=1887402&view=auto
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner-instructions.txt
 (added)
+++ 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner-instructions.txt
 Wed Mar 10 02:01:10 2021
@@ -0,0 +1,31 @@
+# Add to your header.vm
+<!-- spinner -->  
+<script> 
+document.onreadystatechange = function() { 
+   document.querySelector("#jetspeedloadmessage").style.display = "none";
+};
+</script>
+<!-- end spinner -->
+
+
+# Edit webapps/dash/WEB-INF/assembly/override/pipelines.xml
+
+# add to jetspeed-pipeline bean right before DecoratorValve
+
+        <!-- SPINNER -->
+        <ref bean="LoadingMessageValve" />
+s
+# add before </beans>
+
+<!-- Loading Message -->
+<bean id="LoadingMessageValve" 
class="org.apache.jetspeed.pipeline.valve.impl.LoadingMessageValve" >
+    <meta key="j2:cat" value="default" />
+    <constructor-arg index="0"><value>true</value></constructor-arg>           
        <!-- enable -->
+    <constructor-arg index="1"><value>true</value></constructor-arg>           
        <!-- cache -->
+    <constructor-arg 
index="2"><value>/WEB-INF/spinner.html</value></constructor-arg>  <!-- message 
file -->
+    <constructor-arg index="3">
+        <list>
+            <value>/Welcome.psml</value>
+        </list>
+    </constructor-arg>
+</bean>

Added: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner.html
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner.html?rev=1887402&view=auto
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner.html
 (added)
+++ 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/loadermessages/spinner.html
 Wed Mar 10 02:01:10 2021
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html>
+<head>
+<body>
+  <div id="jetspeedloadmessage" style="text-align:center; top:100px;">
+      <img src="/images/spinner.gif" alt="Please wait..." border="0"/>
+  </div>
+<script>
+<!-- add to decorator -->
+sel = document.getElementById('jetspeedloadmessage'); 
+sel.style.display='none';
+sel.offsetHeight; // requires comment
+sel.style.display='';  
+sel.style.webkitTransform = 'scale(1.5)';
+</script>
+</body>
+</html>

Added: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/LoadingMessageValve.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/LoadingMessageValve.java?rev=1887402&view=auto
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/LoadingMessageValve.java
 (added)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/LoadingMessageValve.java
 Wed Mar 10 02:01:10 2021
@@ -0,0 +1,77 @@
+package org.apache.jetspeed.pipeline.valve.impl;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.jetspeed.pipeline.PipelineException;
+import org.apache.jetspeed.pipeline.valve.AbstractValve;
+import org.apache.jetspeed.pipeline.valve.ValveContext;
+import org.apache.jetspeed.request.RequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class LoadingMessageValve extends AbstractValve {
+
+    private static final Logger log = 
LoggerFactory.getLogger(LoadingMessageValve.class);
+
+    private Boolean enabled = false;
+    private Boolean cached = true;
+    private String path;
+    private byte[] bytes = null;
+    private Set<String> pageMap;
+    private boolean useAllPages = false;
+
+    public LoadingMessageValve(Boolean enabled, Boolean cached, String path, 
List<String> pages) {
+        this.enabled = enabled;
+        this.cached = cached;
+        this.path = path;
+        this.useAllPages = (pages == null || pages.size() == 0);
+        if (!useAllPages) {
+            this.pageMap = new HashSet<String>();
+            for (String page : pages) {
+                this.pageMap.add(page);
+            }
+        }
+    }
+
+    @Override
+    public void invoke(RequestContext request, ValveContext context) throws 
PipelineException {
+            if (enabled) {
+            try {
+                // pages can be either a simple page name or a full path
+                if (useAllPages || 
pageMap.contains(request.getPage().getName()) || 
pageMap.contains(request.getPage().getPath())) {
+                    if (bytes == null || cached == false) {
+                        String fullPath = 
request.getRequest().getServletContext().getRealPath(path);
+                        Reader reader = new InputStreamReader(new 
FileInputStream(fullPath));
+                        bytes = IOUtils.toByteArray(reader);
+                    }
+                    System.out.println(request.getPage().getPath());
+                    System.out.println(request.getPage().getName());
+                    Writer writer = request.getResponse().getWriter();
+                    IOUtils.copy(new ByteArrayInputStream(bytes), writer);
+                    writer.flush();
+                }
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            } finally {
+                context.invokeNext(request);
+            }
+        } else {
+            context.invokeNext(request);
+        }
+    }
+
+    @Override
+    public void initialize() throws PipelineException {
+        super.initialize();
+    }
+}

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/extended-pipelines.xml
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/extended-pipelines.xml?rev=1887402&r1=1887401&r2=1887402&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/extended-pipelines.xml
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/extended-pipelines.xml
 Wed Mar 10 02:01:10 2021
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+ss<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -43,4 +43,34 @@
     </constructor-arg>
   </bean>
 
+  <!-- Loading Message Valve example -->
+  <bean id="jetspeed-pipeline"
+        class="org.apache.jetspeed.pipeline.JetspeedPipeline"
+        init-method="initialize"
+  >
+    <constructor-arg>
+      <value>JetspeedPipeline</value>
+    </constructor-arg>
+    <constructor-arg>
+      <list>
+        <!-- before Decoration Valve -->
+        <ref bean="LoadingMessageValve"/>
+      </list>
+    </constructor-arg>
+  </bean>
+
+
+  <!-- Loading Message -->
+  <bean id="LoadingMessageValve" 
class="org.apache.jetspeed.pipeline.valve.impl.LoadingMessageValve" >
+    <meta key="j2:cat" value="default" />
+    <constructor-arg index="0"><value>true</value></constructor-arg>           
        <!-- enable -->
+    <constructor-arg index="1"><value>true</value></constructor-arg>           
        <!-- cache -->
+    <constructor-arg 
index="2"><value>/loadermessages/spinner.html</value></constructor-arg>  <!-- 
message file -->
+    <constructor-arg index="3">
+      <list>
+        <value>/Welcome.psml</value>
+      </list>
+    </constructor-arg>
+  </bean>
+
 </beans>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to