This commit is contained in:
Lagacé Mathieu
2020-02-01 13:17:32 -05:00
parent 03cf1c5493
commit baef9a1df0
37 changed files with 1662 additions and 501 deletions

View File

@@ -24,4 +24,9 @@ class Config extends Model
{ {
return $this->morphMany('App\Log', 'logable'); return $this->morphMany('App\Log', 'logable');
} }
public static function find($name)
{
return Config::where('name',$name)->first();
}
} }

View File

@@ -25,4 +25,9 @@ class Course extends Model
{ {
return $this->morphMany('App\Log', 'logable'); return $this->morphMany('App\Log', 'logable');
} }
public function use_course()
{
return $this->name == "" && $this->ocom == "";
}
} }

View File

@@ -59,4 +59,74 @@ class Event extends Model
} }
return $events; return $events;
} }
public static function checkForError()
{
$events = Event::all();
$warning = [];
$danger = [];
foreach ($events as $event)
{
if($event->date_begin == null)
{
array_push($warning,'Évènement ID:'.$event->id.' - "date_begin", Incorrect');
}
if($event->date_end == null)
{
array_push($warning,'Évènement ID:'.$event->id.' - "date_end", Incorrect');
}
if($event->type == null || $event->type == "" || !\App\EventType::all()->has($event->type))
{
$event->type = 1;
//$event->save();
array_push($warning,'Évènement ID:'.$event->id.' - "type", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "type", Incorrect... Réinitialisé à la valeur par défaut');
}
if($event->is_mandatory == null && $event->is_mandatory != 0)
{
array_push($warning,'Évènement ID:'.$event->id.' - "is_mandatory", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "is_mandatory", Incorrect... Réinitialisé à la valeur par défaut');
}
if($event->use_weekly_msg == null && $event->use_weekly_msg != 0)
{
array_push($warning,'Évènement ID:'.$event->id.' - "use_weekly_msg", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "use_weekly_msg", Incorrect... Réinitialisé à la valeur par défaut');
}
if($event->use_schedule == null && $event->use_schedule != 0)
{
array_push($warning,'Évènement ID:'.$event->id.' - "use_schedule", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "use_schedule", Incorrect... Réinitialisé à la valeur par défaut');
}
if($event->schedule == null)
{
$event->schedule = '{"periodes":[{"name":"Periode 1","begin_time":"19:00","end_time":"20:10"},{"name":"Periode 2","begin_time":"20:30","end_time":"21:20"}],"niveaux":[{"name":"Niveau 1"},{"name":"Niveau 2"},{"name":"Niveau 3"}]}';
$event->save();
array_push($warning,'Évènement ID:'.$event->id.' - "schedule", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "schedule", Incorrect... Réinitialisé à la valeur par défaut');
}
if($event->location == null || $event->location == "")
{
array_push($warning,'Évènement ID:'.$event->id.' - "location", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "location", Incorrect... Réinitialisé à la valeur par défaut');
}
if($event->calendar_color == null || $event->calendar_color == "")
{
$event->calendar_color = '#A4A4A4';
$event->save();
array_push($warning,'Évènement ID:'.$event->id.' - "calendar_color", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "calendar_color", Incorrect... Réinitialisé à la valeur par défaut');
}
if($event->calendar_icon == null || $event->calendar_icon == "")
{
$event->calendar_icon = 'fas fa-book';
$event->save();
array_push($warning,'Évènement ID:'.$event->id.' - "calendar_icon", Incorrect... Réinitialisé à la valeur par défaut');
clog('error','danger','Évènement ID:'.$event->id.' - "calendar_icon", Incorrect... Réinitialisé à la valeur par défaut');
}
}
return [$warning,$danger];
}
} }

39
app/GoogleDriveFile.php Normal file
View File

@@ -0,0 +1,39 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class GoogleDriveFile extends Model
{
public static function icon($extension)
{
$icon = "fas fa-file";
switch ($extension)
{
case 'pdf':
$icon = 'fas fa-file-pdf text-pdf';
break;
case 'php':
$icon = 'fas fa-file-code text-code';
break;
case 'pptx':
$icon = 'fas fa-file-powerpoint text-powerpoint';
break;
case 'docx':
case 'odt':
$icon = 'fas fa-file-word text-word';
break;
case 'ods':
case 'xlsx':
$icon = 'fas fa-file-excel text-excel';
break;
case 'png':
case 'PNG':
case 'jpg':
$icon = 'fas fa-file-image text-image';
break;
}
return $icon;
}
}

View File

@@ -36,4 +36,10 @@ class AdminController extends Controller
return view('admin.update'); return view('admin.update');
} }
public function status()
{
$alerts = \App\Event::checkForError();
return view('admin.status.index',['alerts' => $alerts]);
}
} }

View File

@@ -137,13 +137,33 @@ class ConfigController extends Controller
public function editfilesConfig() public function editfilesConfig()
{ {
$config = \App\Config::all()->where('name','cadet_list')->first(); $configList = [
'cadet_list'
];
$config->data = [\request('cadet_list')]; $configListEncrypt = [
'GOOGLE_DRIVE_CLIENT_ID',
'GOOGLE_DRIVE_CLIENT_SECRET',
'GOOGLE_DRIVE_REFRESH_TOKEN',
'GOOGLE_DRIVE_FOLDER_ID'
];
$config->save();
clog('edit','success','a modifié la configuration'); foreach ($configList as $configName)
{
$config = \App\Config::find($configName);
$config->data = [\request($configName)];
$config->save();
}
foreach ($configListEncrypt as $configName)
{
$config = \App\Config::find($configName);
$config->data = [\Crypt::encryptString(\request($configName))];
$config->save();
}
clog('edit','success','a modifié la configuration des fichiers');
return redirect('/admin/config/files')->with('success','Modification sauvegarder avec succès !'); return redirect('/admin/config/files')->with('success','Modification sauvegarder avec succès !');
} }
} }

