update
							parent
							
								
									1dcd33a7f3
								
							
						
					
					
						commit
						863253c45b
					
				|  | @ -7,6 +7,8 @@ use Illuminate\Support\Facades\Validator; | ||||||
| use Illuminate\Support\Facades\DB; | use Illuminate\Support\Facades\DB; | ||||||
| use Illuminate\Support\Facades\Auth; | use Illuminate\Support\Facades\Auth; | ||||||
| use Illuminate\Support\Facades\Hash; | use Illuminate\Support\Facades\Hash; | ||||||
|  | use Illuminate\Support\Facades\File; | ||||||
|  | use Carbon\Carbon; | ||||||
| use App\Models\Master\Instansi; | use App\Models\Master\Instansi; | ||||||
| use App\Models\Master\Template; | use App\Models\Master\Template; | ||||||
| use App\Models\Master\Group; | use App\Models\Master\Group; | ||||||
|  | @ -69,6 +71,7 @@ class InstansiController extends Controller | ||||||
|             'id'                => encode_id($row->id), |             'id'                => encode_id($row->id), | ||||||
|             'name'              => @$row->name, |             'name'              => @$row->name, | ||||||
|             'parent'            => @$row->parent, |             'parent'            => @$row->parent, | ||||||
|  |             'logo'            => '<img width="45" class="mx-auto" src="'.asset('uploads/'.@$row->logo).'">', | ||||||
|             'resource'            => @$resource, |             'resource'            => @$resource, | ||||||
|             'action'            => @$action, |             'action'            => @$action, | ||||||
|         ]; |         ]; | ||||||
|  | @ -103,28 +106,84 @@ class InstansiController extends Controller | ||||||
|                     'parent'            => 'required', |                     'parent'            => 'required', | ||||||
|                 ])->validate(); |                 ])->validate(); | ||||||
| 
 | 
 | ||||||
