From e620247946eb03d9860f29f7cc609a03cd31a2d9 Mon Sep 17 00:00:00 2001 From: rjy7 Date: Tue, 15 Jun 2010 22:27:08 +0000 Subject: [PATCH] NIHVIVO-646 Sort author list on add author form by authorship rank --- .../forms/addAuthorsToInformationResource.jsp | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/productMods/edit/forms/addAuthorsToInformationResource.jsp b/productMods/edit/forms/addAuthorsToInformationResource.jsp index ea39ce06..d0380327 100644 --- a/productMods/edit/forms/addAuthorsToInformationResource.jsp +++ b/productMods/edit/forms/addAuthorsToInformationResource.jsp @@ -23,11 +23,13 @@ core:authorInAuthorship (Person : Authorship) - inverse of linkedAuthor <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Arrays" %> +<%@ page import="java.util.Collections" %> <%@ page import="com.hp.hpl.jena.rdf.model.Model" %> <%@ page import="com.hp.hpl.jena.vocabulary.XSD" %> <%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.DataPropertyComparator"%> <%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%> <%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration"%> <%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.CreateLabelFromNameFields"%> @@ -121,11 +123,13 @@ SPARQL queries for existing values. --%> ?newPerson core:authorInAuthorship ?authorshipUri . + + { "formUrl" : "${formUrl}", "editKey" : "${editKey}", - "urlPatternToReturnTo" : "/entity", + "urlPatternToReturnTo" : "${returnPath}", "subject" : ["infoResource", "${subjectUriJson}" ], "predicate" : ["predicate", "${predicateUriJson}" ], @@ -229,11 +233,14 @@ SPARQL queries for existing values. --%> String subjectUri = vreq.getParameter("subjectUri"); String predicateUri = vreq.getParameter("predicateUri"); - Individual infoResource = vreq.getWebappDaoFactory().getIndividualDao().getIndividualByURI(subjectUri); + + Individual infoResource = vreq.getWebappDaoFactory().getIndividualDao().getIndividualByURI(subjectUri); List authorships = infoResource.getRelatedIndividuals(predicateUri); + String rankUri = "http://vivoweb.org/ontology/core#authorRank"; + DataPropertyComparator comp = new DataPropertyComparator(rankUri); + Collections.sort(authorships, comp); vreq.setAttribute("infoResourceName", infoResource.getName()); - vreq.setAttribute("rank", authorships.size()+1); // new author ranked last when added String linkedAuthorProperty = "http://vivoweb.org/ontology/core#linkedAuthor"; @@ -249,7 +256,7 @@ SPARQL queries for existing values. --%> request.setAttribute("customCss", customCss); %> - + @@ -259,7 +266,9 @@ SPARQL queries for existing values. --%>
    <% + String rank; for ( Individual authorship : authorships ) { + rank = authorship.getDataValue(rankUri); Individual author = authorship.getRelatedIndividual(linkedAuthorProperty); if ( author != null ) { request.setAttribute("author", author); @@ -272,7 +281,11 @@ SPARQL queries for existing values. --%> <% } + } + // A new author will be ranked last when added. + // This doesn't handle gaps in the ranking: vreq.setAttribute("rank", authorships.size()+1); + vreq.setAttribute("rank", rank+1); %>
@@ -288,10 +301,7 @@ SPARQL queries for existing values. --%>

${initialHint}

${initialHint}

- <%-- These fields will have values populated/modified by JavaScript --%> - <%--

${initialHint}

--%> - - +