aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2017-09-20 17:12:43 +0200
committerCamil Staps2017-09-20 17:12:43 +0200
commite661ce344127ca8acd1300746c5132098578fab7 (patch)
treea0d55336f6d23d24ac08400c9846e30ca529b2af
parentHide top users on some pages (diff)
Use POST for long queries; change request to TEXT type for the same reason
-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.js2
-rw-r--r--resources/views/trainer.blade.php2
-rw-r--r--routes/web.php2
6 files changed, 45 insertions, 8 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 e5666be..775285d 100644
--- a/public/js/hebrewparsetrainer.js
+++ b/public/js/hebrewparsetrainer.js
@@ -155,7 +155,9 @@ $(document).ready(function(){
var roots = $('select[name="root"]').val();
$.ajax('verb/random/', {
+ method: 'POST',
data: {
+ _token: $('#csrf').val(),
stem: $.makeArray(stems).join(),
tense: $.makeArray(tenses).join(),
root: $.makeArray(roots).join()
diff --git a/resources/views/trainer.blade.php b/resources/views/trainer.blade.php
index 70f1f3d..82cfe02 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 () {