aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Http/Controllers/VerbController.php12
-rw-r--r--composer.json3
-rw-r--r--database/migrations/2017_09_20_150615_make_request_text.php32
-rw-r--r--public/js/hebrewparsetrainer.js20
-rw-r--r--resources/views/trainer.blade.php2
-rw-r--r--routes/web.php2
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 () {