From df683191cf98eff0101e9836702b330e3710c45e Mon Sep 17 00:00:00 2001 From: rjy7 Date: Fri, 25 Jun 2010 17:44:50 +0000 Subject: [PATCH] Changed template variable stylesheetDir to themeStylesheetDir for clarity. Added examples of how to add a script from a body template. Pass themedir to ScriptList object. --- .../freemarker/FreeMarkerHttpServlet.java | 8 ++++---- .../controller/AutocompleteController.java | 8 ++++++-- webapp/web/templates/freemarker/body/test.ftl | 1 + .../web/templates/freemarker/page/default.ftl | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+), 6 deletions(-) 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 d8239211b..97739e0ca 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 @@ -209,10 +209,10 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet { // This value will be available to any template as a path for adding a new stylesheet. // It does not contain the context path, because the methods to generate the href // attribute from the string passed in by the template automatically add the context path. - map.put("stylesheetDir", themeDir + "/css"); + map.put("themeStylesheetDir", themeDir + "/css"); map.put("stylesheets", getStylesheetList(themeDir)); - map.put("scripts", getScriptList()); + map.put("scripts", getScriptList(themeDir)); addDirectives(map); @@ -262,14 +262,14 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet { } } - private TemplateModel getScriptList() { + private TemplateModel getScriptList(String themeDir) { // For script and stylesheet lists, use an object wrapper that exposes write methods, // instead of the configuration's object wrapper, which doesn't. The templates can // add stylesheets and scripts to the lists by calling their add() methods. BeansWrapper wrapper = new DefaultObjectWrapper(); try { - return wrapper.wrap(new ScriptList()); + return wrapper.wrap(new ScriptList(themeDir)); } catch (TemplateModelException e) { log.error("Error creating script TemplateModel"); return null; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java index 385ff720e..20c7b4438 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java @@ -101,7 +101,7 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea try { - // make sure an IndividualDao is available + // make sure an IndividualDao is available if( vreq.getWebappDaoFactory() == null || vreq.getWebappDaoFactory().getIndividualDao() == null ){ log.error("makeUsableBeans() could not get IndividualDao "); @@ -120,7 +120,11 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea log.debug("query for '" + qtxt +"' is " + query.toString()); // Get the list of uris that should be excluded from the results - List urisToExclude = Arrays.asList(vreq.getParameterValues("filter")); + String filters[] = vreq.getParameterValues("filter"); + List urisToExclude = new ArrayList(); + if (filters != null) { + urisToExclude = Arrays.asList(vreq.getParameterValues("filter")); + } if (query == null ) { doNoQuery(templateName, map, config, response); diff --git a/webapp/web/templates/freemarker/body/test.ftl b/webapp/web/templates/freemarker/body/test.ftl index eeb6a30fb..9fb934231 100644 --- a/webapp/web/templates/freemarker/body/test.ftl +++ b/webapp/web/templates/freemarker/body/test.ftl @@ -50,3 +50,4 @@ <@dump var="urls" /> <@dump var="fruit" /> <@dumpDataModel /> + diff --git a/webapp/web/templates/freemarker/page/default.ftl b/webapp/web/templates/freemarker/page/default.ftl index c36262278..a9097e97d 100644 --- a/webapp/web/templates/freemarker/page/default.ftl +++ b/webapp/web/templates/freemarker/page/default.ftl @@ -36,3 +36,22 @@ <#include "partials/scripts.ftl"> + +<#-- +Three ways to add a stylesheet: + +A. In theme directory: +${stylesheets.addFromTheme("/sample.css"); +${stylesheets.add(themeStylesheetDir + "/sample.css")} + +B. Any location +${stylesheets.add("/edit/forms/css/sample.css)"} + +To add a script: + +A. In theme directory: +${scripts.addFromTheme("/sample.js"); + +B. Any location +${scripts("/edit/forms/js/sample.js)"} +--> \ No newline at end of file