From 33ac86a89b0ba9c7c21a7f7468f181e75ae4deb8 Mon Sep 17 00:00:00 2001 From: alexandre-pereira Date: Sat, 14 Mar 2015 16:11:11 +0100 Subject: [PATCH] Configuration du jeu possible + bugfixs --- SRC/app/Http/Controllers/APIController.php | 26 ++++++++++- SRC/app/Http/Controllers/GameController.php | 4 +- .../Http/Controllers/ReferentController.php | 18 +++++++- SRC/app/Oeuvre.php | 45 +++++++++++++++++++ .../views/backend/admin_home.blade.php | 2 +- .../views/backend/ref_home.blade.php | 41 ++++++++++++++--- .../views/backend/template.blade.php | 2 +- 7 files changed, 124 insertions(+), 14 deletions(-) diff --git a/SRC/app/Http/Controllers/APIController.php b/SRC/app/Http/Controllers/APIController.php index 75c4ea2..fa7051b 100644 --- a/SRC/app/Http/Controllers/APIController.php +++ b/SRC/app/Http/Controllers/APIController.php @@ -28,21 +28,43 @@ class APIController extends Controller { return Response::json($res->toArray()); } + public function searchOeuvres() { - /*$auteurs = (Input::get('auteur', array()))?Input::get('auteur', array()): []; + /* $auteurs = (Input::get('auteur', array()))?Input::get('auteur', array()): []; $designations = (Input::get('designation', array()))? Input::get('designation', array()): []; $domaines = (Input::get('domaine', array()))? Input::get('domaine', array()): []; $matieres = (Input::get('matiere', array()))? Input::get('matiere', array()): []; $techniques = (Input::get('technique', array()))?Input::get('technique', array()): []; $debut = (Input::get('debut'))? Input::get('debut'): ''; $fin = (Input::get('fin'))?Input::get('fin'): ''; + + $res = Oeuvre::authorFilter($auteurs) + ->techniqueFilter($techniques) + ->designationFilter($designations) + ->domaineFilter($domaines) + ->matiereFilter($matieres) + ->debutFilter($debut) + ->finFilter($fin) + ->paginate(15); + + return Response::json($res->toArray()); */ //::whereIn('technique_id', $techniques) //$res = Oeuvre::paginate(15); //$listeoeuvres = Oeuvre::where('auteur_id', '=', Input::get('auteur'))->simplePaginate(1); - $listeoeuvres = Oeuvre::simplePaginate(5); + $auteurs = (Input::get('auteur', array()))?Input::get('auteur', array()): []; + $designations = (Input::get('designation', array()))? Input::get('designation', array()): []; + $domaines = (Input::get('domaine', array()))? Input::get('domaine', array()): []; + $matieres = (Input::get('matiere', array()))? Input::get('matiere', array()): []; + $techniques = (Input::get('technique', array()))?Input::get('technique', array()): []; + $listeoeuvres = Oeuvre::authorFilter($auteurs) + ->techniqueFilter($techniques) + ->designationFilter($designations) + ->domaineFilter($domaines) + ->matiereFilter($matieres) + ->simplePaginate(15); return view('backend/ref_listeoeuvres',['oeuvres' => $listeoeuvres]); diff --git a/SRC/app/Http/Controllers/GameController.php b/SRC/app/Http/Controllers/GameController.php index c684514..86f80bb 100755 --- a/SRC/app/Http/Controllers/GameController.php +++ b/SRC/app/Http/Controllers/GameController.php @@ -49,10 +49,10 @@ class GameController extends Controller { } else { $oes = Oeuvre::orderByRaw("RAND()")->take(5)->get(); - $dimension = 2; $nbTab = 3; + $dimension = 2; } - + return view('frontend/puzzle', ['oeuvres' => $oes, 'dimension' => $dimension, 'nbTab' => $nbTab]); } diff --git a/SRC/app/Http/Controllers/ReferentController.php b/SRC/app/Http/Controllers/ReferentController.php index e8b8fdb..5577850 100755 --- a/SRC/app/Http/Controllers/ReferentController.php +++ b/SRC/app/Http/Controllers/ReferentController.php @@ -82,6 +82,8 @@ class ReferentController extends Controller { $newConfig = new ConfigJeu(); $newConfig->referent_id = Auth::user()->id; $newConfig->nom = Input::get('nomListe'); + $newConfig->parametres = json_encode(['p1' => 2, 'p2' => 3, 'p3' => 4, 'pt' => '3', + 'm1' => 2, 'm2' => 3, 'm3' => 4, 'mt' => '3']); $newConfig->save(); return redirect('/referent'); @@ -138,8 +140,20 @@ class ReferentController extends Controller { $configjeu = $me->configjeu->find($id); $paramsToSave = Input::all(); unset($paramsToSave['_token']); - $configjeu->parametres = json_encode($paramsToSave); - $configjeu->save(); + $valid = true; + foreach($paramsToSave as $p) { + if(!(is_numeric($p) && $p > 0 && $p<= 10)) $valid = false; + } + + + if(!$valid) + Session::flash('erreur', 'Les paramètres du jeu sont incorrect. Rééessayez.'); + else { + Session::flash('message', 'Vos modifications ont été prisent en compte.'); + $configjeu->parametres = json_encode($paramsToSave); + $configjeu->save(); + } + return redirect()->back(); } } diff --git a/SRC/app/Oeuvre.php b/SRC/app/Oeuvre.php index f3a4c40..e256b48 100644 --- a/SRC/app/Oeuvre.php +++ b/SRC/app/Oeuvre.php @@ -27,4 +27,49 @@ class Oeuvre extends Model { public function datation() { return $this->hasMany('App\Datation'); } + + public function scopeAuthorFilter($query, $array) + { + if ($array == []) return $query; + $query->whereHas('auteur', function($q) use ($array) + { + $q->whereIn('id', $array); + }); + } + + public function scopeDesignationFilter($query, $array) + { + if ($array == []) return $query; + $query->whereHas('designation', function($q) use ($array) + { + $q->whereIn('id', $array); + }); + } + + public function scopeDomaineFilter($query, $array) + { + if ($array == []) return $query; + $query->whereHas('domaine', function($q) use ($array) + { + $q->whereIn('id', $array); + }); + } + + public function scopeMatiereFilter($query, $array) + { + if ($array == []) return $query; + $query->whereHas('matiere', function($q) use ($array) + { + $q->whereIn('id', $array); + }); + } + + public function scopeTechniqueFilter($query, $array) + { + if ($array == []) return $query; + $query->whereHas('technique', function($q) use ($array) + { + $q->whereIn('id', $array); + }); + } } diff --git a/SRC/resources/views/backend/admin_home.blade.php b/SRC/resources/views/backend/admin_home.blade.php index ea4f3a3..0ec00c7 100644 --- a/SRC/resources/views/backend/admin_home.blade.php +++ b/SRC/resources/views/backend/admin_home.blade.php @@ -1,7 +1,7 @@ @extends('backend/template') @section('content') -
+
@if (session('message_add'))
diff --git a/SRC/resources/views/backend/ref_home.blade.php b/SRC/resources/views/backend/ref_home.blade.php index 1c72fd5..d162f10 100644 --- a/SRC/resources/views/backend/ref_home.blade.php +++ b/SRC/resources/views/backend/ref_home.blade.php @@ -1,9 +1,21 @@ @extends('backend/template') @section('content') @include('backend/ref_navbar') -
+ +
-
+ @if (session('message')) +
+ {{ Session::get('message') }} +
+ @endif + + @if (session('erreur')) +
+ {{ Session::get('erreur') }} +
+ @endif +
Mes listes d'Oeuvres
@@ -153,17 +165,17 @@
-
+
- +
- +
@@ -204,11 +216,28 @@ $('#imagesSearched').on('click', '.pager a', function (event) { event.preventDefault(); if ( $(this).attr('href') != '#' ) { $("#imagesSearched").animate({ scrollTop: 0 }, "fast"); - $('#imagesSearched').load($(this).attr('href'), function(){$("select.multiple").imagepicker();}); + $.get($(this).attr('href'), $('#recherche').serialize(), + function(data){ + $('#imagesSearched').empty(); + $('#imagesSearched').append(data); + $("select.multiple").imagepicker(); + }); } }); + +$("#recherche").on('submit', function(event){ + event.preventDefault(); + $('#imagesSearched').empty(); + $('#imagesSearched').append("Recherche en cours..."); + $.get("{{ URL::to('api/searchOeuvres') }}", $('#recherche').serialize(), + function(data){ + $('#imagesSearched').empty(); + $('#imagesSearched').append(data); + $("select.multiple").imagepicker(); + }); +}); /* diff --git a/SRC/resources/views/backend/template.blade.php b/SRC/resources/views/backend/template.blade.php index 7c7064b..ec0d8cb 100644 --- a/SRC/resources/views/backend/template.blade.php +++ b/SRC/resources/views/backend/template.blade.php @@ -8,7 +8,7 @@ @yield('page-css') - + @yield('content')