You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2021/03/10 02:01:10 UTC

svn commit: r1887402 - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/WEB-INF/ applications/jetspeed/src/main/webapp/images/ applications/jetspeed/src/main/webapp/loadermessages/ components/jetspeed-portal/src/main/java/org/...

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: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org