Commit | Line | Data |
---|---|---|
7485c55b MS |
1 | {if $searchID} |
2 | {assign var='pageTitle' value='wcf.acp.user.search'} | |
3 | {else} | |
4 | {assign var='pageTitle' value='wcf.acp.user.list'} | |
5 | {/if} | |
6 | ||
158bd3ca | 7 | {include file='header'} |
8c34456d | 8 | |
11910ce3 | 9 | {event name='javascriptInclude'} |
9543d9fe | 10 | <script data-relocate="true"> |
158bd3ca | 11 | //<![CDATA[ |
2c04fc49 | 12 | $(function() { |
da27d58a MS |
13 | var actionObjects = { }; |
14 | actionObjects['com.woltlab.wcf.user'] = { }; | |
d371330f | 15 | actionObjects['com.woltlab.wcf.user']['delete'] = new WCF.Action.Delete('wcf\\data\\user\\UserAction', '.jsUserRow'); |
9f959ced | 16 | |
da27d58a MS |
17 | WCF.Clipboard.init('wcf\\acp\\page\\UserListPage', {@$hasMarkedItems}, actionObjects); |
18 | ||
19 | var options = { }; | |
20 | {if $pages > 1} | |
21 | options.refreshPage = true; | |
22 | {/if} | |
23 | ||
24 | new WCF.Table.EmptyTableHandler($('#userTableContainer'), 'jsUserRow', options); | |
11cf19be MW |
25 | |
26 | WCF.Language.addObject({ | |
27 | 'wcf.acp.user.banReason': '{lang}wcf.acp.user.banReason{/lang}', | |
28 | 'wcf.acp.user.banReason.description': '{lang}wcf.acp.user.banReason.description{/lang}', | |
cb6e5946 | 29 | 'wcf.acp.user.ban.sure': '{lang}wcf.acp.user.ban.sure{/lang}', |
f034d0ec MS |
30 | 'wcf.acp.user.ban.expires': '{lang}wcf.acp.user.ban.expires{/lang}', |
31 | 'wcf.acp.user.ban.expires.description': '{lang}wcf.acp.user.ban.expires.description{/lang}', | |
32 | 'wcf.acp.user.ban.neverExpires': '{lang}wcf.acp.user.ban.neverExpires{/lang}', | |
cb6e5946 MS |
33 | 'wcf.acp.user.sendNewPassword.workerTitle': '{lang}wcf.acp.user.sendNewPassword.workerTitle{/lang}', |
34 | 'wcf.acp.worker.abort.confirmMessage': '{lang}wcf.acp.worker.abort.confirmMessage{/lang}' | |
11cf19be MW |
35 | }); |
36 | WCF.ACP.User.BanHandler.init(); | |
cb6e5946 MS |
37 | |
38 | {if $__wcf->session->getPermission('admin.user.canEnableUser')} | |
39 | WCF.ACP.User.EnableHandler.init(); | |
40 | {/if} | |
41 | ||
42 | {if $__wcf->session->getPermission('admin.user.canEditPassword')} | |
43 | WCF.ACP.User.SendNewPasswordHandler.init(); | |
44 | {/if} | |
11910ce3 MW |
45 | |
46 | {event name='javascriptInit'} | |
2c04fc49 | 47 | }); |
158bd3ca TD |
48 | //]]> |
49 | </script> | |
50 | ||
daa737bf | 51 | <header class="boxHeadline"> |
635a8feb | 52 | <h1>{lang}{@$pageTitle}{/lang}</h1> |
158bd3ca TD |
53 | </header> |
54 | ||
55 | {assign var=encodedURL value=$url|rawurlencode} | |
56 | {assign var=encodedAction value=$action|rawurlencode} | |
184a8d6d | 57 | <div class="contentNavigation"> |
2b146ddc | 58 | {pages print=true assign=pagesLinks controller="UserList" id=$searchID link="pageNo=%d&action=$encodedAction&sortField=$sortField&sortOrder=$sortOrder"} |
158bd3ca | 59 | |
ef097134 | 60 | <nav> |
184a8d6d | 61 | <ul> |
158bd3ca | 62 | {if $__wcf->session->getPermission('admin.user.canAddUser')} |
6ab4d963 | 63 | <li><a href="{link controller='UserAdd'}{/link}" class="button"><span class="icon icon16 icon-plus"></span> <span>{lang}wcf.acp.user.add{/lang}</span></a></li> |
158bd3ca | 64 | {/if} |
5348d3d2 | 65 | |
7991009f | 66 | {event name='contentNavigationButtonsTop'} |
158bd3ca TD |
67 | </ul> |
68 | </nav> | |
69 | </div> | |
70 | ||
baa1ddc3 MW |
71 | {if $users|count} |
72 | <div id="userTableContainer" class="tabularBox tabularBoxTitle marginTop"> | |
73 | <header> | |
74 | <h2>{lang}wcf.acp.user.list{/lang} <span class="badge badgeInverse">{#$items}</span></h2> | |
75 | </header> | |
76 | ||
184a8d6d | 77 | <table data-type="com.woltlab.wcf.user" class="table jsClipboardContainer"> |
158bd3ca | 78 | <thead> |
e843c814 | 79 | <tr> |
6f475a52 | 80 | <th class="columnMark"><label><input type="checkbox" class="jsClipboardMarkAll" /></label></th> |
ef959540 MW |
81 | <th class="columnID columnUserID{if $sortField == 'userID'} active {@$sortOrder}{/if}" colspan="2"><a href="{link controller='UserList' id=$searchID}action={@$encodedAction}&pageNo={@$pageNo}&sortField=userID&sortOrder={if $sortField == 'userID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.objectID{/lang}</a></th> |
82 | <th class="columnTitle columnUsername{if $sortField == 'username'} active {@$sortOrder}{/if}" colspan="2"><a href="{link controller='UserList' id=$searchID}action={@$encodedAction}&pageNo={@$pageNo}&sortField=username&sortOrder={if $sortField == 'username' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.user.username{/lang}</a></th> | |
158bd3ca TD |
83 | |
84 | {foreach from=$columnHeads key=column item=columnLanguageVariable} | |
ef959540 | 85 | <th class="column{$column|ucfirst}{if $sortField == $column} active {@$sortOrder}{/if}"><a href="{link controller='UserList' id=$searchID}action={@$encodedAction}&pageNo={@$pageNo}&sortField={$column}&sortOrder={if $sortField == $column && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}{$columnLanguageVariable}{/lang}</a></th> |
158bd3ca TD |
86 | {/foreach} |
87 | ||
7991009f | 88 | {event name='columnHeads'} |
158bd3ca TD |
89 | </tr> |
90 | </thead> | |
eee4c4ff | 91 | |
158bd3ca | 92 | <tbody> |
baa1ddc3 | 93 | {foreach from=$users item=user} |
34553633 | 94 | <tr class="jsUserRow jsClipboardObject"> |
baa1ddc3 MW |
95 | <td class="columnMark"><input type="checkbox" class="jsClipboardItem" data-object-id="{@$user->userID}" /></td> |
96 | <td class="columnIcon"> | |
97 | {if $user->editable} | |
98 | <a href="{link controller='UserEdit' id=$user->userID}{/link}" title="{lang}wcf.global.button.edit{/lang}" class="jsTooltip"><span class="icon icon16 icon-pencil"></span></a> | |
99 | {else} | |
100 | <span class="icon icon16 icon-pencil disabled" title="{lang}wcf.global.button.edit{/lang}"></span> | |
101 | {/if} | |
102 | {if $user->deletable} | |
103 | <span class="icon icon16 icon-remove jsTooltip jsDeleteButton pointer" title="{lang}wcf.global.button.delete{/lang}" data-object-id="{@$user->userID}" data-confirm-message="{lang}wcf.acp.user.delete.sure{/lang}"></span> | |
104 | {else} | |
105 | <span class="icon icon16 icon-remove disabled" title="{lang}wcf.global.button.delete{/lang}"></span> | |
106 | {/if} | |
11cf19be MW |
107 | {if $user->bannable} |
108 | <span class="icon icon16 icon-{if $user->banned}lock{else}unlock{/if} jsBanButton jsTooltip pointer" title="{lang}wcf.acp.user.{if $user->banned}unban{else}ban{/if}{/lang}" data-object-id="{@$user->userID}" data-ban-message="{lang}wcf.acp.user.ban{/lang}" data-unban-message="{lang}wcf.acp.user.unban{/lang}" data-banned="{if $user->banned}true{else}false{/if}"></span> | |
109 | {else} | |
110 | <span class="icon icon16 icon-{if $user->banned}lock{else}unlock{/if} disabled" title="{lang}wcf.acp.user.{if $user->banned}unban{else}ban{/if}{/lang}"></span> | |
111 | {/if} | |
e6740117 MS |
112 | {if $user->canBeEnabled} |
113 | <span class="icon icon16 icon-{if !$user->activationCode}check{else}check-empty{/if} jsEnableButton jsTooltip pointer" title="{lang}wcf.acp.user.{if !$user->activationCode}disable{else}enable{/if}{/lang}" data-object-id="{@$user->userID}" data-enable-message="{lang}wcf.acp.user.enable{/lang}" data-disable-message="{lang}wcf.acp.user.disable{/lang}" data-enabled="{if !$user->activationCode}true{else}false{/if}"></span> | |
114 | {else} | |
115 | <span class="icon icon16 icon-{if !$user->activationCode}check{else}check-empty{/if} disabled" title="{lang}wcf.acp.user.{if !$user->activationCode}disable{else}enable{/if}{/lang}"></span> | |
320f4a6d | 116 | {/if} |
9f959ced | 117 | |
baa1ddc3 MW |
118 | {event name='rowButtons'} |
119 | </td> | |
120 | <td class="columnID columnUserID">{@$user->userID}</td> | |
f538a459 | 121 | <td class="columnIcon"><p class="framed">{@$user->getAvatar()->getImageTag(24)}</p></td> |
071007ed | 122 | <td class="columnTitle columnUsername">{if $user->editable}<a title="{lang}wcf.acp.user.edit{/lang}" href="{link controller='UserEdit' id=$user->userID}{/link}">{$user->username}</a>{else}{$user->username}{/if}{if MODULE_USER_RANK}{if $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}{if $user->getRank() && $user->getRank()->rankImage} <span class="userRankImage">{@$user->getRank()->getImage()}</span>{/if}{/if}</td> |
baa1ddc3 MW |
123 | |
124 | {foreach from=$columnHeads key=column item=columnLanguageVariable} | |
d9e1d8a4 | 125 | <td class="column{$column|ucfirst}{if $columnStyling[$column]|isset} {$columnStyling[$column]}{/if}">{if $columnValues[$user->userID][$column]|isset}{@$columnValues[$user->userID][$column]}{/if}</td> |
baa1ddc3 MW |
126 | {/foreach} |
127 | ||
128 | {event name='columns'} | |
129 | </tr> | |
130 | {/foreach} | |
158bd3ca TD |
131 | </tbody> |
132 | </table> | |
133 | </div> | |
ea3185a0 | 134 | |
184a8d6d | 135 | <div class="contentNavigation"> |
2c04fc49 AE |
136 | {@$pagesLinks} |
137 | ||
ef097134 | 138 | <nav> |
184a8d6d | 139 | <ul> |
158bd3ca | 140 | {if $__wcf->session->getPermission('admin.user.canAddUser')} |
6ab4d963 | 141 | <li><a href="{link controller='UserAdd'}{/link}" class="button"><span class="icon icon16 icon-plus"></span> <span>{lang}wcf.acp.user.add{/lang}</span></a></li> |
158bd3ca | 142 | {/if} |
5348d3d2 | 143 | |
7991009f | 144 | {event name='contentNavigationButtonsBottom'} |
158bd3ca TD |
145 | </ul> |
146 | </nav> | |
04f02424 MS |
147 | |
148 | <nav class="jsClipboardEditor" data-types="[ 'com.woltlab.wcf.user' ]"></nav> | |
158bd3ca | 149 | </div> |
baa1ddc3 MW |
150 | {else} |
151 | <p class="info">{lang}wcf.acp.user.search.error.noMatches{/lang}</p> | |
152 | {/if} | |
158bd3ca TD |
153 | |
154 | {include file='footer'} |