View File

@@ -38,6 +38,8 @@ class EventController extends Controller
{ {
$event = new Event(); $event = new Event();
$event->name = request('name'); $event->name = request('name');
$event->date_begin = request('begin_time'); $event->date_begin = request('begin_time');
$event->date_end = request('end_time'); $event->date_end = request('end_time');
@@ -51,7 +53,7 @@ class EventController extends Controller
$event->is_mandatory = 0; $event->is_mandatory = 0;
} }
$event->desc = ''; $event->desc = \request('admin_desc');
if(\request("use_weekly_msg")) if(\request("use_weekly_msg"))
{ {
@@ -95,10 +97,10 @@ class EventController extends Controller
]); ]);
$nbPeriode++; $nbPeriode++;
} }
$event->schedule = [ $event->schedule = [
'periodes' => $periodes, 'periodes' => $periodes,
'niveaux' => $niveaux 'niveaux' => $niveaux,
'courses' => []
]; ];
$event->save(); $event->save();
@@ -119,16 +121,26 @@ class EventController extends Controller
} }
} }
$course->name = request('name_n'.$l.'_p'.$p);
$course->user_id = $instructor; $course->user_id = $instructor;
$course->ocom = request('ocom_n'.$l.'_p'.$p);
$course->location = request('location_n'.$l.'_p'.$p); $course->location = request('location_n'.$l.'_p'.$p);
$course->periode = $p; $course->periode = $p;
$course->level = $l; $course->level = $l;
$course->comment = "";
$course->event_id = $event->id; $course->event_id = $event->id;
if(\request("use_course_n".$l."_p".$p) == 'on')
{
$course->name = request('name_n'.$l.'_p'.$p);
$course->ocom = request('ocom_n'.$l.'_p'.$p);
$course->comment = "";
}
else
{
$course->name = "";
$course->ocom = "";
$course->comment = request('desc_n'.$l.'_p'.$p);
}
$course->save(); $course->save();
} }
} }
@@ -253,4 +265,9 @@ class EventController extends Controller
{ {
// //
} }
public function checkEvent()
{
//
}
} }

View File

@@ -0,0 +1,117 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class GoogleDriveController extends Controller
{
/**
* Display a listing of the resource.
*
* @param string $dir
* @param bool $recursive
* @return \Illuminate\Http\Response
*/
public function index($dir = '/',$recursive = true)
{
$contents = collect(Storage::cloud()->listContents($dir, $recursive));
return $contents->where('type', '=', 'file'); // files
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return bool
*/
public function store(Request $request)
{
$path = Storage::cloud()->makeDirectory('Test Dir');
dd($path);
}
/**
* Display the specified resource.
*
* @param $filename
* @return \Illuminate\Http\Response
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
*/
public function show()
{
$filename = \request('file');
$recursive = false; // Get subdirectories also?
$contents = collect(Storage::cloud()->listContents('/1nEe35-GvLX598RketTI-UoaOxIMNxfka', true));
$file = $contents
->where('type', '=', 'file')
->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME))
->where('extension', '=', pathinfo($filename, PATHINFO_EXTENSION))
->first(); // there can be duplicate file names!
//return $file; // array with file info
$rawData = Storage::cloud()->get($file['path']);
return response($rawData, 200)
->header('ContentType', $file['mimetype'])
->header('Content-Disposition', "attachment; filename='$filename'");
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
public function list()
{
$dir = '/';
$recursive = false; // Get subdirectories also?
$contents = collect(Storage::cloud()->listContents($dir, $recursive));
return view('admin.files.Google Drive.index',['directories' => $contents->where('type', '=', 'dir'), 'files' => $contents->where('type', '=', 'file')]);
//return $contents->where('type', '=', 'file'); // files
}
}

View File

