<%@ taglib uri="core" prefix="c"%>
<%@ taglib uri="fmt" prefix="fmt" %>
<%--
  -	$RCSfile$
  -	$Revision$
  -	$Date$
--%>

<%@ page import="org.jivesoftware.util.*,
                 java.util.*,
                 org.jivesoftware.messenger.*,
                 org.jivesoftware.admin.*,
                 org.jivesoftware.messenger.muc.HistoryStrategy"
%>

<%-- Define Administration Bean --%>
<jsp:useBean id="admin" class="org.jivesoftware.util.WebManager"  />
<% admin.init(request, response, session, application, out ); %>

<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean" />
<%  // Title of this page and breadcrumbs
    String title = "Chat Room History Settings";
    pageinfo.setTitle(title);
    pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb("Main", "main.jsp"));
    pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb(title, "chatroom-history-settings.jsp"));
    pageinfo.setPageID("server-chatroom-history");
%>
<jsp:include page="top.jsp" flush="true" />
<jsp:include page="title.jsp" flush="true" />


<%! // Global vars and methods:

    // Strategy definitions:
    static final int ALL = 1;
    static final int NONE = 2;
    static final int NUMBER = 3;
%>


<%  // Get parameters:
    boolean update = request.getParameter("update") != null;
    int policy = ParamUtils.getIntParameter(request,"policy",-1);
    int numMessages = ParamUtils.getIntParameter(request,"numMessages",0);

    // Get an audit manager:
//    ChatServer chatServer = (ChatServer)admin.getServiceLookup().lookup(ChatServer.class);
//    HistoryStrategy historyStrat = chatServer.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) {
//                historyStrat.setType(HistoryStrategy.Type.all);
            }
            else if (policy == NONE) {
//                historyStrat.setType(HistoryStrategy.Type.none);
            }
            else if (policy == NUMBER) {
//                historyStrat.setType(HistoryStrategy.Type.number);
//                historyStrat.setMaxNumber(numMessages);
            }
            // All done, redirect
            %>
              <p class="jive-success-text">
    Settings updated.
    </p>
            <%
        }
    }

    // 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();
    }
%>

<table cellpadding="3" cellspacing="1" border="0" width="600">
<form action="chatroom-history-settings.jsp">
<tr><td class="text" colspan="2" >
Chatrooms can replay conversation histories to provide context to new members joining a room.
<fmt:message key="short.title" bundle="${lang}" /> provides several options for controlling how much history to store for each room.
</td>



<tr valign="top" class="">
    <td width="1%" nowrap>
        <input type="radio" name="policy" value="<%= NONE %>" id="rb01"
         <%= ((policy==NONE) ? "checked" : "") %>>
    </td>
    <td width="99%">
        <label for="rb01"><b>Don't Show History</b></label> - Do not show the entire chat
        history.
    </td>
</tr>
<tr valign="top">
    <td width="1%" nowrap>
        <input type="radio" name="policy" value="<%= ALL %>" id="rb02"
         <%= ((policy==ALL) ? "checked" : "") %>>
    </td>
    <td width="99%">
        <label for="rb02"><b>Show Entire Chat History</b></label> - Show the entire chat history
        to the user.
    </td>
</tr>
<tr valign="top" class="">
    <td width="1%" nowrap>
        <input type="radio" name="policy" value="<%= NUMBER %>" id="rb03"
         <%= ((policy==NUMBER) ? "checked" : "") %>>
    </td>
    <td width="99%">
        <label for="rb03"><b>Show a Specific Number of Messages</b></label> - Show a specific
        number of the most recent messages in the chat. Use the box below to specify
        that number.
</tr>
<tr valign="top" class="">
    <td width="1%" nowrap>
        &nbsp;
    </td>
    <td width="99%">
        <input type="text" name="numMessages" size="5" maxlength="10"
         onclick="this.form.policy[2].checked=true;"
         value="<%= ((numMessages > 0) ? ""+numMessages : "") %>"> messages
</tr>
</table>

<br>

<input type="submit" name="update" value="Save Settings">

</form>

<jsp:include page="bottom.jsp" flush="true" />