Added fallback for empty log-file path
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / userPanel.tpl
1 {if $__wcf->user->userID}
2 <!-- user menu -->
3 <li id="userMenu" class="dropdown">
4 <a class="dropdownToggle framed" data-toggle="userMenu" href="{link controller='User' object=$__wcf->user}{/link}">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(24)} <span>{lang}wcf.user.userNote{/lang}</span></a>
5 <ul class="dropdownMenu">
6 <li><a href="{link controller='User' object=$__wcf->user}{/link}" class="box32">
7 <div class="framed">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}</div>
8
9 <div class="containerHeadline">
10 <h3>{$__wcf->user->username}</h3>
11 <small>{lang}wcf.user.myProfile{/lang}</small>
12 </div>
13 </a></li>
14 {if $__wcf->getUserProfileHandler()->canEditOwnProfile()}<li><a href="{link controller='User' object=$__wcf->user}editOnInit=true#about{/link}">{lang}wcf.user.editProfile{/lang}</a></li>{/if}
15 <li><a href="{link controller='Settings'}{/link}">{lang}wcf.user.menu.settings{/lang}</a></li>
16
17 {event name='userMenuItems'}
18
19 {if $__wcf->session->getPermission('admin.general.canUseAcp')}
20 <li class="dropdownDivider"></li>
21 <li><a href="{link isACP=true}{/link}">{lang}wcf.global.acp.short{/lang}</a></li>
22 {/if}
23 <li class="dropdownDivider"></li>
24 <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" onclick="WCF.System.Confirmation.show('{lang}wcf.user.logout.sure{/lang}', $.proxy(function (action) { if (action == 'confirm') window.location.href = $(this).attr('href'); }, this)); return false;">{lang}wcf.user.logout{/lang}</a></li>
25 </ul>
26 </li>
27
28 <li><a href="{link controller='Settings'}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 icon-cogs"></span> <span>{lang}wcf.user.menu.settings{/lang}</span></a></li>
29
30 <!-- user notifications -->
31 {if !$__hideUserMenu|isset}
32 <li id="userNotifications" data-count="{#$__wcf->getUserNotificationHandler()->getNotificationCount()}">
33 <a href="{link controller='NotificationList'}{/link}"><span class="icon icon16 icon-bell-alt"></span> <span>{lang}wcf.user.notification.notifications{/lang}</span>{if $__wcf->getUserNotificationHandler()->getNotificationCount()} <span class="badge badgeInverse">{#$__wcf->getUserNotificationHandler()->getNotificationCount()}</span>{/if}</a>
34 {if !OFFLINE || $__wcf->session->getPermission('admin.general.canViewPageDuringOfflineMode')}
35 <script data-relocate="true">
36 //<![CDATA[
37 $(function() {
38 WCF.Language.addObject({
39 'wcf.user.notification.count': '{lang}wcf.user.notification.count{/lang}',
40 'wcf.user.notification.markAllAsConfirmed': '{lang}wcf.user.notification.markAllAsConfirmed{/lang}',
41 'wcf.user.notification.markAllAsConfirmed.confirmMessage': '{lang}wcf.user.notification.markAllAsConfirmed.confirmMessage{/lang}',
42 'wcf.user.notification.noMoreNotifications': '{lang}wcf.user.notification.noMoreNotifications{/lang}',
43 'wcf.user.notification.showAll': '{lang}wcf.user.notification.showAll{/lang}'
44 });
45
46 new WCF.Notification.UserPanel('{link controller='NotificationList' encode=false}{/link}');
47 });
48 //]]>
49 </script>
50 {/if}
51 </li>
52 {/if}
53 {else}
54 {if !$__disableLoginLink|isset}
55 <!-- login box -->
56 <li id="userLogin">
57 <a class="loginLink" href="{link controller='Login'}{/link}">{lang}wcf.user.loginOrRegister{/lang}</a>
58 <div id="loginForm" style="display: none;">
59 {capture assign='__3rdPartyButtons'}
60 {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''}
61 <li id="githubAuth" class="3rdPartyAuth">
62 <a href="{link controller='GithubAuth'}{/link}" class="thirdPartyLoginButton githubLoginButton"><span class="icon icon16 icon-github"></span> <span>{lang}wcf.user.3rdparty.github.login{/lang}</span></a>
63 </li>
64 {/if}
65
66 {if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''}
67 <li id="twitterAuth" class="3rdPartyAuth">
68 <a href="{link controller='TwitterAuth'}{/link}" class="thirdPartyLoginButton twitterLoginButton"><span class="icon icon16 icon-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.login{/lang}</span></a>
69 </li>
70 {/if}
71
72 {if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''}
73 <li id="facebookAuth" class="3rdPartyAuth">
74 <a href="{link controller='FacebookAuth'}{/link}" class="thirdPartyLoginButton facebookLoginButton"><span class="icon icon16 icon-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.login{/lang}</span></a>
75 </li>
76 {/if}
77
78 {if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''}
79 <li id="googleAuth" class="3rdPartyAuth">
80 <a href="{link controller='GoogleAuth'}{/link}" class="thirdPartyLoginButton googleLoginButton"><span class="icon icon16 icon-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.login{/lang}</span></a>
81 </li>
82 {/if}
83
84 {event name='3rdpartyButtons'}
85 {/capture}
86
87 <form method="post" action="{link controller='Login'}{/link}">
88 <fieldset>
89 {if $__3rdPartyButtons|trim}<legend>{lang}wcf.user.login{/lang}</legend>{/if}
90
91 <dl>
92 <dt><label for="username">{lang}wcf.user.usernameOrEmail{/lang}</label></dt>
93 <dd>
94 <input type="text" id="username" name="username" value="" required="required" class="long" />
95 </dd>
96 </dl>
97
98 {if !REGISTER_DISABLED}
99 <dl>
100 <dt>{lang}wcf.user.login.action{/lang}</dt>
101 <dd>
102 <label><input type="radio" name="action" value="register" /> {lang}wcf.user.login.action.register{/lang}</label>
103 <label><input type="radio" name="action" value="login" checked="checked" /> {lang}wcf.user.login.action.login{/lang}</label>
104 </dd>
105 </dl>
106 {/if}
107
108 <dl>
109 <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt>
110 <dd>
111 <input type="password" id="password" name="password" value="" class="long" />
112 </dd>
113 </dl>
114
115 {if $__wcf->getUserAuthenticationFactory()->getUserAuthentication()->supportsPersistentLogins()}
116 <dl>
117 <dt></dt>
118 <dd><label><input type="checkbox" id="useCookies" name="useCookies" value="1" checked="checked" /> {lang}wcf.user.useCookies{/lang}</label></dd>
119 </dl>
120 {/if}
121
122 {event name='loginFields'}
123
124 <div class="formSubmit">
125 <input type="submit" id="loginSubmitButton" name="submitButton" value="{lang}wcf.user.button.login{/lang}" accesskey="s" />
126 <a class="button" href="{link controller='LostPassword'}{/link}"><span>{lang}wcf.user.lostPassword{/lang}</span></a>
127 <input type="hidden" name="url" value="{$__wcf->session->requestURI}" />
128 {@SECURITY_TOKEN_INPUT_TAG}
129 </div>
130 </fieldset>
131
132 {if $__3rdPartyButtons|trim}
133 <fieldset>
134 <legend>{lang}wcf.user.login.3rdParty{/lang}</legend>
135 <ul class="buttonList smallButtons thirdPartyLogin">
136 {@$__3rdPartyButtons}
137 </ul>
138 </fieldset>
139 {/if}
140 </form>
141 </div>
142
143 <script data-relocate="true">
144 //<![CDATA[
145 $(function() {
146 WCF.Language.addObject({
147 'wcf.user.button.login': '{lang}wcf.user.button.login{/lang}',
148 'wcf.user.button.register': '{lang}wcf.user.button.register{/lang}',
149 'wcf.user.login': '{lang}wcf.user.login{/lang}'
150 });
151 new WCF.User.Login(true);
152 });
153 //]]>
154 </script>
155 </li>
156 {/if}
157 {if $__wcf->getLanguage()->getLanguages()|count > 1}
158 <li id="pageLanguageContainer">
159 <script data-relocate="true">
160 //<![CDATA[
161 $(function() {
162 var $languages = {
163 {implode from=$__wcf->getLanguage()->getLanguages() item=language}
164 '{@$language->languageID}': {
165 iconPath: '{@$language->getIconPath()}',
166 languageName: '{$language}'
167 }
168 {/implode}
169 };
170
171 new WCF.Language.Chooser('pageLanguageContainer', 'languageID', {@$__wcf->getLanguage()->languageID}, $languages, function(item) {
172 var $location = window.location.toString().replace(/#.*/, '').replace(/(\?|&)l=[0-9]+/g, '');
173 var $delimiter = ($location.indexOf('?') == -1) ? '?' : '&';
174
175 window.location = $location + $delimiter + 'l=' + item.data('languageID') + window.location.hash;
176 });
177 });
178 //]]>
179 </script>
180 </li>
181 {/if}
182 {/if}
183
184 {if !$__hideUserMenu|isset}
185 {if $__wcf->user->userID && $__wcf->session->getPermission('mod.general.canUseModeration')}
186 <li id="outstandingModeration" data-count="{#$__wcf->getModerationQueueManager()->getOutstandingModerationCount()}">
187 <a href="{link controller='ModerationList'}{/link}">
188 <span class="icon icon16 icon-warning-sign"></span>
189 <span>{lang}wcf.moderation.moderation{/lang}</span>
190 {if $__wcf->getModerationQueueManager()->getOutstandingModerationCount()}<span class="badge badgeInverse">{#$__wcf->getModerationQueueManager()->getOutstandingModerationCount()}</span>{/if}
191 </a>
192 {if !OFFLINE || $__wcf->session->getPermission('admin.general.canViewPageDuringOfflineMode')}
193 <script data-relocate="true">
194 //<![CDATA[
195 $(function() {
196 WCF.Language.addObject({
197 'wcf.moderation.noMoreItems': '{lang}wcf.moderation.noMoreItems{/lang}',
198 'wcf.moderation.showAll': '{lang}wcf.moderation.showAll{/lang}',
199 'wcf.moderation.showDeletedContent': '{lang}wcf.moderation.showDeletedContent{/lang}'
200 });
201
202 new WCF.Moderation.UserPanel('{link controller='ModerationList' encode=false}{/link}', '{link controller='DeletedContentList' encode=false}{/link}');
203 });
204 //]]>
205 </script>
206 {/if}
207 </li>
208 {/if}
209
210 {event name='menuItems'}
211 {/if}
212
213 {if $__wcf->user->userID}
214 <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 icon-signout"></span> <span>{lang}wcf.user.logout{/lang}</span></a></li>
215 {/if}