295 lines
12 KiB
PHP
295 lines
12 KiB
PHP
@extends('layouts.main')
|
|
|
|
@section('content')
|
|
|
|
<h2><i class="fas fa-cogs"></i> Maintenance </h2>
|
|
|
|
<div class="user-app">
|
|
<div class="heading">
|
|
<h5><i class="fas fa-users-cog"></i> Gestion des utilisateurs</h5>
|
|
<a class="add-button" href="{{ route('maintenance.user.create') }}"><i class="fas fa-plus-square"></i> Ajouter</a>
|
|
</div>
|
|
|
|
@if (isset($users) && count($users) > 0)
|
|
<table>
|
|
<thead>
|
|
<th>Nom</th>
|
|
<th>Email</th>
|
|
<th>Rôle</th>
|
|
<th>Site liés</th>
|
|
<th></th>
|
|
</thead>
|
|
@foreach ($users as $user)
|
|
<tr>
|
|
<td><a href="{{ route('maintenance.user.edit', $user) }}">{{ $user->name }}</a></td>
|
|
<td>{{ $user->email }}</td>
|
|
<td>{{ $user->roles }}</td>
|
|
<td class="sites">{!! $user->linkedSites !!}</td>
|
|
@if (Auth::user()->id == $user->id)
|
|
<td></td>
|
|
@else
|
|
<td><a href="{{ route('maintenance.user.destroy', $user) }}"><i class="fas fa-times delete-icon"></i></a></td>
|
|
@endif
|
|
|
|
</tr>
|
|
@endforeach
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="5">
|
|
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
{!! Form::open(['id' => 'delete-hidden']) !!}
|
|
@method('DELETE')
|
|
{!! Form::close() !!}
|
|
@endif
|
|
</div>
|
|
<div class="clean-app">
|
|
<h5><i class="fas fa-database"></i> Nettoyage de la base</h5>
|
|
<div class="clean-line">
|
|
<p>Nettoyer les murs <span>(datant de plus d'un an)</span></p>
|
|
<div class="btn-clean">
|
|
<div class="loader-mini">
|
|
<div class="lds-ripple">
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
</div>
|
|
<a class="add-button clean-walls" href="#"><i class="fas fa-broom"></i> Nettoyer</a>
|
|
</div>
|
|
</div>
|
|
<div class="clean-line">
|
|
<p>Nettoyer les paniers <span>(qui ont été imprimés et datant de plus de deux mois)</span></p>
|
|
<div class="btn-clean">
|
|
<div class="loader-mini">
|
|
<div class="lds-ripple">
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
</div>
|
|
<a class="add-button clean-baskets" href="#"><i class="fas fa-broom"></i> Nettoyer</a>
|
|
</div>
|
|
</div>
|
|
<div class="clean-line">
|
|
<p>Nettoyer les contacts <span>(qui n'ont pas de paniers ni de murs liés et datant de plus d'un mois)</span></p>
|
|
<div class="btn-clean">
|
|
<div class="loader-mini">
|
|
<div class="lds-ripple">
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
</div>
|
|
<a class="add-button clean-contacts" href="#"><i class="fas fa-broom"></i> Nettoyer</a>
|
|
</div>
|
|
</div>
|
|
<input id="csrf" name="csrf" type="hidden" value="<?php echo csrf_token(); ?>">
|
|
</div>
|
|
<div class="error-log">
|
|
<h5><i class="fas fa-file-alt"></i> Erreur d'appels :</h5>
|
|
<canvas id="myChart" height="300" width="200"></canvas>
|
|
</div>
|
|
@endsection
|
|
|
|
@section('scripts')
|
|
<script src="{{ mix('js/Chart.js', 'build') }}" charset="utf-8"></script>
|
|
<script>
|
|
var truc = {!! json_encode($logs, JSON_UNESCAPED_SLASHES) !!};
|
|
var labels = [];
|
|
var errorCount = [];
|
|
$.each(truc, function(index, value) {
|
|
labels.push(value[0]);
|
|
errorCount.push(value[1]);
|
|
})
|
|
labels = labels.reverse();
|
|
errorCount = errorCount.reverse();
|
|
|
|
//---- GRAPH ERRORS
|
|
var ctx = document.getElementById("myChart").getContext('2d');
|
|
ctx.height = 300;
|
|
var myChart = new Chart(ctx, {
|
|
type: 'bar',
|
|
data: {
|
|
labels: labels,
|
|
datasets: [{
|
|
label: 'Nombres d\'erreurs API',
|
|
data: errorCount,
|
|
backgroundColor: 'rgba(255, 0, 0, 0.2)',
|
|
borderColor: 'rgba(255,0,0,1)',
|
|
borderWidth: 1
|
|
}]
|
|
},
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
scales: {
|
|
yAxes: [{
|
|
ticks: {
|
|
beginAtZero: true,
|
|
stepSize: 1,
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
|
|
$.ajaxSetup({
|
|
headers: {
|
|
'X-CSRF-TOKEN': $('#csrf').val()
|
|
}
|
|
});
|
|
|
|
|
|
$('.clean-app').on('click', '.clean-contacts', function(event) {
|
|
event.preventDefault();
|
|
let loader = $(this).parent().find('.loader-mini');
|
|
loader.show();
|
|
$.fancyConfirm({
|
|
title: "<i class='fas fa-broom'></i> Nettoyage",
|
|
message: "Êtes-vous sûr de vouloir nettoyer la base des contacts qui n'ont pas de paniers ni de murs liés et datant de plus d'un mois ?",
|
|
okButton: 'Supprimer',
|
|
noButton: 'Annuler',
|
|
callback: function(value) {
|
|
if (value) {
|
|
$.ajax({
|
|
url: '/displayCleanContacts',
|
|
type: 'POST',
|
|
data: {},
|
|
dataType: 'JSON',
|
|
success: function(response) {
|
|
$.fancyConfirm({
|
|
title: "<i class='fas fa-broom'></i> Nettoyage",
|
|
message: "Vous allez supprimer " + response.contact_count +
|
|
" contacts qui ont plus d'un mois et qui n'ont pas de panier ni de murs en cours, Êtes-vous sûr ?",
|
|
okButton: 'Supprimer',
|
|
noButton: "Annuler",
|
|
callback: function(value) {
|
|
if (value) {
|
|
$.ajax({
|
|
url: '/cleanContacts',
|
|
type: 'POST',
|
|
data: {},
|
|
dataType: 'JSON',
|
|
success: function(response) {
|
|
$.fancyInfo({
|
|
title: "<i class='fas fa-info-circle'></i> Succès",
|
|
message: "Le nettoyage des contacts a bien été effectué.",
|
|
okButton: 'Valider',
|
|
noButton: "",
|
|
callback: function(
|
|
value) {
|
|
if (
|
|
value) {} else {
|
|
loader
|
|
.hide();
|
|
}
|
|
}
|
|
});
|
|
loader.hide();
|
|
},
|
|
error: function(e) {
|
|
console.log(e.responseText);
|
|
}
|
|
});
|
|
} else {
|
|
loader.hide();
|
|
}
|
|
}
|
|
});
|
|
loader.hide();
|
|
},
|
|
error: function(e) {
|
|
console.log(e.responseText);
|
|
}
|
|
});
|
|
} else {
|
|
loader.hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
})
|
|
|
|
$('.clean-app').on('click', '.clean-walls', function(event) {
|
|
event.preventDefault();
|
|
let loader = $(this).parent().find('.loader-mini');
|
|
loader.show();
|
|
$.fancyConfirm({
|
|
title: "<i class='fas fa-broom'></i> Nettoyage",
|
|
message: "Êtes-vous sûr de vouloir nettoyer la base des mur imprimés ?",
|
|
okButton: 'Supprimer',
|
|
noButton: 'Annuler',
|
|
callback: function(value) {
|
|
if (value) {
|
|
$.ajax({
|
|
url: '/cleanWalls',
|
|
type: 'POST',
|
|
data: {},
|
|
dataType: 'JSON',
|
|
success: function(response) {
|
|
$.fancyInfo({
|
|
title: "<i class='fas fa-info-circle'></i> Succès",
|
|
message: "Le nettoyage des murs a bien été effectué.",
|
|
okButton: 'Valider',
|
|
noButton: "",
|
|
callback: function(value) {
|
|
|
|
}
|
|
});
|
|
loader.hide();
|
|
},
|
|
error: function(e) {
|
|
console.log(e.responseText);
|
|
}
|
|
});
|
|
} else {
|
|
loader.hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
})
|
|
|
|
$('.clean-app').on('click', '.clean-baskets', function(event) {
|
|
event.preventDefault();
|
|
let loader = $(this).parent().find('.loader-mini');
|
|
loader.show();
|
|
$.fancyConfirm({
|
|
title: "<i class='fas fa-broom'></i> Nettoyage",
|
|
message: "Êtes-vous sûr de vouloir nettoyer la base des panier imprimés ?",
|
|
okButton: 'Supprimer',
|
|
noButton: 'Annuler',
|
|
callback: function(value) {
|
|
if (value) {
|
|
$.ajax({
|
|
url: '/cleanBaskets',
|
|
type: 'POST',
|
|
data: {},
|
|
dataType: 'JSON',
|
|
success: function(response) {
|
|
$.fancyInfo({
|
|
title: "<i class='fas fa-info-circle'></i> Succès",
|
|
message: "Le nettoyage des paniers a bien été effectué.",
|
|
okButton: 'Valider',
|
|
noButton: "",
|
|
callback: function(value) {
|
|
|
|
}
|
|
});
|
|
loader.hide();
|
|
},
|
|
error: function(e) {
|
|
console.log(e.responseText);
|
|
}
|
|
});
|
|
} else {
|
|
loader.hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
})
|
|
</script>
|
|
@endsection
|