chore: add e_catalog field in cooperation proposal

This commit is contained in:
myqnrrhmn 2025-05-27 13:27:32 +07:00
parent 27ff3a8859
commit 1a9d78f70d
18 changed files with 79 additions and 52 deletions

View File

@ -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');
}

View File

@ -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');
}
}

View File

@ -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'],

View File

@ -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.',
];
}

View File

@ -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',

View File

@ -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();

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 KiB

View File

@ -299,12 +299,23 @@
<div class="form-group">
<label class="form-label" for="offer_file_download">Template Lampiran Pengajuan</label>
<div class="form-control-wrap">
<a href="{{asset('storage/uploads/cooperations/'. $cooperation->offer_file_template)}}" class="btn btn-info" style="width: 100%;" download="template-pengajuan-{{slugify($cooperation->name. '.pdf')}}">
<a href="{{asset('storage/uploads/cooperations/'. $cooperation->offer_file_template)}}" class="btn btn-info" style="width: 100%;" download="template-pengajuan-{{slugify($cooperation->name)}}">
<em class="icon ni ni-download" style="margin-top: -0.2rem"></em> Unduh template pengajuan
</a>
</div>
</div>
</div><!-- .col -->
<div class="col-md-6">
<div class="form-group">
<label class="form-label" for="e_catalog">E-Katalog</label>
<div class="form-control-wrap">
<input type="text" class="form-control" name="e_catalog" placeholder="Contoh: https://katalog.inaproc.id/sample">
</div>
@error('e_catalog')
<span class="validation-error">{{$message}}</span>
@enderror
</div>
</div><!-- .col -->
<div class="col-md-12">
<div class="form-group">
<label class="form-label" for="fw-token-address">Deskripsi</label>

View File

@ -19,7 +19,7 @@
<div class="form-group">
<label class="form-label" for="name">Nama Kegiatan<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="text" class="form-control @error('name') border-danger @enderror" id="name" name="name" placeholder="Contoh: Publikasi Pembangunan Daerah" value="{{old('name')}}">
<input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Publikasi Pembangunan Daerah" value="{{old('name')}}">
</div>
@error('name')
<span class="validation-error">{{$message}}</span>
@ -30,7 +30,7 @@
<div class="form-group">
<label class="form-label" for="start_date">Tanggal Mulai Pengajuan<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="date" class="form-control @error('start_date') border-danger @enderror" id="start_date" name="start_date" placeholder="Masukan tanggal mulai" value="{{old('start_date')}}">
<input type="date" class="form-control" id="start_date" name="start_date" placeholder="Masukan tanggal mulai" value="{{old('start_date')}}">
</div>
@error('start_date')
<span class="validation-error">{{$message}}</span>
@ -41,7 +41,7 @@
<div class="form-group">
<label class="form-label" for="end_date">Tanggal Akhir Pengajuan<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="date" class="form-control @error('end_date') border-danger @enderror" id="end_date" name="end_date" placeholder="Masukan tanggal selesai" value="{{old('end_date')}}">
<input type="date" class="form-control" id="end_date" name="end_date" placeholder="Masukan tanggal selesai" value="{{old('end_date')}}">
</div>
@error('end_date')
<span class="validation-error">{{$message}}</span>
@ -53,6 +53,7 @@
<label class="form-label">Media<span class="required-input">*</span></label>
<div class="form-control-wrap">
<select class="form-select js-select2" data-search="on" name="media_ids[]" multiple="multiple" data-placeholder="Pilih Media">
<option value="all">Semua Media</option>
@foreach ($media as $item)
<option value="{{ $item->id }}"
{{ is_array(old('media_ids')) && in_array($item->id, old('media_ids')) ? 'selected' : '' }}>
@ -71,7 +72,7 @@
<div class="form-group">
<label class="form-label" for="banner">Banner</label>
<div class="form-control-wrap">
<input type="file" class="form-control @error('banner') border-danger @enderror image-preview" id="banner" name="banner" placeholder="Masukan file banner" value="{{old('banner')}}" accept="image/*">
<input type="file" class="form-control image-preview" id="banner" name="banner" placeholder="Masukan file banner" value="{{old('banner')}}" accept="image/*">
</div>
@error('banner')
<span class="validation-error">{{$message}}</span>
@ -82,7 +83,7 @@
<div class="form-group">
<label class="form-label" for="offer_file_template">Template Pengajuan<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="file" class="form-control @error('offer_file_template') border-danger @enderror pdf-preview" id="offer_file_template" name="offer_file_template" placeholder="Masukan template penawaran" value="{{old('offer_file_template')}}" accept="application/pdf">
<input type="file" class="form-control pdf-preview" id="offer_file_template" name="offer_file_template" placeholder="Masukan template penawaran" value="{{old('offer_file_template')}}" accept="application/pdf">
</div>
@error('offer_file_template')
<span class="validation-error">{{$message}}</span>

View File

@ -20,7 +20,7 @@
<div class="form-group">
<label class="form-label" for="name">Nama Kegiatan<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="text" class="form-control @error('name') border-danger @enderror" id="name" name="name" placeholder="Masukan nama kegiatan" value="{{$cooperation->name}}">
<input type="text" class="form-control" id="name" name="name" placeholder="Masukan nama kegiatan" value="{{$cooperation->name}}">
</div>
@error('name')
<span class="validation-error">{{$message}}</span>
@ -31,7 +31,7 @@
<div class="form-group">
<label class="form-label" for="start_date">Tanggal Mulai Informasi<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="date" class="form-control @error('start_date') border-danger @enderror" id="start_date" name="start_date" placeholder="Masukan tanggal mulai" value="{{$cooperation->start_date}}">
<input type="date" class="form-control" id="start_date" name="start_date" placeholder="Masukan tanggal mulai" value="{{$cooperation->start_date}}">
</div>
@error('start_date')
<span class="validation-error">{{$message}}</span>
@ -42,7 +42,7 @@
<div class="form-group">
<label class="form-label" for="end_date">Tanggal Akhir Informasi<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="date" class="form-control @error('end_date') border-danger @enderror" id="end_date" name="end_date" placeholder="Masukan tanggal selesai" value="{{$cooperation->end_date}}">
<input type="date" class="form-control" id="end_date" name="end_date" placeholder="Masukan tanggal selesai" value="{{$cooperation->end_date}}">
</div>
@error('end_date')
<span class="validation-error">{{$message}}</span>
@ -72,7 +72,7 @@
<div class="form-group">
<label class="form-label" for="banner">Banner</label>
<div class="form-control-wrap">
<input type="file" class="form-control @error('banner') border-danger @enderror image-preview" id="banner" name="banner" placeholder="Masukan file banner" accept="image/*">
<input type="file" class="form-control image-preview" id="banner" name="banner" placeholder="Masukan file banner" accept="image/*">
</div>
@error('banner')
<span class="validation-error">{{$message}}</span>
@ -83,7 +83,7 @@
<div class="form-group">
<label class="form-label" for="offer_file_template">Template PDF</label>
<div class="form-control-wrap">
<input type="file" class="form-control @error('offer_file_template') border-danger @enderror pdf-preview" id="offer_file_template" name="offer_file_template" placeholder="Masukan template penawaran" accept="application/pdf">
<input type="file" class="form-control pdf-preview" id="offer_file_template" name="offer_file_template" placeholder="Masukan template penawaran" accept="application/pdf">
</div>
@error('offer_file_template')
<span class="validation-error">{{$message}}</span>

View File

@ -307,6 +307,22 @@
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block -->
<div class="nk-block mt-3">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label">E-Katalog</span>
</div><!-- .nk-block-head -->
<div class="bq-note">
<div class="bq-note-item">
<div class="bq-note-text">
@if (filled($proposal->e_catalog))
<a href="{{$proposal->e_catalog}}">{{$proposal->e_catalog}}</a>
@else
<i>Tidak ada</i>
@endif
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block -->
<div class="nk-block mt-3">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label">Deskripsi</span>

View File

@ -98,7 +98,9 @@
@if (filled($mediaCooperation->banner))
<img src="{{asset('storage/uploads/cooperations/'. $mediaCooperation->banner)}}" alt="Banner" style="max-width: 300px; height: auto; display: block; margin: auto;">
@else
-
<div class="text-center">
<i>Tidak ada banner</i>
</div>
@endif
</div>
</div><!-- .bq-note-item -->

View File

@ -75,7 +75,9 @@
@if (filled($mediaCooperation->banner))
<img src="{{asset('storage/uploads/cooperations/'. $mediaCooperation->banner)}}" alt="Banner" style="max-width: 300px; height: auto; display: block; margin: auto;">
@else
-
<div class="text-center">
<i>Tidak ada banner</i>
</div>
@endif
</div>
</div><!-- .bq-note-item -->

View File

@ -81,7 +81,7 @@
<div class="form-group">
<label class="form-label" for="required_reports">Jumlah Laporan<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="number" class="form-control @error('required_reports') border-danger @enderror" id="required_reports" name="required_reports" placeholder="Masukan jumlah laporan" value="{{old('required_reports')}}" min="1" max="100">
<input type="number" class="form-control @error('required_reports') border-danger @enderror" id="required_reports" name="required_reports" placeholder="Contoh: 5" value="{{old('required_reports')}}" min="1" max="100">
</div>
@error('required_reports')
<span class="validation-error">{{$message}}</span>

View File

@ -82,7 +82,7 @@
<div class="form-group">
<label class="form-label" for="required_reports">Jumlah Laporan<span class="required-input">*</span></label>
<div class="form-control-wrap">
<input type="number" class="form-control @error('required_reports') border-danger @enderror" id="required_reports" name="required_reports" placeholder="Masukan jumlah laporan" value="{{$mediaOrder->required_reports}}" min="1" max="100">
<input type="number" class="form-control @error('required_reports') border-danger @enderror" id="required_reports" name="required_reports" placeholder="Contoh: 5" value="{{$mediaOrder->required_reports}}" min="1" max="100">
</div>
@error('required_reports')
<span class="validation-error">{{$message}}</span>

View File

@ -2,7 +2,7 @@
<body data-mobile-nav-style="full-screen-menu" data-mobile-nav-bg-color="">
@include('partials.homepage.header')
<!-- start banner -->
<section class="cover-background full-screen bg-dark-gray ipad-top-space-margin position-relative section-dark md-h-auto" style="background-image: url('{{ asset('assets/homepage/images/demo-hosting-home-bg.jpg') }}')">
<section class="cover-background full-screen bg-dark-gray ipad-top-space-margin position-relative section-dark md-h-auto" style="background-image: url('{{ asset('assets/homepage/images/hero-2.jpg') }}')">
<div id="particles-style-01" class="h-100 position-absolute left-0px top-0 w-100"
data-particle="true" data-particle-options='{"particles": {"number": {"value": 12,"density": {"enable": true,"value_area": 2000}},"color": {"value": ["#A7E6FF", "#A7E6FF", "#A7E6FF", "#A7E6FF"]},"shape": {"type": "edge","stroke":{"width":0,"color":"#000000"}},"opacity": {"value": 0.8,"random": false,"anim": {"enable": false,"speed": 1,"sync": false}},"size": {"value": 5,"random": true,"anim": {"enable": false,"sync": true}},"line_linked":{"enable":false,"distance":0,"color":"#ffffff","opacity":0.4,"width":1},"move": {"enable": true,"speed":1,"direction": "right","random": false,"straight": false}},"interactivity": {"detect_on": "canvas","events": {"onhover": {"enable": false,"mode": "repulse"},"onclick": {"enable": false,"mode": "push"},"resize": true}},"retina_detect": false}'></div>
<div class="container d-flex align-items-center justify-content-center h-100">

View File

@ -6,39 +6,12 @@
<div class="nk-footer">
<div class="container-fluid">
<div class="nk-footer-wrap">
<div class="nk-footer-copyright"> &copy; 2022 DashLite. Template by <a href="https://softnio.com" target="_blank">Softnio</a>
<div class="nk-footer-copyright"> &copy; {{date('Y')}} Simedkom.
</div>
<div class="nk-footer-links">
<ul class="nav nav-sm">
<li class="nav-item dropup">
<a href="#" class="dropdown-toggle dropdown-indicator has-indicator nav-link text-base" data-bs-toggle="dropdown" data-offset="0,10"><span>English</span></a>
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-end">
<ul class="language-list">
<li>
<a href="#" class="language-item">
<span class="language-name">English</span>
</a>
</li>
<li>
<a href="#" class="language-item">
<span class="language-name">Español</span>
</a>
</li>
<li>
<a href="#" class="language-item">
<span class="language-name">Français</span>
</a>
</li>
<li>
<a href="#" class="language-item">
<span class="language-name">Türkçe</span>
</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a data-bs-toggle="modal" href="#region" class="nav-link"><em class="icon ni ni-globe"></em><span class="ms-1">Select Region</span></a>
<a href="{{route('homepage.landing')}}" class="nav-link"><em class="icon ni ni-globe"></em><span class="ms-1">Landing</span></a>
</li>
</ul>
</div>

View File

@ -17,7 +17,7 @@
<nav class="navbar navbar-expand-lg header-light bg-light header-reverse glass-effect" data-header-hover="light">
<div class="container-fluid">
<div class="col-auto col-lg-2 me-lg-0 me-auto">
<a class="navbar-brand" href="demo-hosting.html">
<a class="navbar-brand" href="{{route('homepage.landing')}}">
<img src="{{$app->app_logo == 'simedkom-logo-full.png' ? asset('assets/defaults/simedkom-logo-full.png') : asset('storage/uploads/settings/'. $app->app_logo)}}" data-at2x="{{$app->app_logo == 'simedkom-logo-full.png' ? asset('assets/defaults/simedkom-logo-full.png') : asset('storage/uploads/settings/'. $app->app_logo)}}" alt="" class="default-logo">
<img src="{{$app->app_logo == 'simedkom-logo-full.png' ? asset('assets/defaults/simedkom-logo-full.png') : asset('storage/uploads/settings/'. $app->app_logo)}}" data-at2x="{{$app->app_logo == 'simedkom-logo-full.png' ? asset('assets/defaults/simedkom-logo-full.png') : asset('storage/uploads/settings/'. $app->app_logo)}}" alt="" class="alt-logo">
<img src="{{$app->app_logo == 'simedkom-logo-full.png' ? asset('assets/defaults/simedkom-logo-full.png') : asset('storage/uploads/settings/'. $app->app_logo)}}" data-at2x="{{$app->app_logo == 'simedkom-logo-full.png' ? asset('assets/defaults/simedkom-logo-full.png') : asset('storage/uploads/settings/'. $app->app_logo)}}" alt="" class="mobile-logo">