@@ -272,6 +272,36 @@ class Permission extends Model
'icon' => 'fa-eye', 'icon' => 'fa-eye',
'valeur' => 0 'valeur' => 0
], ],
],
'file' => [
'file_see' => [
'ckey' => 'file_see',
'communName' => 'Voir les fichiers',
'desc' => 'L\'utilisateur peut-il consulter les fichiers',
'icon' => 'fa-eye',
'valeur' => 0
],
'file_add' => [
'ckey' => 'file_add',
'communName' => 'Ajouter un fichier',
'desc' => 'L\'utilisateur peut-il ajouter un fichier',
'icon' => 'fa-eye',
'valeur' => 0
],
'file_edit' => [
'ckey' => 'file_edit',
'communName' => 'Modifier un fichier',
'desc' => 'L\'utilisateur peut-il modifier un fichier',
'icon' => 'fa-eye',
'valeur' => 0
],
'file_delete' => [
'ckey' => 'file_delete',
'communName' => 'Supprimer un fichier',
'desc' => 'L\'utilisateur peut-il supprimer un fichier',
'icon' => 'fa-eye',
'valeur' => 0
]
] ]
]; ];

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter;
class GoogleDriveServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
\Storage::extend('google', function($app, $config) {
$client = new \Google_Client();
$client->setClientId(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_ID')));
$client->setClientSecret(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_SECRET')));
$client->refreshToken(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_REFRESH_TOKEN')));
$service = new \Google_Service_Drive($client);
$options = [];
if(isset($config['teamDriveId'])) {
$options['teamDriveId'] = $config['teamDriveId'];
}
$adapter = new GoogleDriveAdapter($service, \Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_FOLDER_ID')), $options);
return new \League\Flysystem\Filesystem($adapter);
});
}
}

View File

@@ -14,6 +14,7 @@
"laravel/helpers": "^1.1", "laravel/helpers": "^1.1",
"laravel/nexmo-notification-channel": "^2.2", "laravel/nexmo-notification-channel": "^2.2",
"laravel/tinker": "^1.0", "laravel/tinker": "^1.0",
"nao-pon/flysystem-google-drive": "^1.1",
"nexmo/client": "^2.0" "nexmo/client": "^2.0"
}, },
"require-dev": { "require-dev": {

1254
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -173,6 +173,7 @@ return [
// App\Providers\BroadcastServiceProvider::class, // App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class, App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class, App\Providers\RouteServiceProvider::class,
App\Providers\GoogleDriveServiceProvider::class,
], ],

View File

@@ -64,6 +64,15 @@ return [
'url' => env('AWS_URL'), 'url' => env('AWS_URL'),
], ],
'google' => [
'driver' => 'google',
'clientId' => '',
'clientSecret' => '',
'refreshToken' => '',
'folderId' => '',
// 'teamDriveId' => env('GOOGLE_DRIVE_TEAM_DRIVE_ID'),
],
], ],
]; ];

View File

@@ -231,6 +231,26 @@ class ConfigsTableSeeder extends Seeder
'name' => 'cadet_list', 'name' => 'cadet_list',
'state' => 0, 'state' => 0,
'data' => '["#"]' 'data' => '["#"]'
],
[
'name' => 'GOOGLE_DRIVE_CLIENT_ID',
'state' => 0,
'data' => '["'.\Crypt::encryptString('').'"]'
],
[
'name' => 'GOOGLE_DRIVE_CLIENT_SECRET',
'state' => 0,
'data' => '["'.\Crypt::encryptString('').'"]'
],
[
'name' => 'GOOGLE_DRIVE_REFRESH_TOKEN',
'state' => 0,
'data' => '["'.\Crypt::encryptString('').'"]'
],
[
'name' => 'GOOGLE_DRIVE_FOLDER_ID',
'state' => 0,
'data' => '["'.\Crypt::encryptString('null').'"]'
] ]
]; ];

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

24
public/css/custom.css vendored
View File

@@ -1,3 +1,27 @@
.text-excel {
color: #0f9d58;
}
.text-word {
color: #4b87e4;
}
.text-image {
color: #d93025;
}
.text-pdf {
color: #ea4335;
}
.text-powerpoint {
color: #fd7541;
}
.text-code {
color: #e16156;
}
.word-wrap { .word-wrap {
white-space: normal; white-space: normal;
word-break: break-word; word-break: break-word;

BIN
public/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

BIN
public/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -36,7 +36,24 @@ function initScheduleEditor(id, eventType)
} }
}); });
$('.richeditor').trumbowyg({ $('.richeditor').trumbowyg({
lang: 'fr' lang: 'fr',
btns: [
['viewHTML'],
['emoji'],
['undo', 'redo'], // Only supported in Blink browsers
['strong', 'em', 'del'],
['superscript', 'subscript'],
['fontfamily'],
['fontsize'],
['foreColor', 'backColor'],
['link'],
['insertImage'],
['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
['unorderedList', 'orderedList'],
['horizontalRule'],
['removeformat'],
['fullscreen']
]
}); });
$('select').selectpicker(); $('select').selectpicker();
@@ -264,6 +281,7 @@ function selectCourseMode(mode, niveau, periode)
$('#nameContainer'+niveau+'-'+periode).removeClass('d-none'); $('#nameContainer'+niveau+'-'+periode).removeClass('d-none');
$('#modeSwitchC'+niveau+'-'+periode).addClass('active'); $('#modeSwitchC'+niveau+'-'+periode).addClass('active');
$('#modeSwitchO'+niveau+'-'+periode).removeClass('active'); $('#modeSwitchO'+niveau+'-'+periode).removeClass('active');
$('#use_course_n'+niveau+'_p'+periode).prop("checked", true);
} }
else else
{ {
@@ -274,6 +292,7 @@ function selectCourseMode(mode, niveau, periode)
$('#nameContainer'+niveau+'-'+periode).addClass('d-none'); $('#nameContainer'+niveau+'-'+periode).addClass('d-none');
$('#modeSwitchC'+niveau+'-'+periode).removeClass('active'); $('#modeSwitchC'+niveau+'-'+periode).removeClass('active');
$('#modeSwitchO'+niveau+'-'+periode).addClass('active'); $('#modeSwitchO'+niveau+'-'+periode).addClass('active');
$('#use_course_n'+niveau+'_p'+periode).prop("checked", false);
} }
} }

View File

