This commit is contained in:
Runggu Marusaha Manalu 2023-11-20 12:03:38 +00:00
parent bd6513f0ab
commit 818ad8b603
22 changed files with 936 additions and 52 deletions

View File

@ -27,12 +27,12 @@ class DataBumdesController extends Controller
'jabatan' => 'required',
'instansi' => 'required',
'kabupaten' => 'required',
'phone_number' => 'required|numeric',
'phone_number' => 'required|string',
'pesan' => 'required',
'alamat' => 'required',
'nama_distrik' => 'required',
'jumlah_kampung' => 'required|numeric',
'jumlah_penduduk' => 'required|numeric',
'jumlah_kampung' => 'required|integer',
'jumlah_penduduk' => 'required|integer',
'pendidikan' => 'required',
'pertanian' => 'required',
'peternakan' => 'required',
@ -47,11 +47,48 @@ class DataBumdesController extends Controller
'bumdes_sudah_berbadan' => 'required',
'bumdes_belum_berbadan' => 'required',
'jenis_usaha_bumdes' => 'required',
'jarak_tempuh_bandara' => 'required|numeric',
'jarak_tempuh_kampung' => 'required|numeric',
'jarak_tempuh_bandara' => 'required|string',
'jarak_tempuh_kampung' => 'required|string',
'sharing_information' => 'required',
];
$validator = Validator::make($request->all(), $rules);
$messages = [
'nip.required' => 'Form NIP wajib diisi!',
'nama_lengkap.required' => 'Form nama lengkap wajib diisi!',
'pangkat.required' => 'Form pangkat wajib diisi!',
'jabatan.required' => 'Form jabatan wajib diisi!',
'instansi.required' => 'Form instansi wajib diisi!',
'kabupaten.required' => 'Form kabupaten wajib diisi!',
'phone_number.required' => 'Form nomor telepon wajib diisi!',
'pesan.required' => 'Form pesan wajib diisi!',
'alamat.required' => 'Form alamat wajib diisi!',
'nama_distrik.required' => 'Form nama distrik wajib diisi!',
'jumlah_kampung.required' => 'Form jumlah kampung wajib diisi!',
'jumlah_penduduk.required' => 'Form jumlah penduduk wajib diisi!',
'pendidikan.required' => 'Form pendidikan wajib diisi!',
'pertanian.required' => 'Form pertanian wajib diisi!',
'peternakan.required' => 'Form pertenakan wajib diisi!',
'perikanan.required' => 'Form perikanan wajib diisi!',
'perkebunan.required' => 'Form perkebunan wajib diisi!',
'kehutanan.required' => 'Form kehutanan wajib diisi!',
'lain_lain.required' => 'Form lain-lain wajib diisi!',
'potensi_aset.required' => 'Form ppotensi aset wajib diisi!',
'kelembagaan_adat.required' => 'Form kelembagaan adat wajib diisi!',
'kelembagaan_sosial.required' => 'Form kelembagaan sosial wajib diisi!',
'bumdes_sudah_berbadan.required' => 'Form bumdes sudah berbadan wajib diisi!',
'bumdes_belum_berbadan.required' => 'Form bumdes belum berbadan wajib diisi!',
'jenis_usaha_bumdes.required' => 'Form jenis usaha bumdes wajib diisi!',
'jarak_tempuh_bandara.required' => 'Form jarak tempuh bandara wajib diisi!',
'jarak_tempuh_kampung.required' => 'Form jarak tempuh kampung wajib diisi!',
'jenis_pelatihan.required' => 'Form jenis pelatihan wajib diisi!',
'kampung_binaan.required' => 'Form kampung binaan wajib diisi!',
'sharing_information.required' => 'Form sharing information wajib diisi!',
'nip.integer' => 'Form NIP harus diisi dengan angka!',
'jumlah_kampung.integer' => 'Form jumlah kampung harus diisi dengan angka!',
'jumlah_penduduk.integer' => 'Form jumlah penduduk harus diisi dengan angka!'
];
$validator = Validator::make($request->all(), $rules, $messages);
// Check if validation fails
if ($validator->fails()) {

View File

@ -25,12 +25,12 @@ class DataClatransController extends Controller
'jabatan' => 'required',
'instansi' => 'required',
'kabupaten' => 'required',
'phone_number' => 'required|numeric',
'phone_number' => 'required|string',
'pesan' => 'required',
'alamat' => 'required',
'nama_distrik' => 'required',
'jumlah_kampung' => 'required|numeric',
'jumlah_penduduk' => 'required|numeric',
'jumlah_kampung' => 'required|integer',
'jumlah_penduduk' => 'required|integer',
'pendidikan' => 'required',
'pertanian' => 'required',
'peternakan' => 'required',
@ -43,13 +43,49 @@ class DataClatransController extends Controller
'no_sk_caltrans' => 'required',
'tgl_sk_caltrans' => 'required',
'penandatangan_sk_caltrans' => 'required',
'jarak_tempuh_bandara' => 'required|numeric',
'jarak_tempuh_kampung' => 'required|numeric',
'jarak_tempuh_bandara' => 'required|string',
'jarak_tempuh_kampung' => 'required|string',
'kampung_binaan' => 'required',
'jenis_pelatihan' => 'required',
'sharing_information' => 'required',
];
$validator = Validator::make($request->all(), $rules);
$messages = [
'nip.required' => 'Form NIP wajib diisi!',
'nama_lengkap.required' => 'Form nama lengkap wajib diisi!',
'pangkat.required' => 'Form pangkat wajib diisi!',
'jabatan.required' => 'Form jabatan wajib diisi!',
'instansi.required' => 'Form instansi wajib diisi!',
'kabupaten.required' => 'Form kabupaten wajib diisi!',
'phone_number.required' => 'Form nomor telepon wajib diisi!',
'pesan.required' => 'Form pesan wajib diisi!',
'alamat.required' => 'Form alamat wajib diisi!',
'nama_distrik.required' => 'Form nama distrik wajib diisi!',
'jumlah_kampung.required' => 'Form jumlah kampung wajib diisi!',
'jumlah_penduduk.required' => 'Form jumlah penduduk wajib diisi!',
'pendidikan.required' => 'Form pendidikan wajib diisi!',
'pertanian.required' => 'Form pertanian wajib diisi!',
'peternakan.required' => 'Form pertenakan wajib diisi!',
'perikanan.required' => 'Form perikanan wajib diisi!',
'perkebunan.required' => 'Form perkebunan wajib diisi!',
'kehutanan.required' => 'Form kehutanan wajib diisi!',
'lain_lain.required' => 'Form lain-lain wajib diisi!',
'kelembagaan_adat.required' => 'Form kelembagaan adat wajib diisi!',
'kelembagaan_sosial.required' => 'Form kelembagaan sosial wajib diisi!',
'no_sk_caltrans.required' => 'Form no. SK CALTRANS wajib diisi!',
'tgl_sk_caltrans.required' => 'Form tanggal SK CALTRANS wajib diisi!',
'penandatangan_sk_caltrans.required' => 'Form penandatangan SK CALTRANS wajib diisi!',
'jarak_tempuh_bandara.required' => 'Form jarak tempuh bandara wajib diisi!',
'jarak_tempuh_kampung.required' => 'Form jarak tempuh kampung wajib diisi!',
'jenis_pelatihan.required' => 'Form jenis pelatihan wajib diisi!',
'kampung_binaan.required' => 'Form kampung binaan wajib diisi!',
'sharing_information.required' => 'Form sharing information wajib diisi!',
'nip.integer' => 'Form NIP harus diisi dengan angka!',
'jumlah_kampung.integer' => 'Form jumlah kampung harus diisi dengan angka!',
'jumlah_penduduk.integer' => 'Form jumlah penduduk harus diisi dengan angka!'
];
$validator = Validator::make($request->all(), $rules, $messages);
// Check if validation fails
if ($validator->fails()) {

View File

@ -25,25 +25,56 @@ class DataDeswitaController extends Controller
'jabatan' => 'required',
'instansi' => 'required',
'kabupaten' => 'required',
'phone_number' => 'required|numeric',
'phone_number' => 'required|string',
'pesan' => 'required',
'alamat' => 'required',
'nama_distrik' => 'required',
'jumlah_kampung' => 'required|numeric',
'jumlah_penduduk' => 'required|numeric',
'jumlah_kampung' => 'required|integer',
'jumlah_penduduk' => 'required|integer',
'pendidikan' => 'required',
'atraksi' => 'required',
'amenitas' => 'required',
'aksesibilitas' => 'required',
'kelembagaan' => 'required',
'jumlah_pokdarwis' => 'required|numeric',
'jarak_tempuh_bandara' => 'required|numeric',
'jarak_tempuh_kampung' => 'required|numeric',
'jumlah_pokdarwis' => 'required|integer',
'jarak_tempuh_bandara' => 'required|string',
'jarak_tempuh_kampung' => 'required|string',
'jenis_pelatihan' => 'required',
'kampung_binaan' => 'required',
'sharing_information' => 'required',
];
$validator = Validator::make($request->all(), $rules);
$messages = [
'nip.required' => 'Form NIP wajib diisi!',
'nama_lengkap.required' => 'Form nama lengkap wajib diisi!',
'pangkat.required' => 'Form pangkat wajib diisi!',
'jabatan.required' => 'Form jabatan wajib diisi!',
'instansi.required' => 'Form instansi wajib diisi!',
'kabupaten.required' => 'Form kabupaten wajib diisi!',
'phone_number.required' => 'Form nomor telepon wajib diisi!',
'pesan.required' => 'Form pesan wajib diisi!',
'alamat.required' => 'Form alamat wajib diisi!',
'nama_distrik.required' => 'Form nama distrik wajib diisi!',
'jumlah_kampung.required' => 'Form jumlah kampung wajib diisi!',
'jumlah_penduduk.required' => 'Form jumlah penduduk wajib diisi!',
'pendidikan.required' => 'Form pendidikan wajib diisi!',
'atraksi.required' => 'Form atraksi wajib diisi!',
'amenitas.required' => 'Form amenitas wajib diisi!',
'aksesibilitas.required' => 'Form aksesibilitas wajib diisi!',
'kelembagaan.required' => 'Form kelembagaan wajib diisi!',
'jumlah_pokdarwis.required' => 'Form jumlah pokdarwis wajib diisi!',
'jarak_tempuh_bandara.required' => 'Form jarak tempuh bandara wajib diisi!',
'jarak_tempuh_kampung.required' => 'Form jarak tempuh kampung wajib diisi!',
'jenis_pelatihan.required' => 'Form jenis pelatihan wajib diisi!',
'kampung_binaan.required' => 'Form kampung binaan wajib diisi!',
'sharing_information.required' => 'Form sharing information wajib diisi!',
'nip.integer' => 'Form NIP harus diisi dengan angka!',
'jumlah_pokdarwis.integer' => 'Form jumlah POKDARWIS harus diisi dengan angka!',
'jumlah_kampung.integer' => 'Form jumlah kampung harus diisi dengan angka!',
'jumlah_penduduk.integer' => 'Form jumlah penduduk harus diisi dengan angka!'
];
$validator = Validator::make($request->all(), $rules, $messages);
// Check if validation fails
if ($validator->fails()) {

View File

@ -10,6 +10,8 @@ use App\Models\data_pribadi_kpmd;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use App\Http\Controllers\Hash;
use Illuminate\Support\Facades\Hash as FacadesHash;
class DataKpmdController extends Controller
{
@ -40,20 +42,54 @@ class DataKpmdController extends Controller
'lain_lain' => 'required|string',
'kelembagaan_adat' => 'required|string',
'kelembagaan_sosial' => 'required|string',
'jarak_tempuh_bandara' => 'required|numeric',
'jarak_tempuh_kampung' => 'required|numeric',
'jarak_tempuh_bandara' => 'required|string',
'jarak_tempuh_kampung' => 'required|string',
'jenis_pelatihan' => 'required|string',
'kampung_binaan' => 'required|string',
'sharing_information' => 'required|string',
];
$messages = [
'nip.required' => 'Form NIP wajib diisi!',
'nama_lengkap.required' => 'Form nama lengkap wajib diisi!',
'pangkat.required' => 'Form pangkat wajib diisi!',
'jabatan.required' => 'Form jabatan wajib diisi!',
'instansi.required' => 'Form instansi wajib diisi!',
'kabupaten.required' => 'Form kabupaten wajib diisi!',
'phone_number.required' => 'Form nomor telepon wajib diisi!',
'pesan.required' => 'Form pesan wajib diisi!',
'alamat.required' => 'Form alamat wajib diisi!',
'nama_distrik.required' => 'Form nama distrik wajib diisi!',
'jumlah_kampung.required' => 'Form jumlah kampung wajib diisi!',
'jumlah_penduduk.required' => 'Form jumlah penduduk wajib diisi!',
'pendidikan.required' => 'Form pendidikan wajib diisi!',
'pertanian.required' => 'Form pertanian wajib diisi!',
'peternakan.required' => 'Form pertenakan wajib diisi!',
'perikanan.required' => 'Form perikanan wajib diisi!',
'perkebunan.required' => 'Form perkebunan wajib diisi!',
'kehutanan.required' => 'Form kehutanan wajib diisi!',
'lain_lain.required' => 'Form lain-lain wajib diisi!',
'kelembagaan_adat.required' => 'Form kelembagaan adat wajib diisi!',
'kelembagaan_sosial.required' => 'Form kelembagaan sosial wajib diisi!',
'jarak_tempuh_bandara.required' => 'Form jarak tempuh bandara wajib diisi!',
'jarak_tempuh_kampung.required' => 'Form jarak tempuh kampung wajib diisi!',
'jenis_pelatihan.required' => 'Form jenis pelatihan wajib diisi!',
'kampung_binaan.required' => 'Form kampung binaan wajib diisi!',
'sharing_information.required' => 'Form sharing information wajib diisi!',
'nip.integer' => 'Form NIP harus diisi dengan angka!',
'jumlah_kampung.integer' => 'Form jumlah kampung harus diisi dengan angka!',
'jumlah_penduduk.integer' => 'Form jumlah penduduk harus diisi dengan angka!'
];
// Validate the request data
$validator = Validator::make($request->all(), $rules);
$validator = Validator::make($request->all(), $rules, $messages);
// Check if validation fails
if ($validator->fails()) {
return response()->json(['input_data_gagal' => $validator->errors()], 400);
}
// else{
// return response()->json(['message' => 'Data validation successful']);
// }
@ -149,6 +185,7 @@ class DataKpmdController extends Controller
//
}
/**
* Show the form for creating a new resource.
*/
@ -162,7 +199,8 @@ class DataKpmdController extends Controller
*/
public function store(Storedata_kpmdRequest $request)
{
//
// try {
}
/**

View File

@ -52,6 +52,7 @@ class DataPribadiBumdesController extends Controller
'pesan' => 'required',
'alamat' => 'required'
]);
data_pribadi_bumdes::create($validateData);
return redirect('/data-distrik-bumdes');
}

View File

@ -52,6 +52,7 @@ class DataPribadiKpmdController extends Controller
'pesan' => 'required',
'alamat' => 'required'
]);
data_pribadi_kpmd::create($validateData);
return redirect('/data-distrik-kpmd');
}

View File

@ -66,16 +66,18 @@ class ManajemenAdminController extends Controller
*/
public function update(Updatemanajemen_adminRequest $request, manajemen_admin $manajemen_admin)
{
$validatedData = $request->validate([
'email' => 'required',
'name' => 'required',
'password' => 'required',
]);
$validatedData = $request->validated();
dd($validatedData);
User::WHERE('id', $manajemen_admin->id)->update($validatedData);
$manajemen_admin->update([
'email' => $validatedData['email'],
'name' => $validatedData['name'],
'password' => bcrypt($validatedData['password']),
]);
return redirect('/super-admin')->with('pesan', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/

View File

@ -11,7 +11,7 @@ class Updatemanajemen_adminRequest extends FormRequest
*/
public function authorize(): bool
{
return false;
return true;
}
/**

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

View File

@ -1,8 +1,7 @@
<div class="row">
{{-- <div class="row">
<div class="col-12">
<form method="POST" action="/super-admin/{{ $manajemen_admin->id }}">
{{-- @method('PUT') --}}
@csrf
<div class="card-body">
<div class="form-group">
@ -39,4 +38,57 @@
</div>
</form>
</div>
</div> --}}
<!-- Long Content Scroll Modal -->
<div class="modal fade" id="modal-edit" tabindex="-1" role="dialog" aria-labelledby="scrollableModalTitle"
aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="scrollableModalTitle">Edit Data Admin</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-12">
<form method="POST" action="/super-admin/{{ $manajemenadmin->id }}">
@csrf
<div class="card-body">
<div class="form-group">
<label>Email</label>
<input type="email" class="form-control" name="email"
value="{{ old('email', $manajemenadmin->email) }}" required>
@error('email')
<p class="text text-danger">
{{ $message }}</p>
@enderror
</div>
<div class="form-group">
<label>Name</label>
<input type="text" class="form-control" name="name"
value="{{ old('name', $manajemenadmin->name) }}" required>
</div>
{{-- <div class="form-group">
<label>Password</label>
<input type="password" class="form-control" name="password"
value="{{ old('password', $manajemenadmin->password) }}" required>
@error('password')
<p class="text text-danger">
{{ $message }}</p>
@enderror
</div> --}}
</div>
<div class="d-flex justify-content-end mb-3">
<button type="button" class="btn btn-light me-1"
data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success" id="btn-save-event">Save</button>
</div>
</form>
</div>
</div>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->

View File

@ -55,10 +55,12 @@
<form
action="{{ url('super-admin/' . $manajemenadmin->id . '/edit') }}"
method="GET" class="d-inline">
<button type="submit" class="action-icon edit-button">
<button type="button" class="action-icon edit-button"
data-bs-toggle="modal" data-bs-target="#modal-edit">
<i class="mdi mdi-square-edit-outline"></i>
</button>
</form>
<form action="{{ url('super-admin/' . $manajemenadmin->id) }}"
method="POST" class="d-inline">
@method('DELETE')
@ -85,6 +87,6 @@
<!-- end row-->
</div>
</div>
@include('Admin.Manejemen-Admin.edit')
@include('Admin.Manejemen-Admin.create')
@endsection

View File

@ -4,10 +4,10 @@
<!-- LOGO -->
<a href="index.html" class="logo text-center logo-light">
<span class="logo-lg">
<img src="/assets-login-landing/img/Kemendes_Logo.png" alt="" height="60px">
<img src="/assets-login-landing/img/logo.png" alt="" height="80px">
</span>
<span class="logo-sm">
<img src="/assets-login-landing/img/Kemendes_Logo.png" alt="" height="16">
<img src="/assets-login-landing/img/logo.png" alt="" height="16">
</span>
</a>
@ -41,12 +41,12 @@
<span> Manajemen Admin </span>
</a>
</li>
<li class="side-nav-item">
{{-- <li class="side-nav-item">
<a href="/home" class="side-nav-link">
<i class="uil-store"></i>
<span> Landing Page </span>
</a>
</li>
</li> --}}
{{-- <li class="side-nav-item">
<a data-bs-toggle="collapse" href="#sidebarEcommerce" aria-expanded="false"
aria-controls="sidebarEcommerce" class="side-nav-link">

View File

@ -1109,6 +1109,32 @@
// $(this).next('.invalid-feedback').hide();
}
});
var nipInput = current_fs.find('input[name="nip"]');
if (nipInput.val() !== "" && nipInput.val() != undefined) {
// Check if NIP is a valid integer
if (!Number.isInteger(Number(nipInput.val()))) {
nipInput.addClass("is-invalid");
nipInput.parent().find(".invalid-feedback").text("NIP harus diisi dengan angka!").show();
console.log("masuk booleas")
allFieldsFilled = false;
} else {
nipInput.removeClass("is-invalid");
nipInput.parent().find(".invalid-feedback").hide();
}
}
var phoneNumberInput = current_fs.find('input[name="phone_number"]');
if (phoneNumberInput.val() !== "" && nipInput.val() != undefined) {
var phoneNumberRegex = /^\d{10,}$/; // Example regex for a 10-digit phone number
if (!phoneNumberRegex.test(phoneNumberInput.val())) {
phoneNumberInput.addClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").text("Format no. HP salah!")
.show();
allFieldsFilled = false;
} else {
phoneNumberInput.removeClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").hide();
}
}
if (allFieldsFilled) {
// All required fields are filled, proceed to the next step
if ($(this).attr("value") === "Submit") {

View File

@ -1126,6 +1126,32 @@
// $(this).next('.invalid-feedback').hide();
}
});
var nipInput = current_fs.find('input[name="nip"]');
if (nipInput.val() !== "" && nipInput.val() != undefined) {
// Check if NIP is a valid integer
if (!Number.isInteger(Number(nipInput.val()))) {
nipInput.addClass("is-invalid");
nipInput.parent().find(".invalid-feedback").text("NIP harus diisi dengan angka!").show();
console.log("masuk booleas")
allFieldsFilled = false;
} else {
nipInput.removeClass("is-invalid");
nipInput.parent().find(".invalid-feedback").hide();
}
}
var phoneNumberInput = current_fs.find('input[name="phone_number"]');
if (phoneNumberInput.val() !== "" && nipInput.val() != undefined) {
var phoneNumberRegex = /^\d{10,}$/; // Example regex for a 10-digit phone number
if (!phoneNumberRegex.test(phoneNumberInput.val())) {
phoneNumberInput.addClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").text("Format no. HP salah!")
.show();
allFieldsFilled = false;
} else {
phoneNumberInput.removeClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").hide();
}
}
if (allFieldsFilled) {
// All required fields are filled, proceed to the next step
if ($(this).attr("value") === "Submit") {

View File

@ -1006,7 +1006,6 @@
'input[required], select[required], textarea[required]');
var allFieldsFilled = true;
requiredFields.each(function() {
coba = this;
if ($(this).val() === "") {
allFieldsFilled = false;
$(this).addClass("is-invalid");
@ -1020,6 +1019,35 @@
// $(this).next('.invalid-feedback').hide();
}
});
var nipInput = current_fs.find('input[name="nip"]');
if (nipInput.val() !== "" && nipInput.val() != undefined) {
// Check if NIP is a valid integer
if (!Number.isInteger(Number(nipInput.val()))) {
nipInput.addClass("is-invalid");
nipInput.parent().find(".invalid-feedback").text("NIP harus diisi dengan angka!").show();
console.log("masuk booleas")
allFieldsFilled = false;
} else {
nipInput.removeClass("is-invalid");
nipInput.parent().find(".invalid-feedback").hide();
}
}
var phoneNumberInput = current_fs.find('input[name="phone_number"]');
if (phoneNumberInput.val() !== "" && nipInput.val() != undefined) {
var phoneNumberRegex = /^\d{10,}$/; // Example regex for a 10-digit phone number
if (!phoneNumberRegex.test(phoneNumberInput.val())) {
phoneNumberInput.addClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").text("Format no. HP salah!")
.show();
allFieldsFilled = false;
} else {
phoneNumberInput.removeClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").hide();
}
}
if (allFieldsFilled) {
// All required fields are filled, proceed to the next step
if ($(this).attr("value") === "Submit") {

View File

@ -340,6 +340,9 @@
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-11 col-sm-9 col-md-7 col-lg-9 text-center p-0 mt-3 mb-2">
<div class="mt-5">
<img src="{{ asset('images/kemendesa-logo.png') }}" alt="" style="width: 120px;">
</div>
<div class="card px-0 pt-4 pb-0 mt-3 mb-3">
<h2 id="heading">Form Pelatihan Kader Pemberdayaan Masyarakat Kampung</h2>
<p>Fill all form field to go to next step
@ -851,7 +854,6 @@
'input[required], select[required], textarea[required]');
var allFieldsFilled = true;
requiredFields.each(function() {
coba = this;
if ($(this).val() === "") {
allFieldsFilled = false;
$(this).addClass("is-invalid");
@ -865,6 +867,34 @@
// $(this).next('.invalid-feedback').hide();
}
});
var nipInput = current_fs.find('input[name="nip"]');
if (nipInput.val() !== "" && nipInput.val() != undefined) {
// Check if NIP is a valid integer
if (!Number.isInteger(Number(nipInput.val()))) {
nipInput.addClass("is-invalid");
nipInput.parent().find(".invalid-feedback").text("NIP harus diisi dengan angka!").show();
console.log("masuk booleas")
allFieldsFilled = false;
} else {
nipInput.removeClass("is-invalid");
nipInput.parent().find(".invalid-feedback").hide();
}
}
var phoneNumberInput = current_fs.find('input[name="phone_number"]');
if (phoneNumberInput.val() !== "" && nipInput.val() != undefined) {
var phoneNumberRegex = /^\d{10,}$/; // Example regex for a 10-digit phone number
if (!phoneNumberRegex.test(phoneNumberInput.val())) {
phoneNumberInput.addClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").text("Format no. HP salah!")
.show();
allFieldsFilled = false;
} else {
phoneNumberInput.removeClass("is-invalid");
phoneNumberInput.parent().find(".invalid-feedback").hide();
}
}
if (allFieldsFilled) {
// All required fields are filled, proceed to the next step
if ($(this).attr("value") === "Submit") {
@ -970,18 +1000,26 @@
dataType: "JSON",
error: function(response) {
let res = response.responseJSON
const entries = Object.entries(res.input_data_gagal);
coba = response
let html = ""
if (response.status == 500) {
html += `<li>${res.message}</li>`
} else {
const entries = Object.entries(res.input_data_gagal);
entries.forEach(([key, value]) => {
html += `<li>${value}</li>`
});
}
$("#showerrors").html(html)
$("#showerrors").show()
window.location.href = "#showerrors"
return false
}
});
return true
} else {
console.log("aaaaaaaaaaaaa")
// Add Class Active
$("#progressbar li").eq($("fieldset").index(next_fs)).addClass("active");
// Show the next fieldset
@ -1004,10 +1042,13 @@
duration: 500
});
setProgressBar(++current);
return false
}
} else {
console.log("wopasod")
$('html, body').animate({
scrollTop: requiredFields.filter(function() {
console.log($(this).val())
return $(this).val() === "";
}).first().offset().top
}, 500);

View File

@ -102,7 +102,6 @@
</div>
</a>
</div>
<div class="col-md-6 col-lg-3 d-flex align-items-stretch mb-5 mb-lg-0" data-aos="zoom-in"
data-aos-delay="300">
<a href="/caltrans">
@ -117,7 +116,6 @@
</div>
</a>
</div>
</div>
</div>

View File

@ -1,4 +1,87 @@
{{-- <!DOCTYPE html>
<html>
<head>
<title>KEMENDESA | PELAYANAN PELATIHAN</title>
<link href="assets-login-landing/img/Kemendes_Logo.png" rel="icon">
<!-- Favicons -->
<link rel="stylesheet" type="text/css" href="assets-login/css/style.css">
<!-- Google Fonts -->
<link
href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,600,600i,700,700i"
rel="stylesheet">
<script src="https://kit.fontawesome.com/a81368914c.js"></script>
<!-- Template Main CSS File -->
<link href="assets-login-landing/css/style.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="login">
<div class="container">
<div class="img">
<img src="assets-login-landing/img/login.svg" class="img-fluid animated" id="moving-login-img">
</div>
<div class="login-content">
<form action="/login" method="POST">
@csrf
@if (session()->has('errorLogin'))
<div class="alert alert-danger" role="alert">
{{ session('errorLogin') }}
</div>
@endif
<h1 class="title">Selamat Datang!</h1>
<p>Silahkan Masukan Email dan Password Anda</p>
<div class="input-div one">
<div class="i">
<i class="fas fa-user"></i>
</div>
<div class="div">
<h5>Email</h5>
<input type="email" class="input" name="email">
</div>
</div>
<div class="input-div pass">
<div class="i">
<i class="fas fa-lock"></i>
</div>
<div class="div">
<h5>Password</h5>
<input type="password" class="input" name="password">
</div>
</div>
<input type="submit" class="btn" value="Login" style="color: #fff;">
</form>
</div>
</div>
</div>
<script>
const inputs = document.querySelectorAll(".input");
function addcl() {
let parent = this.parentNode.parentNode;
parent.classList.add("focus");
}
function remcl() {
let parent = this.parentNode.parentNode;
if (this.value == "") {
parent.classList.remove("focus");
}
}
inputs.forEach(input => {
input.addEventListener("focus", addcl);
input.addEventListener("blur", remcl);
});
</script>
</body>
</html> --}}
{{-- <!DOCTYPE html>
<html lang="en">
<head>
@ -109,7 +192,7 @@
<link href="assets-login-landing/img/Kemendes_Logo.png" rel="icon">
<!-- Favicons -->
<link rel="stylesheet" type="text/css" href="assets-login/css/style.css">
{{-- <link rel="stylesheet" type="text/css" href="assets-login/css/style.css"> --}}
<!-- Google Fonts -->
<link
@ -118,13 +201,118 @@
<script src="https://kit.fontawesome.com/a81368914c.js"></script>
<!-- Template Main CSS File -->
<link href="assets-login-landing/css/style.css" rel="stylesheet">
{{-- <link href="assets-login-landing/css/style.css" rel="stylesheet"> --}}
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
font-family: Poppins;
}
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.bg-img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
}
.wrapper {
position: relative;
}
.login-card {
border-radius: 10px;
background: #fff;
padding: 75px 50px 100px 50px;
width: 100%;
max-width: 400px;
box-shadow: 0 30px 60px 0 rgba(0, 0, 0, 0.3);
text-align: center;
margin: 0;
}
.icon {
width: 40%;
margin-bottom: 10px;
}
.title {
color: #1D2732;
text-align: center;
font-size: 1.3rem;
font-style: normal;
font-weight: 600;
line-height: normal;
margin-bottom: .5rem;
}
.text {
color: #1D2732;
font-size: .8rem;
font-weight: 500;
margin-bottom: 1rem;
}
.input-login {
width: 100%;
height: 40px;
border-radius: .5rem;
border: none;
background: #F8F8F8;
padding: 10px;
margin: 5px 0;
}
.input-login:focus {
outline: none;
border: 1px solid #d9d9d9;
}
.btn-login {
width: 100%;
height: 40px;
border: none;
color: #fff;
border-radius: .5rem;
background: #009C98;
box-shadow: -2px 4px 4px 0px rgba(0, 0, 0, 0.10);
padding: 0;
font-weight: 600;
font-size: 11px;
transition: transform 0.3s ease;
margin-top: 20px;
}
.btn-login:hover {
transform: translateY(-5px);
}
.footer {
color: #1D2732;
font-size: 0.6rem;
font-style: normal;
font-weight: 400;
line-height: normal;
padding: 0;
margin: 75px 0 0 0;
}
</style>
</head>
<body>
<div class="login">
{{-- <div class="login">
<div class="container">
<div class="img">
<img src="assets-login-landing/img/login.svg" class="img-fluid animated" id="moving-login-img">
@ -180,7 +368,51 @@
input.addEventListener("focus", addcl);
input.addEventListener("blur", remcl);
});
</script>
</script> --}}
<img class="bg-img" src="assets-login-landing/img/login_bg.png" alt="">
<div class="wrapper">
<!-- <div class="card login-card p-2" id="formContent"> -->
<div class="card login-card" id="formContent">
<!-- <img class="card-img-top icon" src="assets/img/logo-green.png" alt="login logo"> -->
<img class="icon" src="assets-login-landing/img/logo.png" alt="login logo">
<div>
<p class="title">Selamat Datang</p>
<p class="text">Lakukan login terlebih dahulu untuk memulai.</p>
</div>
<div class="card-body">
<form action="/login" method="POST">
@csrf
@if (session()->has('errorLogin'))
<div class="alert alert-danger" role="alert">
{{ session('errorLogin') }}
</div>
@endif
<div class="row">
<div class="col">
<div class="form-group">
<input type="email" ngModel placeholder="Email" name="email"
class="form-control input-login" required />
</div>
</div>
</div>
<div class="row">
<div class="col">
<div class="form-group">
<input type="password" ngModel placeholder="Password" name="password"
class="form-control input-login" required />
</div>
</div>
</div>
<input type="submit" class="btn btn-info btn-lg btn-block btn-login" value="Login">
</form>
<div>
<!-- <a class="">Forgot Password?</a> -->
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,332 @@
{{-- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Log In | Hyper - Responsive Bootstrap 5 Admin Dashboard</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="A fully featured admin theme which can be used to build CRM, CMS, etc." name="description" />
<meta content="Coderthemes" name="author" />
<!-- App favicon -->
<link rel="shortcut icon" href="assets/images/favicon.ico">
<!-- App css -->
<link href="assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<link href="assets/css/app.min.css" rel="stylesheet" type="text/css" id="light-style" />
<link href="assets/css/app-dark.min.css" rel="stylesheet" type="text/css" id="dark-style" />
</head>
<body class="loading authentication-bg"
data-layout-config='{"leftSideBarTheme":"dark","layoutBoxed":false, "leftSidebarCondensed":false, "leftSidebarScrollable":false,"darkMode":false, "showRightSidebarOnStart": true}'>
<div class="account-pages pt-2 pt-sm-5 pb-4 pb-sm-5">
<div class="container">
<div class="row justify-content-center">
<div class="col-xxl-4 col-lg-5">
<div class="card">
<!-- Logo -->
<div class="card-header pt-4 pb-4 text-center bg-primary">
<a href="index.html">
<span><img src="assets/images/logo.png" alt="" height="18"></span>
</a>
</div>
<div class="card-body p-4">
<div class="text-center w-75 m-auto">
<h4 class="text-dark-50 text-center pb-0 fw-bold">Sign In</h4>
<p class="text-muted mb-4">Enter your email address and password to access admin panel.
</p>
</div>
<form action="/login" method="POST">
@csrf
@if (session()->has('errorLogin'))
<div class="alert alert-danger" role="alert">
{{ session('errorLogin') }}
</div>
@endif
<div class="mb-3">
<label for="emailaddress" class="form-label">Email address</label>
<input class="form-control" type="email" name="email" required=""
placeholder="Enter your email">
</div>
<label for="password" class="form-label">Password</label>
<div class="input-group input-group-merge">
<input type="password" name="password" class="form-control"
placeholder="Enter your password">
<div class="input-group-text" data-password="false">
<span class="password-eye"></span>
</div>
</div>
</div>
<div class="mb-3 mb-0 text-center">
<button class="btn btn-primary" type="submit"> Log In </button>
</div>
</form>
</div> <!-- end card-body -->
</div>
<!-- end card -->
<div class="row mt-3">
<div class="col-12 text-center">
<p class="text-muted">Don't have an account? <a href="pages-register.html"
class="text-muted ms-1"><b>Sign Up</b></a></p>
</div> <!-- end col -->
</div>
<!-- end row -->
</div> <!-- end col -->
</div>
<!-- end row -->
</div>
<!-- end container -->
</div>
<!-- end page -->
<footer class="footer footer-alt">
2018 - 2021 © Hyper - Coderthemes.com
</footer>
<!-- bundle -->
<script src="assets/js/vendor.min.js"></script>
<script src="assets/js/app.min.js"></script>
</body>
</html> --}}
<!DOCTYPE html>
<html>
<head>
<title>KEMENDESA | PELAYANAN PELATIHAN</title>
<link href="assets-login-landing/img/Kemendes_Logo.png" rel="icon">
<!-- Favicons -->
{{-- <link rel="stylesheet" type="text/css" href="assets-login/css/style.css"> --}}
<!-- Google Fonts -->
<link
href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,600,600i,700,700i"
rel="stylesheet">
<script src="https://kit.fontawesome.com/a81368914c.js"></script>
<!-- Template Main CSS File -->
{{-- <link href="assets-login-landing/css/style.css" rel="stylesheet"> --}}
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
/* BASIC */
.bg-img {
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
object-fit: cover;
width: 100%;
height: 100%;
position: absolute;
}
.wrapper {
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
}
.icon {
width: 30%;
margin-bottom: 10px;
}
.title {
color: #1D2732;
text-align: center;
font-size: 1.3rem;
font-style: normal;
font-weight: 600;
line-height: normal;
margin-bottom: 0;
}
.text {
margin-top: .5rem;
color: #1D2732;
font-size: .6rem;
font-style: normal;
font-weight: 500;
line-height: normal;
margin-bottom: 20px;
}
.footer {
color: #1D2732;
font-size: 0.6rem;
font-style: normal;
font-weight: 400;
line-height: normal;
padding: 0;
margin: 75px 0 0 0;
}
.login-card {
-webkit-border-radius: 10px 10px 10px 10px;
border-radius: 10px 10px 10px 10px;
background: #fff;
padding: 75px 35px 30px 35px;
width: 90%;
max-width: 340px;
position: relative;
-webkit-box-shadow: 0 30px 60px 0 rgba(0, 0, 0, 0.3);
box-shadow: 0 30px 60px 0 rgba(0, 0, 0, 0.3);
text-align: center;
margin: 0;
}
.card-body {
padding: 0;
}
.input-login {
width: 100%;
height: 40px;
border-radius: .5rem;
border: none;
background: #F8F8F8;
}
.btn-login {
width: 100%;
height: 40px;
border-radius: .5rem;
background: #009C98;
box-shadow: -2px 4px 4px 0px rgba(0, 0, 0, 0.10);
padding: 0;
font-weight: 600;
font-size: 11px;
transition: transform 0.3s ease;
}
.btn-login:hover {
transform: translateY(-5px);
}
</style>
</head>
<body>
{{-- <div class="login">
<div class="container">
<div class="img">
<img src="assets-login-landing/img/login.svg" class="img-fluid animated" id="moving-login-img">
</div>
<div class="login-content">
<form action="/login" method="POST">
@csrf
@if (session()->has('errorLogin'))
<div class="alert alert-danger" role="alert">
{{ session('errorLogin') }}
</div>
@endif
<h1 class="title">Selamat Datang!</h1>
<p>Silahkan Masukan Email dan Password Anda</p>
<div class="input-div one">
<div class="i">
<i class="fas fa-user"></i>
</div>
<div class="div">
<h5>Email</h5>
<input type="email" class="input" name="email">
</div>
</div>
<div class="input-div pass">
<div class="i">
<i class="fas fa-lock"></i>
</div>
<div class="div">
<h5>Password</h5>
<input type="password" class="input" name="password">
</div>
</div>
<input type="submit" class="btn" value="Login" style="color: #fff;">
</form>
</div>
</div>
</div>
<script>
const inputs = document.querySelectorAll(".input");
function addcl() {
let parent = this.parentNode.parentNode;
parent.classList.add("focus");
}
function remcl() {
let parent = this.parentNode.parentNode;
if (this.value == "") {
parent.classList.remove("focus");
}
}
inputs.forEach(input => {
input.addEventListener("focus", addcl);
input.addEventListener("blur", remcl);
});
</script> --}}
<img class="bg-img" src="assets/img/bg-login.png" alt="">
<div class="wrapper">
<!-- <div class="card login-card p-2" id="formContent"> -->
<div class="card login-card" id="formContent">
<!-- <img class="card-img-top icon" src="assets/img/logo-green.png" alt="login logo"> -->
<img class="icon" src="assets/img/logo-green.png" alt="login logo">
<div>
<p class="title">Selamat Datang</p>
<p class="text">Lakukan login terlebih dahulu untuk memulai.</p>
</div>
<div class="card-body">
<form #loginForm="ngForm" (ngSubmit)="submit(loginForm)" novalidate autocomplete="off">
<div class="row">
<div class="col">
<div class="form-group">
<!-- <input type="text" ngModel placeholder="username" name="username" class="form-control" autocomplete="new-username" required/> -->
<input type="text" ngModel placeholder="username" name="username"
class="form-control input-login" autocomplete="new-username" required />
</div>
<error-messages [hidden]="!loginForm.controls?.username?.touched && !loginForm.submitted"
[data]="loginForm.controls?.username?.errors"></error-messages>
</div>
</div>
<div class="row">
<div class="col">
<div class="form-group">
<!-- <input type="password" ngModel placeholder="password" name="password" class="form-control" autocomplete="new-password" required /> -->
<input type="password" ngModel placeholder="password" name="password"
class="form-control input-login" autocomplete="new-password" required />
</div>
<error-messages [hidden]="!loginForm.controls?.password?.touched && !loginForm.submitted"
[data]="loginForm.controls?.password?.errors"></error-messages>
</div>
</div>
<!-- <input type="submit" class="btn btn-info btn-lg btn-block" value="Log In"> -->
<input type="submit" class="btn btn-info btn-lg btn-block btn-login" value="Log In">
</form>
<div>
<!-- <a class="">Forgot Password?</a> -->
</div>
</div>
<p class="footer">Daily Report Pendamping</p>
</div>
</div>
</body>
</html>

View File

@ -99,11 +99,12 @@ Route::resource('deswita', DataPribadiDeswitaController::class)->parameter('desw
Route::resource('caltrans', DataPribadiCaltransController::class)->parameter('caltrans', 'data_pribadi_caltrans')->middleware('auth');
Route::post('save-bumdes-data-bumdes', [DataBumdesController::class, "savebumdes"])->name("savebumdesdatabumdes");
Route::post('save-kpmd-data-kpmd', [DataKpmdController::class, "savedatakpmd"])->name("savekpmddatakpmd");
Route::post('save-deswita-data-deswita', [DataDeswitaController::class, "savedatadeswita"])->name("savedeswitadatadeswita");
Route::post('save-caltrans-data-caltrans', [DataClatransController::class, "savedatacaltrans"])->name("savecaltransdatacaltrans");
Route::controller(ManajemenAdminController::class)->group(function () {
Route::put('/super-admin/{manajemenadmin}', 'update');
Route::POST('/super-admin/{manajemenadmin}', 'update');
Route::delete('/super-admin/{manajemenadmin}', 'destroy')->name('manajemenadmin.destroy');
Route::resource('super-admin', ManajemenAdminController::class)->parameter('super-admin', 'manajemenadmin')->middleware('auth');
});