This commit is contained in:
rjy7 2010-12-17 16:34:09 +00:00
parent 92566579f5
commit e07a824bf8
9 changed files with 71 additions and 48 deletions

View file

@ -56,9 +56,9 @@ import edu.cornell.mannlib.vitro.webapp.search.beans.VitroQueryWrapper;
import edu.cornell.mannlib.vitro.webapp.utils.NamespaceMapper; import edu.cornell.mannlib.vitro.webapp.utils.NamespaceMapper;
import edu.cornell.mannlib.vitro.webapp.utils.NamespaceMapperFactory; import edu.cornell.mannlib.vitro.webapp.utils.NamespaceMapperFactory;
import edu.cornell.mannlib.vitro.webapp.web.ContentType; import edu.cornell.mannlib.vitro.webapp.web.ContentType;
import edu.cornell.mannlib.vitro.webapp.web.functions.IndividualUrlMethod;
import edu.cornell.mannlib.vitro.webapp.web.jsptags.StringProcessorTag; import edu.cornell.mannlib.vitro.webapp.web.jsptags.StringProcessorTag;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.IndividualTemplateModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.IndividualTemplateModel;
import freemarker.ext.beans.BeansWrapper;
/** /**
* Handles requests for entity information. * Handles requests for entity information.
@ -128,6 +128,8 @@ public class IndividualController extends FreemarkerHttpServlet {
*/ */
body.put("individual", ind); //getNonDefaultBeansWrapper(BeansWrapper.EXPOSE_SAFE).wrap(ind)); body.put("individual", ind); //getNonDefaultBeansWrapper(BeansWrapper.EXPOSE_SAFE).wrap(ind));
body.put("url", new IndividualUrlMethod());
String template = getIndividualTemplate(individual); String template = getIndividualTemplate(individual);
return new TemplateResponseValues(template, body); return new TemplateResponseValues(template, body);

View file

@ -7,15 +7,10 @@ import java.io.StringWriter;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper;
import freemarker.core.Environment; import freemarker.core.Environment;
import freemarker.template.Configuration;
import freemarker.template.Template; import freemarker.template.Template;
import freemarker.template.TemplateDirectiveModel; import freemarker.template.TemplateDirectiveModel;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;

View file

@ -0,0 +1,30 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.web.functions;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import freemarker.core.Environment;
import freemarker.template.TemplateMethodModel;
import freemarker.template.TemplateModelException;
public class IndividualUrlMethod implements TemplateMethodModel {
@Override
public String exec(List args) throws TemplateModelException {
if (args.size() != 1) {
throw new TemplateModelException("Wrong number of arguments");
}
String uri = (String) args.get(0);
Environment env = Environment.getCurrentEnvironment();
HttpServletRequest request = (HttpServletRequest) env.getCustomAttribute("request");
VitroRequest vreq = new VitroRequest(request);
return UrlBuilder.getIndividualProfileUrl(uri, vreq.getWebappDaoFactory());
}
}

View file

