Merge branch '2.0'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / acp / templates / userAdd.tpl
1 {include file='header' pageTitle='wcf.acp.user.'|concat:$action}
2
3 <script data-relocate="true">
4 //<![CDATA[
5 $(function() {
6 WCF.TabMenu.init();
7 });
8 //]]>
9 </script>
10
11 <header class="boxHeadline">
12 <h1>{lang}wcf.acp.user.{@$action}{/lang}</h1>
13 {if $action == 'edit'}<p>{$user->username}</p>{/if}
14 </header>
15
16 {include file='formError'}
17
18 {if $userID|isset && $__wcf->user->userID == $userID}
19 <p class="warning">{lang}wcf.acp.user.edit.warning.selfEdit{/lang}</p>
20 {/if}
21
22 {if $success|isset}
23 <p class="success">{lang}wcf.global.success.{@$action}{/lang}</p>
24 {/if}
25
26 <div class="contentNavigation">
27 <nav>
28 <ul>
29 <li><a href="{link controller='UserList'}{/link}" class="button"><span class="icon icon16 icon-list"></span> <span>{lang}wcf.acp.menu.link.user.list{/lang}</span></a></li>
30
31 {event name='contentNavigationButtons'}
32 </ul>
33 </nav>
34 </div>
35
36 <form method="post" action="{if $action == 'add'}{link controller='UserAdd'}{/link}{else}{link controller='UserEdit' id=$userID}{/link}{/if}">
37 <div class="tabMenuContainer">
38 <nav class="tabMenu">
39 <ul>
40 <li><a href="{@$__wcf->getAnchor('__essentials')}">{lang}wcf.global.form.data{/lang}</a></li>
41
42 {foreach from=$optionTree item=categoryLevel1}
43 <li><a href="{@$__wcf->getAnchor($categoryLevel1[object]->categoryName)}">{lang}wcf.user.option.category.{@$categoryLevel1[object]->categoryName}{/lang}</a></li>
44 {/foreach}
45
46 {if MODULE_USER_SIGNATURE}
47 <li><a href="{@$__wcf->getAnchor('signatureManagement')}">{lang}wcf.user.signature{/lang}</a></li>
48 {/if}
49
50 {if $action == 'edit'}
51 <li><a href="{@$__wcf->getAnchor('avatarForm')}">{lang}wcf.user.avatar{/lang}</a></li>
52 {/if}
53
54 {event name='tabMenuTabs'}
55 </ul>
56 </nav>
57
58 <div id="__essentials" class="container containerPadding tabMenuContent hidden">
59 <fieldset>
60 <legend>{lang}wcf.acp.user.general{/lang}</legend>
61
62 <dl{if $errorType.username|isset} class="formError"{/if}>
63 <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt>
64 <dd>
65 <input type="text" id="username" name="username" value="{$username}" pattern="^[^,\n]+$" autofocus="autofocus" class="medium" />
66 {if $errorType.username|isset}
67 <small class="innerError">
68 {if $errorType.username == 'empty'}
69 {lang}wcf.global.form.error.empty{/lang}
70 {else}
71 {lang}wcf.user.username.error.{@$errorType.username}{/lang}
72 {/if}
73 </small>
74 {/if}
75 </dd>
76 </dl>
77
78 {if $availableGroups|count}
79 <dl>
80 <dt>
81 <label>{lang}wcf.acp.user.groups{/lang}</label>
82 </dt>
83 <dd>
84 {htmlCheckboxes options=$availableGroups name=groupIDs selected=$groupIDs}
85 </dd>
86 </dl>
87 {/if}
88
89 {event name='generalFields'}
90 </fieldset>
91
92 {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditMailAddress')}
93 <fieldset>
94 <legend>{lang}wcf.user.email{/lang}</legend>
95
96 <dl{if $errorType.email|isset} class="formError"{/if}>
97 <dt><label for="email">{lang}wcf.user.email{/lang}</label></dt>
98 <dd>
99 <input type="email" id="email" name="email" value="{$email}" required="required" class="medium" />
100 {if $errorType.email|isset}
101 <small class="innerError">
102 {if $errorType.email == 'empty'}
103 {lang}wcf.global.form.error.empty{/lang}
104 {else}
105 {lang}wcf.user.email.error.{@$errorType.email}{/lang}
106 {/if}
107 </small>
108 {/if}
109 </dd>
110 </dl>
111
112 <dl{if $errorType.confirmEmail|isset} class="formError"{/if}>
113 <dt><label for="confirmEmail">{lang}wcf.user.confirmEmail{/lang}</label></dt>
114 <dd>
115 <input type="email" id="confirmEmail" name="confirmEmail" value="{$confirmEmail}" required="required" class="medium" />
116 {if $errorType.confirmEmail|isset}
117 <small class="innerError">
118 {lang}wcf.user.confirmEmail.error.{@$errorType.confirmEmail}{/lang}
119 </small>
120 {/if}
121 </dd>
122 </dl>
123
124 {event name='emailFields'}
125 </fieldset>
126 {/if}
127
128 {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditPassword')}
129 <fieldset>
130 <legend>{lang}wcf.user.password{/lang}</legend>
131
132 <dl{if $errorType.password|isset} class="formError"{/if}>
133 <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
134 <dd>
135 <input type="password" id="password" name="password" value="{$password}"{if $action == 'add'} required="required"{/if} class="medium" />
136 {if $errorType.password|isset}
137 <small class="innerError">
138 {if $errorType.password == 'empty'}
139 {lang}wcf.global.form.error.empty{/lang}
140 {else}
141 {lang}wcf.user.password.error.{@$errorType.password}{/lang}
142 {/if}
143 </small>
144 {/if}
145 </dd>
146 </dl>
147
148 <dl{if $errorType.confirmPassword|isset} class="formError"{/if}>
149 <dt><label for="confirmPassword">{lang}wcf.user.confirmPassword{/lang}</label></dt>
150 <dd>
151 <input type="password" id="confirmPassword" name="confirmPassword" value="{$confirmPassword}"{if $action == 'add'} required="required"{/if} class="medium" />
152 {if $errorType.confirmPassword|isset}
153 <small class="innerError">
154 {lang}wcf.user.confirmPassword.error.{@$errorType.confirmPassword}{/lang}
155 </small>
156 {/if}
157 </dd>
158 </dl>
159
160 {event name='passwordFields'}
161 </fieldset>
162 {/if}
163
164 {if $action == 'edit' && $__wcf->session->getPermission('admin.user.canBanUser') && $__wcf->user->userID != $userID}
165 <fieldset>
166 <legend>{lang}wcf.acp.user.banUser{/lang}</legend>
167
168 <dl>
169 <dt></dt>
170 <dd>
171 <label><input type="checkbox" id="banned" name="banned" value="1" {if $banned == 1}checked="checked" {/if}/> {lang}wcf.acp.user.banUser{/lang}</label>
172 <small>{lang}wcf.acp.user.banUser.description{/lang}</small>
173 </dd>
174 </dl>
175
176 <dl>
177 <dt><label for="banReason">{lang}wcf.acp.user.banReason{/lang}</label></dt>
178 <dd>
179 <textarea name="banReason" id="banReason" cols="40" rows="10">{$banReason}</textarea>
180 <small>{lang}wcf.acp.user.banReason.description{/lang}</small>
181 </dd>
182 </dl>
183
184 {event name='banFields'}
185 </fieldset>
186
187 <script data-relocate="true">
188 //<![CDATA[
189 $('#banned').change(function (event) {
190 if ($('#banned').is(':checked')) {
191 $('#banReason').attr('readonly', false);
192 }
193 else {
194 $('#banReason').attr('readonly', true);
195 }
196 });
197 $('#banned').change();
198 //]]>
199 </script>
200 {/if}
201
202 {event name='fieldsets'}
203 </div>
204
205 {foreach from=$optionTree item=categoryLevel1}
206 <div id="{@$categoryLevel1[object]->categoryName}" class="container containerPadding tabMenuContent hidden">
207 {foreach from=$categoryLevel1[categories] item=categoryLevel2}
208 <fieldset>
209 <legend>{lang}wcf.user.option.category.{@$categoryLevel2[object]->categoryName}{/lang}</legend>
210
211 {if $categoryLevel2[object]->categoryName == 'settings.general' && $availableLanguages|count > 1}
212 <dl>
213 <dt><label for="languageID">{lang}wcf.user.language{/lang}</label></dt>
214 <dd>
215 {htmlOptions options=$availableLanguages selected=$languageID name=languageID id=languageID disableEncoding=true}
216 </dd>
217 </dl>
218
219 {if $availableContentLanguages|count > 1}
220 <dl>
221 <dt>
222 <label>{lang}wcf.user.visibleLanguages{/lang}</label>
223 </dt>
224 <dd>
225 {foreach from=$availableContentLanguages key=availableLanguageID item=availableLanguage}
226 <label><input type="checkbox" name="visibleLanguages[]" value="{@$availableLanguageID}"{if $availableLanguageID|in_array:$visibleLanguages} checked="checked"{/if} /> {@$availableLanguage}</label>
227 {/foreach}
228 </dd>
229 </dl>
230 {/if}
231 {/if}
232
233 {if $categoryLevel2[object]->categoryName == 'profile.personal' && MODULE_USER_RANK}
234 <dl>
235 <dt><label for="userTitle">{lang}wcf.user.userTitle{/lang}</label></dt>
236 <dd>
237 <input type="text" id="userTitle" name="userTitle" value="{$userTitle}" class="long" maxlength="{@USER_TITLE_MAX_LENGTH}" />
238 {if $errorType[userTitle]|isset}
239 <small class="innerError">
240 {lang}wcf.user.userTitle.error.{@$errorType[userTitle]}{/lang}
241 </small>
242 {/if}
243 <small>{lang}wcf.user.userTitle.description{/lang}</small>
244 </dd>
245 </dl>
246 {/if}
247
248 {event name='categoryFields'}
249
250 {include file='optionFieldList' options=$categoryLevel2[options] langPrefix='wcf.user.option.'}
251
252 {if $categoryLevel2[categories]|count}
253 {foreach from=$categoryLevel2[categories] item=categoryLevel3}
254 {include file='optionFieldList' options=$categoryLevel3[options] langPrefix='wcf.user.option.'}
255 {/foreach}
256 {/if}
257 </fieldset>
258 {/foreach}
259 </div>
260 {/foreach}
261
262 {if MODULE_USER_SIGNATURE}
263 <div id="signatureManagement" class="container containerPadding tabMenuContent hidden">
264 <fieldset>
265 <legend>{lang}wcf.user.signature{/lang}</legend>
266
267 <dl>
268 <dt><label for="signature">{lang}wcf.user.signature{/lang}</label></dt>
269 <dd>
270 <textarea name="signature" id="signature" cols="40" rows="10">{$signature}</textarea>
271 </dd>
272 </dl>
273
274 <dl>
275 <dt>{lang}wcf.message.settings{/lang}</dt>
276 <dd>
277 <label><input id="signatureEnableSmilies" name="signatureEnableSmilies" type="checkbox" value="1"{if $signatureEnableSmilies} checked="checked"{/if} /> {lang}wcf.message.settings.enableSmilies{/lang}</label>
278 <label><input id="signatureEnableBBCodes" name="signatureEnableBBCodes" type="checkbox" value="1"{if $signatureEnableBBCodes} checked="checked"{/if} /> {lang}wcf.message.settings.enableBBCodes{/lang}</label>
279 <label><input id="signatureEnableHtml" name="signatureEnableHtml" type="checkbox" value="1"{if $signatureEnableHtml} checked="checked"{/if} /> {lang}wcf.message.settings.enableHtml{/lang}</label>
280 </dd>
281 </dl>
282 </fieldset>
283
284 {if $__wcf->session->getPermission('admin.user.canDisableSignature')}
285 <fieldset>
286 <legend>{lang}wcf.acp.user.disableSignature{/lang}</legend>
287
288 <dl>
289 <dt></dt>
290 <dd>
291 <label><input type="checkbox" id="disableSignature" name="disableSignature" value="1" {if $disableSignature == 1}checked="checked" {/if}/> {lang}wcf.acp.user.disableSignature{/lang}</label>
292 </dd>
293 </dl>
294
295 <dl>
296 <dt><label for="disableSignatureReason">{lang}wcf.acp.user.disableSignatureReason{/lang}</label></dt>
297 <dd>
298 <textarea name="disableSignatureReason" id="disableSignatureReason" cols="40" rows="10">{$disableSignatureReason}</textarea>
299 </dd>
300 </dl>
301 </fieldset>
302
303 <script data-relocate="true">
304 //<![CDATA[
305 $('#disableSignature').change(function (event) {
306 if ($('#disableSignature').is(':checked')) {
307 $('#disableSignatureReason').attr('readonly', false);
308 }
309 else {
310 $('#disableSignatureReason').attr('readonly', true);
311 }
312 });
313 $('#disableSignature').change();
314 //]]>
315 </script>
316 {/if}
317 </div>
318 {/if}
319
320 {if $action == 'edit'}
321 <div id="avatarForm" class="container containerPadding tabMenuContent hidden">
322 <fieldset>
323 <legend>{lang}wcf.user.avatar{/lang}</legend>
324
325 <dl>
326 <dt></dt>
327 <dd>
328 <label><input type="radio" name="avatarType" value="none" {if $avatarType == 'none'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.none{/lang}</label>
329 </dd>
330 </dl>
331
332 <dl class="jsOnly{if $errorType[customAvatar]|isset} formError{/if}" id="avatarUpload">
333 <dt class="framed">{if $avatarType == 'custom'}{@$userAvatar->getImageTag(96)}{else}<img src="{@$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon96" />{/if}</dt>
334 <dd>
335 <label><input type="radio" name="avatarType" value="custom" {if $avatarType == 'custom'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.custom{/lang}</label>
336
337 {* placeholder for upload button: *}
338 <div></div>
339
340 {if $errorType[customAvatar]|isset}
341 <small class="innerError">
342 {if $errorType[customAvatar] == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
343 </small>
344 {/if}
345 </dd>
346 </dl>
347
348 {if MODULE_GRAVATAR}
349 <dl{if $errorType[gravatar]|isset} class="formError"{/if}>
350 <dt class="framed"><img src="https://secure.gravatar.com/avatar/{@$user->email|strtolower|md5}?s=96" alt="" class="icon96" /></dt>
351 <dd>
352 <label><input type="radio" name="avatarType" value="gravatar" {if $avatarType == 'gravatar'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.gravatar{/lang}</label>
353
354 {if $errorType[gravatar]|isset}
355 <small class="innerError">
356 {if $errorType[gravatar] == 'notFound'}{lang}wcf.user.avatar.type.gravatar.error.notFound{/lang}{/if}
357 </small>
358 {/if}
359 </dd>
360 </dl>
361 {/if}
362 </fieldset>
363
364 {if $__wcf->session->getPermission('admin.user.canDisableAvatar')}
365 <fieldset>
366 <legend>{lang}wcf.acp.user.disableAvatar{/lang}</legend>
367
368 <dl>
369 <dt></dt>
370 <dd>
371 <label><input type="checkbox" id="disableAvatar" name="disableAvatar" value="1" {if $disableAvatar == 1}checked="checked" {/if}/> {lang}wcf.acp.user.disableAvatar{/lang}</label>
372 </dd>
373 </dl>
374
375 <dl>
376 <dt><label for="disableAvatarReason">{lang}wcf.acp.user.disableAvatarReason{/lang}</label></dt>
377 <dd>
378 <textarea name="disableAvatarReason" id="disableAvatarReason" cols="40" rows="10">{$disableAvatarReason}</textarea>
379 </dd>
380 </dl>
381 </fieldset>
382
383 <script data-relocate="true">
384 //<![CDATA[
385 $(function() {
386 $('#disableAvatar').change(function (event) {
387 if ($('#disableAvatar').is(':checked')) {
388 $('#disableAvatarReason').attr('readonly', false);
389 }
390 else {
391 $('#disableAvatarReason').attr('readonly', true);
392 }
393 });
394 $('#disableAvatar').change();
395 //]]>
396 </script>
397 {/if}
398
399 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
400 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
401 <script data-relocate="true">
402 //<![CDATA[
403 $(function() {
404 WCF.Language.addObject({
405 'wcf.user.avatar.upload.error.invalidExtension': '{lang}wcf.user.avatar.upload.error.invalidExtension{/lang}',
406 'wcf.user.avatar.upload.error.tooSmall': '{lang}wcf.user.avatar.upload.error.tooSmall{/lang}',
407 'wcf.user.avatar.upload.error.tooLarge': '{lang}wcf.user.avatar.upload.error.tooLarge{/lang}',
408 'wcf.user.avatar.upload.error.uploadFailed': '{lang}wcf.user.avatar.upload.error.uploadFailed{/lang}',
409 'wcf.user.avatar.upload.error.badImage': '{lang}wcf.user.avatar.upload.error.badImage{/lang}',
410 'wcf.user.avatar.upload.success': '{lang}wcf.user.avatar.upload.success{/lang}',
411 'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}'
412 });
413
414 new WCF.User.Avatar.Upload({@$user->userID});
415 });
416 //]]>
417 </script>
418 </div>
419 {/if}
420
421 {event name='tabMenuContent'}
422 </div>
423
424 <div class="formSubmit">
425 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
426 {@SECURITY_TOKEN_INPUT_TAG}
427 </div>
428 </form>
429
430 {include file='footer'}