From a7a083c7b3f25716de2d0b35645ac48d27e2ff49 Mon Sep 17 00:00:00 2001 From: jeb228 Date: Wed, 27 Oct 2010 19:57:57 +0000 Subject: [PATCH] NIHVIVO-1230 NIHVIVO-1231 Example implementation of the Freemarker templates to show revision info. --- webapp/config/web.xml | 9 +++++ .../freemarker/FreemarkerHttpServlet.java | 16 ++++---- .../freemarker/RevisionInfoController.java | 37 +++++++++++++++++++ .../freemarker/body/revisionInfo.ftl | 28 ++++++++++++++ .../freemarker/page/partials/version.ftl | 2 +- 5 files changed, 84 insertions(+), 8 deletions(-) create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java create mode 100644 webapp/web/templates/freemarker/body/revisionInfo.ftl diff --git a/webapp/config/web.xml b/webapp/config/web.xml index d01eb347d..61c79bba8 100644 --- a/webapp/config/web.xml +++ b/webapp/config/web.xml @@ -377,6 +377,15 @@ /siteAdmin.jsp + + RevisionInfoController + edu.cornell.mannlib.vitro.webapp.controller.freemarker.RevisionInfoController + + + RevisionInfoController + /revisionInfo + + ImageUploadController edu.cornell.mannlib.vitro.webapp.controller.freemarker.ImageUploadController diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java index 527b5b63c..4b4638bef 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java @@ -25,6 +25,7 @@ import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vitro.webapp.ConfigurationProperties; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.beans.Portal; +import edu.cornell.mannlib.vitro.webapp.config.RevisionInfoBean; import edu.cornell.mannlib.vitro.webapp.controller.ContactMailServlet; import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -435,7 +436,7 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { map.put("bannerImage", UrlBuilder.getUrl(themeDir + "site_icons/" + bannerImage)); } - map.put("version", getVersionInfo()); + map.put("version", getVersionInfo(urlBuilder)); return map; } @@ -479,12 +480,13 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { return copyright; } - private final Map getVersionInfo() { - Map version = new HashMap(); - // Add revision info here - version.put("number", "1.2"); // test code - to be removed - return version; - } + private final Map getVersionInfo(UrlBuilder urlBuilder) { + Map map = new HashMap(); + map.put("label", RevisionInfoBean.getBean(getServletContext()) + .getReleaseLabel()); + map.put("moreInfoUrl", urlBuilder.getPortalUrl("/revisionInfo")); + return map; + } // Subclasses may override. This serves as a default. protected String getTitle(String siteName) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java new file mode 100644 index 000000000..a0f8c5e5c --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java @@ -0,0 +1,37 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.controller.freemarker; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import edu.cornell.mannlib.vitro.webapp.config.RevisionInfoBean; +import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; + +/** + * Display the detailed revision information. + */ +public class RevisionInfoController extends FreemarkerHttpServlet { + private static final long serialVersionUID = 1L; + private static final Log log = LogFactory.getLog(RevisionInfoController.class); + private static final String TEMPLATE_DEFAULT = "revisionInfo.ftl"; + + @Override + protected ResponseValues processRequest(VitroRequest vreq) { + Map body = new HashMap(); + + body.put("revisionInfoBean", RevisionInfoBean.getBean(getServletContext())); + + return new TemplateResponseValues(TEMPLATE_DEFAULT, body); + } + + @Override + protected String getTitle(String siteName) { + return "Revision Information for " + siteName; + } + + +} diff --git a/webapp/web/templates/freemarker/body/revisionInfo.ftl b/webapp/web/templates/freemarker/body/revisionInfo.ftl new file mode 100644 index 000000000..e0c9ccebe --- /dev/null +++ b/webapp/web/templates/freemarker/body/revisionInfo.ftl @@ -0,0 +1,28 @@ +<#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> + +<#-- Template for the Revision Information page. --> + +
+

Revision Information

+ +

Build date:

+
+ ${revisionInfoBean.buildDate?datetime?string.full} +
+ +

Levels:

+ + + + + + + <#list revisionInfoBean.levelInfos as level> + + + + + + +
namereleaserevision
${level.name}${level.release}${level.revision}
+
diff --git a/webapp/web/templates/freemarker/page/partials/version.ftl b/webapp/web/templates/freemarker/page/partials/version.ftl index 1130adc4f..713e34f39 100644 --- a/webapp/web/templates/freemarker/page/partials/version.ftl +++ b/webapp/web/templates/freemarker/page/partials/version.ftl @@ -5,6 +5,6 @@ <#-- Only show version info if user is logged in --> <#if loginName??>
- Version ${version.number} + Version ${version.label}
\ No newline at end of file