Ekapp/skolehjem/resources/views/admin/users/index.blade.php

255 lines
8.9 KiB
PHP

@extends("admin.layout.base")
@extends("admin.layout.header")
@section("title")
Bruger - Vis
@endsection
@section("path")
<a href="{{ route('users.index') }}" class="text-white">Vis Brugere</a> /
@endsection
@section("content")
<style>
.showUsers {
position: relative;
display: inline-block;
overflow: visible;
}
.showUsers .showUserImages {
visibility: hidden;
width: 250px;
max-height: 500px;
max-width: 300px;
object-fit: cover;
background-color: transparent;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
z-index: 10;
top: -5px;
right: 105%;
display: block;
}
.showUsers:hover .showUserImages {
visibility: visible;
z-index: 100;
}
.noImages{
cursor: not-allowed;
}
.letterSpaceTable{
letter-spacing: 1.2px;
}
</style>
<style>
/* The switch - the box around the slider */
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 28px;
}
/* Hide default HTML checkbox */
.switch input {
opacity: 0;
width: 0;
height: 0;
}
/* The slider */
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 20px;
width: 20px;
left: 4px;
bottom: 4px;
background-color: white;
transition: .4s;
}
input:checked + .slider {
background-color: #00788A;
}
input:focus + .slider {
box-shadow: 0 0 1px #00788A;
}
input:checked + .slider:before {
transform: translateX(32px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}
</style>
<div class="row align-items-center">
@if(auth()->user()->can('user.create'))
<a class="btn btn-inline btn-sde-blue mb-0" href="{{ route('users.create') }}"><img src="{{ asset('/images/icons/plus.svg') }}" alt="Create">Opret Bruger</a>
@endif
</div>
<div class="pb-4 mt-1">
<label>Åben for registrering:</label>
<label class="switch">
<input type="checkbox" onclick="AllowActionRegistering(this)" @if(\App\AllowAction::query()->where('action', '=', 'Registering')->first()->allow == true) checked @endif>
<span class="slider round"></span>
</label>
</div>
<table class="tbl mt-2 letterSpaceTable" id="table_id">
<thead>
<th>Fornavn</th>
<th>Efternavn</th>
<th>Mail</th>
<th>Telefon</th>
<th>Rolle(r)</th>
<th class="w-1em"><img class="w-100" src="{{ asset('/images/icons/eye.svg') }}" alt="ShowImage"></th>
@if(auth()->user()->can('user.edit'))
<th class="w-1em"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
@endif
@if(auth()->user()->can('user.delete'))
<th class="w-1em"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
@endif
</thead>
<tbody>
@foreach($users as $user)
<tr id="row_{{ $user->id }}">
<td>{{ $user->name_first }}</td>
<td>{{ $user->name_last }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->phone }}</td>
<td>
@for($i = 0; $i < count($user->roles); $i++)
@if(count($user->roles)-1 != $i)
{{$user->roles[$i]->name}},
@else
{{$user->roles[$i]->name}}
@endif
@endfor
</td>
@if($user->resource_id !== null)
<td style="overflow: visible"><a class="showUsers"><img src="{{ asset('/images/icons/eye-dark.svg') }}"><img src="{{ asset(\App\Resource::query()->where("id", "=", $user->resource_id)->first()->filename) }}" class="showUserImages"></a></td>
@else
<td style="overflow: visible"><a class="showUsers noImages"><img src="{{ asset('/images/icons/eye-dark.svg') }}"><img src="" class="showUserImages"></a></td>
@endif
@if(auth()->user()->can('user.edit'))
<td><a href="{{ route("users.edit", [ "user" => $user->id ]) }}"><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
@endif
@if(auth()->user()->can('user.delete'))
<td>
@csrf
<a class="w-100 nostyle" onclick="delete_user({{ $user->id }})"><img class="w-100 cursor-pointer" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a>
</td>
@endif
</tr>
@endforeach
</tbody>
</table>
@endsection
@section('scripts')
<script>
$(document).ready( function () {
$('#table_id').DataTable({
columnDefs: [
{ orderable: false, targets: [-1, -2, -3] }
]
});
});
function delete_user(id) {
var token = $("input[name='_token']").val();
Swal.fire({
title: 'Er du sikker?',
text: "Dette kan ikke blive ændret tilbage!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Slet Bruger',
cancelButtonText: 'Annuller'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: "users/"+id,
data:{'_token':token, _method: 'DELETE'},
success: function () {
if (id == 1) {
Swal.fire(
'Administrator brugeren kan ikke slettes',
'',
'warning'
)
} else {
$('#table_id').DataTable().row($('#row_'+id)[0]).remove().draw();
Swal.fire(
'Brugeren er slettet!',
'',
'success'
)
}
},
error:function (data) {
console.log(data);
}
});
}
})
}
function AllowActionRegistering(el) {
if (el.hasAttribute('checked')) {
axios.post("{{ route("allowaction.allowactionregistering") }}", null, { params: { id: {{ \App\AllowAction::query()->where('action', '=', 'Registering')->first()->id }}, allow: '0' }}
).then(function (response) {
el.removeAttribute('checked');
Swal.fire(
'Der er nu lukket for registrering af brugere!',
'',
'success'
)
}).catch(function (error) {
console.log(error);
});
} else {
axios.post("{{ route("allowaction.allowactionregistering") }}", null, { params: { id: {{ \App\AllowAction::query()->where('action', '=', 'Registering')->first()->id }}, allow: '1' }}
).then(function (response) {
el.setAttribute('checked', 'checked');
Swal.fire(
'Der er nu åbnet for registrering af brugere!',
'',
'success'
)
}).catch(function (error) {
console.log(error);
});
}
}
</script>
@endsection