mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-21 02:39:10 -04:00
Au cas ou
This commit is contained in:
@@ -10,12 +10,47 @@
|
||||
<form action="/admin/config/files" method="POST">
|
||||
@csrf
|
||||
<div class="row ml-2">
|
||||
<h3 class="col-12">Configuration Google Drive</h3>
|
||||
<div class="col-12">
|
||||
<h3 class="col-12">Google Drive</h3>
|
||||
<div class="col-6">
|
||||
<div class="alert alert-info" role="alert">
|
||||
Vous pouvez suivre un <a target="_blank" href="https://github.com/ivanvermeyen/laravel-google-drive-demo/blob/master/README/1-getting-your-dlient-id-and-secret.md">tutoriel (Anglais) <i class="fas fa-external-link-square-alt text-white"></i></a> pour trouver c'est information.
|
||||
Vous pouvez suivre un <a class="alert-link" target="_blank" href="https://github.com/ivanvermeyen/laravel-google-drive-demo/blob/master/README/1-getting-your-dlient-id-and-secret.md">tutoriel (Anglais) <i class="fas fa-external-link-square-alt text-white"></i></a> pour trouver c'est information.
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
@if($error == [])
|
||||
<div class="alert alert-primary" role="alert">
|
||||
Google Drive est initialisé correctement
|
||||
<div id="loaderDot" class="float-right d-none" style="margin-top: -30px;">
|
||||
@loaderDot
|
||||
</div>
|
||||
<div class="float-right" id="btn-sync">
|
||||
<button type="button" class="btn btn-round btn-fab" style="margin-top: -0.55rem" onclick="checkFileSystem()">
|
||||
<i class="fas fa-sync"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="alert alert-danger" role="alert">
|
||||
Problème détecté avec votre installation ...
|
||||
<ul>
|
||||
@foreach($error as $e)
|
||||
<li>{{$e}}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-md-8 p-2">
|
||||
<div class="togglebutton">
|
||||
<label>
|
||||
<input type="checkbox" checked="">
|
||||
<span class="toggle"></span>
|
||||
Activer Google Drive
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
</div>
|
||||
<div class="col-md-6 p-2">
|
||||
<div class="form-group">
|
||||
<label for="exampleInputEmail1">GOOGLE_DRIVE_CLIENT_ID</label>
|
||||
@@ -67,4 +102,15 @@ Configuration du système de fichier
|
||||
@endsection
|
||||
|
||||
@section('custom_scripts')
|
||||
<script>
|
||||
function checkFileSystem() {
|
||||
$('#loaderDot').removeClass('d-none');
|
||||
$('#btn-sync').addClass('d-none');
|
||||
$.get('/api/drive/checkfilestructure',{api_token: api_token}, function (data) {
|
||||
console.log('data');
|
||||
$('#loaderDot').addClass('d-none');
|
||||
$('#btn-sync').removeClass('d-none');
|
||||
})
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
77
resources/views/admin/files/Google Drive/explorer.blade.php
Normal file
77
resources/views/admin/files/Google Drive/explorer.blade.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<table class="table table-hover dt-responsive material-datatables w-100" 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>
|
||||
</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 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'] != '🔒')
|
||||
<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 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>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@foreach($files as $file)
|
||||
<tr onclick="showfile('{{$file['basename']}}')" style="cursor: pointer;">
|
||||
<td><i class="{{ \App\GoogleDriveFile::icon($file['extension']) }} fa-2x"></i></td>
|
||||
<td>{{$file['name']}}</td>
|
||||
<td class="text-center"><span data-toggle="tooltip" data-placement="bottom" title="{{date('r',$file['timestamp'])}}">{{strftime('%e %b %Y',$file['timestamp'])}}</span></td>
|
||||
<td class="td-actions text-right">
|
||||
<i id="fa-{{$file['basename']}}" class="fas fa-angle-down fa-2x pr-2 text-gray"></i>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="{{$file['basename']}}" class="d-none">
|
||||
<td style="border-top: none" colspan="4">
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
Type : {{$file['type']}} / {{$file['extension']}}
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
Taille : {{GetSizeName($file['size'])}}
|
||||
</div>
|
||||
<div class="col-md-4 offset-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>
|
||||
<button onclick="deleteFile('{{$file['name']}}','{{$file['dirname']}}')" rel="tooltip" class="btn btn-danger text-white">
|
||||
<i class="material-icons">delete</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<small class="float-right mr-4">Dernière mise à jour {{date('r')}}</small>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tables').DataTable({"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
|
||||
"columnDefs": [
|
||||
{ "orderable": false, "targets": 0 },
|
||||
{ "orderable": false, "targets": 3 },
|
||||
],
|
||||
"order": []
|
||||
});
|
||||
});
|
||||
</script>
|
||||
19
resources/views/admin/files/Google Drive/file.blade.php
Normal file
19
resources/views/admin/files/Google Drive/file.blade.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
...
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2,60 +2,129 @@
|
||||
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header card-header-danger">
|
||||
<h4 class="card-title">Full header coloured</h4>
|
||||
<p class="category">Category subtitle</p>
|
||||
<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>
|
||||
<div class="col-4 d-flex justify-content-end offset-7">
|
||||
<div class="dropdown mr-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>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<a class="dropdown-item" data-toggle="modal" data-target="#createFolderModal"><i class="fas fa-folder mr-3"></i> Dossier</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-upload"></i> Téléverser
|
||||
</button>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<a class="dropdown-item" data-toggle="modal" data-target="#uploadFileModal"><i class="fas fa-file mr-3"></i> Fichier</a>
|
||||
<a class="dropdown-item" href="#"><i class="fas fa-folder mr-3"></i> Dossier</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-center" style="width: 2rem;">#</td>
|
||||
<td>Nom</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><i class="fas fa-folder fa-2x"></i></td>
|
||||
<td>..</td>
|
||||
</tr>
|
||||
@foreach($directories as $directory)
|
||||
<tr>
|
||||
<td><i class="fas fa-folder fa-2x"></i></td>
|
||||
<td>{{$directory['name']}}</td>
|
||||
<td class="td-actions text-right">
|
||||
<button type="button" rel="tooltip" class="btn btn-info btn-round">
|
||||
<i class="material-icons">person</i>
|
||||
</button>
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-round">
|
||||
<i class="material-icons">edit</i>
|
||||
</button>
|
||||
<button type="button" rel="tooltip" class="btn btn-danger btn-round">
|
||||
<i class="material-icons">close</i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@foreach($files as $file)
|
||||
<tr>
|
||||
<td><i class="{{ \App\GoogleDriveFile::icon($file['extension']) }} fa-2x"></i></td>
|
||||
<td>{{$file['name']}}</td>
|
||||
<td class="td-actions text-right">
|
||||
<button type="button" rel="tooltip" class="btn btn-info btn-round">
|
||||
<i class="material-icons">cloud_download</i>
|
||||
</button>
|
||||
<button type="button" rel="tooltip" class="btn btn-success btn-round">
|
||||
<i class="material-icons">file_copy</i>
|
||||
</button>
|
||||
<button type="button" rel="tooltip" class="btn btn-danger btn-round">
|
||||
<i class="material-icons">delete</i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="loader" class="w-100 h-100" style="background-color: #0000007a;position: absolute; z-index: 5;display: none;border-radius: 6px">
|
||||
<div class="d-flex h-100" style="justify-content: center; align-items: center;">
|
||||
@loaderDot
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body mt-0">
|
||||
<div class="drive-explorer" style="min-height: 10rem"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="createFileModal" id="createFileModal" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Créer un fichier</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<form action="/file/create" method="post">
|
||||
@csrf
|
||||
<input class="d-none currentDir" type="text" name="currentDir">
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="exampleFormControlInput1">Nom du fichier</label>
|
||||
<input type="text" class="form-control" id="name" name="name" placeholder="fichier.txt">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-primary">Créer</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="createFolderModal" id="createFolderModal" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Créer un dossier</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<form action="/folder/create" method="post">
|
||||
@csrf
|
||||
<input class="d-none currentDir" type="text" name="currentDir">
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="exampleFormControlInput1">Nom du dossier</label>
|
||||
<input type="text" class="form-control" id="name" name="name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-primary">Créer</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="uploadFileModal" id="uploadFileModal" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Téléverser une fichier</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<form action="/file/upload" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input class="d-none currentDir" type="text" name="currentDir">
|
||||
<div class="modal-body">
|
||||
<div class="form-group bmd-form-group is-filled">
|
||||
<label class="label-control bmd-label-static">Fichier à téléverser (Max 50Mo)</label>
|
||||
<div class="fileinput fileinput-new input-group" data-provides="fileinput" style="display: flex !important;">
|
||||
<div class="form-control" data-trigger="fileinput">
|
||||
<span class="fileinput-filename"></span>
|
||||
</div>
|
||||
<span class="input-group-append">
|
||||
<span class="input-group-text fileinput-exists" data-dismiss="fileinput">Supprimer</span>
|
||||
<span class="input-group-text btn-file">
|
||||
<span class="fileinput-new">Parcourir</span>
|
||||
<span class="fileinput-exists">Modifier</span>
|
||||
<input type="file" name="fichier">
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-primary">Téléverser</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -64,5 +133,11 @@
|
||||
Fichier / Google Drive
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
@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>
|
||||
<script>
|
||||
init("{{$folder}}");
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
Reference in New Issue
Block a user