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]