diff --git a/app/Http/Controllers/Master/InstansiController.php b/app/Http/Controllers/Master/InstansiController.php index ac419dd..64fadf4 100644 --- a/app/Http/Controllers/Master/InstansiController.php +++ b/app/Http/Controllers/Master/InstansiController.php @@ -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' => '', '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([ diff --git a/database/migrations/2025_06_03_033925_create_table_instansi.php b/database/migrations/2025_06_03_033925_create_table_instansi.php index abf12c7..8270260 100644 --- a/database/migrations/2025_06_03_033925_create_table_instansi.php +++ b/database/migrations/2025_06_03_033925_create_table_instansi.php @@ -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(); }); } diff --git a/public/logodki.png b/public/logodki.png new file mode 100644 index 0000000..13b39f5 Binary files /dev/null and b/public/logodki.png differ diff --git a/resources/views/dataset-detail.blade.php b/resources/views/dataset-detail.blade.php index c2ba256..60a1874 100644 --- a/resources/views/dataset-detail.blade.php +++ b/resources/views/dataset-detail.blade.php @@ -13,7 +13,7 @@
- +

{{ $dataset->instansi->name }}

Download
@@ -78,7 +78,7 @@ @foreach($lainnya as $dataSet)
- +

{{ @$dataSet->instansi->name }}

{{ $dataSet->name }}
Lihat Detail diff --git a/resources/views/dataset-tambahan.blade.php b/resources/views/dataset-tambahan.blade.php index 0d5415d..005fea4 100644 --- a/resources/views/dataset-tambahan.blade.php +++ b/resources/views/dataset-tambahan.blade.php @@ -57,7 +57,7 @@ @forelse($dataset as $dataSet)
- +

{{ $dataSet->instansi->name }}

diff --git a/resources/views/dataset.blade.php b/resources/views/dataset.blade.php index 51e4ec5..b5d3384 100644 --- a/resources/views/dataset.blade.php +++ b/resources/views/dataset.blade.php @@ -66,7 +66,7 @@ @forelse($dataset as $dataSet)
- +

{{ $dataSet->instansi->name }}

diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 9bd733d..e9ea0a7 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -191,9 +191,9 @@
@foreach($dataset as $dataSet) -
+
- +

{{ @$dataSet->instansi->name }}

{{ $dataSet->name }}
Lihat Detail diff --git a/resources/views/modules/master/instansi/form.blade.php b/resources/views/modules/master/instansi/form.blade.php index 161c8bb..04403f1 100644 --- a/resources/views/modules/master/instansi/form.blade.php +++ b/resources/views/modules/master/instansi/form.blade.php @@ -7,7 +7,7 @@

{{$title}}

-
+ {{csrf_field()}}
@@ -45,12 +45,25 @@ {{$message}} @enderror
+
@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 +
+ + + @if(@$item->logo) +
+ +
+ @endif + @error('logo') + {{$message}} + @enderror +