Commit d2b40a9c authored by Derek DeMoro's avatar Derek DeMoro Committed by derek

Adding new Group Edit Page and added new "Add user" during Group create.


git-svn-id: http://svn.igniterealtime.org/svn/repos/messenger/trunk@803 b35dd754-fafc-0310-a699-88a17e54d16e
parent a26f4017
......@@ -99,6 +99,10 @@
url="group-properties.jsp"
description="Click to edit the groups's properties" />
<item id="group-edit" name="Edit Group"
url="group-edit-form.jsp"
description="Click to edit the group" />
<item id="group-delete" name="Delete Group"
url="group-delete.jsp"
description="Click to delete the group" />
......
......@@ -8,8 +8,8 @@
- This software is published under the terms of the GNU Public License (GPL),
- a copy of which is included in this distribution.
--%>
<%@ page import="org.jivesoftware.util.*,
<%@ page
import ="org.jivesoftware.util.*,
java.util.HashMap,
java.util.Map,
java.util.*,
......@@ -23,34 +23,30 @@
org.dom4j.xpath.DefaultXPath,
org.dom4j.*,
org.jivesoftware.messenger.group.*"
errorPage="error.jsp"
errorPage="error.jsp"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager"/>
<jsp:useBean id="errors" class="java.util.HashMap"/>
<%
webManager.init(request, response, session, application, out);
%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
<jsp:useBean id="errors" class="java.util.HashMap" />
<% webManager.init(request, response, session, application, out ); %>
<% // Get parameters //
<% // Get parameters //
boolean create = request.getParameter("create") != null;
boolean cancel = request.getParameter("cancel") != null;
String name = ParamUtils.getParameter(request,"name");
String description = ParamUtils.getParameter(request,"description");
String name = ParamUtils.getParameter(request, "name");
String description = ParamUtils.getParameter(request, "description");
String users = ParamUtils.getParameter(request, "users");
// Handle a cancel
if (cancel) {
response.sendRedirect("group-summary.jsp");
return;
}
// Handle a request to create a group:
if (create) {
// Validate
if (name == null) {
errors.put("name","");
errors.put("name", "");
}
// do a create if there were no errors
if (errors.size() == 0) {
try {
......@@ -58,122 +54,139 @@
if (description != null) {
newGroup.setDescription(description);
}
String hostName = webManager.getXMPPServer().getServerInfo().getName();
StringTokenizer tokenizer = new StringTokenizer(users, ",");
while (tokenizer.hasMoreTokens()) {
String tok = tokenizer.nextToken();
String address = tok;
if (address.indexOf("@") == -1) {
address = address + "@" + hostName;
}
newGroup.getMembers().add(address);
}
// Successful, so redirect
response.sendRedirect("group-properties.jsp?success=true&group=" + newGroup.getName());
return;
}
catch (GroupAlreadyExistsException e) {
e.printStackTrace();
errors.put("groupAlreadyExists","");
errors.put("groupAlreadyExists", "");
}
catch (Exception e) {
e.printStackTrace();
errors.put("general","");
errors.put("general", "");
Log.error(e);
}
}
}
%>
<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean" />
<% // Title of this page and breadcrumbs
<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean"/>
<% // Title of this page and breadcrumbs
String title = "Create Group";
pageinfo.setTitle(title);
pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb("Main", "index.jsp"));
pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb(title, "group-create.jsp"));
pageinfo.setPageID("group-create");
%>
<jsp:include page="top.jsp" flush="true" />
<jsp:include page="title.jsp" flush="true" />
<c:set var="submit" value="${param.create}" />
<c:set var="errors" value="${errors}" />
<% if (errors.get("general") != 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">
Error creating the group. Please check your error logs.
</td></tr>
</tbody>
</table>
</div><br>
<% } %>
<p>Use the form below to create a new group.</p>
<form name="f" action="group-create.jsp" method="post">
<fieldset>
<legend>Create New Group</legend>
<div>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tr valign="top">
<td width="1%" nowrap>
<label for="gname">Group Name:</label> *
</td>
<td width="99%">
<input type="text" name="name" size="30" maxlength="75" value="<%= ((name!=null) ? name : "") %>"
id="gname">
<% if (errors.get("name") != null) { %>
<span class="jive-error-text">
Invalid name.
</span>
<% } else if (errors.get("groupAlreadyExists") != null) { %>
<span class="jive-error-text">
Group already exists - please choose a different name.
</span>
<% } %>
</td>
</tr>
<tr valign="top">
<td width="1%" nowrap>
<label for="gdesc">Description:</label>
</td>
<td width="99%">
<textarea name="description" cols="30" rows="5" id="gdesc"
><%= ((description!=null) ? description : "") %></textarea>
<% if (errors.get("description") != null) { %>
<span class="jive-error-text">
Invalid description.
</span>
<% } %>
</td>
</tr>
</table>
<br>
<span class="jive-description">
* Required fields
</span>
</div>
</fieldset>
<br><br>
<input type="submit" name="create" value="Create Group">
<input type="submit" name="cancel" value="Cancel">
</form>
<script language="JavaScript" type="text/javascript">
document.f.name.focus();
function checkFields() {
}
</script>
<jsp:include page="bottom.jsp" flush="true" />
<jsp:include page="top.jsp" flush="true"/>
<jsp:include page="title.jsp" flush="true"/>
<c:set var="submit" value="${param.create}"/>
<c:set var="errors" value="${errors}"/>
<%
if (errors.get("general") != 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">
Error creating the group. Please check your error logs.
</td>
</tr>
</tbody>
</table>
</div>
<br>
<%
}
%>
<p>
Use the form below to create a new group.</p>
<form name="f" action="group-create.jsp" method="post">
<fieldset>
<legend>
Create New Group
</legend>
<div>
<table cellpadding="3" cellspacing="0" border="0" width="100%">
<tr valign="top">
<td width="1%" nowrap>
<label for="gname">Group Name:</label>
*
</td>
<td width="99%">
<input type="text" name="name" size="30" maxlength="75"
value="<%= ((name != null) ? name : "") %>" id="gname">
<%
if (errors.get("name") != null) {
%>
<span class="jive-error-text"> Invalid name. </span>
<%
}
else if (errors.get("groupAlreadyExists") != null) {
%>
<span class="jive-error-text"> Group already exists - please choose a different
name. </span>
<%
}
%>
</td>
</tr>
<tr valign="top">
<td width="1%" nowrap>
<label for="gdesc">Description:</label>
</td>
<td width="99%">
<textarea name="description" cols="30" rows="5" id="gdesc"><%= ((description != null) ? description : "") %></textarea>
<%
if (errors.get("description") != null) {
%>
<span class="jive-error-text"> Invalid description. </span>
<%
}
%>
</td>
</tr>
<tr>
<td nowrap width="1%">
Add User(s):
</td>
<td nowrap class="c1" align="left">
<input type="text" size="40" name="users"/>
&nbsp;
</td>
</tr>
<td width="1%">
</td>
<td nowrap align="left" class="jive-description">
Comma delimited list. Example: "user1@site.com", "user2@site.com"
</td>
</tr>
</table>
<br>
<span class="jive-description"> * Required fields </span>
</div>
</fieldset>
<br>
<br>
<input type="submit" name="create" value="Create Group"> <input type="submit" name="cancel" value="Cancel">
</form>
<script language="JavaScript" type="text/javascript">
document.f.name.focus();
function checkFields() {
}
</script>
<jsp:include page="bottom.jsp" flush="true"/>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ page import="java.text.DateFormat,
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ page
import="java.text.DateFormat,
java.util.*,
org.jivesoftware.util.ParamUtils,
org.jivesoftware.admin.*,
org.xmpp.packet.JID,
org.jivesoftware.messenger.group.GroupManager,
org.jivesoftware.messenger.group.Group"
%>
org.jivesoftware.messenger.group.Group"%>
<!-- Define Administration Bean -->
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
<% webManager.init(pageContext); %>
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager"/>
<%
webManager.init(pageContext);
%>
<%
// Get parameters
boolean add = request.getParameter("add") != null;
boolean delete = request.getParameter("remove") != null;
boolean update = request.getParameter("update") != null;
String users = ParamUtils.getParameter(request,"users");
String[] adminIDs = ParamUtils.getParameters(request,"admin");
String[] deleteMembers = ParamUtils.getParameters(request,"delete");
String groupName = ParamUtils.getParameter(request, "group");
String users = ParamUtils.getParameter(request, "users");
String [] adminIDs = ParamUtils.getParameters(request, "admin");
String [] deleteMembers = ParamUtils.getParameters(request, "delete");
String groupName = ParamUtils.getParameter(request, "group");
GroupManager groupManager = webManager.getGroupManager();
Group group = groupManager.getGroup(groupName);
Group group = groupManager.getGroup(groupName);
if (update) {
Set adminIDSet = new HashSet();
for(int i=0;i<adminIDs.length; i++){
for (int i = 0; i < adminIDs.length; i++) {
String newAdmin = adminIDs[i];
adminIDSet.add(newAdmin);
boolean isAlreadyAdmin = group.getAdmins().contains(newAdmin);
if(!isAlreadyAdmin){
// Add new admin
group.getMembers().remove(newAdmin);
group.getAdmins().add(newAdmin);
if (!isAlreadyAdmin) {
// Add new admin
group.getMembers().remove(newAdmin);
group.getAdmins().add(newAdmin);
}
}
Iterator groupIter = Collections.unmodifiableCollection(group.getAdmins()).iterator();
Set removeList = new HashSet();
while(groupIter.hasNext()){
String m = (String)groupIter.next();
if(!adminIDSet.contains(m)){
Set removeList = new HashSet();
while (groupIter.hasNext()) {
String m = (String) groupIter.next();
if (!adminIDSet.contains(m)) {
removeList.add(m);
}
}
Iterator i = removeList.iterator();
while(i.hasNext()){
String m = (String)i.next();
while (i.hasNext()) {
String m = (String) i.next();
group.getAdmins().remove(m);
group.getMembers().add(m);
}
// Get admin list and compare it the admin posted list.
response.sendRedirect("group-edit-form.jsp?group=" + groupName + "&updatesuccess=true");
return;
}
else if (add && users != null){
else if (add && users != null) {
String hostName = webManager.getXMPPServer().getServerInfo().getName();
StringTokenizer tokenizer = new StringTokenizer(users, ",");
while (tokenizer.hasMoreTokens()) {
String tok = tokenizer.nextToken();
String address = tok;
if (address.indexOf("@") == -1) {
address = address + "@" + hostName;
}
// Add To Group as member by default.
if(!group.getMembers().contains(address) && !group.getAdmins().contains(address)){
group.getMembers().add(address);
if (!group.getMembers().contains(address) && !group.getAdmins().contains(address)) {
group.getMembers().add(address);
}
}
response.sendRedirect("group-edit-form.jsp?group=" + groupName + "&success=true");
return;
}
else if (delete) {
for (int i=0; i<deleteMembers.length; i++){
String member = deleteMembers[i];
group.getMembers().remove(member);
group.getAdmins().remove(member);
for (int i = 0; i < deleteMembers.length; i++) {
String member = deleteMembers[i];
group.getMembers().remove(member);
group.getAdmins().remove(member);
}
response.sendRedirect("group-edit-form.jsp?group=" + groupName + "&deletesuccess=true");
return;
}
DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM);
%>
<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean" />
<% // Title of this page and breadcrumbs
String title = "Edit Group";
<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean"/>
<% // Title of this page and breadcrumbs
String title = "Edit Group";
pageinfo.setTitle(title);
pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb("Main", "index.jsp"));
pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb(title, "group-summary.jsp"));
pageinfo.setPageID("group-summary");
pageinfo.setExtraParams("group="+groupName);
pageinfo.setExtraParams("group=" + groupName);
%>
<jsp:include page="top.jsp" flush="true" />
<jsp:include page="title.jsp" flush="true" />
<script language="JavaScript" type="text/javascript">
function openWin(el) {
var win = window.open('user-browser.jsp?formName=f&elName=agents','newWin','width=500,height=550,menubar=yes,location=no,personalbar=no,scrollbars=yes,resize=yes');
}
</script>
<p>
Below is a summary of properties for the group as well as admins and members. Use the forms
on the page to add members and optionally designate them as groups administrators.
</p>
<% if ("true".equals(request.getParameter("success"))) { %>
<p class="jive-success-text">
User(s) added successfully.
</p>
<% } else if ("true".equals(request.getParameter("deletesuccess"))) { %>
<p class="jive-success-text">
User(s) deleted successfully.
</p>
<% } else if ("true".equals(request.getParameter("updatesuccess"))) { %>
<p class="jive-success-text">
User(s) updated successfully.
<jsp:include page="top.jsp" flush="true"/>
<jsp:include page="title.jsp" flush="true"/>
<script language="JavaScript" type="text/javascript">
function openWin(el) {
var win = window.open(
'user-browser.jsp?formName=f&elName=agents', 'newWin',
'width=500,height=550,menubar=yes,location=no,personalbar=no,scrollbars=yes,resize=yes');
}
</script>
<p>
Below is a summary of properties for the group as well as admins and members. Use the forms on the page to add
members and optionally designate them as groups administrators.
</p>
<% } %>
<fieldset><legend>User Group Summary</legend>
<table cellpadding="3" cellspacing="1" border="0" >
<tr>
<td class="c1">
Name:
</td>
<td class="c2">
<b><%= group.getName() %></b>
</td>
</tr>
<tr>
<td class="c1">
Description:
</td>
<td class="c2">
<%= ((group.getDescription()!=null) ? group.getDescription() : "No Description") %>
</td>
</tr>
</table>
</fieldset>
<br>
<form action="group-edit-form.jsp" method="post" name="f">
<input type="hidden" name="group" value="<%= groupName %>">
<table cellpadding="3" cellspacing="1" border="0">
<tr>
<td nowrap width="1%">
Add User(s):
</td>
<td nowrap class="c1" align="left">
<input type="text" size="40" name="users" />
&nbsp;<input type="submit" name="add" value="Add">
<%
if ("true".equals(request.getParameter("success"))) {
%>
<p class="jive-success-text">
User(s) added successfully.
</p>
<%
}
else if ("true".equals(request.getParameter("deletesuccess"))) {
%>
<p class="jive-success-text">
User(s) deleted successfully.
</p>
<%
}
else if ("true".equals(request.getParameter("updatesuccess"))) {
%>
<p class="jive-success-text">
User(s) updated successfully.
</p>
<%
}
%>
<fieldset>
<legend>
User Group Summary
</legend>
<table cellpadding="3" cellspacing="1" border="0">
<tr>
<td class="c1">
Name:
</td>
<td class="c2">
<b><%= group.getName() %></b>
</td>
</tr>
<tr>
<td class="c1">
Description:
</td>
<td class="c2">
<%= ((group.getDescription() != null) ? group.getDescription() : "No Description") %>
</td>
</tr>
</table>
</fieldset>
<br>
<form action="group-edit-form.jsp" method="post" name="f">
<input type="hidden" name="group" value="<%= groupName %>">
<input type="hidden" name="add" value="Add"/>
<table cellpadding="3" cellspacing="1" border="0">
<tr>
<td nowrap width="1%">
Add User(s):
</td>
<td nowrap class="c1" align="left">
<input type="text" size="40" name="users"/>
&nbsp;<input type="submit" name="addbutton" value="Add">
</td>
</tr>
<td width="1%">
</td>
</tr>
<td width="1%"></td><td nowrap align="left" class="jive-description">Comma delimited list. Example: "user1@site.com", "user2@site.com" </td>
</tr>
</table>
</form>
<form action="group-edit-form.jsp" method="post" name="main">
<input type="hidden" name="group" value="<%= groupName %>">
<table class="jive-table" cellpadding="3" cellspacing="0" border="0" width="600">
<tr>
<th width="10%">Name</th>
<th width="60%">Address</th>
<th>Admin</th>
<th>Remove</th>
</tr>
<!-- Add admins first -->
<td nowrap align="left" class="jive-description">
Comma delimited list. Example: "user1@site.com", "user2@site.com"
</td>
</tr>
</table>
</form>
<form action="group-edit-form.jsp" method="post" name="main">
<input type="hidden" name="group" value="<%= groupName %>">
<table class="jive-table" cellpadding="3" cellspacing="0" border="0" width="600">
<tr>
<th width="10%">Name</th> <th width="60%">Address</th> <th>Admin</th> <th>Remove</th>
</tr>
<!-- Add admins first -->
<%
int memberCount = group.getCachedSize();
Iterator members = group.getMembers().iterator();
Iterator admins = group.getAdmins().iterator();
int memberCount = group.getCachedSize();
Iterator members = group.getMembers().iterator();
Iterator admins = group.getAdmins().iterator();
%>
<%
if (memberCount == 0) { %>
<tr>
<td align="center" colspan="4">
<br>
No members in this group. Use the form above to add some.
<br><br>
</td>
</tr>
<% } %>
if (memberCount == 0) {
%>
<tr>
<td align="center" colspan="4">
<br>
No members in this group. Use the form above to add some.
<br>
<br>
</td>
</tr>
<%
boolean showUpdateButtons = memberCount > 0;
while (admins.hasNext()) {
String adminName = (String)admins.next();
JID adminJID = new JID(adminName);
}
%>
<tr>
<td><%= adminJID.getNode() %></td>
<td><%= adminName %></td>
<td>
<input type="checkbox" name="admin" value="<%= adminName %>" checked>
</td>
<td align="center">
<input type="checkbox" name="delete" value="<%= adminName %>">
</td>
</tr>
<% } %>
<%
while (members.hasNext()) {
String member = (String)members.next();
JID memberJID = new JID(member);
boolean showUpdateButtons = memberCount > 0;
while (admins.hasNext()) {
String adminName = (String) admins.next();
JID adminJID = new JID(adminName);
%>
<tr>
<td><%= memberJID.getNode() %></td>
<td><%= member %></td>
<td>
<input type="checkbox" name="admin" value="<%= member %>">
</td>
<td align="center">
<input type="checkbox" name="delete" value="<%= member%>">
</td>
</tr>
<% } %>
<% if (showUpdateButtons) { %>
<tr>
<td colspan="2">&nbsp;</td>
<td align="center"><input type="submit" name="update" value="Update"></td>
<td align="center"><input type="submit" name="remove" value="Remove"></td>
</tr>
<% } %>
</table>
</div>
</form>
<jsp:include page="footer.jsp" flush="true" />
<script>
document.f.users.focus();
</script>
\ No newline at end of file
<tr>
<td><%= adminJID.getNode() %>
</td>
<td><%= adminName %>
</td>
<td>
<input type="checkbox" name="admin" value="<%= adminName %>" checked>
</td>
<td align="center">
<input type="checkbox" name="delete" value="<%= adminName %>">
</td>
</tr>
<%
}
%>
<%
while (members.hasNext()) {
String member = (String) members.next();
JID memberJID = new JID(member);
%>
<tr>
<td><%= memberJID.getNode() %>
</td>
<td><%= member %>
</td>
<td>
<input type="checkbox" name="admin" value="<%= member %>">
</td>
<td align="center">
<input type="checkbox" name="delete" value="<%= member %>">
</td>
</tr>
<%
}
%>
<%
if (showUpdateButtons) {
%>
<tr>
<td colspan="2">
&nbsp;
</td>
<td align="center">
<input type="submit" name="update" value="Update">
</td>
<td align="center">
<input type="submit" name="remove" value="Remove">
</td>
</tr>
<%
}
%>
</table>
</div>
</form>
<jsp:include page="footer.jsp" flush="true"/>
<script>
document.f.users.focus();
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment