%--
- $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.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_rt" prefix="fmt" %>
<% webManager.init(request, response, session, application, out ); %>
<% // Get parameters
boolean kickEnabled = ParamUtils.getBooleanParameter(request,"kickEnabled");
String idletime = ParamUtils.getParameter(request,"idletime");
String logfreq = ParamUtils.getParameter(request,"logfreq");
String logbatchsize = ParamUtils.getParameter(request,"logbatchsize");
boolean kickSettings = request.getParameter("kickSettings") != null;
boolean logSettings = request.getParameter("logSettings") != null;
boolean kickSettingSuccess = request.getParameter("kickSettingSuccess") != null;
boolean logSettingSuccess = request.getParameter("logSettingSuccess") != null;
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);
Map errors = new HashMap();
// Handle an update of the kicking task settings
if (kickSettings) {
if (!kickEnabled) {
// Disable kicking users by setting a value of -1
mucService.setUserIdleTime(-1);
// Log the event
webManager.logEvent("disabled muc idle kick timeout for service "+mucname, null);
response.sendRedirect("muc-tasks.jsp?kickSettingSuccess=true&mucname="+URLEncoder.encode(mucname, "UTF-8"));
return;
}
// do validation
if (idletime == null) {
errors.put("idletime","idletime");
}
int idle = 0;
// Try to obtain an int from the provided strings
if (errors.size() == 0) {
try {
idle = Integer.parseInt(idletime) * 1000 * 60;
}
catch (NumberFormatException e) {
errors.put("idletime","idletime");
}
if (idle < 0) {
errors.put("idletime","idletime");
}
}
if (errors.size() == 0) {
mucService.setUserIdleTime(idle);
// Log the event
webManager.logEvent("edited muc idle kick timeout for service "+mucname, "timeout = "+idle);
response.sendRedirect("muc-tasks.jsp?kickSettingSuccess=true&mucname="+URLEncoder.encode(mucname, "UTF-8"));
return;
}
}
// Handle an update of the log conversations task settings
if (logSettings) {
// do validation
if (logfreq == null) {
errors.put("logfreq","logfreq");
}
if (logbatchsize == null) {
errors.put("logbatchsize","logbatchsize");
}
int frequency = 0;
int batchSize = 0;
// Try to obtain an int from the provided strings
if (errors.size() == 0) {
try {
frequency = Integer.parseInt(logfreq) * 1000;
}
catch (NumberFormatException e) {
errors.put("logfreq","logfreq");
}
try {
batchSize = Integer.parseInt(logbatchsize);
}
catch (NumberFormatException e) {
errors.put("logbatchsize","logbatchsize");
}
}
if (errors.size() == 0) {
mucService.setLogConversationsTimeout(frequency);
mucService.setLogConversationBatchSize(batchSize);
// Log the event
webManager.logEvent("edited muc conversation log settings for service "+mucname, "timeout = "+frequency+"\nbatchSize = "+batchSize);
response.sendRedirect("muc-tasks.jsp?logSettingSuccess=true&mucname="+URLEncoder.encode(mucname, "UTF-8"));
return;
}
}
%>
"/>