Merge pull request #5989 from WoltLab/wsc-rpc-api-const
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / membersList.tpl
... / ...
CommitLineData
1{capture assign='pageTitle'}{if $searchID}{lang}wcf.user.search.results{/lang}{else}{$__wcf->getActivePage()->getTitle()}{/if}{if $pageNo > 1} - {lang}wcf.page.pageNo{/lang}{/if}{/capture}
2
3{capture assign='contentTitle'}{if $searchID}{lang}wcf.user.search.results{/lang}{else}{$__wcf->getActivePage()->getTitle()}{/if} <span class="badge">{#$items}</span>{/capture}
4
5{capture assign='canonicalURLParameters'}sortField={@$sortField}&sortOrder={@$sortOrder}{if $letter}&letter={@$letter|rawurlencode}{/if}{/capture}
6
7{capture assign='headContent'}
8 {if $pageNo < $pages}
9 <link rel="next" href="{link controller='MembersList'}pageNo={@$pageNo+1}&{@$canonicalURLParameters}{/link}">
10 {/if}
11 {if $pageNo > 1}
12 <link rel="prev" href="{link controller='MembersList'}{if $pageNo > 2}pageNo={@$pageNo-1}&{/if}{@$canonicalURLParameters}{/link}">
13 {/if}
14 <link rel="canonical" href="{link controller='MembersList'}{if $pageNo > 1}pageNo={@$pageNo}&{/if}{@$canonicalURLParameters}{/link}">
15{/capture}
16
17{capture assign='sidebarRight'}
18 {assign var=encodedLetter value=$letter|rawurlencode}
19 <section class="jsOnly box">
20 <form method="post" action="{link controller='UserSearch'}{/link}">
21 <h2 class="boxTitle"><a href="{link controller='UserSearch'}{/link}">{lang}wcf.user.search{/lang}</a></h2>
22
23 <div class="boxContent">
24 <dl>
25 <dt></dt>
26 <dd>
27 <input type="text" id="searchUsername" name="username" class="long" placeholder="{lang}wcf.user.username{/lang}">
28 {csrfToken}
29 </dd>
30 </dl>
31 </div>
32 </form>
33 </section>
34{/capture}
35
36{capture assign='contentInteractionPagination'}
37 {if $searchID}
38 {pages print=true assign=pagesLinks controller='MembersList' id=$searchID link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&letter=$encodedLetter"}
39 {else}
40 {pages print=true assign=pagesLinks controller='MembersList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&letter=$encodedLetter"}
41 {/if}
42{/capture}
43
44{include file='header'}
45
46{if $items}
47 <div class="section sectionContainerList">
48 <div class="containerListDisplayOptions">
49 <div class="containerListSortOptions">
50 <a
51 rel="nofollow"
52 class="jsTooltip"
53 href="{link controller='MembersList' id=$searchID}pageNo={@$pageNo}&sortField={$sortField}&sortOrder={if $sortOrder == 'ASC'}DESC{else}ASC{/if}{if $letter}&letter={$letter}{/if}{/link}"
54 title="{lang}wcf.global.sorting{/lang} ({lang}wcf.global.sortOrder.{if $sortOrder === 'ASC'}ascending{else}descending{/if}{/lang})"
55 >
56 {if $sortOrder === 'ASC'}
57 {icon name='arrow-down-short-wide'}
58 {else}
59 {icon name='arrow-down-wide-short'}
60 {/if}
61 </a>
62 <span class="dropdown">
63 <span class="dropdownToggle">{lang}wcf.user.sortField.{$sortField}{/lang}</span>
64
65 <ul class="dropdownMenu">
66 {foreach from=$validSortFields item=_sortField}
67 <li{if $_sortField === $sortField} class="active"{/if}><a rel="nofollow" href="{link controller='MembersList' id=$searchID}pageNo={@$pageNo}&sortField={$_sortField}&sortOrder={if $sortField === $_sortField}{if $sortOrder === 'DESC'}ASC{else}DESC{/if}{else}{$sortOrder}{/if}{if $letter}&letter={$letter}{/if}{/link}">{lang}wcf.user.sortField.{$_sortField}{/lang}</a></li>
68 {/foreach}
69 </ul>
70 </span>
71 </div>
72
73 {hascontent}
74 <div class="containerListActiveFilters">
75 <ul class="inlineList">
76 {content}
77 {if $letter}<li class="jsTooltip" title="{lang}wcf.user.members.sort.letters{/lang}">{icon name='bold'} {$letter}</li>{/if}
78 {/content}
79 </ul>
80 </div>
81 {/hascontent}
82
83 <div class="containerListFilterOptions jsOnly">
84 <button type="button" class="button small jsStaticDialog" data-dialog-id="membersListSortFilter">{icon name='filter'} {lang}wcf.global.filter{/lang}</button>
85 </div>
86 </div>
87
88 <div class="userCardList">
89 {foreach from=$objects item=user}
90 {include file='userCard'}
91 {/foreach}
92 </div>
93 </div>
94
95 <div id="membersListSortFilter" class="jsStaticDialogContent" data-title="{lang}wcf.user.members.filter{/lang}">
96 <form method="post" action="{link controller='MembersList' id=$searchID}{/link}">
97 <div class="section">
98 <dl>
99 <dt><label for="letter">{lang}wcf.user.members.sort.letters{/lang}</label></dt>
100 <dd>
101 <select name="letter" id="letter">
102 <option value="">{lang}wcf.user.members.sort.letters.all{/lang}</option>
103 {foreach from=$letters item=__letter}
104 <option value="{$__letter}"{if $__letter == $letter} selected{/if}>{$__letter}</option>
105 {/foreach}
106 </select>
107 </dd>
108 </dl>
109 </div>
110
111 <div class="formSubmit">
112 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
113 <a href="{link controller='MembersList'}{/link}" class="button">{lang}wcf.global.button.reset{/lang}</a>
114 <input type="hidden" name="sortField" value="{$sortField}">
115 <input type="hidden" name="sortOrder" value="{$sortOrder}">
116 </div>
117 </form>
118 </div>
119{else}
120 <woltlab-core-notice type="info">{lang}wcf.user.members.noMembers{/lang}</woltlab-core-notice>
121{/if}
122
123<footer class="contentFooter">
124 {hascontent}
125 <div class="paginationBottom">
126 {content}{@$pagesLinks}{/content}
127 </div>
128 {/hascontent}
129
130 {hascontent}
131 <nav class="contentFooterNavigation">
132 <ul>
133 {content}{event name='contentFooterNavigation'}{/content}
134 </ul>
135 </nav>
136 {/hascontent}
137</footer>
138
139<script data-relocate="true">
140 require(['WoltLabSuite/Core/Ui/User/Search/Input'], (UiUserSearchInput) => {
141 new UiUserSearchInput(document.getElementById('searchUsername'), {
142 callbackSelect(item) {
143 const link = '{link controller='User' id=2147483646 encode=false}{/link}';
144 window.location = link.replace('2147483646', item.dataset.objectId);
145 }
146 });
147 });
148</script>
149
150{include file='footer'}