Add clipboard support for tags
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / acp / templates / userList.tpl
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
7 {include file='header'}
8
9 {event name='javascriptInclude'}
10 <script data-relocate="true">
11 //<![CDATA[
12 $(function() {
13 var actionObjects = { };
14 actionObjects['com.woltlab.wcf.user'] = { };
15 actionObjects['com.woltlab.wcf.user']['delete'] = new WCF.Action.Delete('wcf\\data\\user\\UserAction', '.jsUserRow');
16
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);
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}',
29 'wcf.acp.user.ban.sure': '{lang}wcf.acp.user.ban.sure{/lang}',
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}',
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}'
35 });
36 WCF.ACP.User.BanHandler.init();
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}
45
46 {event name='javascriptInit'}
47 });
48 //]]>
49 </script>
50
51 <header class="boxHeadline">
52 <h1>{lang}{@$pageTitle}{/lang}</h1>
53 </header>
54
55 {assign var=encodedURL value=$url|rawurlencode}
56 {assign var=encodedAction value=$action|rawurlencode}
57 <div class="contentNavigation">
58 {pages print=true assign=pagesLinks controller="UserList" id=$searchID link="pageNo=%d&action=$encodedAction&sortField=$sortField&sortOrder=$sortOrder"}
59
60 <nav>
61 <ul>
62 {if $__wcf->session->getPermission('admin.user.canAddUser')}
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>
64 {/if}
65
66 {event name='contentNavigationButtonsTop'}
67 </ul>
68 </nav>
69 </div>
70
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
77 <table data-type="com.woltlab.wcf.user" class="table jsClipboardContainer">
78 <thead>
79 <tr>
80 <th class="columnMark"><label><input type="checkbox" class="jsClipboardMarkAll" /></label></th>
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>
83
84 {foreach from=$columnHeads key=column item=columnLanguageVariable}
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>
86 {/foreach}
87
88 {event name='columnHeads'}
89 </tr>
90 </thead>
91
92 <tbody>
93 {foreach from=$users item=user}
94 <tr class="jsUserRow jsClipboardObject">
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}
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}
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>
116 {/if}
117
118 {event name='rowButtons'}
119 </td>
120 <td class="columnID columnUserID">{@$user->userID}</td>
121 <td class="columnIcon"><p class="framed">{@$user->getAvatar()->getImageTag(24)}</p></td>
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>
123
124 {foreach from=$columnHeads key=column item=columnLanguageVariable}
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>
126 {/foreach}
127
128 {event name='columns'}
129 </tr>
130 {/foreach}
131 </tbody>
132 </table>
133 </div>
134
135 <div class="contentNavigation">
136 {@$pagesLinks}
137
138 <nav>
139 <ul>
140 {if $__wcf->session->getPermission('admin.user.canAddUser')}
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>
142 {/if}
143
144 {event name='contentNavigationButtonsBottom'}
145 </ul>
146 </nav>
147
148 <nav class="jsClipboardEditor" data-types="[ 'com.woltlab.wcf.user' ]"></nav>
149 </div>
150 {else}
151 <p class="info">{lang}wcf.acp.user.search.error.noMatches{/lang}</p>
152 {/if}
153
154 {include file='footer'}