Merge branch 'dev' into 'master'

Dev

See merge request TheGamecraft/c-cms!17
This commit is contained in:
Mathieu Lagace
2018-11-08 17:20:02 +00:00
15 changed files with 570 additions and 25 deletions

View File

@@ -34,6 +34,8 @@ class CalendarController extends Controller
{ {
Log::saveLog("Affichage de l'horaire"); Log::saveLog("Affichage de l'horaire");
$this->listClass();
return view('admin.calendar.calendar_display'); return view('admin.calendar.calendar_display');
} }
@@ -95,11 +97,10 @@ class CalendarController extends Controller
if ($activityToday->isEmpty()) { if ($activityToday->isEmpty()) {
echo '<a class="calendar-container calendar-empty" name="'.$today.'" type="button" data-toggle="modal" data-target="#scrollmodal" id="calendar_'.$calendar[(($i*7) + $a)].'" class="btn btn-block btn-calendar" onclick="openCalendar(this.name)"><div class="calendar-date">'.date("j", strtotime($today)).'</div></a>'; echo '<a class="calendar-container calendar-empty" name="'.$today.'" type="button" data-toggle="modal" data-target="#scrollmodal" id="calendar_'.$calendar[(($i*7) + $a)].'" class="btn btn-block btn-calendar" onclick="openCalendar(this.name)"><div class="calendar-date">'.date("j", strtotime($today)).'</div></a>';
} else { } else {
echo '<a class="calendar-container" name="'.$today.'" type="button" data-toggle="modal" data-target="#scrollmodal" id="calendar_'.$calendar[(($i*7) + $a)].'" class="btn btn-block btn-calendar" onclick="openCalendar(this.name)">'; echo '<a class="calendar-container" name="'.$today.'" type="button" data-toggle="modal" data-target="#scrollmodal" id="calendar_'.$calendar[(($i*7) + $a)].'" class="btn btn-block btn-calendar" onclick="openCalendar(this.name)"><div class="calendar-date">'.date("j", strtotime($today)).'</div>';
$text = ""; $text = "";
foreach ($activityToday as $activity) { foreach ($activityToday as $activity) {
echo '<div class="calendar-date">'.date("j", strtotime($today)).'</div> echo '<div class="calendar-text" style="width:90%;height:3rem;">';
<div class="calendar-text" style="width:90%;">';
switch ($activity->type) { switch ($activity->type) {
case 'regular': case 'regular':
echo '<div class="row" style="color:orange;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-book fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>"; echo '<div class="row" style="color:orange;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-book fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
@@ -458,6 +459,7 @@ class CalendarController extends Controller
public function patch($id) public function patch($id)
{ {
$schedule = Schedule::find($id); $schedule = Schedule::find($id);
$original = clone($schedule);
$schedule->date = request('event_date'); $schedule->date = request('event_date');
$schedule->type = request('event_type'); $schedule->type = request('event_type');
@@ -519,6 +521,171 @@ class CalendarController extends Controller
$schedule->save(); $schedule->save();
/** Notification */
$asChange = false;
$userToNotify = $schedule->getUserToNotify();
$changes = [];
$found = false;
if ($schedule->type == "regular") {
for ($p=1; $p < 3; $p++) {
for ($n=1; $n < 4; $n++) {
$pUser = \App\User::find($schedule->data['n'.$n.'_p'.$p.'_instructor']);
foreach ($userToNotify as $user) {
if ($user->id == $pUser->id) {
$found = true;
}
}
if (!$found) {
$userToNotify->push($pUser);
}
}
}
}
if ($schedule->data['event_begin_time'] != $original->data['event_begin_time']) {
array_push($changes,"L'heure de début a été modifié de ".$original->data['event_begin_time']." à ".$schedule->data['event_begin_time']);
}
if ($schedule->data['event_end_time'] != $original->data['event_end_time']) {
array_push($changes,"L'heure de fin a été modifié de ".$original->data['event_end_time']." à ".$schedule->data['event_end_time']);
}
if ($schedule->type != $original->type) {
array_push($changes,"Le type d'évenement a été modifié de ".$original->type." à ".$schedule->type);
}
if ($schedule->data['event_name'] != $original->data['event_name']) {
array_push($changes,"Le nom de l'évenement a été modifié de ".$original->data['event_name']." à ".$schedule->data['event_name']);
}
if ($schedule->data['is_event_mandatory'] != $original->data['is_event_mandatory']) {
if ($schedule->data['is_event_mandatory'] == "on") {
array_push($changes,"L'évenement est maintenant obligatoire");
} else {
array_push($changes,"L'évenement n'est plus obligatoire");
}
}
if ($schedule->data['event_location'] != $original->data['event_location']) {
array_push($changes,"Le lieu de l'évenement a été modifié de ".$original->data['event_location']." à ".$schedule->data['event_location']);
}
if ($schedule->data['event_desc'] != $original->data['event_desc']) {
array_push($changes,"La description de l'évenement a été modifié de ".$original->data['event_desc']." à ".$schedule->data['event_desc']);
}
if ($schedule->type == "regular") {
/** Check Instructor */
if ($schedule->data['n1_p1_instructor'] != $original->data['n1_p1_instructor']) {
array_push($changes,"L'instructeur du niveau 1 pour la première période a été changé de ".\App\User::find($original->data['n1_p1_instructor'])->fullname()." à ".\App\User::find($schedule->data['n1_p1_instructor'])->fullname());
\Notification::send(\App\User::find($original->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n1_p1_name']." du ".$original->date." vous a été retiré."));
\Notification::send(\App\User::find($schedule->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n1_p1_name']." du ".$schedule->date." vous a été ajouté."));
}
if ($schedule->data['n1_p2_instructor'] != $original->data['n1_p2_instructor']) {
array_push($changes,"L'instructeur du niveau 1 pour la deuxième période a été changé de ".\App\User::find($original->data['n1_p2_instructor'])->fullname()." à ".\App\User::find($schedule->data['n1_p2_instructor'])->fullname());
\Notification::send(\App\User::find($original->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n1_p2_name']." du ".$original->date." vous a été retiré."));
\Notification::send(\App\User::find($schedule->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n1_p2_name']." du ".$schedule->date." vous a été ajouté."));
}
if ($schedule->data['n2_p1_instructor'] != $original->data['n2_p1_instructor']) {
array_push($changes,"L'instructeur du niveau 2 pour la première période a été changé de ".\App\User::find($original->data['n2_p1_instructor'])->fullname()." à ".\App\User::find($schedule->data['n2_p1_instructor'])->fullname());
\Notification::send(\App\User::find($original->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n2_p1_name']." du ".$original->date." vous a été retiré."));
\Notification::send(\App\User::find($schedule->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n2_p1_name']." du ".$schedule->date." vous a été ajouté."));
}
if ($schedule->data['n2_p2_instructor'] != $original->data['n2_p2_instructor']) {
array_push($changes,"L'instructeur du niveau 2 pour la deuxième période a été changé de ".\App\User::find($original->data['n2_p2_instructor'])->fullname()." à ".\App\User::find($schedule->data['n2_p2_instructor'])->fullname());
\Notification::send(\App\User::find($original->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n2_p2_name']." du ".$original->date." vous a été retiré."));
\Notification::send(\App\User::find($schedule->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n2_p2_name']." du ".$schedule->date." vous a été ajouté."));
}
if ($schedule->data['n3_p1_instructor'] != $original->data['n3_p1_instructor']) {
array_push($changes,"L'instructeur du niveau 3 pour la première période a été changé de ".\App\User::find($original->data['n3_p1_instructor'])->fullname()." à ".\App\User::find($schedule->data['n3_p1_instructor'])->fullname());
\Notification::send(\App\User::find($original->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n3_p1_name']." du ".$original->date." vous a été retiré."));
\Notification::send(\App\User::find($schedule->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n3_p1_name']." du ".$schedule->date." vous a été ajouté."));
}
if ($schedule->data['n3_p2_instructor'] != $original->data['n3_p2_instructor']) {
array_push($changes,"L'instructeur du niveau 3 pour la deuxième période a été changé de ".\App\User::find($original->data['n3_p2_instructor'])->fullname()." à ".\App\User::find($schedule->data['n3_p2_instructor'])->fullname());
\Notification::send(\App\User::find($original->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n3_p2_name']." du ".$original->date." vous a été retiré."));
\Notification::send(\App\User::find($schedule->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n3_p2_name']." du ".$schedule->date." vous a été ajouté."));
}
/** Check OCOM */
if ($schedule->data['n1_p1_ocom'] != $original->data['n1_p1_ocom']) {
array_push($changes,"L'OCOM du niveau 1 pour la première période a été changé de ".$original->data['n1_p1_ocom']." à ".$schedule->data['n1_p1_ocom']);
\Notification::send(\App\User::find($schedule->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n1_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p1_ocom']));
}
if ($schedule->data['n1_p2_ocom'] != $original->data['n1_p2_ocom']) {
array_push($changes,"L'OCOM du niveau 1 pour la deuxième période a été changé de ".$original->data['n1_p2_ocom']." à ".$schedule->data['n1_p2_ocom']);
\Notification::send(\App\User::find($schedule->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n1_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p2_ocom']));
}
if ($schedule->data['n2_p1_ocom'] != $original->data['n2_p1_ocom']) {
array_push($changes,"L'OCOM du niveau 2 pour la première période a été changé de ".$original->data['n2_p1_ocom']." à ".$schedule->data['n2_p1_ocom']);
\Notification::send(\App\User::find($schedule->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n2_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p1_ocom']));
}
if ($schedule->data['n2_p2_ocom'] != $original->data['n2_p2_ocom']) {
array_push($changes,"L'OCOM du niveau 2 pour la deuxième période a été changé de ".$original->data['n2_p2_ocom']." à ".$schedule->data['n2_p2_ocom']);
\Notification::send(\App\User::find($schedule->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n2_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p2_ocom']));
}
if ($schedule->data['n3_p1_ocom'] != $original->data['n3_p1_ocom']) {
array_push($changes,"L'OCOM du niveau 3 pour la première période a été changé de ".$original->data['n3_p1_ocom']." à ".$schedule->data['n3_p1_ocom']);
\Notification::send(\App\User::find($schedule->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n3_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p1_ocom']));
}
if ($schedule->data['n3_p2_ocom'] != $original->data['n3_p2_ocom']) {
array_push($changes,"L'OCOM du niveau 3 pour la deuxième période a été changé de ".$original->data['n3_p2_ocom']." à ".$schedule->data['n3_p2_ocom']);
\Notification::send(\App\User::find($schedule->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n3_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p2_ocom']));
}
/** Check Local */
if ($schedule->data['n1_p1_local'] != $original->data['n1_p1_local']) {
array_push($changes,"Le local du niveau 1 pour la première période a été changé de ".$original->data['n1_p1_local']." à ".$schedule->data['n1_p1_local']);
}
if ($schedule->data['n1_p2_local'] != $original->data['n1_p2_local']) {
array_push($changes,"Le local du niveau 1 pour la deuxième période a été changé de ".$original->data['n1_p2_local']." à ".$schedule->data['n1_p2_local']);
}
if ($schedule->data['n2_p1_local'] != $original->data['n2_p1_local']) {
array_push($changes,"Le local du niveau 2 pour la première période a été changé de ".$original->data['n2_p1_local']." à ".$schedule->data['n2_p1_local']);
}
if ($schedule->data['n2_p2_local'] != $original->data['n2_p2_local']) {
array_push($changes,"Le local du niveau 2 pour la deuxième période a été changé de ".$original->data['n2_p2_local']." à ".$schedule->data['n2_p2_local']);
}
if ($schedule->data['n3_p1_local'] != $original->data['n3_p1_local']) {
array_push($changes,"Le local du niveau 3 pour la première période a été changé de ".$original->data['n3_p1_local']." à ".$schedule->data['n3_p1_local']);
}
if ($schedule->data['n3_p2_local'] != $original->data['n3_p2_local']) {
array_push($changes,"Le local du niveau 3 pour la deuxième période a été changé de ".$original->data['n3_p2_local']." à ".$schedule->data['n3_p2_local']);
}
/** Check Name */
if ($schedule->data['n1_p1_name'] != $original->data['n1_p1_name']) {
array_push($changes,"Le nom du cours niveau 1 pour la première période a été changé de ".$original->data['n1_p1_name']." à ".$schedule->data['n1_p1_name']);
\Notification::send(\App\User::find($schedule->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n1_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p1_name']));
}
if ($schedule->data['n1_p2_name'] != $original->data['n1_p2_name']) {
array_push($changes,"Le nom du cours niveau 1 pour la deuxième période a été changé de ".$original->data['n1_p2_name']." à ".$schedule->data['n1_p2_name']);
\Notification::send(\App\User::find($schedule->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n1_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p2_name']));
}
if ($schedule->data['n2_p1_name'] != $original->data['n2_p1_name']) {
array_push($changes,"Le nom du cours niveau 2 pour la première période a été changé de ".$original->data['n2_p1_name']." à ".$schedule->data['n2_p1_name']);
\Notification::send(\App\User::find($schedule->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n2_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p1_name']));
}
if ($schedule->data['n2_p2_name'] != $original->data['n2_p2_name']) {
array_push($changes,"Le nom du cours niveau 2 pour la deuxième période a été changé de ".$original->data['n2_p2_name']." à ".$schedule->data['n2_p2_name']);
\Notification::send(\App\User::find($schedule->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n2_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p2_name']));
}
if ($schedule->data['n3_p1_name'] != $original->data['n3_p1_name']) {
array_push($changes,"Le nom du cours niveau 3 pour la première période a été changé de ".$original->data['n3_p1_name']." à ".$schedule->data['n3_p1_name']);
\Notification::send(\App\User::find($schedule->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n3_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p1_name']));
}
if ($schedule->data['n3_p2_name'] != $original->data['n3_p2_name']) {
array_push($changes,"Le nom du cours niveau 3 pour la deuxième période a été changé de ".$original->data['n3_p2_name']." à ".$schedule->data['n3_p2_name']);
\Notification::send(\App\User::find($schedule->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n3_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p2_name']));
}
}
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Modification de l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date,"/admin/calendar"));
$string_Change = "<ul>";
foreach ($changes as $value) {
$string_Change = $string_Change."<li>".$value."</li>";
}
$string_Change = $string_Change."</ul>";
if(\App\Config::where('name','is_schedule_build')->first()->state == 1)
{
\Notification::send($userToNotify, new mail(\Auth::User(),"Modification d'une activité a l'horaire",\Auth::User()->fullname()." à modifié l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date."<br>".$string_Change));
}
Log::saveLog("Modification de l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date);
return redirect('/admin/calendar'); return redirect('/admin/calendar');
} }
@@ -530,5 +697,44 @@ class CalendarController extends Controller
$schedule = Schedule::find($id); $schedule = Schedule::find($id);
$schedule->delete(); $schedule->delete();
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Suppresion de l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date,"/admin/calendar"));
if(\App\Config::where('name','is_schedule_build')->first()->state == 1)
{
\Notification::send($userToNotify, new mail(\Auth::User(),"Suppression d'une activité a l'horaire",\Auth::User()->fullname()." à supprimé l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date));
}
Log::saveLog("Suppression de l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date);
}
private function listClass()
{
$schedules = \App\Schedule::all();
$filtered_schedules = collect();
$classes = [];
foreach($schedules as $schedule)
{
if($schedule->type == "regular")
{
$filtered_schedules->push($schedule);
}
}
foreach($filtered_schedules as $schedule)
{
array_push($classes,$schedule->data['n1_p1_ocom']);
array_push($classes,$schedule->data['n1_p2_ocom']);
array_push($classes,$schedule->data['n2_p1_ocom']);
array_push($classes,$schedule->data['n2_p2_ocom']);
array_push($classes,$schedule->data['n3_p1_ocom']);
array_push($classes,$schedule->data['n3_p2_ocom']);
}
$filtered_classes = array_unique($classes);
return $filtered_classes;
} }
} }

View File

@@ -173,4 +173,46 @@ class UserController extends Controller
$notification->delete(); $notification->delete();
return redirect(request('url')); return redirect(request('url'));
} }
public function notificationmarkALL()
{
$notifications = \Auth::User()->unreadNotifications;
foreach($notifications as $notification)
{
$notification->delete();
}
return redirect()->back();
}
public function notificationmarkECC($id)
{
$notification = \Auth::User()->unreadNotifications->where('id',$id)->first();
$notification->delete();
return redirect('/ecc');
}
public function showUserProfil($id = 0)
{
if ($id == 0) {
$id = \Auth::User()->id;
}
return view('admin.user.profil',['user' => \App\User::find($id)]);
}
public function editUserAvatar($id)
{
$user = \Auth::User();
$user->avatar = $id;
$user->save();
return redirect('/admin/profil/avatar')->with('status', 'Modification enregistré');
}
public function UserAvatar()
{
return view('admin.user.profil.avatar');
}
} }

View File

@@ -2253,7 +2253,6 @@ header .form-inline {
vertical-align: middle !important; vertical-align: middle !important;
border: solid 1px #d9d9d9 !important; border: solid 1px #d9d9d9 !important;
padding: 0px !important; padding: 0px !important;
display: flex;
} }
.calendar-date{ .calendar-date{
float: left; float: left;
@@ -2261,11 +2260,14 @@ header .form-inline {
} }
.calendar-text{ .calendar-text{
float: right; float: right;
margin-top: 1.5rem;
} }
.calendar-text > div { .calendar-text > div {
text-align:start; text-align:start;
} }
.calendar_event_name {
height: 3rem;
overflow: hidden;
}
@media only screen and (max-width: 800px) { @media only screen and (max-width: 800px) {
.calendar-container{ .calendar-container{
width: 100%; width: 100%;

View File

@@ -180,7 +180,7 @@ function switchType()
eventBeginTime.value = ""; eventBeginTime.value = "";
eventEndTime.value = ""; eventEndTime.value = "";
eventLocation.value = ""; eventLocation.value = "";
eventDesc.value = ""; eventDesc.value = "Financement";
divSpecialSection.style.display = "none"; divSpecialSection.style.display = "none";
break; break;
@@ -190,7 +190,7 @@ function switchType()
eventBeginTime.value = ""; eventBeginTime.value = "";
eventEndTime.value = ""; eventEndTime.value = "";
eventLocation.value = ""; eventLocation.value = "";
eventDesc.value = ""; eventDesc.value = "Bénévolat";
divSpecialSection.style.display = "none"; divSpecialSection.style.display = "none";
break; break;
@@ -200,7 +200,7 @@ function switchType()
eventBeginTime.value = ""; eventBeginTime.value = "";
eventEndTime.value = ""; eventEndTime.value = "";
eventLocation.value = ""; eventLocation.value = "";
eventDesc.value = ""; eventDesc.value = "Autre";
divSpecialSection.style.display = "none"; divSpecialSection.style.display = "none";
break; break;
} }

View File

@@ -7,6 +7,14 @@
Cours a venir Cours a venir
</div> </div>
<div class="card-body"> <div class="card-body">
@if(count($userClasse) == 0)
<div class="col-sm-12">
<div class="alert alert-info alert-with-icon">
<span data-notify="icon" class="ti-alert"></span>
<span data-notify="message">Aucun cours a venir</span>
</div>
</div>
@endif
@foreach ($userClasse as $classe) @foreach ($userClasse as $classe)
<div class="col-sm-6"> <div class="col-sm-6">
@if ($classe['plan_done'] == "on") @if ($classe['plan_done'] == "on")
@@ -52,13 +60,22 @@
<div class="col-sm-6 col-lg-6"> <div class="col-sm-6 col-lg-6">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<span class="count">{{count($futureEvent)}}</span>
<div class="float-right">Activité a venir</div> <div class="float-right">Activité a venir</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="row">
@if(count($futureEvent) == 0)
<div class="col-sm-12">
<div class="alert alert-infi alert-with-icon">
<span data-notify="icon" class="ti-alert"></span>
<span data-notify="message">Aucune activité a venir</span>
</div>
</div>
@endif
@foreach ($futureEvent as $event) @foreach ($futureEvent as $event)
<i class="fa fa-star" aria-hidden="true" style="color:gold"></i> {{$event->data['event_name']}}<br> <div class="col-md-6 col-sm-12"><i class="fa fa-star" aria-hidden="true" style="color:gold"></i> {{$event->data['event_name']}}</div>
@endforeach @endforeach
</div>
<br> <br>
<a href="/admin/calendar" type="button" class="btn btn-primary btn-lg btn-block">Afficher plus</a> <a href="/admin/calendar" type="button" class="btn btn-primary btn-lg btn-block">Afficher plus</a>
</div> </div>
@@ -113,7 +130,7 @@
</div> </div>
<hr> <hr>
<div class="card-text text-sm-center"> <div class="card-text text-sm-center">
<a href="#">Profil</a> <a href="/admin/profil">Profil</a>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,6 +1,44 @@
@extends('layouts.admin.main') @extends('layouts.admin.main')
@section('content') @section('content')
<!--/* ALPHA 3.0.5 */-->
<div class="card-header">
<strong class="card-title"><i class="fa fa-star" aria-hidden="true" style="color: gold"></i> ALPHA 3.0.6<small><span class="badge badge-success float-right mt-1">STABLE</span> <span class="badge badge-warning float-right mt-1">ALPHA</span></small></strong>
</div>
<div class="card-body">
<p>
Front-End
<ul style="margin-left: 28px;list-style-type: none;">
<li><i class="fa fa-plus" aria-hidden="true" style="color: green;width:1.2rem;"></i> Ajout d'un bouton pour supprimer toute les notifications</li>
<li><i class="fa fa-exclamation" aria-hidden="true" style="color: orange;width:1.2rem;"></i> Modification de l'affichage des activités a venir</li>
<li><i class="fa fa-exclamation" aria-hidden="true" style="color: orange;width:1.2rem;"></i> Modification de l'affichage des cours a venir</li>
</ul>
</p>
<hr>
<p>
Back End & API
<ul style="margin-left: 28px;list-style-type: none;">
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Ajout des notifications par Email.</li>
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Ajout des notifications pas SMS</li>
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Ajout de la suppression massive de notifications</li>
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Multiples autres ajouts</li>
</ul>
</p>
<hr>
<p>
Correction de bug
<ul style="margin-left: 28px;list-style-type: none;">
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/26"> - Largeur colonne profil utilisateur - #26</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/25"> - Bug dans la création d'horaire - Message automatique qui reste lors de changement d'act. - #25</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/24"> - Email page d'accueil - #24</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/32"> - Notification Lu - #32</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/23"> - Message qui gosse dans l'horaire - #23</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de multiple bug</li>
</ul>
</p>
<small><span class="badge badge-primary float-right mt-1">2018-11-08 12:30</span></small>
</div>
<!--/* ALPHA 3.0.5 */--> <!--/* ALPHA 3.0.5 */-->
<div class="card-header"> <div class="card-header">
<strong class="card-title"><i class="fa fa-star" aria-hidden="true" style="color: gold"></i> ALPHA 3.0.5<small><span class="badge badge-success float-right mt-1">STABLE</span> <span class="badge badge-warning float-right mt-1">ALPHA</span></small></strong> <strong class="card-title"><i class="fa fa-star" aria-hidden="true" style="color: gold"></i> ALPHA 3.0.5<small><span class="badge badge-success float-right mt-1">STABLE</span> <span class="badge badge-warning float-right mt-1">ALPHA</span></small></strong>

View File

@@ -0,0 +1,126 @@
@extends('layouts.admin.main')
@section('content')
<div @if ($user->id == \Auth::User()->id) class="col-md-12 col-lg-9" @else class="col-sm-12" @endif>
<div class="card">
<div class="card-body">
<div class="col-sm-6">
<div class="mx-auto d-block">
<img class="rounded-circle mx-auto d-block" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg" alt="Card image cap" style="height:12rem">
<h5 class="text-sm-center mt-2 mb-1">{{\Auth::User()->fullname()}}</h5>
<div class="location text-sm-center"><i class="fa fa-id-card-o" aria-hidden="true"></i> {{\App\Rank::find(\Auth::User()->rank)->name}}</div>
</div>
</div>
<div class="col-sm-6 text-center">
<br>
<div class="col-md-12">
<p>{{\App\Rank::find($user->job)->name}}</p>
<hr>
</div>
<div class="col-md-6">
<p>
Genre<br>
@if ($user->sexe == "m")
<i class="fa fa-mars fa-2x" aria-hidden="true" style="color:#0080FF"></i>
@elseif($user->sexe == "f")
<i class="fa fa-venus fa-2x" aria-hidden="true" style="color:#FE2EF7"></i>
@else
<i class="fa fa-genderless fa-2x" aria-hidden="true"></i>
@endif
</p>
</div>
<div class="col-md-6">
<p>
Age<br>
@if ($user->age != "Inconnu")
{{$user->age}} ans
@else
Inconnu
@endif
</p>
</div>
<div class="col-md-12">
<p>Téléphone<br>
@if ($user->telephone != "Inconnu")
@php
$data = '+'.$user->telephone;
if(preg_match( '/^\+\d(\d{3})(\d{3})(\d{4})$/',$data,$matches))
{
$result = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
echo $result;
}
@endphp
@else
Inconnu
@endif
</p>
</div>
<div class="col-md-12">
<p>Adresse<br>
{{$user->adress}}
</p>
</div>
</div>
<hr>
<div class="col-md-10 offset-md-1">
<p class="text-center">Dernières activitées de l'utilisateur</p>
<table class="table table-striped">
<thead class="thead-default">
<tr>
<th>Horodatage</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($user->logs()->take(6)->get() as $log)
<tr>
<td scope="row">{{$log->created_at}}</td>
<td>{{$log->action}}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@if ($user->id == \Auth::User()->id)
<div class="col-md-12 col-lg-3">
<div class="card">
<div class="card-body">
<a name="changepsw" id="changepsw" class="btn btn-warning btn-block" href="/admin/profil/password" role="button">Modifier mon mot de passe</a>
<a name="changepsw" id="changepsw" class="btn btn-secondary btn-block" href="/admin/profil/avatar" role="button">Modifier ma photo de profil</a>
<a name="changepsw" id="changepsw" class="btn btn-secondary btn-block" href="/admin/profil/phone" role="button">Modifier mon numéro de téléphone</a>
<a name="changepsw" id="changepsw" class="btn btn-secondary btn-block" href="/admin/profil/adress" role="button">Modifier mon adresse</a>
<a name="changepsw" id="changepsw" class="btn btn-primary btn-block" href="/admin/profil/preference" role="button">Modifier mes préférences</a>
<a name="changepsw" id="changepsw" class="btn btn-danger btn-block" href="/logout" role="button">Déconnexion</a>
</div>
</div>
</div>
@endif
@endsection
@section('breadcrumb')
<div class="breadcrumbs">
<div class="col-sm-4">
<div class="page-header float-left">
<div class="page-title">
<h1>Profil d'utilisateur</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">Utilisateur/Profil</li>
</ol>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
@endsection

View File

@@ -0,0 +1,57 @@
@extends('layouts.admin.main')
@section('content')
<div class="col-sm-12">
<div class="card">
<div class="card-body text-center">
@if (session('status'))
<div class="sufee-alert alert with-close alert-success alert-dismissible fade show">
<span class="badge badge-pill badge-success">Félicitation</span>
Votre avatar a été mis a jour !
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
Votre Avatar
<div class="mx-auto d-block">
<img class="rounded-circle mx-auto d-block" src="/assets/admin/images/avatar/user-{{\Auth::User()->avatar}}.jpg" alt="Card image cap" style="height:12rem">
</div>
<hr>
Cliquer sur un avatar pour mettre a jour votre avatar
<div class="row">
@for ($i = 1; $i < 16; $i++)
<div class="col-md-6 col-lg-4">
<a href="/admin/profil/edit/avatar/{{$i}}"><img class="rounded-circle mx-auto d-block" src="/assets/admin/images/avatar/user-{{$i}}.jpg" alt="Card image cap" style="height:12rem"></a>
</div>
@endfor
</div>
</div>
</div>
</div>
@endsection
@section('breadcrumb')
<div class="breadcrumbs">
<div class="col-sm-4">
<div class="page-header float-left">
<div class="page-title">
<h1>Profil d'utilisateur</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">Utilisateur/Profil/Avatar</li>
</ol>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
@endsection

View File

@@ -20,6 +20,14 @@
</div> </div>
<hr> <hr>
<div class="row"> <div class="row">
@if(count($AlluserClasse) == 0)
<div class="col-sm-12">
<div class="alert alert-info alert-with-icon">
<span data-notify="icon" class="ti-alert"></span>
<span data-notify="message">Aucun cours a venir</span>
</div>
</div>
@endif
@foreach ($userClasse as $classe) @foreach ($userClasse as $classe)
<div class="col-sm-12"> <div class="col-sm-12">
@if ($classe['plan_done'] == "on") @if ($classe['plan_done'] == "on")
@@ -85,22 +93,22 @@
<div class="row"> <div class="row">
<div class="text-center"> <div class="text-center">
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 1<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique du niveau 1<br><br><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214130&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-info">Télécharger</a></p>
</div> </div>
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 2<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique du niveau 2<br><br><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214132&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-info">Télécharger</a></p>
</div> </div>
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 3<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique du niveau 3<br><br><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214135&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-info">Télécharger</a></p>
</div> </div>
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 4<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique du niveau 4<br><br><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%216679&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-info">Télécharger</a></p>
</div> </div>
</div> </div>
</div> </div>
<hr> <hr>
<p class="text-center">Plan de cours vierge</p> <p class="text-center">Plan de cours vierge</p>
<a href="#" class="btn btn-block btn-info">Télécharger</a> <a href="https://onedrive.live.com/?id=45233BF612A4E12B%212758&cid=45233BF612A4E12B" class="btn btn-block btn-info">Télécharger</a>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -20,22 +20,22 @@
<div class="row"> <div class="row">
<div class="text-center"> <div class="text-center">
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 1<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique et de qualification du niveau 1<br><br><div class="row"><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214130&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-info">Guide pédagogique</a></div><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214128&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-info">Guide qualification</a></div></div></p>
</div> </div>
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 2<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique et de qualification du niveau 2<br><br><div class="row"><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214132&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-success">Guide pédagogique</a></div><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214129&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-success">Guide qualification</a></div></div></p>
</div> </div>
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 3<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique et de qualification du niveau 3<br><br><div class="row"><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214135&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-warning">Guide pédagogique</a></div><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%214131&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-warning">Guide qualification</a></div></div></p>
</div> </div>
<div class="col-sm-6" style="padding:3rem;"> <div class="col-sm-6" style="padding:3rem;">
<p>Guide pédagogique et de qualification du niveau 4<br><br><a class="btn btn-block btn-info">Télécharger</a></p> <p>Guide pédagogique et de qualification du niveau 4<br><br><div class="row"><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%216679&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-secondary">Guide pédagogique</a></div><div class="col-md-6 col-sm-12"><a href="https://onedrive.live.com/?cid=45233BF612A4E12B&id=45233BF612A4E12B%216678&parId=45233BF612A4E12B%212163&o=OneUp" target="_blank" class="btn btn-block btn-secondary">Guide qualification</a></div></div></p>
</div> </div>
</div> </div>
</div> </div>
<hr> <hr>
<p class="text-center">Plan de cours vierge</p> <p class="text-center">Plan de cours vierge</p>
<a href="#" class="btn btn-block btn-info">Télécharger</a> <a href="https://onedrive.live.com/?id=45233BF612A4E12B%212758&cid=45233BF612A4E12B" target="_blank" class="btn btn-block btn-info">Télécharger</a>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -2,6 +2,43 @@
@section('content') @section('content')
<div class="row"> <div class="row">
<div class="col-md-12">
<div class="card">
<div class="container">
<h5><i class="fa fa-star" aria-hidden="true" style="color:gold"></i> Mise a jour 3.0.6</h5>
<p>
Front-End
<ul style="margin-left: 28px;list-style-type: none;">
<li><i class="fa fa-plus" aria-hidden="true" style="color: green;width:1.2rem;"></i> Ajout d'un bouton pour supprimer toute les notifications</li>
<li><i class="fa fa-exclamation" aria-hidden="true" style="color: orange;width:1.2rem;"></i> Modification de l'affichage des activités a venir</li>
<li><i class="fa fa-exclamation" aria-hidden="true" style="color: orange;width:1.2rem;"></i> Modification de l'affichage des cours a venir</li>
</ul>
</p>
<hr>
<p>
Back End & API
<ul style="margin-left: 28px;list-style-type: none;">
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Ajout des notifications par Email.</li>
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Ajout des notifications pas SMS</li>
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Ajout de la suppression massive de notifications</li>
<li><i class="fa fa-plug" aria-hidden="true" style="color: #0174DF;width:1.2rem;"></i> Multiples autres ajouts</li>
</ul>
</p>
<hr>
<p>
Correction de bug
<ul style="margin-left: 28px;list-style-type: none;">
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/26"> - Largeur colonne profil utilisateur - #26</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/25"> - Bug dans la création d'horaire - Message automatique qui reste lors de changement d'act. - #25</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/24"> - Email page d'accueil - #24</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/32"> - Notification Lu - #32</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de <a href="https://gitlab.com/TheGamecraft/c-cms/issues/23"> - Message qui gosse dans l'horaire - #23</a></li>
<li><i class="fa fa-bug" aria-hidden="true" style="color: green;width:1.2rem;"></i> Correction de multiple bug</li>
</ul>
</p>
</div>
</div>
</div>
<div class="col-md-12"> <div class="col-md-12">
<div class="card"> <div class="card">
<div class="container"> <div class="container">

View File

@@ -28,6 +28,8 @@ foreach (Auth::user()->unreadNotifications as $notification) {
<?php } ?> <?php } ?>
</button> </button>
<div class="dropdown-menu" aria-labelledby="notification"> <div class="dropdown-menu" aria-labelledby="notification">
<a class="btn btn-primary btn-block" href="/admin/notication/mark">Manquer toutes les notifications comme lu</a>
<hr>
<?php <?php
foreach (Auth::user()->unreadNotifications as $notification) { foreach (Auth::user()->unreadNotifications as $notification) {
$fa_icon = "fa-info"; $fa_icon = "fa-info";

View File

@@ -24,8 +24,9 @@ foreach (Auth::user()->unreadNotifications as $notification) {
<b class="caret"></b> <b class="caret"></b>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="/ecc/notication/mark" class="btn btn-warning">Marquer toutes les notifications comme lue</a></li>
@foreach (Auth::user()->unreadNotifications as $notification) @foreach (Auth::user()->unreadNotifications as $notification)
<li><a href="#">{{$notification->data['msg']}}</a></li> <li style="width:250px"><form method="post" action="/ecc/notication/mark/{{$notification->id}}">{{csrf_field()}}<button style="border:none;margin:5px;background-color:white" name="url" type="submit" value="{{$notification->data['url']}}"><p>{{$notification->data['msg']}}</p></button></form></li>
@endforeach @endforeach
</ul> </ul>

View File

@@ -12,7 +12,7 @@
{{-- Intro Lines --}} {{-- Intro Lines --}}
@foreach ($introLines as $line) @foreach ($introLines as $line)
{{ $line }} {!! $line !!}
@endforeach @endforeach

View File

@@ -16,7 +16,7 @@ Auth::routes();
/* Index Route */ /* Index Route */
Route::get('/', function () { Route::get('/', function () {
return view('public'); return view('default');
}); });
Route::middleware(['auth','admin'])->group(function () { Route::middleware(['auth','admin'])->group(function () {
@@ -74,7 +74,16 @@ Route::middleware(['auth','admin'])->group(function () {
Route::get('/admin/config/local' , 'LocalController@index'); Route::get('/admin/config/local' , 'LocalController@index');
/** Notification */ /** Notification */
Route::post('/admin/notication/mark/{id}','UserController@notificationmark'); Route::get('/admin/notication/mark','UserController@notificationmarkALL');
Route::post('/admin/notication/mark/{id}','UserController@notificationmark');
Route::get('/ecc/notication/mark','UserController@notificationmarkALL');
Route::post('/ecc/notication/mark/{id}','UserController@notificationmarkECC');
/** Profil */
Route::get('/admin/profil/avatar' , 'UserController@UserAvatar');
Route::get('/admin/profil/edit/avatar/{id}' , 'UserController@editUserAvatar');
Route::get('/admin/profil/{id?}' , 'UserController@showUserProfil');
}); });
Route::middleware(['auth','staff'])->group(function () { Route::middleware(['auth','staff'])->group(function () {