File Explorer update + Permission update

This commit is contained in:
George Frederick "Buzz" Beurling
2020-03-19 19:07:26 -04:00
parent 8a0e09cb80
commit 1e3ae2fbbb
36 changed files with 1899 additions and 434 deletions

19
resources/custom.css vendored
View File

@@ -57,6 +57,10 @@
cursor: pointer;
}
.no-cursor {
cursor: default;
}
.word-wrap {
white-space: normal;
word-break: break-word;
@@ -140,7 +144,7 @@
top: 36px;
left: 36px;
width: 0;
height: 0;
height: 0;progress-bar
opacity: 1;
}
100% {
@@ -1816,3 +1820,16 @@ td{
h2 {
text-transform: capitalize !important;
}
.breadcrumb {
margin: auto;
background-color: transparent;
}
.navbar-wrapper {
max-width: 75%;
}
.progress-bar-top {
margin-bottom: -4px;
border-radius: 6px 6px 0px 0px;
}

View File

@@ -4,7 +4,7 @@
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-primary">
<h4>Configuration Générale</h4>
<h4>Apparence</h4>
</div>
<div class="card-body mt-5">
<form action="/admin/config/customisation" method="POST">
@@ -27,27 +27,6 @@
</div>
@endsection
@section('breadcrumb')
<div class="breadcrumbs">
<div class="col-sm-4">
<div class="page-header float-left">
<div class="page-title">
<h1>Configuration Générale</h1>
</div>
</div>
</div>
<div class="col-sm-8">
<div class="page-header float-right">
<div class="page-title">
<ol class="breadcrumb text-right">
<li class="active">Configuration/Générale</li>
</ol>
</div>
</div>
</div>
</div>
@endsection
@section('custom_scripts')
<script>
function saveChange(pPerm) {

View File

@@ -1,32 +1,53 @@
<table class="table table-hover dt-responsive material-datatables w-100" id="table">
<table class="table table-hover table-responsive dt-responsive material-datatables w-100 d-sm-table" id="table">
<thead class="thead-dark">
<tr>
<td class="text-center explorerType"><strong>#</strong></td>
<td class="text-left">Nom</td>
<td class="text-center">Dernière modification</td>
<td></td>
<td class="td-actions text-right">
@if(\App\GoogleDriveFile::getPermForAuthUser($currentDir,'p'))
<div class="dropdown">
<div id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-2x ml-3 text-gray" style="margin-right: .8rem !important;cursor: pointer;margin-top: -10px;margin-bottom: -6px"></i>
</div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="/admin/drive/{{$currentDir}}/permission">
<i class="fas fa-lock mr-2"></i></i>Permission
</a>
<a class="dropdown-item text-danger" onclick="deleteFolder('{{ $currentDir }}')">
<i class="fas fa-trash-alt mr-2"></i>Supprimer
</a>
</div>
</div>
@else
<i class="fas fa-lock text-danger mr-2" data-toggle="tooltip" data-placement="left" title="Vous n'avez pas les permissions nécessaires pour modifier ce dossier"></i>
@endif
</td>
</tr>
</thead>
<tbody>
@foreach($directories as $directory)
<tr class="context-menu-one">
<td onclick="loadFolder('{{$directory['basename']}}')" style="cursor: pointer;" ><i class="fas fa-folder fa-2x"></i></td>
<td onclick="loadFolder('{{$directory['basename']}}')" style="cursor: pointer;" >{{$directory['name']}}</td>
<td @if(\App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'r')) onclick="loadFolder('{{$directory['basename']}}')" @endif style="cursor: pointer;" ><i class="fas fa-folder fa-2x"></i></td>
<td @if(\App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'r')) onclick="loadFolder('{{$directory['basename']}}')" @endif style="cursor: pointer;" >{{$directory['name']}}</td>
<td class="text-center" onclick="loadFolder('{{$directory['basename']}}')" style="cursor: pointer;" ><span data-toggle="tooltip" data-placement="bottom" title="{{date('r',$directory['timestamp'])}}">{{strftime('%e %b %Y',$directory['timestamp'])}}</span></td>
<td class="td-actions text-right">
@if($directory['filename'] != '🔒')
@if(\App\GoogleDriveFile::getPermForAuthUser($directory['basename'],'p'))
<div class="dropdown">
<div id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-2x ml-3 text-gray" style="margin-right: .8rem !important;cursor: pointer;"></i>
</div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="/admin/drive/{{$directory['basename']}}/permission">
<i class="fas fa-lock mr-2"></i></i>Permission
</a>
<a class="dropdown-item text-danger" onclick="deleteFolder('{{ $directory['basename'] }}')">
<i class="fas fa-trash-alt mr-2"></i>Supprimer
</a>
</div>
</div>
@else
<i class="fas fa-lock text-danger mr-2"></i>
<i class="fas fa-lock text-danger mr-2" data-toggle="tooltip" data-placement="left" title="Vous n'avez pas les permissions nécessaires pour modifier ce dossier"></i>
@endif
</td>
</tr>
@@ -49,7 +70,10 @@
<div class="col-md-2">
Taille : {{GetSizeName($file['size'])}}
</div>
<div class="col-md-4 offset-md-4 text-right">
<div class="col-md-4">
Permission : rw
</div>
<div class="col-md-4 text-right">
<a href="/file/get?f={{urlencode($file['name'])}}&d={{$file['dirname']}}" rel="tooltip" class="btn btn-info">
<i class="material-icons">cloud_download</i>
</a>
@@ -61,6 +85,13 @@
</td>
</tr>
@endforeach
@if(count($directories) == 0 && count($files) == 0)
<tr>
<td colspan="4" class="text-center m-2">
Le dossier est vide
</td>
</tr>
@endif
</tbody>
</table>
<small class="float-right mr-4">Dernière mise à jour {{date('r')}}</small>

View File

@@ -2,13 +2,16 @@
@section('content')
<div class="card">
<div class="progress progress-bar-top">
<div id="progress-bar" class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>
</div>
<div class="row ml-3 mr-3 mt-3">
<div class="col-1 d-inline-flex">
<button id="backbtn" type="button" onclick="goBack()" class="btn btn-secondary" style="border-radius: 50% !important; width: 3.5rem;height: 3.5rem;margin-bottom: -10px;margin-top: -2px"><i class="fas fa-arrow-left fa-2x" aria-hidden="true" style="margin-left: -0.6rem;"></i></button>
<button id="backbtn" type="button" onclick="refreshFolder()" class="border-0 bg-transparent ml-3 hover-spin cursor active-spin no-outline" style="margin-bottom: -10px;margin-top: -2px;font-size: 1.1rem"><i class="fas fa-sync-alt"></i></button>
<div class="col-sm-1 d-inline-flex">
<button id="backbtn" type="button" onclick="goBack()" class="btn btn-secondary" style="border-radius: 50% !important; width: 3.5rem;height: 3.5rem;margin-bottom: -10px;margin-top: -2px" disabled><i class="fas fa-arrow-left fa-2x" aria-hidden="true" style="margin-left: -0.6rem;"></i></button>
<button id="refreshbtn" type="button" onclick="refreshFolder()" class="border-0 bg-transparent ml-3 hover-spin cursor active-spin no-outline" style="margin-bottom: -10px;margin-top: -2px;font-size: 1.1rem"><i class="fas fa-sync-alt"></i></button>
</div>
<div class="col-4 d-flex justify-content-end offset-7">
<div class="dropdown mr-2">
<div class="col-md-4 col-sm d-flex justify-content-end offset-md-7 mt-2 mt-sm-0">
<div class="dropdown mr-md-2">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-plus"></i> Nouveau
</button>

View File

@@ -0,0 +1,269 @@
@extends('layouts.admin.main')
@section('content')
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">Permission du dossier: {{$dir->name}}</h4>
<p class="category">/{{$dir->path}}</p>
</div>
<div class="card-body">
<h5>Permission des grades</h5>
<table class="table table-striped w-100">
<thead class="table-dark">
<tr class="text-center">
<td class="text-left" style="width: 25%">Grade</td>
<td >Lecture</td>
<td>Écriture</td>
<td>Gestion</td>
<td style="width: 6rem;">
<a href="/admin/ocom/edit" class="btn btn-primary btn-fab btn-fab-mini btn-round m-0">
<i class="material-icons">add</i>
</a>
</td>
</tr>
</thead>
<tbody>
<tr class="text-center">
<td class="text-left">
Utilisateur non authentifié
</td>
<td>
@if(isset($dir->rank_permission[0]))
@if(strpos($dir->rank_permission[0],'r') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(isset($dir->rank_permission[0]))
@if(strpos($dir->rank_permission[0],'w') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(isset($dir->rank_permission[0]))
@if(strpos($dir->rank_permission[0],'p') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td class="text-right">
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','rank','0')">
<i class="material-icons">edit</i>
</button>
<button class="btn btn-danger btn-fab btn-fab-mini btn-round no-cursor" disabled data-toggle="tooltip" data-placement="bottom" title="Vous ne pouvez pas supprimer les permissions des utilisteurs non authentifié">
<i class="material-icons">delete</i>
</button>
</td>
</tr>
@foreach($dir->rank_permission as $key => $rank)
@if($key != 0)
<tr class="text-center">
<td class="text-left">
{{\App\Rank::find($key)->name}}
</td>
<td>
@if(strpos($rank,'r') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(strpos($rank,'w') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(strpos($rank,'p') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td class="text-right">
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','rank','{{$key}}')">
<i class="material-icons">edit</i>
</button>
<button class="btn btn-danger btn-fab btn-fab-mini btn-round">
<i class="material-icons">delete</i>
</button>
</td>
</tr>
@endif
@endforeach
</tbody>
</table>
<h5 class="mt-5">Permission des postes</h5>
<table class="table table-striped w-100">
<thead class="table-dark">
<tr class="text-center">
<td class="text-left" style="width: 25%">Poste</td>
<td >Lecture</td>
<td>Écriture</td>
<td>Gestion</td>
<td style="width: 6rem;">
<a href="/admin/ocom/edit" class="btn btn-primary btn-fab btn-fab-mini btn-round m-0">
<i class="material-icons">add</i>
</a>
</td>
</tr>
</thead>
<tbody>
@if(count($dir->job_permission) < 1)
<tr>
<td colspan="5" class="text-center">
Aucune permission de poste
</td>
</tr>
@endif
@foreach($dir->job_permission as $key => $rank)
<tr class="text-center">
<td class="text-left">
{{\App\Job::find($key)->name}}
</td>
<td>
@if(strpos($rank,'r') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(strpos($rank,'w') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(strpos($rank,'p') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td class="text-right">
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','job','{{$key}}')">
<i class="material-icons">edit</i>
</button>
<button class="btn btn-danger btn-fab btn-fab-mini btn-round">
<i class="material-icons">delete</i>
</button>
</td>
</tr>
@endforeach
</tbody>
</table>
<h5 class="mt-5">Permission des utilisateurs</h5>
<table class="table table-striped w-100">
<thead class="table-dark">
<tr class="text-center">
<td class="text-left" style="width: 25%">Utilisateurs</td>
<td >Lecture</td>
<td>Écriture</td>
<td>Gestion</td>
<td style="width: 6rem;">
<a href="/admin/ocom/edit" class="btn btn-primary btn-fab btn-fab-mini btn-round m-0">
<i class="material-icons">add</i>
</a>
</td>
</tr>
</thead>
<tbody>
@if(count($dir->user_permission) < 1)
<tr>
<td colspan="5" class="text-center">
Aucune permission d'utilisateur
</td>
</tr>
@endif
@foreach($dir->user_permission as $key => $rank)
<tr class="text-center">
<td class="text-left">
{{\App\User::find($key)->fullname()}}
</td>
<td>
@if(strpos($rank,'r') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(strpos($rank,'w') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td>
@if(strpos($rank,'p') !== false)
<i class="fas fa-check-circle fa-2x text-success"></i>
@else
<i class="fas fa-times-circle fa-2x text-danger"></i>
@endif
</td>
<td class="text-right">
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','user','{{$key}}')">
<i class="material-icons">edit</i>
</button>
<button class="btn btn-danger btn-fab btn-fab-mini btn-round">
<i class="material-icons">delete</i>
</button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bd-example-modal-lg">Large modal</button>
<div id="permissionModal" class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" id="permissionModalHtml">
<div class="modal-header">
<h5 class="modal-title">Chargement ...</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
@loaderDot
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" disabled>Sauvegarder</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
</div>
</div>
</div>
</div>
@endsection
@section('breadcrumb')
Fichier / Google Drive
@endsection
@section('custom_scripts')
<script src="/js/plugins/jquery.ui.position.min.js"></script>
<script src="/js/plugins/jquery.contextMenu.min.js"></script>
<script src="/js/plugins/drive-explorer.js"></script>
@endsection

View File

@@ -0,0 +1,70 @@
<div class="modal-header">
<h5 class="modal-title">Modification des permissions</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form action="/admin/drive/{{$folder->id}}/permission/{{$s}}/{{$subject->id}}" method="post">
@csrf
@method('patch')
<div class="modal-body">
<div class="row">
<div class="col-md-3">
@switch($s)
@case('rank')
Grade : {{$subject->name}}
@break
@case('job')
Poste : {{$subject->name}}
@break
@case('user')
Utilisateur : {{$subject->fullname()}}
@break
@endswitch
</div>
<div class="col-md-3">
<div class="togglebutton row">
<div class="col-3">
<label>
<input type="checkbox" @if(strpos($perm,'r') !== false) checked @endif>
<span class="toggle"></span>
</label>
</div>
<div class="col">
<label>Peux consulter les fichiers a l'intérieur du dossier</label>
</div>
</div>
</div>
<div class="col-md-3">
<div class="togglebutton row">
<div class="col-3">
<label>
<input type="checkbox" @if(strpos($perm,'w') !== false) checked @endif>
<span class="toggle"></span>
</label>
</div>
<div class="col">
<label>Peux modifier les fichiers a l'intérieur du dossier</label>
</div>
</div>
</div>
<div class="col-md-3">
<div class="togglebutton row">
<div class="col-3">
<label>
<input type="checkbox" @if(strpos($perm,'p') !== false) checked @endif>
<span class="toggle"></span>
</label>
</div>
<div class="col">
<label>Peux gérer le dossier</label>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Sauvegarder</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
</div>
</form>

View File

@@ -60,7 +60,7 @@
<td onclick="navigate({{$ocom->id}})">{{$ocom->objectif_rendement}}</td>
<td onclick="navigate({{$ocom->id}})">{{$ocom->objectif_competence}}</td>
<td>
<a href="/admin/ocom/edit/{{$ocom->id}}" class="btn btn-primary btn-fab btn-fab-mini btn-round">
<a href="/admin/ocom/{{$ocom->id}}/edit" class="btn btn-primary btn-fab btn-fab-mini btn-round">
<i class="material-icons">edit</i>
</a>
<button class="btn btn-danger btn-fab btn-fab-mini btn-round" onclick="deleteOCOM({{$ocom->id}})">

View File

@@ -43,7 +43,7 @@
<p>{{$ocom->objectif_rendement}}</p>
</div>
<div class="col-md-8 text-right">
<a href="/admin/ocom/edit/{{$ocom->id}}" class="btn btn-warning">Modifier</a>
<a href="/admin/ocom/{{$ocom->id}}/edit" class="btn btn-warning">Modifier</a>
<button type="button" class="btn btn-danger" onclick="deleteOCOM('{{$ocom->id}}')">Supprimer</button>
</div>
<div class="col-12">

View File

@@ -65,10 +65,10 @@
<span class="fileinput-filename"></span>
</div>
<span class="input-group-append">
<span class="input-group-text fileinput-exists" data-dismiss="fileinput">Remove</span>
<span class="input-group-text fileinput-exists cursor" data-dismiss="fileinput">Remove</span>
<span class="input-group-text btn-file">
<span class="fileinput-new">Select file</span>
<span class="fileinput-exists">Change</span>
<span class="fileinput-new cursor">Select file</span>
<span class="fileinput-exists cursor">Change</span>
<input type="file" name="file_msg" multiple>
</span>
</span>

View File

@@ -2,6 +2,109 @@
@section('content')
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col-sm-6">
<h3 class="card-title">3.2.5</h3>
<p class="category">2019-10-19</p>
</div>
<div class="col-sm-6 text-right">
<span class="badge badge-pill badge-success">STABLE</span>
</div>
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<p>
Nouveauté
<ul class="list-group list-group-flush ml-3">
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-plus"></i>
</div>
<div class="col m-auto text-left">
Ajout d'un breadcrumb
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-plus"></i>
</div>
<div class="col m-auto text-left">
Ajout de la base de donnée des cours
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Mise à jour des pages d'erreurs
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Mise à jour de l'horaire vers la version 3
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Mise à jour du système de fichier vers Google Drive
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Mise à jour du système de permission
</div>
</div>
</li>
</ul>
</p>
</div>
<div class="col-md-6">
<p>
Bug
<ul class="list-group list-group-flush ml-3">
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-bug"></i>
</div>
<div class="col m-auto text-left">
Correction de multiples bugs</a>
</div>
</div>
</li>
</ul>
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="card">
<div class="card-header">

View File

@@ -1,90 +1,9 @@
<html lang="en"><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
@extends('errors.layout')
<title>Error</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Raleway', sans-serif;
font-weight: 100;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.content {
text-align: center;
}
.title {
font-size: 36px;
padding: 20px;
}
.loader{
text-align: center;
}
.loader-bg{
width: 70px;
margin-top: 50px;
margin-bottom: 50px;
}
.loader-spinner {
position: relative;
border: 16px solid #f3f3f3;
border-top: 16px solid #272c33;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
left: 0px;
right: 0px;
margin-left: auto;
margin-right: auto;
top: -163px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title">
<h1 class="glitch" data-text="500" style="font-size: 20rem;margin:0px;">401</h1>
</div>
<div class="loader">
<img class="loader-bg" src="/images/leaf_of_canada.png"></img>
<div class="loader-spinner"></div>
</div>
<div class="title">
Oups ... Vous n'avez pas l'autorisation de venir ici {{ $exception->getMessage() }}</div>
</div>
</div>
</body></html>
@section('title', __('Non autorisé'))
@section('code')
<span>4</span><span>0</span><span>1</span>
@endsection
@section('message', 'Nous sommes désolé, vous n\'avez pas l\'autorisation d\'être ici.')
@section('error',$exception->getMessage())
@section('url','https://developer.mozilla.org/fr/docs/Web/HTTP/Status/401')

View File

@@ -0,0 +1,9 @@
@extends('errors.layout')
@section('title', __('Accès refusé'))
@section('code')
<span>4</span><span>0</span><span>3</span>
@endsection
@section('message', 'Nous sommes désolé, le serveur a compris la requête, mais refuse de l\'exécuter.')
@section('error',$exception->getMessage())
@section('url','https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403')

View File

@@ -1,90 +1,9 @@
<html lang="en"><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
@extends('errors.layout')
<title>Error</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Raleway', sans-serif;
font-weight: 100;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.content {
text-align: center;
}
.title {
font-size: 36px;
padding: 20px;
}
.loader{
text-align: center;
}
.loader-bg{
width: 70px;
margin-top: 50px;
margin-bottom: 50px;
}
.loader-spinner {
position: relative;
border: 16px solid #f3f3f3;
border-top: 16px solid #272c33;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
left: 0px;
right: 0px;
margin-left: auto;
margin-right: auto;
top: -163px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title">
<h1 class="glitch" data-text="500" style="font-size: 20rem;margin:0px;">404</h1>
</div>
<div class="loader">
<img class="loader-bg" src="/images/leaf_of_canada.png"></img>
<div class="loader-spinner"></div>
</div>
<div class="title">
Oups ... Il n'y a malheureusement rien {{ $exception->getMessage() }}</div>
</div>
</div>
</body></html>
@section('title', __('Page introuvable'))
@section('code')
<span>4</span><span>0</span><span>4</span>
@endsection
@section('message', 'Nous sommes désolé, la page demandée ne semble pas exister.')
@section('error',$exception->getMessage())
@section('url','https://developer.mozilla.org/fr/docs/Web/HTTP/Status/404')

View File

@@ -0,0 +1,9 @@
@extends('errors.layout')
@section('title', __('Page expiré'))
@section('code')
<span>4</span><span>1</span><span>9</span>
@endsection
@section('message', 'Nous sommes désolé, la page a expiré.')
@section('error',$exception->getMessage())
@section('url','')

View File

@@ -0,0 +1,9 @@
@extends('errors.layout')
@section('title', __('Trop de requêtes'))
@section('code')
<span>4</span><span>2</span><span>9</span>
@endsection
@section('message', 'Nous sommes désolé, mais le client a émis trop de requêtes. ')
@section('error',$exception->getMessage())
@section('url','https://developer.mozilla.org/fr/docs/Web/HTTP/Status/429')

View File

@@ -1,90 +1,10 @@
<html lang="en"><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
@extends('errors.layout')
<title>Error</title>
@section('title', __('Erreur interne'))
@section('code')
<span>5</span><span>0</span><span>0</span>
@endsection
@section('message', 'Nous sommes désolé, le serveur a rencontré une exception.')
@section('error',$exception->getMessage())
@section('url','https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500')
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Raleway', sans-serif;
font-weight: 100;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.content {
text-align: center;
}
.title {
font-size: 36px;
padding: 20px;
}
.loader{
text-align: center;
}
.loader-bg{
width: 70px;
margin-top: 50px;
margin-bottom: 50px;
}
.loader-spinner {
position: relative;
border: 16px solid #f3f3f3;
border-top: 16px solid #272c33;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
left: 0px;
right: 0px;
margin-left: auto;
margin-right: auto;
top: -163px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title">
<h1 class="glitch" data-text="500" style="font-size: 20rem;margin:0px;">500</h1>
</div>
<div class="loader">
<img class="loader-bg" src="/images/leaf_of_canada.png"></img>
<div class="loader-spinner"></div>
</div>
<div class="title">
Oups ... Le serveur n'aime pas ça, svp laisser lui le temps de soufler {{ $exception->getMessage() }}</div>
</div>
</div>
</body></html>

View File

@@ -0,0 +1,9 @@
@extends('errors.layout')
@section('title', __('Service indisponible'))
@section('code')
<span>5</span><span>0</span><span>3</span>
@endsection
@section('message', 'Nous sommes désolé, mais le service est temporairement indisponible ou en maintenance.')
@section('error',$exception->getMessage())
@section('url','https://developer.mozilla.org/fr/docs/Web/HTTP/Status/503')

View File

@@ -0,0 +1,194 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>@yield('title') - C-CMS</title>
<!-- Google font -->
<link href="https://fonts.googleapis.com/css?family=Cabin:400,700" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Montserrat:900" rel="stylesheet">
<script src="/js/plugins/fontawesome/js/all.min.js"></script>
<!-- Custom stlylesheet -->
<link type="text/css" rel="stylesheet" href="css/style.css" />
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
body {
padding: 0;
margin: 0;
}
#notfound {
position: relative;
height: 100vh;
}
#notfound .notfound {
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.notfound {
max-width: 520px;
width: 100%;
line-height: 1.4;
text-align: center;
}
.notfound .notfound-404 {
position: relative;
height: 240px;
}
.notfound .notfound-404 h1 {
font-family: 'Montserrat', sans-serif;
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-size: 252px;
font-weight: 900;
margin: 0px;
color: #262626;
text-transform: uppercase;
letter-spacing: -40px;
margin-left: -20px;
}
.notfound .notfound-404 h1>span {
text-shadow: -8px 0px 0px #fff;
}
.notfound .notfound-404 h3 {
font-family: 'Cabin', sans-serif;
position: relative;
font-size: 16px;
font-weight: 700;
text-transform: uppercase;
color: #262626;
margin: 0px;
letter-spacing: 3px;
padding-left: 6px;
}
.notfound h2{
font-family: 'Cabin', sans-serif;
font-size: 20px;
font-weight: 400;
text-transform: uppercase;
color: #000;
margin-top: 0px;
margin-bottom: 25px;
}
h3 {
font-family: 'Cabin', sans-serif;
font-size: 15px;
font-weight: 400;
text-transform: uppercase;
color: #262626;
margin-top: 0px;
margin-bottom: 25px;
}
.help {
float: right;
margin-right: 8%;
color: #262626;
}
.animate {
animation: blinker 1.75s linear infinite;
}
img {
height: 50px;
margin: 8px 10px 8px 15px;
}
@media only screen and (max-width: 767px) {
.notfound .notfound-404 {
height: 200px;
}
.notfound .notfound-404 h1 {
font-size: 200px;
}
.help {
margin-right: 15%;
}
img {
height: 40px;
}
}
@media only screen and (max-width: 480px) {
.notfound .notfound-404 {
height: 162px;
}
.notfound .notfound-404 h1 {
font-size: 162px;
height: 150px;
line-height: 162px;
}
.notfound h2 {
font-size: 16px;
}
img {
height: 30px;
}
}
@keyframes blinker {
50% {
opacity: 0;
}
}
</style>
</head>
<body>
<div id="notfound">
<img src="/images/C-CMS_G.png">
{{ Breadcrumbs::render() }}
<div class="notfound">
<div class="notfound-404">
<h3>Oops! @yield('title')</h3>
<h1>@yield('code')</h1>
<a target="_blank" class="animate" href="@yield('url')">
<i class="fas fa-question-circle help"></i>
</a>
</div>
<h2>@yield('message')</h2>
<h3>@yield('error')</h3>
</div>
</div>
</body><!-- This templates was made by Colorlib (https://colorlib.com) -->
</html>

View File

@@ -13,7 +13,7 @@ foreach (Auth::user()->unreadNotifications as $notification) {
<i class="material-icons design_bullet-list-67 visible-on-sidebar-mini">view_list</i>
</button>
</div>
@yield('breadcrumb')
{{ Breadcrumbs::render() }}
</div>
<button class="navbar-toggler" type="button" data-toggle="collapse" aria-controls="navigation-index" aria-expanded="false" aria-label="Toggle navigation">
<span class="sr-only">Toggle navigation</span>