mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-21 02:39:10 -04:00
3.2.5
This commit is contained in:
@@ -24,4 +24,9 @@ class Config extends Model
|
||||
{
|
||||
return $this->morphMany('App\Log', 'logable');
|
||||
}
|
||||
|
||||
public static function find($name)
|
||||
{
|
||||
return Config::where('name',$name)->first();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,4 +25,9 @@ class Course extends Model
|
||||
{
|
||||
return $this->morphMany('App\Log', 'logable');
|
||||
}
|
||||
|
||||
public function use_course()
|
||||
{
|
||||
return $this->name == "" && $this->ocom == "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,4 +59,74 @@ class Event extends Model
|
||||
}
|
||||
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
39
app/GoogleDriveFile.php
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -36,4 +36,10 @@ class AdminController extends Controller
|
||||
return view('admin.update');
|
||||
}
|
||||
|
||||
public function status()
|
||||
{
|
||||
$alerts = \App\Event::checkForError();
|
||||
return view('admin.status.index',['alerts' => $alerts]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -137,13 +137,33 @@ class ConfigController extends Controller
|
||||
|
||||
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 !');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,8 @@ class EventController extends Controller
|
||||
{
|
||||
$event = new Event();
|
||||
|
||||
|
||||
|
||||
$event->name = request('name');
|
||||
$event->date_begin = request('begin_time');
|
||||
$event->date_end = request('end_time');
|
||||
@@ -51,7 +53,7 @@ class EventController extends Controller
|
||||
$event->is_mandatory = 0;
|
||||
}
|
||||
|
||||
$event->desc = '';
|
||||
$event->desc = \request('admin_desc');
|
||||
|
||||
if(\request("use_weekly_msg"))
|
||||
{
|
||||
@@ -95,10 +97,10 @@ class EventController extends Controller
|
||||
]);
|
||||
$nbPeriode++;
|
||||
}
|
||||
|
||||
$event->schedule = [
|
||||
'periodes' => $periodes,
|
||||
'niveaux' => $niveaux
|
||||
'niveaux' => $niveaux,
|
||||
'courses' => []
|
||||
];
|
||||
|
||||
$event->save();
|
||||
@@ -119,16 +121,26 @@ class EventController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$course->name = request('name_n'.$l.'_p'.$p);
|
||||
$course->user_id = $instructor;
|
||||
$course->ocom = request('ocom_n'.$l.'_p'.$p);
|
||||
$course->location = request('location_n'.$l.'_p'.$p);
|
||||
$course->periode = $p;
|
||||
$course->level = $l;
|
||||
|
||||
$course->comment = "";
|
||||
$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();
|
||||
}
|
||||
}
|
||||
@@ -253,4 +265,9 @@ class EventController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function checkEvent()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
117
app/Http/Controllers/GoogleDriveController.php
Normal file
117
app/Http/Controllers/GoogleDriveController.php
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -272,6 +272,36 @@ class Permission extends Model
|
||||
'icon' => 'fa-eye',
|
||||
'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
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
44
app/Providers/GoogleDriveServiceProvider.php
Normal file
44
app/Providers/GoogleDriveServiceProvider.php
Normal 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);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@
|
||||
"laravel/helpers": "^1.1",
|
||||
"laravel/nexmo-notification-channel": "^2.2",
|
||||
"laravel/tinker": "^1.0",
|
||||
"nao-pon/flysystem-google-drive": "^1.1",
|
||||
"nexmo/client": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
|
||||
1254
composer.lock
generated
1254
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -173,6 +173,7 @@ return [
|
||||
// App\Providers\BroadcastServiceProvider::class,
|
||||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
App\Providers\GoogleDriveServiceProvider::class,
|
||||
|
||||
],
|
||||
|
||||
|
||||
@@ -64,6 +64,15 @@ return [
|
||||
'url' => env('AWS_URL'),
|
||||
],
|
||||
|
||||
'google' => [
|
||||
'driver' => 'google',
|
||||
'clientId' => '',
|
||||
'clientSecret' => '',
|
||||
'refreshToken' => '',
|
||||
'folderId' => '',
|
||||
// 'teamDriveId' => env('GOOGLE_DRIVE_TEAM_DRIVE_ID'),
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
@@ -231,6 +231,26 @@ class ConfigsTableSeeder extends Seeder
|
||||
'name' => 'cadet_list',
|
||||
'state' => 0,
|
||||
'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').'"]'
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
BIN
public/android-chrome-192x192.png
Normal file
BIN
public/android-chrome-192x192.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
BIN
public/android-chrome-512x512.png
Normal file
BIN
public/android-chrome-512x512.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.1 KiB |
BIN
public/apple-touch-icon.png
Normal file
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
24
public/css/custom.css
vendored
@@ -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 {
|
||||
white-space: normal;
|
||||
word-break: break-word;
|
||||
|
||||
BIN
public/favicon-16x16.png
Normal file
BIN
public/favicon-16x16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 290 B |
BIN
public/favicon-32x32.png
Normal file
BIN
public/favicon-32x32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 532 B |
BIN
public/favicon.ico
Normal file
BIN
public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
21
public/js/plugins/schedule/editor.js
vendored
21
public/js/plugins/schedule/editor.js
vendored
@@ -36,7 +36,24 @@ function initScheduleEditor(id, eventType)
|
||||
}
|
||||
});
|
||||
$('.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();
|
||||
|
||||
@@ -264,6 +281,7 @@ function selectCourseMode(mode, niveau, periode)
|
||||
$('#nameContainer'+niveau+'-'+periode).removeClass('d-none');
|
||||
$('#modeSwitchC'+niveau+'-'+periode).addClass('active');
|
||||
$('#modeSwitchO'+niveau+'-'+periode).removeClass('active');
|
||||
$('#use_course_n'+niveau+'_p'+periode).prop("checked", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -274,6 +292,7 @@ function selectCourseMode(mode, niveau, periode)
|
||||
$('#nameContainer'+niveau+'-'+periode).addClass('d-none');
|
||||
$('#modeSwitchC'+niveau+'-'+periode).removeClass('active');
|
||||
$('#modeSwitchO'+niveau+'-'+periode).addClass('active');
|
||||
$('#use_course_n'+niveau+'_p'+periode).prop("checked", false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
2
resources/assets/fullcalendar/core/main.d.ts
vendored
2
resources/assets/fullcalendar/core/main.d.ts
vendored
@@ -2630,7 +2630,7 @@ declare module '@fullcalendar/core/structs/view-config' {
|
||||
class?: ViewClass;
|
||||
[optionName: string]: any;
|
||||
}
|
||||
export type ViewConfigInput = ViewClass | ViewConfigObjectInput;
|
||||
export type ViewConfigInput = ViewClass | ViewConfigObjectInput;
|
||||
export type ViewConfigInputHash = {
|
||||
[viewType: string]: ViewConfigInput;
|
||||
};
|
||||
|
||||
24
resources/custom.css
vendored
24
resources/custom.css
vendored
@@ -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 {
|
||||
white-space: normal;
|
||||
word-break: break-word;
|
||||
|
||||
@@ -33,24 +33,7 @@
|
||||
@endsection
|
||||
|
||||
@section('breadcrumb')
|
||||
<div class="breadcrumbs">
|
||||
<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>
|
||||
Horaire
|
||||
@endsection
|
||||
|
||||
@section('custom_scripts')
|
||||
|
||||
@@ -4,12 +4,47 @@
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-header card-header-primary">
|
||||
<h4>Configuration Générale</h4>
|
||||
<h4>Configuration du système de fichier</h4>
|
||||
</div>
|
||||
<div class="card-body mt-5">
|
||||
<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">
|
||||
<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="form-group">
|
||||
<label for="exampleInputEmail1">Liste nominative des cadets</label>
|
||||
@@ -28,42 +63,8 @@
|
||||
@endsection
|
||||
|
||||
@section('breadcrumb')
|
||||
<div class="breadcrumbs">
|
||||
<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>
|
||||
Configuration du système de fichier
|
||||
@endsection
|
||||
|
||||
@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
|
||||
|
||||
@@ -143,24 +143,7 @@
|
||||
@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>
|
||||
Dashboard
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
|
||||
68
resources/views/admin/files/Google Drive/index.blade.php
Normal file
68
resources/views/admin/files/Google Drive/index.blade.php
Normal 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
|
||||
@@ -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="col-8 pr-0 m-auto d-flex">
|
||||
<div class="pr-0 m-auto d-flex" id="isDoneContainer{{$niveau}}-{{$periode}}">
|
||||
|
||||
@@ -49,6 +49,34 @@
|
||||
<small id="nameHelp" class="text-muted">Veuillez entrer le lieu de l'événement</small>
|
||||
</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">
|
||||
<label class="mb-0" for="desc">Description</label>
|
||||
<div class="form-group">
|
||||
@@ -58,34 +86,6 @@
|
||||
</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-header" role="tab" id="headingThree">
|
||||
<h5 class="mb-0">
|
||||
|
||||
93
resources/views/admin/status/index.blade.php
Normal file
93
resources/views/admin/status/index.blade.php
Normal 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
|
||||
@@ -7,16 +7,17 @@
|
||||
<title>C-CMS - Espace Administration</title>
|
||||
<meta charset="utf-8">
|
||||
<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" />
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<!-- 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" />
|
||||
<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 -->
|
||||
<link href="/css/material-dashboard.css" rel="stylesheet">
|
||||
@@ -24,7 +25,9 @@
|
||||
<!-- Plugin CSS -->
|
||||
<link href='/assets/fullcalendar/core/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="/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.css">
|
||||
|
||||
@@ -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>
|
||||
</button>
|
||||
</div>
|
||||
<a class="navbar-brand">@yield('breadcrumb')</a>
|
||||
</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>
|
||||
@@ -21,7 +22,7 @@ foreach (Auth::user()->unreadNotifications as $notification) {
|
||||
<span class="navbar-toggler-icon icon-bar"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse justify-content-end">
|
||||
<form class="navbar-form">
|
||||
<!--<form class="navbar-form">
|
||||
<div class="input-group no-border">
|
||||
<input type="text" value="" class="form-control" placeholder="Search...">
|
||||
<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>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</form>-->
|
||||
<ul class="navbar-nav">
|
||||
<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">
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
<script src="/js/plugins/jquery.dataTables.min.js"></script>
|
||||
<!-- Plugin for the Sliders, full documentation here: http://refreshless.com/nouislider/ -->
|
||||
<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 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.js"></script>
|
||||
<!-- Chartist JS -->
|
||||
@@ -26,8 +28,12 @@
|
||||
<!-- Notifications Plugin -->
|
||||
<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.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/plugins/contextLoader.min.js"></script>
|
||||
|
||||
@@ -26,14 +26,14 @@
|
||||
</a>
|
||||
<div class="collapse" id="message">
|
||||
<ul class="nav">
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/message">
|
||||
<span class="sidebar-mini"> <i class="fas fa-eye"></i> </span>
|
||||
<span class="sidebar-normal"> Afficher les messages </span>
|
||||
</a>
|
||||
</li>
|
||||
@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">
|
||||
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
|
||||
<span class="sidebar-normal"> Ajouter un message </span>
|
||||
@@ -41,7 +41,7 @@
|
||||
</li>
|
||||
@endif
|
||||
@if(\Auth::user()->p('msg_delete') == 1)
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/message">
|
||||
<span class="sidebar-mini"> <i class="fas fa-times"></i> </span>
|
||||
<span class="sidebar-normal"> Supprimer un message </span>
|
||||
@@ -62,14 +62,14 @@
|
||||
</a>
|
||||
<div class="collapse" id="news">
|
||||
<ul class="nav">
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/news">
|
||||
<span class="sidebar-mini"> <i class="fas fa-eye"></i> </span>
|
||||
<span class="sidebar-normal"> Voir les nouvelles </span>
|
||||
</a>
|
||||
</li>
|
||||
@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">
|
||||
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
|
||||
<span class="sidebar-normal"> Ajouter une nouvelle </span>
|
||||
@@ -112,14 +112,14 @@
|
||||
</a>
|
||||
<div class="collapse" id="inventory">
|
||||
<ul class="nav">
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/inventory">
|
||||
<span class="sidebar-mini"> <i class="fas fa-box"></i> </span>
|
||||
<span class="sidebar-normal"> Voir l'inventaire </span>
|
||||
</a>
|
||||
</li>
|
||||
@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">
|
||||
<span class="sidebar-mini"> <i class="fas fa-cogs"></i> </span>
|
||||
<span class="sidebar-normal"> Gestion de l'inventaire </span>
|
||||
@@ -146,14 +146,14 @@
|
||||
</a>
|
||||
<div class="collapse" id="picture">
|
||||
<ul class="nav">
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/picture">
|
||||
<span class="sidebar-mini"> <i class="fas fa-list"></i> </span>
|
||||
<span class="sidebar-normal"> Afficher toutes les images </span>
|
||||
</a>
|
||||
</li>
|
||||
@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">
|
||||
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
|
||||
<span class="sidebar-normal"> Ajouter une image </span>
|
||||
@@ -174,7 +174,7 @@
|
||||
</a>
|
||||
<div class="collapse" id="stats">
|
||||
<ul class="nav">
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/stats/log">
|
||||
<span class="sidebar-mini"> <i class="fas fa-user-secret"></i> </span>
|
||||
<span class="sidebar-normal"> Liste des activitées </span>
|
||||
@@ -195,14 +195,14 @@
|
||||
<div class="collapse" id="user">
|
||||
<ul class="nav">
|
||||
@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">
|
||||
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
|
||||
<span class="sidebar-normal"> Ajouter un utilisateur </span>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/user">
|
||||
<span class="sidebar-mini"> <i class="fas fa-list"></i> </span>
|
||||
<span class="sidebar-normal"> Liste des utilisateurs </span>
|
||||
@@ -221,13 +221,13 @@
|
||||
</a>
|
||||
<div class="collapse" id="file">
|
||||
<ul class="nav">
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/guide">
|
||||
<span class="sidebar-mini"> <i class="fas fa-book"></i></span>
|
||||
<span class="sidebar-normal"> Guide pédagogique </span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/files">
|
||||
<span class="sidebar-mini"> <i class="fas fa-cog"></i> </span>
|
||||
<span class="sidebar-normal"> Divers </span>
|
||||
@@ -246,48 +246,54 @@
|
||||
</a>
|
||||
<div class="collapse" id="config">
|
||||
<ul class="nav">
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/config">
|
||||
<span class="sidebar-mini"> <i class="fas fa-cog"></i> </span>
|
||||
<span class="sidebar-normal"> Général </span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item ">
|
||||
<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 ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/config/schedule">
|
||||
<span class="sidebar-mini"> <i class="fas fa-calendar"></i></span>
|
||||
<span class="sidebar-normal"> Horaire </span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/config/activity">
|
||||
<span class="sidebar-mini"> <i class="fas fa-hiking"></i> </span>
|
||||
<span class="sidebar-normal"> Activités </span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item ">
|
||||
<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 ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/config/ranks">
|
||||
<span class="sidebar-mini"> <i class="fas fa-user-tag"></i> </span>
|
||||
<span class="sidebar-normal"> Grade </span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item ">
|
||||
<li class="nav-item pl-2">
|
||||
<a class="nav-link" href="/admin/config/jobs">
|
||||
<span class="sidebar-mini"> <i class="fas fa-user-shield"></i> </span>
|
||||
<span class="sidebar-normal"> Poste </span>
|
||||
</a>
|
||||
</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>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@@ -15,8 +15,7 @@ use Illuminate\Support\Facades\Storage;
|
||||
/* Basic Auth Route */
|
||||
Auth::routes();
|
||||
Route::get('logout', 'Auth\LoginController@logout')->name('logout');
|
||||
Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate');
|
||||
Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate');
|
||||
Route::get('/test/file','GoogleDriveController@list');
|
||||
Route::get('/ocom/create','OCOMController@create');
|
||||
|
||||
|
||||
@@ -30,6 +29,7 @@ Route::get('/activity/{id}', 'ComplementaryActivityController@show');
|
||||
Route::get('/picture/{id}', 'PictureController@show');
|
||||
Route::get('/pictures', 'PictureController@index');
|
||||
|
||||
|
||||
Route::middleware(['auth'])->group(function () {
|
||||
|
||||
/* Espace Administration Route */
|
||||
@@ -37,6 +37,7 @@ Route::middleware(['auth'])->group(function () {
|
||||
/** Dashboard & General */
|
||||
Route::get('/admin', 'AdminController@index')->name('admin');
|
||||
Route::get('/admin/update', 'AdminController@update');
|
||||
Route::get('/admin/status','AdminController@status');
|
||||
|
||||
/** Schedule */
|
||||
Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see');
|
||||
|
||||
Reference in New Issue
Block a user