mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-21 02:39:10 -04:00
Merge branch '3.2.5' into 'dev'
April 9 update See merge request TheGamecraft/c-cms!95
This commit is contained in:
@@ -42,4 +42,80 @@ class Course extends Model
|
|||||||
{
|
{
|
||||||
return $this->name == "" && $this->ocom == "";
|
return $this->name == "" && $this->ocom == "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function lessonPlan()
|
||||||
|
{
|
||||||
|
return $this->hasOne('App\LessonPlan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function allFuture()
|
||||||
|
{
|
||||||
|
$courses = Course::all();
|
||||||
|
foreach ($courses as $key => $course)
|
||||||
|
{
|
||||||
|
if (date('c',strtotime($course->event->date_begin)) <= date('c'))
|
||||||
|
{
|
||||||
|
$courses->forget($key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $courses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function allThisYear()
|
||||||
|
{
|
||||||
|
$courses = Course::all();
|
||||||
|
foreach ($courses as $key => $course)
|
||||||
|
{
|
||||||
|
if (date('c',strtotime($course->event->date_begin)) <= date('c',strtotime(\App\Config::getData('instruction_year_begin'))))
|
||||||
|
{
|
||||||
|
$courses->forget($key);
|
||||||
|
}
|
||||||
|
if (date('c',strtotime($course->event->date_begin)) >= date('c',strtotime(\App\Config::getData('instruction_year_end'))))
|
||||||
|
{
|
||||||
|
$courses->forget($key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $courses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function allForUser($user_id)
|
||||||
|
{
|
||||||
|
$courses = Course::all();
|
||||||
|
foreach ($courses as $key => $course)
|
||||||
|
{
|
||||||
|
if ($course->user_id != $user_id)
|
||||||
|
{
|
||||||
|
$courses->forget($key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $courses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function allForAuthUser()
|
||||||
|
{
|
||||||
|
return self::allForUser(\Auth::user()->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function allFutureForUser($user_id)
|
||||||
|
{
|
||||||
|
$courses = Course::all();
|
||||||
|
foreach ($courses as $key => $course)
|
||||||
|
{
|
||||||
|
if (date('c',strtotime($course->event->date_begin)) <= date('c'))
|
||||||
|
{
|
||||||
|
$courses->forget($key);
|
||||||
|
}
|
||||||
|
if ($course->user_id != $user_id)
|
||||||
|
{
|
||||||
|
$courses->forget($key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $courses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function allFutureForAuthUser()
|
||||||
|
{
|
||||||
|
return self::allFutureForUser(\Auth::user()->id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,23 @@ class Event extends Model
|
|||||||
return $events;
|
return $events;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function allThisYear()
|
||||||
|
{
|
||||||
|
$events = Event::all();
|
||||||
|
foreach ($events as $key => $event)
|
||||||
|
{
|
||||||
|
if (date('c',strtotime($event->date_begin)) <= date('c',strtotime(\App\Config::getData('instruction_year_begin'))))
|
||||||
|
{
|
||||||
|
$events->forget($key);
|
||||||
|
}
|
||||||
|
if (date('c',strtotime($event->date_begin)) >= date('c',strtotime(\App\Config::getData('instruction_year_end'))))
|
||||||
|
{
|
||||||
|
$events->forget($key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $events;
|
||||||
|
}
|
||||||
|
|
||||||
public static function checkForError()
|
public static function checkForError()
|
||||||
{
|
{
|
||||||
$events = Event::all();
|
$events = Event::all();
|
||||||
|
|||||||
@@ -327,4 +327,63 @@ class GoogleDriveFile extends Model
|
|||||||
$contents = collect(Storage::cloud()->listContents('/', true));
|
$contents = collect(Storage::cloud()->listContents('/', true));
|
||||||
return json_encode($contents->where('type', '=', 'dir'));
|
return json_encode($contents->where('type', '=', 'dir'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getSidebarFile()
|
||||||
|
{
|
||||||
|
$user = \Auth::user();
|
||||||
|
$sidebarArray = [];
|
||||||
|
$dirList = \App\GoogleDriveFile::all();
|
||||||
|
if ($dirList->where('path','=','.Privé/.Cadet')->first()->canAuthUser())
|
||||||
|
{
|
||||||
|
$sidebarArray['Cadet'] = [
|
||||||
|
'route' => 'admin.files.cadet',
|
||||||
|
'icon' => 'fas fa-folder-open',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => null
|
||||||
|
];
|
||||||
|
}
|
||||||
|
if ($dirList->where('path','=','.Privé/.Staff')->first()->canAuthUser())
|
||||||
|
{
|
||||||
|
$sidebarArray['Staff'] = [
|
||||||
|
'route' => 'admin.files.staff',
|
||||||
|
'icon' => 'fas fa-folder-open',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => null
|
||||||
|
];
|
||||||
|
}
|
||||||
|
if ($dirList->where('path','=','.Privé/.ETAMAS')->first()->canAuthUser())
|
||||||
|
{
|
||||||
|
$sidebarArray['ETAMAS'] = [
|
||||||
|
'route' => 'admin.files.etamas',
|
||||||
|
'icon' => 'fas fa-folder-open',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => null
|
||||||
|
];
|
||||||
|
}
|
||||||
|
if ($dirList->where('path','=','.Privé/.Officier')->first()->canAuthUser())
|
||||||
|
{
|
||||||
|
$sidebarArray['Officier'] = [
|
||||||
|
'route' => 'admin.files.officier',
|
||||||
|
'icon' => 'fas fa-folder-open',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => null
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$sidebarArray['Publique'] = [
|
||||||
|
'route' => 'admin.files.publique',
|
||||||
|
'icon' => 'fas fa-folder-open',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => null
|
||||||
|
];
|
||||||
|
if (\Auth::user()->p('drive_see') == 1)
|
||||||
|
{
|
||||||
|
$sidebarArray['Google Drive'] = [
|
||||||
|
'route' => 'admin.drive',
|
||||||
|
'icon' => 'fab fa-google-drive',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => null
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return $sidebarArray;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class AdminController extends Controller
|
|||||||
{
|
{
|
||||||
clog('navigate','success','consulte le tableau de bord');
|
clog('navigate','success','consulte le tableau de bord');
|
||||||
|
|
||||||
return view('admin.dashboard',['futureEvent' => \App\Event::future()->take(3),'userClasse' => \Auth::User()->getClasse()->forPage(1,6)]);
|
return view('admin.dashboard',['futureEvent' => \App\Event::future()->take(3),'userClasse' => \Auth::user()->futureCourses()->forPage(1,6)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update()
|
public function update()
|
||||||
@@ -42,4 +42,9 @@ class AdminController extends Controller
|
|||||||
return view('admin.status.index',['alerts' => $alerts]);
|
return view('admin.status.index',['alerts' => $alerts]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function instruction()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Course;
|
use App\Course;
|
||||||
|
use App\GoogleDriveFile;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class CourseController extends Controller
|
class CourseController extends Controller
|
||||||
@@ -14,7 +15,17 @@ class CourseController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
//
|
$mode = 'future';
|
||||||
|
if (\request('all'))
|
||||||
|
{
|
||||||
|
$courses = Course::all();
|
||||||
|
$mode = 'all';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$courses = Course::allFuture();
|
||||||
|
}
|
||||||
|
return view('admin.course.index',['courses' => $courses,'mode' => $mode]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,18 +52,25 @@ class CourseController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Display the specified resource.
|
* Display the specified resource.
|
||||||
*
|
*
|
||||||
* @param \App\Course $course
|
* @param $id
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||||
*/
|
*/
|
||||||
public function show(Course $course)
|
public function show($id)
|
||||||
{
|
{
|
||||||
//
|
$course = Course::find($id);
|
||||||
|
$user = \App\User::find($course->user_id);
|
||||||
|
$name = $course->user_id;
|
||||||
|
if ($user != null)
|
||||||
|
{
|
||||||
|
$name = $user->fullname();
|
||||||
|
}
|
||||||
|
return view('admin.course.show',['course' => $course,'username' => $name,'lessonPlanDir' => \App\GoogleDriveFile::findByPath('.Systeme/.Fichier/.PlanDeCours')->id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
* @param \App\Course $course
|
* @param Course $course
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function edit(Course $course)
|
public function edit(Course $course)
|
||||||
@@ -64,7 +82,7 @@ class CourseController extends Controller
|
|||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param \App\Course $course
|
* @param Course $course
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, Course $course)
|
public function update(Request $request, Course $course)
|
||||||
@@ -72,14 +90,105 @@ class CourseController extends Controller
|
|||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updateCommentOfficer(Request $request, $id)
|
||||||
|
{
|
||||||
|
$course = Course::findOrFail($id);
|
||||||
|
|
||||||
|
$course->comment_officer = $request->comment_officer;
|
||||||
|
$course->save();
|
||||||
|
return redirect()->back()->with('success','Modification enregisté avec succès');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateComment(Request $request, $id)
|
||||||
|
{
|
||||||
|
$course = Course::findOrFail($id);
|
||||||
|
|
||||||
|
$course->comment = $request->comment;
|
||||||
|
$course->save();
|
||||||
|
return redirect()->back()->with('success','Modification enregisté avec succès');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateCommentOfficerPlan(Request $request, $id)
|
||||||
|
{
|
||||||
|
$course = Course::findOrFail($id);
|
||||||
|
|
||||||
|
$course->lessonPlan->comment = $request->comment_officer;
|
||||||
|
$course->lessonPlan->save();
|
||||||
|
return redirect()->back()->with('success','Modification enregisté avec succès');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateCommentPlan(Request $request, $id)
|
||||||
|
{
|
||||||
|
$course = Course::findOrFail($id);
|
||||||
|
|
||||||
|
$course->lessonPlan->desc = $request->comment;
|
||||||
|
$course->lessonPlan->save();
|
||||||
|
return redirect()->back()->with('success','Modification enregisté avec succès');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateLessonPlan(Request $request, $id)
|
||||||
|
{
|
||||||
|
$course = Course::findOrFail($id);
|
||||||
|
$name = $course->ocom.'_'.$course->instructor().'_'.$course->event->date_begin.'_'.'v'.date('c').'.'.\request()->file('file')->getClientOriginalExtension();
|
||||||
|
$name = urlencode($name);
|
||||||
|
$dirID = \App\GoogleDriveFile::findByPath('.Systeme/.Fichier/.PlanDeCours')->id;
|
||||||
|
|
||||||
|
if ($course->lessonPlan != null)
|
||||||
|
{
|
||||||
|
$lessonPlan = $course->lessonPlan;
|
||||||
|
$contents = collect(\Storage::cloud()->listContents($dirID, false));
|
||||||
|
|
||||||
|
$file = $contents
|
||||||
|
->where('type', '=', 'file')
|
||||||
|
->where('filename', '=', pathinfo($course->lessonPlan->file, PATHINFO_FILENAME))
|
||||||
|
->where('extension', '=', pathinfo($course->lessonPlan->file, PATHINFO_EXTENSION))
|
||||||
|
->first(); // there can be duplicate file names!
|
||||||
|
\Storage::cloud()->delete($file['path']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$lessonPlan = new \App\LessonPlan();
|
||||||
|
}
|
||||||
|
\Storage::cloud()->putFileAs($dirID,\request()->file('file'),$name);
|
||||||
|
$metadata = \Storage::cloud()->getMetadata($dirID.'/'.$name);
|
||||||
|
|
||||||
|
$lessonPlan->user_id = \Auth::user()->id;
|
||||||
|
$lessonPlan->file = $metadata['name'];
|
||||||
|
$lessonPlan->course_id = $course->id;
|
||||||
|
$lessonPlan->desc = "";
|
||||||
|
$lessonPlan->comment = "";
|
||||||
|
$lessonPlan->save();
|
||||||
|
|
||||||
|
return redirect()->back();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*
|
*
|
||||||
* @param \App\Course $course
|
* @param Course $course
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function destroy(Course $course)
|
public function destroy(Course $course)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function validatePlan($id)
|
||||||
|
{
|
||||||
|
$course = Course::findOrFail($id);
|
||||||
|
if ($course->lessonPlan)
|
||||||
|
{
|
||||||
|
if ($course->lessonPlan->approved)
|
||||||
|
{
|
||||||
|
$course->lessonPlan->approved = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$course->lessonPlan->approved = true;
|
||||||
|
}
|
||||||
|
$course->lessonPlan->save();
|
||||||
|
return strval($course->lessonPlan->approved);
|
||||||
|
}
|
||||||
|
return abort(500);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,9 +44,10 @@ class EventTypeController extends Controller
|
|||||||
* @param \App\EventType $eventType
|
* @param \App\EventType $eventType
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function show(EventType $eventType)
|
public function show($id)
|
||||||
{
|
{
|
||||||
//
|
$event_type = EventType::findOrFail($id);
|
||||||
|
return view('admin.event_type.show',['event_type' => $event_type]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\GoogleDriveFile;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class FilesController extends Controller
|
class FilesController extends Controller
|
||||||
@@ -84,6 +85,38 @@ class FilesController extends Controller
|
|||||||
|
|
||||||
public function guide()
|
public function guide()
|
||||||
{
|
{
|
||||||
return view('admin.files.guide');
|
$dirID = \App\GoogleDriveFile::findByPath('.Privé/.Staff/.Guide');
|
||||||
|
$dir = collect(\Storage::cloud()->listContents($dirID->id,false))->sortBy('name');
|
||||||
|
return view('admin.files.guide',['dir' => $dir]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function instruction()
|
||||||
|
{
|
||||||
|
return view('admin.files.Google Drive.index',['folder' => \App\GoogleDriveFile::where('path','=','.Privé/.Staff/.Instruction')->first()->id, 'mode' => 'folder']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function cadet()
|
||||||
|
{
|
||||||
|
return view('admin.files.Google Drive.index',['folder' => \App\GoogleDriveFile::where('path','=','.Privé/.Cadet')->first()->id, 'mode' => 'folder']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function staff()
|
||||||
|
{
|
||||||
|
return view('admin.files.Google Drive.index',['folder' => \App\GoogleDriveFile::where('path','=','.Privé/.Staff')->first()->id, 'mode' => 'folder']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function etamas()
|
||||||
|
{
|
||||||
|
return view('admin.files.Google Drive.index',['folder' => \App\GoogleDriveFile::where('path','=','.Privé/.ETAMAS')->first()->id, 'mode' => 'folder']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function officier()
|
||||||
|
{
|
||||||
|
return view('admin.files.Google Drive.index',['folder' => \App\GoogleDriveFile::where('path','=','.Privé/.Officier')->first()->id, 'mode' => 'folder']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function publique()
|
||||||
|
{
|
||||||
|
return view('admin.files.Google Drive.index',['folder' => \App\GoogleDriveFile::where('path','=','.Publique')->first()->id, 'mode' => 'folder']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ class GoogleDriveController extends Controller
|
|||||||
return view('admin.files.Google Drive.index',['folder' => $folder]);
|
return view('admin.files.Google Drive.index',['folder' => $folder]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function indexFolder($folder = '')
|
||||||
|
{
|
||||||
|
return view('admin.files.Google Drive.index',['folder' => $folder,'mode' => 'folder']);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for creating a new file.
|
* Show the form for creating a new file.
|
||||||
*
|
*
|
||||||
@@ -172,6 +177,14 @@ class GoogleDriveController extends Controller
|
|||||||
->where('type', '=', 'file')
|
->where('type', '=', 'file')
|
||||||
->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME))
|
->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME))
|
||||||
->first(); // there can be duplicate file names!
|
->first(); // there can be duplicate file names!
|
||||||
|
if ($file == null)
|
||||||
|
{
|
||||||
|
$filename = \request('f');
|
||||||
|
$file = $contents
|
||||||
|
->where('type', '=', 'file')
|
||||||
|
->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME))
|
||||||
|
->first(); // there can be duplicate file names!
|
||||||
|
}
|
||||||
|
|
||||||
$rawData = Storage::cloud()->get($file['path']);
|
$rawData = Storage::cloud()->get($file['path']);
|
||||||
$filename = urlencode($filename);
|
$filename = urlencode($filename);
|
||||||
@@ -335,76 +348,71 @@ class GoogleDriveController extends Controller
|
|||||||
public function getFileStructure()
|
public function getFileStructure()
|
||||||
{
|
{
|
||||||
return collect([
|
return collect([
|
||||||
'🔒.Privé' => [
|
'.Systeme' => [
|
||||||
'rank' => [1 => 'rwp'],
|
'rank' => [1 => 'rwp'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Privé/🔒.Cadet' => [
|
'.Systeme/.Fichier' => [
|
||||||
'rank' => [1 => 'rwp'],
|
'rank' => [1 => 'rwp'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Privé/🔒.ETAMAS' => [
|
'.Systeme/.Fichier/.PlanDeCours' => [
|
||||||
'rank' => [1 => 'rwp'],
|
'rank' => [1 => 'rwp'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Privé/🔒.Officier' => [
|
'.Privé' => [
|
||||||
'rank' => [1 => 'rwp'],
|
'rank' => [1 => 'rwp'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Privé/🔒.Staff' => [
|
'.Privé/.Cadet' => [
|
||||||
'rank' => [1 => 'rwp'],
|
'rank' => [1 => 'rwp'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Privé/🔒.Staff/🔒.Guide' => [
|
'.Privé/.ETAMAS' => [
|
||||||
'rank' => [1 => 'rwp'],
|
'rank' => [1 => 'rwp'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Publique' => [
|
'.Privé/.Officier' => [
|
||||||
|
'rank' => [1 => 'rwp'],
|
||||||
|
'job' => [],
|
||||||
|
'user' => []
|
||||||
|
],
|
||||||
|
'.Privé/.Staff' => [
|
||||||
|
'rank' => [1 => 'rwp'],
|
||||||
|
'job' => [],
|
||||||
|
'user' => []
|
||||||
|
],
|
||||||
|
'.Privé/.Staff/.Guide' => [
|
||||||
|
'rank' => [1 => 'rwp'],
|
||||||
|
'job' => [],
|
||||||
|
'user' => []
|
||||||
|
],
|
||||||
|
'.Privé/.Staff/.Instruction' => [
|
||||||
|
'rank' => [1 => 'rwp'],
|
||||||
|
'job' => [],
|
||||||
|
'user' => []
|
||||||
|
],
|
||||||
|
'.Publique' => [
|
||||||
'rank' => [1 => 'rwp',0 => 'r'],
|
'rank' => [1 => 'rwp',0 => 'r'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Publique/🔒.Fichier' => [
|
'.Publique/.Fichier' => [
|
||||||
'rank' => [1 => 'rwp',0 => 'r'],
|
'rank' => [1 => 'rwp',0 => 'r'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Publique/🔒.Image' => [
|
'.Publique/.Image' => [
|
||||||
'rank' => [1 => 'rwp',0 => 'r'],
|
'rank' => [1 => 'rwp',0 => 'r'],
|
||||||
'job' => [],
|
'job' => [],
|
||||||
'user' => []
|
'user' => []
|
||||||
],
|
],
|
||||||
'🔒.Système' => [
|
|
||||||
'rank' => [1 => 'rwp'],
|
|
||||||
'job' => [],
|
|
||||||
'user' => []
|
|
||||||
],
|
|
||||||
'🔒.Système/🔒.Fichier' => [
|
|
||||||
'rank' => [1 => 'rwp'],
|
|
||||||
'job' => [],
|
|
||||||
'user' => []
|
|
||||||
],
|
|
||||||
'🔒.Système/🔒.Image' => [
|
|
||||||
'rank' => [1 => 'rwp'],
|
|
||||||
'job' => [],
|
|
||||||
'user' => []
|
|
||||||
],
|
|
||||||
'🔒.Système/🔒.Image/🔒.Nouvelle' => [
|
|
||||||
'rank' => [1 => 'rwp'],
|
|
||||||
'job' => [],
|
|
||||||
'user' => []
|
|
||||||
],
|
|
||||||
'🔒.Système/🔒.Image/🔒.Profil' => [
|
|
||||||
'rank' => [1 => 'rwp'],
|
|
||||||
'job' => [],
|
|
||||||
'user' => []
|
|
||||||
],
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -412,7 +420,7 @@ class GoogleDriveController extends Controller
|
|||||||
{
|
{
|
||||||
$contents = collect(\Storage::cloud()->listContents($d, false));
|
$contents = collect(\Storage::cloud()->listContents($d, false));
|
||||||
$dir = $contents->where('type', '=', 'dir');
|
$dir = $contents->where('type', '=', 'dir');
|
||||||
$dir = $dir->where('filename','=','🔒');
|
$dir = $dir->where('filename','=','');
|
||||||
|
|
||||||
return $dir;
|
return $dir;
|
||||||
}
|
}
|
||||||
@@ -481,6 +489,142 @@ class GoogleDriveController extends Controller
|
|||||||
return view('admin.files.Google Drive.permission.edit',['folder' => $dir,'subject' => $foo,'perm' => $perm,'s' => $subject]);
|
return view('admin.files.Google Drive.permission.edit',['folder' => $dir,'subject' => $foo,'perm' => $perm,'s' => $subject]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function addPermissionModal($folder,$subject)
|
||||||
|
{
|
||||||
|
$dir = GoogleDriveFile::find($folder);
|
||||||
|
$list = null;
|
||||||
|
if ($subject == 'rank')
|
||||||
|
{
|
||||||
|
$list = \App\Rank::all();
|
||||||
|
}
|
||||||
|
elseif ($subject == 'job')
|
||||||
|
{
|
||||||
|
$list = \App\Job::all();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$list = \App\User::all();
|
||||||
|
}
|
||||||
|
return view('admin.files.Google Drive.permission.add',['folder' => $dir,'list' => $list,'s' => $subject]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function patchPermission(Request $request,$folder,$subject,$id)
|
||||||
|
{
|
||||||
|
$f = GoogleDriveFile::find($folder);
|
||||||
|
$permstring = '';
|
||||||
|
if (isset($request->read))
|
||||||
|
{
|
||||||
|
if ($request->read == 'on')
|
||||||
|
{
|
||||||
|
$permstring = $permstring.'r';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($request->write))
|
||||||
|
{
|
||||||
|
if ($request->write == 'on')
|
||||||
|
{
|
||||||
|
$permstring = $permstring.'w';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($request->perm))
|
||||||
|
{
|
||||||
|
if ($request->perm == 'on')
|
||||||
|
{
|
||||||
|
$permstring = $permstring.'p';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($subject == 'rank')
|
||||||
|
{
|
||||||
|
$temp = $f->rank_permission;
|
||||||
|
$temp[$id] = $permstring;
|
||||||
|
$f->rank_permission = $temp;
|
||||||
|
}
|
||||||
|
if ($subject == 'job')
|
||||||
|
{
|
||||||
|
$temp = $f->job_permission;
|
||||||
|
$temp[$id] = $permstring;
|
||||||
|
$f->job_permission = $temp;
|
||||||
|
}
|
||||||
|
if ($subject == 'user')
|
||||||
|
{
|
||||||
|
$temp = $f->user_permission;
|
||||||
|
$temp[$id] = $permstring;
|
||||||
|
$f->user_permission = $temp;
|
||||||
|
}
|
||||||
|
$f->save();
|
||||||
|
return redirect()->back()->with('success','Modification enregistré avec succès');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addPermission(Request $request,$folder,$subject)
|
||||||
|
{
|
||||||
|
$f = GoogleDriveFile::find($folder);
|
||||||
|
$permstring = '';
|
||||||
|
if (isset($request->read))
|
||||||
|
{
|
||||||
|
if ($request->read == 'on')
|
||||||
|
{
|
||||||
|
$permstring = $permstring.'r';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($request->write))
|
||||||
|
{
|
||||||
|
if ($request->write == 'on')
|
||||||
|
{
|
||||||
|
$permstring = $permstring.'w';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($request->perm))
|
||||||
|
{
|
||||||
|
if ($request->perm == 'on')
|
||||||
|
{
|
||||||
|
$permstring = $permstring.'p';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($subject == 'rank')
|
||||||
|
{
|
||||||
|
$temp = $f->rank_permission;
|
||||||
|
$temp[$request->id] = $permstring;
|
||||||
|
$f->rank_permission = $temp;
|
||||||
|
}
|
||||||
|
if ($subject == 'job')
|
||||||
|
{
|
||||||
|
$temp = $f->job_permission;
|
||||||
|
$temp[$request->id] = $permstring;
|
||||||
|
$f->job_permission = $temp;
|
||||||
|
}
|
||||||
|
if ($subject == 'user')
|
||||||
|
{
|
||||||
|
$temp = $f->user_permission;
|
||||||
|
$temp[$request->id] = $permstring;
|
||||||
|
$f->user_permission = $temp;
|
||||||
|
}
|
||||||
|
$f->save();
|
||||||
|
return redirect()->back()->with('success','Modification enregistré avec succès');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deletePermission($folder,$subject,$id)
|
||||||
|
{
|
||||||
|
$f = GoogleDriveFile::find($folder);
|
||||||
|
if ($subject == 'rank')
|
||||||
|
{
|
||||||
|
$temp = $f->rank_permission;
|
||||||
|
unset($temp[$id]);
|
||||||
|
$f->rank_permission = $temp;
|
||||||
|
}
|
||||||
|
if ($subject == 'job')
|
||||||
|
{
|
||||||
|
$temp = $f->job_permission;
|
||||||
|
unset($temp[$id]);
|
||||||
|
$f->job_permission = $temp;
|
||||||
|
}
|
||||||
|
if ($subject == 'user')
|
||||||
|
{
|
||||||
|
$temp = $f->user_permission;
|
||||||
|
unset($temp[$id]);
|
||||||
|
$f->user_permission = $temp;
|
||||||
|
}
|
||||||
|
$f->save();
|
||||||
|
return redirect()->back()->with('success','Modification enregistré avec succès');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
85
app/Http/Controllers/LessonPlanController.php
Normal file
85
app/Http/Controllers/LessonPlanController.php
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\LessonPlan;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class LessonPlanController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param \App\LessonPlan $lessonPlan
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show(LessonPlan $lessonPlan)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param \App\LessonPlan $lessonPlan
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit(LessonPlan $lessonPlan)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param \App\LessonPlan $lessonPlan
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, LessonPlan $lessonPlan)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param \App\LessonPlan $lessonPlan
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy(LessonPlan $lessonPlan)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
23
app/Http/Controllers/ProfilController.php
Normal file
23
app/Http/Controllers/ProfilController.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class ProfilController extends Controller
|
||||||
|
{
|
||||||
|
public function courses()
|
||||||
|
{
|
||||||
|
$mode = 'future';
|
||||||
|
if (\request('all'))
|
||||||
|
{
|
||||||
|
$courses = \App\Course::allForAuthUser();
|
||||||
|
$mode = 'all';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$courses = \App\Course::allFutureForAuthUser();
|
||||||
|
}
|
||||||
|
return view('admin.user.profil.courses',['courses' => $courses,'mode' => $mode]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,49 +11,21 @@ class ScheduleController extends Controller
|
|||||||
{
|
{
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
return view('admin.configs.schedule',['configs' => \App\Config::all()]);
|
return view('admin.configs.schedule',['configs' => \App\Config::all(),'events_type' => \App\EventType::all()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update()
|
public function update(Request $request)
|
||||||
{
|
{
|
||||||
$configs = ['admin_periode_nb'];
|
$instruction_year_begin = \App\Config::find('instruction_year_begin');
|
||||||
|
$instruction_year_end = \App\Config::find('instruction_year_end');
|
||||||
|
|
||||||
foreach ($configs as $config) {
|
$instruction_year_begin->data = [date('Y-m-d',strtotime($request->instruction_year_begin))];
|
||||||
$c = \App\Config::all()->where('name',$config)->first();
|
$instruction_year_end->data = [date('Y-m-d',strtotime($request->instruction_year_end))];
|
||||||
$c->data = [request($config)];
|
|
||||||
$c->save();
|
|
||||||
}
|
|
||||||
|
|
||||||
$new_admin_periode_begin = [];
|
$instruction_year_begin->save();
|
||||||
$new_admin_periode_end = [];
|
$instruction_year_end->save();
|
||||||
for ($i=1; $i <= request('admin_periode_nb'); $i++) {
|
|
||||||
if(request('admin_periode_begin_'.$i))
|
|
||||||
{
|
|
||||||
$new_admin_periode_begin[$i] = request('admin_periode_begin_'.$i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$new_admin_periode_begin[$i] = "00:00";
|
|
||||||
}
|
|
||||||
if(request('admin_periode_end_'.$i))
|
|
||||||
{
|
|
||||||
$new_admin_periode_end[$i] = request('admin_periode_end_'.$i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$new_admin_periode_end[$i] = "00:00";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$temp = \App\Config::all()->where('name','admin_periode_begin')->first();
|
return redirect('/admin/config/instruction')->with('success','Modification sauvegarder avec succès !');
|
||||||
$temp->data = $new_admin_periode_begin;
|
|
||||||
$temp->save();
|
|
||||||
|
|
||||||
$temp = \App\Config::all()->where('name','admin_periode_end')->first();
|
|
||||||
$temp->data = $new_admin_periode_end;
|
|
||||||
$temp->save();
|
|
||||||
|
|
||||||
return redirect('/admin/config/schedule')->with('success','Modification sauvegarder avec succès !');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function apiIndex()
|
public function apiIndex()
|
||||||
|
|||||||
81
app/Http/Controllers/StatsController.php
Normal file
81
app/Http/Controllers/StatsController.php
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class StatsController extends Controller
|
||||||
|
{
|
||||||
|
public function instruction()
|
||||||
|
{
|
||||||
|
$instructorUTTD = collect();
|
||||||
|
|
||||||
|
$coursesTY = \App\Course::allThisYear();
|
||||||
|
$nbCoursePlanDoneTY = 0;
|
||||||
|
$nbCoursePlanDoneAndCheckTY = 0;
|
||||||
|
foreach ($coursesTY as $course)
|
||||||
|
{
|
||||||
|
if ($course->lessonPlan)
|
||||||
|
{
|
||||||
|
if ($course->lessonPlan->approved)
|
||||||
|
{
|
||||||
|
$nbCoursePlanDoneAndCheckTY++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$nbCoursePlanDoneTY++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$coursesUTTD = $coursesTY;
|
||||||
|
$nbCoursePlanDoneUTDP = 0;
|
||||||
|
$nbCoursePlanDoneAndCheckUTDP = 0;
|
||||||
|
|
||||||
|
foreach ($coursesUTTD as $key => $course)
|
||||||
|
{
|
||||||
|
if (date('c',strtotime($course->event->date_begin)) >= date('c'))
|
||||||
|
{
|
||||||
|
$coursesUTTD->forget($key);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$instructorUTTD->push($course->instructor());
|
||||||
|
if ($course->lessonPlan)
|
||||||
|
{
|
||||||
|
if ($course->lessonPlan->approved)
|
||||||
|
{
|
||||||
|
$nbCoursePlanDoneAndCheckUTDP++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$nbCoursePlanDoneUTDP++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$instructorUTTD = $instructorUTTD->unique();
|
||||||
|
|
||||||
|
$eventTY = \App\Event::allThisYear();
|
||||||
|
$eventUTTD = $eventTY;
|
||||||
|
foreach ($eventUTTD as $key => $event)
|
||||||
|
{
|
||||||
|
if (date('c',strtotime($event->date_begin)) >= date('c'))
|
||||||
|
{
|
||||||
|
$eventUTTD->forget($key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return view('admin.stats.instruction',[
|
||||||
|
'nbCourseThisYear' => count($coursesTY),
|
||||||
|
'nbInstructorUpToThisDay' => count($instructorUTTD),
|
||||||
|
'nbEventThisYear' => count($eventTY),
|
||||||
|
'nbEventUpToThisDay' => count($eventUTTD),
|
||||||
|
'nbCourseUpToThisDay' => count($coursesUTTD),
|
||||||
|
'nbCoursePlanDoneUTDP' => $nbCoursePlanDoneUTDP,
|
||||||
|
'nbCoursePlanDoneTY' => $nbCoursePlanDoneTY,
|
||||||
|
'nbCoursePlanDoneAndCheckUTDP' => $nbCoursePlanDoneAndCheckUTDP,
|
||||||
|
'nbCoursePlanDoneAndCheckTY' => $nbCoursePlanDoneAndCheckTY,
|
||||||
|
'nbCourseInDB' => count(\App\OCOM::all()),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -262,4 +262,14 @@ class UserController extends Controller
|
|||||||
|
|
||||||
return json_encode($name);
|
return json_encode($name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function showCourses($id)
|
||||||
|
{
|
||||||
|
return view('admin.user.courses',['courses' => User::find($id)->courses]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function showCourse($id,$course_id)
|
||||||
|
{
|
||||||
|
return view('admin.user.course',['courses' => User::find($id)->courses]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,5 +63,6 @@ class Kernel extends HttpKernel
|
|||||||
'admin' => \App\Http\Middleware\AccesAdmin::class,
|
'admin' => \App\Http\Middleware\AccesAdmin::class,
|
||||||
'perm' => \App\Http\Middleware\CheckPerm::class,
|
'perm' => \App\Http\Middleware\CheckPerm::class,
|
||||||
'fileperm' => \App\Http\Middleware\CheckFilePerm::class,
|
'fileperm' => \App\Http\Middleware\CheckFilePerm::class,
|
||||||
|
'courseperm' => \App\Http\Middleware\CheckCoursePerm::class,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
43
app/Http/Middleware/CheckCoursePerm.php
Normal file
43
app/Http/Middleware/CheckCoursePerm.php
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
|
||||||
|
class CheckCoursePerm
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param \Closure $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle($request, Closure $next,$perm = 'see')
|
||||||
|
{
|
||||||
|
$course = \App\Course::findOrFail($request->id);
|
||||||
|
|
||||||
|
if (\Auth::user()->id == $course->user_id)
|
||||||
|
{
|
||||||
|
if ($perm == 'see' || $perm == 'edit')
|
||||||
|
{
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (\Auth::user()->p('course_'.$perm.'_all') == 1)
|
||||||
|
{
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
if (\Auth::user()->p('course_'.$perm) == 1)
|
||||||
|
{
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
if ($perm == 'validate_plan')
|
||||||
|
{
|
||||||
|
abort(401);
|
||||||
|
}
|
||||||
|
clog('navigate','danger','L\'utilisateur n\'est pas autorisé à effectuer cette action',\Auth::user()->id);
|
||||||
|
return redirect('/admin')->with('error','Vous n\'êtes pas autorisé à effectuer cette action');
|
||||||
|
}
|
||||||
|
}
|
||||||
13
app/LessonPlan.php
Normal file
13
app/LessonPlan.php
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class LessonPlan extends Model
|
||||||
|
{
|
||||||
|
public function course()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\Course');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -38,36 +38,6 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'message' => [
|
|
||||||
'msg_see' => [
|
|
||||||
'ckey' => 'msg_see',
|
|
||||||
'communName' => 'Voir les messages',
|
|
||||||
'desc' => 'L\'utilisateur peut-il consulter les messages de la semaine',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'msg_add' => [
|
|
||||||
'ckey' => 'msg_add',
|
|
||||||
'communName' => 'Ajouter un message',
|
|
||||||
'desc' => 'L\'utilisateur peut-il ajouter un message de la semaine',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'msg_edit' => [
|
|
||||||
'ckey' => 'msg_edit',
|
|
||||||
'communName' => 'Modifier un message',
|
|
||||||
'desc' => 'L\'utilisateur peut-il modifier les messages de la semaine',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'msg_delete' => [
|
|
||||||
'ckey' => 'msg_delete',
|
|
||||||
'communName' => 'Supprimer un message',
|
|
||||||
'desc' => 'L\'utilisateur peut-il supprimer un message de la semaine',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
]
|
|
||||||
],
|
|
||||||
'inventory' => [
|
'inventory' => [
|
||||||
'inventory_see' => [
|
'inventory_see' => [
|
||||||
'ckey' => 'inventory_see',
|
'ckey' => 'inventory_see',
|
||||||
@@ -98,36 +68,6 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'booking' => [
|
|
||||||
'booking_see' => [
|
|
||||||
'ckey' => 'booking_see',
|
|
||||||
'communName' => 'Voir les réservations',
|
|
||||||
'desc' => 'L\'utilisateur peut-il consulter la liste des réservations',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'booking_add' => [
|
|
||||||
'ckey' => 'booking_add',
|
|
||||||
'communName' => 'Ajouter une réservation',
|
|
||||||
'desc' => 'L\'utilisateur peut-il ajouter une réservation',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'booking_edit' => [
|
|
||||||
'ckey' => 'booking_edit',
|
|
||||||
'communName' => 'Modifier une réservation',
|
|
||||||
'desc' => 'L\'utilisateur peut-il modifier une réservation',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'booking_delete' => [
|
|
||||||
'ckey' => 'booking_delete',
|
|
||||||
'communName' => 'Supprimer une réservation',
|
|
||||||
'desc' => 'L\'utilisateur peut-il supprimer une réservation',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
]
|
|
||||||
],
|
|
||||||
'user' => [
|
'user' => [
|
||||||
'user_see' => [
|
'user_see' => [
|
||||||
'ckey' => 'user_see',
|
'ckey' => 'user_see',
|
||||||
@@ -183,7 +123,72 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'schedule' => [
|
'Instruction' => [
|
||||||
|
'instruction_guide_see' => [
|
||||||
|
'ckey' => 'instruction_guide_see',
|
||||||
|
'communName' => 'Voir les guides pédagogiques et normes de qualifications',
|
||||||
|
'desc' => 'L\'utilisateur peut-il consulter les guides pédagogiques et normes de qualifications',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'instruction_db_ocom_see' => [
|
||||||
|
'ckey' => 'instruction_db_ocom_see',
|
||||||
|
'communName' => 'Voir la base de donnée de cours',
|
||||||
|
'desc' => 'L\'utilisateur peut-il consulter la base de donnée des cours',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'instruction_db_ocom_add' => [
|
||||||
|
'ckey' => 'instruction_db_ocom_add',
|
||||||
|
'communName' => 'Ajouter à la base de donnée de cours',
|
||||||
|
'desc' => 'L\'utilisateur peut-il ajouter à la base de donnée des cours',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'instruction_db_ocom_edit' => [
|
||||||
|
'ckey' => 'instruction_db_ocom_edit',
|
||||||
|
'communName' => 'Modifier la base de donnée de cours',
|
||||||
|
'desc' => 'L\'utilisateur peut-il modifier la base de donnée des cours',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'instruction_db_ocom_delete' => [
|
||||||
|
'ckey' => 'instruction_db_ocom_delete',
|
||||||
|
'communName' => 'Supprimer de la base de donnée de cours',
|
||||||
|
'desc' => 'L\'utilisateur peut-il supprimer de la base de donnée des cours',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'course_see_all' => [
|
||||||
|
'ckey' => 'course_see_all',
|
||||||
|
'communName' => 'Voir les cours de tous les utilisateurs',
|
||||||
|
'desc' => 'L\'utilisateur peut-il voir les cours de tous les utilisateurs',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'course_comment_officer' => [
|
||||||
|
'ckey' => 'course_comment_officer',
|
||||||
|
'communName' => 'Ajouter un commentaire sur n\'importe quel cours',
|
||||||
|
'desc' => 'L\'utilisateur peut-il ajouter un commentaire sur n\'importe quel cours',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'course_validate_plan' => [
|
||||||
|
'ckey' => 'course_validate_plan',
|
||||||
|
'communName' => 'Valider n\'importe quel plan de cours',
|
||||||
|
'desc' => 'L\'utilisateur peut-il valider n\'importe quel plan de cours',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'course_comment_plan_officer' => [
|
||||||
|
'ckey' => 'course_comment_plan_officer',
|
||||||
|
'communName' => 'Ajouter un commentaire sur n\'importe quel plan de cours',
|
||||||
|
'desc' => 'L\'utilisateur peut-il ajouter un commentaire sur n\'importe quel plan de cours',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'Horaire' => [
|
||||||
'schedule_see' => [
|
'schedule_see' => [
|
||||||
'ckey' => 'schedule_see',
|
'ckey' => 'schedule_see',
|
||||||
'communName' => 'Voir l\'horaire',
|
'communName' => 'Voir l\'horaire',
|
||||||
@@ -274,146 +279,20 @@ class Permission extends Model
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'file' => [
|
'file' => [
|
||||||
'file_see_public' => [
|
'file_see' => [
|
||||||
'ckey' => 'file_see_public',
|
'ckey' => 'file_see',
|
||||||
'communName' => 'Voir les fichiers publiques',
|
'communName' => 'Voir les fichiers publiques',
|
||||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers publiques',
|
'desc' => 'L\'utilisateur peut-il consulter les fichiers publiques',
|
||||||
'icon' => 'fa-eye',
|
'icon' => 'fa-eye',
|
||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
'file_add_public' => [
|
'drive_see' => [
|
||||||
'ckey' => 'file_add_public',
|
'ckey' => 'drive_see',
|
||||||
'communName' => 'Ajouter un fichier publiques',
|
'communName' => 'Voir l\'explorateur de fichier',
|
||||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible publiques',
|
'desc' => 'L\'utilisateur peut-il consulter l\'explorateur de fichier',
|
||||||
'icon' => 'fa-eye',
|
'icon' => 'fa-eye',
|
||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
'file_edit_public' => [
|
|
||||||
'ckey' => 'file_edit_public',
|
|
||||||
'communName' => 'Modifier un fichier publiques',
|
|
||||||
'desc' => 'L\'utilisateur peut-il modifier un fichier publiques',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_delete_public' => [
|
|
||||||
'ckey' => 'file_delete_public',
|
|
||||||
'communName' => 'Supprimer un fichier publiques',
|
|
||||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier publiques',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_see_cadet' => [
|
|
||||||
'ckey' => 'file_see_cadet',
|
|
||||||
'communName' => 'Voir les fichiers des cadets',
|
|
||||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers des cadets',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_add_cadet' => [
|
|
||||||
'ckey' => 'file_add_cadet',
|
|
||||||
'communName' => 'Ajouter un fichier disponible aux cadets',
|
|
||||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible aux cadets',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_edit_cadet' => [
|
|
||||||
'ckey' => 'file_edit_cadet',
|
|
||||||
'communName' => 'Modifier un fichier des cadets',
|
|
||||||
'desc' => 'L\'utilisateur peut-il modifier un fichier des cadets',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_delete_cadet' => [
|
|
||||||
'ckey' => 'file_delete',
|
|
||||||
'communName' => 'Supprimer un fichier des cadets',
|
|
||||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier des cadets',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_see_staff' => [
|
|
||||||
'ckey' => 'file_see_staff',
|
|
||||||
'communName' => 'Voir les fichiers des staffs',
|
|
||||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers des staffs',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_add_staff' => [
|
|
||||||
'ckey' => 'file_add_staff',
|
|
||||||
'communName' => 'Ajouter un fichier disponible aux staffs',
|
|
||||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible aux staffs\'',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_edit_staff' => [
|
|
||||||
'ckey' => 'file_edit_staff',
|
|
||||||
'communName' => 'Modifier un fichier des staffs',
|
|
||||||
'desc' => 'L\'utilisateur peut-il modifier un fichier des staffs',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_delete_staff' => [
|
|
||||||
'ckey' => 'file_delete_staff',
|
|
||||||
'communName' => 'Supprimer un fichier des staffs',
|
|
||||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier des staffs',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_see_etamas' => [
|
|
||||||
'ckey' => 'file_see_etamas',
|
|
||||||
'communName' => 'Voir les fichiers de l\'ETAMAS',
|
|
||||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers de l\'ETAMAS',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_add_etamas' => [
|
|
||||||
'ckey' => 'file_add_etamas',
|
|
||||||
'communName' => 'Ajouter un fichier disponible a l\'ETAMAS',
|
|
||||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible a l\'ETAMAS',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_edit_etamas' => [
|
|
||||||
'ckey' => 'file_edit_etamas',
|
|
||||||
'communName' => 'Modifier un fichier de l\'ETAMAS',
|
|
||||||
'desc' => 'L\'utilisateur peut-il modifier un fichier de l\'ETAMAS',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_delete_etmas' => [
|
|
||||||
'ckey' => 'file_delete_staff',
|
|
||||||
'communName' => 'Supprimer un fichier de l\'ETAMAS',
|
|
||||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier de l\'ETAMAS',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_see_officier' => [
|
|
||||||
'ckey' => 'file_see_officier',
|
|
||||||
'communName' => 'Voir les fichiers des officiers',
|
|
||||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers des officiers',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_add_officier' => [
|
|
||||||
'ckey' => 'file_add_officier',
|
|
||||||
'communName' => 'Ajouter un fichier disponible aux officiers',
|
|
||||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible aux officiers',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_edit_officier' => [
|
|
||||||
'ckey' => 'file_edit_officier',
|
|
||||||
'communName' => 'Modifier un fichier des officiers',
|
|
||||||
'desc' => 'L\'utilisateur peut-il modifier un fichier des officiers',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
],
|
|
||||||
'file_delete_officier' => [
|
|
||||||
'ckey' => 'file_delete_staff',
|
|
||||||
'communName' => 'Supprimer un fichier des officiers',
|
|
||||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier des officiers',
|
|
||||||
'icon' => 'fa-eye',
|
|
||||||
'valeur' => 0
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
13
app/User.php
13
app/User.php
@@ -77,18 +77,7 @@ class User extends Authenticatable
|
|||||||
|
|
||||||
public function futureCourses()
|
public function futureCourses()
|
||||||
{
|
{
|
||||||
$filterCourse = collect();
|
return \App\Course::allFutureForUser($this->id);
|
||||||
foreach (\Auth::user()->courses as $course)
|
|
||||||
{
|
|
||||||
if($course->event)
|
|
||||||
{
|
|
||||||
if(date('U',strtotime($course->event->date_begin)) >= date('U'))
|
|
||||||
{
|
|
||||||
$filterCourse->push($course);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $filterCourse;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function routeNotificationForNexmo($notification)
|
public function routeNotificationForNexmo($notification)
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ class CreateCoursesTable extends Migration
|
|||||||
$table->integer('level');
|
$table->integer('level');
|
||||||
$table->string('location');
|
$table->string('location');
|
||||||
$table->text('comment');
|
$table->text('comment');
|
||||||
|
$table->text('comment_officer');
|
||||||
$table->integer('event_id');
|
$table->integer('event_id');
|
||||||
$table->string('user_id');
|
$table->string('user_id');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class CreateLessonPlansTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('lesson_plans', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->integer('user_id');
|
||||||
|
$table->string('file');
|
||||||
|
$table->integer('course_id')->nullable();
|
||||||
|
$table->text('desc')->nullable();
|
||||||
|
$table->text('comment')->nullable();
|
||||||
|
$table->boolean('approved')->default(false);
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('lesson_plans');
|
||||||
|
}
|
||||||
|
}
|
||||||
1
public/css/Chart.min.css
vendored
Normal file
1
public/css/Chart.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}
|
||||||
4
public/css/custom.css
vendored
4
public/css/custom.css
vendored
@@ -1836,4 +1836,8 @@ h2 {
|
|||||||
|
|
||||||
.no-hover:hover {
|
.no-hover:hover {
|
||||||
background-color: initial;
|
background-color: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
tfoot > tr {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 125 KiB |
BIN
public/images/sidebar.png
Normal file
BIN
public/images/sidebar.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
12
public/js/app.js
vendored
12
public/js/app.js
vendored
@@ -1,4 +1,16 @@
|
|||||||
|
extendSidebar();
|
||||||
|
|
||||||
function navigate(url)
|
function navigate(url)
|
||||||
{
|
{
|
||||||
window.location.href = window.location+'/'+url;
|
window.location.href = window.location+'/'+url;
|
||||||
|
}
|
||||||
|
|
||||||
|
function extendSidebar()
|
||||||
|
{
|
||||||
|
let foo = $('.nav-item.active');
|
||||||
|
if (foo.attr('parent'))
|
||||||
|
{
|
||||||
|
$('#'+foo.attr('parent')).collapse('show');
|
||||||
|
$('#link-'+foo.attr('parent')).addClass('active');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
7
public/js/plugins/Chart.min.js
vendored
Normal file
7
public/js/plugins/Chart.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
9
public/js/plugins/chartist.min.js
vendored
9
public/js/plugins/chartist.min.js
vendored
File diff suppressed because one or more lines are too long
45
public/js/plugins/course.js
vendored
Normal file
45
public/js/plugins/course.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
$('.richeditor').trumbowyg({
|
||||||
|
lang: 'fr',
|
||||||
|
btns: [
|
||||||
|
['viewHTML'],
|
||||||
|
['emoji'],
|
||||||
|
['undo', 'redo'], // Only supported in Blink browsers
|
||||||
|
['strong', 'em', 'del'],
|
||||||
|
['superscript', 'subscript'],
|
||||||
|
['fontfamily'],
|
||||||
|
['fontsize'],
|
||||||
|
['foreColor', 'backColor'],
|
||||||
|
['link'],
|
||||||
|
['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
|
||||||
|
['unorderedList', 'orderedList'],
|
||||||
|
['horizontalRule'],
|
||||||
|
['removeformat'],
|
||||||
|
['fullscreen']
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
function switchPlanStatus(id)
|
||||||
|
{
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: '/api/course/'+id+'/plan/validate?api_token='+api_token,
|
||||||
|
success: function (data) {
|
||||||
|
if (data == '1')
|
||||||
|
{
|
||||||
|
showNotification('success','Le plan de cours est maintenant vérifié','top', 'center');
|
||||||
|
$("[name='isPlanCheck']").prop( "checked", true );
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
showNotification('warning','Le plan de cours n\'est maintenant plus vérifié','top', 'center');
|
||||||
|
$("[name='isPlanCheck']").prop( "checked", false );
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
showNotification('error','Erreur impossible de changer le status du plan de cours','top', 'center');
|
||||||
|
$("[name='isPlanCheck']").prop( "checked", false );
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
105
public/js/plugins/drive-explorer.js
vendored
105
public/js/plugins/drive-explorer.js
vendored
@@ -4,8 +4,13 @@ var currentFolder = '';
|
|||||||
var folderGoBack = [];
|
var folderGoBack = [];
|
||||||
var permissionModalHtml = null;
|
var permissionModalHtml = null;
|
||||||
var progressBar = 0;
|
var progressBar = 0;
|
||||||
function init(folder)
|
var originalFolder;
|
||||||
|
var mode = '';
|
||||||
|
function init(folder,pmode = '')
|
||||||
{
|
{
|
||||||
|
mode = pmode;
|
||||||
|
console.log(mode);
|
||||||
|
originalFolder = folder;
|
||||||
loadFolder(folder);
|
loadFolder(folder);
|
||||||
loadHistory();
|
loadHistory();
|
||||||
}
|
}
|
||||||
@@ -28,7 +33,17 @@ function loadHistory() {
|
|||||||
updateProgressBar(progressBar+10);
|
updateProgressBar(progressBar+10);
|
||||||
if(!currentFolder == '' || !currentFolder == 'root')
|
if(!currentFolder == '' || !currentFolder == 'root')
|
||||||
{
|
{
|
||||||
btnBack.removeAttr('disabled');
|
if (mode == 'folder')
|
||||||
|
{
|
||||||
|
if (currentFolder != originalFolder)
|
||||||
|
{
|
||||||
|
btnBack.removeAttr('disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
btnBack.removeAttr('disabled');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
updateProgressBar(progressBar+5);
|
updateProgressBar(progressBar+5);
|
||||||
},
|
},
|
||||||
@@ -50,11 +65,13 @@ function loadFolder(folder) {
|
|||||||
type: 'GET',
|
type: 'GET',
|
||||||
url: '/api/drive/folders/'+folder+'?api_token=' + api_token,
|
url: '/api/drive/folders/'+folder+'?api_token=' + api_token,
|
||||||
success: function (template) {
|
success: function (template) {
|
||||||
// Load Explorer Content
|
|
||||||
updateProgressBar(progressBar+30);
|
updateProgressBar(progressBar+30);
|
||||||
$(".drive-explorer").html(template);
|
$(".drive-explorer").html(template);
|
||||||
currentFolder = folder;
|
currentFolder = folder;
|
||||||
window.history.pushState("object or string", "Page Title", "/admin/drive/"+folder);
|
if (mode != 'folder')
|
||||||
|
{
|
||||||
|
window.history.pushState("object or string", "Page Title", "/admin/drive/"+folder);
|
||||||
|
}
|
||||||
updateProgressBar(progressBar+5);
|
updateProgressBar(progressBar+5);
|
||||||
hideLoader();
|
hideLoader();
|
||||||
|
|
||||||
@@ -68,7 +85,21 @@ function loadFolder(folder) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$('#backbtn').removeAttr('disabled');
|
if (mode == 'folder')
|
||||||
|
{
|
||||||
|
if (currentFolder != originalFolder)
|
||||||
|
{
|
||||||
|
$('#backbtn').removeAttr('disabled');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#backbtn').prop('disabled','true');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#backbtn').removeAttr('disabled');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
updateProgressBar(progressBar+10);
|
updateProgressBar(progressBar+10);
|
||||||
@@ -151,13 +182,16 @@ function editPermission(folder,subject,id)
|
|||||||
$('#permissionModal').on('hidden.bs.modal', function (e) {
|
$('#permissionModal').on('hidden.bs.modal', function (e) {
|
||||||
$('#permissionModalHtml').html(permissionModalHtml);
|
$('#permissionModalHtml').html(permissionModalHtml);
|
||||||
});
|
});
|
||||||
|
let csrf = $('input[name="_token"]').val();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
url: '/api/drive/'+folder+'/permission/'+subject+'/'+id+'?api_token=' + api_token,
|
url: '/api/drive/'+folder+'/permission/'+subject+'/'+id+'?api_token=' + api_token,
|
||||||
success: function (modal) {
|
success: function (modal) {
|
||||||
permissionModalHtml = $('#permissionModalHtml').html();
|
permissionModalHtml = $('#permissionModalHtml').html();
|
||||||
$('#permissionModalHtml').html(modal);
|
$('#permissionModalHtml').html(modal);
|
||||||
|
|
||||||
|
$('#csrf').val(csrf);
|
||||||
|
|
||||||
$('#permissionModal').modal('show');
|
$('#permissionModal').modal('show');
|
||||||
},
|
},
|
||||||
error: function () {
|
error: function () {
|
||||||
@@ -166,6 +200,51 @@ function editPermission(folder,subject,id)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addPermission(folder,subject)
|
||||||
|
{
|
||||||
|
$('#permissionModal').on('hidden.bs.modal', function (e) {
|
||||||
|
$('#permissionModalHtml').html(permissionModalHtml);
|
||||||
|
});
|
||||||
|
let csrf = $('input[name="_token"]').val();
|
||||||
|
$.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: '/api/drive/'+folder+'/addpermission/'+subject+'/?api_token=' + api_token,
|
||||||
|
success: function (modal) {
|
||||||
|
permissionModalHtml = $('#permissionModalHtml').html();
|
||||||
|
$('#permissionModalHtml').html(modal);
|
||||||
|
|
||||||
|
$('#csrf').val(csrf);
|
||||||
|
|
||||||
|
$('#permissionModal').modal('show');
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
showNotification('error', 'Impossible de charger le dossier '+folder, 'top', 'center')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function deletePermission(folder,subject,id)
|
||||||
|
{
|
||||||
|
$('#permissionModal').on('hidden.bs.modal', function (e) {
|
||||||
|
$('#permissionModalHtml').html(permissionModalHtml);
|
||||||
|
});
|
||||||
|
swal({
|
||||||
|
title: 'Êtes vous certain de vouloir supprimer les permissions ?',
|
||||||
|
text: "Vous ne pourrez pas annuler cette action",
|
||||||
|
type: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Oui',
|
||||||
|
cancelButtonText: 'Non'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.value) {
|
||||||
|
window.location.href = '/admin/drive/'+folder+'/deletepermission/'+subject+'/'+id;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function updateProgressBar(value)
|
function updateProgressBar(value)
|
||||||
{
|
{
|
||||||
progressBar = value;
|
progressBar = value;
|
||||||
@@ -180,3 +259,17 @@ function updateProgressBar(value)
|
|||||||
$('.progress').fadeIn(650);
|
$('.progress').fadeIn(650);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateHeader(perm)
|
||||||
|
{
|
||||||
|
if (perm == 1)
|
||||||
|
{
|
||||||
|
$('#createDropdown').removeClass('d-none');
|
||||||
|
$('#uploadDropdown').removeClass('d-none');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#createDropdown').addClass('d-none');
|
||||||
|
$('#uploadDropdown').addClass('d-none');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
4
resources/custom.css
vendored
4
resources/custom.css
vendored
@@ -1836,4 +1836,8 @@ h2 {
|
|||||||
|
|
||||||
.no-hover:hover {
|
.no-hover:hover {
|
||||||
background-color: initial;
|
background-color: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
tfoot > tr {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
@@ -14,14 +14,14 @@
|
|||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Nom</label>
|
<label>Nom</label>
|
||||||
<input class="form-control" type="text" name="name" value="{{$rank->name}}">
|
<input class="form-control" type="text" name="name" value="{{$rank->name}}" required>
|
||||||
<small class="form-text text-muted">Nom du grade</small>
|
<small class="form-text text-muted">Nom du grade</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Description</label>
|
<label>Description</label>
|
||||||
<textarea id="desc" name="desc">{!! $rank->desc !!}</textarea>
|
<textarea id="desc" name="desc" required>{!! $rank->desc !!}</textarea>
|
||||||
<small class="form-text text-muted">Description du grade</small>
|
<small class="form-text text-muted">Description du grade</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,35 +33,31 @@
|
|||||||
</p>
|
</p>
|
||||||
<div id="accordion" role="tablist">
|
<div id="accordion" role="tablist">
|
||||||
@foreach(\App\Permission::allToArray() as $key => $cat)
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
<div class="card card-collapse">
|
<div class="mb-4">
|
||||||
<div class="card-header" role="tab" id="headingOne">
|
<h3 class="text-capitalize">{{$key}}</h3>
|
||||||
<h5 class="mb-0">
|
<div class="row">
|
||||||
<a class="text-capitalize" data-toggle="collapse" href="#coll-{{$key}}" @if ($loop->first) aria-expanded="true" @endif aria-controls="collapseOne">
|
@foreach($cat as $r)
|
||||||
{{$key}}
|
<div class="col-10">
|
||||||
<i class="material-icons">keyboard_arrow_down</i>
|
<input class="d-none" type="text" id="{{$r['ckey']}}"
|
||||||
</a>
|
name="{{$r['ckey']}}" value="{{$rank->p($r['ckey'])}}">
|
||||||
</h5>
|
<p>{{$r['communName']}}<br>
|
||||||
</div>
|
<small>{{$r['desc']}}</small>
|
||||||
|
</p>
|
||||||
<div id="coll-{{$key}}" class="collapse @if ($loop->first) show @endif" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row">
|
|
||||||
@foreach($cat as $r)
|
|
||||||
<div class="col text-center">
|
|
||||||
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}" value="{{$rank->p($r['ckey'])}}">
|
|
||||||
<h5>{{$r['communName']}}</h5>
|
|
||||||
<div class="btn-group">
|
|
||||||
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon @if($rank->p($r['ckey']) != -1) btn-outline-danger @else btn-danger @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fas fa-times"></i></button>
|
|
||||||
<!--<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon @if($rank->p($r['ckey']) == 0) btn-warning @else btn-outline-warning @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fa fa-slash"></i></button>-->
|
|
||||||
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon @if($rank->p($r['ckey']) != 1) btn-outline-success @else btn-success @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fa fa-plus"></i></button>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
<small>{{$r['desc']}}</small>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-2">
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" id="{{$r['ckey']}}-close"
|
||||||
|
class="btn btn-just-icon @if($rank->p($r['ckey']) != -1) btn-outline-danger @else btn-danger @endif"
|
||||||
|
onclick="switchPermissionSwitch('{{$r['ckey']}}','close')">
|
||||||
|
<i class="fas fa-times"></i></button>
|
||||||
|
<button type="button" id="{{$r['ckey']}}-plus"
|
||||||
|
class="btn btn-just-icon @if($rank->p($r['ckey']) != 1) btn-outline-success @else btn-success @endif"
|
||||||
|
onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')">
|
||||||
|
<i class="fa fa-plus"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|||||||
@@ -1,100 +1,150 @@
|
|||||||
@extends('layouts.admin.main')
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="col-md-12">
|
<div class="col-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header card-header-primary">
|
||||||
Configuration Horaire d'instruction
|
<h4 class="card-title">Configuration de l'année d'instruction</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form method="POST" action="/admin/config/schedule/edit">
|
<div class="content">
|
||||||
@csrf
|
<form method="post">
|
||||||
<h5 class="mb-4">Configuration des périodes</h5>
|
@method('PATCH')
|
||||||
<div class="row form-group">
|
@csrf
|
||||||
<div class="col-md-6">
|
<div class="row">
|
||||||
<label for="">Nombre de période</label>
|
<div class="col-12">
|
||||||
<input type="number"
|
<h5>Configuration de l'année d'instruction</h5>
|
||||||
class="form-control" name="admin_periode_nb" id="admin_periode_nb" aria-describedby="helpId" placeholder="" value="{{\App\Config::getData('admin_periode_nb')}}">
|
|
||||||
<small id="helpId" class="form-text text-muted">Nombre de période dans une soirée d'instruction régulière</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="accordion" id="config-periode">
|
|
||||||
@for ($i = 1; $i <= \App\Config::getData('admin_periode_nb'); $i++)
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="config-periode">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#p{{$i}}" aria-controls="collapseOne">
|
|
||||||
Configuration période {{$i}}
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
<div id="p{{$i}}" class="collapse" aria-labelledby="config-periode" data-parent="#config-periode">
|
<div class="form-group">
|
||||||
<div class="card-body">
|
<label class="label-control">Date de début de l'année d'instruction</label>
|
||||||
<div class="row form-group">
|
<input name="instruction_year_begin" type="text" class="form-control datetimepicker"/>
|
||||||
<div class="col-md-3">
|
</div>
|
||||||
<label for="">Heure de début</label>
|
</div>
|
||||||
<input type="time" class="form-control" name="admin_periode_begin_{{$i}}" id="admin_periode_begin_{{$i}}" value="{{\App\Config::all()->where('name','admin_periode_begin')->first()->data[$i]}}">
|
<div class="col-md-6">
|
||||||
<small id="helpId" class="form-text text-muted">Heure de début de la période dans une soirée d'instruction régulière</small>
|
<div class="form-group">
|
||||||
|
<label class="label-control">Date de fin de l'année d'instruction</label>
|
||||||
|
<input name="instruction_year_end" type="text" class="form-control datetimepicker" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 text-right">
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Type d'évènement</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
@foreach($events_type as $event_type)
|
||||||
|
<div class="col-md-6 col-lg-4">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h4 class="card-title">{{$event_type->name}} <span class="float-right"><i class="{{$event_type->calendar_icon}} fa-2x" style="color: {{$event_type->calendar_color}}"></i></span> </h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<p>De <b>{{$event_type->begin_time}}</b> à <b>{{$event_type->end_time}}</b> - <b>{{$event_type->location}}</b></p>
|
||||||
|
<div class="d-flex m-2">
|
||||||
|
@if($event_type->is_mandatory)
|
||||||
|
<i class="fas fa-check-circle fa-2x text-success"></i>
|
||||||
|
<p class="my-auto ml-3">Obligatoire</p>
|
||||||
|
@else
|
||||||
|
<i class="fas fa-times-circle fa-2x text-danger"></i>
|
||||||
|
<p class="my-auto ml-3">N'est pas obligatoire</p>
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="d-flex m-2">
|
||||||
<label for="">Heure de fin</label>
|
@if($event_type->use_weekly_msg)
|
||||||
<input type="time" class="form-control" name="admin_periode_end_{{$i}}" id="admin_periode_end_{{$i}}" value="{{\App\Config::all()->where('name','admin_periode_end')->first()->data[$i]}}">
|
<i class="fas fa-check-circle fa-2x text-success"></i>
|
||||||
<small id="helpId" class="form-text text-muted">Heure de fin de la période dans une soirée d'instruction régulière</small>
|
<p class="my-auto ml-3">Utilise les messages de la semaine</p>
|
||||||
|
@else
|
||||||
|
<i class="fas fa-times-circle fa-2x text-danger"></i>
|
||||||
|
<p class="my-auto ml-3">N'utilise pas les messages de la semaine</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="d-flex m-2">
|
||||||
|
@if($event_type->use_schedule)
|
||||||
|
<i class="fas fa-check-circle fa-2x text-success"></i>
|
||||||
|
<p class="my-auto ml-3">Utilise un horaire</p>
|
||||||
|
@else
|
||||||
|
<i class="fas fa-times-circle fa-2x text-danger"></i>
|
||||||
|
<p class="my-auto ml-3">N'utilise pas un horaire</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{!! $event_type->admin_desc !!}
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-8">
|
||||||
|
<a href="/admin/config/instruction/event_type/{{$event_type->id}}" class="btn btn-primary">
|
||||||
|
Modifier
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 text-right">
|
||||||
|
@if($event_type->id != 1)
|
||||||
|
<button class="btn btn-danger btn-just-icon">
|
||||||
|
<i class="fas fa-trash-alt"></i>
|
||||||
|
</button>
|
||||||
|
@else
|
||||||
|
<button class="btn btn-danger btn-just-icon" disabled>
|
||||||
|
<i class="fas fa-trash-alt"></i>
|
||||||
|
</button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
@endforeach
|
||||||
@endfor
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12 p-2">
|
|
||||||
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
</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>Configuration Horaire d'instruction</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/Horaire d'instruction</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('custom_scripts')
|
@section('custom_scripts')
|
||||||
<script>
|
<script>
|
||||||
function saveChange(pPerm) {
|
let begin = moment('{{\App\Config::getData('instruction_year_begin')}}');
|
||||||
(function($) {
|
let end = moment('{{\App\Config::getData('instruction_year_end')}}');
|
||||||
var myswitch = document.getElementById(pPerm);
|
$('input[name="instruction_year_begin"]').datetimepicker({
|
||||||
$.post('/api/config/general/save?api_token='+api_token, { value: myswitch.checked,perm: pPerm } , function(data) {
|
icons: {
|
||||||
swal({
|
time: "fa fa-clock-o",
|
||||||
title: 'Modification enregistré !',
|
date: "fa fa-calendar",
|
||||||
type: 'success',
|
up: "fa fa-chevron-up",
|
||||||
}).then((result) => {
|
down: "fa fa-chevron-down",
|
||||||
if (result.value) {
|
previous: 'fa fa-chevron-left',
|
||||||
location.reload();
|
next: 'fa fa-chevron-right',
|
||||||
}
|
today: 'fa fa-screenshot',
|
||||||
})
|
clear: 'fa fa-trash',
|
||||||
});
|
close: 'fa fa-remove'
|
||||||
})(jQuery);
|
},
|
||||||
}
|
date: new Date(begin)
|
||||||
</script>
|
});
|
||||||
@endsection
|
$('input[name="instruction_year_end"]').datetimepicker({
|
||||||
|
icons: {
|
||||||
|
time: "fa fa-clock-o",
|
||||||
|
date: "fa fa-calendar",
|
||||||
|
up: "fa fa-chevron-up",
|
||||||
|
down: "fa fa-chevron-down",
|
||||||
|
previous: 'fa fa-chevron-left',
|
||||||
|
next: 'fa fa-chevron-right',
|
||||||
|
today: 'fa fa-screenshot',
|
||||||
|
clear: 'fa fa-trash',
|
||||||
|
close: 'fa fa-remove'
|
||||||
|
},
|
||||||
|
date: new Date(end)
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
135
resources/views/admin/course/index.blade.php
Normal file
135
resources/views/admin/course/index.blade.php
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Liste des cours</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 mb-4">
|
||||||
|
<p>Liste des cours dans l'horaire</p>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<a href="/admin/course"
|
||||||
|
class="btn btn-block @if($mode == 'future')btn-primary active @else btn-outline-primary @endif">Cours
|
||||||
|
future</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<a href="/admin/course?all=true"
|
||||||
|
class="btn btn-block @if($mode == 'all')btn-primary active @else btn-outline-primary @endif">Tous
|
||||||
|
les cours</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<label class="mb-0">Filtrer les niveaux</label>
|
||||||
|
<select id="slevel" class="form-control mt-0">
|
||||||
|
<option value="" selected>Ne pas filtrer</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<label class="mb-0">Filtrer les périodes</label>
|
||||||
|
<select id="speriode" class="form-control">
|
||||||
|
<option value="" selected>Ne pas filtrer</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table table-striped table-no-bordered table-hover dataTable dtr-inline" id="table"
|
||||||
|
style="width:100%">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>OCOM</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th>Instructeur</th>
|
||||||
|
<th>Date</th>
|
||||||
|
<th class="text-center">Niveau</th>
|
||||||
|
<th class="text-center">Période</th>
|
||||||
|
<th style="width: 8rem">Plan de cours</th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($courses as $course)
|
||||||
|
<tr class="cursor">
|
||||||
|
<td>{{$course->ocom}}</td>
|
||||||
|
<td>{{$course->name}}</td>
|
||||||
|
<td>{{$course->instructor()}}</td>
|
||||||
|
<td>{{$course->event->date_begin}}</td>
|
||||||
|
<td class="text-center">{{$course->level}}</td>
|
||||||
|
<td class="text-center">{{$course->periode}}</td>
|
||||||
|
<th class="text-center">
|
||||||
|
@if($course->lessonPlan)
|
||||||
|
@if($course->lessonPlan->approved == 1)
|
||||||
|
<i class="fas fa-check-circle text-success fa-2x" data-toggle="tooltip"
|
||||||
|
data-placement="top" title="Plan de cours remis et vérifié"></i>
|
||||||
|
@else
|
||||||
|
<i class="fas fa-exclamation-circle text-warning fa-2x"
|
||||||
|
data-toggle="tooltip" data-placement="top"
|
||||||
|
title="Plan de cours remis mais non vérifié"></i>
|
||||||
|
@endif
|
||||||
|
@else
|
||||||
|
<i class="fas fa-times-circle text-danger fa-2x" data-toggle="tooltip"
|
||||||
|
data-placement="top" title="Plan de cours non remis"></i>
|
||||||
|
@endif
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<a href="/admin/course/{{$course->id}}"
|
||||||
|
class="btn btn-primary btn-fab btn-fab-mini btn-round">
|
||||||
|
<i class="material-icons">add</i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('breadcrumb')
|
||||||
|
<a class="navbar-brand">Base de données des cours</a>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
$('.tooltip').tooltip('enable')
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('#table').DataTable({
|
||||||
|
"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
|
||||||
|
"ordering" : true,
|
||||||
|
"order": [[3, "asc"]],
|
||||||
|
initComplete: function () {
|
||||||
|
this.api().columns().every(function () {
|
||||||
|
if (this[0] == 4 || this[0] == 5) {
|
||||||
|
var select = '';
|
||||||
|
if (this[0] == 4) {
|
||||||
|
select = $('#slevel');
|
||||||
|
} else if(this[0] == 5) {
|
||||||
|
select = $('#speriode');
|
||||||
|
}
|
||||||
|
var column = this;
|
||||||
|
select.on('change', function () {
|
||||||
|
var val = $.fn.dataTable.util.escapeRegex(
|
||||||
|
$(this).val()
|
||||||
|
);
|
||||||
|
|
||||||
|
column
|
||||||
|
.search(val ? '^' + val + '$' : '', true, false)
|
||||||
|
.draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
column.data().unique().sort().each(function (d, j) {
|
||||||
|
select.append('<option value="' + d + '">' + d + '</option>')
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
315
resources/views/admin/course/show.blade.php
Normal file
315
resources/views/admin/course/show.blade.php
Normal file
@@ -0,0 +1,315 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">{{$course->name}} ({{$course->event->date_begin}})</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label>Nom</label>
|
||||||
|
<p>{{$course->name}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label>Instructeur</label>
|
||||||
|
<p>{{$username}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-1">
|
||||||
|
<label>OCOM</label>
|
||||||
|
<p>{{$course->ocom}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label>Date</label>
|
||||||
|
<p>{{$course->event->date_begin}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-1 col-sm-6 text-center">
|
||||||
|
<label>Période</label>
|
||||||
|
<p>{{$course->periode}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-1 col-xs-6 text-center">
|
||||||
|
<label>Niveau</label>
|
||||||
|
<p>{{$course->level}}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label>Commentaire de l'instructeur</label>
|
||||||
|
<hr class="m-0">
|
||||||
|
@if($course->comment == null)
|
||||||
|
<p class="text-center">Aucun commentaire</p>
|
||||||
|
@else
|
||||||
|
<div>{!! $course->comment !!}</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label>Commentaire de l'officier</label>
|
||||||
|
<hr class="m-0">
|
||||||
|
@if($course->comment_officer == null)
|
||||||
|
<p class="text-center">Aucun commentaire</p>
|
||||||
|
@else
|
||||||
|
<div>{!! $course->comment_officer !!}</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<button class="btn btn-outline-primary btn-block mt-4 @if(\Auth::user()->id != $course->user_id) d-none @endif" data-toggle="modal" data-target="#editComment" @if(\Auth::user()->id != $course->user_id) disabled @endif>Modifier le commentaire</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
@if(\Auth::user()->p('course_comment_officer') == 1)
|
||||||
|
<button class="btn btn-outline-primary btn-block mt-4" data-toggle="modal" data-target="#editCommentOfficer">Modifier le commentaire</button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 mt-5">
|
||||||
|
<label>Plan de cours</label>
|
||||||
|
@if($course->lessonPlan == null)
|
||||||
|
<div class="alert alert-warning" role="alert">
|
||||||
|
Aucun plan de cours remis
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label>Fichier</label>
|
||||||
|
<p>{{$course->lessonPlan->file}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label>Remise original</label>
|
||||||
|
<p>{{$course->lessonPlan->created_at}}</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label>Dernière modification</label>
|
||||||
|
<p>{{$course->lessonPlan->updated_at}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-1 text-center">
|
||||||
|
<label>Vérifié</label>
|
||||||
|
@if(\Auth::user()->p('course_validate_plan') == 1)
|
||||||
|
<div class="togglebutton">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" name="isPlanCheck" onchange="switchPlanStatus({{$course->id}})" @if($course->lessonPlan->approved == 1) checked @endif >
|
||||||
|
<span class="toggle"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
@if($course->lessonPlan->approved == 1)
|
||||||
|
<p><i class="fas fa-check-circle fa-2x text-success"></i></p>
|
||||||
|
@else
|
||||||
|
<p><i class="fas fa-times-circle fa-2x text-danger"></i></p>
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-md-1 text-center">
|
||||||
|
<label>Télécharger</label>
|
||||||
|
<p>
|
||||||
|
<a target="_blank" href="/file/get?d={{urlencode($lessonPlanDir)}}&f={{urlencode($course->lessonPlan->file)}}" class="btn btn-primary btn-fab btn-fab-mini btn-round m-0">
|
||||||
|
<i class="material-icons">cloud_download</i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<div id="accordion1" role="tablist">
|
||||||
|
<div class="card card-collapse">
|
||||||
|
<div class="card-header pt-0" role="tab" id="headingOne">
|
||||||
|
<h5 class="mb-0">
|
||||||
|
<a data-toggle="collapse" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
|
||||||
|
Commentaire
|
||||||
|
<i class="material-icons">keyboard_arrow_down</i>
|
||||||
|
</a>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="collapseTwo" class="collapse" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion1">
|
||||||
|
<div class="card-body px-2">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label>Commentaire de l'instructeur</label>
|
||||||
|
@if($course->lessonPlan->desc == null)
|
||||||
|
<p class="text-center">Aucun commentaire</p>
|
||||||
|
@else
|
||||||
|
<div>{!! $course->lessonPlan->desc !!}</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label>Commentaire de l'officier</label>
|
||||||
|
@if($course->lessonPlan->comment == null)
|
||||||
|
<p class="text-center">Aucun commentaire</p>
|
||||||
|
@else
|
||||||
|
<div>{!! $course->lessonPlan->comment !!}</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<button class="btn btn-outline-primary btn-block mt-4 @if(\Auth::user()->id != $course->user_id) d-none @endif" data-toggle="modal" data-target="#editCommentPlan">Modifier le commentaire</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
@if(\Auth::user()->p('course_comment_plan_officer') == 1)
|
||||||
|
<button class="btn btn-outline-primary btn-block mt-4" data-toggle="modal" data-target="#editCommentOfficerPlan">Modifier le commentaire</button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
<button class="btn btn-outline-primary btn-block mt-4 @if(\Auth::user()->id != $course->user_id) d-none @endif" data-toggle="modal" data-target="#editLessonPlan">Remettre un plan de cours</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal fade" id="editComment" tabindex="-1" role="dialog" aria-labelledby="editCommentLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<form action="/admin/course/{{$course->id}}/comment" method="post">
|
||||||
|
@csrf
|
||||||
|
@method('patch')
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="editCommentLabel">Modifier les commentaires de l'instructeur</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="comment" class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6" required>
|
||||||
|
{!! $course->comment !!}
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal fade" id="editCommentOfficer" tabindex="-1" role="dialog" aria-labelledby="editCommentOfficerLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<form action="/admin/course/{{$course->id}}/commentOfficer" method="post">
|
||||||
|
@csrf
|
||||||
|
@method('patch')
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="editCommentOfficerLabel">Modifier les commentaires de l'officier</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="comment_officer" class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6" required>
|
||||||
|
{!! $course->comment_officer !!}
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal fade" id="editCommentPlan" tabindex="-1" role="dialog" aria-labelledby="editCommentLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<form action="/admin/course/{{$course->id}}/plan/comment" method="post">
|
||||||
|
@csrf
|
||||||
|
@method('patch')
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="editCommentLabel">Modifier les commentaires de l'instructeur pour le plan de cours</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="comment" class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6" required>
|
||||||
|
@if($course->lessonPlan)
|
||||||
|
{!! $course->lessonPlan->desc !!}
|
||||||
|
@endif
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal fade" id="editCommentOfficerPlan" tabindex="-1" role="dialog" aria-labelledby="editCommentOfficerLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<form action="/admin/course/{{$course->id}}/plan/commentOfficer" method="post">
|
||||||
|
@csrf
|
||||||
|
@method('patch')
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="editCommentOfficerLabel">Modifier les commentaires de l'officier pour le plan de cours</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="comment_officer" class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6" required>
|
||||||
|
@if($course->lessonPlan)
|
||||||
|
{!! $course->lessonPlan->comment !!}
|
||||||
|
@endif
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal fade" id="editLessonPlan" tabindex="-1" role="dialog" aria-labelledby="editLessonPlanLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<form action="/admin/course/{{$course->id}}/lessonPlan" method="post" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="editLessonPlanLabel">Remettre un plan de cours</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="form-group bmd-form-group is-filled">
|
||||||
|
<label class="label-control bmd-label-static">Choisir le plan de cours</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 cursor" data-dismiss="fileinput">Remove</span><span class="input-group-text btn-file"><span class="fileinput-new cursor">Select file</span><span class="fileinput-exists cursor">Change</span><input type="file" name="file" required></span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||||
|
<button type="submit" class="btn btn-primary">Remettre</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script src="/js/plugins/course.js"></script>
|
||||||
|
@endsection
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
<div class="col-md-12 p-0">
|
<div class="col-md-12 p-0">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header card-header-primary">
|
<div class="card-header card-header-primary">
|
||||||
<h4 class="card-title"> Cours à venir</h4>
|
<h4 class="card-title"> Mes cours à venir</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -15,14 +15,31 @@
|
|||||||
<h4 class="m-4">Aucun cours à venir</h4>
|
<h4 class="m-4">Aucun cours à venir</h4>
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
@foreach (\Auth::user()->futureCourses() as $course)
|
@foreach ($userClasse as $course)
|
||||||
@if($course->event != null)
|
@if($course->event != null)
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<div class="card">
|
<div class="card my-3">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h4><strong>{{$course->ocom}} - {{$course->name}}</strong></h4>
|
<h4>
|
||||||
<p class="float-left">{{date('Y-m-d',strtotime($course->event->date_begin))}}</p>
|
<strong>{{$course->ocom}} - {{$course->name}}</strong>
|
||||||
<p class="float-right">Période {{$course->periode}}, Niveau {{$course->level}}</p>
|
@if($course->lessonPlan)
|
||||||
|
@if($course->lessonPlan->approved == 1)
|
||||||
|
<span class="float-right"><i class="fas fa-check-circle text-success" data-toggle="tooltip" data-placement="top" title="Plan de cours remis et vérifié"></i></span>
|
||||||
|
@else
|
||||||
|
<span class="float-right"><i class="fas fa-exclamation-circle text-warning" data-toggle="tooltip" data-placement="top" title="Plan de cours remis mais non vérifié"></i></span>
|
||||||
|
@endif
|
||||||
|
@else
|
||||||
|
<span class="float-right"><i class="fas fa-times-circle text-danger" data-toggle="tooltip" data-placement="top" title="Plan de cours non remis"></i></span>
|
||||||
|
@endif
|
||||||
|
</h4>
|
||||||
|
<div class="row">
|
||||||
|
<p class="col-6 text-left mb-1">{{date('Y-m-d',strtotime($course->event->date_begin))}}</p>
|
||||||
|
<p class="col-6 text-right mb-1">Période {{$course->periode}}, Niveau {{$course->level}}</p>
|
||||||
|
<div class="col-12 text-right">
|
||||||
|
<hr class="my-1">
|
||||||
|
<a href="/admin/course/{{$course->id}}" class="my-1">Détail</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -30,6 +47,7 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
<a href="/admin/profil/courses" type="button" class="btn btn-primary btn-lg btn-block">Afficher tous mes cours</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,6 +103,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="card-text text-sm-center">
|
<div class="card-text text-sm-center">
|
||||||
|
<a class="btn btn-block btn-secondary" href="/admin/profil/courses">Mes cours</a>
|
||||||
<a class="btn btn-block btn-secondary" href="/admin/profil">Profil</a>
|
<a class="btn btn-block btn-secondary" href="/admin/profil">Profil</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
55
resources/views/admin/event_type/show.blade.php
Normal file
55
resources/views/admin/event_type/show.blade.php
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">{{$event_type->name}}</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<form method="post">
|
||||||
|
@method('PATCH')
|
||||||
|
@csrf
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="label-control">Nom</label>
|
||||||
|
<input type="text" class="form-control" value="{{$event_type->name}}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="label-control">Emplacement</label>
|
||||||
|
<input type="text" class="form-control" value="{{$event_type->name}}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="label-control">Date de début de l'année d'instruction</label>
|
||||||
|
<input name="begin_time" type="time" class="form-control" value="{{$event_type->begin_time}}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="label-control">Date de fin de l'année d'instruction</label>
|
||||||
|
<input name="end_time" type="time" class="form-control" value="{{$event_type->end_time}}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 text-right">
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
let begin = moment('{{$event_type->begin_time}}');
|
||||||
|
let end = moment('{{$event_type->end_time}}');
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -108,4 +108,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<small class="float-right mr-4">Dernière mise à jour {{date('r')}}</small>
|
<small class="float-right mr-4">Dernière mise à jour {{date('r')}}</small>
|
||||||
|
<script>
|
||||||
|
updateHeader('{{$permission['p']}}');
|
||||||
|
</script>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<button id="refreshbtn" type="button" onclick="refreshFolder()" class="border-0 bg-transparent ml-3 hover-spin cursor active-spin no-outline" style="margin-bottom: -10px;margin-top: -2px;font-size: 1.1rem"><i class="fas fa-sync-alt"></i></button>
|
<button id="refreshbtn" type="button" onclick="refreshFolder()" class="border-0 bg-transparent ml-3 hover-spin cursor active-spin no-outline" style="margin-bottom: -10px;margin-top: -2px;font-size: 1.1rem"><i class="fas fa-sync-alt"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4 col-sm d-flex justify-content-end offset-md-7 mt-2 mt-sm-0">
|
<div class="col-md-4 col-sm d-flex justify-content-end offset-md-7 mt-2 mt-sm-0">
|
||||||
<div class="dropdown mr-md-2">
|
<div class="dropdown mr-md-2 d-none" id="createDropdown">
|
||||||
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<i class="fas fa-plus"></i> Nouveau
|
<i class="fas fa-plus"></i> Nouveau
|
||||||
</button>
|
</button>
|
||||||
@@ -19,13 +19,12 @@
|
|||||||
<a class="dropdown-item" data-toggle="modal" data-target="#createFolderModal"><i class="fas fa-folder mr-3"></i> Dossier</a>
|
<a class="dropdown-item" data-toggle="modal" data-target="#createFolderModal"><i class="fas fa-folder mr-3"></i> Dossier</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown">
|
<div class="dropdown d-none" id="uploadDropdown">
|
||||||
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<i class="fas fa-upload"></i> Téléverser
|
<i class="fas fa-upload"></i> Téléverser
|
||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||||
<a class="dropdown-item" data-toggle="modal" data-target="#uploadFileModal"><i class="fas fa-file mr-3"></i> Fichier</a>
|
<a class="dropdown-item" data-toggle="modal" data-target="#uploadFileModal"><i class="fas fa-file mr-3"></i> Fichier</a>
|
||||||
<a class="dropdown-item" href="#"><i class="fas fa-folder mr-3"></i> Dossier</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -141,6 +140,10 @@
|
|||||||
<script src="/js/plugins/jquery.contextMenu.min.js"></script>
|
<script src="/js/plugins/jquery.contextMenu.min.js"></script>
|
||||||
<script src="/js/plugins/drive-explorer.js"></script>
|
<script src="/js/plugins/drive-explorer.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
@if(isset($mode))
|
||||||
|
init("{{$folder}}","{{$mode}}");
|
||||||
|
@else
|
||||||
init("{{$folder}}");
|
init("{{$folder}}");
|
||||||
|
@endif
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5>Permission des grades</h5>
|
<h5>Permission des grades</h5>
|
||||||
<table class="table table-striped w-100">
|
<table class="table table-striped table-responsive w-100">
|
||||||
<thead class="table-dark">
|
<thead class="table-dark">
|
||||||
<tr class="text-center">
|
<tr class="text-center">
|
||||||
<td class="text-left" style="width: 25%">Grade</td>
|
<td class="text-left" style="width: 25%">Grade</td>
|
||||||
@@ -17,9 +17,9 @@
|
|||||||
<td>Écriture</td>
|
<td>Écriture</td>
|
||||||
<td>Gestion</td>
|
<td>Gestion</td>
|
||||||
<td style="width: 6rem;">
|
<td style="width: 6rem;">
|
||||||
<a href="/admin/ocom/edit" class="btn btn-primary btn-fab btn-fab-mini btn-round m-0">
|
<button class="btn btn-primary btn-fab btn-fab-mini btn-round m-0" onclick="addPermission('{{$dir->id}}','rank')">
|
||||||
<i class="material-icons">add</i>
|
<i class="material-icons">add</i>
|
||||||
</a>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','rank','{{$key}}')">
|
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','rank','{{$key}}')">
|
||||||
<i class="material-icons">edit</i>
|
<i class="material-icons">edit</i>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-danger btn-fab btn-fab-mini btn-round">
|
<button class="btn btn-danger btn-fab btn-fab-mini btn-round" onclick="deletePermission('{{$dir->id}}','rank','{{$key}}')">
|
||||||
<i class="material-icons">delete</i>
|
<i class="material-icons">delete</i>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h5 class="mt-5">Permission des postes</h5>
|
<h5 class="mt-5">Permission des postes</h5>
|
||||||
<table class="table table-striped w-100">
|
<table class="table table-striped table-responsive w-100">
|
||||||
<thead class="table-dark">
|
<thead class="table-dark">
|
||||||
<tr class="text-center">
|
<tr class="text-center">
|
||||||
<td class="text-left" style="width: 25%">Poste</td>
|
<td class="text-left" style="width: 25%">Poste</td>
|
||||||
@@ -119,9 +119,9 @@
|
|||||||
<td>Écriture</td>
|
<td>Écriture</td>
|
||||||
<td>Gestion</td>
|
<td>Gestion</td>
|
||||||
<td style="width: 6rem;">
|
<td style="width: 6rem;">
|
||||||
<a href="/admin/ocom/edit" class="btn btn-primary btn-fab btn-fab-mini btn-round m-0">
|
<button class="btn btn-primary btn-fab btn-fab-mini btn-round m-0" onclick="addPermission('{{$dir->id}}','job')">
|
||||||
<i class="material-icons">add</i>
|
<i class="material-icons">add</i>
|
||||||
</a>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','job','{{$key}}')">
|
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','job','{{$key}}')">
|
||||||
<i class="material-icons">edit</i>
|
<i class="material-icons">edit</i>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-danger btn-fab btn-fab-mini btn-round">
|
<button class="btn btn-danger btn-fab btn-fab-mini btn-round" onclick="deletePermission('{{$dir->id}}','job','{{$key}}')">
|
||||||
<i class="material-icons">delete</i>
|
<i class="material-icons">delete</i>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h5 class="mt-5">Permission des utilisateurs</h5>
|
<h5 class="mt-5">Permission des utilisateurs</h5>
|
||||||
<table class="table table-striped w-100">
|
<table class="table table-striped table-responsive w-100">
|
||||||
<thead class="table-dark">
|
<thead class="table-dark">
|
||||||
<tr class="text-center">
|
<tr class="text-center">
|
||||||
<td class="text-left" style="width: 25%">Utilisateurs</td>
|
<td class="text-left" style="width: 25%">Utilisateurs</td>
|
||||||
@@ -180,9 +180,9 @@
|
|||||||
<td>Écriture</td>
|
<td>Écriture</td>
|
||||||
<td>Gestion</td>
|
<td>Gestion</td>
|
||||||
<td style="width: 6rem;">
|
<td style="width: 6rem;">
|
||||||
<a href="/admin/ocom/edit" class="btn btn-primary btn-fab btn-fab-mini btn-round m-0">
|
<button class="btn btn-primary btn-fab btn-fab-mini btn-round m-0" onclick="addPermission('{{$dir->id}}','user')">
|
||||||
<i class="material-icons">add</i>
|
<i class="material-icons">add</i>
|
||||||
</a>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','user','{{$key}}')">
|
<button class="btn btn-primary btn-fab btn-fab-mini btn-round" onclick="editPermission('{{$dir->id}}','user','{{$key}}')">
|
||||||
<i class="material-icons">edit</i>
|
<i class="material-icons">edit</i>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-danger btn-fab btn-fab-mini btn-round">
|
<button class="btn btn-danger btn-fab btn-fab-mini btn-round" onclick="deletePermission('{{$dir->id}}','user','{{$key}}')">
|
||||||
<i class="material-icons">delete</i>
|
<i class="material-icons">delete</i>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
@@ -235,6 +235,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@csrf
|
||||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bd-example-modal-lg">Large modal</button>
|
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bd-example-modal-lg">Large modal</button>
|
||||||
|
|
||||||
<div id="permissionModal" class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
<div id="permissionModal" class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||||
@@ -258,10 +259,6 @@
|
|||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('breadcrumb')
|
|
||||||
Fichier / Google Drive
|
|
||||||
@endsection
|
|
||||||
|
|
||||||
@section('custom_scripts')
|
@section('custom_scripts')
|
||||||
<script src="/js/plugins/jquery.ui.position.min.js"></script>
|
<script src="/js/plugins/jquery.ui.position.min.js"></script>
|
||||||
<script src="/js/plugins/jquery.contextMenu.min.js"></script>
|
<script src="/js/plugins/jquery.contextMenu.min.js"></script>
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title">Modification des permissions</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<form action="/admin/drive/{{$folder->id}}/addpermission/{{$s}}" method="post">
|
||||||
|
<input id="csrf" type="hidden" name="_token" value="">
|
||||||
|
@method('patch')
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
@if($s == 'rank')
|
||||||
|
<select class="selectpicker" name="id" data-style="btn btn-primary btn-round" title="Grade" required>
|
||||||
|
@foreach($list as $l)
|
||||||
|
<option value="{{$l->id}}">{{$l->name}}</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
@elseif($s == 'job')
|
||||||
|
<select class="selectpicker" name="id" data-style="btn btn-primary btn-round" title="Poste" required>
|
||||||
|
@foreach($list as $l)
|
||||||
|
<option value="{{$l->id}}">{{$l->name}}</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
@else
|
||||||
|
<select class="selectpicker" name="id" data-style="btn btn-primary btn-round" title="Utilisateur" required>
|
||||||
|
@foreach($list as $l)
|
||||||
|
<option value="{{$l->id}}">{{$l->fullname()}}</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="togglebutton row">
|
||||||
|
<div class="col-3">
|
||||||
|
<label>
|
||||||
|
<input name="read" type="checkbox">
|
||||||
|
<span class="toggle"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<label>Peux consulter les fichiers a l'intérieur du dossier</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="togglebutton row">
|
||||||
|
<div class="col-3">
|
||||||
|
<label>
|
||||||
|
<input name="write" type="checkbox">
|
||||||
|
<span class="toggle"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<label>Peux modifier les fichiers a l'intérieur du dossier</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<div class="togglebutton row">
|
||||||
|
<div class="col-3">
|
||||||
|
<label>
|
||||||
|
<input name="perm" type="checkbox">
|
||||||
|
<span class="toggle"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<label>Peux gérer le dossier</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$('select').selectpicker();
|
||||||
|
</script>
|
||||||
|
</form>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<form action="/admin/drive/{{$folder->id}}/permission/{{$s}}/{{$subject->id}}" method="post">
|
<form action="/admin/drive/{{$folder->id}}/permission/{{$s}}/{{$subject->id}}" method="post">
|
||||||
@csrf
|
<input id="csrf" type="hidden" name="_token" value="">
|
||||||
@method('patch')
|
@method('patch')
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<div class="togglebutton row">
|
<div class="togglebutton row">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" @if(strpos($perm,'r') !== false) checked @endif>
|
<input name="read" type="checkbox" @if(strpos($perm,'r') !== false) checked @endif>
|
||||||
<span class="toggle"></span>
|
<span class="toggle"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<div class="togglebutton row">
|
<div class="togglebutton row">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" @if(strpos($perm,'w') !== false) checked @endif>
|
<input name="write" type="checkbox" @if(strpos($perm,'w') !== false) checked @endif>
|
||||||
<span class="toggle"></span>
|
<span class="toggle"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<div class="togglebutton row">
|
<div class="togglebutton row">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" @if(strpos($perm,'p') !== false) checked @endif>
|
<input name="perm" type="checkbox" @if(strpos($perm,'p') !== false) checked @endif>
|
||||||
<span class="toggle"></span>
|
<span class="toggle"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
53
resources/views/admin/files/course-template.blade.php
Normal file
53
resources/views/admin/files/course-template.blade.php
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Plan de cours vierge et documentation <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i></a></h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content table-responsive table-full-width">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width:50%;">
|
||||||
|
Nom
|
||||||
|
</th>
|
||||||
|
<th class="text-center">
|
||||||
|
Dernière modification
|
||||||
|
</th>
|
||||||
|
<th class="text-right"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($dir as $d)
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
{{$d['name']}}
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
{{strftime('%e %b %Y',$d['timestamp'])}}
|
||||||
|
</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<a class="btn btn-primary btn-fab btn-fab-mini btn-round" target="_blank" href="/file/get?f={{urlencode($d['name'])}}&d={{$d['dirname']}}">
|
||||||
|
<i class="material-icons">cloud_download</i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('.table').DataTable();
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -3,61 +3,39 @@
|
|||||||
@section('content')
|
@section('content')
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header card-header-primary">
|
||||||
<strong class="card-title">Fichiers <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i>
|
<h4 class="card-title">Guides pédagogiques et Norme de qualification <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i></a></h4>
|
||||||
</a></strong>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="content table-responsive table-full-width">
|
<div class="content table-responsive table-full-width">
|
||||||
<p>Les fichiers si dessous sont disponible autant dans l'espace administration que dans l'espace cadet cadre.
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th style="width:85%;">Nom</th>
|
<tr>
|
||||||
<th></th>
|
<th style="width:50%;">
|
||||||
</tr></thead>
|
Nom
|
||||||
|
</th>
|
||||||
|
<th class="text-center">
|
||||||
|
Dernière modification
|
||||||
|
</th>
|
||||||
|
<th class="text-right"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
@foreach($dir as $d)
|
||||||
<td><strong>Niveau 1</strong><hr></td>
|
<tr>
|
||||||
</tr>
|
<td>
|
||||||
<tr>
|
{{$d['name']}}
|
||||||
<td>Guide Pédagogique</td>
|
</td>
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GP_Niv_1')}}">Télécharger</a></td>
|
<td class="text-center">
|
||||||
</tr>
|
{{strftime('%e %b %Y',$d['timestamp'])}}
|
||||||
<tr>
|
</td>
|
||||||
<td>Guide de Qualification</td>
|
<td class="text-right">
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GQ_Niv_1')}}">Télécharger</a></td>
|
<a class="btn btn-primary btn-fab btn-fab-mini btn-round" target="_blank" href="/file/get?f={{urlencode($d['name'])}}&d={{$d['dirname']}}">
|
||||||
</tr>
|
<i class="material-icons">cloud_download</i>
|
||||||
<tr>
|
</a>
|
||||||
<td><strong>Niveau 2</strong><hr></td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
@endforeach
|
||||||
<td>Guide Pédagogique</td>
|
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GP_Niv_2')}}">Télécharger</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Guide de Qualification</td>
|
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GQ_Niv_2')}}">Télécharger</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><strong>Niveau 3</strong><hr></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Guide Pédagogique</td>
|
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GP_Niv_3')}}">Télécharger</a></td> </tr>
|
|
||||||
<tr>
|
|
||||||
<td>Guide de Qualification</td>
|
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GQ_Niv_3')}}">Télécharger</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><strong>Niveau 4</strong><hr></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Guide Pédagogique</td>
|
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GP_Niv_4')}}">Télécharger</a></td> </tr>
|
|
||||||
<tr>
|
|
||||||
<td>Guide de Qualification</td>
|
|
||||||
<td><a class="btn btn-primary" href="{{ \App\Config::getData('file_GQ_Niv_4')}}">Télécharger</a></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -66,10 +44,10 @@
|
|||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('breadcrumb')
|
|
||||||
Fichier / Guide Pédagogique
|
|
||||||
@endsection
|
|
||||||
|
|
||||||
@section('custom_scripts')
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('.table').DataTable();
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
<th>Date</th>
|
<th>Date</th>
|
||||||
<th>Instructeur</th>
|
<th>Instructeur</th>
|
||||||
<th>Niveau</th>
|
<th>Niveau</th>
|
||||||
|
<th style="width: 8rem">Plan de cours</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -67,6 +68,23 @@
|
|||||||
<td>{{$course->event->date_begin}}</td>
|
<td>{{$course->event->date_begin}}</td>
|
||||||
<td>{{$course->instructor()}}</td>
|
<td>{{$course->instructor()}}</td>
|
||||||
<td>{{$course->level}}</td>
|
<td>{{$course->level}}</td>
|
||||||
|
<td class="text-center">
|
||||||
|
@if($course->lessonPlan)
|
||||||
|
<a href="/file/get?d={{urlencode(\App\GoogleDriveFile::findByPath('.Systeme/.Fichier/.PlanDeCours')->id)}}&f={{urlencode($course->lessonPlan->file)}}">
|
||||||
|
@if($course->lessonPlan->approved == 1)
|
||||||
|
<i class="fas fa-check-circle text-success fa-2x" data-toggle="tooltip"
|
||||||
|
data-placement="top" title="Plan de cours remis et vérifié"></i>
|
||||||
|
@else
|
||||||
|
<i class="fas fa-exclamation-circle text-warning fa-2x"
|
||||||
|
data-toggle="tooltip" data-placement="top"
|
||||||
|
title="Plan de cours remis mais non vérifié"></i>
|
||||||
|
@endif
|
||||||
|
</a>
|
||||||
|
@else
|
||||||
|
<i class="fas fa-times-circle text-danger fa-2x" data-toggle="tooltip"
|
||||||
|
data-placement="top" title="Plan de cours non remis"></i>
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -90,7 +108,6 @@
|
|||||||
$('.tooltip').tooltip('enable')
|
$('.tooltip').tooltip('enable')
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#table').DataTable({
|
$('#table').DataTable({
|
||||||
"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
|
|
||||||
"ordering" : true,
|
"ordering" : true,
|
||||||
"order": [[1, "asc"]]
|
"order": [[1, "asc"]]
|
||||||
});
|
});
|
||||||
|
|||||||
34
resources/views/admin/stats/component/lessonPlan.blade.php
Normal file
34
resources/views/admin/stats/component/lessonPlan.blade.php
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<div class="col-md-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Plan de cours remis</h4>
|
||||||
|
<p class="category">Combiens de plan de cours on été remis au courant de cette année d'instruction</p>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row text-center">
|
||||||
|
<div class="chart-container" style="position: relative; width:100%">
|
||||||
|
<canvas id="chartLessonPlan"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var chartLessonPlan = $('#chartLessonPlan');
|
||||||
|
var pieChartLessonPlan = new Chart(chartLessonPlan, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
datasets: [{
|
||||||
|
data: [{{$nbCourseUpToThisDay - ($nbCoursePlanDoneUTDP+$nbCoursePlanDoneAndCheckUTDP)}}, {{$nbCoursePlanDoneUTDP}}, {{$nbCoursePlanDoneAndCheckUTDP}}],
|
||||||
|
backgroundColor: ['#f44336','#ff9800','#4caf50'],
|
||||||
|
hoverBackgroundColor: ['#f66055','#ffad33','#5fb962']
|
||||||
|
}],
|
||||||
|
|
||||||
|
// These labels appear in the legend and in the tooltips when hovering different arcs
|
||||||
|
labels: ['Non-Remis', 'Remis non validé','Remis et validé']
|
||||||
|
},
|
||||||
|
options: {}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
127
resources/views/admin/stats/instruction.blade.php
Normal file
127
resources/views/admin/stats/instruction.blade.php
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Statistique de l'instruction</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<p>
|
||||||
|
<b>{{$nbCourseUpToThisDay}}</b> cours on été donnée cette année d'instruction par <b>{{$nbInstructorUpToThisDay}}</b> instructeurs différent au cours de <b>{{$nbEventUpToThisDay}}</b> activitées
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Plan de cours remis</h4>
|
||||||
|
<p class="category">Combiens de plan de cours on été remis au courant de cette année d'instruction</p>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row text-center">
|
||||||
|
<div class="chart-container" style="position: relative; width:100%">
|
||||||
|
<canvas id="chart1"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Cours de l'année d'instruction</h4>
|
||||||
|
<p class="category">Combiens de cours ont été donnée au courant de cette année d'instruction</p>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row text-center">
|
||||||
|
<div class="chart-container" style="position: relative; width:100%">
|
||||||
|
<canvas id="chart2"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Cours total de la DB</h4>
|
||||||
|
<p class="category">Combiens de cours ont été donnée au courant de cette année d'instruction par rapport au total de la DB</p>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row text-center">
|
||||||
|
<div class="chart-container" style="position: relative; width:100%">
|
||||||
|
<canvas id="chart3"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
var ctx1 = $('#chart1');
|
||||||
|
var pieChart1 = new Chart(ctx1, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
datasets: [{
|
||||||
|
data: [{{$nbCourseUpToThisDay - ($nbCoursePlanDoneUTDP+$nbCoursePlanDoneAndCheckUTDP)}}, {{$nbCoursePlanDoneUTDP}}, {{$nbCoursePlanDoneAndCheckUTDP}}],
|
||||||
|
backgroundColor: ['#f44336','#ff9800','#4caf50'],
|
||||||
|
hoverBackgroundColor: ['#f66055','#ffad33','#5fb962']
|
||||||
|
}],
|
||||||
|
|
||||||
|
// These labels appear in the legend and in the tooltips when hovering different arcs
|
||||||
|
labels: ['Non-Remis', 'Remis non validé','Remis et validé']
|
||||||
|
},
|
||||||
|
options: {}
|
||||||
|
});
|
||||||
|
|
||||||
|
var ctx2 = $('#chart2');
|
||||||
|
var pieChart2 = new Chart(ctx2, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
datasets: [{
|
||||||
|
data: [{{$nbCourseUpToThisDay}}, {{$nbCourseThisYear - $nbCourseUpToThisDay}}],
|
||||||
|
backgroundColor: ['#4caf50','#ff9800'],
|
||||||
|
hoverBackgroundColor: ['#5fb962','#ffad33']
|
||||||
|
}],
|
||||||
|
|
||||||
|
// These labels appear in the legend and in the tooltips when hovering different arcs
|
||||||
|
labels: ['Donnée', 'Pas encore donnée']
|
||||||
|
},
|
||||||
|
options: {}
|
||||||
|
});
|
||||||
|
|
||||||
|
var ctx3 = $('#chart3');
|
||||||
|
var pieChart3 = new Chart(ctx3, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
datasets: [{
|
||||||
|
data: [{{$nbCourseUpToThisDay}}, {{$nbCourseInDB}}],
|
||||||
|
backgroundColor: ['#4caf50','#ff9800'],
|
||||||
|
hoverBackgroundColor: ['#5fb962','#ffad33']
|
||||||
|
}],
|
||||||
|
|
||||||
|
// These labels appear in the legend and in the tooltips when hovering different arcs
|
||||||
|
labels: ['Donnée', 'Pas encore donnée']
|
||||||
|
},
|
||||||
|
options: {}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -51,6 +51,46 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col m-auto text-left">
|
||||||
|
Ajout d'une section "Mes cours"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col m-auto text-left">
|
||||||
|
Ajout d'une section "Mes fichiers"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col m-auto text-left">
|
||||||
|
Ajout d'une liste des cours pour l'instruction
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col m-auto text-left">
|
||||||
|
Ajout de statistique pour l'instruction
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
@@ -91,6 +131,26 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
<i class="fas fa-coffee"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col m-auto text-left">
|
||||||
|
Mise à jour de la section "Guide pédagogique et Norme de qualification"
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
<i class="fas fa-coffee"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col m-auto text-left">
|
||||||
|
Mise à jour de la section "Fichier" de l'instruction
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
|||||||
84
resources/views/admin/user/profil/courses.blade.php
Normal file
84
resources/views/admin/user/profil/courses.blade.php
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Mes cours</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<p>Liste de mes cours dans l'horaire</p>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<a href="/admin/profil/courses" class="btn btn-block @if($mode == 'future')btn-primary active @else btn-outline-primary @endif">Cours future</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<a href="/admin/profil/courses?all=true" class="btn btn-block @if($mode == 'all')btn-primary active @else btn-outline-primary @endif">Tous les cours</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table table-striped table-no-bordered table-hover dataTable dtr-inline" id="table" style="width:100%">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>OCOM</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th>Instructeur</th>
|
||||||
|
<th>Date</th>
|
||||||
|
<th class="text-center">Niveau</th>
|
||||||
|
<th class="text-center">Période</th>
|
||||||
|
<th style="width: 8rem">Plan de cours</th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($courses as $course)
|
||||||
|
<tr class="cursor">
|
||||||
|
<td>{{$course->ocom}}</td>
|
||||||
|
<td>{{$course->name}}</td>
|
||||||
|
<td>{{$course->instructor()}}</td>
|
||||||
|
<td>{{$course->event->date_begin}}</td>
|
||||||
|
<td class="text-center">{{$course->level}}</td>
|
||||||
|
<td class="text-center">{{$course->periode}}</td>
|
||||||
|
<th class="text-center">
|
||||||
|
@if($course->lessonPlan)
|
||||||
|
@if($course->lessonPlan->approved == 1)
|
||||||
|
<i class="fas fa-check-circle text-success fa-2x" data-toggle="tooltip" data-placement="top" title="Plan de cours remis et vérifié"></i>
|
||||||
|
@else
|
||||||
|
<i class="fas fa-exclamation-circle text-warning fa-2x" data-toggle="tooltip" data-placement="top" title="Plan de cours remis mais non vérifié"></i>
|
||||||
|
@endif
|
||||||
|
@else
|
||||||
|
<i class="fas fa-times-circle text-danger fa-2x" data-toggle="tooltip" data-placement="top" title="Plan de cours non remis"></i>
|
||||||
|
@endif
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<a href="/admin/course/{{$course->id}}" class="btn btn-primary btn-fab btn-fab-mini btn-round">
|
||||||
|
<i class="material-icons">add</i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script src="/js/ocom.js"></script>
|
||||||
|
<script>
|
||||||
|
$('.tooltip').tooltip('enable')
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#table').DataTable({
|
||||||
|
"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
|
||||||
|
"ordering" : true,
|
||||||
|
"order": [[3, "asc"]]
|
||||||
|
});
|
||||||
|
} );
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -29,6 +29,7 @@
|
|||||||
<link rel="stylesheet" href="/js/plugins/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css">
|
<link rel="stylesheet" href="/js/plugins/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css">
|
||||||
<link rel="stylesheet" href="/js/plugins/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css">
|
<link rel="stylesheet" href="/js/plugins/trumbowyg/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="/css/Chart.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">
|
||||||
<link rel="stylesheet" href="/css/monolith.min.css"/>
|
<link rel="stylesheet" href="/css/monolith.min.css"/>
|
||||||
|
|||||||
@@ -67,7 +67,8 @@ foreach (Auth::user()->unreadNotifications as $notification) {
|
|||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownProfile">
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownProfile">
|
||||||
<a class="dropdown-item" href="/admin/profil">Profil</a>
|
<a class="dropdown-item" href="/admin/profil">Mon Profil</a>
|
||||||
|
<a class="dropdown-item" href="/admin/profil/courses">Mes cours</a>
|
||||||
<a class="dropdown-item" href="/admin/profil/settings">Options</a>
|
<a class="dropdown-item" href="/admin/profil/settings">Options</a>
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a class="dropdown-item" href="/logout">Déconnexion</a>
|
<a class="dropdown-item" href="/logout">Déconnexion</a>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<script src="/js/core/bootstrap-material-design.min.js"></script>
|
<script src="/js/core/bootstrap-material-design.min.js"></script>
|
||||||
<script src="/js/material-dashboard.js"></script>
|
<script src="/js/material-dashboard.js"></script>
|
||||||
|
<script src="/js/app.js"></script>
|
||||||
<!-- Plugin for the momentJs -->
|
<!-- Plugin for the momentJs -->
|
||||||
<script src="/js/plugins/moment.min.js"></script>
|
<script src="/js/plugins/moment.min.js"></script>
|
||||||
<!-- Plugin for Sweet Alert -->
|
<!-- Plugin for Sweet Alert -->
|
||||||
@@ -23,8 +23,8 @@
|
|||||||
<script src="/js/plugins/jasny-bootstrap.min.js"></script>
|
<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 -->
|
<!-- ChartJS -->
|
||||||
<script src="/js/plugins/chartist.min.js"></script>
|
<script src="/js/plugins/Chart.min.js"></script>
|
||||||
<!-- Notifications Plugin -->
|
<!-- Notifications Plugin -->
|
||||||
<script src="/js/plugins/bootstrap-notify.js"></script>
|
<script src="/js/plugins/bootstrap-notify.js"></script>
|
||||||
|
|
||||||
@@ -43,5 +43,3 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script src="https://cloud.tinymce.com/stable/tinymce.min.js?apiKey=r82pabvd9arn3fjb1e2fsolf2xpixuv4hwfwart4cf1fb7mx"></script>
|
<script src="https://cloud.tinymce.com/stable/tinymce.min.js?apiKey=r82pabvd9arn3fjb1e2fsolf2xpixuv4hwfwart4cf1fb7mx"></script>
|
||||||
|
|
||||||
<script src="/js/app.js"></script>
|
|
||||||
|
|||||||
@@ -1,4 +1,149 @@
|
|||||||
<div class="sidebar" data-background-color="black">
|
@php
|
||||||
|
$sidebar = [
|
||||||
|
'Nouvelle' => [
|
||||||
|
'route' => 'admin.news',
|
||||||
|
'icon' => 'new_releases',
|
||||||
|
'perm' => 'news_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Horaire' => [
|
||||||
|
'route' => 'admin.schedule',
|
||||||
|
'icon' => 'calendar_today',
|
||||||
|
'perm' => 'schedule_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Instruction' => [
|
||||||
|
'route' => null,
|
||||||
|
'icon' => 'menu_book',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => [
|
||||||
|
'Guide et NQP' => [
|
||||||
|
'route' => 'admin.instruction.guide',
|
||||||
|
'icon' => 'fas fa-book',
|
||||||
|
'perm' => 'instruction_guide_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'BD des cours' => [
|
||||||
|
'route' => 'admin.ocom',
|
||||||
|
'icon' => 'fas fa-database',
|
||||||
|
'perm' => 'instruction_db_ocom_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Liste des cours' => [
|
||||||
|
'route' => 'admin.course',
|
||||||
|
'icon' => 'fas fa-list',
|
||||||
|
'perm' => 'course_see_all',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Fichier' => [
|
||||||
|
'route' => 'admin.instruction.files',
|
||||||
|
'icon' => 'fas fa-folder',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Statistiques' => [
|
||||||
|
'route' => 'admin.stats.instruction',
|
||||||
|
'icon' => 'fas fa-chart-line',
|
||||||
|
'perm' => 'stats_instruction_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'Administration' => [
|
||||||
|
'route' => null,
|
||||||
|
'icon' => 'recent_actors',
|
||||||
|
'perm' => null,
|
||||||
|
'child' => [
|
||||||
|
'Articles' => [
|
||||||
|
'route' => 'admin.article',
|
||||||
|
'icon' => 'fas fa-newspaper',
|
||||||
|
'perm' => 'article_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Images' => [
|
||||||
|
'route' => 'admin.picture',
|
||||||
|
'icon' => 'fas fa-images',
|
||||||
|
'perm' => 'picture_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Utilisateurs' => [
|
||||||
|
'route' => 'admin.users',
|
||||||
|
'icon' => 'fas fa-users',
|
||||||
|
'perm' => 'user_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Liste nominative' => [
|
||||||
|
'route' => 'admin.users',
|
||||||
|
'icon' => 'fas fa-address-book',
|
||||||
|
'perm' => 'stats_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Logs' => [
|
||||||
|
'route' => 'admin.stats.log',
|
||||||
|
'icon' => 'fas fa-stream',
|
||||||
|
'perm' => 'stats_see',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'Fichiers' => [
|
||||||
|
'route' => null,
|
||||||
|
'icon' => 'folder',
|
||||||
|
'perm' => 'file_see',
|
||||||
|
'child' => \App\GoogleDriveFile::getSidebarFile(),
|
||||||
|
],
|
||||||
|
'Configuration' => [
|
||||||
|
'route' => null,
|
||||||
|
'icon' => 'menu_book',
|
||||||
|
'perm' => 'config_edit',
|
||||||
|
'child' => [
|
||||||
|
'Général' => [
|
||||||
|
'route' => 'admin.config.general',
|
||||||
|
'icon' => 'fas fa-cogs',
|
||||||
|
'perm' => 'config_edit',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Instruction' => [
|
||||||
|
'route' => 'admin.config.schedule',
|
||||||
|
'icon' => 'fas fa-book-open',
|
||||||
|
'perm' => 'config_edit_instruction',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Administration' => [
|
||||||
|
'route' => 'admin.config.complementary-activity',
|
||||||
|
'icon' => 'fas fa-file-alt',
|
||||||
|
'perm' => 'config_edit_administration',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Grade' => [
|
||||||
|
'route' => 'admin.config.rank',
|
||||||
|
'icon' => 'fas fa-user-shield',
|
||||||
|
'perm' => 'config_edit_rank',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Poste' => [
|
||||||
|
'route' => 'admin.config.jobs',
|
||||||
|
'icon' => 'fas fa-user-tag',
|
||||||
|
'perm' => 'config_edit_job',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Fichier' => [
|
||||||
|
'route' => 'admin.config.files',
|
||||||
|
'icon' => 'fas fa-folder',
|
||||||
|
'perm' => 'config_edit_files',
|
||||||
|
'child' => null
|
||||||
|
],
|
||||||
|
'Apparence' => [
|
||||||
|
'route' => 'admin.config.customisation',
|
||||||
|
'icon' => 'fas fa-palette',
|
||||||
|
'perm' => 'config_edit_instruction',
|
||||||
|
'child' => null
|
||||||
|
]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
]
|
||||||
|
@endphp
|
||||||
|
<div class="sidebar" data-color="white" data-background-color="black" data-image="/images/sidebar.png">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<a href="/" class="logo-mini">
|
<a href="/" class="logo-mini">
|
||||||
<img class="img-fluid" src="/assets/admin/images/favicon.png" alt="Logo">
|
<img class="img-fluid" src="/assets/admin/images/favicon.png" alt="Logo">
|
||||||
@@ -8,312 +153,90 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="sidebar-wrapper">
|
<div class="sidebar-wrapper">
|
||||||
|
<div class="user">
|
||||||
|
<div class="photo">
|
||||||
|
<img src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg">
|
||||||
|
</div>
|
||||||
|
<div class="user-info">
|
||||||
|
<a data-toggle="collapse" href="#collapseExample" class="username collapsed" aria-expanded="false">
|
||||||
|
<span>
|
||||||
|
{{\Auth::user()->lastname}}
|
||||||
|
<b class="caret"></b>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<div class="collapse" id="collapseExample" style="">
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/admin/profil">
|
||||||
|
<span class="sidebar-mini"> <i class="fas fa-user-circle"></i> </span>
|
||||||
|
<span class="sidebar-normal"> Mon profil </span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/admin/profil/courses">
|
||||||
|
<span class="sidebar-mini"> <i class="fas fa-chalkboard"></i> </span>
|
||||||
|
<span class="sidebar-normal"> Mes cours </span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/admin/profil/settings">
|
||||||
|
<span class="sidebar-mini"> <i class="fas fa-cog"></i> </span>
|
||||||
|
<span class="sidebar-normal"> Options </span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item mt-3">
|
||||||
|
<a class="nav-link" href="/logout">
|
||||||
|
<span class="sidebar-mini"> <i class="fas fa-sign-out-alt"></i> </span>
|
||||||
|
<span class="sidebar-normal"> Déconnexion </span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
<li class="nav-item">
|
<li class="nav-item @if(\Request::route()->getName() == 'admin.dashboard') active @endif">
|
||||||
<a class="nav-link" href="/admin">
|
<a class="nav-link" href="/admin">
|
||||||
<i class="material-icons">dashboard</i>
|
<i class="material-icons">dashboard</i>
|
||||||
<p> Dashboard </p>
|
<p> Dashboard </p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<hr>
|
<hr>
|
||||||
@if(\Auth::user()->p('msg_see') == 12)
|
@foreach($sidebar as $name => $s)
|
||||||
<li class="nav-item ">
|
@if(\Auth::user()->p($s['perm']) == 1 || $s['perm'] == null)
|
||||||
<a class="nav-link" data-toggle="collapse" href="#message">
|
@if($s['route'])
|
||||||
<i class="material-icons">email</i>
|
<li class="nav-item @if(\Request::route()->getName() == $s['route']) active @endif">
|
||||||
<p> Message
|
<a class="nav-link" href="{{route($s['route'])}}">
|
||||||
<b class="caret"></b>
|
<i class="material-icons">{{$s['icon']}}</i>
|
||||||
</p>
|
<p> {{$name}} </p>
|
||||||
</a>
|
|
||||||
<div class="collapse" id="message">
|
|
||||||
<ul class="nav">
|
|
||||||
<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 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>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('msg_delete') == 1)
|
|
||||||
<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>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('news_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" data-toggle="collapse" href="#news">
|
|
||||||
<i class="material-icons">new_releases</i>
|
|
||||||
<p> Nouvelles
|
|
||||||
<b class="caret"></b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<div class="collapse" id="news">
|
|
||||||
<ul class="nav">
|
|
||||||
<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 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>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
<!--<li class="nav-item ">
|
|
||||||
<a class="nav-link" href="/admin/inventory/booking">
|
|
||||||
<span class="sidebar-mini"> <i class="fas fa-bookmark"></i> </span>
|
|
||||||
<span class="sidebar-normal"> Réservation</span>
|
|
||||||
</a>
|
|
||||||
</li>-->
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('schedule_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" href="/admin/schedule">
|
|
||||||
<i class="material-icons">calendar_today</i>
|
|
||||||
<p> Horaire</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('schedule_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" href="/admin/ocom">
|
|
||||||
<i class="material-icons">menu_book</i>
|
|
||||||
<p> BD des cours</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('article_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" href="/admin/article">
|
|
||||||
<i class="material-icons">description</i>
|
|
||||||
<p> Articles</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('inventory_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" data-toggle="collapse" href="#inventory">
|
|
||||||
<i class="material-icons">shopping_basket</i>
|
|
||||||
<p> Inventaire
|
|
||||||
<b class="caret"></b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<div class="collapse" id="inventory">
|
|
||||||
<ul class="nav">
|
|
||||||
<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 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>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
<!--<li class="nav-item ">
|
|
||||||
<a class="nav-link" href="/admin/inventory/booking">
|
|
||||||
<span class="sidebar-mini"> <i class="fas fa-bookmark"></i> </span>
|
|
||||||
<span class="sidebar-normal"> Réservation</span>
|
|
||||||
</a>
|
|
||||||
</li>-->
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('picture_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" data-toggle="collapse" href="#picture">
|
|
||||||
<i class="material-icons">image</i>
|
|
||||||
<p> Image
|
|
||||||
<b class="caret"></b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<div class="collapse" id="picture">
|
|
||||||
<ul class="nav">
|
|
||||||
<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 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>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('stats_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" data-toggle="collapse" href="#stats">
|
|
||||||
<i class="material-icons">timeline</i>
|
|
||||||
<p> Statistiques
|
|
||||||
<b class="caret"></b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<div class="collapse" id="stats">
|
|
||||||
<ul class="nav">
|
|
||||||
<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>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@if(\Auth::user()->p('user_see') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" data-toggle="collapse" href="#user">
|
|
||||||
<i class="material-icons">supervised_user_circle</i>
|
|
||||||
<p> utilisateurs
|
|
||||||
<b class="caret"></b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<div class="collapse" id="user">
|
|
||||||
<ul class="nav">
|
|
||||||
@if(\Auth::user()->p('user_add') == 1)
|
|
||||||
<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 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>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" data-toggle="collapse" href="#file">
|
|
||||||
<i class="material-icons">folder</i>
|
|
||||||
<p> Fichier
|
|
||||||
<b class="caret"></b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<div class="collapse" id="file">
|
|
||||||
<ul class="nav">
|
|
||||||
<li class="nav-item pl-2">
|
|
||||||
<a class="nav-link" href="/admin/drive">
|
|
||||||
<span class="sidebar-mini"> <i class="fab fa-google-drive"></i> </span>
|
|
||||||
<span class="sidebar-normal"> Explorateur de fichier </span>
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@if(\Auth::user()->p('file_see_staff') == 1)
|
@else
|
||||||
<li class="nav-item pl-2">
|
<li class="nav-item " id="link-{{str_replace(' ', '', $name)}}">
|
||||||
<a class="nav-link" href="/admin/guide">
|
<a class="nav-link" data-toggle="collapse" href="#{{str_replace(' ', '', $name)}}">
|
||||||
<span class="sidebar-mini"> <i class="fas fa-book"></i></span>
|
<i class="material-icons">{{$s['icon']}}</i>
|
||||||
<span class="sidebar-normal"> Guide pédagogique </span>
|
<p> {{$name}}
|
||||||
</a>
|
<b class="caret"></b>
|
||||||
</li>
|
</p>
|
||||||
@endif
|
|
||||||
<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>
|
|
||||||
</a>
|
</a>
|
||||||
|
<div class="collapse" id="{{str_replace(' ', '', $name)}}">
|
||||||
|
<ul class="nav">
|
||||||
|
@foreach($s['child'] as $n => $i)
|
||||||
|
@if(\Auth::user()->p($i['perm']) == 1 || $i['perm'] == null)
|
||||||
|
<li class="nav-item pl-2 @if(strpos(\Request::route()->getName(),$i['route']) !== false) active @endif" parent="{{str_replace(' ', '', $name)}}">
|
||||||
|
<a class="nav-link" href="{{route($i['route'])}}">
|
||||||
|
<span class="sidebar-mini"> <i class="{{$i['icon']}}"></i> </span>
|
||||||
|
<span class="sidebar-normal"> {{$n}} </span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
@endif
|
||||||
</div>
|
@endif
|
||||||
</li>
|
@endforeach
|
||||||
@if(\Auth::user()->p('config_edit') == 1)
|
|
||||||
<li class="nav-item ">
|
|
||||||
<a class="nav-link" data-toggle="collapse" href="#config">
|
|
||||||
<i class="material-icons">settings</i>
|
|
||||||
<p> Configurations
|
|
||||||
<b class="caret"></b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<div class="collapse" id="config">
|
|
||||||
<ul class="nav">
|
|
||||||
<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 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 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 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 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>
|
|
||||||
@endif
|
|
||||||
<h6 class="ml-4 mt-5" style="color:white">
|
<h6 class="ml-4 mt-5" style="color:white">
|
||||||
Outils
|
Outils
|
||||||
</h6>
|
</h6>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="container mt-lg-5 pt-md-5">
|
<div class="container mt-lg-5 pt-md-5">
|
||||||
<div class="row mt-sm-5 pt-md-5">
|
<div class="row mt-sm-5 pt-md-5">
|
||||||
<div class="col-md-6 ml-auto mr-auto text-center">
|
<div class="col-md-6 ml-auto mr-auto text-center">
|
||||||
<h1>
|
<h1 id="test">
|
||||||
{{App\Config::getData('escadron_name_full')}}
|
{{App\Config::getData('escadron_name_full')}}
|
||||||
</h1>
|
</h1>
|
||||||
<a class="badge badge-primary edit-btn" href="/admin/public/edit/escadron_name_full" style="display: none;">
|
<a class="badge badge-primary edit-btn" href="/admin/public/edit/escadron_name_full" style="display: none;">
|
||||||
|
|||||||
@@ -50,8 +50,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
|
$('#test').html('Loading Start ...');
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
$('#test').html('DOM ContentLoaded');
|
||||||
var calendarEl = document.getElementById('public_calendar');
|
var calendarEl = document.getElementById('public_calendar');
|
||||||
|
|
||||||
var calendar = new FullCalendar.Calendar(calendarEl, {
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||||
@@ -71,8 +73,9 @@
|
|||||||
$('#schedulemodal').modal('toggle')
|
$('#schedulemodal').modal('toggle')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
$('#test').html('Begin render');
|
||||||
calendar.render();
|
calendar.render();
|
||||||
|
$('#test').html('Render Done');
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -64,13 +64,17 @@ Route::middleware('auth:api')->group(function () {
|
|||||||
/** Job Route */
|
/** Job Route */
|
||||||
Route::post('/config/job/delete','JobController@destroy')->middleware('perm:config_edit');
|
Route::post('/config/job/delete','JobController@destroy')->middleware('perm:config_edit');
|
||||||
|
|
||||||
|
/** Course Route */
|
||||||
|
Route::post('/course/{id}/plan/validate','CourseController@validatePlan')->middleware('courseperm:validate_plan');;
|
||||||
|
|
||||||
/** File Exlorer Route */
|
/** File Exlorer Route */
|
||||||
Route::get('/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@editPermissionModal')->middleware('perm:file_see');
|
Route::get('/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@editPermissionModal')->middleware('perm:file_see');
|
||||||
Route::get('/drive/folders/{folder?}','GoogleDriveController@list');
|
Route::get('/drive/{folder}/addpermission/{subject}','GoogleDriveController@addPermissionModal')->middleware('perm:file_see');
|
||||||
Route::get('/drive/path/{folder}','GoogleDriveController@getPath');
|
Route::get('/drive/folders/{folder?}','GoogleDriveController@list')->middleware('fileperm:folder,r');
|
||||||
Route::get('/drive/patharray','GoogleDriveController@getPathArray');
|
Route::get('/drive/path/{folder}','GoogleDriveController@getPath')->middleware('fileperm:folder,r');
|
||||||
Route::get('/drive/files/{dir}/{file}','GoogleDriveController@showMetadata');
|
Route::get('/drive/patharray','GoogleDriveController@getPathArray')->middleware('perm:file_see');
|
||||||
Route::get('/drive/checkfilestructure','GoogleDriveController@checkFileSystem');
|
Route::get('/drive/files/{dir}/{file}','GoogleDriveController@showMetadata')->middleware('fileperm:folder,r');
|
||||||
|
Route::get('/drive/checkfilestructure','GoogleDriveController@checkFileSystem')->middleware('perm:config_edit');;
|
||||||
|
|
||||||
Route::get('/user/perm/{id}', function($id) {
|
Route::get('/user/perm/{id}', function($id) {
|
||||||
$user = \App\User::find($id);
|
$user = \App\User::find($id);
|
||||||
|
|||||||
@@ -50,9 +50,16 @@ Breadcrumbs::for('admin.log', function ($trail) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Admin > User
|
// Admin > User
|
||||||
Breadcrumbs::for('admin.user', function ($trail) {
|
Breadcrumbs::for('admin.users', function ($trail) {
|
||||||
$trail->parent('admin.dashboard');
|
$trail->parent('admin.dashboard');
|
||||||
$trail->push('Utilisateurs', route('admin.user'));
|
$trail->push('Utilisateurs', route('admin.users'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > User > [user]
|
||||||
|
Breadcrumbs::for('admin.user', function ($trail, $id) {
|
||||||
|
$user = \App\User::findOrFail($id);
|
||||||
|
$trail->parent('admin.users');
|
||||||
|
$trail->push($user->fullname(), route('admin.user',$user));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > User > Add
|
// Admin > User > Add
|
||||||
@@ -61,27 +68,35 @@ Breadcrumbs::for('admin.user.add', function ($trail) {
|
|||||||
$trail->push('Ajouter un utilisateur', route('admin.user.add'));
|
$trail->push('Ajouter un utilisateur', route('admin.user.add'));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > User > Edit
|
// Admin > User > [user] > Edit
|
||||||
Breadcrumbs::for('admin.user.edit', function ($trail, $id) {
|
Breadcrumbs::for('admin.user.edit', function ($trail, $id) {
|
||||||
$trail->parent('admin.user');
|
$user = \App\User::findOrFail($id);
|
||||||
$trail->push('Modifier un utilisateur', route('admin.user.edit', $id));
|
$trail->parent('admin.user',$id);
|
||||||
|
$trail->push('Modifier', route('admin.user.edit', $user));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > User > [user] > Courses
|
||||||
|
Breadcrumbs::for('admin.user.courses', function ($trail, $id) {
|
||||||
|
$user = \App\User::findOrFail($id);
|
||||||
|
$trail->parent('admin.user',$id);
|
||||||
|
$trail->push('Liste des cours', route('admin.user.courses', $user));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > Config
|
// Admin > Config
|
||||||
Breadcrumbs::for('admin.config', function ($trail) {
|
Breadcrumbs::for('admin.config.general', function ($trail) {
|
||||||
$trail->parent('admin.dashboard');
|
$trail->parent('admin.dashboard');
|
||||||
$trail->push('Configurations', route('admin.config'));
|
$trail->push('Configurations', route('admin.config.general'));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > Config > Calendrier
|
// Admin > Config > Instruction
|
||||||
Breadcrumbs::for('admin.config.schedule', function ($trail) {
|
Breadcrumbs::for('admin.config.schedule', function ($trail) {
|
||||||
$trail->parent('admin.config');
|
$trail->parent('admin.config.general');
|
||||||
$trail->push('Horaire', route('admin.config.schedule'));
|
$trail->push('Instruction', route('admin.config.schedule'));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > Config > Activite complementaire
|
// Admin > Config > Activite complementaire
|
||||||
Breadcrumbs::for('admin.config.complementary-activity', function ($trail) {
|
Breadcrumbs::for('admin.config.complementary-activity', function ($trail) {
|
||||||
$trail->parent('admin.config');
|
$trail->parent('admin.config.general');
|
||||||
$trail->push('Activitée complémentaire', route('admin.config.complementary-activity'));
|
$trail->push('Activitée complémentaire', route('admin.config.complementary-activity'));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -99,13 +114,13 @@ Breadcrumbs::for('admin.config.complementary-activity.edit', function ($trail, $
|
|||||||
|
|
||||||
// Admin > Config > Customisation
|
// Admin > Config > Customisation
|
||||||
Breadcrumbs::for('admin.config.customisation', function ($trail) {
|
Breadcrumbs::for('admin.config.customisation', function ($trail) {
|
||||||
$trail->parent('admin.config');
|
$trail->parent('admin.config.general');
|
||||||
$trail->push('Apparence', route('admin.config.customisation'));
|
$trail->push('Apparence', route('admin.config.customisation'));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > Config > Rank
|
// Admin > Config > Rank
|
||||||
Breadcrumbs::for('admin.config.rank', function ($trail) {
|
Breadcrumbs::for('admin.config.rank', function ($trail) {
|
||||||
$trail->parent('admin.config');
|
$trail->parent('admin.config.general');
|
||||||
$trail->push('Grade', route('admin.config.rank'));
|
$trail->push('Grade', route('admin.config.rank'));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -123,7 +138,7 @@ Breadcrumbs::for('admin.config.rank.edit', function ($trail, $id) {
|
|||||||
|
|
||||||
// Admin > Config > Jobs
|
// Admin > Config > Jobs
|
||||||
Breadcrumbs::for('admin.config.jobs', function ($trail) {
|
Breadcrumbs::for('admin.config.jobs', function ($trail) {
|
||||||
$trail->parent('admin.config');
|
$trail->parent('admin.config.general');
|
||||||
$trail->push('Postes', route('admin.config.jobs'));
|
$trail->push('Postes', route('admin.config.jobs'));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -141,7 +156,7 @@ Breadcrumbs::for('admin.config.jobs.edit', function ($trail, $id) {
|
|||||||
|
|
||||||
// Admin > Config > Files
|
// Admin > Config > Files
|
||||||
Breadcrumbs::for('admin.config.files', function ($trail) {
|
Breadcrumbs::for('admin.config.files', function ($trail) {
|
||||||
$trail->parent('admin.config');
|
$trail->parent('admin.config.general');
|
||||||
$trail->push('Système de fichier', route('admin.config.files'));
|
$trail->push('Système de fichier', route('admin.config.files'));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -247,6 +262,12 @@ Breadcrumbs::for('admin.profil.psw', function ($trail) {
|
|||||||
$trail->push('Password', route('admin.profil.psw'));
|
$trail->push('Password', route('admin.profil.psw'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Admin > Profil > Adress
|
||||||
|
Breadcrumbs::for('admin.profil.courses', function ($trail) {
|
||||||
|
$trail->parent('admin.profil');
|
||||||
|
$trail->push('Mes cours', route('admin.profil.courses'));
|
||||||
|
});
|
||||||
|
|
||||||
// Admin > Drive
|
// Admin > Drive
|
||||||
Breadcrumbs::for('admin.drive', function ($trail) {
|
Breadcrumbs::for('admin.drive', function ($trail) {
|
||||||
$trail->parent('admin.dashboard');
|
$trail->parent('admin.dashboard');
|
||||||
@@ -265,17 +286,64 @@ Breadcrumbs::for('admin.drive.folder', function ($trail,$folder) {
|
|||||||
$trail->push(\Storage::cloud()->getMetadata($folder)['name'], route('admin.drive',$folder));
|
$trail->push(\Storage::cloud()->getMetadata($folder)['name'], route('admin.drive',$folder));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Admin > Instruction
|
||||||
// Admin > Guide
|
Breadcrumbs::for('admin.instruction', function ($trail) {
|
||||||
Breadcrumbs::for('admin.guide', function ($trail) {
|
|
||||||
$trail->parent('admin.dashboard');
|
$trail->parent('admin.dashboard');
|
||||||
$trail->push('Guide pédagogique', route('admin.guide'));
|
$trail->push('Instruction', route('admin.instruction'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Instruction > Guide
|
||||||
|
Breadcrumbs::for('admin.instruction.guide', function ($trail) {
|
||||||
|
$trail->parent('admin.instruction');
|
||||||
|
$trail->push('Guide pédagogique et norme de qualification', route('admin.instruction.guide'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Instruction > Lesson Plan
|
||||||
|
Breadcrumbs::for('admin.instruction.course', function ($trail) {
|
||||||
|
$trail->parent('admin.instruction');
|
||||||
|
$trail->push('Plan de cours et documentation', route('admin.instruction.course'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Instruction > Lesson Plan
|
||||||
|
Breadcrumbs::for('admin.stats.instruction', function ($trail) {
|
||||||
|
$trail->parent('admin.instruction');
|
||||||
|
$trail->push('Statistique de l\'instruction', route('admin.stats.instruction'));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > Files
|
// Admin > Files
|
||||||
Breadcrumbs::for('admin.files', function ($trail) {
|
Breadcrumbs::for('admin.files', function ($trail) {
|
||||||
$trail->parent('admin.dashboard');
|
$trail->parent('admin.dashboard');
|
||||||
$trail->push('Fichier', route('admin.files'));
|
$trail->push('Mes fichier', route('admin.files'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Files > Cadet
|
||||||
|
Breadcrumbs::for('admin.files.cadet', function ($trail) {
|
||||||
|
$trail->parent('admin.files');
|
||||||
|
$trail->push('Cadet', route('admin.files.cadet'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Files > Staff
|
||||||
|
Breadcrumbs::for('admin.files.staff', function ($trail) {
|
||||||
|
$trail->parent('admin.files');
|
||||||
|
$trail->push('Staff', route('admin.files.staff'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Files > ETAMAS
|
||||||
|
Breadcrumbs::for('admin.files.etamas', function ($trail) {
|
||||||
|
$trail->parent('admin.files');
|
||||||
|
$trail->push('ETAMAS', route('admin.files.etamas'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Files > Officier
|
||||||
|
Breadcrumbs::for('admin.files.officier', function ($trail) {
|
||||||
|
$trail->parent('admin.files');
|
||||||
|
$trail->push('Officier', route('admin.files.officier'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Files > Publique
|
||||||
|
Breadcrumbs::for('admin.files.publique', function ($trail) {
|
||||||
|
$trail->parent('admin.files');
|
||||||
|
$trail->push('Publique', route('admin.files.publique'));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > OCOM
|
// Admin > OCOM
|
||||||
@@ -308,4 +376,17 @@ Breadcrumbs::for('admin.ocom.edit', function ($trail, $id) {
|
|||||||
$ocom = \App\OCOM::findOrFail($id);
|
$ocom = \App\OCOM::findOrFail($id);
|
||||||
$trail->parent('admin.ocom.show',$id);
|
$trail->parent('admin.ocom.show',$id);
|
||||||
$trail->push('Modifier', route('admin.ocom.edit', $ocom));
|
$trail->push('Modifier', route('admin.ocom.edit', $ocom));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Course
|
||||||
|
Breadcrumbs::for('admin.course', function ($trail) {
|
||||||
|
$trail->parent('admin.dashboard');
|
||||||
|
$trail->push('Liste des cours', route('admin.course'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Admin > Course > [course]
|
||||||
|
Breadcrumbs::for('admin.course.show', function ($trail, $id) {
|
||||||
|
$course = \App\Course::findOrFail($id);
|
||||||
|
$trail->parent('admin.course',$id);
|
||||||
|
$trail->push($course->ocom.' ('.$course->event->date_begin.')', route('admin.course.show',$course));
|
||||||
});
|
});
|
||||||
@@ -50,7 +50,8 @@ Route::middleware(['auth'])->name('admin.')->group(function () {
|
|||||||
Route::post('/admin/schedule/event/edit/{id}','EventController@update')->middleware('perm:schedule_edit');
|
Route::post('/admin/schedule/event/edit/{id}','EventController@update')->middleware('perm:schedule_edit');
|
||||||
|
|
||||||
/** Statistique */
|
/** Statistique */
|
||||||
Route::get('/admin/stats/log' , 'LogController@index')->middleware('perm:stats_see')->name('log');
|
Route::get('/admin/stats/log' , 'LogController@index')->middleware('perm:stats_see')->name('stats.log');
|
||||||
|
Route::get('/admin/stats/instruction' , 'StatsController@instruction')->middleware('perm:stats_see')->name('stats.instruction');
|
||||||
|
|
||||||
/** Message */
|
/** Message */
|
||||||
Route::get('/admin/message' , 'MessageController@index')->middleware('perm:msg_see')->name('message');
|
Route::get('/admin/message' , 'MessageController@index')->middleware('perm:msg_see')->name('message');
|
||||||
@@ -59,22 +60,25 @@ Route::middleware(['auth'])->name('admin.')->group(function () {
|
|||||||
Route::get('/admin/message/{id}', ['uses' =>'MessageController@show'])->middleware('perm:msg_see')->name('message.show');
|
Route::get('/admin/message/{id}', ['uses' =>'MessageController@show'])->middleware('perm:msg_see')->name('message.show');
|
||||||
|
|
||||||
/** User */
|
/** User */
|
||||||
Route::get('/admin/user' , 'UserController@index')->middleware('perm:user_see')->name('user');
|
Route::get('/admin/user' , 'UserController@index')->middleware('perm:user_see')->name('users');
|
||||||
|
Route::get('/admin/user/{id}' , 'UserController@show')->middleware('perm:user_see')->name('user');
|
||||||
|
Route::get('/admin/user/{id}/course','UserController@showCourses')->name('user.courses');
|
||||||
Route::get('/admin/user/add' , 'UserController@create')->middleware('perm:user_add')->name('user.add');
|
Route::get('/admin/user/add' , 'UserController@create')->middleware('perm:user_add')->name('user.add');
|
||||||
Route::post('/admin/user/add' , 'UserController@store')->middleware('perm:user_add');
|
Route::post('/admin/user/add' , 'UserController@store')->middleware('perm:user_add');
|
||||||
Route::get('/admin/user/edit/{id}' , 'UserController@edit')->middleware('perm:user_edit')->name('user.edit');
|
Route::get('/admin/user/edit/{id}' , 'UserController@edit')->middleware('perm:user_edit')->name('user.edit');
|
||||||
Route::post('/admin/user/edit/{id}' , 'UserController@update')->middleware('perm:user_edit');
|
Route::post('/admin/user/edit/{id}' , 'UserController@update')->middleware('perm:user_edit');
|
||||||
|
|
||||||
/** Config */
|
/** Config */
|
||||||
Route::get('/admin/config/schedule' , 'ScheduleController@index')->middleware('perm:config_edit')->name('config.schedule');
|
Route::get('/admin/config/instruction' , 'ScheduleController@index')->middleware('perm:config_edit')->name('config.schedule');
|
||||||
Route::post('/admin/config/schedule/edit' , 'ScheduleController@update')->middleware('perm:config_edit');
|
Route::get('/admin/config/instruction/event_type/{id}' , 'EventTypeController@show')->middleware('perm:config_edit')->name('config.schedule.event_type');
|
||||||
|
Route::patch('/admin/config/instruction' , 'ScheduleController@update')->middleware('perm:config_edit');
|
||||||
Route::get('/admin/config/activity' , 'ComplementaryActivityController@index')->middleware('perm:config_edit')->name('config.complementary-activity');
|
Route::get('/admin/config/activity' , 'ComplementaryActivityController@index')->middleware('perm:config_edit')->name('config.complementary-activity');
|
||||||
Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create')->middleware('perm:config_edit')->name('config.complementary-activity.add');
|
Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create')->middleware('perm:config_edit')->name('config.complementary-activity.add');
|
||||||
Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store')->middleware('perm:config_edit');
|
Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store')->middleware('perm:config_edit');
|
||||||
Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit')->middleware('perm:config_edit')->name('config.complementary-activity.edit');
|
Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit')->middleware('perm:config_edit')->name('config.complementary-activity.edit');
|
||||||
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update')->middleware('perm:config_edit');
|
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update')->middleware('perm:config_edit');
|
||||||
Route::post('/admin/config/general/edit','ConfigController@update')->middleware('perm:config_edit');
|
Route::post('/admin/config/general/edit','ConfigController@update')->middleware('perm:config_edit');
|
||||||
Route::get('/admin/config/' , 'ConfigController@index')->middleware('perm:config_edit')->name('config');
|
Route::get('/admin/config/' , 'ConfigController@index')->middleware('perm:config_edit')->name('config.general');
|
||||||
Route::get('/admin/config/customisation','ConfigController@customisation')->middleware('perm:config_edit')->name('config.customisation');
|
Route::get('/admin/config/customisation','ConfigController@customisation')->middleware('perm:config_edit')->name('config.customisation');
|
||||||
Route::post('/admin/config/customisation','ConfigController@customisationUpdate')->middleware('perm:config_edit');
|
Route::post('/admin/config/customisation','ConfigController@customisationUpdate')->middleware('perm:config_edit');
|
||||||
|
|
||||||
@@ -149,6 +153,7 @@ Route::middleware(['auth'])->name('admin.')->group(function () {
|
|||||||
Route::post('/admin/notication/mark/{id}','UserController@notificationmark');
|
Route::post('/admin/notication/mark/{id}','UserController@notificationmark');
|
||||||
|
|
||||||
/** Profil */
|
/** Profil */
|
||||||
|
Route::get('/admin/profil/courses' , 'ProfilController@courses')->name('profil.courses');
|
||||||
Route::get('/admin/profil/avatar' , 'UserController@UserAvatar')->name('profil.avatar');
|
Route::get('/admin/profil/avatar' , 'UserController@UserAvatar')->name('profil.avatar');
|
||||||
Route::get('/admin/profil/password' , 'UserController@UserPassword')->name('profil.psw');
|
Route::get('/admin/profil/password' , 'UserController@UserPassword')->name('profil.psw');
|
||||||
Route::get('/admin/profil/adress' , 'UserController@UserAdress')->name('profil.adress');
|
Route::get('/admin/profil/adress' , 'UserController@UserAdress')->name('profil.adress');
|
||||||
@@ -157,28 +162,51 @@ Route::middleware(['auth'])->name('admin.')->group(function () {
|
|||||||
Route::get('/admin/profil/edit/avatar/{id}' , 'UserController@editUserAvatar');
|
Route::get('/admin/profil/edit/avatar/{id}' , 'UserController@editUserAvatar');
|
||||||
Route::get('/admin/profil/{id?}' , 'UserController@showUserProfil')->name('profil');
|
Route::get('/admin/profil/{id?}' , 'UserController@showUserProfil')->name('profil');
|
||||||
|
|
||||||
/** Files */
|
/** Instruction */
|
||||||
Route::post('/file/create','GoogleDriveController@createFile');
|
Route::get('/admin/instruction','AdminController@instruction')->name('instruction');
|
||||||
Route::post('/file/upload','GoogleDriveController@uploadFile');
|
Route::get('/admin/instruction/guide','FilesController@guide')->middleware('perm:instruction_guide_see')->name('instruction.guide');
|
||||||
Route::post('/folder/create','GoogleDriveController@createFolder');
|
Route::get('/admin/instruction/files','FilesController@instruction')->middleware('perm:file_see')->name('instruction.files');
|
||||||
Route::get('/file/delete','GoogleDriveController@deleteFile')->middleware('perm:file_delete');
|
|
||||||
Route::get('/folder/delete','GoogleDriveController@deleteDir')->middleware('perm:file_delete');
|
/** Courses */
|
||||||
|
Route::get('/admin/course','CourseController@index')->name('course');
|
||||||
|
Route::get('/admin/course/{id}','CourseController@show')->name('course.show')->middleware('courseperm:see');
|
||||||
|
Route::patch('/admin/course/{id}/commentOfficer','CourseController@updateCommentOfficer')->middleware('courseperm:comment_officer');
|
||||||
|
Route::patch('/admin/course/{id}/comment','CourseController@updateComment')->middleware('courseperm:edit');
|
||||||
|
Route::patch('/admin/course/{id}/plan/commentOfficer','CourseController@updateCommentOfficerPlan')->middleware('courseperm:comment_plan_officer');
|
||||||
|
Route::patch('/admin/course/{id}/plan/comment','CourseController@updateCommentPlan')->middleware('courseperm:edit');
|
||||||
|
Route::post('/admin/course/{id}/lessonPlan','CourseController@updateLessonPlan')->middleware('courseperm:edit');
|
||||||
|
|
||||||
|
/** Files */
|
||||||
|
Route::post('/file/create','GoogleDriveController@createFile')->middleware('fileperm:folder,w');
|
||||||
|
Route::post('/file/upload','GoogleDriveController@uploadFile')->middleware('fileperm:folder,w');
|
||||||
|
Route::post('/folder/create','GoogleDriveController@createFolder')->middleware('fileperm:folder,w');
|
||||||
|
Route::get('/file/delete','GoogleDriveController@deleteFile')->middleware('perm:file_delete')->middleware('fileperm:folder,w');
|
||||||
|
Route::get('/folder/delete','GoogleDriveController@deleteDir')->middleware('perm:file_delete')->middleware('fileperm:folder,w');
|
||||||
Route::get('/admin/files','FilesController@index')->middleware('perm:file_see')->name('files');
|
Route::get('/admin/files','FilesController@index')->middleware('perm:file_see')->name('files');
|
||||||
Route::get('/admin/guide','FilesController@guide')->middleware('perm:file_see')->name('guide');
|
Route::get('/admin/files/cadet','FilesController@cadet')->middleware('perm:file_see')->name('files.cadet')->middleware('fileperm:folder,r');
|
||||||
Route::get('/admin/drive/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive');
|
Route::get('/admin/files/staff','FilesController@staff')->middleware('perm:file_see')->name('files.staff')->middleware('fileperm:folder,r');
|
||||||
|
Route::get('/admin/files/etamas','FilesController@etamas')->middleware('perm:file_see')->name('files.etamas')->middleware('fileperm:folder,r');
|
||||||
|
Route::get('/admin/files/officier','FilesController@officier')->middleware('perm:file_see')->name('files.officier')->middleware('fileperm:folder,r');
|
||||||
|
Route::get('/admin/files/publique','FilesController@publique')->middleware('perm:file_see')->name('files.publique')->middleware('fileperm:folder,r');
|
||||||
|
|
||||||
|
Route::get('/admin/drive/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r','perm:drive_see')->name('drive');
|
||||||
|
Route::get('/admin/folder/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive');
|
||||||
Route::get('/admin/drive/{folder}/permission','GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission');
|
Route::get('/admin/drive/{folder}/permission','GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission');
|
||||||
Route::patch('/admin/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@editPermission')->middleware('perm:file_see','fileperm:folder,p');
|
Route::patch('/admin/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@patchPermission')->middleware('perm:file_see','fileperm:folder,p');
|
||||||
|
Route::get('/admin/drive/{folder}/deletepermission/{subject}/{id}','GoogleDriveController@deletePermission')->middleware('perm:file_see','fileperm:folder,p');
|
||||||
|
Route::patch('/admin/drive/{folder}/addpermission/{subject}','GoogleDriveController@addPermission')->middleware('perm:file_see','fileperm:folder,p');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** OCOM */
|
/** OCOM */
|
||||||
Route::get('/admin/ocom','OCOMController@index')->name('ocom');
|
Route::get('/admin/ocom','OCOMController@index')->name('ocom')->middleware('perm:instruction_db_ocom_see');
|
||||||
Route::get('/admin/ocom/generate','OCOMController@showgenerate')->name('ocom.generate');
|
Route::get('/admin/ocom/generate','OCOMController@showgenerate')->name('ocom.generate')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::put('/admin/ocom/generate','OCOMController@generate');
|
Route::put('/admin/ocom/generate','OCOMController@generate')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::get('/admin/ocom/add','OCOMController@create')->name('ocom.add');
|
Route::get('/admin/ocom/add','OCOMController@create')->name('ocom.add')->middleware('perm:instruction_db_ocom_add');
|
||||||
Route::put('/admin/ocom/add','OCOMController@store');
|
Route::put('/admin/ocom/add','OCOMController@store')->middleware('perm:instruction_db_ocom_add');
|
||||||
Route::get('/admin/ocom/{id}/edit','OCOMController@edit')->name('ocom.edit');
|
Route::get('/admin/ocom/{id}/edit','OCOMController@edit')->name('ocom.edit')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::patch('/admin/ocom/{id}/edit','OCOMController@update');
|
Route::patch('/admin/ocom/{id}/edit','OCOMController@update')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::get('/admin/ocom/{id}','OCOMController@show')->name('ocom.show');
|
Route::get('/admin/ocom/{id}','OCOMController@show')->name('ocom.show')->middleware('perm:instruction_db_ocom_see');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user