Files
DSpace/dspace/jsp/tools/group-select-list.jsp
2005-11-09 22:18:53 +00:00

254 lines
11 KiB
Plaintext

<%--
- group-select-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 Groups, with pagination
-
- Attributes:
-
- groups - Group[] - all groups to browse
- sortby - Integer - field to sort by (constant from Group.java)
- first - Integer - index of first group to display
- multiple - if non-null, this is for selecting multiple groups
--%>
<%@ 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.Group" %>
<%
int PAGESIZE = 50;
Group[] groups =
(Group[]) request.getAttribute("groups");
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 >= groups.length) last = groups.length - 1;
// Index of first group on last page
int jumpEnd = ((groups.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 > groups.length) jumpOneForward = first;
int jumpFiveForward = first + PAGESIZE * 5;
if (jumpFiveForward > groups.length) jumpFiveForward = jumpEnd;
// What's the link?
String sortByParam = "name";
if (sortBy == Group.ID) sortByParam = "id";
String jumpLink = request.getContextPath() + "/tools/group-select-list?multiple=" + multiple + "&sortby=" + sortByParam + "&first=";
String sortLink = request.getContextPath() + "/tools/group-select-list?multiple=" + multiple + "&first=" + first + "&sortby=";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<%-- <title>Select Groups</title> --%>
<title><fmt:message key="jsp.tools.group-select-list.title"/></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="<%= request.getContextPath() %>/styles.css.jsp" type="text/css"/>
<link rel="shortcut icon" href="<%= request.getContextPath() %>/favicon.ico" type="image/x-icon"/>
<script type="text/javascript">
<!-- Begin
// Add the selected items to main group list by calling method of parent
function addGroup(id, name)
{
self.opener.addGroup(id, name);
}
// Clear selected items from main group list
function clearGroups()
{
var list = self.opener.document.forms[0].group_ids;
while (list.options.length > 0)
{
list.options[0] = null;
}
}
// End -->
</script>
</head>
<body class="pageContents">
<%-- <h3>Groups <%= first + 1 %>-<%= last + 1 %> of <%= groups.length %></h3> --%>
<h3><fmt:message key="jsp.tools.group-select-list.heading">
<fmt:param><%= first + 1 %></fmt:param>
<fmt:param><%= last + 1 %></fmt:param>
<fmt:param><%= groups.length %></fmt:param>
</fmt:message></h3>
<%
if (multiple)
{ %>
<%-- <p class="submitFormHelp">Clicking on the 'Add' button next to a group will add that
group to the list on the main form. </p> --%>
<p class="submitFormHelp"><fmt:message key="jsp.tools.group-select-list.info1"/></p>
<% } %>
<%-- Controls for jumping around list--%>
<table width="99%">
<tr>
<%-- <td width="17%" align="center"><small><strong><a href="<%= jumpLink %>0">First</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveBack %>">&lt; 5 Pages</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneBack %>">&lt; 1 Page</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneForward %>">1 Page &gt;</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveForward %>">5 Pages &gt;</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpEnd %>">Last</A></strong></small></td>
--%>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %>0"><fmt:message key="jsp.tools.group-select-list.jump.first"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveBack %>"><fmt:message key="jsp.tools.group-select-list.jump.five-back"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneBack %>"><fmt:message key="jsp.tools.group-select-list.jump.one-back"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneForward %>"><fmt:message key="jsp.tools.group-select-list.jump.one-forward"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveForward %>"><fmt:message key="jsp.tools.group-select-list.jump.five-forward"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpEnd %>"><fmt:message key="jsp.tools.group-select-list.jump.last"/></a></strong></small></td>
</tr>
</table>
<br/>
<form method="get" action=""> <%-- Will never actually be posted, it's just so buttons will appear --%>
<table class="miscTable" align="center" summary="Group list">
<tr>
<th id="t1" class="oddRowOddCol">&nbsp;</th>
<th id="t2" class="oddRowEvenCol"><%
if (sortBy == Group.ID)
{
%><strong><fmt:message key="jsp.tools.group-select-list.th.id.sortedby" /></strong><%
}
else
{
%><a href="<%= sortLink %>id"><fmt:message key="jsp.tools.group-select-list.th.id" /></a><%
}
%></th>
<th id="t3" class="oddRowOddCol"><%
if (sortBy == Group.NAME)
{
%><strong><fmt:message key="jsp.tools.group-select-list.th.name.sortedby" /></strong><%
}
else
{
%><a href="<%= sortLink %>name"><fmt:message key="jsp.tools.group-select-list.th.name" /></a><%
}
%></th>
</tr>
<%
String row = "even";
// If this is a dialogue to select a *single* group, we want
// to clear any existing entry in the group list, and
// to close this window when a 'select' button is clicked
String clearList = (multiple ? "" : "clearGroups();" );
String closeWindow = (multiple ? "" : "window.close();");
for (int i = first; i <= last; i++)
{
Group g = groups[i];
// Make sure no quotes in full name will mess up our Javascript
String fullname = g.getName().replace('\'', ' ');
%>
<tr>
<td headers="t1" class="<%= row %>RowOddCol">
<input type="button" value="<%
if (multiple) { %><fmt:message key="jsp.tools.general.add"/><% }
else { %><fmt:message key="jsp.tools.general.select"/><% } %>" onclick="javascript:<%= clearList %>addGroup(<%= g.getID() %>, '<%= fullname %>');<%= closeWindow %>"/></td>
<td headers="t2" class="<%= row %>RowEvenCol"><%= g.getID() %></td>
<td headers="t3" class="<%= row %>RowOddCol"> <%= g.getName()%></td>
</tr>
<%
row = (row.equals("odd") ? "even" : "odd");
}
%>
</table>
<br/>
<%-- Controls for jumping around list--%>
<table width="99%">
<tr>
<%-- <td width="17%" align="center"><small><strong><a href="<%= jumpLink %>0">First</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveBack %>">&lt; 5 Pages</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneBack %>">&lt; 1 Page</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneForward %>">1 Page &gt;</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveForward %>">5 Pages &gt;</A></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpEnd %>">Last</A></strong></small></td>
--%>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %>0"><fmt:message key="jsp.tools.group-select-list.jump.first"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveBack %>"><fmt:message key="jsp.tools.group-select-list.jump.five-back"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneBack %>"><fmt:message key="jsp.tools.group-select-list.jump.one-back"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpOneForward %>"><fmt:message key="jsp.tools.group-select-list.jump.one-forward"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpFiveForward %>"><fmt:message key="jsp.tools.group-select-list.jump.five-forward"/></a></strong></small></td>
<td width="17%" align="center"><small><strong><a href="<%= jumpLink %><%= jumpEnd %>"><fmt:message key="jsp.tools.group-select-list.jump.last"/></a></strong></small></td>
</tr>
</table>
<%-- <p align="center"><input type="button" value="Close" onClick="window.close();"></p> --%>
<p align="center"><input type="button" value="<fmt:message key="jsp.tools.group-select-list.close.button"/>" onclick="window.close();"/></p>
</form>
</body>
</html>