Commit | Line | Data |
---|---|---|
359f3c53 MW |
1 | {include file='header' pageTitle='wcf.acp.user.authentication.failure.list'} |
2 | ||
95961bdf | 3 | <header class="contentHeader"> |
b5c94e9e | 4 | <div class="contentHeaderTitle"> |
0edfe081 | 5 | <h1 class="contentTitle">{lang}wcf.acp.user.authentication.failure.list{/lang}{if $items} <span class="badge badgeInverse">{#$items}</span>{/if}</h1> |
b5c94e9e | 6 | </div> |
359f3c53 MW |
7 | |
8 | {hascontent} | |
b5c94e9e | 9 | <nav class="contentHeaderNavigation"> |
359f3c53 | 10 | <ul> |
b5c94e9e | 11 | {content}{event name='contentHeaderNavigation'}{/content} |
359f3c53 MW |
12 | </ul> |
13 | </nav> | |
14 | {/hascontent} | |
b5c94e9e AE |
15 | </header> |
16 | ||
aca2c9bf MS |
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 | ||
b5c94e9e AE |
83 | {hascontent} |
84 | <div class="paginationTop"> | |
aca2c9bf MS |
85 | {content} |
86 | {pages print=true assign=pagesLinks controller='UserAuthenticationFailureList' link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$filterLinkParameters"} | |
87 | {/content} | |
b5c94e9e AE |
88 | </div> |
89 | {/hascontent} | |
359f3c53 MW |
90 | |
91 | {if $objects|count} | |
95961bdf | 92 | <div class="section tabularBox"> |
359f3c53 MW |
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> | |
8494a7cb | 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> |
359f3c53 MW |
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> | |
9ba15a22 | 113 | <td class="columnTitle columnUsername"> |
1da3864c MW |
114 | {if $authenticationFailure->userID} |
115 | <a href="{link controller='UserEdit' id=$authenticationFailure->userID}{/link}">{$authenticationFailure->username}</a> | |
116 | {else} | |
117 | {$authenticationFailure->username} | |
118 | {/if} | |
9ba15a22 | 119 | </td> |
359f3c53 | 120 | <td class="columnDate columnTime">{@$authenticationFailure->time|time}</td> |
1da3864c | 121 | <td class="columnSmallText columnValidationError"> |
8494a7cb MS |
122 | {if $authenticationFailure->validationError} |
123 | {lang}wcf.acp.user.authentication.failure.validationError.{$authenticationFailure->validationError}{/lang} | |
124 | {/if} | |
125 | </td> | |
359f3c53 MW |
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 | ||
b5c94e9e AE |
136 | <footer class="contentFooter"> |
137 | {hascontent} | |
138 | <div class="paginationBottom"> | |
139 | {content}{@$pagesLinks}{/content} | |
140 | </div> | |
141 | {/hascontent} | |
359f3c53 MW |
142 | |
143 | {hascontent} | |
b5c94e9e | 144 | <nav class="contentFooterNavigation"> |
359f3c53 | 145 | <ul> |
b5c94e9e | 146 | {content}{event name='contentFooterNavigation'}{/content} |
359f3c53 MW |
147 | </ul> |
148 | </nav> | |
149 | {/hascontent} | |
b5c94e9e | 150 | </footer> |
359f3c53 | 151 | {else} |
a14d7068 | 152 | <woltlab-core-notice type="info">{lang}wcf.global.noItems{/lang}</woltlab-core-notice> |
359f3c53 MW |
153 | {/if} |
154 | ||
155 | {include file='footer'} |