Commit 2d8ee095 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gato

Fixed edition of shared groups. JM-836

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@5417 b35dd754-fafc-0310-a699-88a17e54d16e
parent 27900581
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
<% // Get parameters <% // Get parameters
boolean add = request.getParameter("add") != null; boolean add = request.getParameter("add") != null;
boolean delete = request.getParameter("remove") != null; boolean delete = request.getParameter("remove") != null;
boolean updateMember = request.getParameter("updateMember") != null;
boolean update = request.getParameter("save") != null; boolean update = request.getParameter("save") != null;
boolean cancel = request.getParameter("cancel") != null; boolean cancel = request.getParameter("cancel") != null;
String users = ParamUtils.getParameter(request, "users"); String users = ParamUtils.getParameter(request, "users");
...@@ -42,9 +43,6 @@ ...@@ -42,9 +43,6 @@
String [] deleteMembers = ParamUtils.getParameters(request, "delete"); String [] deleteMembers = ParamUtils.getParameters(request, "delete");
String groupName = ParamUtils.getParameter(request, "group"); String groupName = ParamUtils.getParameter(request, "group");
GroupManager groupManager = webManager.getGroupManager(); GroupManager groupManager = webManager.getGroupManager();
boolean edit = ParamUtils.getBooleanParameter(request, "edit", false);
String newName = ParamUtils.getParameter(request, "newName");
String newDescription = ParamUtils.getParameter(request, "newDescription");
boolean groupInfoChanged = ParamUtils.getBooleanParameter(request, "groupChanged", false); boolean groupInfoChanged = ParamUtils.getBooleanParameter(request, "groupChanged", false);
Map<String,String> errors = new HashMap<String,String>(); Map<String,String> errors = new HashMap<String,String>();
...@@ -54,14 +52,13 @@ ...@@ -54,14 +52,13 @@
UserManager userManager = webManager.getUserManager(); UserManager userManager = webManager.getUserManager();
boolean enableRosterGroups = ParamUtils.getBooleanParameter(request,"enableRosterGroups"); boolean enableRosterGroups = ParamUtils.getBooleanParameter(request,"enableRosterGroups");
boolean shareAdditional = ParamUtils.getParameter(request, "shareContactList") != null;
String groupDisplayName = ParamUtils.getParameter(request,"groupDisplayName"); String groupDisplayName = ParamUtils.getParameter(request,"groupDisplayName");
String showGroup = ParamUtils.getParameter(request,"showGroup"); String showGroup = ParamUtils.getParameter(request,"showGroup");
String[] groupNames = ParamUtils.getParameters(request, "groupNames"); String[] groupNames = ParamUtils.getParameters(request, "groupNames");
edit = true;
Group group = groupManager.getGroup(groupName); Group group = groupManager.getGroup(groupName);
boolean success = false; boolean success;
StringBuffer errorBuf = new StringBuffer(); StringBuffer errorBuf = new StringBuffer();
if (cancel) { if (cancel) {
...@@ -69,15 +66,16 @@ ...@@ -69,15 +66,16 @@
return; return;
} }
if (newName != null && newName.length() > 0) { if (update) {
if (enableRosterGroups && (groupDisplayName == null || groupDisplayName.trim().length() == 0)) { if (enableRosterGroups && (groupDisplayName == null || groupDisplayName.trim().length() == 0)) {
errors.put("groupDisplayName", ""); errors.put("groupDisplayName", "");
} }
if (errors.isEmpty()) { if (errors.isEmpty()) {
group.setName(newName);
group.setDescription(newDescription);
if (enableRosterGroups) { if (enableRosterGroups) {
if (showGroup == null || !shareAdditional) {
showGroup = "onlyGroup";
}
if ("spefgroups".equals(showGroup)) { if ("spefgroups".equals(showGroup)) {
showGroup = "onlyGroup"; showGroup = "onlyGroup";
} }
...@@ -96,20 +94,18 @@ ...@@ -96,20 +94,18 @@
group.getProperties().put("sharedRoster.groupList", ""); group.getProperties().put("sharedRoster.groupList", "");
} }
groupName = newName;
// Get admin list and compare it the admin posted list. // Get admin list and compare it the admin posted list.
response.sendRedirect("group-edit.jsp?group=" + URLEncoder.encode(groupName, "UTF-8") + "&groupChanged=true"); response.sendRedirect("group-edit.jsp?group=" + URLEncoder.encode(groupName, "UTF-8") + "&groupChanged=true");
return; return;
} }
else { else {
// Continue editing since there are some errors // Continue editing since there are some errors
edit = true; updateMember = false;
update = false;
} }
} }
if (update) { if (updateMember) {
Set<JID> adminIDSet = new HashSet<JID>(); Set<JID> adminIDSet = new HashSet<JID>();
for (String adminID : adminIDs) { for (String adminID : adminIDs) {
JID newAdmin = new JID(adminID); JID newAdmin = new JID(adminID);
...@@ -155,7 +151,7 @@ ...@@ -155,7 +151,7 @@
// Add to group as member by default. // Add to group as member by default.
try { try {
boolean added = false; boolean added;
if (username.indexOf('@') == -1) { if (username.indexOf('@') == -1) {
// No @ was found so assume this is a JID of a local user // No @ was found so assume this is a JID of a local user
username = Stringprep.nodeprep(username); username = Stringprep.nodeprep(username);
...@@ -211,19 +207,23 @@ ...@@ -211,19 +207,23 @@
"true".equals(request.getParameter("creategroupsuccess")); "true".equals(request.getParameter("creategroupsuccess"));
if (errors.size() == 0) { if (errors.size() == 0) {
enableRosterGroups = !"nobody".equals(group.getProperties().get("sharedRoster.showInRoster"));
showGroup = group.getProperties().get("sharedRoster.showInRoster"); showGroup = group.getProperties().get("sharedRoster.showInRoster");
enableRosterGroups = !"nobody".equals(showGroup);
shareAdditional = "everybody".equals(showGroup);
if ("onlyGroup".equals(showGroup)) { if ("onlyGroup".equals(showGroup)) {
String glist = group.getProperties().get("sharedRoster.groupList"); String glist = group.getProperties().get("sharedRoster.groupList");
List l = new ArrayList(); List<String> l = new ArrayList<String>();
if (glist != null) { if (glist != null) {
StringTokenizer tokenizer = new StringTokenizer(glist,",\t\n\r\f"); StringTokenizer tokenizer = new StringTokenizer(glist,",\t\n\r\f");
while (tokenizer.hasMoreTokens()) { while (tokenizer.hasMoreTokens()) {
String tok = tokenizer.nextToken().trim(); String tok = tokenizer.nextToken().trim();
l.add(tok.trim()); l.add(tok.trim());
} }
if (!l.isEmpty()) {
shareAdditional = true;
}
} }
groupNames = (String[])l.toArray(new String[]{}); groupNames = l.toArray(new String[]{});
} }
groupDisplayName = group.getProperties().get("sharedRoster.displayName"); groupDisplayName = group.getProperties().get("sharedRoster.displayName");
} }
...@@ -353,21 +353,23 @@ ...@@ -353,21 +353,23 @@
function toggleRosterShare() { function toggleRosterShare() {
if (document.getElementById('cb101').checked == false) { if (document.getElementById('cb101').checked == false) {
document.getElementById('jive-rosterShare').style.display = 'none'; document.getElementById('jive-rosterShare').style.display = 'none';
} else { } else {
document.getElementById('jive-rosterShare').style.display = 'block'; document.getElementById('jive-rosterShare').style.display = 'block';
document.getElementById('rb002').checked = true;
} }
} }
</script> </script>
<input type="checkbox" id="cb101" name="shareContactList" onClick="toggleRosterShare();" style="vertical-align: middle;"> <input type="checkbox" id="cb101" name="shareContactList" onClick="toggleRosterShare();" style="vertical-align: middle;"
<%= (shareAdditional ? "checked" : "") %>>
<label for="cb101">Share group with additional users</label> <label for="cb101">Share group with additional users</label>
<div id="jive-rosterShare" style="display: <%= !enableRosterGroups ? "none" : "block" %>;"> <div id="jive-rosterShare" style="display: <%= (enableRosterGroups && shareAdditional) ? "block" : "none" %>;">
<table cellpadding="2" cellspacing="0" border="0" width="100%"> <table cellpadding="2" cellspacing="0" border="0" width="100%">
<tbody> <tbody>
<tr> <tr>
<td width="1%" nowrap> <td width="1%" nowrap>
<input type="radio" name="showGroup" value="everybody" id="rb002" <input type="radio" name="showGroup" value="everybody" id="rb002"
<%= ("everybody".equals(showGroup) || "nobody".equals(showGroup) ? "checked" : "") %>> <%= ("everybody".equals(showGroup) ? "checked" : "") %>>
</td> </td>
<td width="99%"> <td width="99%">
<label for="rb002">All users<!--<fmt:message key="group.edit.show_groups_in_all_user" />--></label> <label for="rb002">All users<!--<fmt:message key="group.edit.show_groups_in_all_user" />--></label>
...@@ -419,11 +421,9 @@ ...@@ -419,11 +421,9 @@
</td> </td>
<td width="99%"> <td width="99%">
<% if (edit) { %> <input type="submit" name="save" value="Save Contact List Settings">
<input type="submit" name="save" value="Save Contact List Settings"> <!--<input type="submit" name="save" value="<fmt:message key="global.save_settings" />">-->
<!--<input type="submit" name="save" value="<fmt:message key="global.save_settings" />">--> <!--<input type="submit" name="cancel" value="<fmt:message key="global.cancel" />">-->
<!--<input type="submit" name="cancel" value="<fmt:message key="global.cancel" />">-->
<% } %>
</td> </td>
</tr> </tr>
...@@ -557,7 +557,7 @@ ...@@ -557,7 +557,7 @@
&nbsp; &nbsp;
</td> </td>
<td align="center"> <td align="center">
<input type="submit" name="save" value="Update"> <input type="submit" name="updateMember" value="Update">
</td> </td>
<td align="center"> <td align="center">
<input type="submit" name="remove" value="Remove"> <input type="submit" name="remove" value="Remove">
......
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