diff --git a/app/Helpers/custom.php b/app/Helpers/custom.php index 67b0a5b..1feefdf 100644 --- a/app/Helpers/custom.php +++ b/app/Helpers/custom.php @@ -2,6 +2,114 @@ use App\Models\Master\MasterMenu; use App\Models\Master\MasterAccessMenu; +use App\Models\Kuesioner; +use App\Models\Master\FormKriteria; + +if (!function_exists('formKriteria')) { + /** + * @param $val + * + * @return string + */ + function formKriteria($page_number) + { + $kriteria = FormKriteria::where('page_number',$page_number)->get(); + $html = ''; + foreach($kriteria as $keyKriteria => $data){ + + $nameOption = 'option_number_'.$keyKriteria; + + $html .= '
'; + $html .= '
'; + $html .= '
'.$data->judul.'
'; + + //QUESTION + if($data->type == 'textarea'){ + + $html .= '
'; + $html .= ''; + $html .= '
'; + + }elseif($data->type == 'freetext'){ + + $html .= '
'; + $html .= ''; + $html .= '
'; + + }elseif($data->type == 'checkbox'){ + $option = json_decode($data->option); + foreach($option as $keyOption => $dataOption){ + + $key = 'number_'.$keyKriteria.'_'.$keyOption; + + $html .= '
'; + $html .= ''; + $html .= ''; + $html .= '
'; + } + + }elseif($data->type == 'radio_button'){ + $option = json_decode($data->option); + foreach($option as $keyOption => $dataOption){ + + $key = 'number_'.$keyKriteria.'_'.$keyOption; + + $html .= '
'; + $html .= ''; + $html .= ''; + $html .= '
'; + } + + }elseif($data->type == 'number'){ + $html .= '
'; + $html .= ''; + $html .= '
'; + } + + $html .= '
'; + $html .= '
'; + } + + return $html; + } +} + +if (!function_exists('levelAdiwiyata')) { + /** + * @param $val + * + * @return string + */ + function levelAdiwiyata($npsn) + { + $kuesioner = Kuesioner::where('npsn',$npsn)->where('tahun',date('Y'))->first(); + if(@$kuesioner){ + $data = $kuesioner; + }else{ + $kuesioner = Kuesioner::where('npsn',$npsn)->where('tahun',(date('Y')-1))->first(); + $data = $kuesioner; + } + $level = ''; + + if($data->level == 0){ + if(($data->level == 0) && ($data->tim_adiwiyata == 2) && ($data->info_pblhs == 2) ){ + $level = '2'; + }elseif(($data->level == 0) && ($data->tim_adiwiyata == 2)){ + $level = '1'; + }else{ + $level = '0'; + } + }elseif($data->level == 1){ + $level = '3'; + }elseif($data->level == 2){ + $level = '4'; + }else{ + $level = '4'; + } + + return $level; + } +} if (!function_exists('taskLabel')) { /** diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php new file mode 100644 index 0000000..7c70a73 --- /dev/null +++ b/app/Http/Controllers/AjaxController.php @@ -0,0 +1,17 @@ +page); + $title = FormKriteria::select('kategori')->where('page_number',$request->page)->first(); + + return response()->json(['status' => true, 'data' => $data,'title' => $title->kategori]); + } +} diff --git a/app/Http/Controllers/KuesionerController.php b/app/Http/Controllers/KuesionerController.php index 496a5b7..506c94b 100644 --- a/app/Http/Controllers/KuesionerController.php +++ b/app/Http/Controllers/KuesionerController.php @@ -8,6 +8,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use App\Models\ProfileSekolah as Profile; +use App\Models\Kuesioner; class KuesionerController extends Controller { @@ -19,8 +20,232 @@ class KuesionerController extends Controller permission('is_read', $this->route, 'module',true); $data['title'] = 'Kuesioner Leveling'; - $data['route'] = $this->route; + $data['route'] = $this->route; + $kuesioner = Kuesioner::where('user_id',auth()->user()->id)->where('tahun',date('Y'))->first(); + if(@$kuesioner){ + $data['kuesioner'] = $kuesioner; + }else{ + $kuesioner = Kuesioner::where('user_id',auth()->user()->id)->where('tahun',(date('Y')-1))->first(); + $data['kuesioner'] = $kuesioner; + } + + $media = json_decode(@$kuesioner->media); + $data['selectedMediaValues'] = collect($media)->pluck('value')->toArray(); // Ambil value yang dipilih + $data['selectedMediaTexts'] = collect($media)->keyBy('name'); + + $materi = json_decode(@$kuesioner->materi); + $data['selectedMateriValues'] = collect($materi)->pluck('value')->toArray(); // Ambil value yang dipilih + $data['selectedMateriTexts'] = collect($materi)->keyBy('name'); + + $komitmen = json_decode(@$kuesioner->komitmen); + $data['selectedKomitmenValues'] = collect($komitmen)->pluck('value')->toArray(); // Ambil value yang dipilih + $data['selectedKomitmenTexts'] = collect($komitmen)->keyBy('name'); + + $kegiatan_lingkungan = json_decode(@$kuesioner->kegiatan_lingkungan); + $data['selectedKegiatanLingkunganValues'] = collect($kegiatan_lingkungan)->pluck('value')->toArray(); // Ambil value yang dipilih + $data['selectedKegiatanLingkunganTexts'] = collect($kegiatan_lingkungan)->keyBy('name'); + + $pihak_kegiatan_lingkungan = json_decode(@$kuesioner->pihak_kegiatan_lingkungan); + $data['selectedPihakKegiatanLingkunganValues'] = collect($pihak_kegiatan_lingkungan)->pluck('value')->toArray(); // Ambil value yang dipilih + $data['selectedPihakKegiatanLingkunganTexts'] = collect($pihak_kegiatan_lingkungan)->keyBy('name'); return view($this->template.'.form',$data); } + + public function store(Request $request) + { + // dd(request()->all()); + try { + + $media = request()->input('media', []); // Ambil array media + $mediaText = request()->input('media_text', []); // Ambil array media_text + $materi = request()->input('materi', []); // Ambil array materi + $materiText = request()->input('materi_text', []); // Ambil array materi_text + $komitmen = array(request()->input('komitmen')); // Ambil array komitmen + $komitmenText = request()->input('komitmen_text', []); // Ambil array komitmen_text + $kegiatan_lingkungan = request()->input('kegiatan_lingkungan', []); // Ambil array kegiatan_lingkungan + $kegiatan_lingkunganText = request()->input('kegiatan_lingkungan_text', []); // Ambil array kegiatan_lingkungan_text + $pihak_kegiatan_lingkungan = request()->input('pihak_kegiatan_lingkungan', []); // Ambil array pihak_kegiatan_lingkungan + $pihak_kegiatan_lingkunganText = request()->input('pihak_kegiatan_lingkungan_text', []); // Ambil array pihak_kegiatan_lingkungan_text + + // Buat array mapping berdasarkan media yang dipilih + $mediaFormatted = []; + $materiFormatted = []; + $komitmenFormatted = []; + $kegiatanFormatted = []; + $pihakKegiatanFormatted = []; + + //ISIAN MEDIA + foreach ($media as $value) { + if ($value == 1) { + $mediaFormatted[] = [ + 'value' => $value, + 'name' => 'sosialisasi', + 'text' => $mediaText['sosialisasi'] ?? null + ]; + } elseif ($value == 2) { + $mediaFormatted[] = [ + 'value' => $value, + 'name' => 'bimtek', + 'text' => $mediaText['bimtek'] ?? null + ]; + }elseif ($value == 3) { + $mediaFormatted[] = [ + 'value' => $value, + 'name' => 'webinar', + 'text' => $mediaText['webinar'] ?? null + ]; + }elseif ($value == 4) { + $mediaFormatted[] = [ + 'value' => $value, + 'name' => 'youtube', + 'text' => $mediaText['youtube'] ?? null + ]; + }elseif ($value == 5) { + $mediaFormatted[] = [ + 'value' => $value, + 'name' => 'lainlain', + 'text' => $mediaText['lainlain'] ?? null + ]; + } + } + + + //ISIAN MATERI + foreach ($materi as $value) { + if ($value == 1) { + $materiFormatted[] = [ + 'value' => $value, + 'name' => 'kebijakan', + 'text' => $materiText['kebijakan'] ?? null + ]; + } elseif ($value == 2) { + $materiFormatted[] = [ + 'value' => $value, + 'name' => 'perencanaan', + 'text' => $materiText['perencanaan'] ?? null + ]; + }elseif ($value == 3) { + $materiFormatted[] = [ + 'value' => $value, + 'name' => 'pelaksanaan', + 'text' => $materiText['pelaksanaan'] ?? null + ]; + }elseif ($value == 4) { + $materiFormatted[] = [ + 'value' => $value, + 'name' => 'pemantauan', + 'text' => $materiText['pemantauan'] ?? null + ]; + }elseif ($value == 5) { + $materiFormatted[] = [ + 'value' => $value, + 'name' => 'lainlain', + 'text' => $materiText['lainlain'] ?? null + ]; + } + } + + //ISIAN KOMITMEN + foreach ($komitmen as $value) { + if ($value == 1) { + $komitmenFormatted[] = [ + 'value' => $value, + 'name' => 'bersedia', + 'text' => $komitmenText['bersedia'] ?? null + ]; + } elseif ($value == 2) { + $komitmenFormatted[] = [ + 'value' => $value, + 'name' => 'tidak_bersedia', + 'text' => $komitmenText['tidak_bersedia'] ?? null + ]; + } + } + + //ISIAN KEGIATAN + foreach ($kegiatan_lingkungan as $value) { + if ($value == 1) { + $kegiatanFormatted[] = [ + 'value' => $value, + 'name' => 'pemilahan_sampah', + 'text' => $kegiatanText['pemilahan_sampah'] ?? null + ]; + } elseif ($value == 2) { + $kegiatanFormatted[] = [ + 'value' => $value, + 'name' => 'penanaman_pohon', + 'text' => $kegiatanText['penanaman_pohon'] ?? null + ]; + }elseif ($value == 3) { + $kegiatanFormatted[] = [ + 'value' => $value, + 'name' => 'kegiatan_1', + 'text' => $kegiatanText['kegiatan_1'] ?? null + ]; + }elseif ($value == 4) { + $kegiatanFormatted[] = [ + 'value' => $value, + 'name' => 'kegiatan_2', + 'text' => $kegiatanText['kegiatan_2'] ?? null + ]; + }elseif ($value == 5) { + $kegiatanFormatted[] = [ + 'value' => $value, + 'name' => 'kegiatan_3', + 'text' => $kegiatanText['kegiatan_3'] ?? null + ]; + } + } + + //ISIAN PIHAK KEGIATAN + foreach ($pihak_kegiatan_lingkungan as $value) { + if ($value == 1) { + $pihakKegiatanFormatted[] = [ + 'value' => $value, + 'name' => 'internal', + 'text' => $pihakKegiatanText['internal'] ?? null + ]; + } elseif ($value == 2) { + $pihakKegiatanFormatted[] = [ + 'value' => $value, + 'name' => 'eksternal', + 'text' => $pihakKegiatanText['eksternal'] ?? null + ]; + } + } + + $insert = new Kuesioner; + $insert->user_id = auth()->user()->id; + $insert->npsn = session('npsn'); + $insert->level = @$request->level; + $insert->tim_adiwiyata = @$request->tim_adiwiyata; + $insert->info_pblhs = @$request->info_pblhs; + $insert->media = json_encode(@$mediaFormatted); + $insert->materi = json_encode(@$materiFormatted); + $insert->komitmen = json_encode($komitmenFormatted); + $insert->kegiatan_lingkungan = json_encode(@$kegiatanFormatted); + $insert->pihak_kegiatan_lingkungan = json_encode(@$pihakKegiatanFormatted); + $insert->tahun = date('Y'); + $insert->link_sk_adiwiyata = @$request->link_sk_adiwiyata; + $insert->tim_adiwiyata_nomor_sk = @$request->tim_adiwiyata_nomor_sk; + $insert->tim_adiwiyata_link = @$request->tim_adiwiyata_link; + $insert->save(); + + logActivity($request, __('Create',['val' => strtolower(__('Title',['val' => 'Kuesioner Leveling User ID : '.auth()->user()->id]))])); + + return redirect()->back()->with([ + 'message' => 'Berhasil update data', + 'type' => 'success', + ]); + + + + } catch (Exception $e) { + return redirect()->back()->with([ + 'message' => $e->getMessage(), + 'type' => "error" + ]); + } + } } diff --git a/app/Http/Controllers/Master/FormKriteriaController.php b/app/Http/Controllers/Master/FormKriteriaController.php new file mode 100644 index 0000000..8b7a571 --- /dev/null +++ b/app/Http/Controllers/Master/FormKriteriaController.php @@ -0,0 +1,123 @@ + 'Dashboard','url' => url('dashboard')], + ['name' => 'Management & Akses Role'], + ['name' => $this->title,'active' => true], + ]; + $data['title'] = $this->title; + $data['route'] = $this->route; + + return view($this->template.'.index',$data); + } + + public function update($id = null) + { + $data['breadcrumbs'] = [ + ['name' => 'Dashboard','url' => url('dashboard')], + ['name' => 'Management & Akses Role'], + ['name' => $this->title,'active' => true], + ]; + $data['title'] = $this->title; + $data['route'] = $this->route; + + return view($this->template.'.form',$data); + } + + public function grid(Request $request) + { + + $data = FormKriteria::orderBy('page_number','ASC')->get(); + $_data = []; + + + foreach ($data as $key => $row) { + + + $action = ''; + + if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ + $action .= ''; + if(session('group_id') == 1){ + $action .= ''; + } + } + + $_data[] = [ + 'no' => $key+1, + 'id' => encode_id($row->id), + 'page_number' => @$row->page_number, + 'judul' => @$row->judul, + 'created_at' => dateTime(@$row->created_at), + 'action' => @$action, + ]; + + } + + // return response()->json($_data); // Return the data as a JSON response + return response()->json($_data); + + } + + public function store(Request $request) + { + + try { + $keyId = decode_id($request->secure_id); + + if(!@$keyId){ + Validator::make($request->all(), [ + 'page_number' => 'required', + 'kategori' => 'required', + 'judul' => 'required', + 'type' => 'required', + ])->validate(); + + $insert = new FormKriteria; + $insert->page_number = $request->page_number; + $insert->key = $request->key; + $insert->kategori = $request->kategori; + $insert->judul = $request->judul; + $insert->type = $request->type; + $insert->option = json_encode($request->jawaban); + $insert->active_lainnya = $request->active_lainnya; + $insert->judul_lainnya = $request->judul_lainnya; + $insert->number_answer_lainnya = $request->number_answer_lainnya; + $insert->active = 1; + $insert->save(); + } + logActivity($request, __('Create',['val' => strtolower(__('Title',['val' => 'Form Kriteria']))])); + return redirect()->back()->with([ + 'message' => 'Berhasil update data', + 'type' => 'success', + ]); + + + } catch (Exception $e) { + return redirect()->back()->with([ + 'message' => $e->getMessage(), + 'type' => "error" + ]); + } + + // dd(request()->all()); + } +} diff --git a/app/Http/Controllers/Modules/Usulan/AdministrasiController.php b/app/Http/Controllers/Modules/Usulan/AdministrasiController.php new file mode 100644 index 0000000..0793c19 --- /dev/null +++ b/app/Http/Controllers/Modules/Usulan/AdministrasiController.php @@ -0,0 +1,11 @@ +route, 'module',true); + + $data['title'] = $this->title; + $data['route'] = $this->route; + $data['page'] = FormKriteria::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->toArray(); + + return view($this->template.'.form',$data); + } +} diff --git a/app/Http/Controllers/Modules/Usulan/ProgressController.php b/app/Http/Controllers/Modules/Usulan/ProgressController.php new file mode 100644 index 0000000..e333a5b --- /dev/null +++ b/app/Http/Controllers/Modules/Usulan/ProgressController.php @@ -0,0 +1,11 @@ +id('MsFormKriteriaId'); + $table->integer('page_number'); + $table->string('kategori')->nullable(); + $table->string('key')->nullable(); + $table->string('judul')->nullable(); + $table->string('type')->nullable(); + $table->json('option')->nullable(); + $table->integer('active_lainnya')->default(0); + $table->string('judul_lainnya')->nullable(); + $table->integer('number_answer_lainnya')->nullable(); + $table->integer('active')->default(0); + $table->timestampsTz(); + $table->softDeletesTz(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('form_kriterias'); + } +}; diff --git a/database/migrations/2025_03_06_081808_create_kuesioners_table.php b/database/migrations/2025_03_06_081808_create_kuesioners_table.php new file mode 100644 index 0000000..2e79c6a --- /dev/null +++ b/database/migrations/2025_03_06_081808_create_kuesioners_table.php @@ -0,0 +1,42 @@ +id('KuesionerId'); + $table->integer('user_id'); + $table->string('npsn')->nullable(); + $table->integer('level')->default(0); + $table->integer('tim_adiwiyata')->default(0); + $table->integer('info_pblhs')->default(0); + $table->json('media')->nullable(); + $table->json('materi')->nullable(); + $table->json('komitmen')->nullable(); + $table->json('kegiatan_lingkungan')->nullable(); + $table->json('pihak_kegiatan_lingkungan')->nullable(); + $table->year('tahun')->nullable(); + $table->year('tahun_penghargaan')->nullable(); + $table->text('link_sk_adiwiyata')->nullable(); + $table->timestampsTz(); + + $table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kuesioners'); + } +}; diff --git a/database/migrations/2025_03_06_111739_add_column_kuesioner.php b/database/migrations/2025_03_06_111739_add_column_kuesioner.php new file mode 100644 index 0000000..3838d42 --- /dev/null +++ b/database/migrations/2025_03_06_111739_add_column_kuesioner.php @@ -0,0 +1,29 @@ +string('tim_adiwiyata_nomor_sk')->nullable(); + $table->string('tim_adiwiyata_link')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('kuesioner', function (Blueprint $table) { + // + }); + } +}; diff --git a/public/assets/spinner.gif b/public/assets/spinner.gif new file mode 100644 index 0000000..cde62a2 Binary files /dev/null and b/public/assets/spinner.gif differ diff --git a/resources/views/modules/kuesioner/form.blade.php b/resources/views/modules/kuesioner/form.blade.php index 956d1ea..2ebc006 100644 --- a/resources/views/modules/kuesioner/form.blade.php +++ b/resources/views/modules/kuesioner/form.blade.php @@ -50,242 +50,449 @@ @endif -
-
-
-
- - - - - - - - - - - - - - - - - -
- -
NPSN: {{session('npsn')}}
-
-

Level 4

-
-

{{session('name')}}

{{session('tingkat_sekolah')}} {{session('status_sekolah')}}

{{session('alamat_sekolah')}}

-
-
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Apakah Sekolah anda sudah pernah mendapatkan penghargaan adiwiyata?
-
+
+ {{csrf_field()}} +
+
+
+
+ + + + + + + + + + + + + + + + + +
+ +
NPSN: {{session('npsn')}}
+
+

Level {{levelAdiwiyata(session('npsn'))}}

+
+

{{session('name')}}

{{session('tingkat_sekolah')}} {{session('status_sekolah')}}

{{session('alamat_sekolah')}}

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Apakah Sekolah anda sudah pernah mendapatkan penghargaan adiwiyata?
+
+
+ level == 0 ? 'checked' : ''}} id="radioPenghargaanAdiwiyataBelum" required name="level"> + +
+
+ level == 1 ? 'checked' : ''}} id="radioPenghargaanAdiwiyataKota" required name="level"> + +
+
+ level == 2 ? 'checked' : ''}} id="radioPenghargaanAdiwiyataProvinsi" required name="level"> + +
+
+ level == 3 ? 'checked' : ''}} id="radioPenghargaanAdiwiyataNasional" required name="level"> + +
+
+ level == 4 ? 'checked' : ''}} id="radioPenghargaanAdiwiyataMandiri" required name="level"> + +
+
+
Apakah sekolah anda sudah membentuk Tim Adiwiyata Sekolah?
+
+
+
+
+
+ tim_adiwiyata == 1 ? 'checked' : '' }} name="tim_adiwiyata"> + +
+
+
+ +
+
+
+
+
+
+
+ tim_adiwiyata == 2 ? 'checked' : '' }} name="tim_adiwiyata"> + +
+
+
+ + +
+
+
Apakah sekolah anda sudah pernah mendapatkan informasi tentang Gerakan Peduli dan Berbudaya Lingkungan Hidup di Sekolah (PBLHS)
- - + info_pblhs == '1' ? 'checked' : ''}} name="info_pblhs"> +
- - + info_pblhs == '2' ? 'checked' : ''}} name="info_pblhs"> +
-
- - +
Jika pernah, dari media apa mendapatkannya, dan sebutkan nama instansi penyelenggaranya ?
+
+
+
+
+
+ + +
+
+
+ +
-
- - -
-
- - -
- -
Apakah sekolah anda sudah membentuk Tim Adiwiyata Sekolah?
-
- - -
-
- - -
-
Apakah sekolah anda sudah pernah mendapatkan informasi tentang Gerakan Peduli dan Berbudaya Lingkungan Hidup di Sekolah (PBLHS)
-
- - -
-
- - -
-
Jika pernah, dari media apa mendapatkannya, dan sebutkan nama instansi penyelenggaranya ?
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
Materi apa saja yang masih kurang Anda pahami?
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
Apakah sekolah anda bersedia untuk berkomitmen melaksanakan Gerakan PBLHS secara berkelanjutan?
-
- - -
-
- - -
-
Kegiatan/aksi lingkungan yang pernah dilakukan oleh warga sekolah?
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
Pihak yang terlibat dalam menjalankan kegiatan/aksi lingkungan
-
-
- - -
-
- - -
-
-
Jika sudah pernah mendapatkan penghargaan adiwiyata, tahun berapa sekolah anda mendapatkan penghargaan adiwiyata?
-
- - -
-
- - -
-
+
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+
Materi apa saja yang masih kurang Anda pahami?
+
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+
Apakah sekolah anda bersedia untuk berkomitmen melaksanakan Gerakan PBLHS secara berkelanjutan?
+
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+
Kegiatan/aksi lingkungan yang pernah dilakukan oleh warga sekolah?
+
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+
Pihak yang terlibat dalam menjalankan kegiatan/aksi lingkungan
+
+
+
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ +
+
+
Jika sudah pernah mendapatkan penghargaan adiwiyata, tahun berapa sekolah anda mendapatkan penghargaan adiwiyata?
+
+ + +
+
+ + +
+
+
+ @if(!@$kuesioner) + + @endif
- + @endsection @@ -301,5 +508,64 @@ $('.sudahPernah').removeClass('d-none'); } }); + + $('#btn-save').on('click',function(e){ + e.preventDefault(); + + let isValid = true; + + let level = $('input[name="level"]:checked').val(); + let tim_adiwiyata = $('input[name="tim_adiwiyata"]:checked').val(); + + if(level >= 0){ + + if((tim_adiwiyata >= 1)){ + + if(tim_adiwiyata == 2){ + if(($('input[name="tim_adiwiyata[nomor_sk]]"').val() == '') || ($('input[name="tim_adiwiyata[link]"]').val() == '')){ + toastr.error("Nomor SK dan Link GDrive Tim Adiwiyata Belum Diisi ", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'}); + } + } + + if ( + $('input[name="info_pblhs"]:checked').length > 0 && // Radio button + $('input[name="media[]"]:checked').length > 0 && // Checkbox + $('input[name="materi[]"]:checked').length > 0 && + $('input[name="komitmen"]:checked').length > 0 && + $('input[name="kegiatan_lingkungan[]"]:checked').length > 0 && + $('input[name="pihak_kegiatan_lingkungan[]"]:checked').length > 0 + ) { + toastr.success("Data Sudah Lengkap", 'Sukses!', { + positionClass: 'toast-bottom-right', + containerId: 'toast-bottom-right' + }); + + $('#form').submit(); + } else { + toastr.error("Data Belum Lengkap", 'Error!', { + positionClass: 'toast-bottom-right', + containerId: 'toast-bottom-right' + }); + } + + + }else{ + toastr.error("Data Belum Lengkap ", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'}); + } + + }else{ + toastr.error("Penghargaan adiwiyata Belum Diisi ", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'}); + } + + $('input[required], select[required], textarea[required]').each(function () { + if ($(this).val().trim() === '') { + isValid = false; + $(this).css('border', '2px solid red'); // Tandai input yang kosong + } else { + $(this).css('border', ''); // Kembalikan ke border default + } + }); + + }); @endsection \ No newline at end of file diff --git a/resources/views/modules/master/form-kriteria/form.blade.php b/resources/views/modules/master/form-kriteria/form.blade.php new file mode 100644 index 0000000..d194da4 --- /dev/null +++ b/resources/views/modules/master/form-kriteria/form.blade.php @@ -0,0 +1,199 @@ +@extends('layouts.master') +@section('breadcrumbs') + +@endsection +@section('content') +
+
+
+
+ {{$title}} +
+
+ {{csrf_field()}} +
+
+
+ +
+
+
+ +
+ + @error('kategori') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('page_number') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('judul') + {{$message}} + @enderror +
+
+
+
+
+ +
+ + @error('type') + {{$message}} + @enderror +
+
+
+
+ + + + + + +
+
+
+ +
+ + @error('active_lainnya') + {{$message}} + @enderror +
+
+
+ + +
+
+ +
+
+
+
+@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/master/form-kriteria/index.blade.php b/resources/views/modules/master/form-kriteria/index.blade.php new file mode 100644 index 0000000..dc01640 --- /dev/null +++ b/resources/views/modules/master/form-kriteria/index.blade.php @@ -0,0 +1,109 @@ +@extends('layouts.master') + +@section('page-css') +@endsection +@section('breadcrumbs') + +@endsection +@section('content') +
+

+ {{$title}} +

+
+
+
+
+
+
+ + + + + + + + + + + + + + +
#NoNumber HalamanJudulStatusCreated At
+ +
+
+
+
+
+ +@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/usulan/kriteria/form.blade.php b/resources/views/modules/usulan/kriteria/form.blade.php new file mode 100644 index 0000000..40a2f8d --- /dev/null +++ b/resources/views/modules/usulan/kriteria/form.blade.php @@ -0,0 +1,171 @@ +@extends('layouts.master') + +@section('page-css') + + +@endsection +@section('content') +
+

+ {{$title}} +

+
+
+
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif +
+ {{csrf_field()}} +
+
+
+
+ + + + + + + + + + + + + + + + +
+ +
NPSN: {{session('npsn')}}

{{session('name')}}

{{session('tingkat_sekolah')}} {{session('status_sekolah')}}

{{session('alamat_sekolah')}}

+
+
+
    + @foreach($page as $hal) +
  • {{$hal}}
  • + @endforeach +
  • Resume
  • +
  • Progress Usulan
  • +
+
+
+
+
I. Perencanaan Gerakan PBLHS
+
+
+
+ +
+ {!! formKriteria(1) !!} +
+
+
+
Link Google Drive (folder/File penyimpanan bukti)
+
+ + Contoh link : https://example.com +
+
+
+
+ +
+
+ + +
+
+
+
+@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/routes/modules/modules.php b/routes/modules/modules.php index 4e5b257..fe4ea36 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -3,27 +3,60 @@ use Illuminate\Support\Facades\Route; use App\Http\Middleware\Session; use App\Http\Controllers\HomeController; +use App\Http\Controllers\AjaxController; use App\Http\Controllers\ProfileController; use App\Http\Controllers\KuesionerController; use App\Http\Controllers\Master\IndikatorController; use App\Http\Controllers\Master\KomponenController; +use App\Http\Controllers\Master\FormKriteriaController; use App\Http\Controllers\Management\UserController; use App\Http\Controllers\Management\UserSekolahController; use App\Http\Controllers\Management\RoleController; use App\Http\Controllers\Management\AksesController; +use App\Http\Controllers\Modules\Usulan\AdministrasiController; +use App\Http\Controllers\Modules\Usulan\KriteriaController; +use App\Http\Controllers\Modules\Usulan\ProgressController; +use App\Http\Controllers\Modules\Usulan\SekolahBinaanController; Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard'); Route::get('profile-sekolah',[ProfileController::class,'index'])->name('profile.index'); Route::post('profile-sekolah',[ProfileController::class,'store'])->name('profile.store'); +Route::post('getForm',[AjaxController::class,'getForm'])->name('getForm'); Route::name('master.')->prefix('master')->group(function () { Route::resource('indikator',IndikatorController::class); Route::resource('komponen',KomponenController::class); + + Route::name('form-kriteria.')->prefix('form-kriteria')->group(function () { + Route::get('/',[FormKriteriaController::class,'index'])->name('index'); + Route::get('/update/{id?}',[FormKriteriaController::class,'update'])->name('update'); + Route::post('/store',[FormKriteriaController::class,'store'])->name('store'); + Route::get('/grid',[FormKriteriaController::class,'grid'])->name('grid'); + }); }); Route::name('kuesioner.')->prefix('kuesioner')->group(function () { Route::get('/',[KuesionerController::class,'index'])->name('index'); - Route::get('/store',[KuesionerController::class,'store'])->name('store'); + Route::post('/store',[KuesionerController::class,'store'])->name('store'); +}); + +Route::name('usulan.')->prefix('usulan')->group(function () { + Route::name('kriteria.')->prefix('kriteria')->group(function () { + Route::get('/',[KriteriaController::class,'index'])->name('index'); + Route::post('/store',[KriteriaController::class,'store'])->name('store'); + }); + + Route::name('administrasi.')->prefix('administrasi')->group(function () { + Route::get('/',[AdministrasiController::class,'index'])->name('index'); + }); + + Route::name('progress.')->prefix('progress')->group(function () { + Route::get('/',[ProgressController::class,'index'])->name('index'); + }); + + Route::name('binaan.')->prefix('binaan')->group(function () { + Route::get('/',[SekolahBinaanController::class,'index'])->name('index'); + }); }); Route::name('management.')->prefix('management')->group(function () {