|
2 | 2 |
|
3 | 3 | <header class="contentHeader"> |
4 | 4 | <div class="contentHeaderTitle"> |
5 | | - <h1 class="contentTitle">{lang}wcf.acp.user.authentication.failure.list{/lang}{if $items} <span class="badge badgeInverse">{#$items}</span>{/if}</h1> |
| 5 | + <h1 class="contentTitle">{lang}wcf.acp.user.authentication.failure.list{/lang} <span class="badge badgeInverse">{#$gridView->countRows()}</span></h1> |
6 | 6 | </div> |
7 | 7 |
|
8 | 8 | {hascontent} |
|
14 | 14 | {/hascontent} |
15 | 15 | </header> |
16 | 16 |
|
17 | | -<form method="post" action="{link controller='UserAuthenticationFailureList'}{/link}"> |
18 | | - <section class="section"> |
19 | | - <h2 class="sectionTitle">{lang}wcf.global.filter{/lang}</h2> |
20 | | - |
21 | | - <div class="row rowColGap formGrid"> |
22 | | - <dl class="col-xs-12 col-md-4"> |
23 | | - <dt></dt> |
24 | | - <dd> |
25 | | - <select name="filter[environment]" id="environment"> |
26 | | - <option value="">{lang}wcf.acp.user.authentication.failure.environment{/lang}</option> |
27 | | - <option value="admin"{if $filter[environment] === 'admin'} selected{/if}>{lang}wcf.acp.user.authentication.failure.environment.admin{/lang}</option> |
28 | | - <option value="user"{if $filter[environment] === 'user'} selected{/if}>{lang}wcf.acp.user.authentication.failure.environment.user{/lang}</option> |
29 | | - </select> |
30 | | - </dd> |
31 | | - </dl> |
32 | | - |
33 | | - <dl class="col-xs-12 col-md-4"> |
34 | | - <dt></dt> |
35 | | - <dd> |
36 | | - <input type="text" id="username" name="filter[username]" value="{$filter[username]}" placeholder="{lang}wcf.user.username{/lang}" class="long"> |
37 | | - </dd> |
38 | | - </dl> |
39 | | - |
40 | | - <dl class="col-xs-12 col-md-4"> |
41 | | - <dt></dt> |
42 | | - <dd> |
43 | | - <select name="filter[validationError]" id="validationError"> |
44 | | - <option value="">{lang}wcf.acp.user.authentication.failure.validationError{/lang}</option> |
45 | | - <option value="invalidPassword"{if $filter[validationError] === 'invalidPassword'} selected{/if}>{lang}wcf.acp.user.authentication.failure.validationError.invalidPassword{/lang}</option> |
46 | | - <option value="invalidUsername"{if $filter[validationError] === 'invalidUsername'} selected{/if}>{lang}wcf.acp.user.authentication.failure.validationError.invalidUsername{/lang}</option> |
47 | | - {event name='validationErrorFilterOptions'} |
48 | | - </select> |
49 | | - </dd> |
50 | | - </dl> |
51 | | - |
52 | | - <dl class="col-xs-12 col-md-4"> |
53 | | - <dt></dt> |
54 | | - <dd> |
55 | | - <input type="date" id="startDate" name="filter[startDate]" value="{$filter[startDate]}" data-placeholder="{lang}wcf.acp.user.authentication.failure.time.start{/lang}"> |
56 | | - </dd> |
57 | | - </dl> |
58 | | - |
59 | | - <dl class="col-xs-12 col-md-4"> |
60 | | - <dt></dt> |
61 | | - <dd> |
62 | | - <input type="date" id="endDate" name="filter[endDate]" value="{$filter[endDate]}" data-placeholder="{lang}wcf.acp.user.authentication.failure.time.end{/lang}"> |
63 | | - </dd> |
64 | | - </dl> |
65 | | - |
66 | | - <dl class="col-xs-12 col-md-4"> |
67 | | - <dt></dt> |
68 | | - <dd> |
69 | | - <input type="text" id="userAgent" name="filter[userAgent]" value="{$filter[userAgent]}" placeholder="{lang}wcf.user.userAgent{/lang}" class="long"> |
70 | | - </dd> |
71 | | - </dl> |
72 | | - |
73 | | - {event name='filterFields'} |
74 | | - </div> |
75 | | - |
76 | | - <div class="formSubmit"> |
77 | | - <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s"> |
78 | | - {csrfToken} |
79 | | - </div> |
80 | | - </section> |
81 | | -</form> |
82 | | - |
83 | | -{hascontent} |
84 | | - <div class="paginationTop"> |
85 | | - {content} |
86 | | - {pages print=true assign=pagesLinks controller='UserAuthenticationFailureList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$filterLinkParameters"} |
87 | | - {/content} |
88 | | - </div> |
89 | | -{/hascontent} |
90 | | - |
91 | | -{if $objects|count} |
92 | | - <div class="section tabularBox"> |
93 | | - <table class="table"> |
94 | | - <thead> |
95 | | - <tr> |
96 | | - <th class="columnID columnFailureID{if $sortField == 'failureID'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=failureID&sortOrder={if $sortField == 'failureID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.global.objectID{/lang}</a></th> |
97 | | - <th class="columnText columnEnvironment{if $sortField == 'environment'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=environment&sortOrder={if $sortField == 'environment' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.user.authentication.failure.environment{/lang}</a></th> |
98 | | - <th class="columnTitle columnUsername{if $sortField == 'username'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=username&sortOrder={if $sortField == 'username' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.user.username{/lang}</a></th> |
99 | | - <th class="columnDate columnTime{if $sortField == 'time'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=time&sortOrder={if $sortField == 'time' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.user.authentication.failure.time{/lang}</a></th> |
100 | | - <th class="columnText columnValidationError{if $sortField === 'validationError'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=validationError&sortOrder={if $sortField === 'validationError' && $sortOrder === 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.user.authentication.failure.validationError{/lang}</a></th> |
101 | | - <th class="columnURL columnIpAddress{if $sortField == 'ipAddress'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=ipAddress&sortOrder={if $sortField == 'ipAddress' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.user.ipAddress{/lang}</a></th> |
102 | | - <th class="columnText columnUserAgent{if $sortField == 'userAgent'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=userAgent&sortOrder={if $sortField == 'userAgent' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.user.userAgent{/lang}</a></th> |
103 | | - |
104 | | - {event name='columnHeads'} |
105 | | - </tr> |
106 | | - </thead> |
107 | | - |
108 | | - <tbody> |
109 | | - {foreach from=$objects item='authenticationFailure'} |
110 | | - <tr> |
111 | | - <td class="columnID columnFailureID">{@$authenticationFailure->failureID}</td> |
112 | | - <td class="columnText columnEnvironment">{lang}wcf.acp.user.authentication.failure.environment.{@$authenticationFailure->environment}{/lang}</td> |
113 | | - <td class="columnTitle columnUsername"> |
114 | | - {if $authenticationFailure->userID} |
115 | | - <a href="{link controller='UserEdit' id=$authenticationFailure->userID}{/link}">{$authenticationFailure->username}</a> |
116 | | - {else} |
117 | | - {$authenticationFailure->username} |
118 | | - {/if} |
119 | | - </td> |
120 | | - <td class="columnDate columnTime">{@$authenticationFailure->time|time}</td> |
121 | | - <td class="columnSmallText columnValidationError"> |
122 | | - {if $authenticationFailure->validationError} |
123 | | - {lang}wcf.acp.user.authentication.failure.validationError.{$authenticationFailure->validationError}{/lang} |
124 | | - {/if} |
125 | | - </td> |
126 | | - <td class="columnSmallText columnIpAddress">{$authenticationFailure->getIpAddress()}</td> |
127 | | - <td class="columnSmallText columnUserAgent" title="{$authenticationFailure->userAgent}">{$authenticationFailure->userAgent|truncate:75|tableWordwrap}</td> |
128 | | - |
129 | | - {event name='columns'} |
130 | | - </tr> |
131 | | - {/foreach} |
132 | | - </tbody> |
133 | | - </table> |
134 | | - </div> |
135 | | - |
136 | | - <footer class="contentFooter"> |
137 | | - {hascontent} |
138 | | - <div class="paginationBottom"> |
139 | | - {content}{@$pagesLinks}{/content} |
140 | | - </div> |
141 | | - {/hascontent} |
142 | | - |
143 | | - {hascontent} |
144 | | - <nav class="contentFooterNavigation"> |
145 | | - <ul> |
146 | | - {content}{event name='contentFooterNavigation'}{/content} |
147 | | - </ul> |
148 | | - </nav> |
149 | | - {/hascontent} |
150 | | - </footer> |
151 | | -{else} |
152 | | - <woltlab-core-notice type="info">{lang}wcf.global.noItems{/lang}</woltlab-core-notice> |
153 | | -{/if} |
| 17 | +<div class="section"> |
| 18 | + {unsafe:$gridView->render()} |
| 19 | +</div> |
154 | 20 |
|
155 | 21 | {include file='footer'} |
0 commit comments