Fixed time zone calculation issue
[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 <fieldset>
285 <legend>{lang}wcf.acp.user.disableSignature{/lang}</legend>
286
287 <dl>
288 <dt></dt>
289 <dd>
290 <label><input type="checkbox" id="disableSignature" name="disableSignature" value="1" {if $disableSignature == 1}checked="checked" {/if}/> {lang}wcf.acp.user.disableSignature{/lang}</label>
291 </dd>
292 </dl>
293
294 <dl>
295 <dt><label for="disableSignatureReason">{lang}wcf.acp.user.disableSignatureReason{/lang}</label></dt>
296 <dd>
297 <textarea name="disableSignatureReason" id="disableSignatureReason" cols="40" rows="10">{$disableSignatureReason}</textarea>
298 </dd>
299 </dl>
300 </fieldset>
301
302 <script data-relocate="true">
303 //<![CDATA[
304 $('#disableSignature').change(function (event) {
305 if ($('#disableSignature').is(':checked')) {
306 $('#disableSignatureReason').attr('readonly', false);
307 }
308 else {
309 $('#disableSignatureReason').attr('readonly', true);
310 }
311 });
312 $('#disableSignature').change();
313 //]]>
314 </script>
315 </div>
316 {/if}
317
318 {if $action == 'edit'}
319 <div id="avatarForm" class="container containerPadding tabMenuContent hidden">
320 <fieldset>
321 <legend>{lang}wcf.user.avatar{/lang}</legend>
322
323 <dl>
324 <dt></dt>
325 <dd>
326 <label><input type="radio" name="avatarType" value="none" {if $avatarType == 'none'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.none{/lang}</label>
327 </dd>
328 </dl>
329
330 <dl class="jsOnly{if $errorType[customAvatar]|isset} formError{/if}" id="avatarUpload">
331 <dt class="framed">{if $avatarType == 'custom'}{@$userAvatar->getImageTag(96)}{else}<img src="{@$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon96" />{/if}</dt>
332 <dd>
333 <label><input type="radio" name="avatarType" value="custom" {if $avatarType == 'custom'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.custom{/lang}</label>
334
335 {* placeholder for upload button: *}
336 <div></div>
337
338 {if $errorType[customAvatar]|isset}
339 <small class="innerError">
340 {if $errorType[customAvatar] == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
341 </small>
342 {/if}
343 </dd>
344 </dl>
345
346 {if MODULE_GRAVATAR}
347 <dl{if $errorType[gravatar]|isset} class="formError"{/if}>
348 <dt class="framed"><img src="https://secure.gravatar.com/avatar/{@$user->email|strtolower|md5}?s=96" alt="" class="icon96" /></dt>
349 <dd>
350 <label><input type="radio" name="avatarType" value="gravatar" {if $avatarType == 'gravatar'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.gravatar{/lang}</label>
351
352 {if $errorType[gravatar]|isset}
353 <small class="innerError">
354 {if $errorType[gravatar] == 'notFound'}{lang}wcf.user.avatar.type.gravatar.error.notFound{/lang}{/if}
355 </small>
356 {/if}
357 </dd>
358 </dl>
359 {/if}
360 </fieldset>
361
362 <fieldset>
363 <legend>{lang}wcf.acp.user.disableAvatar{/lang}</legend>
364
365 <dl>
366 <dt></dt>
367 <dd>
368 <label><input type="checkbox" id="disableAvatar" name="disableAvatar" value="1" {if $disableAvatar == 1}checked="checked" {/if}/> {lang}wcf.acp.user.disableAvatar{/lang}</label>
369 </dd>
370 </dl>
371
372 <dl>
373 <dt><label for="disableAvatarReason">{lang}wcf.acp.user.disableAvatarReason{/lang}</label></dt>
374 <dd>
375 <textarea name="disableAvatarReason" id="disableAvatarReason" cols="40" rows="10">{$disableAvatarReason}</textarea>
376 </dd>
377 </dl>
378 </fieldset>
379
380 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.Message{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
381 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.User{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@$__wcfVersion}"></script>
382 <script data-relocate="true">
383 //<![CDATA[
384 $(function() {
385 $('#disableAvatar').change(function (event) {
386 if ($('#disableAvatar').is(':checked')) {
387 $('#disableAvatarReason').attr('readonly', false);
388 }
389 else {
390 $('#disableAvatarReason').attr('readonly', true);
391 }
392 });
393 $('#disableAvatar').change();
394
395 WCF.Language.addObject({
396 'wcf.user.avatar.upload.error.invalidExtension': '{lang}wcf.user.avatar.upload.error.invalidExtension{/lang}',
397 'wcf.user.avatar.upload.error.tooSmall': '{lang}wcf.user.avatar.upload.error.tooSmall{/lang}',
398 'wcf.user.avatar.upload.error.tooLarge': '{lang}wcf.user.avatar.upload.error.tooLarge{/lang}',
399 'wcf.user.avatar.upload.error.uploadFailed': '{lang}wcf.user.avatar.upload.error.uploadFailed{/lang}',
400 'wcf.user.avatar.upload.error.badImage': '{lang}wcf.user.avatar.upload.error.badImage{/lang}',
401 'wcf.user.avatar.upload.success': '{lang}wcf.user.avatar.upload.success{/lang}',
402 'wcf.global.button.upload': '{lang}wcf.global.button.upload{/lang}'
403 });
404
405 new WCF.User.Avatar.Upload({@$user->userID});
406 });
407 //]]>
408 </script>
409 </div>
410 {/if}
411
412 {event name='tabMenuContent'}
413 </div>
414
415 <div class="formSubmit">
416 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
417 {@SECURITY_TOKEN_INPUT_TAG}
418 </div>
419 </form>
420
421 {include file='footer'}