From 2c6ddaab6479b6ab91d461521f9910a331dc7cc2 Mon Sep 17 00:00:00 2001 From: rjy7 Date: Mon, 30 Aug 2010 19:39:49 +0000 Subject: [PATCH] Rename Freemarker search result templates. Initial work on moving main site admin page to Freemarker: login form. --- webapp/config/web.xml | 13 +++ .../edit/FreemarkerSiteAdminController.java | 93 +++++++++++++++++++ .../controller/login/LoginTemplateHelper.java | 35 +++++++ .../FreemarkerPagedSearchController.java | 10 +- .../body/login/login-forcedPasswordChange.ftl | 3 +- .../freemarker/body/login/login-form.ftl | 4 +- .../freemarker/body/login/login-main.ftl | 9 ++ .../{searchError.ftl => search-error.ftl} | 0 ...rchResults.ftl => search-pagedResults.ftl} | 0 .../siteAdmin/siteAdmin-advancedDataTools.ftl | 3 + .../siteAdmin/siteAdmin-customReports.ftl | 3 + .../body/siteAdmin/siteAdmin-dataInput.ftl | 3 + .../body/siteAdmin/siteAdmin-main.ftl | 15 +++ .../siteAdmin/siteAdmin-ontologyEditor.ftl | 3 + .../siteAdmin/siteAdmin-siteConfiguration.ftl | 3 + 15 files changed, 189 insertions(+), 8 deletions(-) create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FreemarkerSiteAdminController.java create mode 100644 webapp/web/templates/freemarker/body/login/login-main.ftl rename webapp/web/templates/freemarker/body/search/{searchError.ftl => search-error.ftl} (100%) rename webapp/web/templates/freemarker/body/search/{pagedSearchResults.ftl => search-pagedResults.ftl} (100%) create mode 100644 webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-advancedDataTools.ftl create mode 100644 webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-customReports.ftl create mode 100644 webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-dataInput.ftl create mode 100644 webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-main.ftl create mode 100644 webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-ontologyEditor.ftl create mode 100644 webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-siteConfiguration.ftl diff --git a/webapp/config/web.xml b/webapp/config/web.xml index e8a973593..f828f78b1 100644 --- a/webapp/config/web.xml +++ b/webapp/config/web.xml @@ -352,6 +352,19 @@ SiteAdminController /siteAdmin.jsp + + + FmSiteAdminController + edu.cornell.mannlib.vitro.webapp.controller.edit.FreemarkerSiteAdminController + + + FmSiteAdminController + /fm-siteAdmin + + + FmSiteAdminController + /fm-siteAdmin.jsp + ImageUploadController diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FreemarkerSiteAdminController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FreemarkerSiteAdminController.java new file mode 100644 index 000000000..22a8a4971 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FreemarkerSiteAdminController.java @@ -0,0 +1,93 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.controller.edit; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.commons.collections.map.ListOrderedMap; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import edu.cornell.mannlib.vedit.beans.LoginFormBean; +import edu.cornell.mannlib.vedit.util.FormUtils; +import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; +import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet; +import edu.cornell.mannlib.vitro.webapp.controller.login.LoginTemplateHelper; +import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; +import freemarker.template.Configuration; + +public class FreemarkerSiteAdminController extends FreemarkerHttpServlet { + + private static final Log log = LogFactory.getLog(FreemarkerSiteAdminController.class); + + public static final String VERBOSE = "verbosePropertyListing"; + + public String getTitle(String siteName) { + return siteName + " Site Administration"; + } + + public String getBody(VitroRequest vreq, Map body, Configuration config) { + + String loginStatus = null; + + LoginFormBean loginHandler = (LoginFormBean)vreq.getSession().getAttribute("loginHandler"); + if (loginHandler != null) { + loginStatus = loginHandler.getLoginStatus(); + } + + // Not logged in: just show login form + if (loginHandler == null || !"authenticated".equals(loginStatus)) { + //return new LoginTemplateHelper(vreq).showLoginPage(vreq, body, config); + body.put("loginPanel", new LoginTemplateHelper(vreq).showLoginPage(vreq, body, config)); + return mergeBodyToTemplate("siteAdmin-main.ftl", body, config); + + } + + int securityLevel = Integer.parseInt( loginHandler.getLoginRole() ); + + if (securityLevel >= LoginFormBean.CURATOR) { + String verbose = vreq.getParameter("verbose"); + if( "true".equals(verbose)) { + vreq.getSession().setAttribute(VERBOSE, Boolean.TRUE); + } else if( "false".equals(verbose)) { + vreq.getSession().setAttribute(VERBOSE, Boolean.FALSE); + } + } + + + body.put("singlePortal", new Boolean(vreq.getFullWebappDaoFactory().getPortalDao().isSinglePortal())); + + WebappDaoFactory wadf = vreq.getFullWebappDaoFactory(); + +// Not used +// int languageProfile = wadf.getLanguageProfile(); +// String languageMode = null; +// if ( 200 <= languageProfile && languageProfile < 300 ) { +// languageMode = "OWL Mode"; +// } else if ( 100 == languageProfile ) { +// languageMode = "RDF Schema Mode"; +// } +// body.put("languageModeStr", languageMode); + + + // Create map for data input entry form + List classGroups = wadf.getVClassGroupDao().getPublicGroupsWithVClasses(true,true,false); // order by displayRank, include uninstantiated classes, don't get the counts of individuals + Iterator classGroupIt = classGroups.iterator(); + ListOrderedMap optGroupMap = new ListOrderedMap(); + while (classGroupIt.hasNext()) { + VClassGroup group = (VClassGroup)classGroupIt.next(); + List classes = group.getVitroClassList(); + optGroupMap.put(group.getPublicName(),FormUtils.makeOptionListFromBeans(classes,"URI","PickListName",null,null,false)); + } + body.put("VClassIdOptions", optGroupMap); + + + + return mergeBodyToTemplate("siteAdmin-main.ftl", body, config); + + } + +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/login/LoginTemplateHelper.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/login/LoginTemplateHelper.java index dbabb636e..a1074a42b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/login/LoginTemplateHelper.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/login/LoginTemplateHelper.java @@ -58,6 +58,7 @@ public class LoginTemplateHelper extends LoginTemplateHelperBase { super(req); } + /** Version for JSP page */ public String showLoginPage(HttpServletRequest request) { try { VitroRequest vreq = new VitroRequest(request); @@ -79,6 +80,28 @@ public class LoginTemplateHelper extends LoginTemplateHelperBase { } } + /** Version for Freemarker page */ + public String showLoginPage(VitroRequest vreq, Map body, Configuration config) { + try { + + State state = getCurrentLoginState(vreq); + log.debug("State on exit: " + state); + + switch (state) { + case LOGGED_IN: + return ""; + case FORCED_PASSWORD_CHANGE: + return doTemplate(vreq, showPasswordChangeScreen(vreq), body, config); + default: + return doTemplate(vreq, showLoginScreen(vreq), body, config); + } + } catch (Exception e) { + log.error(e); + return "

Internal server error:
" + e + "

"; + } + } + + /** * User is just starting the login process. Be sure that we have a * {@link LoginProcessBean} with the correct status. Show them the login @@ -131,6 +154,7 @@ public class LoginTemplateHelper extends LoginTemplateHelperBase { /** * We processed a response, and want to show a template. + * Version for JSP page. */ private String doTemplate(VitroRequest vreq, TemplateResponseValues values) { // Set it up like FreeMarkerHttpServlet.doGet() would do. @@ -144,6 +168,17 @@ public class LoginTemplateHelper extends LoginTemplateHelperBase { body.putAll(values.getBodyMap()); return mergeBodyToTemplate(values.getTemplateName(), body, config); } + + /** + * We processed a response, and want to show a template. + * Version for Freemarker page. + */ + private String doTemplate(VitroRequest vreq, TemplateResponseValues values, Map body, Configuration config) { + + // Add the values that we got, and merge to the template. + body.putAll(values.getBodyMap()); + return mergeBodyToTemplate(values.getTemplateName(), body, config); + } /** * Where are we in the process? Logged in? Not? Somewhere in between? diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/FreemarkerPagedSearchController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/FreemarkerPagedSearchController.java index 9180c685f..1237b7843 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/FreemarkerPagedSearchController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/FreemarkerPagedSearchController.java @@ -291,7 +291,7 @@ public class FreemarkerPagedSearchController extends FreemarkerHttpServlet imple return doSearchError(e.getMessage(), config); } - return mergeBodyToTemplate("pagedSearchResults.ftl", body, config); + return mergeBodyToTemplate("search-pagedResults.ftl", body, config); } private void alphaSortIndividuals(List beans) { @@ -752,14 +752,14 @@ public class FreemarkerPagedSearchController extends FreemarkerHttpServlet imple private String doSearchError(String message, Configuration config) { Map body = new HashMap(); body.put("message", "Search failed: " + message); - return mergeBodyToTemplate("searchError.ftl", body, config); + return mergeBodyToTemplate("search-error.ftl", body, config); } private String doNoQuery(Configuration config, Portal portal) { Map body = new HashMap(); body.put("title", "Search " + portal.getAppName()); body.put("message", "No query entered."); - return mergeBodyToTemplate("searchError.ftl", body, config); + return mergeBodyToTemplate("search-error.ftl", body, config); } private String doFailedSearch(String message, String querytext, Configuration config) { @@ -769,14 +769,14 @@ public class FreemarkerPagedSearchController extends FreemarkerHttpServlet imple message = "Search failed."; } body.put("message", message); - return mergeBodyToTemplate("searchError.ftl", body, config); + return mergeBodyToTemplate("search-error.ftl", body, config); } private String doNoHits(String querytext, Configuration config) { Map body = new HashMap(); body.put("title", "Search for '" + querytext + "'"); body.put("message", "No matching results."); - return mergeBodyToTemplate("searchError.ftl", body, config); + return mergeBodyToTemplate("search-error.ftl", body, config); } /** diff --git a/webapp/web/templates/freemarker/body/login/login-forcedPasswordChange.ftl b/webapp/web/templates/freemarker/body/login/login-forcedPasswordChange.ftl index d64da6b6e..3f9da839f 100644 --- a/webapp/web/templates/freemarker/body/login/login-forcedPasswordChange.ftl +++ b/webapp/web/templates/freemarker/body/login/login-forcedPasswordChange.ftl @@ -2,7 +2,6 @@ <#-- Log in template for accessing site admin --> -

Create Your New Password

@@ -20,4 +19,4 @@ or Cancel -
\ No newline at end of file + diff --git a/webapp/web/templates/freemarker/body/login/login-form.ftl b/webapp/web/templates/freemarker/body/login/login-form.ftl index e965209fc..504238975 100644 --- a/webapp/web/templates/freemarker/body/login/login-form.ftl +++ b/webapp/web/templates/freemarker/body/login/login-form.ftl @@ -1,6 +1,6 @@ <#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> -<#-- Log in template for accessing site admin --> +<#-- Template for login form -->