%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://vitro.mannlib.cornell.edu/vitro/tags/PropertyEditLink" prefix="edLnk" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Property" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.DataProperty" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.KeywordProperty" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.PropertyGroupDao" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="org.apache.commons.logging.Log" %>
<%@ page import="org.apache.commons.logging.LogFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.filters.VitroRequestPrep" %>
<%@ page import="edu.cornell.mannlib.vedit.beans.LoginFormBean" %>
<%!
public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.edit.dashboardPropsList.jsp");
%>
<%
boolean showSelfEdits=false;
boolean showCuratorEdits=false;
if( VitroRequestPrep.isSelfEditing(request) ) {
showSelfEdits=true;
log.debug("self editing active");
} else {
log.debug("self editing inactive");
}
if (loginHandler!=null && loginHandler.getLoginStatus()=="authenticated" && Integer.parseInt(loginHandler.getLoginRole())>=loginHandler.getEditor()) {
showCuratorEdits=true;
log.debug("curator editing active");
} else {
log.debug("curator editing inactive");
}%>
<%-- just moving this into page scope for easy use --%>
<%-- likewise --%>
<%
log.debug("Starting dashboardPropsList.jsp");
// The goal here is to retrieve a list of object and data properties appropriate for the vclass
// of the individual, by property group, and sorted the same way they would be in the public interface
Individual subject = (Individual) request.getAttribute("entity");
if (subject==null) {
throw new Error("Subject individual must be in request scope for dashboardPropsList.jsp");
}
String defaultGroupName=null;
String unassignedGroupName = (String) request.getAttribute("unassignedPropsGroupName");
if (unassignedGroupName != null && unassignedGroupName.length()>0) {
defaultGroupName = unassignedGroupName;
log.debug("found temp group attribute \""+unassignedGroupName+"\" for unassigned properties");
}
VitroRequest vreq = new VitroRequest(request);
WebappDaoFactory wdf = vreq.getWebappDaoFactory();
PropertyGroupDao pgDao = wdf.getPropertyGroupDao();
ArrayList groupsList = (ArrayList) request.getAttribute("groupsList");
if (groupsList != null) {
if (groupsList.size()>1) {%>
<% for (PropertyGroup g : groupsList) { %>
<% }%>
<% }
} else {
ArrayList mergedList = (ArrayList) request.getAttribute("dashboardPropertyList");
if (mergedList!=null) {
String lastGroupName = null;
int groupCount=0;%>
<% for (Property p : mergedList) {
String groupName = defaultGroupName; // may be null
String groupLocalName = defaultGroupName; // may be null
String groupPublicDescription=null;
String propertyLocalName = p.getLocalName() == null ? "unspecified" : p.getLocalName();
String openingGroupLocalName = (String) request.getParameter("curgroup");
if (p.getGroupURI()!=null) {
PropertyGroup pg = pgDao.getGroupByURI(p.getGroupURI());
if (pg != null) {
groupName=pg.getName();
groupLocalName=pg.getLocalName();
groupPublicDescription=pg.getPublicDescription();
}
}
if (groupName != null && !groupName.equals(lastGroupName)) {
lastGroupName=groupName;
++groupCount;
if (openingGroupLocalName == null || openingGroupLocalName.equals("")) {
openingGroupLocalName = groupLocalName;
}
if (openingGroupLocalName.equals(groupLocalName)) {%>
<% } else { %>
<% }
}
}%>
<% }
}%>