update
							parent
							
								
									1dcd33a7f3
								
							
						
					
					
						commit
						863253c45b
					
				|  | @ -7,6 +7,8 @@ use Illuminate\Support\Facades\Validator; | |||
| use Illuminate\Support\Facades\DB; | ||||
| use Illuminate\Support\Facades\Auth; | ||||
| use Illuminate\Support\Facades\Hash; | ||||
| use Illuminate\Support\Facades\File; | ||||
| use Carbon\Carbon; | ||||
| use App\Models\Master\Instansi; | ||||
| use App\Models\Master\Template; | ||||
| use App\Models\Master\Group; | ||||
|  | @ -69,6 +71,7 @@ class InstansiController extends Controller | |||
|             'id'                => encode_id($row->id), | ||||
|             'name'              => @$row->name, | ||||
|             'parent'            => @$row->parent, | ||||
|             'logo'            => '<img width="45" class="mx-auto" src="'.asset('uploads/'.@$row->logo).'">', | ||||
|             'resource'            => @$resource, | ||||
|             'action'            => @$action, | ||||
|         ]; | ||||
|  | @ -103,28 +106,84 @@ class InstansiController extends Controller | |||
|                     'parent'            => 'required', | ||||
|                 ])->validate(); | ||||
| 
 | ||||
|                 $user = Instansi::find($keyId); | ||||
|                 $user->name = $request->name; | ||||
|                 $user->parent = $request->parent; | ||||
|                 $user->alamat     = $request->alamat; | ||||
|                 $user->telp     = $request->telp; | ||||
|                 $user->website     = $request->website; | ||||
|                 $user->resource_data     = json_encode($request->resource_data); | ||||
|                 $user->save(); | ||||
|                 if (@$request->hasFile('logo')) { | ||||
|                     $file = $request->file('logo'); | ||||
|                     $destinationPath = public_path('uploads/logo'); | ||||
|                     $current = Carbon::now()->format('Y/m/d'); | ||||
|                     $path = $destinationPath . '/' . $current; | ||||
|                     $fileName = $file->getClientOriginalName(); | ||||
|                     $fileMime = $file->getClientMimeType(); | ||||
|                     $fileExtension = $file->getClientOriginalExtension(); | ||||
|                     $fileSize = $file->getSize(); | ||||
|                     if(($fileExtension != 'png') && ($fileExtension != 'jpg') && ($fileExtension != 'jpeg')){ | ||||
|                         return redirect()->back()->with([ | ||||
|                             'message' => 'Maaf File Harus Berupa png,jpg,jpeg!', | ||||
|                             'type'    => "error" | ||||
|                         ]);    | ||||
|                     } | ||||
|                     $newFilename = session('id').'_'.uniqid('file_') . '.' . $fileExtension; | ||||
| 
 | ||||
|                     if (!File::exists($path)) { | ||||
|                         File::isDirectory($path) or File::makeDirectory($path, 0777, true, true); | ||||
|                     } | ||||
| 
 | ||||
|                     $filePath = 'logo/' . $current . '/' . $newFilename; | ||||
|                     $uploaded = $file->move($path, $newFilename); | ||||
| 
 | ||||
|                 } | ||||
| 
 | ||||
