diff --git a/app/Http/Controllers/Admins/SurveyController.php b/app/Http/Controllers/Admins/SurveyController.php index fdd00ee..3f3945e 100755 --- a/app/Http/Controllers/Admins/SurveyController.php +++ b/app/Http/Controllers/Admins/SurveyController.php @@ -3,7 +3,11 @@ namespace App\Http\Controllers\Admins; use App\Http\Controllers\Controller; +use App\Models\Master\Kabupatens; +use App\Models\Master\Kecamatans; +use App\Models\Master\Kelurahans; use App\Models\Master\ManagementMasters; +use App\Models\Master\Provinsis; use App\Models\QuestionAnswers; use App\Models\QuestionDetails; use App\Models\QuestionSurveys; @@ -69,6 +73,7 @@ class SurveyController extends Controller ->findOrFail($id); // $responden = User::role('Staff')->get(); + // return json_decode($survey->questionSurveys[15]->questionDetails->question_value)[0]; // return view return view('pages.admins.surveys.preview-admin', compact('survey')); } @@ -239,7 +244,7 @@ class SurveyController extends Controller // Add Data Answers public function addAnswers(Request $request) { - // return $request->responden; + // return $request; // create unique answer_id $unique_answer_id = QuestionAnswers::select('answer_id')->groupby('answer_id')->latest()->first(); $unique_answer_id = empty($unique_answer_id) ? 1 : $unique_answer_id['answer_id'] + 1; @@ -304,6 +309,61 @@ class SurveyController extends Controller return response()->json($data); } + public function cariProvinsi(Request $request) + { + $data = []; + if ($request->has('q')) { + $search = $request->q; + $data = Provinsis::selectRaw('nama as name, id') + ->where('nama', 'LIKE', "%$search%") + ->limit(15) + ->get(); + } + return response()->json($data); + } + + public function cariKabupaten(Request $request, String $provId) + { + $data = []; + if ($request->has('q')) { + $search = $request->q; + $data = Kabupatens::selectRaw('nama as name, id') + ->where('nama', 'LIKE', "%$search%") + ->where('provinsi_id', $provId) + ->limit(15) + ->get(); + } + return response()->json($data); + } + + public function cariKecamatan(Request $request, String $kabId) + { + $data = []; + if ($request->has('q')) { + $search = $request->q; + $data = Kecamatans::selectRaw('nama as name, id') + ->where('nama', 'LIKE', "%$search%") + ->where('kabupaten_id', $kabId) + ->limit(15) + ->get(); + } + return response()->json($data); + } + + public function cariKelurahan(Request $request, String $kecId) + { + $data = []; + if ($request->has('q')) { + $search = $request->q; + $data = Kelurahans::selectRaw('nama as name, id') + ->where('nama', 'LIKE', "%$search%") + ->where('kecamatan_id', $kecId) + ->limit(15) + ->get(); + } + return response()->json($data); + } + /** * Remove the specified resource from storage. */ diff --git a/app/Http/Controllers/Admins/Users/UserController.php b/app/Http/Controllers/Admins/Users/UserController.php index 99cc66b..89fe18e 100755 --- a/app/Http/Controllers/Admins/Users/UserController.php +++ b/app/Http/Controllers/Admins/Users/UserController.php @@ -9,6 +9,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Validator; +use Illuminate\Validation\Rule; use Spatie\Permission\Models\Role; class UserController extends Controller @@ -110,9 +111,16 @@ class UserController extends Controller */ public function update(Request $request, string $id) { + + $userId = User::findOrFail($id); // validation $rules = array( - 'nik' => 'required|unique:users|min:16|max:16', + 'nik' => [ + 'required', + 'min:16', + 'max:16', + Rule::unique('users')->ignore($userId), + ], 'name' => 'required|min:5', 'password' => 'required|min:8', 'gender' => 'required', @@ -148,7 +156,9 @@ class UserController extends Controller ]); // Update role for user - $user->removeRole($user->roles[0]->name); + if (isset($user->roles[0])) { + $user->removeRole($user->roles[0]->name); + } $user->assignRole($request->role); // Create Session message diff --git a/resources/views/pages/admins/surveys/preview-admin.blade.php b/resources/views/pages/admins/surveys/preview-admin.blade.php index cd7b172..71f3e65 100755 --- a/resources/views/pages/admins/surveys/preview-admin.blade.php +++ b/resources/views/pages/admins/surveys/preview-admin.blade.php @@ -98,6 +98,180 @@ + @elseif ( + $questionSurveys->type == 'Master' && + json_decode($questionSurveys->questionDetails->question_value)[0] == 'Alamats') +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $prov_unique_id = + 'question-' . $questionSurveys->id . '-answer-provinsi'; + @endphp + +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $kab_unique_id = + 'question-' . $questionSurveys->id . '-answer-kabupaten'; + @endphp + +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $kec_unique_id = + 'question-' . $questionSurveys->id . '-answer-kecamatan'; + @endphp + +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $kel_unique_id = + 'question-' . $questionSurveys->id . '-answer-kelurahan'; + @endphp + +
+
+ @elseif ($questionSurveys->type == 'Master')
@php diff --git a/resources/views/pages/admins/surveys/preview-user.blade.php b/resources/views/pages/admins/surveys/preview-user.blade.php index 5618314..0373eb7 100755 --- a/resources/views/pages/admins/surveys/preview-user.blade.php +++ b/resources/views/pages/admins/surveys/preview-user.blade.php @@ -81,6 +81,180 @@
+ @elseif ( + $questionSurveys->type == 'Master' && + json_decode($questionSurveys->questionDetails->question_value)[0] == 'Alamats') +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $prov_unique_id = + 'question-' . $questionSurveys->id . '-answer-provinsi'; + @endphp + +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $kab_unique_id = + 'question-' . $questionSurveys->id . '-answer-kabupaten'; + @endphp + +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $kec_unique_id = + 'question-' . $questionSurveys->id . '-answer-kecamatan'; + @endphp + +
+
+ @php + // $master = 'App\Models\Master\\' . json_decode($questionSurveys->questionDetails->question_value)[0]; + $master = json_decode( + $questionSurveys->questionDetails->question_value, + )[0]; + $kel_unique_id = + 'question-' . $questionSurveys->id . '-answer-kelurahan'; + @endphp + +
+
+ @elseif ($questionSurveys->type == 'Master')
@php diff --git a/resources/views/pages/admins/users/edit.blade.php b/resources/views/pages/admins/users/edit.blade.php index 1885549..f376c23 100755 --- a/resources/views/pages/admins/users/edit.blade.php +++ b/resources/views/pages/admins/users/edit.blade.php @@ -54,7 +54,8 @@ @forelse ($roles as $role) @empty diff --git a/routes/web.php b/routes/web.php index 3d24f5e..76d1166 100755 --- a/routes/web.php +++ b/routes/web.php @@ -112,9 +112,15 @@ Route::group(['prefix' => 'admin', 'middleware' => ['role:Admin|Staff|Responden' Route::get('surveys', [SurveyController::class, 'index'])->name('admin.surveys'); Route::get('surveys/{id}', [SurveyController::class, 'show'])->name('admin.surveys'); Route::get('surveys/cari-responden/{survey_id}', [SurveyController::class, "cariResponden"])->name("admin.surveys.cari-responden"); - Route::get('surveys/cari-master/{master}', [SurveyController::class, "cariMaster"])->name("admin.surveys.cari-master"); Route::get('surveys/preview-user/{id}', [SurveyController::class, 'preview_user'])->name('admin.surveys.preview-user'); + // Search master with ajax + Route::get('surveys/cari-master/{master}', [SurveyController::class, "cariMaster"])->name("admin.surveys.cari-master"); + Route::get('surveys/cari/provinsi', [SurveyController::class, "cariProvinsi"])->name("admin.surveys.cari.provinsi"); + Route::get('surveys/cari/kabupaten/{provId}', [SurveyController::class, "cariKabupaten"])->name("admin.surveys.cari.kabupaten"); + Route::get('surveys/cari/kecamatan/{kabId}', [SurveyController::class, "cariKecamatan"])->name("admin.surveys.cari.kecamatan"); + Route::get('surveys/cari/kelurahan/{kecId}', [SurveyController::class, "cariKelurahan"])->name("admin.surveys.cari.kelurahan"); + // Surveys (Answers) Route::post('surveys/question-answers', [SurveyController::class, 'addAnswers'])->name('admin.surveys.question-answers'); });