Commit 8cb740d2 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gaston

Changed room creation logic in order to be able to create a room in one step...

Changed room creation logic in order to be able to create a room in one step and make sure that it's always persistent. JM-77


git-svn-id: http://svn.igniterealtime.org/svn/repos/messenger/trunk@710 b35dd754-fafc-0310-a699-88a17e54d16e
parent 02f573fb
...@@ -9,135 +9,7 @@ ...@@ -9,135 +9,7 @@
- Use is subject to license terms. - Use is subject to license terms.
--%> --%>
<%@ page import="org.jivesoftware.util.ParamUtils, <% // Redirect to muc-room-edit-form and set that a room will be created
org.jivesoftware.admin.*, response.sendRedirect("muc-room-edit-form.jsp?&create=true");
java.util.*, return;
org.jivesoftware.messenger.muc.MUCRoom, %>
org.jivesoftware.messenger.*, \ No newline at end of file
org.jivesoftware.messenger.auth.UnauthorizedException,
org.xmpp.packet.JID"
errorPage="error.jsp"
%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
<% webManager.init(request, response, session, application, out); %>
<% // Get parameters
boolean save = ParamUtils.getBooleanParameter(request,"save");
String roomName = ParamUtils.getParameter(request,"roomName");
// Handle a cancel
if (request.getParameter("cancel") != null) {
response.sendRedirect("muc-room-summary.jsp");
return;
}
// Handle a save
Map errors = new HashMap();
if (save) {
// do validation
if (roomName == null || roomName.contains("@")) {
errors.put("roomName","roomName");
}
MUCRoom room = null;
// If everything is ok so far then try to create a new room (with default configuration)
if (errors.size() == 0) {
// Check that the requested room ID is available
room = webManager.getMultiUserChatServer().getChatRoom(roomName);
if (room != null) {
errors.put("room_already_exists", "room_already_exists");
}
else {
// Try to create a new room
JID address = new JID(webManager.getUser().getUsername(), webManager.getServerInfo().getName(), null);
try {
room = webManager.getMultiUserChatServer().getChatRoom(roomName, address);
// Check if the room was created concurrently by another user
if (!room.getOwners().contains(address.toBareJID())) {
errors.put("room_already_exists", "room_already_exists");
}
}
catch (UnauthorizedException e) {
// This user is not allowed to create rooms
errors.put("not_enough_permissions", "not_enough_permissions");
}
}
}
if (errors.size() == 0) {
// Creation good, so redirect
response.sendRedirect("muc-room-edit-form.jsp?addsuccess=true&roomconfig_persistentroom=true&roomName=" + roomName);
return;
}
}
%>
<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean" />
<% // Title of this page and breadcrumbs
String title = "Room Creation";
pageinfo.setTitle(title);
pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb("Main", "index.jsp"));
pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb(title, "muc-room-create.jsp"));
pageinfo.setPageID("muc-room-create");
%>
<jsp:include page="top.jsp" flush="true" />
<jsp:include page="title.jsp" flush="true" />
<p>Use the form below to create a new room. After the room has been created you will need to set the
room configuration to unlock the room.</p>
<% if (errors.containsKey("room_already_exists") || errors.containsKey("not_enough_permissions")) { %>
<div class="jive-error">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr><td class="jive-icon"><img src="images/error-16x16.gif" width="16" height="16" border="0"></td>
<td class="jive-icon-label">
<% if (errors.containsKey("room_already_exists")) { %>
Error creating the room. A room with the request ID already exists.
<% } else if (errors.containsKey("not_enough_permissions")) { %>
Error creating the room. You do not have enough privileges to create rooms.
<% } %>
</td></tr>
</tbody>
</table>
</div><br>
<% } %>
<form action="muc-room-create.jsp">
<input type="hidden" name="save" value="true">
<table cellpadding="3" cellspacing="1" border="0" width="350">
<tr class="jive-even">
<td width="70">
Room ID:
</td>
<td><input type="text" name="roomName" value="<%= roomName != null ? roomName : ""%>">
<% if (errors.get("roomName") != null) { %>
<span class="jive-error-text">
Please enter a valid ID. Do not include the service name in the ID.
</span>
<% } %>
</td>
</tr>
</table>
<br>
<input type="submit" name="Submit" value="Create Room">
<input type="submit" name="cancel" value="Cancel">
</form>
<jsp:include page="bottom.jsp" flush="true" />
\ No newline at end of file
This diff is collapsed.
...@@ -111,7 +111,7 @@ Sorted by Room ID ...@@ -111,7 +111,7 @@ Sorted by Room ID
<th>&nbsp;</th> <th>&nbsp;</th>
<th>Room ID</th> <th>Room ID</th>
<th>Description</th> <th>Description</th>
<th>Lock</th> <th>Persistent</th>
<th>Users</th> <th>Users</th>
<th>Edit</th> <th>Edit</th>
<th>Destroy</th> <th>Destroy</th>
...@@ -147,10 +147,10 @@ Sorted by Room ID ...@@ -147,10 +147,10 @@ Sorted by Room ID
<%= room.getDescription() %> <%= room.getDescription() %>
</td> </td>
<td width="1%" align="center"> <td width="1%" align="center">
<% if (room.isLocked()) { %> <% if (room.isPersistent()) { %>
<img src="images/lock-16x16.gif" width="16" height="16" border="0" alt="Room is locked"> <img src="images/tape.gif" width="16" height="16" border="0" alt="Room is persistent">
<% } else { %> <% } else { %>
<img src="images/lock-open-16x16.gif" width="16" height="16" border="0" alt="Room is unlocked"> <img src="images/blank.gif" width="16" height="16" border="0" alt="Room is temporary">
<% } %> <% } %>
</td> </td>
<td width="1%" align="center"> <td width="1%" align="center">
......
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