diff --git a/resources/views/informasi/sinergi_program/create.blade.php b/resources/views/informasi/sinergi_program/create.blade.php
index 4a054b858..9d38c6886 100644
--- a/resources/views/informasi/sinergi_program/create.blade.php
+++ b/resources/views/informasi/sinergi_program/create.blade.php
@@ -19,7 +19,7 @@
{!! html()->form('POST', route('informasi.sinergi-program.store'))->acceptsFiles()->id('form-sinergi-program')->class(
'form-horizontal
- form-label-left',
+ form-label-left',
)->open() !!}
diff --git a/resources/views/informasi/sinergi_program/edit.blade.php b/resources/views/informasi/sinergi_program/edit.blade.php
index 6297acbdf..13b94aa68 100644
--- a/resources/views/informasi/sinergi_program/edit.blade.php
+++ b/resources/views/informasi/sinergi_program/edit.blade.php
@@ -32,7 +32,7 @@
{!! html()->form('PUT', route('informasi.sinergi-program.update', $sinergi->id))->id('form-sinergi-program')->class(
'form-horizontal
- form-label-left',
+ form-label-left',
)->acceptsFiles()->open() !!}
diff --git a/resources/views/pesan/masuk/index.blade.php b/resources/views/pesan/masuk/index.blade.php
index 47f56d6fa..86e144b3f 100644
--- a/resources/views/pesan/masuk/index.blade.php
+++ b/resources/views/pesan/masuk/index.blade.php
@@ -46,7 +46,7 @@
{!! html()->form('POST', route('pesan.arsip.multiple'))->class(
'form-group
- inline',
+ inline',
)->id('form-multiple-arsip-pesan')->open() !!}
{!! html()->hidden('array_id')->id('array_multiple_id_arsip') !!}
@@ -54,7 +54,7 @@
{!! html()->form('POST', route('pesan.read.multiple'))->class(
'form-group
- inline',
+ inline',
)->id('form-multiple-read-pesan')->open() !!}
{!! html()->hidden('array_id')->id('array_multiple_id') !!}
diff --git a/resources/views/pesan/read_pesan.blade.php b/resources/views/pesan/read_pesan.blade.php
index 56422036b..840e2f9f8 100644
--- a/resources/views/pesan/read_pesan.blade.php
+++ b/resources/views/pesan/read_pesan.blade.php
@@ -28,7 +28,7 @@
@if ($pesan->diarsipkan === 0)
{!! html()->form('POST', route('pesan.arsip.post'))->class(
'form-group
- inline',
+ inline',
)->id('form-arisp-pesan')->open() !!}
{!! html()->hidden('id', $pesan->id) !!}
@@ -77,11 +77,11 @@
diff --git a/resources/views/setting/aplikasi/form.blade.php b/resources/views/setting/aplikasi/form.blade.php
index e0630ea8c..169cc7aa9 100644
--- a/resources/views/setting/aplikasi/form.blade.php
+++ b/resources/views/setting/aplikasi/form.blade.php
@@ -28,7 +28,7 @@
{!! html()->select('value', [
'OpenStreetMap' => 'OpenStreetMap',
'OpenStreetMap H.O.T.' => 'OpenStreetMap
- H.O.T.',
+ H.O.T.',
'Mapbox Streets' => 'Mapbox Streets',
'Mapbox Satellite' => 'Mapbox Satellite',
'Mapbox Satellite-Streets' => 'Mapbox Satellite-Streets',
diff --git a/resources/views/setting/slide/form.blade.php b/resources/views/setting/slide/form.blade.php
index fd9e39cc3..51e89ca4d 100644
--- a/resources/views/setting/slide/form.blade.php
+++ b/resources/views/setting/slide/form.blade.php
@@ -9,7 +9,7 @@
{!! html()->textarea('deskripsi')->class('textarea')->style(
'width: 100%; height: 200px; font-size: 14px;
- line-height: 18px; border: 1px solid #dddddd; padding: 10px;',
+ line-height: 18px; border: 1px solid #dddddd; padding: 10px;',
)->placeholder('deskripsi')->value(old('deskripsi', isset($slide) ? $slide->deskripsi : '')) !!}
diff --git a/routes/web.php b/routes/web.php
index f16e6e8cb..98992815a 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -667,7 +667,7 @@
// Tingkaat Pendidikan
Route::group(['prefix' => 'tingkat-pendidikan', 'middleware' => ['action_permission:access.data.tingkat_pendidikan']], function () {
Route::get('/', ['as' => 'data.tingkat-pendidikan.index', 'uses' => 'TingkatPendidikanController@index']);
- Route::get('getdata', ['as' => 'data.tingkat-pendidikan.getdata', 'uses' => 'TingkatPendidikanController@getData']);
+ Route::post('getdata', ['as' => 'data.tingkat-pendidikan.getdata', 'uses' => 'TingkatPendidikanController@getData']);
Route::delete('destroy/{id}', ['as' => 'data.tingkat-pendidikan.destroy', 'uses' => 'TingkatPendidikanController@destroy']);
Route::get('import', ['as' => 'data.tingkat-pendidikan.import', 'uses' => 'TingkatPendidikanController@import']);
Route::post('do_import', ['as' => 'data.tingkat-pendidikan.do_import', 'uses' => 'TingkatPendidikanController@do_import']);
@@ -677,7 +677,7 @@
// Putus Sekolah
Route::group(['prefix' => 'putus-sekolah', 'middleware' => ['action_permission:access.data.putus_sekolah']], function () {
Route::get('/', ['as' => 'data.putus-sekolah.index', 'uses' => 'PutusSekolahController@index']);
- Route::get('getdata', ['as' => 'data.putus-sekolah.getdata', 'uses' => 'PutusSekolahController@getDataPutusSekolah']);
+ Route::post('getdata', ['as' => 'data.putus-sekolah.getdata', 'uses' => 'PutusSekolahController@getDataPutusSekolah']);
Route::get('edit/{id}', ['as' => 'data.putus-sekolah.edit', 'uses' => 'PutusSekolahController@edit']);
Route::put('update/{id}', ['as' => 'data.putus-sekolah.update', 'uses' => 'PutusSekolahController@update']);
Route::delete('destroy/{id}', ['as' => 'data.putus-sekolah.destroy', 'uses' => 'PutusSekolahController@destroy']);
@@ -689,7 +689,7 @@
// Fasilitas PAUD
Route::group(['prefix' => 'fasilitas-paud', 'middleware' => ['action_permission:access.data.fasilitas_paud']], function () {
Route::get('/', ['as' => 'data.fasilitas-paud.index', 'uses' => 'FasilitasPaudController@index']);
- Route::get('getdata', ['as' => 'data.fasilitas-paud.getdata', 'uses' => 'FasilitasPaudController@getDataFasilitasPAUD']);
+ Route::post('getdata', ['as' => 'data.fasilitas-paud.getdata', 'uses' => 'FasilitasPaudController@getDataFasilitasPAUD']);
Route::get('edit/{id}', ['as' => 'data.fasilitas-paud.edit', 'uses' => 'FasilitasPaudController@edit']);
Route::put('update/{id}', ['as' => 'data.fasilitas-paud.update', 'uses' => 'FasilitasPaudController@update']);
Route::delete('destroy/{id}', ['as' => 'data.fasilitas-paud.destroy', 'uses' => 'FasilitasPaudController@destroy']);
diff --git a/tests/Feature/PendidikanDataTablesPostTest.php b/tests/Feature/PendidikanDataTablesPostTest.php
new file mode 100644
index 000000000..49aa33e0e
--- /dev/null
+++ b/tests/Feature/PendidikanDataTablesPostTest.php
@@ -0,0 +1,127 @@
+ 'XMLHttpRequest'];
+
+function datatablePostPayloadPendidikan(array $columns, array $extra = []): array
+{
+ return array_merge([
+ 'draw' => 1,
+ 'start' => 0,
+ 'length' => 10,
+ 'search' => ['value' => '', 'regex' => 'false'],
+ 'columns' => $columns,
+ 'order' => [['column' => 1, 'dir' => 'asc']],
+ ], $extra);
+}
+
+describe('DataTables Menu Pendidikan via POST', function () {
+ test('Tingkat Pendidikan getdata menerima POST dan mengembalikan struktur DataTables', function () {
+ $desa = DataDesa::factory()->create();
+ TingkatPendidikan::factory()->create(['desa_id' => $desa->desa_id]);
+
+ $response = $this->postJson(route('data.tingkat-pendidikan.getdata'), datatablePostPayloadPendidikan([
+ ['data' => 'aksi', 'name' => 'aksi', 'searchable' => 'false', 'orderable' => 'false', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'desa.nama', 'name' => 'desa.nama', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tidak_tamat_sekolah', 'name' => 'tidak_tamat_sekolah', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tamat_sd', 'name' => 'tamat_sd', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tamat_smp', 'name' => 'tamat_smp', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tamat_sma', 'name' => 'tamat_sma', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tamat_diploma_sederajat', 'name' => 'tamat_diploma_sederajat', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'semester', 'name' => 'semester', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tahun', 'name' => 'tahun', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ]), AJAX_HEADERS_PENDIDIKAN);
+
+ $response->assertStatus(200);
+ $response->assertJsonStructure(['draw', 'recordsTotal', 'recordsFiltered', 'data']);
+ });
+
+ test('Putus Sekolah getdata menerima POST dan mengembalikan struktur DataTables', function () {
+ $desa = DataDesa::factory()->create();
+ PutusSekolah::factory()->create(['desa_id' => $desa->desa_id]);
+
+ $response = $this->postJson(route('data.putus-sekolah.getdata'), datatablePostPayloadPendidikan([
+ ['data' => 'aksi', 'name' => 'aksi', 'searchable' => 'false', 'orderable' => 'false', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'desa.nama', 'name' => 'desa.nama', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'siswa_paud', 'name' => 'siswa_paud', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'anak_usia_paud', 'name' => 'anak_usia_paud', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'siswa_sd', 'name' => 'siswa_sd', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'anak_usia_sd', 'name' => 'anak_usia_sd', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'siswa_smp', 'name' => 'siswa_smp', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'anak_usia_smp', 'name' => 'anak_usia_smp', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'siswa_sma', 'name' => 'siswa_sma', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'anak_usia_sma', 'name' => 'anak_usia_sma', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'semester', 'name' => 'semester', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tahun', 'name' => 'tahun', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ]), AJAX_HEADERS_PENDIDIKAN);
+
+ $response->assertStatus(200);
+ $response->assertJsonStructure(['draw', 'recordsTotal', 'recordsFiltered', 'data']);
+ });
+
+ test('Fasilitas PAUD getdata menerima POST dan mengembalikan struktur DataTables', function () {
+ $desa = DataDesa::factory()->create();
+ FasilitasPAUD::factory()->create(['desa_id' => $desa->desa_id]);
+
+ $response = $this->postJson(route('data.fasilitas-paud.getdata'), datatablePostPayloadPendidikan([
+ ['data' => 'aksi', 'name' => 'aksi', 'searchable' => 'false', 'orderable' => 'false', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'desa.nama', 'name' => 'desa.nama', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'jumlah_paud', 'name' => 'jumlah_paud', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'jumlah_guru_paud', 'name' => 'jumlah_guru_paud', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'jumlah_siswa_paud', 'name' => 'jumlah_siswa_paud', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'semester', 'name' => 'semester', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ['data' => 'tahun', 'name' => 'tahun', 'searchable' => 'true', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']],
+ ]), AJAX_HEADERS_PENDIDIKAN);
+
+ $response->assertStatus(200);
+ $response->assertJsonStructure(['draw', 'recordsTotal', 'recordsFiltered', 'data']);
+ });
+
+ test('endpoint getdata pendidikan tidak lagi menerima GET', function () {
+ $endpoints = [
+ route('data.tingkat-pendidikan.getdata'),
+ route('data.putus-sekolah.getdata'),
+ route('data.fasilitas-paud.getdata'),
+ ];
+
+ foreach ($endpoints as $url) {
+ $this->getJson($url, AJAX_HEADERS_PENDIDIKAN)->assertStatus(405);
+ }
+ });
+});