group-create.jsp 9.36 KB
Newer Older
Matt Tucker's avatar
Matt Tucker committed
1 2 3 4
<%--
  -	$Revision$
  -	$Date$
  -
5
  - Copyright (C) 2004-2008 Jive Software. All rights reserved.
Matt Tucker's avatar
Matt Tucker committed
6
  -
7 8 9 10 11 12 13 14 15 16 17
  - 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.
Matt Tucker's avatar
Matt Tucker committed
18
--%>
19

20 21 22
<%@ page import="org.jivesoftware.openfire.group.Group,
                 org.jivesoftware.openfire.group.GroupAlreadyExistsException,
                 org.jivesoftware.openfire.security.SecurityAuditManager,
Sven Tantau's avatar
Sven Tantau committed
23
                 org.jivesoftware.util.StringUtils,
24
                 org.jivesoftware.util.Log"
25 26
    errorPage="error.jsp"
%>
27
<%@ page import="org.jivesoftware.util.ParamUtils"%>
28 29
<%@ page import="java.net.URLEncoder"%>
<%@ page import="java.util.HashMap"%>
30
<%@ page import="java.util.Map" %>
31

32 33
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
34

35
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
36 37 38
<%  webManager.init(request, response, session, application, out); %>

<%  // Get parameters //
39 40
    String groupName = ParamUtils.getParameter(request, "group");

Matt Tucker's avatar
Matt Tucker committed
41
    boolean create = request.getParameter("create") != null;
42
    boolean edit = request.getParameter("edit") != null;
Matt Tucker's avatar
Matt Tucker committed
43
    boolean cancel = request.getParameter("cancel") != null;
44
    String name = ParamUtils.getParameter(request, "name");
Matt Tucker's avatar
Matt Tucker committed
45
    String description = ParamUtils.getParameter(request, "description", true);
46
    
47 48
    Map<String, String> errors = new HashMap<String, String>();

Matt Tucker's avatar
Matt Tucker committed
49 50
    // Handle a cancel
    if (cancel) {
51 52 53 54 55 56
        if (groupName == null) {
            response.sendRedirect("group-summary.jsp");
        }
        else {
            response.sendRedirect("group-edit.jsp?group=" + URLEncoder.encode(groupName, "UTF-8"));    
        }
Matt Tucker's avatar
Matt Tucker committed
57 58 59 60 61 62
        return;
    }
    // Handle a request to create a group:
    if (create) {
        // Validate
        if (name == null) {
63
            errors.put("name", "");
Matt Tucker's avatar
Matt Tucker committed
64 65 66 67 68 69 70 71
        }
        // do a create if there were no errors
        if (errors.size() == 0) {
            try {
                Group newGroup = webManager.getGroupManager().createGroup(name);
                if (description != null) {
                    newGroup.setDescription(description);
                }
Derek DeMoro's avatar
Derek DeMoro committed
72

73 74 75 76
                if (!SecurityAuditManager.getSecurityAuditProvider().blockGroupEvents()) {
                    // Log the event
                    webManager.logEvent("created new group "+name, "description = "+description);
                }
77

Matt Tucker's avatar
Matt Tucker committed
78
                // Successful, so redirect
Matt Tucker's avatar
Matt Tucker committed
79
                response.sendRedirect("group-edit.jsp?creategroupsuccess=true&group=" + URLEncoder.encode(newGroup.getName(), "UTF-8"));
Matt Tucker's avatar
Matt Tucker committed
80 81 82
                return;
            }
            catch (GroupAlreadyExistsException e) {
83
                errors.put("groupAlreadyExists", "");
Matt Tucker's avatar
Matt Tucker committed
84 85
            }
            catch (Exception e) {
86
                errors.put("general", "");
Matt Tucker's avatar
Matt Tucker committed
87 88 89 90
                Log.error(e);
            }
        }
    }
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
    // Handle a request to edit a group:
    if (edit) {
        // Validate
        if (name == null) {
            errors.put("name", "");
        }
        // do a create if there were no errors
        if (errors.size() == 0) {
            try {
                Group group = webManager.getGroupManager().getGroup(groupName);
                group.setName(name);
                if (description != null) {
                    group.setDescription(description);
                }

106 107 108 109
                if (!SecurityAuditManager.getSecurityAuditProvider().blockGroupEvents()) {
                    // Log the event
                    webManager.logEvent("edited group "+groupName, "description = "+description);
                }
110

111 112 113 114 115 116 117 118 119 120
                // Successful, so redirect
                response.sendRedirect("group-edit.jsp?groupChanged=true&group=" + URLEncoder.encode(group.getName(), "UTF-8"));
                return;
            }
            catch (Exception e) {
                errors.put("general", "");
                Log.error(e);
            }
        }
    }
Matt Tucker's avatar
Matt Tucker committed
121
%>
122

123
<html>
124
<head>
125 126 127 128 129 130 131 132 133 134 135 136 137 138
<title><%
           // If editing the group.
           if (groupName != null) {
        %>
        <fmt:message key="group.edit.title" />
        <% }
           // Otherwise creating a new group.
           else {
        %>
        <fmt:message key="group.create.title" />
        <% } %>
</title>

<% if (groupName == null) { %>
139
<meta name="pageID" content="group-create"/>
140 141 142 143 144 145
<% }
   else { %>
<meta name="subPageID" content="group-edit"/>
<meta name="extraParams" content="<%= "group="+URLEncoder.encode(groupName, "UTF-8") %>"/>
<% } %>
    
146 147 148
<meta name="helpPage" content="create_a_group.html"/>
</head>
<body>
149 150 151 152

<c:set var="submit" value="${param.create}"/>

<%  if (errors.get("general") != null) { %>
153
    <div class="jive-error">
154 155 156 157
    <table cellpadding="0" cellspacing="0" border="0">
    <tbody>
        <tr>
            <td class="jive-icon">
158
                <img src="images/error-16x16.gif" width="16" height="16" border="0" alt="">
159 160
            </td>
            <td class="jive-icon-label">
161
                <fmt:message key="group.create.error" />
162 163 164 165 166 167 168
            </td>
        </tr>
    </tbody>
    </table>
    </div><br>
<%  } %>

169 170 171 172 173 174
<% if (webManager.getGroupManager().isReadOnly()) { %>
<div class="error">
    <fmt:message key="group.read_only"/>
</div>
<% } %>

175
<p>
176 177 178 179 180 181 182 183 184 185 186
    <%
        // If editing the group.
        if (groupName != null) {
    %>
    <fmt:message key="group.edit.details_info" />
    <% }
       // Otherwise creating a new group.
       else {
    %>
    <fmt:message key="group.create.form" />
    <% } %>
187
</p>
188 189 190

<form name="f" action="group-create.jsp" method="post">

191
   <% if (groupName != null) { %>
Sven Tantau's avatar
Sven Tantau committed
192
    <input type="hidden" name="group" value="<%= StringUtils.escapeForXML(groupName) %>" id="existingName">
193 194 195
   <% } %>

    <!-- BEGIN create group -->
196
	<div class="jive-contentBoxHeader">
197 198 199 200 201 202 203 204 205 206 207 208
        <%
            // If editing the group.
            if (groupName != null) {
        %>
        <fmt:message key="group.edit.title" />
        <% }
           // Otherwise creating a new group.
           else {
        %>
        <fmt:message key="group.create.new_group_title" />
        <% } %>
    </div>
209
	<div class="jive-contentBox">
210
		<table cellpadding="3" cellspacing="0" border="0">
211 212
    <tr valign="top">
        <td width="1%" nowrap>
213
            <label for="gname"><fmt:message key="group.create.group_name" /></label> *
214 215 216
        </td>
        <td width="99%">
            <input type="text" name="name" size="30" maxlength="75"
Sven Tantau's avatar
Sven Tantau committed
217
             value="<%= ((name != null) ? StringUtils.escapeForXML(name) : "") %>" id="gname">
218 219 220 221 222 223 224 225 226
        </td>
    </tr>

    <%  if (errors.get("name") != null || errors.get("groupAlreadyExists") != null) { %>

        <tr valign="top">
            <td width="1%" nowrap>&nbsp;</td>
            <td width="99%">
                <%  if (errors.get("name") != null) { %>
227
                    <span class="jive-error-text"><fmt:message key="group.create.invalid_group_name" /></span>
228
                <%  } else if (errors.get("groupAlreadyExists") != null) { %>
229
                    <span class="jive-error-text"><fmt:message key="group.create.invalid_group_info" /></span>
230 231 232 233 234 235 236 237
                <%  } %>
            </td>
        </tr>

    <%  } %>

    <tr valign="top">
        <td width="1%" nowrap>
238
            <label for="gdesc"><fmt:message key="group.create.label_description" /></label>
239 240 241
        </td>
        <td width="99%">
            <textarea name="description" cols="30" rows="3" id="gdesc"
Sven Tantau's avatar
Sven Tantau committed
242
             ><%= ((description != null) ? StringUtils.escapeHTMLTags(description) : "") %></textarea>
243 244 245 246 247 248 249 250 251 252
        </td>
    </tr>

    <%  if (errors.get("description") != null) { %>

        <tr valign="top">
            <td width="1%" nowrap>
                &nbsp;
            </td>
            <td width="99%">
253
                <span class="jive-error-text"><fmt:message key="group.create.invalid_description" /></span>
254 255 256 257 258
            </td>
        </tr>

    <%  } %>

259 260 261
	<tr>
		<td></td>
		<td>
262 263 264 265 266 267 268 269 270 271 272 273
            <%
               // If editing the group.
               if (groupName != null) {
            %>
            <input type="submit" name="edit" value="<fmt:message key="group.edit.title" />">
            <% }
               // Otherwise creating a new group.
               else {
            %>
            <input type="submit" name="create" value="<fmt:message key="group.create.create" />">
            <% } %>
            <input type="submit" name="cancel" value="<fmt:message key="global.cancel" />">
274 275
		</td>
	</tr>
276
    </table>
277 278 279
	</div>
	<span class="jive-description">* <fmt:message key="group.create.required_fields" /> </span>
	<!-- END create group -->
280 281 282 283 284 285 286

</form>

<script language="JavaScript" type="text/javascript">
document.f.name.focus();
</script>

287 288 289 290 291 292 293 294 295 296 297 298 299 300
<%  // Disable the form if a read-only user provider.
if (webManager.getGroupManager().isReadOnly()) { %>

<script language="Javascript" type="text/javascript">
  function disable() {
var limit = document.forms[0].elements.length;
for (i=0;i<limit;i++) {
  document.forms[0].elements[i].disabled = true;
}
  }
  disable();
</script>
<% } %>

301
</body>
Sven Tantau's avatar
Sven Tantau committed
302
</html>%>