|                 $user = Instansi::find($keyId); |                 if (@$request->hasFile('logo')) { | ||||||
|                 $user->name = $request->name; |                     $file = $request->file('logo'); | ||||||
|                 $user->parent = $request->parent; |                     $destinationPath = public_path('uploads/logo'); | ||||||
|                 $user->alamat     = $request->alamat; |                     $current = Carbon::now()->format('Y/m/d'); | ||||||
|                 $user->telp     = $request->telp; |                     $path = $destinationPath . '/' . $current; | ||||||
|                 $user->website     = $request->website; |                     $fileName = $file->getClientOriginalName(); | ||||||
|                 $user->resource_data     = json_encode($request->resource_data); |                     $fileMime = $file->getClientMimeType(); | ||||||
|                 $user->save(); |                     $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{ |             }else{ | ||||||
|                 Validator::make($request->all(), [ |                 Validator::make($request->all(), [ | ||||||
|                     'name'            => 'required', |                     'name'            => 'required', | ||||||
|                     'parent'            => 'required', |                     'parent'            => 'required', | ||||||
|                 ])->validate(); |                 ])->validate(); | ||||||
| 
 | 
 | ||||||
|                 $user = new Instansi; |                 if (@$request->hasFile('logo')) { | ||||||
|                 $user->name = $request->name; |                     $file = $request->file('logo'); | ||||||
|                 $user->parent = $request->parent; |                     $destinationPath = public_path('uploads/logo'); | ||||||
|                 $user->alamat     = $request->alamat; |                     $current = Carbon::now()->format('Y/m/d'); | ||||||
|                 $user->telp     = $request->telp; |                     $path = $destinationPath . '/' . $current; | ||||||
|                 $user->website     = $request->website; |                     $fileName = $file->getClientOriginalName(); | ||||||
|                 $user->resource_data     = json_encode($request->resource_data); |                     $fileMime = $file->getClientMimeType(); | ||||||
|                 $user->save(); |                     $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([ |             return redirect()->back()->with([ | ||||||
|  |  | ||||||
|  | @ -18,6 +18,7 @@ return new class extends Migration | ||||||
|             $table->text('alamat')->nullable(); |             $table->text('alamat')->nullable(); | ||||||
|             $table->text('website')->nullable(); |             $table->text('website')->nullable(); | ||||||
|             $table->text('telp')->nullable(); |             $table->text('telp')->nullable(); | ||||||
|  |             $table->string('logo')->nullable(); | ||||||
|             $table->timestampsTz(); |             $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="flex flex-col gap-6"> | ||||||
|             <div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex"> |             <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"> |                 <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> |                     <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> |                     <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> |                 </div> | ||||||
|  | @ -78,7 +78,7 @@ | ||||||
|         @foreach($lainnya as $dataSet) |         @foreach($lainnya as $dataSet) | ||||||
|         <div class="bg-white rounded-[20px] shadow-lg p-5 py-10"> |         <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"> |             <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> |                 <h1 class="font-bold">{{ @$dataSet->instansi->name }}</h1> | ||||||
|                 <h5 class="">{{ $dataSet->name }}</h5> |                 <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> |                 <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) |                 @forelse($dataset as $dataSet) | ||||||
|                     <div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex"> |                     <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"> |                         <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> |                             <h1 class="font-bold">{{ $dataSet->instansi->name }}</h1> | ||||||
|                         </div> |                         </div> | ||||||
|                             <div class="flex items-center justify-between w-full"> |                             <div class="flex items-center justify-between w-full"> | ||||||
|  |  | ||||||
|  | @ -66,7 +66,7 @@ | ||||||
|                 @forelse($dataset as $dataSet) |                 @forelse($dataset as $dataSet) | ||||||
|                     <div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex"> |                     <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"> |                         <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> |                             <h1 class="font-bold">{{ $dataSet->instansi->name }}</h1> | ||||||
|                         </div> |                         </div> | ||||||
|                             <div class="flex items-center justify-between w-full"> |                             <div class="flex items-center justify-between w-full"> | ||||||
|  |  | ||||||
|  | @ -191,9 +191,9 @@ | ||||||
|     </div> |     </div> | ||||||
|     <div class="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-6"> |     <div class="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-6"> | ||||||
|       @foreach($dataset as $dataSet) |       @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"> |             <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> |                 <h1 class="font-bold">{{ @$dataSet->instansi->name }}</h1> | ||||||
|                 <h5 class="">{{ $dataSet->name }}</h5> |                 <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> |                 <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> |                 <h4 class="card-title">{{$title}}</h4> | ||||||
|             </div> |             </div> | ||||||
|         </div> |         </div> | ||||||
|         <form action="{{route($route.'.store')}}" method="POST" class=""> |         <form action="{{route($route.'.store')}}" method="POST" class="" enctype="multipart/form-data"> | ||||||
|             {{csrf_field()}} |             {{csrf_field()}} | ||||||
|             <input type="hidden" name="secure_id" value="{{@$keyId}}"> |             <input type="hidden" name="secure_id" value="{{@$keyId}}"> | ||||||
|             <div class="p-6"> |             <div class="p-6"> | ||||||
|  | @ -45,12 +45,25 @@ | ||||||
|                         <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> |                         <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> | ||||||
|                         @enderror |                         @enderror | ||||||
|                     </div> |                     </div> | ||||||
|  |                      | ||||||
|                 </div> |                 </div> | ||||||
|                 @php |                 @php | ||||||
|                     // Ambil data yang sudah dipilih (bisa dari old input atau dari model saat edit)
 |                     // Ambil data yang sudah dipilih (bisa dari old input atau dari model saat edit)
 | ||||||
|                     $selectedResources = @$item->resource_data ? json_decode(@$item->resource_data) : []; |                     $selectedResources = @$item->resource_data ? json_decode(@$item->resource_data) : []; | ||||||
|                     // dd($selectedResources);
 |                     // dd($selectedResources);
 | ||||||
|                 @endphp |                 @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"> |                 <div class="mb-3"> | ||||||
|                     <label class="mb-3 required">Resource Data</label> |                     <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> |                     <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"> |                     <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="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" 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="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="parent">Jenis Instansi</th> | ||||||
|                       <th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="resource">Resource Data</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) |         @foreach($template as $dataTemplate) | ||||||
|       <div class="bg-white text-center rounded-[20px] shadow-lg p-5 py-10 gap-3 flex"> |       <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"> |         <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> |           <h1 class="font-bold">{{ $dataTemplate->name }}</h1> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue