Surveys: Add Feature Alamat
parent
11d6bc7bf2
commit
abf95979f8
|
@ -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.
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -98,6 +98,180 @@
|
|||
<textarea class="form-control" name="question[{{ $questionSurveys->id }}][answer]" rows="3"
|
||||
placeholder="Jawaban berupa teks atau esai" required></textarea>
|
||||
</div>
|
||||
@elseif (
|
||||
$questionSurveys->type == 'Master' &&
|
||||
json_decode($questionSurveys->questionDetails->question_value)[0] == 'Alamats')
|
||||
<div class="col-lg-12 row">
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $prov_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $kab_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $kec_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $kel_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// Disabled
|
||||
$('#{{ $kab_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
$('#{{ $kec_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
|
||||
$('#{{ $prov_unique_id }}').select2({
|
||||
placeholder: 'Cari Provinsi',
|
||||
ajax: {
|
||||
url: '{{ URL::to('admin/surveys/cari/provinsi' . '?q=') }}',
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ $prov_unique_id }}').on('change', function() {
|
||||
$('#{{ $kab_unique_id }}').prop('disabled', false);
|
||||
$('#{{ $kab_unique_id }}').val(null).trigger('change');
|
||||
$('#{{ $kec_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
});
|
||||
|
||||
$('#{{ $kab_unique_id }}').select2({
|
||||
placeholder: 'Cari Kabupaten',
|
||||
ajax: {
|
||||
url: function() {
|
||||
return "{{ route('admin.surveys.cari.kabupaten', ':provId') }}".replace(':provId', $(
|
||||
'#{{ $prov_unique_id }}').val().split('-')[0]);
|
||||
},
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ $kab_unique_id }}').on('change', function() {
|
||||
$('#{{ $kec_unique_id }}').prop('disabled', false);
|
||||
$('#{{ $kec_unique_id }}').val(null).trigger('change');
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
});
|
||||
|
||||
$('#{{ $kec_unique_id }}').select2({
|
||||
placeholder: 'Cari Kecamatan',
|
||||
ajax: {
|
||||
url: function() {
|
||||
return "{{ route('admin.surveys.cari.kecamatan', ':kabId') }}".replace(':kabId', $(
|
||||
'#{{ $kab_unique_id }}').val().split('-')[0]);
|
||||
},
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ $kec_unique_id }}').on('change', function() {
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', false);
|
||||
$('#{{ $kel_unique_id }}').val(null).trigger('change');
|
||||
});
|
||||
|
||||
$('#{{ $kel_unique_id }}').select2({
|
||||
placeholder: 'Cari Kelurahan',
|
||||
ajax: {
|
||||
url: function() {
|
||||
return "{{ route('admin.surveys.cari.kelurahan', ':kecId') }}".replace(':kecId', $(
|
||||
'#{{ $kec_unique_id }}').val().split('-')[0]);
|
||||
},
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@elseif ($questionSurveys->type == 'Master')
|
||||
<div class="mt-3 col-lg-12">
|
||||
@php
|
||||
|
|
|
@ -81,6 +81,180 @@
|
|||
<textarea class="form-control" name="question[{{ $questionSurveys->id }}][answer]" rows="3"
|
||||
placeholder="Jawaban berupa teks atau esai" required></textarea>
|
||||
</div>
|
||||
@elseif (
|
||||
$questionSurveys->type == 'Master' &&
|
||||
json_decode($questionSurveys->questionDetails->question_value)[0] == 'Alamats')
|
||||
<div class="col-lg-12 row">
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $prov_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $kab_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $kec_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mt-3 col-lg-6">
|
||||
@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
|
||||
<select class="form-select" id="{{ $kel_unique_id }}"
|
||||
name="question[{{ $questionSurveys->id }}][answer]" style="width:100%;"
|
||||
required>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// Disabled
|
||||
$('#{{ $kab_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
$('#{{ $kec_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
|
||||
$('#{{ $prov_unique_id }}').select2({
|
||||
placeholder: 'Cari Provinsi',
|
||||
ajax: {
|
||||
url: '{{ URL::to('admin/surveys/cari/provinsi' . '?q=') }}',
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ $prov_unique_id }}').on('change', function() {
|
||||
$('#{{ $kab_unique_id }}').prop('disabled', false);
|
||||
$('#{{ $kab_unique_id }}').val(null).trigger('change');
|
||||
$('#{{ $kec_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
});
|
||||
|
||||
$('#{{ $kab_unique_id }}').select2({
|
||||
placeholder: 'Cari Kabupaten',
|
||||
ajax: {
|
||||
url: function() {
|
||||
return "{{ route('admin.surveys.cari.kabupaten', ':provId') }}".replace(':provId', $(
|
||||
'#{{ $prov_unique_id }}').val().split('-')[0]);
|
||||
},
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ $kab_unique_id }}').on('change', function() {
|
||||
$('#{{ $kec_unique_id }}').prop('disabled', false);
|
||||
$('#{{ $kec_unique_id }}').val(null).trigger('change');
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', true).val(null).trigger('change');
|
||||
});
|
||||
|
||||
$('#{{ $kec_unique_id }}').select2({
|
||||
placeholder: 'Cari Kecamatan',
|
||||
ajax: {
|
||||
url: function() {
|
||||
return "{{ route('admin.surveys.cari.kecamatan', ':kabId') }}".replace(':kabId', $(
|
||||
'#{{ $kab_unique_id }}').val().split('-')[0]);
|
||||
},
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
|
||||
$('#{{ $kec_unique_id }}').on('change', function() {
|
||||
$('#{{ $kel_unique_id }}').prop('disabled', false);
|
||||
$('#{{ $kel_unique_id }}').val(null).trigger('change');
|
||||
});
|
||||
|
||||
$('#{{ $kel_unique_id }}').select2({
|
||||
placeholder: 'Cari Kelurahan',
|
||||
ajax: {
|
||||
url: function() {
|
||||
return "{{ route('admin.surveys.cari.kelurahan', ':kecId') }}".replace(':kecId', $(
|
||||
'#{{ $kec_unique_id }}').val().split('-')[0]);
|
||||
},
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
processResults: function(data) {
|
||||
return {
|
||||
results: $.map(data, function(item) {
|
||||
return {
|
||||
text: item.name,
|
||||
id: item.id + '-' + item.name
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@elseif ($questionSurveys->type == 'Master')
|
||||
<div class="mt-3 col-lg-12">
|
||||
@php
|
||||
|
|
|
@ -54,7 +54,8 @@
|
|||
<option value="">Pilih Level Pengguna</option>
|
||||
@forelse ($roles as $role)
|
||||
<option value="{{ $role->name }}"
|
||||
{{ $user->roles[0]->name == $role->name ? 'selected' : '' }}>{{ $role->name }}
|
||||
{{ isset($user->roles[0]) ? ($user->roles[0]->name == $role->name ? 'selected' : '') : '' }}>
|
||||
{{ $role->name }}
|
||||
</option>
|
||||
@empty
|
||||
<option value="">Data Kosong</option>
|
||||
|
|
|
@ -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');
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue