Adding edit link to menu pages. Changing visibility of SparqlQueryDataGetter.doQuery for testing.
This commit is contained in:
parent
dafeafc5be
commit
d6925f93c6
2 changed files with 26 additions and 4 deletions
|
@ -3,7 +3,6 @@
|
||||||
package edu.cornell.mannlib.vitro.webapp.controller.freemarker;
|
package edu.cornell.mannlib.vitro.webapp.controller.freemarker;
|
||||||
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -16,10 +15,12 @@ import org.apache.commons.lang.StringUtils;
|
||||||
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.auth.permissions.SimplePermission;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ExceptionResponseValues;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.dataGetter.DataGetter;
|
import edu.cornell.mannlib.vitro.webapp.utils.dataGetter.DataGetter;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.dataGetter.DataGetterUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.dataGetter.DataGetterUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.PageDataGetterUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.PageDataGetterUtils;
|
||||||
|
@ -68,6 +69,8 @@ public class PageController extends FreemarkerHttpServlet{
|
||||||
executePageDataGetters( pageUri, vreq, getServletContext(), mapForTemplate );
|
executePageDataGetters( pageUri, vreq, getServletContext(), mapForTemplate );
|
||||||
executeDataGetters( pageUri, vreq, getServletContext(), mapForTemplate);
|
executeDataGetters( pageUri, vreq, getServletContext(), mapForTemplate);
|
||||||
|
|
||||||
|
mapForTemplate.putAll( getPageControllerValues( pageUri, vreq, getServletContext(), mapForTemplate));
|
||||||
|
|
||||||
ResponseValues rv = new TemplateResponseValues(getTemplate( mapForTemplate ), mapForTemplate);
|
ResponseValues rv = new TemplateResponseValues(getTemplate( mapForTemplate ), mapForTemplate);
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
@ -89,6 +92,25 @@ public class PageController extends FreemarkerHttpServlet{
|
||||||
mapForTemplate.putAll( PageDataGetterUtils.getDataForPage(pageUri, vreq, context) );
|
mapForTemplate.putAll( PageDataGetterUtils.getDataForPage(pageUri, vreq, context) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add any additional values to the template variable map that are related to the page.
|
||||||
|
* For example, editing links.
|
||||||
|
*/
|
||||||
|
private Map<String,Object> getPageControllerValues(
|
||||||
|
String pageUri, VitroRequest vreq, ServletContext servletContext,
|
||||||
|
Map<String, Object> mapForTemplate) {
|
||||||
|
Map<String,Object> map = new HashMap<String,Object>();
|
||||||
|
|
||||||
|
//Add editing link for page if authorized
|
||||||
|
Map<String,Object> pageMap = (Map<String, Object>) mapForTemplate.get("page");
|
||||||
|
if( PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.MANAGE_MENUS.ACTIONS) ){
|
||||||
|
String editPageUrl = UrlBuilder.getIndividualProfileUrl(pageUri, vreq);
|
||||||
|
editPageUrl = UrlBuilder.addParams(editPageUrl, DisplayVocabulary.SWITCH_TO_DISPLAY_MODEL , "1");
|
||||||
|
pageMap.put("URLToEditPage", editPageUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
private String getTemplate(Map<String, Object> mapForTemplate) {
|
private String getTemplate(Map<String, Object> mapForTemplate) {
|
||||||
//first try to get the body template from the display model RDF
|
//first try to get the body template from the display model RDF
|
||||||
|
|
|
@ -109,7 +109,7 @@ public class SparqlQueryDataGetter extends DataGetterBase implements DataGetter{
|
||||||
* Do the query and return a result. This is in its own method
|
* Do the query and return a result. This is in its own method
|
||||||
* to make testing easy.
|
* to make testing easy.
|
||||||
*/
|
*/
|
||||||
private Map<String, Object> doQuery(Map<String, String[]>parameterMap, Model queryModel){
|
protected Map<String, Object> doQuery(Map<String, String[]>parameterMap, Model queryModel){
|
||||||
|
|
||||||
if( this.queryText == null ){
|
if( this.queryText == null ){
|
||||||
log.error("no SPARQL query defined for page " + this.dataGetterURI);
|
log.error("no SPARQL query defined for page " + this.dataGetterURI);
|
||||||
|
|
Loading…
Add table
Reference in a new issue