<%-- - eperson-list.jsp - - Version: $Revision$ - - Date: $Date$ - - Copyright (c) 2002, Hewlett-Packard Company and Massachusetts - Institute of Technology. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - - Neither the name of the Hewlett-Packard Company nor the name of the - Massachusetts Institute of Technology nor the names of their - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE. --%> <%-- - Display list of E-people, with pagination - - Attributes: - - epeople - EPerson[] - all epeople to browse - sortby - Integer - field to sort by (constant from EPerson.java) - first - Integer - index of first eperson to display - multiple - if non-null, this is for selecting multiple epeople --%> <%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %> <%@ page import="org.dspace.eperson.EPerson" %> <% int PAGESIZE = 50; EPerson[] epeople = (EPerson[]) request.getAttribute("epeople"); int sortBy = ((Integer)request.getAttribute("sortby" )).intValue(); int first = ((Integer)request.getAttribute("first")).intValue(); boolean multiple = (request.getAttribute("multiple") != null); // Make sure we won't run over end of list int last = first + PAGESIZE; if (last >= epeople.length) last = epeople.length - 1; // Index of first eperson on last page int jumpEnd = ((epeople.length - 1) / PAGESIZE) * PAGESIZE; // Now work out values for next/prev page buttons int jumpFiveBack = first - PAGESIZE * 5; if (jumpFiveBack < 0) jumpFiveBack = 0; int jumpOneBack = first - PAGESIZE; if (jumpOneBack < 0) jumpOneBack = 0; int jumpOneForward = first + PAGESIZE; if (jumpOneForward > epeople.length) jumpOneForward = first; int jumpFiveForward = first + PAGESIZE * 5; if (jumpFiveForward > epeople.length) jumpFiveForward = jumpEnd; // What's the link? String sortByParam = "lastname"; if (sortBy == EPerson.EMAIL) sortByParam = "email"; if (sortBy == EPerson.ID) sortByParam = "id"; String jumpLink = request.getContextPath() + "/tools/eperson-list?multiple=" + multiple + "&sortby=" + sortByParam + "&first="; String sortLink = request.getContextPath() + "/tools/eperson-list?multiple=" + multiple + "&first=" + first + "&sortby="; %> <%-- Select E-people --%> <fmt:message key="jsp.tools.eperson-list.title"/> <%--

E-people <%= first + 1 %>-<%= last + 1 %> of <%= epeople.length %>

--%>

<%= first + 1 %> <%= last + 1 %> <%= epeople.length %>

<% if (multiple) { %> <%--

Clicking on the 'Add' button next to an e-person will add that e-person to the list on the main form.

--%>

<% } %> <%-- Controls for jumping around list--%> <%-- --%>
First < 5 Pages < 1 Page 1 Page > 5 Pages > Last

<%-- Will never actually be posted, it's just so buttons will appear --%> <%-- --%> <%-- --%> <% String row = "even"; // If this is a dialogue to select a *single* e-person, we want // to clear any existing entry in the e-person list, and // to close this window when a 'select' button is clicked String clearList = (multiple ? "" : "clearEPeople();"); String closeWindow = (multiple ? "" : "window.close();"); for (int i = first; i <= last; i++) { EPerson e = epeople[i]; // Make sure no quotes in full name will mess up our Javascript String fullname = e.getFullName().replace('\'', ' '); %> <% row = (row.equals("odd") ? "even" : "odd"); } %>
  <% if (sortBy == EPerson.ID) { %><% } else { %><% } %> <% if (sortBy == EPerson.EMAIL) { %><% } else { %><% } %><%= sortBy == EPerson.LASTNAME ? "Last Name ↑" : "Last Name" %><% if (sortBy == EPerson.LASTNAME) { %><% } else { %><% } %>First Name
<% } else { %><% } %>" onclick="javascript:<%= clearList %>addEPerson(<%= e.getID() %>, '<%= e.getEmail() %>', '<%= fullname %>');<%= closeWindow %>"/> <%= e.getID() %> <%= e.getEmail() %> <%= (e.getLastName() == null ? "" : e.getLastName()) %> <%= (e.getFirstName() == null ? "" : e.getFirstName()) %>

<%-- Controls for jumping around list--%> <%-- --%>
First < 5 Pages < 1 Page 1 Page > 5 Pages > Last
<%--

--%>

" onclick="window.close();"/>