diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index 43bf85b7..f91c1c7b 100644 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -36,6 +36,7 @@ class EventController extends Controller */ public function store() { + dd(\request()); $event = new Event(); $event->name = request('name'); diff --git a/app/Http/Controllers/OCOMController.php b/app/Http/Controllers/OCOMController.php index 16e7d2bc..c790f166 100644 --- a/app/Http/Controllers/OCOMController.php +++ b/app/Http/Controllers/OCOMController.php @@ -625,22 +625,25 @@ X20,\"Participer à des activités $ocom = ""; preg_match('/[MC]\S\d\d.\d\d[A-Z]?/',$match,$ocom); - $oren = ""; - preg_match('/[X\d]\d\d/',$ocom[0],$oren); + if(!OCOM::where('ocom',$ocom)->first()) + { + $oren = ""; + preg_match('/[X\d]\d\d/',$ocom[0],$oren); - $obj_competence = str_replace($ocom[0].",","",$match); - $obj_competence = trim(preg_replace('/\s\s+/', ' ', $obj_competence)); + $obj_competence = str_replace($ocom[0].",","",$match); + $obj_competence = trim(preg_replace('/\s\s+/', ' ', $obj_competence)); - $nbPeriode = preg_replace('/[MC]\S\d\d.\d\d[A-Z]?,[^,]*,/','',$match); - $newocom->nbPeriode = $nbPeriode; + $nbPeriode = preg_replace('/[MC]\S\d\d.\d\d[A-Z]?,[^,]*,/','',$match); + $newocom->nbPeriode = $nbPeriode; - $obj_competence = str_replace(",".$nbPeriode,'',$obj_competence); + $obj_competence = str_replace(",".$nbPeriode,'',$obj_competence); - $newocom->ocom = $ocom[0]; - $newocom->oren = $oren[0]; - $newocom->objectif_competence = $obj_competence; - $newocom->objectif_rendement = $orens[$oren[0]]; - $newocom->save(); + $newocom->ocom = $ocom[0]; + $newocom->oren = $oren[0]; + $newocom->objectif_competence = $obj_competence; + $newocom->objectif_rendement = $orens[$oren[0]]; + $newocom->save(); + } } dd(\App\OCOM::all()); } diff --git a/app/Http/Controllers/ScheduleEditorController.php b/app/Http/Controllers/ScheduleEditorController.php index bd4e9664..324325c3 100644 --- a/app/Http/Controllers/ScheduleEditorController.php +++ b/app/Http/Controllers/ScheduleEditorController.php @@ -28,6 +28,27 @@ class ScheduleEditorController extends Controller return json_encode($eventType); } + public function getEmptyPeriode(int $id) + { + return view('admin.schedule.editor.periode',[ + 'periode_name' => 'Periode '.$id, + 'periode_begin_time' => '00:00', + 'periode_end_time' => '00:00', + 'periode_id' => $id, + 'nbLevel' => request('nblevel') + ]); + } + + public function getEmptyLevel(int $id) + { + return view('admin.schedule.editor.level',['periode_id' => \request('nbPeriode'),'level_id' => $id]); + } + + public function getLevelHeader(int $id) + { + return view('admin.schedule.editor.levelHeader',['level_id' => $id,'level_name' => 'Niveau '.$id]); + } + public function test() { $evenType = new \App\EventType(); diff --git a/public/css/material-dashboard.css b/public/css/material-dashboard.css index 4b2dc50c..223c69a9 100644 --- a/public/css/material-dashboard.css +++ b/public/css/material-dashboard.css @@ -3305,9 +3305,9 @@ fieldset:disabled a.btn { } .btn-secondary:hover { - color: #ffffff !important; - background-color: #5a6268 !important; - border-color: #545b62 !important; + color: #ffffff; + background-color: #5a6268; + border-color: #545b62; } .btn-secondary:focus, diff --git a/public/js/plugins/schedule/editor.js b/public/js/plugins/schedule/editor.js index 67ab97db..e47df87f 100644 --- a/public/js/plugins/schedule/editor.js +++ b/public/js/plugins/schedule/editor.js @@ -1,4 +1,7 @@ var editorTemplate; +var nbOfPeriode; +var nbOfLevel; +var emptyPeriode; function initScheduleEditor(id, eventType) { @@ -7,8 +10,8 @@ function initScheduleEditor(id, eventType) url: '/api/schedule/editor/init/'+eventType+'?api_token='+api_token, success: function (template) { $("#"+id).html(template); - for (let pniveau = 1; pniveau <= 3; pniveau++) { - for (let pperiode = 1; pperiode <= 3; pperiode++) { + for (let pniveau = 1; pniveau <= nbOfLevel; pniveau++) { + for (let pperiode = 1; pperiode <= nbOfPeriode; pperiode++) { loadCourse(pniveau,pperiode); } } @@ -36,6 +39,7 @@ function initScheduleEditor(id, eventType) lang: 'fr' }); $('select').selectpicker(); + } function switchUseWeeklyMsg() @@ -78,6 +82,54 @@ function loadCourse(periode,niveau) }) } +function addPeriode() +{ + var periodeToAdd = nbOfPeriode+1; + $.ajax({ + type: 'GET', + url: '/api/schedule/editor/emptyperiode/'+periodeToAdd+'?api_token='+api_token+'&nblevel='+nbOfLevel, + success: function (template) { + $('#row-'+nbOfPeriode).after(template); + for (let i = 1; i <= nbOfLevel; i++) { + loadCourse(periodeToAdd,i); + } + nbOfPeriode = periodeToAdd; + initAutoComplete("AutoCompleteUser"); + initAutoCompleteOCOM('AutoCompleteOCOM'); + }, + error: function () { + showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center') + } + }) +} + +function addLevel() +{ + var levelToAdd = nbOfLevel+1; + var oldnbOfLevel = nbOfLevel; + nbOfLevel++; + $.ajax({ + type: 'GET', + url: '/api/schedule/editor/levelHeader/'+levelToAdd+'?api_token='+api_token, + success: function (template) { + $('#levelHeader-'+oldnbOfLevel).after(template) + for (let i = 1; i <= nbOfPeriode; i++) { + $('#container-'+oldnbOfLevel+'-'+i).after('
@loaderDot
'); + } + for (let i = 1; i <= nbOfPeriode; i++) { + loadCourse(i,levelToAdd); + } + }, + error: function () { + showNotification('error','Impossible d\'ajouter une nouvelle entête de niveau ...','top', 'center') + } + }) + setTimeout(function () { + initAutoComplete("AutoCompleteUser"); + initAutoCompleteOCOM('AutoCompleteOCOM'); + },1000) +} + function loadEventType(date) { var selectInput = $('#type'); @@ -88,6 +140,8 @@ function loadEventType(date) success: function (data) { var result = JSON.parse(data); editorTemplate = result; + nbOfLevel = editorTemplate.schedule_model.niveaux.length; + nbOfPeriode = editorTemplate.schedule_model.periodes.length; initScheduleEditor("scheduleEditor",id) $.each(result, function (i, val) { if(i == "is_mandatory" || i == "use_schedule" || i == "use_weekly_msg") @@ -212,16 +266,16 @@ function selectCourseMode(mode, niveau, periode) function selectCourseModePeriode(mode,periode) { - $.each(editorTemplate['schedule_model']['niveaux'], function (i, val) { + for (let i = 0; i < nbOfLevel; i++) { selectCourseMode(mode,i+1,periode); - }); + } } function selectCourseModeNiveau(mode,niveau) { - $.each(editorTemplate['schedule_model']['periodes'], function (i, val) { + for (let i = 0; i < nbOfPeriode; i++) { selectCourseMode(mode,niveau,i+1); - }); + } } function updatePlantext(toggle,id) diff --git a/resources/views/admin/schedule/editor/course.blade.php b/resources/views/admin/schedule/editor/course.blade.php index 17a7b53c..4e7c8361 100644 --- a/resources/views/admin/schedule/editor/course.blade.php +++ b/resources/views/admin/schedule/editor/course.blade.php @@ -25,18 +25,18 @@
-
+
- +
- +
- + @@ -53,7 +53,7 @@
- + @@ -62,7 +62,7 @@
- +
-
- Test -
\ No newline at end of file diff --git a/resources/views/admin/schedule/editor/level.blade.php b/resources/views/admin/schedule/editor/level.blade.php new file mode 100644 index 00000000..d4290ba9 --- /dev/null +++ b/resources/views/admin/schedule/editor/level.blade.php @@ -0,0 +1,3 @@ +
+ @loaderDot +
\ No newline at end of file diff --git a/resources/views/admin/schedule/editor/levelHeader.blade.php b/resources/views/admin/schedule/editor/levelHeader.blade.php new file mode 100644 index 00000000..0502fe08 --- /dev/null +++ b/resources/views/admin/schedule/editor/levelHeader.blade.php @@ -0,0 +1,21 @@ +
+
+
+
+ + +
+
+
+ + +
+
+
\ No newline at end of file diff --git a/resources/views/admin/schedule/editor/periode.blade.php b/resources/views/admin/schedule/editor/periode.blade.php new file mode 100644 index 00000000..06910423 --- /dev/null +++ b/resources/views/admin/schedule/editor/periode.blade.php @@ -0,0 +1,43 @@ +
+
+
+
+
+ + +
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ @for($i = 1; $i <= $nbLevel;$i++) + @include('admin.schedule.editor.level',['periode_id' => $periode_id,'level_id' => $i]) + @endfor +
+ +
+
\ No newline at end of file diff --git a/resources/views/admin/schedule/editor/template.blade.php b/resources/views/admin/schedule/editor/template.blade.php index d21dd37e..b240caaa 100644 --- a/resources/views/admin/schedule/editor/template.blade.php +++ b/resources/views/admin/schedule/editor/template.blade.php @@ -5,84 +5,26 @@
@foreach($eventType->schedule_model['niveaux'] as $niveau) -
-
-
-
- - -
-
-
- - -
-
-
+ @include('admin.schedule.editor.levelHeader',['level_id' => $loop->index+1,'level_name' => $niveau['name']]) @endforeach
-
@foreach($eventType->schedule_model['periodes'] as $periode) -
-
-
-
-
- - -
-
-
- - -
-
-
-
-
- - -
-
-
-
- - -
-
-
-
- @foreach($eventType->schedule_model['niveaux'] as $niveau) -
- @loaderDot -
- @endforeach -
- -
-
+ @include('admin.schedule.editor.periode',[ + 'periode_name' => $periode['name'], + 'periode_begin_time' => $periode['begin_time'], + 'periode_end_time' => $periode['end_time'], + 'periode_id' => $loop->index+1, + 'nbLevel' => count($eventType->schedule_model['niveaux']) + ]) @endforeach
-
diff --git a/routes/api.php b/routes/api.php index 31a6728a..16733b22 100644 --- a/routes/api.php +++ b/routes/api.php @@ -22,6 +22,9 @@ Route::middleware('auth:api')->group(function () { Route::get('/schedule/editor/init/{id}','ScheduleEditorController@getTemplate')->middleware('perm:schedule_edit'); Route::get('/schedule/editor/course/{niveau}/{periode}','ScheduleEditorController@getCourseEmpty')->middleware('perm:schedule_edit'); Route::get('/schedule/editor/template/{id}','ScheduleEditorController@getEventTemplate')->middleware('perm:schedule_add'); + Route::get('/schedule/editor/emptyperiode/{id}','ScheduleEditorController@getEmptyPeriode')->middleware('perm:schedule_add'); + Route::get('/schedule/editor/emptylevel/{id}','ScheduleEditorController@getEmptyLevel')->middleware('perm:schedule_add'); + Route::get('/schedule/editor/levelHeader/{id}','ScheduleEditorController@getLevelHeader')->middleware('perm:schedule_add'); Route::post('/schedule/event/delete/{id}','ScheduleController@delete')->middleware('perm:schedule_delete'); /** Booking */ diff --git a/routes/web.php b/routes/web.php index 093884cd..61206113 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,6 +16,9 @@ use Illuminate\Support\Facades\Storage; Auth::routes(); Route::get('logout', 'Auth\LoginController@logout')->name('logout'); Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate'); +Route::get("/test/{id}",'ScheduleEditorController@getEventTemplate'); +Route::get('/ocom/create','OCOMController@create'); + /** Public Route */