@@ -2630,7 +2630,7 @@ declare module '@fullcalendar/core/structs/view-config' {
class?: ViewClass; class?: ViewClass;
[optionName: string]: any; [optionName: string]: any;
} }
export type ViewConfigInput = ViewClass | ViewConfigObjectInput; export type ViewConfigInput = ViewClass | ViewConfigObjectInput;
export type ViewConfigInputHash = { export type ViewConfigInputHash = {
[viewType: string]: ViewConfigInput; [viewType: string]: ViewConfigInput;
}; };

24
resources/custom.css vendored
View File

@@ -1,3 +1,27 @@
.text-excel {
color: #0f9d58;
}
.text-word {
color: #4b87e4;
}
.text-image {
color: #d93025;
}
.text-pdf {
color: #ea4335;
}
.text-powerpoint {
color: #fd7541;
}
.text-code {
color: #e16156;
}
.word-wrap { .word-wrap {
white-space: normal; white-space: normal;
word-break: break-word; word-break: break-word;

View File

@@ -33,24 +33,7 @@
@endsection @endsection
@section('breadcrumb') @section('breadcrumb')
<div class="breadcrumbs"> Horaire
<div class="col-sm-4">
<div class="page-header float-left">
<div class="page-title">
<h1>{{ trans('calendar.admin_page_title')}}</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">{{ trans('calendar.admin_breadcrumb')}}</li>
</ol>
</div>
</div>
</div>
</div>
@endsection @endsection
@section('custom_scripts') @section('custom_scripts')

View File

@@ -4,12 +4,47 @@
<div class="col-md-12"> <div class="col-md-12">
<div class="card"> <div class="card">
<div class="card-header card-header-primary"> <div class="card-header card-header-primary">
<h4>Configuration Générale</h4> <h4>Configuration du système de fichier</h4>
</div> </div>
<div class="card-body mt-5"> <div class="card-body mt-5">
<form action="/admin/config/files" method="POST"> <form action="/admin/config/files" method="POST">
@csrf @csrf
<div class="row ml-2"> <div class="row ml-2">
<h3 class="col-12">Configuration Google Drive</h3>
<div class="col-12">
<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.
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">GOOGLE_DRIVE_CLIENT_ID</label>
<input type="text" class="form-control" id="GOOGLE_DRIVE_CLIENT_ID" name="GOOGLE_DRIVE_CLIENT_ID" aria-describedby="emailHelp" value="{{Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_ID')) }}">
<small id="emailHelp" class="form-text text-muted">ID de client Google Drive</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">GOOGLE_DRIVE_CLIENT_SECRET</label>
<input type="text" class="form-control" id="GOOGLE_DRIVE_CLIENT_SECRET" name="GOOGLE_DRIVE_CLIENT_SECRET" aria-describedby="emailHelp" value="{{Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_SECRET'))}}">
<small id="emailHelp" class="form-text text-muted">ID secret du disque Google Drive</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">GOOGLE_DRIVE_REFRESH_TOKEN</label>
<input type="text" class="form-control" id="GOOGLE_DRIVE_REFRESH_TOKEN" name="GOOGLE_DRIVE_REFRESH_TOKEN" aria-describedby="emailHelp" value="{{Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_REFRESH_TOKEN'))}}">
<small id="emailHelp" class="form-text text-muted">Token de rafraichissement du disque Google Drive</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">GOOGLE_DRIVE_FOLDER_ID</label>
<input type="text" class="form-control" id="GOOGLE_DRIVE_FOLDER_ID" name="GOOGLE_DRIVE_FOLDER_ID" aria-describedby="emailHelp" value="{{Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_FOLDER_ID'))}}">
<small id="emailHelp" class="form-text text-muted">ID du dossier Google Drive, "null" pour la racine</small>
</div>
</div>
<h3 class="col-12">Configuration de la liste nominale</h3>
<div class="col-md-6 p-2"> <div class="col-md-6 p-2">
<div class="form-group"> <div class="form-group">
<label for="exampleInputEmail1">Liste nominative des cadets</label> <label for="exampleInputEmail1">Liste nominative des cadets</label>
@@ -28,42 +63,8 @@
@endsection @endsection
@section('breadcrumb') @section('breadcrumb')
<div class="breadcrumbs"> Configuration du système de fichier
<div class="col-sm-4">
<div class="page-header float-left">
<div class="page-title">
<h1>Configuration des fichiers</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/Fichier</li>
</ol>
</div>
</div>
</div>
</div>
@endsection @endsection
@section('custom_scripts') @section('custom_scripts')
<script>
function saveChange(pPerm) {
(function($) {
var myswitch = document.getElementById(pPerm);
$.post('/api/config/general/save?api_token='+api_token, { value: myswitch.checked,perm: pPerm } , function(data) {
swal({
title: 'Modification enregistré !',
type: 'success',
}).then((result) => {
if (result.value) {
location.reload();
}
})
});
})(jQuery);
}
</script>
@endsection @endsection

View File

@@ -143,24 +143,7 @@
@endsection @endsection
@section('breadcrumb') @section('breadcrumb')
<div class="breadcrumbs"> Dashboard
<div class="col-sm-4">
<div class="page-header float-left">
<div class="page-title">
<h1>{{ trans('admin/dashboard.page_title')}}</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">{{ trans('admin/dashboard.breadcrumb')}}</li>
</ol>
</div>
</div>
</div>
</div>
@endsection @endsection
@section('scripts') @section('scripts')

View File

@@ -0,0 +1,68 @@
@extends('layouts.admin.main')
@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>
<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>
</div>
@endsection
@section('breadcrumb')
Fichier / Google Drive
@endsection
@section('scripts')
@endsection

View File

@@ -1,3 +1,4 @@
<input class="d-none" type="checkbox" id="use_course_n{{$niveau}}_p{{$periode}}" name="use_course_n{{$niveau}}_p{{$periode}}" checked>
<div class="row bg-light"> <div class="row bg-light">
<div class="col-8 pr-0 m-auto d-flex"> <div class="col-8 pr-0 m-auto d-flex">
<div class="pr-0 m-auto d-flex" id="isDoneContainer{{$niveau}}-{{$periode}}"> <div class="pr-0 m-auto d-flex" id="isDoneContainer{{$niveau}}-{{$periode}}">

View File

@@ -49,6 +49,34 @@
<small id="nameHelp" class="text-muted">Veuillez entrer le lieu de l'événement</small> <small id="nameHelp" class="text-muted">Veuillez entrer le lieu de l'événement</small>
</div> </div>
</div> </div>
<div id="collmessagedelasemaine" class="col-12 d-none">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="label-control">Date et heure de publication des messages de la semaine</label>
<input name="date_msg" type="text" id="weekly_msg_publication_time" class="form-control datetimepicker"/>
</div>
</div>
<div class="col-md-6">
<div class="form-group bmd-form-group is-filled">
<label class="label-control bmd-label-static">Fichier joint avec les messages de la semaine</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">Remove</span>
<span class="input-group-text btn-file">
<span class="fileinput-new">Select file</span>
<span class="fileinput-exists">Change</span>
<input type="file" name="file_msg" multiple>
</span>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12 mt-4"> <div class="col-md-12 mt-4">
<label class="mb-0" for="desc">Description</label> <label class="mb-0" for="desc">Description</label>
<div class="form-group"> <div class="form-group">
@@ -58,34 +86,6 @@
</div> </div>
</div> </div>
</div> </div>
<div class="card card-collapse d-none" id="collmessagedelasemaine">
<div class="card-header" role="tab" id="headingTwo">
<h5 class="mb-0">
<a class="collapsed" data-toggle="collapse" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
<b>Message de la semaine</b>
<i class="material-icons">keyboard_arrow_down</i>
</a>
</h5>
</div>
<div id="collapseTwo" class="collapse" role="tabpanel" aria-labelledby="headingTwo" data-parent="#accordion">
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="label-control">Date et heure de publication des messages de la semaine</label>
<input name="date_msg" type="text" id="weekly_msg_publication_time" class="form-control datetimepicker"/>
</div>
</div>
<div class="col-md-12">
<label class="mb-0" for="desc">Message de le semaine</label>
<div class="form-group">
<textarea class="form-control richeditor" name="msg" id="msg" rows="6">{{\App\Config::getData('default_weekly_msg')}}</textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card card-collapse d-none" id="collschedule"> <div class="card card-collapse d-none" id="collschedule">
<div class="card-header" role="tab" id="headingThree"> <div class="card-header" role="tab" id="headingThree">
<h5 class="mb-0"> <h5 class="mb-0">

View File

@@ -0,0 +1,93 @@
@extends('layouts.admin.main')
@section('content')
<div class="row">
<div class="col-md-6">
@if($alerts[0] == [])
<div class="alert alert-success" role="alert">
<div class="row">
<div class="col-10">
Aucun avertissement
</div>
<div class="col text-right m-0">
<i class="fas fa-check text-white"></i>
</div>
</div>
</div>
@endif
@foreach($alerts[0] as $alert)
<div class="alert alert-warning" role="alert">
<div class="row">
<div class="col-10">
{{$alert}}
</div>
<div class="col text-right m-0">
<i class="fas fa-warning text-white"></i>
</div>
</div>
</div>
@endforeach
</div>
<div class="col-md-6">
@if($alerts[0] == [])
<div class="alert alert-success" role="alert">
<div class="row">
<div class="col-10">
Aucune erreur
</div>
<div class="col text-right m-0">
<i class="fas fa-check text-white"></i>
</div>
</div>
</div>
@endif
@foreach($alerts[1] as $alert)
<div class="alert alert-danger" role="alert">
<div class="row">
<div class="col-10">
Des problèmes ont été détecté avec l'horaire. Impossible de les régler de façon automatique.
</div>
<div class="col text-right m-0 m-auto">
<i class="fas fa-times text-white"></i>
</div>
</div>
</div>
@endforeach
</div>
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">Regular header</h4>
<p class="category">Category subtitle</p>
</div>
<div class="card-body">
The place is close to Barceloneta Beach and bus stop just 2 min by walk and near to "Naviglio" where you can enjoy the main night life in Barcelona...
</div>
</div>
</div>
</div>
@endsection
@section('breadcrumb')
<div class="breadcrumbs">
<div class="col-sm-4">
<div class="page-header float-left">
<div class="page-title">
<h1>{{ trans('admin/dashboard.page_title')}}</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">{{ trans('admin/dashboard.breadcrumb')}}</li>
</ol>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
@endsection

View File

@@ -7,16 +7,17 @@
<title>C-CMS - Espace Administration</title> <title>C-CMS - Espace Administration</title>
<meta charset="utf-8"> <meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" /> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<link rel="icon" type="image/png" href="/favicon.png">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- CSRF Token --> <!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}"> <meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Favicon, Icon and Font --> <!-- Favicon, Icon and Font -->
<link rel="shortcut icon" href="/assets/admin/images/favicon.png">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:400,700|Material+Icons" /> <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:400,700|Material+Icons" />
<script src="https://kit.fontawesome.com/d18efcab73.js"></script> <script src="https://kit.fontawesome.com/d18efcab73.js"></script>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<!-- Material Dashboard CSS --> <!-- Material Dashboard CSS -->
<link href="/css/material-dashboard.css" rel="stylesheet"> <link href="/css/material-dashboard.css" rel="stylesheet">
@@ -24,7 +25,9 @@
<!-- Plugin CSS --> <!-- Plugin CSS -->
<link href='/assets/fullcalendar/core/main.css' rel='stylesheet' /> <link href='/assets/fullcalendar/core/main.css' rel='stylesheet' />
<link href='/assets/fullcalendar/daygrid/main.css' rel='stylesheet' /> <link href='/assets/fullcalendar/daygrid/main.css' rel='stylesheet' />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.18.0/ui/trumbowyg.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/ui/trumbowyg.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/plugins/colors/ui/trumbowyg.colors.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/plugins/emoji/ui/trumbowyg.emoji.min.css">
<link rel="stylesheet" href="/css/contextLoader.min.css"> <link rel="stylesheet" href="/css/contextLoader.min.css">
<link rel="stylesheet" href="/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.css"> <link rel="stylesheet" href="/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.css">

View File

@@ -13,6 +13,7 @@ foreach (Auth::user()->unreadNotifications as $notification) {
<i class="material-icons design_bullet-list-67 visible-on-sidebar-mini">view_list</i> <i class="material-icons design_bullet-list-67 visible-on-sidebar-mini">view_list</i>
</button> </button>
</div> </div>
<a class="navbar-brand">@yield('breadcrumb')</a>
</div> </div>
<button class="navbar-toggler" type="button" data-toggle="collapse" aria-controls="navigation-index" aria-expanded="false" aria-label="Toggle navigation"> <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> <span class="sr-only">Toggle navigation</span>
@@ -21,7 +22,7 @@ foreach (Auth::user()->unreadNotifications as $notification) {
<span class="navbar-toggler-icon icon-bar"></span> <span class="navbar-toggler-icon icon-bar"></span>
</button> </button>
<div class="collapse navbar-collapse justify-content-end"> <div class="collapse navbar-collapse justify-content-end">
<form class="navbar-form"> <!--<form class="navbar-form">
<div class="input-group no-border"> <div class="input-group no-border">
<input type="text" value="" class="form-control" placeholder="Search..."> <input type="text" value="" class="form-control" placeholder="Search...">
<button type="submit" class="btn btn-white btn-round btn-just-icon"> <button type="submit" class="btn btn-white btn-round btn-just-icon">
@@ -29,7 +30,7 @@ foreach (Auth::user()->unreadNotifications as $notification) {
<div class="ripple-container"></div> <div class="ripple-container"></div>
</button> </button>
</div> </div>
</form> </form>-->
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="https://gitlab.com/TheGamecraft/c-cms/wikis/home" data-toggle="tooltip" data-placement="bottom" title="Aide"> <a class="nav-link" href="https://gitlab.com/TheGamecraft/c-cms/wikis/home" data-toggle="tooltip" data-placement="bottom" title="Aide">

View File

@@ -19,6 +19,8 @@
<script src="/js/plugins/jquery.dataTables.min.js"></script> <script src="/js/plugins/jquery.dataTables.min.js"></script>
<!-- Plugin for the Sliders, full documentation here: http://refreshless.com/nouislider/ --> <!-- Plugin for the Sliders, full documentation here: http://refreshless.com/nouislider/ -->
<script src="/js/plugins/nouislider.min.js" ></script> <script src="/js/plugins/nouislider.min.js" ></script>
<!-- Plugin for Fileupload, full documentation here: http://www.jasny.net/bootstrap/javascript/#fileinput -->
<script src="/js/plugins/jasny-bootstrap.min.js"></script>
<!-- Include a polyfill for ES6 Promises (optional) for IE11, UC Browser and Android browser support SweetAlert --> <!-- Include a polyfill for ES6 Promises (optional) for IE11, UC Browser and Android browser support SweetAlert -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.js"></script>
<!-- Chartist JS --> <!-- Chartist JS -->
@@ -26,8 +28,12 @@
<!-- Notifications Plugin --> <!-- Notifications Plugin -->
<script src="/js/plugins/bootstrap-notify.js"></script> <script src="/js/plugins/bootstrap-notify.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.18.0/trumbowyg.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/trumbowyg.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.18.0/langs/fr.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.18.0/langs/fr.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/plugins/fontfamily/trumbowyg.fontfamily.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/plugins/fontsize/trumbowyg.fontsize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/plugins/colors/trumbowyg.colors.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Trumbowyg/2.20.0/plugins/emoji/trumbowyg.emoji.min.js"></script>
<script src="/js/notify.js"></script> <script src="/js/notify.js"></script>
<script src="/js/plugins/contextLoader.min.js"></script> <script src="/js/plugins/contextLoader.min.js"></script>

View File

@@ -26,14 +26,14 @@
</a> </a>
<div class="collapse" id="message"> <div class="collapse" id="message">
<ul class="nav"> <ul class="nav">
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/message"> <a class="nav-link" href="/admin/message">
<span class="sidebar-mini"> <i class="fas fa-eye"></i> </span> <span class="sidebar-mini"> <i class="fas fa-eye"></i> </span>
<span class="sidebar-normal"> Afficher les messages </span> <span class="sidebar-normal"> Afficher les messages </span>
</a> </a>
</li> </li>
@if(\Auth::user()->p('msg_add') == 1) @if(\Auth::user()->p('msg_add') == 1)
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/message/add"> <a class="nav-link" href="/admin/message/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span> <span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter un message </span> <span class="sidebar-normal"> Ajouter un message </span>
@@ -41,7 +41,7 @@
</li> </li>
@endif @endif
@if(\Auth::user()->p('msg_delete') == 1) @if(\Auth::user()->p('msg_delete') == 1)
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/message"> <a class="nav-link" href="/admin/message">
<span class="sidebar-mini"> <i class="fas fa-times"></i> </span> <span class="sidebar-mini"> <i class="fas fa-times"></i> </span>
<span class="sidebar-normal"> Supprimer un message </span> <span class="sidebar-normal"> Supprimer un message </span>
@@ -62,14 +62,14 @@
</a> </a>
<div class="collapse" id="news"> <div class="collapse" id="news">
<ul class="nav"> <ul class="nav">
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/news"> <a class="nav-link" href="/admin/news">
<span class="sidebar-mini"> <i class="fas fa-eye"></i> </span> <span class="sidebar-mini"> <i class="fas fa-eye"></i> </span>
<span class="sidebar-normal"> Voir les nouvelles </span> <span class="sidebar-normal"> Voir les nouvelles </span>
</a> </a>
</li> </li>
@if(\Auth::user()->p('news_add') == 1) @if(\Auth::user()->p('news_add') == 1)
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/news/add"> <a class="nav-link" href="/admin/news/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span> <span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter une nouvelle </span> <span class="sidebar-normal"> Ajouter une nouvelle </span>
@@ -112,14 +112,14 @@
</a> </a>
<div class="collapse" id="inventory"> <div class="collapse" id="inventory">
<ul class="nav"> <ul class="nav">
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/inventory"> <a class="nav-link" href="/admin/inventory">
<span class="sidebar-mini"> <i class="fas fa-box"></i> </span> <span class="sidebar-mini"> <i class="fas fa-box"></i> </span>
<span class="sidebar-normal"> Voir l'inventaire </span> <span class="sidebar-normal"> Voir l'inventaire </span>
</a> </a>
</li> </li>
@if(\Auth::user()->p('inventory_edit') == 1) @if(\Auth::user()->p('inventory_edit') == 1)
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/inventory/management"> <a class="nav-link" href="/admin/inventory/management">
<span class="sidebar-mini"> <i class="fas fa-cogs"></i> </span> <span class="sidebar-mini"> <i class="fas fa-cogs"></i> </span>
<span class="sidebar-normal"> Gestion de l'inventaire </span> <span class="sidebar-normal"> Gestion de l'inventaire </span>
@@ -146,14 +146,14 @@
</a> </a>
<div class="collapse" id="picture"> <div class="collapse" id="picture">
<ul class="nav"> <ul class="nav">
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/picture"> <a class="nav-link" href="/admin/picture">
<span class="sidebar-mini"> <i class="fas fa-list"></i> </span> <span class="sidebar-mini"> <i class="fas fa-list"></i> </span>
<span class="sidebar-normal"> Afficher toutes les images </span> <span class="sidebar-normal"> Afficher toutes les images </span>
</a> </a>
</li> </li>
@if(\Auth::user()->p('picture_add') == 1) @if(\Auth::user()->p('picture_add') == 1)
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/picture/add"> <a class="nav-link" href="/admin/picture/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span> <span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter une image </span> <span class="sidebar-normal"> Ajouter une image </span>
@@ -174,7 +174,7 @@
</a> </a>
<div class="collapse" id="stats"> <div class="collapse" id="stats">
<ul class="nav"> <ul class="nav">
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/stats/log"> <a class="nav-link" href="/admin/stats/log">
<span class="sidebar-mini"> <i class="fas fa-user-secret"></i> </span> <span class="sidebar-mini"> <i class="fas fa-user-secret"></i> </span>
<span class="sidebar-normal"> Liste des activitées </span> <span class="sidebar-normal"> Liste des activitées </span>
@@ -195,14 +195,14 @@
<div class="collapse" id="user"> <div class="collapse" id="user">
<ul class="nav"> <ul class="nav">
@if(\Auth::user()->p('user_add') == 1) @if(\Auth::user()->p('user_add') == 1)
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/user/add"> <a class="nav-link" href="/admin/user/add">
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span> <span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
<span class="sidebar-normal"> Ajouter un utilisateur </span> <span class="sidebar-normal"> Ajouter un utilisateur </span>
</a> </a>
</li> </li>
@endif @endif
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/user"> <a class="nav-link" href="/admin/user">
<span class="sidebar-mini"> <i class="fas fa-list"></i> </span> <span class="sidebar-mini"> <i class="fas fa-list"></i> </span>
<span class="sidebar-normal"> Liste des utilisateurs </span> <span class="sidebar-normal"> Liste des utilisateurs </span>
@@ -221,13 +221,13 @@
</a> </a>
<div class="collapse" id="file"> <div class="collapse" id="file">
<ul class="nav"> <ul class="nav">
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/guide"> <a class="nav-link" href="/admin/guide">
<span class="sidebar-mini"> <i class="fas fa-book"></i></span> <span class="sidebar-mini"> <i class="fas fa-book"></i></span>
<span class="sidebar-normal"> Guide pédagogique </span> <span class="sidebar-normal"> Guide pédagogique </span>
</a> </a>
</li> </li>
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/files"> <a class="nav-link" href="/admin/files">
<span class="sidebar-mini"> <i class="fas fa-cog"></i> </span> <span class="sidebar-mini"> <i class="fas fa-cog"></i> </span>
<span class="sidebar-normal"> Divers </span> <span class="sidebar-normal"> Divers </span>
@@ -246,48 +246,54 @@
</a> </a>
<div class="collapse" id="config"> <div class="collapse" id="config">
<ul class="nav"> <ul class="nav">
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/config"> <a class="nav-link" href="/admin/config">
<span class="sidebar-mini"> <i class="fas fa-cog"></i> </span> <span class="sidebar-mini"> <i class="fas fa-cog"></i> </span>
<span class="sidebar-normal"> Général </span> <span class="sidebar-normal"> Général </span>
</a> </a>
</li> </li>
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/config/files">
<span class="sidebar-mini"> <i class="fas fa-folder"></i> </span>
<span class="sidebar-normal"> Fichier </span>
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="/admin/config/schedule"> <a class="nav-link" href="/admin/config/schedule">
<span class="sidebar-mini"> <i class="fas fa-calendar"></i></span> <span class="sidebar-mini"> <i class="fas fa-calendar"></i></span>
<span class="sidebar-normal"> Horaire </span> <span class="sidebar-normal"> Horaire </span>
</a> </a>
</li> </li>
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/config/activity"> <a class="nav-link" href="/admin/config/activity">
<span class="sidebar-mini"> <i class="fas fa-hiking"></i> </span> <span class="sidebar-mini"> <i class="fas fa-hiking"></i> </span>
<span class="sidebar-normal"> Activités </span> <span class="sidebar-normal"> Activités </span>
</a> </a>
</li> </li>
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/config/customisation">
<span class="sidebar-mini"> <i class="fas fa-palette"></i> </span>
<span class="sidebar-normal"> Apparence </span>
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="/admin/config/ranks"> <a class="nav-link" href="/admin/config/ranks">
<span class="sidebar-mini"> <i class="fas fa-user-tag"></i> </span> <span class="sidebar-mini"> <i class="fas fa-user-tag"></i> </span>
<span class="sidebar-normal"> Grade </span> <span class="sidebar-normal"> Grade </span>
</a> </a>
</li> </li>
<li class="nav-item "> <li class="nav-item pl-2">
<a class="nav-link" href="/admin/config/jobs"> <a class="nav-link" href="/admin/config/jobs">
<span class="sidebar-mini"> <i class="fas fa-user-shield"></i> </span> <span class="sidebar-mini"> <i class="fas fa-user-shield"></i> </span>
<span class="sidebar-normal"> Poste </span> <span class="sidebar-normal"> Poste </span>
</a> </a>
</li> </li>
<li class="nav-item pl-2">
<a class="nav-link" href="/admin/config/customisation">
<span class="sidebar-mini"> <i class="fas fa-palette"></i> </span>
<span class="sidebar-normal"> Apparence </span>
</a>
</li>
<li class="nav-item pl-2">
<a class="nav-link" href="/admin/config/files">
<span class="sidebar-mini"> <i class="fas fa-folder"></i> </span>
<span class="sidebar-normal"> Fichier </span>
</a>
</li>
<li class="nav-item pl-2">
<a class="nav-link" href="/admin/config/coursedb">
<span class="sidebar-mini"> <i class="fas fa-database"></i> </span>
<span class="sidebar-normal"> BD des cours </span>
</a>
</li>
</ul> </ul>
</div> </div>
</li> </li>

View File

@@ -15,8 +15,7 @@ use Illuminate\Support\Facades\Storage;
/* Basic Auth Route */ /* Basic Auth Route */
Auth::routes(); Auth::routes();
Route::get('logout', 'Auth\LoginController@logout')->name('logout'); Route::get('logout', 'Auth\LoginController@logout')->name('logout');
Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate'); Route::get('/test/file','GoogleDriveController@list');
Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate');
Route::get('/ocom/create','OCOMController@create'); Route::get('/ocom/create','OCOMController@create');
@@ -30,6 +29,7 @@ Route::get('/activity/{id}', 'ComplementaryActivityController@show');
Route::get('/picture/{id}', 'PictureController@show'); Route::get('/picture/{id}', 'PictureController@show');
Route::get('/pictures', 'PictureController@index'); Route::get('/pictures', 'PictureController@index');
Route::middleware(['auth'])->group(function () { Route::middleware(['auth'])->group(function () {
/* Espace Administration Route */ /* Espace Administration Route */
@@ -37,6 +37,7 @@ Route::middleware(['auth'])->group(function () {
/** Dashboard & General */ /** Dashboard & General */
Route::get('/admin', 'AdminController@index')->name('admin'); Route::get('/admin', 'AdminController@index')->name('admin');
Route::get('/admin/update', 'AdminController@update'); Route::get('/admin/update', 'AdminController@update');
Route::get('/admin/status','AdminController@status');
/** Schedule */ /** Schedule */
Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see'); Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see');