diff --git a/resources/views/informasi/sinergi_program/create.blade.php b/resources/views/informasi/sinergi_program/create.blade.php
index 21889737a..2d7abf75f 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 0022aac6f..ef91a251b 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 e33675e67..74077e04c 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() !!}
Arsipkan
{!! 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') !!}
Tandai Sudah dibaca
diff --git a/resources/views/pesan/read_pesan.blade.php b/resources/views/pesan/read_pesan.blade.php
index 8d584b058..4e40ca94b 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) !!}
Arsipkan
@@ -77,11 +77,11 @@
diff --git a/resources/views/setting/aplikasi/form.blade.php b/resources/views/setting/aplikasi/form.blade.php
index 04e9cb4cb..8cc4595c7 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 37c5766a2..131016a11 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/resources/views/sistem_komplain/index.blade.php b/resources/views/sistem_komplain/index.blade.php
index bfe3853fc..b7cab01e9 100644
--- a/resources/views/sistem_komplain/index.blade.php
+++ b/resources/views/sistem_komplain/index.blade.php
@@ -44,7 +44,10 @@
var data = $('#komplain-table').DataTable({
processing: true,
serverSide: true,
- ajax: "{!! route('admin-komplain.getdata') !!}",
+ ajax: {
+ url: "{!! route('admin-komplain.getdata') !!}",
+ type: "POST"
+ },
columns: [{
data: 'aksi',
name: 'aksi',
diff --git a/routes/web.php b/routes/web.php
index 854c294a6..174b4e82c 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -795,7 +795,7 @@
// Admin SIKEMA
Route::group(['prefix' => 'admin-komplain', 'middleware' => ['action_permission:access.admin_komplain']], function () {
Route::get('/', ['as' => 'admin-komplain.index', 'uses' => 'AdminKomplainController@index']);
- Route::get('getdata', ['as' => 'admin-komplain.getdata', 'uses' => 'AdminKomplainController@getDataKomplain']);
+ Route::match(['GET', 'POST'], 'getdata', ['as' => 'admin-komplain.getdata', 'uses' => 'AdminKomplainController@getDataKomplain']);
Route::get('edit/{id}', ['as' => 'admin-komplain.edit', 'uses' => 'AdminKomplainController@edit']);
Route::put('update/{id}', ['as' => 'admin-komplain.update', 'uses' => 'AdminKomplainController@update']);
Route::delete('destroy/{id}', ['as' => 'admin-komplain.destroy', 'uses' => 'AdminKomplainController@destroy']);
diff --git a/tests/Feature/Settings/SikemaDataTablesPostTest.php b/tests/Feature/Settings/SikemaDataTablesPostTest.php
new file mode 100644
index 000000000..efe465d0f
--- /dev/null
+++ b/tests/Feature/Settings/SikemaDataTablesPostTest.php
@@ -0,0 +1,147 @@
+ 'XMLHttpRequest'];
+
+function sikemaDatatablePostPayload(array $extra = []): array
+{
+ return array_merge([
+ 'draw' => 1,
+ 'start' => 0,
+ 'length' => 10,
+ 'search' => ['value' => '', 'regex' => 'false'],
+ 'columns[0][data]' => 'aksi',
+ 'columns[0][name]' => 'aksi',
+ 'columns[0][searchable]' => 'false',
+ 'columns[0][orderable]' => 'false',
+ 'columns[0][search][value]' => '',
+ 'order[0][column]' => '1',
+ 'order[0][dir]' => 'asc',
+ ], $extra);
+}
+
+beforeEach(function () {
+ $this->withoutMiddleware([
+ Authenticate::class,
+ RoleMiddleware::class,
+ PermissionMiddleware::class,
+ CompleteProfile::class,
+ GlobalShareMiddleware::class,
+ ]);
+});
+
+describe('DataTables Admin SIKEMA Daftar Keluhan via POST', function () {
+
+ test('endpoint getdata menerima POST dan mengembalikan struktur DataTables', function () {
+ $kategori = KategoriKomplain::create(['nama' => 'Infrastruktur']);
+ Komplain::factory()->create([
+ 'kategori' => $kategori->id,
+ 'judul' => 'Keluhan Test POST',
+ ]);
+
+ $response = $this->postJson(
+ route('admin-komplain.getdata'),
+ sikemaDatatablePostPayload(),
+ SIKEMA_AJAX_HEADERS
+ );
+
+ $response->assertStatus(200);
+ $response->assertJsonStructure([
+ 'draw',
+ 'recordsTotal',
+ 'recordsFiltered',
+ 'data',
+ ]);
+ });
+
+ test('POST ke getdata mengembalikan kolom yang diharapkan', function () {
+ $kategori = KategoriKomplain::create(['nama' => 'Infrastruktur']);
+ Komplain::factory()->create([
+ 'kategori' => $kategori->id,
+ 'judul' => 'Keluhan Kolom Test',
+ ]);
+
+ $response = $this->postJson(
+ route('admin-komplain.getdata'),
+ sikemaDatatablePostPayload(),
+ SIKEMA_AJAX_HEADERS
+ );
+
+ $response->assertStatus(200);
+ $data = $response->json('data');
+ $this->assertNotEmpty($data);
+
+ $firstRow = $data[0];
+ $this->assertArrayHasKey('judul', $firstRow);
+ $this->assertArrayHasKey('nama', $firstRow);
+ $this->assertArrayHasKey('kategori', $firstRow);
+ $this->assertArrayHasKey('status', $firstRow);
+ $this->assertArrayHasKey('anonim', $firstRow);
+ $this->assertArrayHasKey('aksi', $firstRow);
+ });
+
+ test('GET pada getdata masih berfungsi (backward-compatible)', function () {
+ $response = $this->getJson(
+ route('admin-komplain.getdata'),
+ SIKEMA_AJAX_HEADERS
+ );
+
+ $response->assertStatus(200);
+ $response->assertJsonStructure(['draw', 'recordsTotal', 'recordsFiltered', 'data']);
+ });
+
+ test('POST dengan draw parameter dikembalikan kembali dalam response', function () {
+ $response = $this->postJson(
+ route('admin-komplain.getdata'),
+ sikemaDatatablePostPayload(['draw' => 5]),
+ SIKEMA_AJAX_HEADERS
+ );
+
+ $response->assertStatus(200);
+ $response->assertJsonPath('draw', 5);
+ });
+});