]> BookStack Code Mirror - bookstack/blob - resources/views/settings/audit.blade.php
Added more complexity in an attempt to make ldap host failover fit
[bookstack] / resources / views / settings / audit.blade.php
1 @extends('layouts.simple')
2
3 @section('body')
4 <div class="container">
5
6     @include('settings.parts.navbar', ['selected' => 'audit'])
7
8     <div class="card content-wrap auto-height">
9         <h1 class="list-heading">{{ trans('settings.audit') }}</h1>
10         <p class="text-muted">{{ trans('settings.audit_desc') }}</p>
11
12         <form action="{{ url('/settings/audit') }}" method="get" class="flex-container-row wrap justify-flex-start gap-m">
13
14             <div component="dropdown" class="list-sort-type dropdown-container">
15                 <label for="">{{ trans('settings.audit_event_filter') }}</label>
16                 <button refs="dropdown@toggle"
17                         type="button"
18                         aria-haspopup="true"
19                         aria-expanded="false"
20                         aria-label="{{ trans('common.sort_options') }}"
21                         class="input-base text-left">{{ $listDetails['event'] ?: trans('settings.audit_event_filter_no_filter') }}</button>
22                 <ul refs="dropdown@menu" class="dropdown-menu">
23                     <li @if($listDetails['event'] === '') class="active" @endif><a href="{{ sortUrl('/settings/audit', $listDetails, ['event' => '']) }}" class="text-item">{{ trans('settings.audit_event_filter_no_filter') }}</a></li>
24                     @foreach($activityTypes as $type)
25                         <li @if($type === $listDetails['event']) class="active" @endif><a href="{{ sortUrl('/settings/audit', $listDetails, ['event' => $type]) }}" class="text-item">{{ $type }}</a></li>
26                     @endforeach
27                 </ul>
28             </div>
29
30             @if(!empty($listDetails['event']))
31                 <input type="hidden" name="event" value="{{ $listDetails['event'] }}">
32             @endif
33
34             @foreach(['date_from', 'date_to'] as $filterKey)
35                 <div class=>
36                     <label for="audit_filter_{{ $filterKey }}">{{ trans('settings.audit_' . $filterKey) }}</label>
37                     <input id="audit_filter_{{ $filterKey }}"
38                            component="submit-on-change"
39                            type="date"
40                            name="{{ $filterKey }}"
41                            value="{{ $listDetails[$filterKey] ?? '' }}">
42                 </div>
43             @endforeach
44
45             <div class="form-group"
46                  component="submit-on-change"
47                  option:submit-on-change:filter='[name="user"]'>
48                 <label for="owner">{{ trans('settings.audit_table_user') }}</label>
49                 @include('form.user-select', ['user' => $listDetails['user'] ? \BookStack\Auth\User::query()->find($listDetails['user']) : null, 'name' => 'user'])
50             </div>
51
52
53             <div class="form-group">
54                 <label for="ip">{{ trans('settings.audit_table_ip') }}</label>
55                 @include('form.text', ['name' => 'ip', 'model' => (object) $listDetails])
56                 <input type="submit" style="display: none">
57             </div>
58         </form>
59
60         <hr class="mt-l mb-s">
61
62         {{ $activities->links() }}
63
64         <table class="table">
65             <tbody>
66             <tr>
67                 <th>{{ trans('settings.audit_table_user') }}</th>
68                 <th>
69                     <a href="{{ sortUrl('/settings/audit', $listDetails, ['sort' => 'key']) }}">{{ trans('settings.audit_table_event') }}</a>
70                 </th>
71                 <th>{{ trans('settings.audit_table_related') }}</th>
72                 <th>{{ trans('settings.audit_table_ip') }}</th>
73                 <th>
74                     <a href="{{ sortUrl('/settings/audit', $listDetails, ['sort' => 'created_at']) }}">{{ trans('settings.audit_table_date') }}</a></th>
75             </tr>
76             @foreach($activities as $activity)
77                 <tr>
78                     <td>
79                         @include('settings.parts.table-user', ['user' => $activity->user, 'user_id' => $activity->user_id])
80                     </td>
81                     <td>{{ $activity->type }}</td>
82                     <td width="40%">
83                         @if($activity->entity)
84                             <a href="{{ $activity->entity->getUrl() }}" class="table-entity-item">
85                                 <span role="presentation" class="icon text-{{$activity->entity->getType()}}">@icon($activity->entity->getType())</span>
86                                 <div class="text-{{ $activity->entity->getType() }}">
87                                     {{ $activity->entity->name }}
88                                 </div>
89                             </a>
90                         @elseif($activity->detail && $activity->isForEntity())
91                             <div class="px-m">
92                                 {{ trans('settings.audit_deleted_item') }} <br>
93                                 {{ trans('settings.audit_deleted_item_name', ['name' => $activity->detail]) }}
94                             </div>
95                         @elseif($activity->detail)
96                             <div class="px-m">{{ $activity->detail }}</div>
97                         @endif
98                     </td>
99                     <td>{{ $activity->ip }}</td>
100                     <td>{{ $activity->created_at }}</td>
101                 </tr>
102             @endforeach
103             </tbody>
104         </table>
105
106         {{ $activities->links() }}
107     </div>
108
109 </div>
110 @stop