From fa247f1f79830ffb94dee4a243e1a201332f2578 Mon Sep 17 00:00:00 2001 From: rjy7 Date: Mon, 30 Aug 2010 22:06:17 +0000 Subject: [PATCH] Renamed Freemarker macro files. Implemented data input portion of main site admin page in Freemarker. --- .../edit/FreemarkerSiteAdminController.java | 39 +++++++++++++------ .../freemarker/ajax/autocompleteResults.ftl | 2 +- .../freemarker/body/individualList.ftl | 2 +- .../freemarker/body/login/login-main.ftl | 12 +++--- .../body/siteAdmin/siteAdmin-dataInput.ftl | 20 +++++++++- .../body/siteAdmin/siteAdmin-main.ftl | 11 +++--- .../web/templates/freemarker/lib/lib-form.ftl | 39 +++++++++++++++++++ .../freemarker/lib/{json.ftl => lib-json.ftl} | 0 .../lib/{listMacros.ftl => lib-list.ftl} | 0 .../freemarker/page/partials/footer.ftl | 2 +- .../freemarker/page/partials/identity.ftl | 2 +- 11 files changed, 102 insertions(+), 27 deletions(-) create mode 100644 webapp/web/templates/freemarker/lib/lib-form.ftl rename webapp/web/templates/freemarker/lib/{json.ftl => lib-json.ftl} (100%) rename webapp/web/templates/freemarker/lib/{listMacros.ftl => lib-list.ftl} (100%) 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 index 28f6e5349..e784f6a24 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FreemarkerSiteAdminController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FreemarkerSiteAdminController.java @@ -2,7 +2,9 @@ package edu.cornell.mannlib.vitro.webapp.controller.edit; +import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -11,10 +13,12 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.LoginFormBean; +import edu.cornell.mannlib.vedit.beans.Option; 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.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.login.LoginTemplateHelper; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import freemarker.template.Configuration; @@ -44,7 +48,29 @@ public class FreemarkerSiteAdminController extends FreemarkerHttpServlet { return mergeBodyToTemplate("siteAdmin-main.ftl", body, config); } + // Logged in: show editing options based on user role int securityLevel = Integer.parseInt( loginHandler.getLoginRole() ); + + WebappDaoFactory wadf = vreq.getFullWebappDaoFactory(); + + // Data input + if (securityLevel >= LoginFormBean.EDITOR) { + Map dataInputMap = new HashMap(); + dataInputMap.put("formAction", UrlBuilder.getUrl("/edit/editRequestDispatch.jsp")); + + // Create map for data input entry form options list + 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(); + LinkedHashMap orderedClassGroups = new LinkedHashMap(classGroups.size()); + while (classGroupIt.hasNext()) { + VClassGroup group = (VClassGroup)classGroupIt.next(); + List classes = group.getVitroClassList(); + orderedClassGroups.put(group.getPublicName(),FormUtils.makeOptionListFromBeans(classes,"URI","PickListName",null,null,false)); + } + dataInputMap.put("classGroupOptions", orderedClassGroups); + + body.put("dataInput", dataInputMap); + } if (securityLevel >= LoginFormBean.CURATOR) { String verbose = vreq.getParameter("verbose"); @@ -58,7 +84,7 @@ public class FreemarkerSiteAdminController extends FreemarkerHttpServlet { body.put("singlePortal", new Boolean(vreq.getFullWebappDaoFactory().getPortalDao().isSinglePortal())); - WebappDaoFactory wadf = vreq.getFullWebappDaoFactory(); + // Not used // int languageProfile = wadf.getLanguageProfile(); @@ -71,19 +97,8 @@ public class FreemarkerSiteAdminController extends FreemarkerHttpServlet { // 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/web/templates/freemarker/ajax/autocompleteResults.ftl b/webapp/web/templates/freemarker/ajax/autocompleteResults.ftl index c0ae2741d..bd65e48f5 100644 --- a/webapp/web/templates/freemarker/ajax/autocompleteResults.ftl +++ b/webapp/web/templates/freemarker/ajax/autocompleteResults.ftl @@ -3,7 +3,7 @@ <#-- Template for autocomplete results. --> <#-- -<#import "json.ftl" as json> +<#import "lib-json.ftl" as json> <@json.array results /> --> diff --git a/webapp/web/templates/freemarker/body/individualList.ftl b/webapp/web/templates/freemarker/body/individualList.ftl index 2fa7c4645..67a172a38 100644 --- a/webapp/web/templates/freemarker/body/individualList.ftl +++ b/webapp/web/templates/freemarker/body/individualList.ftl @@ -2,7 +2,7 @@ <#-- List individual members of a class. --> -<#import "listMacros.ftl" as l> +<#import "lib-list.ftl" as l>
diff --git a/webapp/web/templates/freemarker/body/login/login-main.ftl b/webapp/web/templates/freemarker/body/login/login-main.ftl index 5455cb582..75d02353d 100644 --- a/webapp/web/templates/freemarker/body/login/login-main.ftl +++ b/webapp/web/templates/freemarker/body/login/login-main.ftl @@ -2,8 +2,10 @@ <#-- Main template for the login panel --> -${loginPanel} - -${stylesheets.add("/css/login.css")} -${stylesheets.addFromTheme("/css/formedit.css")} -${scripts.add("/js/jquery.js", "/js/login/loginUtils.js")} \ No newline at end of file +<#if loginPanel??> + ${loginPanel} + + ${stylesheets.add("/css/login.css")} + ${stylesheets.addFromTheme("/css/formedit.css")} + ${scripts.add("/js/jquery.js", "/js/login/loginUtils.js")} + \ No newline at end of file diff --git a/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-dataInput.ftl b/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-dataInput.ftl index 7c4614215..51ff3d244 100644 --- a/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-dataInput.ftl +++ b/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-dataInput.ftl @@ -1,3 +1,21 @@ <#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> -<#-- Template for Site Administration Data Input --> \ No newline at end of file +<#-- Template for Site Administration data input panel --> + +<#import "lib-form.ftl" as form> + +<#if dataInput??> +
+ +