|                 $inst = Instansi::find($keyId); | ||||
|                 $inst->name = $request->name; | ||||
|                 $inst->parent = $request->parent; | ||||
|                 $inst->alamat     = $request->alamat; | ||||
|                 $inst->telp     = $request->telp; | ||||
|                 $inst->website     = $request->website; | ||||
|                 $inst->resource_data     = json_encode($request->resource_data); | ||||
|                 if (@$request->hasFile('logo')) { | ||||
|                     $inst->logo         = @$filePath;    | ||||
|                 } | ||||
|                 $inst->save(); | ||||
|             }else{ | ||||
|                 Validator::make($request->all(), [ | ||||
|                     'name'            => 'required', | ||||
|                     'parent'            => 'required', | ||||
|                 ])->validate(); | ||||
| 
 | ||||
|                 $user = new Instansi; | ||||
|                 $user->name = $request->name; | ||||
|                 $user->parent = $request->parent; | ||||
|                 $user->alamat     = $request->alamat; | ||||
|                 $user->telp     = $request->telp; | ||||
|                 $user->website     = $request->website; | ||||
|                 $user->resource_data     = json_encode($request->resource_data); | ||||
|                 $user->save(); | ||||
|                 if (@$request->hasFile('logo')) { | ||||
|                     $file = $request->file('logo'); | ||||
|                     $destinationPath = public_path('uploads/logo'); | ||||
|                     $current = Carbon::now()->format('Y/m/d'); | ||||
|                     $path = $destinationPath . '/' . $current; | ||||
|                     $fileName = $file->getClientOriginalName(); | ||||
|                     $fileMime = $file->getClientMimeType(); | ||||
|                     $fileExtension = $file->getClientOriginalExtension(); | ||||
|                     $fileSize = $file->getSize(); | ||||
|                     if(($fileExtension != 'png') && ($fileExtension != 'jpg') && ($fileExtension != 'jpeg')){ | ||||
|                         return redirect()->back()->with([ | ||||
|                             'message' => 'Maaf File Harus Berupa png,jpg,jpeg!', | ||||
|                             'type'    => "error" | ||||
|                         ]);    | ||||
|                     } | ||||
|                     $newFilename = session('id').'_'.uniqid('file_') . '.' . $fileExtension; | ||||
| 
 | ||||
|                     if (!File::exists($path)) { | ||||
|                         File::isDirectory($path) or File::makeDirectory($path, 0777, true, true); | ||||
|                     } | ||||
| 
 | ||||
|                     $filePath = 'logo/' . $current . '/' . $newFilename; | ||||
|                     $uploaded = $file->move($path, $newFilename); | ||||
| 
 | ||||
|                 } | ||||
| 
 | ||||
|                 $inst = new Instansi; | ||||
|                 $inst->name = $request->name; | ||||
|                 $inst->parent = $request->parent; | ||||
|                 $inst->alamat     = $request->alamat; | ||||
|                 $inst->telp     = $request->telp; | ||||
|                 $inst->website     = $request->website; | ||||
|                 $inst->resource_data     = json_encode($request->resource_data); | ||||
|                 $inst->logo         = @$filePath; | ||||
|                 $inst->save(); | ||||
|             } | ||||
| 
 | ||||
|             return redirect()->back()->with([ | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ return new class extends Migration | |||
|             $table->text('alamat')->nullable(); | ||||
|             $table->text('website')->nullable(); | ||||
|             $table->text('telp')->nullable(); | ||||
|             $table->string('logo')->nullable(); | ||||
|             $table->timestampsTz(); | ||||
|         }); | ||||
|     } | ||||
|  |  | |||
											
												Binary file not shown.
											
										
									
								| After Width: | Height: | Size: 462 KiB | 
|  | @ -13,7 +13,7 @@ | |||
|         <div class="flex flex-col gap-6"> | ||||
|             <div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex"> | ||||
|                 <div class="flex flex-col gap-3 items-center text-center w-1/4"> | ||||
|                     <img src="{{ asset('assets/logo/dinas.png') }}" alt="" width="50" class=""> | ||||
|                     <img src="{{ asset('uploads/'.@$dataset->instansi->logo) }}" alt="" width="50" class=""> | ||||
|                     <h1 class="font-bold">{{ $dataset->instansi->name }}</h1> | ||||
|                     <a href="{{asset('uploads/'.$dataset->file)}}" class="rounded-full text-[12px] bg-success text-white px-2 py-1">Download <i class="ri-download-line"></i></a> | ||||
|                 </div> | ||||
|  | @ -78,7 +78,7 @@ | |||
|         @foreach($lainnya as $dataSet) | ||||
|         <div class="bg-white rounded-[20px] shadow-lg p-5 py-10"> | ||||
|             <div class="flex flex-col gap-3 mx-auto items-center text-center"> | ||||
|                 <img src="{{ asset('assets/logo/dinas.png') }}" alt="" width="50" class=""> | ||||
|                 <img src="{{ asset('uploads/'.@$dataSet->instansi->logo) }}" alt="" width="50" class=""> | ||||
|                 <h1 class="font-bold">{{ @$dataSet->instansi->name }}</h1> | ||||
|                 <h5 class="">{{ $dataSet->name }}</h5> | ||||
|                 <a href="{{ url('dataset/detail/'.encode_id($dataSet->DatasetId)) }}" class="rounded-full text-[10px] bg-[#E9811A] text-white px-6 py-3">Lihat Detail</a> | ||||
|  |  | |||
|  | @ -57,7 +57,7 @@ | |||
|                 @forelse($dataset as $dataSet) | ||||
|                     <div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex"> | ||||
|                         <div class="flex flex-col gap-3 items-center text-center"> | ||||
|                             <img src="{{ asset('assets/logo/dinas.png') }}" alt="" width="50" class=""> | ||||
|                             <img src="{{ asset('uploads/'.@$dataSet->instansi->logo) }}" alt="" width="50" class=""> | ||||
|                             <h1 class="font-bold">{{ $dataSet->instansi->name }}</h1> | ||||
|                         </div> | ||||
|                             <div class="flex items-center justify-between w-full"> | ||||
|  |  | |||
|  | @ -66,7 +66,7 @@ | |||
|                 @forelse($dataset as $dataSet) | ||||
|                     <div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex"> | ||||
|                         <div class="flex flex-col gap-3 items-center text-center"> | ||||
|                             <img src="{{ asset('assets/logo/dinas.png') }}" alt="" width="50" class=""> | ||||
|                             <img src="{{ asset('uploads/'.@$dataSet->instansi->logo) }}" alt="" width="50" class=""> | ||||
|                             <h1 class="font-bold">{{ $dataSet->instansi->name }}</h1> | ||||
|                         </div> | ||||
|                             <div class="flex items-center justify-between w-full"> | ||||
|  |  | |||
|  | @ -191,9 +191,9 @@ | |||
|     </div> | ||||
|     <div class="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-6"> | ||||
|       @foreach($dataset as $dataSet) | ||||
|         <div class="bg-white rounded-[20px] shadow-lg p-5 py-10"> | ||||
|         <div class="bg-white rounded-[20px] shadow-lg p-5"> | ||||
|             <div class="flex flex-col gap-3 mx-auto items-center text-center"> | ||||
|                 <img src="{{ asset('assets/logo/dinas.png') }}" alt="" width="50" class=""> | ||||
|                 <img src="{{ asset('uploads/'.@$dataSet->instansi->logo) }}" alt="" width="50" class=""> | ||||
|                 <h1 class="font-bold">{{ @$dataSet->instansi->name }}</h1> | ||||
|                 <h5 class="">{{ $dataSet->name }}</h5> | ||||
|                 <a href="{{ url('dataset/detail/'.encode_id($dataSet->DatasetId)) }}" class="rounded-full text-[10px] bg-[#E9811A] text-white px-6 py-3">Lihat Detail</a> | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
|                 <h4 class="card-title">{{$title}}</h4> | ||||
|             </div> | ||||
|         </div> | ||||
|         <form action="{{route($route.'.store')}}" method="POST" class=""> | ||||
|         <form action="{{route($route.'.store')}}" method="POST" class="" enctype="multipart/form-data"> | ||||
|             {{csrf_field()}} | ||||
|             <input type="hidden" name="secure_id" value="{{@$keyId}}"> | ||||
|             <div class="p-6"> | ||||
|  | @ -45,12 +45,25 @@ | |||
|                         <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> | ||||
|                         @enderror | ||||
|                     </div> | ||||
|                      | ||||
|                 </div> | ||||
|                 @php | ||||
|                     // Ambil data yang sudah dipilih (bisa dari old input atau dari model saat edit)
 | ||||
