diff --git a/app/Http/Controllers/Dashboard/CooperationRequestController.php b/app/Http/Controllers/Dashboard/CooperationRequestController.php index 4b5c731..60a268d 100644 --- a/app/Http/Controllers/Dashboard/CooperationRequestController.php +++ b/app/Http/Controllers/Dashboard/CooperationRequestController.php @@ -149,6 +149,7 @@ public function storeProposal(JournalistCooperationProposalRequest $request, $id } }catch(\Exception $e){ + Log::info("ERROR Cooperation Proposals: ". $e); return redirect()->back()->with('failed-status', 'Gagal melakukan pengajuan kerjasama'); } diff --git a/app/Http/Controllers/Dashboard/MediaCooperationController.php b/app/Http/Controllers/Dashboard/MediaCooperationController.php index 53c95a6..82524e6 100644 --- a/app/Http/Controllers/Dashboard/MediaCooperationController.php +++ b/app/Http/Controllers/Dashboard/MediaCooperationController.php @@ -12,6 +12,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; class MediaCooperationController extends Controller { @@ -32,17 +33,32 @@ public function store(CooperationRequest $request){ $validatedData = $request->validated(); try{ - $validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations')['randomFileName']; + if($request->hasFile('banner')){ + $validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations')['randomFileName']; + } + $validatedData['offer_file_template'] = store_file($validatedData['offer_file_template'], '/uploads/cooperations')['randomFileName']; $createdCooperation = DB::transaction(function()use($validatedData){ $createdCooperation = Cooperation::create($validatedData); - $createdCooperation->media()->attach($validatedData['media_ids']); + + $allMediaIds = Media::pluck('id')->toArray(); + if (in_array('all', $validatedData['media_ids'])) { + $createdCooperation->media()->attach($allMediaIds); + } else { + $createdCooperation->media()->attach($validatedData['media_ids']); + } // Announcements $userId = []; - foreach($validatedData['media_ids'] as $mediaId){ - $userId[] = Media::find($mediaId)->company->user->id; + if(in_array('all', $validatedData['media_ids'])){ + foreach($allMediaIds as $mediaId){ + $userId[] = Media::find($mediaId)->company->user->id; + } + }else{ + foreach($validatedData['media_ids'] as $mediaId){ + $userId[] = Media::find($mediaId)->company->user->id; + } } $announcementData = [ @@ -68,6 +84,7 @@ public function store(CooperationRequest $request){ return redirect()->back()->with('failed-status', 'Gagal menambahkan kerjasama'); } }catch(\Exception $e){ + Log::info("ERROR (Cooperation): ". $e); return redirect()->back()->with('failed-status', 'Gagal menambahkan kerjasama'); } } diff --git a/app/Http/Requests/CooperationRequest.php b/app/Http/Requests/CooperationRequest.php index 88a5cbe..7aedec6 100644 --- a/app/Http/Requests/CooperationRequest.php +++ b/app/Http/Requests/CooperationRequest.php @@ -27,7 +27,7 @@ public function rules(): array 'start_date' => ['required', 'date'], 'end_date' => ['required', 'date'], 'media_ids' => ['required', 'array'], - 'media_ids.*' => ['required', 'exists:media,id'], + 'media_ids.*' => ['required'], 'banner' => ['nullable', 'image', 'mimes:png,jpg,jpeg', 'max:2048'], 'description' => ['required'], 'enhancer_id' => ['required'], diff --git a/app/Http/Requests/JournalistCooperationProposalRequest.php b/app/Http/Requests/JournalistCooperationProposalRequest.php index 61c93e3..94d69ca 100644 --- a/app/Http/Requests/JournalistCooperationProposalRequest.php +++ b/app/Http/Requests/JournalistCooperationProposalRequest.php @@ -25,6 +25,7 @@ public function rules(): array $rules = [ 'journalist_ids' => ['required', 'array'], 'journalist_ids.*' => ['required', 'exists:journalists,id'], + 'e_catalog' => ['nullable'], 'description' => ['nullable'] ]; @@ -48,6 +49,7 @@ public function messages(): array 'attachment.file' => 'File yang diunggah tidak valid.', 'attachment.mimes' => 'File harus berformat PDF.', 'attachment.max' => 'Ukuran file maksimal 2 MB.', + 'e_catalog.nullable' => 'E-Katalog boleh kosong.', 'description.nullable' => 'Deskripsi boleh kosong.', ]; } diff --git a/app/Models/CooperationProposal.php b/app/Models/CooperationProposal.php index 3a17943..56cf43d 100644 --- a/app/Models/CooperationProposal.php +++ b/app/Models/CooperationProposal.php @@ -11,9 +11,10 @@ class CooperationProposal extends Model protected $table = 'cooperation_proposals'; protected $fillable = [ - 'description', 'attachment', 'status', + 'e_catalog', + 'description', 'rejection_reason', 'cooperation_id', 'media_id', diff --git a/database/migrations/2025_03_07_072227_create_cooperation_proposals_table.php b/database/migrations/2025_03_07_072227_create_cooperation_proposals_table.php index 63bb01b..78ffd41 100644 --- a/database/migrations/2025_03_07_072227_create_cooperation_proposals_table.php +++ b/database/migrations/2025_03_07_072227_create_cooperation_proposals_table.php @@ -14,6 +14,7 @@ public function up(): void Schema::create('cooperation_proposals', function (Blueprint $table) { $table->id(); $table->text('description')->nullable(); + $table->string('e_catalog')->nullable(); $table->string('attachment'); $table->enum('status', ['0', '1', '2'])->default('0'); $table->text('rejection_reason')->nullable(); diff --git a/public/assets/homepage/images/hero-2.jpg b/public/assets/homepage/images/hero-2.jpg new file mode 100644 index 0000000..534382c Binary files /dev/null and b/public/assets/homepage/images/hero-2.jpg differ diff --git a/resources/views/dashboard/cooperation-requests/create-proposal.blade.php b/resources/views/dashboard/cooperation-requests/create-proposal.blade.php index e757a5c..1a468d5 100644 --- a/resources/views/dashboard/cooperation-requests/create-proposal.blade.php +++ b/resources/views/dashboard/cooperation-requests/create-proposal.blade.php @@ -299,12 +299,23 @@
+