From 7ad822efce0cc39d93480a114d291c8ef1c7ed5d Mon Sep 17 00:00:00 2001 From: rjy7 Date: Thu, 11 Nov 2010 01:19:56 +0000 Subject: [PATCH] NIHVIVO-1304 Allow a widget assets template to be absent without generating an error. --- .../mannlib/vitro/webapp/web/widgets/Widget.java | 15 +++++++++++++++ webapp/web/templates/freemarker/body/test.ftl | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/Widget.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/Widget.java index e64c8121c..977667427 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/Widget.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/Widget.java @@ -2,6 +2,7 @@ package edu.cornell.mannlib.vitro.webapp.web.widgets; +import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -12,6 +13,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper; +import freemarker.cache.TemplateLoader; import freemarker.core.Environment; import freemarker.template.Configuration; import freemarker.template.TemplateHashModel; @@ -46,8 +48,20 @@ public abstract class Widget { public String doAssets() { String templateName = "widget-" + name + "-assets.ftl"; + + // Allow the assets template to be absent without generating an error. + TemplateLoader templateLoader = env.getConfiguration().getTemplateLoader(); + try { + if ( templateLoader.findTemplateSource(templateName) == null ) { + return ""; + } + } catch (IOException e) { + log.error("Error finding template source", e); + } + Map map = new HashMap(); TemplateHashModel dataModel = env.getDataModel(); + try { map.put("stylesheets", dataModel.get("stylesheets")); map.put("scripts", dataModel.get("scripts")); @@ -55,6 +69,7 @@ public abstract class Widget { } catch (TemplateModelException e) { log.error("Error getting asset values from data model."); } + return helper.processTemplateToString(templateName, map); } diff --git a/webapp/web/templates/freemarker/body/test.ftl b/webapp/web/templates/freemarker/body/test.ftl index a46320a8c..42e773781 100644 --- a/webapp/web/templates/freemarker/body/test.ftl +++ b/webapp/web/templates/freemarker/body/test.ftl @@ -6,4 +6,4 @@ <@widget name="test" /> - +${stylesheets.add("/css/testfrombody.css")}