@ -32,20 +32,20 @@ public class BrowseWidget extends Widget {
@Override @Override
protected WidgetTemplateValues process(Environment env, Map params, protected WidgetTemplateValues process(Environment env, Map params,
HttpServletRequest request, ServletContext context) throws Exception VitroRequest vreq, ServletContext context) throws Exception
{ {
Mode mode = getMode( request, params ); Mode mode = getMode( vreq, params );
switch( mode ){ switch( mode ){
case VCLASS_ALPHA: case VCLASS_ALPHA:
return doClassAlphaDisplay(env,params,request,context); return doClassAlphaDisplay(env,params,vreq,context);
case CLASS_GROUP: case CLASS_GROUP:
return doClassGroupDisplay(env, params, request, context); return doClassGroupDisplay(env, params, vreq, context);
case VCLASS: case VCLASS:
return doClassDisplay(env, params, request, context); return doClassDisplay(env, params, vreq, context);
case ALL_CLASS_GROUPS: case ALL_CLASS_GROUPS:
return doAllClassGroupsDisplay(env, params, request, context); return doAllClassGroupsDisplay(env, params, vreq, context);
default: default:
return doAllClassGroupsDisplay(env, params, request, context); return doAllClassGroupsDisplay(env, params, vreq, context);
} }
} }
@ -56,8 +56,8 @@ public class BrowseWidget extends Widget {
} }
protected WidgetTemplateValues doAllClassGroupsDisplay(Environment env, Map params, protected WidgetTemplateValues doAllClassGroupsDisplay(Environment env, Map params,
HttpServletRequest request, ServletContext context) { VitroRequest vreq, ServletContext context) {
Map<String,Object> body = getAllClassGroupData(request, params); Map<String,Object> body = getAllClassGroupData(vreq, params);
try { try {
body.put("urls",env.getDataModel().get("urls")); body.put("urls",env.getDataModel().get("urls"));
body.put("urlMapping",env.getDataModel().get("urlMapping")); body.put("urlMapping",env.getDataModel().get("urlMapping"));
@ -69,10 +69,9 @@ public class BrowseWidget extends Widget {
return new WidgetTemplateValues(macroName, body); return new WidgetTemplateValues(macroName, body);
} }
protected Map<String,Object> getAllClassGroupData(HttpServletRequest request, Map params){ protected Map<String,Object> getAllClassGroupData(VitroRequest vreq, Map params){
Map<String,Object> map = new HashMap<String,Object>(); Map<String,Object> map = new HashMap<String,Object>();
VitroRequest vreq = new VitroRequest(request);
List<VClassGroup> classGroups = List<VClassGroup> classGroups =
vreq.getWebappDaoFactory().getVClassGroupDao().getPublicGroupsWithVClasses(); vreq.getWebappDaoFactory().getVClassGroupDao().getPublicGroupsWithVClasses();
@ -85,9 +84,9 @@ public class BrowseWidget extends Widget {
} }
protected WidgetTemplateValues doClassDisplay(Environment env, Map params, protected WidgetTemplateValues doClassDisplay(Environment env, Map params,
HttpServletRequest request, ServletContext context) { VitroRequest vreq, ServletContext context) {
Map<String,Object> body = getClassData(request,params); Map<String,Object> body = getClassData(vreq,params);
try { try {
body.put("urls",env.getDataModel().get("urls")); body.put("urls",env.getDataModel().get("urls"));
@ -100,13 +99,12 @@ public class BrowseWidget extends Widget {
return new WidgetTemplateValues(macroName, body); return new WidgetTemplateValues(macroName, body);
} }
private Map<String, Object> getClassData(HttpServletRequest request, Map params) { private Map<String, Object> getClassData(VitroRequest vreq, Map params) {
Map<String,Object> map = new HashMap<String,Object>(); Map<String,Object> map = new HashMap<String,Object>();
map.putAll(getClassGroupData(request, params)); map.putAll(getClassGroupData(vreq, params));
String classUri = getParam(Mode.VCLASS, request, params); String classUri = getParam(Mode.VCLASS, vreq, params);
VitroRequest vreq = new VitroRequest(request);
VClass vclass = vreq.getWebappDaoFactory().getVClassDao().getVClassByURI(classUri); VClass vclass = vreq.getWebappDaoFactory().getVClassDao().getVClassByURI(classUri);
map.put("class", new VClassTemplateModel(vclass)); map.put("class", new VClassTemplateModel(vclass));
@ -123,9 +121,9 @@ public class BrowseWidget extends Widget {
} }
protected WidgetTemplateValues doClassGroupDisplay(Environment env, protected WidgetTemplateValues doClassGroupDisplay(Environment env,
Map params, HttpServletRequest request, ServletContext context) { Map params, VitroRequest vreq, ServletContext context) {
Map<String,Object> body = getClassGroupData(request,params); Map<String,Object> body = getClassGroupData(vreq,params);
try { try {
body.put("urls",env.getDataModel().get("urls")); body.put("urls",env.getDataModel().get("urls"));
@ -138,11 +136,10 @@ public class BrowseWidget extends Widget {
return new WidgetTemplateValues(macroName, body); return new WidgetTemplateValues(macroName, body);
} }
protected Map<String, Object> getClassGroupData(HttpServletRequest request, Map params) { protected Map<String, Object> getClassGroupData(VitroRequest vreq, Map params) {
Map<String,Object> map = new HashMap<String,Object>(); Map<String,Object> map = new HashMap<String,Object>();
String vcgName = getParam(Mode.CLASS_GROUP, request, params); String vcgName = getParam(Mode.CLASS_GROUP, vreq, params);
VitroRequest vreq = new VitroRequest(request);
VClassGroup vcg = vreq.getWebappDaoFactory().getVClassGroupDao().getGroupByName(vcgName); VClassGroup vcg = vreq.getWebappDaoFactory().getVClassGroupDao().getGroupByName(vcgName);
vreq.getWebappDaoFactory().getVClassDao().addVClassesToGroup(vcg, false, true); vreq.getWebappDaoFactory().getVClassDao().addVClassesToGroup(vcg, false, true);

View file

@ -13,6 +13,7 @@ import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vedit.beans.LoginStatusBean;
import edu.cornell.mannlib.vitro.webapp.ConfigurationProperties; import edu.cornell.mannlib.vitro.webapp.ConfigurationProperties;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route;
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean; import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean;
@ -67,14 +68,14 @@ public class LoginWidget extends Widget {
@Override @Override
protected WidgetTemplateValues process(Environment env, Map params, protected WidgetTemplateValues process(Environment env, Map params,
HttpServletRequest request, ServletContext context) { VitroRequest vreq, ServletContext context) {
WidgetTemplateValues values = null; WidgetTemplateValues values = null;
TemplateModel urls = null; TemplateModel urls = null;
try { try {
urls = env.getDataModel().get("urls"); urls = env.getDataModel().get("urls");
State state = getCurrentLoginState(request); State state = getCurrentLoginState(vreq);
log.debug("State on exit: " + state); log.debug("State on exit: " + state);
switch (state) { switch (state) {
@ -82,17 +83,17 @@ public class LoginWidget extends Widget {
// On the login page itself, show a message that the user is already logged in. // On the login page itself, show a message that the user is already logged in.
// Otherwise, when redirecting to login page from a page that the logged-in user // Otherwise, when redirecting to login page from a page that the logged-in user
// doesn't have access to, we would just show a blank page. // doesn't have access to, we would just show a blank page.
if (request.getServletPath().equals(Route.LOGIN.path())) { if (vreq.getServletPath().equals(Route.LOGIN.path())) {
values = showMessageToLoggedInUser(request); values = showMessageToLoggedInUser(vreq);
break; break;
} else { } else {
return null; return null;
} }
case FORCED_PASSWORD_CHANGE: case FORCED_PASSWORD_CHANGE:
values = showPasswordChangeScreen(request); values = showPasswordChangeScreen(vreq);
break; break;
default: default:
values = showLoginScreen(request); values = showLoginScreen(vreq);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e); log.error(e);

View file

@ -6,7 +6,6 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -25,7 +24,7 @@ public class SelectListWidget extends Widget {
@Override @Override
protected WidgetTemplateValues process(Environment env, Map params, protected WidgetTemplateValues process(Environment env, Map params,
HttpServletRequest request, ServletContext context) { VitroRequest vreq, ServletContext context) {
Object obj = params.get("fieldName"); Object obj = params.get("fieldName");
if( obj == null || !(obj instanceof SimpleScalar)){ if( obj == null || !(obj instanceof SimpleScalar)){
@ -38,9 +37,8 @@ public class SelectListWidget extends Widget {
throw new Error("SelectListWidget must have a parameter 'fieldName' of type String"); throw new Error("SelectListWidget must have a parameter 'fieldName' of type String");
} }
VitroRequest vreq = new VitroRequest(request); HttpSession session = vreq.getSession(false);
HttpSession session = request.getSession(false); EditConfiguration editConfig = EditConfiguration.getConfigFromSession(session,vreq);
EditConfiguration editConfig = EditConfiguration.getConfigFromSession(session,request);
WebappDaoFactory wdf; WebappDaoFactory wdf;
if (editConfig != null) { if (editConfig != null) {

View file

@ -6,19 +6,19 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vedit.beans.LoginStatusBean;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import freemarker.core.Environment; import freemarker.core.Environment;
public class TestWidget extends Widget { public class TestWidget extends Widget {
@Override @Override
protected WidgetTemplateValues process(Environment env, Map params, protected WidgetTemplateValues process(Environment env, Map params,
HttpServletRequest request, ServletContext context) { VitroRequest vreq, ServletContext context) {
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
String macroName; String macroName;
if (LoginStatusBean.getBean(request).isLoggedIn()) { if (LoginStatusBean.getBean(vreq).isLoggedIn()) {
map.put("status", "logged in"); map.put("status", "logged in");
macroName = "loggedIn"; macroName = "loggedIn";
} else { } else {

View file

@ -10,11 +10,11 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import freemarker.core.Environment; import freemarker.core.Environment;
import freemarker.core.Macro; import freemarker.core.Macro;
import freemarker.template.Template; import freemarker.template.Template;
@ -52,13 +52,13 @@ public abstract class Widget {
} }
public String doMarkup(Environment env, Map params) { public String doMarkup(Environment env, Map params) {
HttpServletRequest request = (HttpServletRequest) env.getCustomAttribute("request"); VitroRequest vreq = (VitroRequest) env.getCustomAttribute("vreq");
ServletContext context = (ServletContext) env.getCustomAttribute("context"); ServletContext context = (ServletContext) env.getCustomAttribute("context");
WidgetTemplateValues values = null; WidgetTemplateValues values = null;
try { try {
values = process(env, params, request, context); values = process(env, params, vreq, context);
} catch (Exception e) { } catch (Exception e) {
log.error(e, e); log.error(e, e);
} }
@ -100,7 +100,7 @@ public abstract class Widget {
// } // }
protected abstract WidgetTemplateValues process(Environment env, Map params, protected abstract WidgetTemplateValues process(Environment env, Map params,
HttpServletRequest request, ServletContext context) throws Exception; VitroRequest vreq, ServletContext context) throws Exception;
private String processMacroToString(Environment env, String widgetName, Macro macro, Map<String, Object> map) { private String processMacroToString(Environment env, String widgetName, Macro macro, Map<String, Object> map) {
StringWriter out = new StringWriter(); StringWriter out = new StringWriter();

View file

@ -2,4 +2,4 @@
<#-- Default object property statement short view template --> <#-- Default object property statement short view template -->
<a href="${statement.objectUrl}">${statement.name!}</a> ${statement.moniker!} <a href="${url(statement.object)}">${statement.name!}</a> ${statement.moniker!}