mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-21 10:49:10 -04:00
ALPHA 3.0.4
This commit is contained in:
@@ -20,12 +20,21 @@ class LoginController extends Controller
|
||||
|
||||
use AuthenticatesUsers;
|
||||
|
||||
protected function redirectTo()
|
||||
{
|
||||
if(\Auth::User()->getAcces(2))
|
||||
{
|
||||
return '/admin';
|
||||
} else if(\Auth::User()->getAcces(1)){
|
||||
return '/ecc';
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/admin';
|
||||
/**protected $redirectTo = '/admin';*/
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
|
||||
@@ -445,14 +445,14 @@ class CalendarController extends Controller
|
||||
$schedule->save();
|
||||
|
||||
/** Logs and Notification */
|
||||
Log::saveLog("Ajout de l'activité, ".$schedule->event_name." à l'horaire le ".$schedule->date);
|
||||
Log::saveLog("Ajout de l'activité, ".$schedule->name." à l'horaire le ".$schedule->date);
|
||||
|
||||
$userToNotify = $schedule->getUserToNotify();
|
||||
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Ajout de l'activité, ".$schedule->event_name." à l'horaire le ".$schedule->date,"/admin/calendar"));
|
||||
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Ajout de l'activité, ".$schedule->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(),"Ajout d'une activité a l'horaire",\Auth::User()->fullname()." à ajouté l'activité, ".$schedule->event_name." à l'horaire le ".$schedule->date));
|
||||
\Notification::send($userToNotify, new mail(\Auth::User(),"Ajout d'une activité a l'horaire",\Auth::User()->fullname()." à ajouté l'activité, ".$schedule->name." à l'horaire le ".$schedule->date));
|
||||
}
|
||||
return redirect('/admin/calendar');
|
||||
|
||||
|
||||
300
app/Http/Controllers/ECCController.php
Normal file
300
app/Http/Controllers/ECCController.php
Normal file
@@ -0,0 +1,300 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use \App\Schedule;
|
||||
|
||||
class ECCController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$messages = \App\Message::all()->forPage(1,4);
|
||||
return view('ecc.dashboard',['userClasse' => \Auth::User()->getClasse()->forPage(1,8), 'messages' => $messages,'AlluserClasse' => \Auth::User()->getClasse()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update()
|
||||
{
|
||||
return view('ecc.update');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function messages($page = 1)
|
||||
{
|
||||
if ($page < 1) {
|
||||
$page = 1;
|
||||
}
|
||||
$messages = \App\Message::all()->forPage($page,6);
|
||||
return view('ecc.messages',['messages' => $messages,'page'=>$page]);
|
||||
}
|
||||
|
||||
public function message($id)
|
||||
{
|
||||
$messages = \App\Message::find($id);
|
||||
return view('ecc.message',['message' => $messages]);
|
||||
}
|
||||
|
||||
public function guide()
|
||||
{
|
||||
return view('ecc.guide');
|
||||
}
|
||||
|
||||
public function calendar()
|
||||
{
|
||||
return view('ecc.calendar');
|
||||
}
|
||||
|
||||
public function generateCalendar()
|
||||
{
|
||||
$lang = str_replace('_', '-', app()->getLocale());
|
||||
setlocale(LC_ALL, $lang.'_'.strtoupper($lang).'.utf8','fra');
|
||||
|
||||
$month = request('month');
|
||||
$year = request('year');
|
||||
|
||||
$nextMonth = $month + 1;
|
||||
$nextYear = $year;
|
||||
|
||||
if ($nextMonth > 12) {
|
||||
$nextMonth = 1;
|
||||
$nextYear = $nextYear + 1;
|
||||
}
|
||||
|
||||
$prevMonth = $month - 1;
|
||||
$prevYear = $year;
|
||||
|
||||
if ($prevMonth < 1) {
|
||||
$prevMonth = 12;
|
||||
$prevYear = $prevYear - 1;
|
||||
}
|
||||
|
||||
$calendar = array();
|
||||
|
||||
$dayinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
|
||||
|
||||
$firstdaymonth = date("w", strtotime("01-".$month."-".$year));
|
||||
|
||||
$addingday = 0;
|
||||
|
||||
for ($i=$firstdaymonth ; $addingday < $dayinmonth ; $i++) {
|
||||
$addingday = $addingday + 1;
|
||||
$calendar[$i] = $addingday;
|
||||
}
|
||||
|
||||
echo '<div class="table calendar">';
|
||||
echo '<div class="thead-dark">';
|
||||
echo '<div class="row calendar-head"><div class="col-sm-2"><a class="btn" onclick="generate('.$prevMonth.','.$prevYear.')"><i class="fa fa-chevron-left" aria-hidden="true"></i></a></div><div class="col-sm-8">'.ucfirst(strftime("%B %Y", strtotime("01-".$month."-".$year))).'</div><div class="col-sm-2"><a class="btn" onclick="generate('.$nextMonth.','.$nextYear.')"><i class="fa fa-chevron-right" aria-hidden="true"></i></a></div></div>';
|
||||
echo '<div class="row calendar-head"><div style="width:14%;">Dimanche</div><div style="width:14%;">Lundi</div><div style="width:14%;">Mardi</div><div style="width:14%;">Mercredi</div><div style="width:14%;">Jeudi</div><div style="width:14%;">Vendredi</div><div style="width:14%;">Samedi</div></div>';
|
||||
echo '</div>';
|
||||
echo '<div class="calendar-body">';
|
||||
for ($i=0; $i < 6 ; $i++)
|
||||
{
|
||||
echo '<div class="calendar-row">';
|
||||
for ($a=0; $a < 7 ; $a++)
|
||||
{
|
||||
if (isset($calendar[(($i*7) + $a)]))
|
||||
{
|
||||
/** Date info */
|
||||
$today = date("Y-m-d", strtotime($year."-".$month."-".$calendar[(($i*7) + $a)]));
|
||||
$activityToday = Schedule::where('date','=',$today)->get();
|
||||
|
||||
/** If nothing today */
|
||||
if ($activityToday->isEmpty()) {
|
||||
echo '<a href="/ecc/calendar/'.$today.'" class="calendar-container calendar-empty" name="'.$today.'" id="calendar_'.$calendar[(($i*7) + $a)].'"><div class="calendar-date">'.date("j", strtotime($today)).'</div></a>';
|
||||
} else {
|
||||
echo '<a href="/ecc/calendar/'.$today.'" class="calendar-container" name="'.$today.'" id="calendar_'.$calendar[(($i*7) + $a)].'">';
|
||||
$text = "";
|
||||
echo '<div class="calendar-date">'.date("j", strtotime($today)).'</div>';
|
||||
foreach ($activityToday as $activity) {
|
||||
echo '<div class="calendar-text" style="width:90%;">';
|
||||
switch ($activity->type) {
|
||||
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>";
|
||||
break;
|
||||
|
||||
case 'pilotage':
|
||||
echo '<div class="row" style="color:#58D3F7;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-plane fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
|
||||
case 'drill':
|
||||
echo '<div class="row" style="color:blue;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-trophy fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
|
||||
case 'music':
|
||||
echo '<div class="row" style="color:green;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-music fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
|
||||
case 'biathlon':
|
||||
echo '<div class="row" style="color:red;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-snowflake-o fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
|
||||
case 'marksmanship':
|
||||
echo '<div class="row" style="color:grey;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-star fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
|
||||
case 'founding':
|
||||
echo '<div class="row" style="color:#00FF40;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-usd fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
|
||||
case 'volunteer':
|
||||
echo '<div class="row" style="color:#DF0174;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-handshake-o fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
|
||||
default:
|
||||
echo '<div class="row" style="color:#0B615E;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
||||
break;
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
echo '</a>';
|
||||
}
|
||||
} else {
|
||||
echo '<div class="calendar-container¸calendar-empty" style="border:none !important; width:14%;"></div>';
|
||||
}
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function calendar_date($date)
|
||||
{
|
||||
$schedules = \App\Schedule::all()->where('date',$date);
|
||||
|
||||
return view('ecc.calendar_date',['schedules' => $schedules]);
|
||||
}
|
||||
|
||||
public function booking($id,$niveau,$periode)
|
||||
{
|
||||
$schedule = Schedule::find($id);
|
||||
|
||||
$periode_item = 'n'.$niveau.'_p'.$periode.'_item';
|
||||
$periode_instr = 'n'.$niveau.'_p'.$periode.'_instructor';
|
||||
|
||||
if(\Auth::User()->id != $schedule->data[$periode_instr])
|
||||
{
|
||||
abort(401);
|
||||
}
|
||||
|
||||
$items = collect();
|
||||
if (isset($schedule->$periode_item)) {
|
||||
$items_array = explode("-",$schedule->$periode_item);
|
||||
|
||||
foreach ($items_array as $item_array) {
|
||||
if ($item_array != "") {
|
||||
$items->push(\App\Item::find($item_array));
|
||||
}
|
||||
}
|
||||
}
|
||||
return view('ecc.booking',['schedule' => $schedule, 'periode' => $periode, 'niveau' => $niveau, 'items' => $items, 'dispo_item' => $schedule->getInventory($periode)]);
|
||||
}
|
||||
|
||||
public function booking_add($id,$periode,$niveau)
|
||||
{
|
||||
$schedule = Schedule::find($id);
|
||||
|
||||
$periode_item = 'n'.$niveau.'_p'.$periode.'_item';
|
||||
|
||||
if (isset($schedule->$periode_item)) {
|
||||
$array_items = explode("-",$schedule->$periode_item);
|
||||
array_push($array_items,request('add'));
|
||||
} else {
|
||||
$array_items = [];
|
||||
array_push($array_items,request('add'));
|
||||
}
|
||||
|
||||
$final_items = implode("-",$array_items);
|
||||
|
||||
$schedule->$periode_item = $final_items;
|
||||
|
||||
$schedule->save();
|
||||
|
||||
return redirect('/ecc/inventory/'.$id.'/'.$niveau.'/'.$periode);
|
||||
}
|
||||
|
||||
public function booking_remove($id,$periode,$niveau)
|
||||
{
|
||||
$schedule = Schedule::find($id);
|
||||
$remove = [request('remove')];
|
||||
$periode_item = 'n'.$niveau.'_p'.$periode.'_item';
|
||||
|
||||
if (isset($schedule->$periode_item)) {
|
||||
$array_items = explode("-",$schedule->$periode_item);
|
||||
$array_items = array_diff($array_items,$remove);
|
||||
} else {
|
||||
$array_items = [];
|
||||
$array_items = array_diff($array_items,$remove);
|
||||
}
|
||||
|
||||
$final_items = implode("-",$array_items);
|
||||
$schedule->$periode_item = $final_items;
|
||||
$schedule->save();
|
||||
|
||||
return redirect('/ecc/inventory/'.$id.'/'.$niveau.'/'.$periode);
|
||||
}
|
||||
}
|
||||
12
app/Item.php
12
app/Item.php
@@ -6,5 +6,15 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Item extends Model
|
||||
{
|
||||
//
|
||||
public static function explodeItems($items)
|
||||
{
|
||||
$array_items = explode("-",$items);
|
||||
$col_items = collect();
|
||||
|
||||
foreach ($array_items as $item) {
|
||||
$col_items->push(Item::find($item));
|
||||
}
|
||||
$col_items->forget(0);
|
||||
return $col_items;
|
||||
}
|
||||
}
|
||||
|
||||
139
app/User.php
139
app/User.php
@@ -97,4 +97,143 @@ class User extends Authenticatable
|
||||
}
|
||||
return $perm_value;
|
||||
}
|
||||
|
||||
public function getClasse()
|
||||
{
|
||||
$schedules = Schedule::all()->where('type','regular')->sortBy('date');
|
||||
$currentUser = \Auth::User();
|
||||
|
||||
$filtered_schedule = collect();
|
||||
$user_classes = collect();
|
||||
|
||||
foreach ($schedules as $day) {
|
||||
if ($day->date >= date('Y-m-d')) {
|
||||
$filtered_schedule->push($day);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($filtered_schedule as $schedule) {
|
||||
if ($schedule->data['n1_p1_instructor'] == $currentUser->id) {
|
||||
$user_classes->push(collect([
|
||||
'date' => $schedule->date,
|
||||
'periode' => '1',
|
||||
'niveau' => '1',
|
||||
'name' => $schedule->data['n1_p1_name'],
|
||||
'ocom' => $schedule->data['n1_p1_ocom'],
|
||||
'local' => $schedule->data['n1_p1_local'],
|
||||
'plan_done' => $schedule->data['n1_p1_plandone'],
|
||||
'material' => $schedule->n1_p1_item,
|
||||
]));
|
||||
}
|
||||
|
||||
if ($schedule->data['n1_p2_instructor'] == $currentUser->id) {
|
||||
$user_classes->push(collect([
|
||||
'date' => $schedule->date,
|
||||
'periode' => '2',
|
||||
'niveau' => '1',
|
||||
'name' => $schedule->data['n1_p2_name'],
|
||||
'ocom' => $schedule->data['n1_p2_ocom'],
|
||||
'local' => $schedule->data['n1_p2_local'],
|
||||
'plan_done' => $schedule->data['n1_p2_plandone'],
|
||||
'material' => $schedule->n1_p2_item,
|
||||
]));
|
||||
}
|
||||
|
||||
if ($schedule->data['n2_p1_instructor'] == $currentUser->id) {
|
||||
$user_classes->push(collect([
|
||||
'date' => $schedule->date,
|
||||
'periode' => '1',
|
||||
'niveau' => '2',
|
||||
'name' => $schedule->data['n2_p1_name'],
|
||||
'ocom' => $schedule->data['n2_p1_ocom'],
|
||||
'local' => $schedule->data['n2_p1_local'],
|
||||
'plan_done' => $schedule->data['n2_p1_plandone'],
|
||||
'material' => $schedule->n2_p1_item,
|
||||
]));
|
||||
}
|
||||
|
||||
if ($schedule->data['n2_p2_instructor'] == $currentUser->id) {
|
||||
$user_classes->push(collect([
|
||||
'date' => $schedule->date,
|
||||
'periode' => '2',
|
||||
'niveau' => '2',
|
||||
'name' => $schedule->data['n2_p2_name'],
|
||||
'ocom' => $schedule->data['n2_p2_ocom'],
|
||||
'local' => $schedule->data['n2_p2_local'],
|
||||
'plan_done' => $schedule->data['n2_p2_plandone'],
|
||||
'material' => $schedule->n2_p2_item,
|
||||
]));
|
||||
}
|
||||
|
||||
if ($schedule->data['n3_p1_instructor'] == $currentUser->id) {
|
||||
$user_classes->push(collect([
|
||||
'date' => $schedule->date,
|
||||
'periode' => '1',
|
||||
'niveau' => '3',
|
||||
'name' => $schedule->data['n3_p1_name'],
|
||||
'ocom' => $schedule->data['n3_p1_ocom'],
|
||||
'local' => $schedule->data['n3_p1_local'],
|
||||
'plan_done' => $schedule->data['n3_p1_plandone'],
|
||||
'material' => $schedule->n3_p1_item,
|
||||
]));
|
||||
}
|
||||
|
||||
if ($schedule->data['n3_p2_instructor'] == $currentUser->id) {
|
||||
$user_classes->push(collect([
|
||||
'date' => $schedule->date,
|
||||
'periode' => '2',
|
||||
'niveau' => '3',
|
||||
'name' => $schedule->data['n3_p2_name'],
|
||||
'ocom' => $schedule->data['n3_p2_ocom'],
|
||||
'local' => $schedule->data['n3_p2_local'],
|
||||
'plan_done' => $schedule->data['n3_p2_plandone'],
|
||||
'material' => $schedule->n3_p2_item,
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
return $user_classes;
|
||||
}
|
||||
|
||||
public function countActivity()
|
||||
{
|
||||
return count(\App\Log::all()->where('user_id',$this->id));
|
||||
}
|
||||
|
||||
public function countClasse()
|
||||
{
|
||||
$nbClasse = 0;
|
||||
|
||||
$schedules = Schedule::all()->where('type','regular')->sortBy('date');
|
||||
|
||||
$filtered_schedule = collect();
|
||||
|
||||
foreach (\App\Schedule::all() as $day) {
|
||||
if ($day->date >= date('Y-m-d')) {
|
||||
$filtered_schedule->push($day);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($filtered_schedule as $schedule) {
|
||||
if ($schedule->data['n1_p1_instructor'] == $this->id) {
|
||||
$nbClasse = ++$nbClasse;
|
||||
}
|
||||
if ($schedule->data['n1_p2_instructor'] == $this->id) {
|
||||
$nbClasse = ++$nbClasse;
|
||||
}
|
||||
if ($schedule->data['n2_p1_instructor'] == $this->id) {
|
||||
$nbClasse = ++$nbClasse;
|
||||
}
|
||||
if ($schedule->data['n2_p2_instructor'] == $this->id) {
|
||||
$nbClasse = ++$nbClasse;
|
||||
}
|
||||
if ($schedule->data['n3_p1_instructor'] == $this->id) {
|
||||
$nbClasse = ++$nbClasse;
|
||||
}
|
||||
if ($schedule->data['n3_p2_instructor'] == $this->id) {
|
||||
$nbClasse = ++$nbClasse;
|
||||
}
|
||||
}
|
||||
return $nbClasse;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user