user-summary.jsp 6.42 KB
Newer Older
Bill Lynch's avatar
Bill Lynch committed
1
<%--
Matt Tucker's avatar
Matt Tucker committed
2 3 4
  -	$RCSfile$
  -	$Revision$
  -	$Date$
Bill Lynch's avatar
Bill Lynch committed
5 6 7 8 9
  -
  - Copyright (C) 2004 Jive Software. All rights reserved.
  -
  - This software is published under the terms of the GNU Public License (GPL),
  - a copy of which is included in this distribution.
Matt Tucker's avatar
Matt Tucker committed
10 11 12 13
--%>

<%@ page import="org.jivesoftware.util.*,
                 org.jivesoftware.messenger.user.*,
Matt Tucker's avatar
Matt Tucker committed
14
                 java.util.*,
Matt Tucker's avatar
Matt Tucker committed
15 16
                 org.jivesoftware.messenger.user.UserManager,
                 java.text.DateFormat,
Derek DeMoro's avatar
Derek DeMoro committed
17
                 org.jivesoftware.admin.*,
Matt Tucker's avatar
Matt Tucker committed
18
                 org.jivesoftware.messenger.PresenceManager,
19 20
                 org.xmpp.packet.Presence,
                 java.net.URLEncoder"
Matt Tucker's avatar
Matt Tucker committed
21 22
%>

23
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
Bill Lynch's avatar
Bill Lynch committed
24

Derek DeMoro's avatar
Derek DeMoro committed
25 26
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager"  />
<% webManager.init(request, response, session, application, out ); %>
Matt Tucker's avatar
Matt Tucker committed
27

Derek DeMoro's avatar
Derek DeMoro committed
28 29 30 31
<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean" />
<%  // Title of this page and breadcrumbs
    String title = "User Summary";
    pageinfo.setTitle(title);
Bill Lynch's avatar
Bill Lynch committed
32
    pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb("Main", "index.jsp"));
Derek DeMoro's avatar
Derek DeMoro committed
33 34 35 36 37 38
    pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb(title, "user-summary.jsp"));
    pageinfo.setPageID("user-summary");
%>
<jsp:include page="top.jsp" flush="true" />
<jsp:include page="title.jsp" flush="true" />

Matt Tucker's avatar
Matt Tucker committed
39 40 41 42 43
<%  // Get parameters
    int start = ParamUtils.getIntParameter(request,"start",0);
    int range = ParamUtils.getIntParameter(request,"range",15);

    // Get the user manager
Derek DeMoro's avatar
Derek DeMoro committed
44
    int userCount = webManager.getUserManager().getUserCount();
Matt Tucker's avatar
Matt Tucker committed
45 46

    // Get the presence manager
47
    PresenceManager presenceManager = webManager.getPresenceManager();
Matt Tucker's avatar
Matt Tucker committed
48 49 50 51 52 53 54 55 56 57 58 59 60

    // paginator vars
    int numPages = (int)Math.ceil((double)userCount/(double)range);
    int curPage = (start/range) + 1;

    // Formatter for dates
    DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM);
%>

<p>
Below is a list of users in the system.
</p>

Bill Lynch's avatar
Bill Lynch committed
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
<%  if (request.getParameter("deletesuccess") != null) { %>

    <div class="jive-success">
    <table cellpadding="0" cellspacing="0" border="0">
    <tbody>
        <tr><td class="jive-icon"><img src="images/success-16x16.gif" width="16" height="16" border="0"></td>
        <td class="jive-icon-label">
        User deleted successfully.
        </td></tr>
    </tbody>
    </table>
    </div><br>

<%  } %>

Matt Tucker's avatar
Matt Tucker committed
76
<p>
Derek DeMoro's avatar
Derek DeMoro committed
77
Total Users: <%= webManager.getUserManager().getUserCount() %>,
Matt Tucker's avatar
Matt Tucker committed
78 79 80 81 82
<%  if (numPages > 1) { %>

    Showing <%= (start+1) %>-<%= (start+range) %>,

<%  } %>
Matt Tucker's avatar
Matt Tucker committed
83
Sorted by Username
Matt Tucker's avatar
Matt Tucker committed
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
</p>

<%  if (numPages > 1) { %>

    <p>
    Pages:
    [
    <%  for (int i=0; i<numPages; i++) {
            String sep = ((i+1)<numPages) ? " " : "";
            boolean isCurrent = (i+1) == curPage;
    %>
        <a href="user-summary.jsp?start=<%= (i*range) %>"
         class="<%= ((isCurrent) ? "jive-current" : "") %>"
         ><%= (i+1) %></a><%= sep %>

    <%  } %>
    ]
    </p>

<%  } %>

Bill Lynch's avatar
Bill Lynch committed
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
<div class="jive-table">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<thead>
    <tr>
        <th>&nbsp;</th>
        <th>Online</th>
        <th>Username</th>
        <th>Name</th>
        <th>Created</th>
        <th>Edit</th>
        <th>Delete</th>
    </tr>
</thead>
<tbody>

Matt Tucker's avatar
Matt Tucker committed
120
<%  // Print the list of users
Matt Tucker's avatar
Matt Tucker committed
121 122
    Collection<User> users = webManager.getUserManager().getUsers(start, range);
    if (users.isEmpty()) {
Matt Tucker's avatar
Matt Tucker committed
123 124 125 126 127 128 129 130 131 132
%>
    <tr>
        <td align="center" colspan="7">
            No users in the system.
        </td>
    </tr>

<%
    }
    int i = start;
