Commit | Line | Data |
---|---|---|
7485c55b | 1 | {include file='header' pageTitle='wcf.acp.user.'|concat:$action} |
3852f864 | 2 | |
9543d9fe | 3 | <script data-relocate="true"> |
158bd3ca | 4 | //<![CDATA[ |
f277d540 AE |
5 | $(function() { |
6 | WCF.TabMenu.init(); | |
7 | }); | |
158bd3ca TD |
8 | //]]> |
9 | </script> | |
10 | ||
daa737bf | 11 | <header class="boxHeadline"> |
635a8feb | 12 | <h1>{lang}wcf.acp.user.{@$action}{/lang}</h1> |
297ee036 | 13 | {if $action == 'edit'}<p>{$user->username}</p>{/if} |
158bd3ca TD |
14 | </header> |
15 | ||
ee629b22 | 16 | {include file='formError'} |
158bd3ca | 17 | |
cb22bd32 | 18 | {if $userID|isset && $__wcf->user->userID == $userID} |
f4683ba3 | 19 | <p class="warning">{lang}wcf.acp.user.edit.warning.selfEdit{/lang}</p> |
158bd3ca TD |
20 | {/if} |
21 | ||
cb22bd32 | 22 | {if $success|isset} |
9b566f66 | 23 | <p class="success">{lang}wcf.global.success.{@$action}{/lang}</p> |
158bd3ca TD |
24 | {/if} |
25 | ||
184a8d6d | 26 | <div class="contentNavigation"> |
ef097134 | 27 | <nav> |
184a8d6d | 28 | <ul> |
6ab4d963 | 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> |
5348d3d2 | 30 | |
7991009f | 31 | {event name='contentNavigationButtons'} |
158bd3ca TD |
32 | </ul> |
33 | </nav> | |
34 | </div> | |
35 | ||
7a2be172 | 36 | <form method="post" action="{if $action == 'add'}{link controller='UserAdd'}{/link}{else}{link controller='UserEdit' id=$userID}{/link}{/if}"> |
5da92f1b MW |
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} | |
baa1ddc3 | 45 | |
320f4a6d MW |
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 | ||
baa1ddc3 | 54 | {event name='tabMenuTabs'} |
5da92f1b MW |
55 | </ul> |
56 | </nav> | |
eee4c4ff | 57 | |
5da92f1b | 58 | <div id="__essentials" class="container containerPadding tabMenuContent hidden"> |
eee4c4ff | 59 | <fieldset> |
5da92f1b | 60 | <legend>{lang}wcf.acp.user.general{/lang}</legend> |
eee4c4ff | 61 | |
5da92f1b MW |
62 | <dl{if $errorType.username|isset} class="formError"{/if}> |
63 | <dt><label for="username">{lang}wcf.user.username{/lang}</label></dt> | |
f4683ba3 | 64 | <dd> |
5da92f1b MW |
65 | <input type="text" id="username" name="username" value="{$username}" pattern="^[^,\n]+$" autofocus="autofocus" class="medium" /> |
66 | {if $errorType.username|isset} | |
184a8d6d | 67 | <small class="innerError"> |
5da92f1b | 68 | {if $errorType.username == 'empty'} |
b6348a7e MS |
69 | {lang}wcf.global.form.error.empty{/lang} |
70 | {else} | |
5da92f1b | 71 | {lang}wcf.user.username.error.{@$errorType.username}{/lang} |
b6348a7e | 72 | {/if} |
eee4c4ff L |
73 | </small> |
74 | {/if} | |
75 | </dd> | |
76 | </dl> | |
77 | ||
5da92f1b MW |
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} | |
7991009f | 88 | |
5da92f1b | 89 | {event name='generalFields'} |
eee4c4ff | 90 | </fieldset> |
5da92f1b MW |
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} | |
baa1ddc3 | 163 | |
15470df4 | 164 | {if $action == 'edit' && $__wcf->session->getPermission('admin.user.canBanUser') && $__wcf->user->userID != $userID} |
baa1ddc3 MW |
165 | <fieldset> |
166 | <legend>{lang}wcf.acp.user.banUser{/lang}</legend> | |
167 | ||
168 | <dl> | |
77f70354 | 169 | <dt></dt> |
baa1ddc3 MW |
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 | ||
9543d9fe | 187 | <script data-relocate="true"> |
baa1ddc3 MW |
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'} | |
5da92f1b | 203 | </div> |
eee4c4ff | 204 | |
5da92f1b MW |
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> | |
8c9d3f7a | 222 | <label>{lang}wcf.user.visibleLanguages{/lang}</label> |
5da92f1b MW |
223 | </dt> |
224 | <dd> | |
8c9d3f7a MW |
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} | |
5da92f1b MW |
228 | </dd> |
229 | </dl> | |
230 | {/if} | |
eee4c4ff | 231 | {/if} |
5da92f1b | 232 | |
320f4a6d MW |
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 | ||
5da92f1b MW |
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} | |
eee4c4ff | 256 | {/if} |
5da92f1b | 257 | </fieldset> |
f277d540 | 258 | {/foreach} |
f277d540 | 259 | </div> |
5da92f1b | 260 | {/foreach} |
baa1ddc3 | 261 | |
320f4a6d MW |
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 | ||
57f097e8 MS |
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> | |
320f4a6d | 302 | |
57f097e8 MS |
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} | |
320f4a6d MW |
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> | |
77f70354 | 326 | <dt></dt> |
320f4a6d MW |
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}> | |
68101113 | 350 | <dt class="framed"><img src="https://secure.gravatar.com/avatar/{@$user->email|strtolower|md5}?s=96" alt="" class="icon96" /></dt> |
320f4a6d MW |
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 | ||
57f097e8 MS |
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> | |
320f4a6d | 382 | |
57f097e8 | 383 | <script data-relocate="true"> |
320f4a6d MW |
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(); | |
57f097e8 MS |
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() { | |
320f4a6d MW |
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 | ||
baa1ddc3 | 421 | {event name='tabMenuContent'} |
158bd3ca TD |
422 | </div> |
423 | ||
184a8d6d | 424 | <div class="formSubmit"> |
3852f864 | 425 | <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" /> |
ee629b22 | 426 | {@SECURITY_TOKEN_INPUT_TAG} |
39bea7dd | 427 | </div> |
158bd3ca TD |
428 | </form> |
429 | ||
430 | {include file='footer'} |