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

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">