Matt Tucker's avatar
Matt Tucker committed
133
    for (User user : users) {
Matt Tucker's avatar
Matt Tucker committed
134 135
        i++;
%>
Gaston Dombiak's avatar
Gaston Dombiak committed
136
    <tr class="jive-<%= (((i%2)==0) ? "even" : "odd") %>">
Matt Tucker's avatar
Matt Tucker committed
137 138 139
        <td width="1%">
            <%= i %>
        </td>
Matt Tucker's avatar
Matt Tucker committed
140 141 142 143
        <td width="1%" align="center" valign="middle">
            <%  if (presenceManager.isAvailable(user)) {
                    Presence presence = presenceManager.getPresence(user);
            %>
Derek DeMoro's avatar
Derek DeMoro committed
144
                <% if (presence.getShow() == null) { %>
Matt Tucker's avatar
Matt Tucker committed
145 146
                <img src="images/user-green-16x16.gif" width="16" height="16" border="0" alt="Available">
                <% } %>
Derek DeMoro's avatar
Derek DeMoro committed
147
                <% if (presence.getShow() == Presence.Show.chat) { %>
Matt Tucker's avatar
Matt Tucker committed
148 149
                <img src="images/user-green-16x16.gif" width="16" height="16" border="0" alt="Available to Chat">
                <% } %>
Derek DeMoro's avatar
Derek DeMoro committed
150
                <% if (presence.getShow() == Presence.Show.away) { %>
Matt Tucker's avatar
Matt Tucker committed
151 152
                <img src="images/user-yellow-16x16.gif" width="16" height="16" border="0" alt="Away">
                <% } %>
Derek DeMoro's avatar
Derek DeMoro committed
153
                <% if (presence.getShow() == Presence.Show.xa) { %>
Matt Tucker's avatar
Matt Tucker committed
154 155
                <img src="images/user-yellow-16x16.gif" width="16" height="16" border="0" alt="Extended Away">
                <% } %>
Derek DeMoro's avatar
Derek DeMoro committed
156
                <% if (presence.getShow() == Presence.Show.dnd) { %>
Matt Tucker's avatar
Matt Tucker committed
157 158
                <img src="images/user-red-16x16.gif" width="16" height="16" border="0" alt="Do not Disturb">
                <% } %>
Matt Tucker's avatar
Matt Tucker committed
159 160 161

            <%  } else { %>

Matt Tucker's avatar
Matt Tucker committed
162
                <img src="images/user-clear-16x16.gif" width="16" height="16" border="0" alt="Offline">
Matt Tucker's avatar
Matt Tucker committed
163 164 165 166

            <%  } %>
        </td>
        <td width="30%">
167
            <a href="user-properties.jsp?username=<%= URLEncoder.encode(user.getUsername(), "UTF-8") %>"><%= user.getUsername() %></a>
Matt Tucker's avatar
Matt Tucker committed
168 169
        </td>
        <td width="40%">
Matt Tucker's avatar
Matt Tucker committed
170
            <%= user.getName() %> &nbsp;
Matt Tucker's avatar
Matt Tucker committed
171 172
        </td>
        <td width="26%">
Matt Tucker's avatar
Matt Tucker committed
173
            <%= dateFormatter.format(user.getCreationDate()) %>
Matt Tucker's avatar
Matt Tucker committed
174 175
        </td>
        <td width="1%" align="center">
176
            <a href="user-edit-form.jsp?username=<%= URLEncoder.encode(user.getUsername(), "UTF-8") %>"
Matt Tucker's avatar
Matt Tucker committed
177 178 179
             title="Click to edit..."
             ><img src="images/edit-16x16.gif" width="17" height="17" border="0"></a>
        </td>
Bill Lynch's avatar
Bill Lynch committed
180
        <td width="1%" align="center" style="border-right:1px #ccc solid;">
181
            <a href="user-delete.jsp?username=<%= URLEncoder.encode(user.getUsername(), "UTF-8") %>"
Matt Tucker's avatar
Matt Tucker committed
182
             title="Click to delete..."
Matt Tucker's avatar
Matt Tucker committed
183
             ><img src="images/delete-16x16.gif" width="16" height="16" border="0"></a>
Matt Tucker's avatar
Matt Tucker committed
184 185 186 187 188 189
        </td>
    </tr>

<%
    }
%>
Bill Lynch's avatar
Bill Lynch committed
190
</tbody>
Matt Tucker's avatar
Matt Tucker committed
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
</table>
</div>

<%  if (numPages > 1) { %>

    <p>
    Pages:
    [
    <%  for (i=0; i<numPages; i++) {
            String sep = ((i+1)<numPages) ? " " : "";
            boolean isCurrent = (i+1) == curPage;
    %>
        <a href="user-summary.jsp?start=<%= (i*range) %>"
         class="<%= ((isCurrent) ? "jive-current" : "") %>"
         ><%= (i+1) %></a><%= sep %>

    <%  } %>
    ]
    </p>

<%  } %>

Bill Lynch's avatar
Bill Lynch committed
213
<jsp:include page="bottom.jsp" flush="true" />