]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
DRYD-1516: Install public browser front-end along with UI. (#422)
authorRay Lee <ray.lee@lyrasis.org>
Tue, 10 Sep 2024 20:48:51 +0000 (16:48 -0400)
committerGitHub <noreply@github.com>
Tue, 10 Sep 2024 20:48:51 +0000 (16:48 -0400)
30 files changed:
build.properties
cspace-ui/anthro/WEB-INF/web.xml
cspace-ui/anthro/build.properties
cspace-ui/anthro/public/index.jsp [new file with mode: 0644]
cspace-ui/bonsai/WEB-INF/web.xml
cspace-ui/bonsai/build.properties
cspace-ui/bonsai/public/index.jsp [new file with mode: 0644]
cspace-ui/botgarden/WEB-INF/web.xml
cspace-ui/botgarden/build.properties
cspace-ui/botgarden/public/index.jsp [new file with mode: 0644]
cspace-ui/build.xml
cspace-ui/build_js.sh
cspace-ui/core/WEB-INF/web.xml
cspace-ui/core/build.properties
cspace-ui/core/public/index.jsp [new file with mode: 0644]
cspace-ui/fcart/WEB-INF/web.xml
cspace-ui/fcart/build.properties
cspace-ui/fcart/public/index.jsp [new file with mode: 0644]
cspace-ui/herbarium/WEB-INF/web.xml
cspace-ui/herbarium/build.properties
cspace-ui/herbarium/public/index.jsp [new file with mode: 0644]
cspace-ui/lhmc/WEB-INF/web.xml
cspace-ui/lhmc/build.properties
cspace-ui/lhmc/public/index.jsp [new file with mode: 0644]
cspace-ui/materials/WEB-INF/web.xml
cspace-ui/materials/build.properties
cspace-ui/materials/public/index.jsp [new file with mode: 0644]
cspace-ui/publicart/WEB-INF/web.xml
cspace-ui/publicart/build.properties
cspace-ui/publicart/public/index.jsp [new file with mode: 0644]

index 7a9843f6095aab8651b971d23a0e66d0d7eb7998..de8942d14ca1ac1b002cac5197914904e3f841de 100644 (file)
@@ -29,9 +29,16 @@ cspace.ui.package.name=cspace-ui
 cspace.ui.library.name=cspaceUI
 cspace.ui.version=9.0.1
 cspace.ui.build.branch=master
-cspace.ui.build.node.ver=14
+cspace.ui.build.node.ver=20
 service.ui.library.name=${cspace.ui.library.name}-service
 
+# Public browser settings
+cspace.public.browser.package.name=@collectionspace/cspace-public-browser
+cspace.public.browser.library.name=cspacePublicBrowser
+cspace.public.browser.version=3.1.0
+cspace.public.browser.build.branch=master
+cspace.public.browser.build.node.ver=20
+
 #nuxeo
 nuxeo.release=9.10-HF30
 nuxeo.ear=nuxeo.ear
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index 3941db9be1e7acd82eba1106687069b088691e74..59da7133a7e25351af1fb3eb0572736a3edb8a56 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-anthro
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfileAnthro
 tenant.ui.profile.plugin.version=8.0.0
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/anthro/public/index.jsp b/cspace-ui/anthro/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index 7c26ae75be8a759b80ab315b744a665c9e399fb2..9ce31e95cbd75671e3e8c0f51650b3334215c9c5 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-bonsai
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfileBonsai
 tenant.ui.profile.plugin.version=6.0.0
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/bonsai/public/index.jsp b/cspace-ui/bonsai/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index c0d1282b03f5bcc4cd3ca7af8c1e8106e0917497..8475b59b68287a90ab417089529f1b8acf512c7a 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-botgarden
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfileBotGarden
 tenant.ui.profile.plugin.version=3.1.1
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/botgarden/public/index.jsp b/cspace-ui/botgarden/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 08ec1076d0d29522669cb7418dcb45abdaacea63..e4954e801987db35b83b501e921edadf4e32f1b7 100644 (file)
@@ -29,6 +29,7 @@
        <property environment="env" />
        <property file="${services.trunk}/build.properties" />
        <propertycopy name="cspace.ui.build" from="env.CSPACE_UI_BUILD" />
+       <propertycopy name="cspace.public.browser.build" from="env.CSPACE_UI_BUILD" />
 
        <target name="clean">
                <delete includeEmptyDirs="true">
                </exec>
        </target>
 
-       <target name="install_node" depends="install_nvm" if="${cspace.ui.build}">
+       <target name="install_cspace_ui_node" depends="install_nvm" if="${cspace.ui.build}">
                <exec executable="bash" failonerror="true">
                        <arg value="-c" />
                        <arg value='source "$HOME/.nvm/nvm.sh" &amp;&amp; nvm install ${cspace.ui.build.node.ver} &amp;&amp; nvm use ${cspace.ui.build.node.ver} &amp;&amp; nvm install-latest-npm' />
                </exec>
        </target>
 
-       <target name="build_cspace_ui_js" depends="ensure_staging_dir,ensure_source_dir,install_node" if="${cspace.ui.build}">
+       <target name="build_cspace_ui_js" depends="ensure_staging_dir,ensure_source_dir,install_cspace_ui_node" if="${cspace.ui.build}">
                <exec executable="bash" failonerror="true">
                        <arg value="-c" />
                        <arg value="./build_js.sh ${cspace.ui.package.name} ${cspace.ui.build.branch} ${source.dir} ${staging.dir} ${cspace.ui.library.name} ${service.ui.library.name}"/>
 
        <target name="download_cspace_ui_js" depends="ensure_staging_dir" unless="${cspace.ui.build}">
                <exec executable="curl" failonerror="true">
-                       <arg line="-o ${staging.dir}/${cspace.ui.library.name}@${cspace.ui.version}.min.js --fail --insecure --location https://cdn.jsdelivr.net/npm/cspace-ui@${cspace.ui.version}/dist/${cspace.ui.library.name}.min.js"/>
-               </exec>
-       </target>
-
-       <target name="download_service_ui_js" depends="ensure_staging_dir" unless="${cspace.ui.build}">
-               <exec executable="curl" failonerror="true">
-                       <arg line="-o ${staging.dir}/${service.ui.library.name}@${cspace.ui.version}.min.js --fail --insecure --location https://cdn.jsdelivr.net/npm/cspace-ui@${cspace.ui.version}/dist/${service.ui.library.name}.min.js"/>
+                       <arg line="-o ${staging.dir}/${cspace.ui.library.name}@${cspace.ui.version}.min.js --fail --insecure --location https://cdn.jsdelivr.net/npm/${cspace.ui.package.name}@${cspace.ui.version}/dist/${cspace.ui.library.name}.min.js"/>
                </exec>
        </target>
 
                <copy file="${staging.dir}/${cspace.ui.install.filename}" todir="${jee.deploy.cspace.ui.shared}" />
        </target>
 
+       <target name="download_service_ui_js" depends="ensure_staging_dir" unless="${cspace.ui.build}">
+               <exec executable="curl" failonerror="true">
+                       <arg line="-o ${staging.dir}/${service.ui.library.name}@${cspace.ui.version}.min.js --fail --insecure --location https://cdn.jsdelivr.net/npm/${cspace.ui.package.name}@${cspace.ui.version}/dist/${service.ui.library.name}.min.js"/>
+               </exec>
+       </target>
+
        <target name="deploy_service_ui_js" depends="build_cspace_ui_js,download_service_ui_js">
                <pathconvert property="service.ui.install.filename" targetos="unix">
                        <first>
                <copy file="${staging.dir}/${service.ui.install.filename}" todir="${jee.deploy.cspace.ui.shared}" />
        </target>
 
-       <target name="deploy_tenants" depends="deploy_cspace_ui_js">
+       <target name="install_cspace_public_browser_node" depends="install_nvm" if="${cspace.public.browser.build}">
+               <exec executable="bash" failonerror="true">
+                       <arg value="-c" />
+                       <arg value='source "$HOME/.nvm/nvm.sh" &amp;&amp; nvm install ${cspace.public.browser.build.node.ver} &amp;&amp; nvm use ${cspace.public.browser.build.node.ver} &amp;&amp; nvm install-latest-npm' />
+               </exec>
+       </target>
+
+       <target name="build_cspace_public_browser_js" depends="ensure_staging_dir,ensure_source_dir,install_cspace_public_browser_node" if="${cspace.public.browser.build}">
+               <exec executable="bash" failonerror="true">
+                       <arg value="-c" />
+                       <arg value="./build_js.sh ${cspace.public.browser.package.name} ${cspace.public.browser.build.branch} ${source.dir} ${staging.dir} ${cspace.public.browser.library.name}"/>
+               </exec>
+       </target>
+
+       <target name="download_cspace_public_browser_js" depends="ensure_staging_dir" unless="${cspace.public.browser.build}">
+               <exec executable="curl" failonerror="true">
+                       <arg line="-o ${staging.dir}/${cspace.public.browser.library.name}@${cspace.public.browser.version}.min.js --fail --insecure --location https://cdn.jsdelivr.net/npm/${cspace.public.browser.package.name}@${cspace.public.browser.version}/dist/${cspace.public.browser.library.name}.min.js"/>
+               </exec>
+       </target>
+
+       <target name="deploy_cspace_public_browser_js" depends="build_cspace_public_browser_js,download_cspace_public_browser_js">
+               <pathconvert property="cspace.public.browser.install.filename" targetos="unix">
+                       <first>
+                               <fileset dir="${staging.dir}" includes="${cspace.public.browser.library.name}@*.min.js" />
+                       </first>
+
+                       <mapper type="flatten" />
+               </pathconvert>
+
+               <copy file="${staging.dir}/${cspace.public.browser.install.filename}" todir="${jee.deploy.cspace.ui.shared}" />
+       </target>
+
+       <target name="deploy_tenants" depends="deploy_cspace_ui_js,deploy_cspace_public_browser_js">
                <subant target="deploy_tenant" genericantfile="${ant.file}" inheritall="true">
                        <dirset dir="." includes="*" excludes="${build.dir.name}" />
                </subant>
                </condition>
        </target>
 
-       <target name="build_tenant_js" depends="check_build_tenant_js,ensure_staging_dir,ensure_source_dir,install_node" if="should.build.tenant.js">
+       <target name="build_tenant_js" depends="check_build_tenant_js,ensure_staging_dir,ensure_source_dir,install_cspace_ui_node" if="should.build.tenant.js">
                <fail message="Build branch not found for ${tenant.shortname}. Set the tenant.ui.profile.plugin.build.branch property in ${basedir}/build.properties.">
                        <condition>
                                <not>
        </target>
 
        <target name="deploy_tenant_webapp" depends="deploy_tenant_js" unless="${tenant.create.disabled}">
+               <!-- Default values, in case these weren't set in the tenant's build.properties. -->
+               <property name="tenant.public.browser.gateway.url" value="" />
+
                <filter token="UI_FILENAME" value="${cspace.ui.install.filename}" />
                <filter token="UI_PROFILE_PLUGIN_FILENAME" value="${tenant.ui.profile.plugin.install.filename}" />
                <filter token="UI_PROFILE_PLUGIN_LIBRARY_NAME" value="${tenant.ui.profile.plugin.library.name}" />
                <filter token="BASENAME" value="${tenant.ui.basename}" />
+               <filter token="PUBLIC_BROWSER_FILENAME" value="${cspace.public.browser.install.filename}" />
+               <filter token="GATEWAY_URL" value="${tenant.public.browser.gateway.url}" />
                <filter token="TENANT_ID" value="${resolved.tenant.id}" />
+               <filter token="TENANT_SHORTNAME" value="${tenant.shortname}" />
 
                <copy todir="${jee.deploy.cspace}/${tenant.ui.webapp.dir}" failonerror="false" filtering="true" overwrite="true">
                        <fileset dir="${basedir}">
index 147d6ea9824047e9e7416b8b469fb2a1260cff88..460ee9ecd2f29e8737ec91012e9d18dda5e7d2a7 100755 (executable)
@@ -7,12 +7,13 @@ OUTPUT_DIR=$4
 LIBRARY_NAME=$5
 SERVICE_LIBRARY_NAME=$6
 
-CODE_DIR=$CHECKOUT_DIR/$PACKAGE_NAME.js
+UNORG_PACKAGE_NAME=`echo $PACKAGE_NAME | sed -e 's/^@.*\///'`
+CODE_DIR=$CHECKOUT_DIR/$UNORG_PACKAGE_NAME.js
 
 . "$HOME/.nvm/nvm.sh"
 
 rm -r $CODE_DIR
-git clone --branch $BRANCH_NAME --depth 1 https://github.com/collectionspace/$PACKAGE_NAME.js.git $CODE_DIR
+git clone --branch $BRANCH_NAME --depth 1 https://github.com/collectionspace/$UNORG_PACKAGE_NAME.js.git $CODE_DIR
 
 pushd $CODE_DIR
 COMMIT_HASH=`git rev-parse --short HEAD`
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index edcfe5faef7de7a67bf1fba66f80993e4541044e..dc3d652feed5548daab4b09f95e2c675192a2fd4 100644 (file)
@@ -1,2 +1,5 @@
 tenant.ui.webapp.dir=cspace#${tenant.shortname}
 tenant.ui.basename=/cspace/${tenant.shortname}
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/core/public/index.jsp b/cspace-ui/core/public/index.jsp
new file mode 100644 (file)
index 0000000..1ca1527
--- /dev/null
@@ -0,0 +1,21 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index 996d906f6fc29a19090ac39da3358efdaf4161fb..3dacbca529cd6fe94f3d8651e28f5f333d701f6c 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-fcart
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfileFCart
 tenant.ui.profile.plugin.version=7.0.0
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/fcart/public/index.jsp b/cspace-ui/fcart/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index ddf2d1e426dc32c50bd5feeca105b4e3ed6b917a..01c12e2c1e3bf63ac5d39477a77c65aaeaf0daa7 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-herbarium
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfileHerbarium
 tenant.ui.profile.plugin.version=2.0.12
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/herbarium/public/index.jsp b/cspace-ui/herbarium/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index 9a570a588990852ba84e29b02998f0ed1dbb8b88..7a643f2b6afedd3900e7c59b91772d6a25ba500a 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-lhmc
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfileLHMC
 tenant.ui.profile.plugin.version=7.0.0
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/lhmc/public/index.jsp b/cspace-ui/lhmc/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index 4f0692beb79eeb78683660cba5ea90530b956d56..6ccff352f20effdb73d202742e76fe7d31d0b6e5 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-materials
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfileMaterials
 tenant.ui.profile.plugin.version=4.0.0
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/materials/public/index.jsp b/cspace-ui/materials/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>
index 3c1a184fb07d10f319776387e79c10af3c7ca75e..843689fdaaaf1352e43d7f1b6f63e69ad928dd79 100644 (file)
@@ -8,6 +8,20 @@
                 <filter-name>FallbackResourceFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>
+
+        <filter>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <filter-class>org.collectionspace.services.common.filter.FallbackResourceFilter</filter-class>
+                <init-param>
+                        <param-name>file</param-name>
+                        <param-value>/public/index.jsp</param-value>
+                </init-param>
+        </filter>
+        <filter-mapping>
+                <filter-name>PublicBrowserFallbackResourceFilter</filter-name>
+                <url-pattern>/public/*</url-pattern>
+        </filter-mapping>
+
         <filter>
                 <filter-name>ExpiresFilter</filter-name>
                 <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
index 5769283176916e45d432c1edfafffa9625a997d1..d970762ce2cbc32bda3e5a331c501f21a8b37632 100644 (file)
@@ -5,3 +5,6 @@ tenant.ui.profile.plugin.package.name=cspace-ui-plugin-profile-publicart
 tenant.ui.profile.plugin.library.name=cspaceUIPluginProfilePublicArt
 tenant.ui.profile.plugin.version=6.0.0
 tenant.ui.profile.plugin.build.branch=master
+
+# If not set, defaults to /gateway/${tenant.shortname} on the current host.
+# tenant.public.browser.gateway.url=https://core.dev.collectionspace.org/gateway/${tenant.shortname}
diff --git a/cspace-ui/publicart/public/index.jsp b/cspace-ui/publicart/public/index.jsp
new file mode 100644 (file)
index 0000000..eff259d
--- /dev/null
@@ -0,0 +1,22 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%! String configuredGatewayUrl = "@GATEWAY_URL@"; %>
+<html>
+       <head>
+               <meta charset="UTF-8" />
+       </head>
+       <body>
+               <div id="cspace-browser"></div>
+    <script src="/cspace-ui/@PUBLIC_BROWSER_FILENAME@"></script>
+    <script>
+      cspacePublicBrowser({
+        basename: '@BASENAME@/public',
+        baseConfig: '@TENANT_SHORTNAME@',
+        gatewayUrl: '<%=
+          configuredGatewayUrl.length() > 0
+            ? configuredGatewayUrl
+            : request.getRequestURL().substring(0, request.getRequestURL().length() - request.getRequestURI().length()) + "/gateway/@TENANT_SHORTNAME@"
+        %>',
+      });
+    </script>
+       </body>
+</html>