|                     $selectedResources = @$item->resource_data ? json_decode(@$item->resource_data) : []; | ||||
|                     // dd($selectedResources);
 | ||||
|                 @endphp | ||||
|                 <div class="mb-3"> | ||||
|                         <label class="mb-3">Logo</label> | ||||
|                         <input accept=".png,.jpg,.jpeg" type="file" value="{{@$item->logo ? @$item->logo :  old('logo')}}" name="logo" class="form-input @error('logo') is-invalid @enderror" placeholder="Masukan logo"> | ||||
|                         @if(@$item->logo) | ||||
|                         <div class="border w-1/4 mt-3"> | ||||
|                             <img src="{{ asset('uploads/'.@$item->logo) }}" alt="" width="150" class="mx-auto"> | ||||
|                         </div> | ||||
|                         @endif | ||||
|                         @error('logo') | ||||
|                         <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> | ||||
|                         @enderror | ||||
|                     </div> | ||||
|                 <div class="mb-3"> | ||||
|                     <label class="mb-3 required">Resource Data</label> | ||||
|                     <select name="resource_data[]" required class="form-input resource_data select2 @error('resource_data') is-invalid @enderror" id="" multiple> | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ | |||
|                     <tr class="gridjs-tr bg-primary-light"> | ||||
|                       <th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="action">#</th>
 | ||||
|                       <th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="no">No</th> | ||||
|                       <th class="gridjs-td gridjs-th text-sm text-gray-500 text-center" data-field="logo">Logo</th> | ||||
|                       <th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="name">Name</th> | ||||
|                       <th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="parent">Jenis Instansi</th> | ||||
|                       <th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="resource">Resource Data</th> | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ | |||
|         @foreach($template as $dataTemplate) | ||||
|       <div class="bg-white text-center rounded-[20px] shadow-lg p-5 py-10 gap-3 flex"> | ||||
|         <div class="flex flex-col gap-3 mx-auto items-center"> | ||||
|           <img src="{{ asset('assets/logo/dinas.png') }}" alt="" width="50" class=""> | ||||
|           <img src="{{ asset('logodki.png') }}" alt="" width="50" class=""> | ||||
|           <h1 class="font-bold">{{ $dataTemplate->name }}</h1> | ||||
|         </div> | ||||
|       </div> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue