Improved visuals for avatar edit form
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / avatarEdit.tpl
1 {include file='documentHeader'}
2
3 <head>
4 <title>{lang}wcf.user.avatar.edit{/lang} - {lang}wcf.user.usercp{/lang} - {PAGE_TITLE|language}</title>
5
6 {include file='headInclude'}
7 </head>
8
9 <body id="tpl{$templateName|ucfirst}" data-template="{$templateName}" data-application="{$templateNameApplication}">
10
11 {include file='userMenuSidebar'}
12
13 {include file='header'}
14
15 <header class="contentHeader">
16 <h1 class="contentTitle">{lang}wcf.user.avatar.edit{/lang}</h1>
17 </header>
18
19 {include file='userNotice'}
20
21 {if $__wcf->user->disableAvatar}
22 <p class="error">{lang}wcf.user.avatar.error.disabled{/lang}</p>
23 {/if}
24
25 {include file='formError'}
26
27 {if $success|isset}
28 <p class="success">{lang}wcf.global.success.edit{/lang}</p>
29 {/if}
30
31 <div class="contentNavigation">
32 {hascontent}
33 <nav>
34 <ul>
35 {content}
36 {event name='contentNavigationButtons'}
37 {/content}
38 </ul>
39 </nav>
40 {/hascontent}
41 </div>
42
43 <form method="post" action="{link controller='AvatarEdit'}{/link}" id="avatarForm">
44 <section class="section avatarEdit">
45 <h2 class="sectionTitle">{lang}wcf.user.avatar{/lang}</h2>
46
47 <dl class="avatarType">
48 <dt></dt>
49 <dd>
50 <label><input type="radio" name="avatarType" value="none" {if $avatarType == 'none'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.none{/lang}</label>
51 <small>{lang}wcf.user.avatar.type.none.description{/lang}</small>
52 </dd>
53 </dl>
54
55 {if $__wcf->getSession()->getPermission('user.profile.avatar.canUploadAvatar')}
56 <dl class="avatarType jsOnly{if $errorField == 'custom'} formError{/if}" id="avatarUpload">
57 <dt>
58 {if $avatarType == 'custom'}
59 {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
60 {@$__wcf->getUserProfileHandler()->getAvatar()->getCropImageTag(96)}
61 {else}
62 {@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(96)}
63 {/if}
64 {else}
65 <img src="{@$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="userAvatarImage" style="width: 96px; height: 96px" />
66 {/if}
67 </dt>
68 <dd>
69 <label><input type="radio" name="avatarType" value="custom" {if $avatarType == 'custom'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.custom{/lang}</label>
70 <small>{lang}wcf.user.avatar.type.custom.description{/lang}</small>
71
72 {* placeholder for upload button: *}
73 <div class="avatarUploadButtonContainer"></div>
74
75 {if $errorField == 'custom'}
76 <small class="innerError">
77 {if $errorType == 'empty'}{lang}wcf.global.form.error.empty{/lang}{/if}
78 </small>
79 {/if}
80 </dd>
81 </dl>
82 {/if}
83
84 {if MODULE_GRAVATAR}
85 <dl class="avatarType{if $errorField == 'gravatar'} formError{/if}">
86 <dt><img src="https://secure.gravatar.com/avatar/{@$__wcf->user->email|strtolower|md5}?s=96{if GRAVATAR_DEFAULT_TYPE != '404'}&amp;d={@GRAVATAR_DEFAULT_TYPE}{/if}" alt="" class="userAvatarImage icon96" /></dt>
87 <dd>
88 <label><input type="radio" name="avatarType" value="gravatar" {if $avatarType == 'gravatar'}checked="checked" {/if}/> {lang}wcf.user.avatar.type.gravatar{/lang}</label>
89 {if $errorField == 'gravatar'}
90 <small class="innerError">
91 {if $errorType == 'notFound'}{lang}wcf.user.avatar.type.gravatar.error.notFound{/lang}{/if}
92 </small>
93 {/if}
94 <small>{lang}wcf.user.avatar.type.gravatar.description{/lang}</small>
95 </dd>
96 </dl>
97 {/if}
98
99 {event name='avatarFields'}
100 </section>
101
102 {event name='sections'}
103
104 {if !$__wcf->user->disableAvatar}
105 <div class="formSubmit">
106 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s" />
107 {@SECURITY_TOKEN_INPUT_TAG}
108 </div>
109 {/if}
110 </form>
111
112 {include file='footer'}
113
114 {if $__wcf->getSession()->getPermission('user.profile.avatar.canUploadAvatar')}
115 <script data-relocate="true">
116 //<![CDATA[
117 $(function() {
118 WCF.Language.addObject({
119 'wcf.user.avatar.type.custom.crop': '{lang}wcf.user.avatar.type.custom.crop{/lang}',
120 'wcf.user.avatar.upload.error.invalidExtension': '{lang}wcf.user.avatar.upload.error.invalidExtension{/lang}',
121 'wcf.user.avatar.upload.error.tooSmall': '{lang}wcf.user.avatar.upload.error.tooSmall{/lang}',
122 'wcf.user.avatar.upload.error.tooLarge': '{lang}wcf.user.avatar.upload.error.tooLarge{/lang}',
123 'wcf.user.avatar.upload.error.uploadFailed': '{lang}wcf.user.avatar.upload.error.uploadFailed{/lang}',
124 'wcf.user.avatar.upload.error.badImage': '{lang}wcf.user.avatar.upload.error.badImage{/lang}',
125 'wcf.user.avatar.upload.success': '{lang}wcf.user.avatar.upload.success{/lang}'
126 });
127
128 {if !$__wcf->user->disableAvatar}
129 {if $__wcf->getUserProfileHandler()->getAvatar()->canCrop()}
130 new WCF.User.Avatar.Upload(0, new WCF.User.Avatar.Crop({@$__wcf->getUserProfileHandler()->getAvatar()->avatarID}));
131 {else}
132 new WCF.User.Avatar.Upload();
133 {/if}
134 {/if}
135 });
136 //]]>
137 </script>
138 {/if}
139
140 </body>
141 </html>