diff options
-rw-r--r-- | app/Http/Controllers/VerbController.php | 12 | ||||
-rw-r--r-- | composer.json | 3 | ||||
-rw-r--r-- | database/migrations/2017_09_20_150615_make_request_text.php | 32 | ||||
-rw-r--r-- | public/js/hebrewparsetrainer.js | 20 | ||||
-rw-r--r-- | resources/views/trainer.blade.php | 2 | ||||
-rw-r--r-- | routes/web.php | 2 |
6 files changed, 57 insertions, 14 deletions
diff --git a/app/Http/Controllers/VerbController.php b/app/Http/Controllers/VerbController.php index 59289c1..042bfe2 100644 --- a/app/Http/Controllers/VerbController.php +++ b/app/Http/Controllers/VerbController.php @@ -33,14 +33,14 @@ use Illuminate\Support\Facades\Validator; class VerbController extends Controller { public function random() { - $verbs = Verb::where('active', 1)->get(); + $verbs = Verb::where('active', 1); foreach (Input::get() as $col => $val) { - $val = explode(',', $val); - $verbs = $verbs->filter(function(Verb $item) use ($col, $val) { - return in_array($item->getAttribute($col), $val); - }); + if ($col == '_token') + continue; + $vals = explode(',', $val); + $verbs = $verbs->whereIn($col, $vals); } - $verb = $verbs->random(); + $verb = $verbs->get()->random(); $log = new RandomLog(); $log->request = json_encode(Input::get()); diff --git a/composer.json b/composer.json index 1d24a6a..7f8200c 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,8 @@ "php": ">=5.6.4", "laravel/framework": "5.3.*", "twbs/bootstrap": "^3.3", - "components/jquery": "^2.1" + "components/jquery": "^2.1", + "doctrine/dbal": "^2.5" }, "require-dev": { "fzaninotto/faker": "~1.4", diff --git a/database/migrations/2017_09_20_150615_make_request_text.php b/database/migrations/2017_09_20_150615_make_request_text.php new file mode 100644 index 0000000..4ccf82b --- /dev/null +++ b/database/migrations/2017_09_20_150615_make_request_text.php @@ -0,0 +1,32 @@ +<?php + +use Illuminate\Support\Facades\Schema; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Database\Migrations\Migration; + +class MakeRequestText extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::table('random_logs', function (Blueprint $table) { + $table->text('request')->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('random_logs', function (Blueprint $table) { + // + }); + } +} diff --git a/public/js/hebrewparsetrainer.js b/public/js/hebrewparsetrainer.js index db710e1..db51117 100644 --- a/public/js/hebrewparsetrainer.js +++ b/public/js/hebrewparsetrainer.js @@ -155,7 +155,9 @@ $(document).ready(function(){ var roots = $('input[name="root"]:checked').map(function(){return this.value;}); $.ajax('verb/random/', { + method: 'POST', data: { + _token: $('#csrf').val(), stem: $.makeArray(stems).join(), tense: $.makeArray(tenses).join(), root: $.makeArray(roots).join() @@ -170,6 +172,7 @@ $(document).ready(function(){ correct_answers = []; for (var i in data.answers) { var answer = { + root: data.answers[i].root, stem: data.answers[i].stem, tense: data.answers[i].tense, person: data.answers[i].person, @@ -250,17 +253,22 @@ $(document).ready(function(){ 's': 'singular', 'p': 'plural' }; + + var prs = parsing.stem + ' ' + parsing.tense + + (parsing.person ? (' ' + parsing.person) : ''); + if (extended === true) { - return parsing.stem + ' ' + parsing.tense + - (parsing.person ? (' ' + parsing.person) : '') + - (parsing.gender ? (' ' + genders[parsing.gender]) : '') + + prs += (parsing.gender ? (' ' + genders[parsing.gender]) : '') + (parsing.number ? (' ' + numbers[parsing.number]) : ''); } else { - return parsing.stem + ' ' + parsing.tense + - (parsing.person ? (' ' + parsing.person) : '') + - (parsing.gender ? (' ' + parsing.gender) : '') + + prs += (parsing.gender ? (' ' + parsing.gender) : '') + (parsing.number ? (' ' + parsing.number) : ''); } + + if ('root' in parsing) + prs += ' ' + parsing.root; + + return prs; } function processInput() { diff --git a/resources/views/trainer.blade.php b/resources/views/trainer.blade.php index e120500..59e457a 100644 --- a/resources/views/trainer.blade.php +++ b/resources/views/trainer.blade.php @@ -8,6 +8,8 @@ use HebrewParseTrainer\Tense; @section('sidebar') <form id="hebrewparsetrainer-settings"> + <input type="hidden" id="csrf" value="{{ csrf_token() }}"/> + <div class="form-group"> <h3>Stems</h3> @foreach (Stem::all() as $stem) diff --git a/routes/web.php b/routes/web.php index 40314cb..a4d1007 100644 --- a/routes/web.php +++ b/routes/web.php @@ -35,7 +35,7 @@ Route::group( return \HebrewParseTrainer\Tense::all(); }); - Route::get('/verb/random', + Route::post('/verb/random', '\App\Http\Controllers\VerbController@random'); Route::get('/contribute', function () { |