Data Input

+ +
+ + + +
+ +
+ \ No newline at end of file diff --git a/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-main.ftl b/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-main.ftl index dfd1c57d1..f696e83c4 100644 --- a/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-main.ftl +++ b/webapp/web/templates/freemarker/body/siteAdmin/siteAdmin-main.ftl @@ -7,9 +7,10 @@
- - <#if loginPanel??> - <#include "login-main.ftl"> - - + <#include "login-main.ftl"> + <#include "siteAdmin-dataInput.ftl"> + <#include "siteAdmin-siteConfiguration.ftl"> + <#include "siteAdmin-ontologyEditor.ftl"> + <#include "siteAdmin-advancedDataTools.ftl"> + <#include "siteAdmin-customReports.ftl">
\ No newline at end of file diff --git a/webapp/web/templates/freemarker/lib/lib-form.ftl b/webapp/web/templates/freemarker/lib/lib-form.ftl new file mode 100644 index 000000000..a1ee14c84 --- /dev/null +++ b/webapp/web/templates/freemarker/lib/lib-form.ftl @@ -0,0 +1,39 @@ +<#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> + +<#-- Macros for form controls --> + +<#-- + Macro: optionGroups + + Output a sequence of option groups with options. + + Input is a map of option groups to a list of Option objects. + + Usage: <@optionGroups groups=myOptionGroups /> +--> +<#macro optionGroups groups> + <#list groups?keys as group> + + <@options opts=groups[group] /> + + + + +<#----------------------------------------------------------------------------> + +<#-- + Macro: options + + Output a sequence of options. + + Input is a list of Option objects. + + Usage: <@options opts=myOptions /> +--> +<#macro options opts> + <#list opts as opt> + + + + +<#----------------------------------------------------------------------------> \ No newline at end of file diff --git a/webapp/web/templates/freemarker/lib/json.ftl b/webapp/web/templates/freemarker/lib/lib-json.ftl similarity index 100% rename from webapp/web/templates/freemarker/lib/json.ftl rename to webapp/web/templates/freemarker/lib/lib-json.ftl diff --git a/webapp/web/templates/freemarker/lib/listMacros.ftl b/webapp/web/templates/freemarker/lib/lib-list.ftl similarity index 100% rename from webapp/web/templates/freemarker/lib/listMacros.ftl rename to webapp/web/templates/freemarker/lib/lib-list.ftl diff --git a/webapp/web/templates/freemarker/page/partials/footer.ftl b/webapp/web/templates/freemarker/page/partials/footer.ftl index db0c6db64..3a7075422 100644 --- a/webapp/web/templates/freemarker/page/partials/footer.ftl +++ b/webapp/web/templates/freemarker/page/partials/footer.ftl @@ -1,6 +1,6 @@ <#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> -<#import "listMacros.ftl" as l> +<#import "lib-list.ftl" as l>