1- <?php
2-
1+ <?php /* vim: set colorcolumn= expandtab shiftwidth=2 softtabstop=2 tabstop=4 smarttab: */
32namespace BNETDocs \Templates \EventLog ;
43
54use \BNETDocs \Libraries \Event ;
65use \BNETDocs \Libraries \Exceptions \UserNotFoundException ;
76use \CarlBennett \MVC \Libraries \Common ;
87use \CarlBennett \MVC \Libraries \Pair ;
98
10- $ title = 'Event Logs ' ;
11- $ description = 'The index for event logs on BNETDocs ' ;
9+ $ title = 'Event Logs ' ;
10+ $ description = 'All triggered event logs on BNETDocs ' ;
1211$ this ->opengraph ->attach (new Pair ('url ' , '/eventlog/index ' ));
1312
13+ $ form_order_by = [
14+ 'datetime-asc ' => 'Timestamp (Ascending) ' ,
15+ 'datetime-desc ' => 'Timestamp (Descending) ' ,
16+ 'id-asc ' => 'Event Id (Ascending) ' ,
17+ 'id-desc ' => 'Event Id (Descending) ' ,
18+ ];
19+
1420$ page = $ this ->getContext ()->page ;
1521$ pages = $ this ->getContext ()->pages ;
1622$ limit = $ this ->getContext ()->limit ;
@@ -19,90 +25,72 @@ $order = $this->getContext()->order;
1925$ no_prev = ($ page <= 1 );
2026$ no_next = ($ page >= $ pages );
2127
22- require ('./header.inc.phtml ' );
23- ?>
24- <article>
25- <?php if (!$ this ->getContext ()->acl_allowed ) { ?>
26- <header class="red"><?php echo $ title ; ?> </header>
27- <section class="red">
28- <p>You are not authorized to view this page.</p>
29- </section>
30- <?php } else { ?>
31- <header><?php echo $ title ; ?> </header>
32- <section>
33- <?php require ('./NYI.inc.phtml ' ); ?> <hr/>
34- <form method="GET">
35- <input type="hidden" name="page" value="<?php echo $ page ; ?> "/>
36- <input type="hidden" name="limit" value="<?php echo $ limit ; ?> "/>
37- <label for="order">Order by:</label>
38- <select name="order" id="order" onchange="form.submit();"
39- style="display:inline-block;width:200px;">
40- <option value="id-asc"<?php
41- if ($ order === 'id-asc ' ) { echo ' selected="selected" ' ;
42- } ?> >Event Id (Ascending)</option>
43- <option value="id-desc"<?php
44- if ($ order === 'id-desc ' ) { echo ' selected="selected" ' ;
45- } ?> >Event Id (Descending)</option>
46- <option value="datetime-asc"<?php
47- if ($ order === 'datetime-asc ' ) { echo ' selected="selected" ' ;
48- } ?> >Timestamp (Ascending)</option>
49- <option value="datetime-desc"<?php
50- if ($ order === 'datetime-desc ' ) { echo ' selected="selected" ' ;
51- } ?> >Timestamp (Descending)</option>
52- </select>
53- <input type="submit" value="Reorder"/>
54- </form>
55- <table>
56- <thead>
57- <tr>
58- <th class="right" style="width:70px;">Id</th>
59- <th class="left" style="width:220px;">Event Type</th>
60- <th class="left" style="width:200px;">Timestamp</th>
61- <th class="left">User Account</th>
62- </tr>
63- </thead><tbody>
64- <?php foreach ($ this ->getContext ()->events as $ event ) {
65- $ e_id = $ event ->getId ();
66- try { $ e_user = $ event ->getUser (); }
67- catch ( UserNotFoundException $ e ) { $ e_user = null ; }
68- if ( is_null ( $ e_user ) ) { $ e_user = '<em>(null)</em> ' ; }
69- else {
70- $ e_user_url = $ e_user ->getURI ();
71- $ e_user_avatar = $ e_user ->getAvatarURI (22 );
72- $ e_user = filter_var ( $ e_user ->getName (), FILTER_SANITIZE_FULL_SPECIAL_CHARS );
73- $ e_user = '<a href=" ' . $ e_user_url . '"><img class="avatar" src=" ' . $ e_user_avatar . '"/> ' . $ e_user . '</a> ' ;
74- }
28+ require ('./header.inc.phtml ' ); ?>
29+ <div class="container mb-3">
30+ <? if (!$ this ->getContext ()->acl_allowed ) { ?>
31+ <div class="alert alert-danger">
32+ <h1><?= $ title?> </h1>
33+ <p class="mb-0">You are not authorized to view this page.</p>
34+ </div>
35+ <? } else { ?>
36+ <h1><?= $ title?> </h1>
37+ <p><?= $ description?> </p>
38+ <form method="GET" class="m-2" id="filter_form">
39+ <input type="hidden" name="page" value="<? echo $ page ; ?> "/>
40+ <input type="hidden" name="limit" value="<? echo $ limit ; ?> "/>
41+ <label for="order" class="font-weight-bold m-1">Order by:</label>
42+ <select class="form-control form-control-sm" name="order" id="order" onchange="form.submit();" style="display:inline-block;width:200px;">
43+ <? foreach ($ form_order_by as $ item_value => $ item_label ) {
44+ $ item_selected = ($ order === $ item_value ? ' selected="selected" ' : '' );
45+ echo sprintf ('<option value="%s"%s>%s</option> ' . PHP_EOL , $ item_value , $ item_selected , $ item_label );
46+ } ?>
47+ </select>
48+ <input class="btn btn-sm btn-secondary" type="submit" value="Reorder"/>
49+ </form>
50+ <table class="table table-hover table-sm table-striped">
51+ <thead>
52+ <tr>
53+ <th class="text-right">Id</th>
54+ <th>Event Type</th>
55+ <th>Timestamp</th>
56+ <th>User Account</th>
57+ </tr>
58+ </thead><tbody>
59+ <? foreach ($ this ->getContext ()->events as $ event ) {
60+ $ e_id = $ event ->getId ();
61+ try { $ e_user = $ event ->getUser (); }
62+ catch ( UserNotFoundException $ e ) { $ e_user = null ; }
63+ if ( is_null ( $ e_user ) ) { $ e_user = '<em>(null)</em> ' ; }
64+ else {
65+ $ e_user_url = $ e_user ->getURI ();
66+ $ e_user_avatar = $ e_user ->getAvatarURI (22 );
67+ $ e_user = filter_var ( $ e_user ->getName (), FILTER_SANITIZE_FULL_SPECIAL_CHARS );
68+ $ e_user = '<a href=" ' . $ e_user_url . '"><img class="avatar" src=" ' . $ e_user_avatar . '"/> ' . $ e_user . '</a> ' ;
69+ }
7570?>
76- <tr>
77- <td class="right"><a href="<?php echo Common::relativeUrlToAbsolute ('/eventlog/view?id= ' . $ e_id ); ?> "><?php echo $ e_id ; ?> </a></td>
78- <td><?php echo $ event ->getEventTypeName (); ?> </td>
79- <td><time datetime="<?php echo $ event ->getEventDateTime ()->format ('c ' ); ?> "><?php echo $ event ->getEventDateTime ()->format ('l, F j, Y ' ); ?> </time></td>
80- <td><?php echo $ e_user ; ?> </td>
81- </tr>
82- <?php } ?>
83- </tbody></table>
84- </section>
85- <section>
86- <hr/>
87- <span class="float-left">
88- <?php if (!$ no_prev ) { ?>
89- <a class="button" href="<?php echo Common::relativeUrlToAbsolute ('/eventlog/index?page= ' . ($ page - 1 ) . '&limit= ' . $ limit . '&order= ' . $ order ); ?> ">Prev</a>
90- <?php } else { ?>
91- <button class="button button-disabled" disabled="disabled">Prev</button>
92- <?php } ?>
93- </span>
94- <span class="float-right">
95- <?php if (!$ no_next ) { ?>
96- <a class="button" href="<?php echo Common::relativeUrlToAbsolute ('/eventlog/index?page= ' . ($ page + 1 ) . '&limit= ' . $ limit . '&order= ' . $ order ); ?> ">Next</a>
97- <?php } else { ?>
98- <button class="button button-disabled" disabled="disabled">Next</button>
99- <?php } ?>
100- </span>
101- <p class="center" style="line-height:24px;">
102- <strong><?php echo number_format ($ page ); ?> </strong> of <?php echo number_format ($ pages ); ?>
103- </p>
104- </section>
105- </article>
106- <?php } ?>
107- </article>
108- <?php require ("./footer.inc.phtml " ); ?>
71+ <tr>
72+ <td class="text-right"><a href="<?= Common::relativeUrlToAbsolute ('/eventlog/view?id= ' . $ e_id )?> "><?= $ e_id?> </a></td>
73+ <td><?= $ event ->getEventTypeName ()?> </td>
74+ <td><time datetime="<?= $ event ->getEventDateTime ()->format ('c ' )?> "><?= $ event ->getEventDateTime ()->format ('l, F j, Y ' )?> </time></td>
75+ <td><?= $ e_user?> </td>
76+ </tr>
77+ <? } ?>
78+ </tbody></table>
79+ <nav aria-label="User list navigation" class="d-flex justify-content-center">
80+ <ul class="pagination">
81+ <? if (!$ no_prev ) { ?>
82+ <li class="page-item"><a class="page-link" href="<?= Common::relativeUrlToAbsolute ('/eventlog/index?page= ' . ($ page - 1 ) . '&limit= ' . $ limit . '&order= ' . $ order )?> ">Previous</a></li>
83+ <? } else { ?>
84+ <li class="page-item disabled"><span class="page-link">Previous</span></li>
85+ <? } ?>
86+ <li class="page-item disabled"><span class="page-link"><?= number_format ($ page )?> of <?= number_format ($ pages )?> </span></li>
87+ <? if (!$ no_next ) { ?>
88+ <li class="page-item"><a class="page-link" href="<?= Common::relativeUrlToAbsolute ('/eventlog/index?page= ' . ($ page + 1 ) . '&limit= ' . $ limit . '&order= ' . $ order )?> ">Next</a></li>
89+ <? } else { ?>
90+ <li class="page-item disabled"><span class="page-link">Next</span></li>
91+ <? } ?>
92+ </ul>
93+ </nav>
94+ </div>
95+ <? } ?>
96+ <? require ("./footer.inc.phtml " ); ?>
0 commit comments