%--
- $Revision$
- $Date$
-
- Copyright (C) 2004-2008 Jive Software. All rights reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--%>
<%@ page import="org.jivesoftware.util.*,
java.util.*,
org.jivesoftware.openfire.muc.HistoryStrategy,
org.jivesoftware.openfire.muc.MultiUserChatService"
errorPage="error.jsp"
%>
<%@ page import="java.net.URLEncoder" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
<%! // Global vars and methods:
// Strategy definitions:
static final int ALL = 1;
static final int NONE = 2;
static final int NUMBER = 3;
%>
<% webManager.init(request, response, session, application, out ); %>
<% // Get parameters:
boolean update = request.getParameter("update") != null;
int policy = ParamUtils.getIntParameter(request,"policy",-1);
int numMessages = ParamUtils.getIntParameter(request,"numMessages",0);
String mucname = ParamUtils.getParameter(request,"mucname");
if (!webManager.getMultiUserChatManager().isServiceRegistered(mucname)) {
// The requested service name does not exist so return to the list of the existing rooms
response.sendRedirect("muc-service-summary.jsp");
return;
}
// Get muc server
MultiUserChatService mucService = webManager.getMultiUserChatManager().getMultiUserChatService(mucname);
HistoryStrategy historyStrat = mucService.getHistoryStrategy();
Map errors = new HashMap();
if (update) {
if (policy != ALL && policy != NONE && policy != NUMBER) {
errors.put("general", "Please choose a valid chat history policy.");
}
else {
if (policy == NUMBER && numMessages <= 0) {
errors.put("numMessages", "Please enter a valid number of messages.");
}
}
if (errors.size() == 0) {
if (policy == ALL) {
// Update MUC history strategy
historyStrat.setType(HistoryStrategy.Type.all);
}
else if (policy == NONE) {
// Update MUC history strategy
historyStrat.setType(HistoryStrategy.Type.none);
}
else if (policy == NUMBER) {
// Update MUC history strategy
historyStrat.setType(HistoryStrategy.Type.number);
historyStrat.setMaxNumber(numMessages);
}
// Log the event
webManager.logEvent("set MUC history settings for service "+mucname, "type = "+policy+"\nmax messages = "+numMessages);
// All done, redirect
response.sendRedirect("muc-history-settings.jsp?success=true&mucname="+URLEncoder.encode(mucname, "UTF-8"));
return;
}
}
// Set page vars
if (errors.size() == 0) {
if (historyStrat.getType() == HistoryStrategy.Type.all) {
policy = ALL;
}
else if (historyStrat.getType() == HistoryStrategy.Type.none) {
policy = NONE;
}
else if (historyStrat.getType() == HistoryStrategy.Type.number) {
policy = NUMBER;
}
numMessages = historyStrat.getMaxNumber();
}
%>
"/>
"><%= mucname %>
<% if ("true".equals(request.getParameter("success"))) { %>
<% } %>