Change verbose property switch from a form element to an anchor element.

This commit is contained in:
rjy7 2011-03-16 18:20:25 +00:00
parent 28d9155283
commit 1bc5db2cd8
2 changed files with 23 additions and 22 deletions

View file

@ -125,7 +125,7 @@ public class IndividualController extends FreemarkerHttpServlet {
body.put("relatedSubject", getRelatedSubject(vreq)); body.put("relatedSubject", getRelatedSubject(vreq));
body.put("namespaces", namespaces); body.put("namespaces", namespaces);
body.put("temporalVisualizationEnabled", getTemporalVisualizationFlag()); body.put("temporalVisualizationEnabled", getTemporalVisualizationFlag());
body.put("verbosePropertyForm", getVerbosePropertyFormValues(vreq)); body.put("verbosePropertySwitch", getVerbosePropertyValues(vreq));
IndividualTemplateModel itm = getIndividualTemplateModel(vreq, individual); IndividualTemplateModel itm = getIndividualTemplateModel(vreq, individual);
/* We need to expose non-getters in displaying the individual's property list, /* We need to expose non-getters in displaying the individual's property list,
@ -154,7 +154,7 @@ public class IndividualController extends FreemarkerHttpServlet {
EditSubmission.clearAllEditSubmissionsInSession(session); EditSubmission.clearAllEditSubmissionsInSession(session);
} }
private Map<String, Object> getVerbosePropertyFormValues(VitroRequest vreq) { private Map<String, Object> getVerbosePropertyValues(VitroRequest vreq) {
Map<String, Object> map = null; Map<String, Object> map = null;
@ -176,18 +176,20 @@ public class IndividualController extends FreemarkerHttpServlet {
vreq.getSession().setAttribute("verbosePropertyDisplay", verboseValue); vreq.getSession().setAttribute("verbosePropertyDisplay", verboseValue);
map = new HashMap<String, Object>(); map = new HashMap<String, Object>();
String formAction = vreq.getRequestURI();
// Append query string for current page, including uri param for individuals in non-default namespace.
String queryString = vreq.getQueryString();
if (! StringUtils.isBlank(queryString)) {
formAction += "?" + queryString;
}
map.put("action", formAction);
// NB Query params on form action url not recognized for get (also makes processing easier, else
// we'd need to strip the verbose param out of the query string).
map.put("method", "post");
map.put("currentValue", verboseValue); map.put("currentValue", verboseValue);
map.put("newValue", String.valueOf(!verboseValue));
String url = vreq.getRequestURI() + "?verbose=" + !verboseValue;
// Append request query string, except for current verbose value, to url
String queryString = vreq.getQueryString();
if (queryString != null) {
String[] params = queryString.split("&");
for (String param : params) {
if (! param.startsWith("verbose=")) {
url += "&" + param;
}
}
}
map.put("url", url);
} else { } else {
vreq.getSession().setAttribute("verbosePropertyDisplay", false); vreq.getSession().setAttribute("verbosePropertyDisplay", false);
} }

View file

@ -2,19 +2,18 @@
<#-- Template for admin panel on individual profile page --> <#-- Template for admin panel on individual profile page -->
<#import "lib-form.ftl" as form>
<#if individual.showAdminPanel> <#if individual.showAdminPanel>
<section id="admin"> <section id="admin">
<h3>Admin Panel</h3><a class="edit-individual" href="${individual.editUrl}">Edit this individual</a> <h3>Admin Panel</h3><a class="edit-individual" href="${individual.editUrl}">Edit this individual</a>
<#if verbosePropertyForm??> <#if verbosePropertySwitch??>
<#assign formId = "verbosePropertyForm"> <#assign anchorId = "verbosePropertySwitch">
<#assign currentValue = verbosePropertyForm.currentValue?string("on", "off")> <#assign currentValue = verbosePropertySwitch.currentValue?string("on", "off")>
<#assign newValue = verbosePropertyForm.currentValue?string("off", "on")> <#assign newValue = verbosePropertySwitch.currentValue?string("off", "on")>
<form id="${formId}" action="${verbosePropertyForm.action}#${formId}" method="${verbosePropertyForm.method}">
<input type="hidden" name="verbose" value="${verbosePropertyForm.newValue}" />
<span>Verbose property display is <b>${currentValue}</b> | </span> <span>Verbose property display is <b>${currentValue}</b> | </span>
<input type="submit" id="submit" class="small" value="Turn ${newValue}" /> <a id="${anchorId}" href="${verbosePropertySwitch.url}#${anchorId}">Turn ${newValue}</a>
</form>
</#if> </#if>
<p class="uri-link">Resource URI: <a href="${individual.uri}" target="_blank">${individual.uri}</a></p> <p class="uri-link">Resource URI: <a href="${individual.uri}" target="_blank">${individual.uri}</a></p>