feat: media cooperation
feat: cooperation request
This commit is contained in:
parent
ecd2b64e38
commit
d0c9a29970
@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use App\Models\Media;
|
||||
use App\Models\User;
|
||||
use App\Settings\AppSettings;
|
||||
use Carbon\Carbon;
|
||||
use Hashids\Hashids;
|
||||
@ -128,3 +130,21 @@ function get_user_status($status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('get_cooperation_notif')) {
|
||||
function get_cooperation_notif() {
|
||||
$user = User::findOrFail(Auth::id());
|
||||
if($user->role_id === 3){
|
||||
$mediaId = $user->company->media->id;
|
||||
|
||||
$media = Media::with('cooperations')->findOrFail($mediaId);
|
||||
return $media->cooperations()
|
||||
->where('start_date', '<=', Carbon::now()->locale('id')->toDateString())
|
||||
->where('end_date', '>=', Carbon::now()->locale('id')->toDateString())
|
||||
->count();
|
||||
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
131
app/Http/Controllers/Dashboard/CooperationRequestController.php
Normal file
131
app/Http/Controllers/Dashboard/CooperationRequestController.php
Normal file
@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Dashboard;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Cooperation;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class CooperationRequestController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('dashboard.cooperation-requests.index', [
|
||||
'title' => 'Ajuan Kerjasama'
|
||||
]);
|
||||
}
|
||||
|
||||
public function show($id){
|
||||
$cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
||||
|
||||
$mediaCooperationPivot = $cooperation->media()
|
||||
->where('media.id', Auth::user()->company->media->id)
|
||||
->first()->pivot;
|
||||
|
||||
return view('dashboard.cooperation-requests.show', [
|
||||
'title' => 'Tolak Kerjasama',
|
||||
'cooperation' => $cooperation,
|
||||
'mediaCooperationPivot' => $mediaCooperationPivot
|
||||
]);
|
||||
}
|
||||
|
||||
public function accept(Request $request, $id){
|
||||
|
||||
if(!Auth::check() || Auth::user()->role_id !== 3){
|
||||
return abort(403, 'Unauthorized action.');
|
||||
}
|
||||
|
||||
$cooperation = Cooperation::with('media')->findOrFail(decrypt_id($id));
|
||||
|
||||
$mediaCooperation = $cooperation->media()
|
||||
->where('media.id', Auth::user()->company->media->id)
|
||||
->first();
|
||||
|
||||
if (!$mediaCooperation) {
|
||||
return abort(404, 'Media not found for the cooperation.');
|
||||
}
|
||||
|
||||
|
||||
// dd($mediaCooperation->pivot);
|
||||
|
||||
// Pastikan data yang ingin diperbarui ada dan statusnya belum '3'
|
||||
if ($mediaCooperation->pivot->status != '3') {
|
||||
$affectedRows = $cooperation->media()->updateExistingPivot($mediaCooperation->id, [
|
||||
'status' => '1',
|
||||
]);
|
||||
|
||||
if ($affectedRows > 0) {
|
||||
return redirect()->back()->with('success-status', 'Berhasil menerima kerjasama.');
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Gagal menerima kerjasama');
|
||||
}
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Kerjasama sudah diterima sebelumnya.');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function proposal($id){
|
||||
return view('dashboard.cooperation-requests.proposal', [
|
||||
'title' => 'Ajukan Kerjasama',
|
||||
'user' => Auth::user()
|
||||
]);
|
||||
}
|
||||
|
||||
public function reject($id){
|
||||
$cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
||||
|
||||
$mediaCooperationPivot = $cooperation->media()
|
||||
->where('media.id', Auth::user()->company->media->id)
|
||||
->first()->pivot;
|
||||
|
||||
return view('dashboard.cooperation-requests.reject', [
|
||||
'title' => 'Tolak Kerjasama',
|
||||
'cooperation' => $cooperation,
|
||||
'mediaCooperationPivot' => $mediaCooperationPivot
|
||||
]);
|
||||
}
|
||||
|
||||
public function rejectAction(Request $request, $id){
|
||||
|
||||
if(!Auth::check() || Auth::user()->role_id !== 3){
|
||||
return abort(403, 'Unauthorized action.');
|
||||
}
|
||||
|
||||
$validatedData = $request->validate([
|
||||
'rejection_reason' => ['required'],
|
||||
], [
|
||||
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
|
||||
]);
|
||||
|
||||
$cooperation = Cooperation::with('media')->findOrFail(decrypt_id($id));
|
||||
|
||||
$mediaCooperation = $cooperation->media()
|
||||
->where('media.id', Auth::user()->company->media->id)
|
||||
->first();
|
||||
|
||||
if (!$mediaCooperation) {
|
||||
return abort(404, 'Media not found for the cooperation.');
|
||||
}
|
||||
|
||||
|
||||
// dd($mediaCooperation->pivot);
|
||||
|
||||
// Pastikan data yang ingin diperbarui ada dan statusnya belum '3'
|
||||
if ($mediaCooperation->pivot->status != '3') {
|
||||
$affectedRows = $cooperation->media()->updateExistingPivot($mediaCooperation->id, [
|
||||
'status' => '2',
|
||||
'rejection_reason' => $validatedData['rejection_reason'],
|
||||
]);
|
||||
|
||||
if ($affectedRows > 0) {
|
||||
return redirect()->back()->with('success-status', 'Berhasil menolak kerjasama.');
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Gagal menolak kerjasama');
|
||||
}
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Kerjasama sudah ditolak sebelumnya.');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,7 @@
|
||||
use App\Models\Classification;
|
||||
use App\Models\Company;
|
||||
use App\Models\ContentRecap;
|
||||
use App\Models\Cooperation;
|
||||
use App\Models\GovernmentAgency;
|
||||
use App\Models\IssueManagement;
|
||||
use App\Models\Journalist;
|
||||
@ -18,7 +19,9 @@
|
||||
use App\Models\SubClassification;
|
||||
use App\Models\SubLocation;
|
||||
use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use SebastianBergmann\Type\TrueType;
|
||||
use Yajra\DataTables\DataTables;
|
||||
@ -61,7 +64,7 @@ public function classification(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -136,7 +139,7 @@ public function subClassification(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -199,7 +202,7 @@ public function location(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -264,7 +267,7 @@ public function subLocation(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -307,7 +310,7 @@ public function governmentAgency(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -367,7 +370,7 @@ public function news(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -413,7 +416,7 @@ public function airingProofTheme(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -492,7 +495,7 @@ public function company(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -584,7 +587,7 @@ public function media(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -669,7 +672,7 @@ public function journalist(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -697,6 +700,251 @@ public function journalist(Request $request){
|
||||
|
||||
}
|
||||
|
||||
public function cooperation(Request $request){
|
||||
if ($request->ajax()) {
|
||||
|
||||
$data = Cooperation::with(['media'])->get();
|
||||
|
||||
|
||||
return DataTables::of($data)
|
||||
->addIndexColumn()
|
||||
->addColumn('name', function ($data) {
|
||||
return '<div style="width: 100%;word-wrap: break-word; white-space: normal;">' . $data->name . '</div>';
|
||||
})
|
||||
->addColumn('start_date', function ($data) {
|
||||
return idn_date($data->start_date, 'l, d F Y');
|
||||
})
|
||||
->addColumn('end_date', function ($data) {
|
||||
return idn_date($data->end_date, 'l, d F Y');
|
||||
})
|
||||
->addColumn('posted_at', function ($data) {
|
||||
return idn_date($data->created_at, 'l, d F Y');
|
||||
})
|
||||
->addColumn('action', function ($data) {
|
||||
$showUrl = route('dashboard.cooperations.show', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$editUrl = route('dashboard.cooperations.edit', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$deleteUrl = route('dashboard.cooperations.destroy', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
if (is_role([1])) {
|
||||
$dropdown .= '<li><a href="'.$editUrl.'"><em class="icon ni ni-edit"></em><span>Ubah</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role([1])) {
|
||||
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
|
||||
|
||||
}
|
||||
|
||||
$dropdown .= '</ul>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
return $dropdown;
|
||||
})
|
||||
|
||||
->rawColumns(['name', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
return response()->json(['error' => 'Unauthorized'], 401);
|
||||
|
||||
}
|
||||
|
||||
public function cooperationMedia(Request $request, $id){
|
||||
if ($request->ajax()) {
|
||||
|
||||
|
||||
|
||||
$cooperation = Cooperation::with(['media'])->where('id', '=', decrypt_id($id))->first();
|
||||
|
||||
$data = $cooperation->media;
|
||||
|
||||
return DataTables::of($data)
|
||||
->addIndexColumn()
|
||||
->addColumn('media_name', function ($data) {
|
||||
return $data->name;
|
||||
})
|
||||
->addColumn('company_name', function ($data) {
|
||||
return $data->company->name;
|
||||
})
|
||||
->addColumn('email', function ($data) {
|
||||
return $data->company->email;
|
||||
})
|
||||
->addColumn('type', function ($data) {
|
||||
return ucfirst($data->type);
|
||||
})
|
||||
->addColumn('classification', function ($data) {
|
||||
return ucfirst($data->classification);
|
||||
})
|
||||
->addColumn('status', function ($data) {
|
||||
switch($data->pivot->status){
|
||||
case 0:
|
||||
return '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Menunggu</span>';
|
||||
case 1:
|
||||
$status = '<span class="badge bg-success" style="display:inline-block;font-size:0.8rem;">Menerima</span> <br>';
|
||||
|
||||
if(true){
|
||||
$status .= '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Belum Pengajuan</span>';
|
||||
}else{
|
||||
$status .= '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Sudah Pengajuan</span>';
|
||||
}
|
||||
|
||||
return $status;
|
||||
case 2:
|
||||
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Menolak</span> <span class="badge bg-transparent"><a href="javascript:void(0);"
|
||||
class="text-dark"
|
||||
onclick="showDetail('.htmlspecialchars(json_encode(strip_tags($data->pivot->rejection_reason))).')"
|
||||
style="margin-top:0.2rem;">
|
||||
<em class="icon ni ni-eye"></em>
|
||||
</a></span>';
|
||||
case 3:
|
||||
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
|
||||
}
|
||||
})
|
||||
->addColumn('action', function ($data) {
|
||||
$showUrl = route('dashboard.media.show', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$editUrl = route('dashboard.media.edit', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$deleteUrl = route('dashboard.media.destroy', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
if (is_role([1])) {
|
||||
$dropdown .= '<li><a href="'.$editUrl.'"><em class="icon ni ni-edit"></em><span>Ubah</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role([1])) {
|
||||
$dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
|
||||
|
||||
}
|
||||
|
||||
$dropdown .= '</ul>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
return $dropdown;
|
||||
})
|
||||
|
||||
->rawColumns(['link', 'address', 'status', 'status_edit', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
return response()->json(['error' => 'Unauthorized'], 401);
|
||||
|
||||
}
|
||||
|
||||
public function cooperationRequest(Request $request){
|
||||
if ($request->ajax()) {
|
||||
|
||||
$user = User::findOrFail(Auth::id());
|
||||
$mediaId = $user->company->media->id;
|
||||
|
||||
$media = Media::with('cooperations')->findOrFail($mediaId);
|
||||
// $currentDate = Carbon::now()->format('Y-m-d');
|
||||
|
||||
$data = $media->cooperations()
|
||||
->where('start_date', '<=', Carbon::now()->locale('id')->toDateString())
|
||||
->where('end_date', '>=', Carbon::now()->locale('id')->toDateString())
|
||||
->get();
|
||||
|
||||
return DataTables::of($data)
|
||||
->addIndexColumn()
|
||||
->addColumn('name', function ($data) {
|
||||
return '<div style="width: 100%;word-wrap: break-word; white-space: normal;">' . $data->name . '</div>';
|
||||
})
|
||||
->addColumn('start_date', function ($data) {
|
||||
return idn_date($data->start_date, 'l, d F Y');
|
||||
})
|
||||
->addColumn('end_date', function ($data) {
|
||||
return idn_date($data->end_date, 'l, d F Y');
|
||||
})
|
||||
->addColumn('posted_at', function ($data) {
|
||||
return idn_date($data->created_at, 'l, d F Y');
|
||||
})
|
||||
->addColumn('status', function ($data){
|
||||
switch($data->pivot->status){
|
||||
case '0':
|
||||
return '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Menunggu</span>';
|
||||
case 1:
|
||||
$status = '<span class="badge bg-success" style="display:inline-block;font-size:0.8rem;">Menerima</span> <br>';
|
||||
|
||||
if(true){
|
||||
$status .= '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Belum Mengajukan</span>';
|
||||
}else{
|
||||
$status .= '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Sudah Mengajukan</span>';
|
||||
}
|
||||
|
||||
return $status;
|
||||
case '2':
|
||||
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>';
|
||||
default:
|
||||
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
|
||||
|
||||
}
|
||||
})
|
||||
->addColumn('action', function ($data) {
|
||||
$showUrl = route('dashboard.cooperations.requests.show', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
// $editUrl = route('dashboard.cooperations.edit', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
// $deleteUrl = route('dashboard.cooperations.destroy', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$acceptUrl = route('dashboard.cooperations.requests.accept', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$cooperationProposalUrl = route('dashboard.cooperations.requests.proposal', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$rejectUrl = route('dashboard.cooperations.requests.reject', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
if (is_role(['3']) && $data->pivot->status === '1') {
|
||||
$dropdown .= '<li><a href="'.$cooperationProposalUrl.'"><em class="icon ni ni-upload"></em><span>Ajukan Kerjasama</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role(['3']) && $data->pivot->status === '0') {
|
||||
$dropdown .= '<li><a href="javascript: void(0);" onclick="itemConfirm(\''.$acceptUrl.'\', \'Apakah Anda yakin ingin menerima kerjasama ini?\', \'Ya, terima!\')"><em class="icon ni ni-check"></em><span>Terima</span></a></li>';
|
||||
}
|
||||
|
||||
if (is_role(['3']) && $data->pivot->status === '0') {
|
||||
$dropdown .= '<li><a href="'.$rejectUrl.'"><em class="icon ni ni-cross"></em><span>Tolak</span></a></li>';
|
||||
}
|
||||
|
||||
// if (is_role([1])) {
|
||||
// $dropdown .= '<li><a href="javascript:void(0);" onclick="deleteItem(\''.$deleteUrl.'\', \'Apakah Anda yakin ingin menghapus tema '.$data->name.'? Item ini akan dihapus secara permanen!\')"><em class="icon ni ni-trash"></em><span>Hapus</span></a></li>';
|
||||
|
||||
// }
|
||||
|
||||
$dropdown .= '</ul>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
return $dropdown;
|
||||
})
|
||||
|
||||
->rawColumns(['status', 'name', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
return response()->json(['error' => 'Unauthorized'], 401);
|
||||
|
||||
}
|
||||
|
||||
public function contentRecap(Request $request){
|
||||
if ($request->ajax()) {
|
||||
|
||||
@ -722,7 +970,7 @@ public function contentRecap(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -789,7 +1037,7 @@ public function mediaMonitoring(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -871,7 +1119,7 @@ public function issueManagement(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
@ -946,7 +1194,7 @@ public function user(Request $request){
|
||||
|
||||
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
|
||||
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
|
||||
<ul class="link-list-opt">
|
||||
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
|
||||
|
||||
|
||||
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Dashboard;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\CooperationRequest;
|
||||
use App\Models\Cooperation;
|
||||
use App\Models\Media;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class MediaCooperationController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('dashboard.media-cooperations.index', [
|
||||
'title' => 'Kerjasama'
|
||||
]);
|
||||
}
|
||||
|
||||
public function create(){
|
||||
return view('dashboard.media-cooperations.create', [
|
||||
'title' => 'Tambah Kerjasama',
|
||||
'media' => Media::all()
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(CooperationRequest $request){
|
||||
$validatedData = $request->validated();
|
||||
$validatedData['enhancer_id'] = Auth::id();
|
||||
|
||||
$validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations', 'public')['randomFileName'];
|
||||
$validatedData['offer_file_template'] = store_file($validatedData['offer_file_template'], '/uploads/cooperations', 'public')['randomFileName'];
|
||||
|
||||
$createdCooperation = Cooperation::create($validatedData);
|
||||
$createdCooperation->media()->attach($validatedData['media_ids']);
|
||||
|
||||
if ($createdCooperation->media()->count() > 0) {
|
||||
return redirect()->back()->with('success-status', 'Berhasil menambahkan kerjasama.');
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Gagal menambahkan kerjasama');
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
||||
return view('dashboard.media-cooperations.edit', [
|
||||
'title' => 'Ubah Kerjasama',
|
||||
'cooperation' => $cooperation,
|
||||
'media' => Media::all(),
|
||||
'selectedMediaIds' => $cooperation->media->pluck('id')->toArray()
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(CooperationRequest $request, $id){
|
||||
$validatedData = $request->validated();
|
||||
$cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
||||
|
||||
$validatedData['enhancer_id'] = Auth::id();
|
||||
|
||||
if($request->hasFile('banner')){
|
||||
delete_file('app/public/uploads/cooperations/'.$cooperation->banner);
|
||||
$validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations', 'public')['randomFileName'];
|
||||
}else{
|
||||
$validatedData['banner'] = $cooperation->banner;
|
||||
}
|
||||
|
||||
if($request->hasFile('offer_file_template')){
|
||||
delete_file('app/public/uploads/cooperations/'.$cooperation->offer_file_template);
|
||||
$validatedData['offer_file_template'] = store_file($validatedData['offer_file_template'], '/uploads/cooperations', 'public')['randomFileName'];
|
||||
}else{
|
||||
$validatedData['offer_file_template'] = $cooperation->offer_file_template;
|
||||
}
|
||||
|
||||
$cooperation->update($validatedData);
|
||||
if ($request->has('media_ids')) {
|
||||
$cooperation->media()->sync($validatedData['media_ids']);
|
||||
}
|
||||
|
||||
if ($cooperation->media()->count() > 0) {
|
||||
return redirect()->back()->with('success-status', 'Berhasil mengubah kerjasama.');
|
||||
} else {
|
||||
return redirect()->back()->with('failed-status', 'Gagal mengubah kerjasama');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function show($id){
|
||||
$mediaCooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
||||
|
||||
return view('dashboard.media-cooperations.show', [
|
||||
'title' => 'Detail Kerjasama',
|
||||
'mediaCooperation' => $mediaCooperation
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(){}
|
||||
}
|
||||
63
app/Http/Requests/CooperationRequest.php
Normal file
63
app/Http/Requests/CooperationRequest.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class CooperationRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return Auth::check() && is_role(['1']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => ['required'],
|
||||
'start_date' => ['required', 'date'],
|
||||
'end_date' => ['required', 'date'],
|
||||
'media_ids' => ['required', 'array'],
|
||||
'media_ids.*' => ['required', 'exists:media,id'],
|
||||
'banner' => ['nullable', 'image', 'mimes:png,jpg,jpeg', 'max:2048'],
|
||||
'offer_file_template' => ['nullable', 'file','mimes:pdf' , 'max:2048'],
|
||||
'description' => ['required'],
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.required' => 'Nama kegiatan wajib diisi.',
|
||||
'start_date.required' => 'Tanggal mulai wajib diisi.',
|
||||
'start_date.date' => 'Format tanggal mulai tidak valid.',
|
||||
'end_date.required' => 'Tanggal selesai wajib diisi.',
|
||||
'end_date.date' => 'Format tanggal selesai tidak valid.',
|
||||
|
||||
'media_ids.required' => 'Media wajib dipilih.',
|
||||
'media_ids.array' => 'Format media tidak valid.',
|
||||
'media_ids.*.required' => 'Setiap media harus dipilih.',
|
||||
'media_ids.*.exists' => 'Media yang dipilih tidak valid.',
|
||||
|
||||
'banner.image' => 'File banner harus berupa gambar.',
|
||||
'banner.mimes' => 'Format banner harus PNG, JPG, atau JPEG.',
|
||||
'banner.max' => 'Ukuran banner maksimal 2MB.',
|
||||
|
||||
'offer_file_template.file' => 'File template harus berupa file yang valid.',
|
||||
'offer_file_template.mimes' => 'Format file template harus PDF.',
|
||||
'offer_file_template.max' => 'Ukuran file template maksimal 2MB.',
|
||||
|
||||
'description.required' => 'Deskripsi kerjasama wajib diisi.',
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
31
app/Models/Cooperation.php
Normal file
31
app/Models/Cooperation.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Cooperation extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'cooperations';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'start_date',
|
||||
'end_date',
|
||||
'banner',
|
||||
'offer_file_template',
|
||||
'description',
|
||||
'enhancer_id',
|
||||
];
|
||||
|
||||
public function media()
|
||||
{
|
||||
return $this->belongsToMany(Media::class, 'media_cooperations', 'cooperation_id', 'media_id')
|
||||
->using(MediaCooperation::class)
|
||||
->withPivot(['status', 'rejection_reason'])
|
||||
->withTimestamps();
|
||||
}
|
||||
}
|
||||
21
app/Models/CooperationProposal.php
Normal file
21
app/Models/CooperationProposal.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class CooperationProposal extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'cooperation_proposals';
|
||||
|
||||
protected $fillable = [
|
||||
'description',
|
||||
'attachment',
|
||||
'status',
|
||||
'cooperation_id',
|
||||
'media_id',
|
||||
];
|
||||
}
|
||||
@ -33,4 +33,12 @@ public function company(){
|
||||
public function journalists(){
|
||||
return $this->hasMany(Journalist::class, 'media_id', 'id');
|
||||
}
|
||||
|
||||
public function cooperations()
|
||||
{
|
||||
return $this->belongsToMany(Cooperation::class, 'media_cooperations', 'media_id', 'cooperation_id')
|
||||
->using(MediaCooperation::class)
|
||||
->withPivot(['status', 'rejection_reason'])
|
||||
->withTimestamps();
|
||||
}
|
||||
}
|
||||
|
||||
26
app/Models/MediaCooperation.php
Normal file
26
app/Models/MediaCooperation.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
||||
|
||||
class MediaCooperation extends Pivot
|
||||
{
|
||||
protected $table = 'media_cooperations';
|
||||
|
||||
protected $fillable = [
|
||||
'cooperation_id',
|
||||
'media_id',
|
||||
'status',
|
||||
'rejection_reason'
|
||||
];
|
||||
|
||||
public function cooperation(){
|
||||
return $this->belongsTo(Cooperation::class, 'cooperation_id', 'id');
|
||||
}
|
||||
|
||||
public function media(){
|
||||
return $this->belongsTo(Media::class, 'media_id', 'id');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('cooperations', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->text('name');
|
||||
$table->date('start_date');
|
||||
$table->date('end_date');
|
||||
$table->string('banner')->nullable();
|
||||
$table->string('offer_file_template')->nullable();
|
||||
$table->text('description');
|
||||
$table->unsignedBigInteger('enhancer_id');
|
||||
$table->foreign('enhancer_id')->references('id')->on('users');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('cooperations');
|
||||
}
|
||||
};
|
||||
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('media_cooperations', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('cooperation_id');
|
||||
$table->unsignedBigInteger('media_id');
|
||||
$table->foreign('cooperation_id')->references('id')->on('cooperations');
|
||||
$table->foreign('media_id')->references('id')->on('media');
|
||||
$table->enum('status', ['0', '1', '2', '3'])->default('0');
|
||||
$table->text('rejection_reason')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('media_cooperations');
|
||||
}
|
||||
};
|
||||
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('cooperation_proposals', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->text('description')->nullable();
|
||||
$table->string('attachment');
|
||||
$table->enum('status', ['0', '1', '2'])->default('0');
|
||||
$table->unsignedBigInteger('cooperation_id');
|
||||
$table->unsignedBigInteger('media_id');
|
||||
$table->foreign('cooperation_id')->references('id')->on('cooperations');
|
||||
$table->foreign('media_id')->references('id')->on('media');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('cooperation_proposals');
|
||||
}
|
||||
};
|
||||
17
database/seeders/CooperationProposalSeeder.php
Normal file
17
database/seeders/CooperationProposalSeeder.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class CooperationProposalSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
17
database/seeders/CooperationSeeder.php
Normal file
17
database/seeders/CooperationSeeder.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class CooperationSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
17
database/seeders/MediaCooperationSeeder.php
Normal file
17
database/seeders/MediaCooperationSeeder.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class MediaCooperationSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -87,3 +87,45 @@ .custom-loader {
|
||||
font-weight: bold;
|
||||
color: #007bff;
|
||||
}
|
||||
|
||||
.dataTable.no-footer{
|
||||
min-height: 60 !important;
|
||||
}
|
||||
|
||||
table.dataTable tbody {
|
||||
min-height: 60 !important;
|
||||
}
|
||||
|
||||
/* table.dataTable tbody td {
|
||||
padding-top: 20px !important;
|
||||
padding-bottom: 20px !important;
|
||||
} */
|
||||
|
||||
/* .dropdown-menu {
|
||||
max-width: 200px;
|
||||
min-width: 150px;
|
||||
white-space: nowrap;
|
||||
overflow: visible;
|
||||
z-index: 1050;
|
||||
}
|
||||
.dropdown-menu {
|
||||
transform: translate3d(-10px, 35px, 0px) !important;
|
||||
} */
|
||||
|
||||
/* table.dataTable {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.dataTables_wrapper {
|
||||
overflow: visible;
|
||||
} */
|
||||
|
||||
.dropdown-menu-datatable-custom {
|
||||
position: fixed !important;
|
||||
z-index: 1050 !important;
|
||||
}
|
||||
|
||||
.nk-wizard #previous{
|
||||
background-color: transparent !important;
|
||||
border: grey !important;
|
||||
}
|
||||
|
||||
1002
public/assets/dashboard/js/script-wizard.js
Normal file
1002
public/assets/dashboard/js/script-wizard.js
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,66 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperation_requests'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block-head nk-block-head-sm">
|
||||
<div class="nk-block-between">
|
||||
<div class="nk-block-head-content">
|
||||
<h3 class="nk-block-title page-title">{{$title}}</h3>
|
||||
</div><!-- .nk-block-head-content -->
|
||||
{{-- @if (is_role(['1']))
|
||||
<div class="nk-block-head-content">
|
||||
<div class="toggle-wrap nk-block-tools-toggle">
|
||||
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="toggle-expand-content" data-content="pageMenu">
|
||||
<ul class="nk-block-tools g-3">
|
||||
<li>
|
||||
<div class="drodown">
|
||||
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<ul class="link-list-opt no-bdr">
|
||||
<li><a href="#"><span>Last 30 Days</span></a></li>
|
||||
<li><a href="#"><span>Last 6 Months</span></a></li>
|
||||
<li><a href="#"><span>Last 1 Years</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nk-block-tools-opt"><a href="{{route('dashboard.cooperations.create')}}" class="btn btn-primary"><em class="icon ni ni-plus"></em><span>Tambah</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .nk-block-head-content -->
|
||||
@endif --}}
|
||||
</div><!-- .nk-block-between -->
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-bordered nowrap" id="cooperationRequestsTable" border="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10% !important;">No</th>
|
||||
<th>Nama Kegiatan</th>
|
||||
<th>Tanggal Mulai</th>
|
||||
<th>Tanggal Selesai</th>
|
||||
<th>Dibuat Pada</th>
|
||||
<th>Status</th>
|
||||
<th style="width: 10% !important;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer' ,['datatable' => 'cooperation_request'])
|
||||
@ -0,0 +1,324 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperation_requests'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-primary" href="#"><em class="icon ni ni-file-text"></em><span>Form Pengajuan Kerjasama</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
<form action="#" class="nk-wizard nk-wizard-simple is-alter" id="wizard-01">
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Data Perusahaan</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama perusahaan</span>
|
||||
<span class="profile-ud-value">{{$user->company->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Email Perusahaan</span>
|
||||
<span class="profile-ud-value">{{$user->company->email}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Direktur</span>
|
||||
<span class="profile-ud-value">{{$user->company->director_name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">NIK Direktur</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->director_nik_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->director_nik_doc)}}" target="__blank">{{$user->company->director_nik}}</a>
|
||||
@else
|
||||
{{$user->company->director_nik ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Alamat</span>
|
||||
<span class="profile-ud-value">{{$user->company->address}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Akta Pendirian</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->deed_incorporation_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->deed_incorporation_doc)}}" target="__blank">{{$user->company->deed_incorporation}}</a>
|
||||
@else
|
||||
{{$user->company->deed_incorporation ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">SPT Tahunan</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->annual_tax_return_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->annual_tax_return_doc)}}" target="__blank">{{$user->company->annual_tax_return}}</a>
|
||||
@else
|
||||
{{$user->company->annual_tax_return ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">NPWP</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->tax_id_number_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->tax_id_number_doc)}}" target="__blank">{{$user->company->tax_id_number}}</a>
|
||||
@else
|
||||
{{$user->company->tax_id_number ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">PKP</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->taxable_enterprise_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->taxable_enterprise_doc)}}" target="__blank">{{$user->company->taxable_enterprise}}</a>
|
||||
@else
|
||||
{{$user->company->taxable_enterprise ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Suket Domisili</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->domicile_certificate_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->domicile_certificate_doc)}}" target="__blank">{{$user->company->domicile_certificate}}</a>
|
||||
@else
|
||||
{{$user->company->domicile_certificate ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">SIUP</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->trade_license_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->trade_license_doc)}}" target="__blank">{{$user->company->trade_license}}</a>
|
||||
@else
|
||||
{{$user->company->trade_license ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Profile</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->profile_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->profile_doc)}}" target="__blank">{{$user->company->profile}}</a>
|
||||
@else
|
||||
{{$user->company->profile ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Penawaran Kerja</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->cooperation_request_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->cooperation_request_doc)}}" target="__blank">{{$user->company->cooperation_request}}</a>
|
||||
@else
|
||||
{{$user->company->cooperation_request ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status</span>
|
||||
@switch($user->status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Diterima</span></span>
|
||||
@break
|
||||
@case(2)
|
||||
<span class="profile-ud-value"><span class="badge bg-danger">Ditolak</span></span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Data Media</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama Media</span>
|
||||
<span class="profile-ud-value">{{$user->company->media->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Jenis</span>
|
||||
<span class="profile-ud-value">{{ucfirst($user->company->media->type)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Klasifikasi</span>
|
||||
<span class="profile-ud-value">{{ucfirst($user->company->media->classification)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Alamat</span>
|
||||
<span class="profile-ud-value">{{$user->company->media->address}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Organisasi Kewartawanan</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->media->journalism_organization_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->media->journalism_organization_doc)}}" target="__blank">{{$user->company->media->journalism_organization}}</a>
|
||||
@else
|
||||
{{$user->company->media->journalism_organization ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Sertifikat Dewan Press</span>
|
||||
<span class="profile-ud-value">
|
||||
@if ($user->company->media->press_council_certificate_doc)
|
||||
<a href="{{asset('storage/uploads/companies/'. $user->company->media->press_council_certificate_doc)}}" target="__blank">{{$user->company->media->press_council_certificate}}</a>
|
||||
@else
|
||||
{{$user->company->media->press_council_certificate ?? '-'}}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status</span>
|
||||
@switch($user->status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Diterima</span></span>
|
||||
@break
|
||||
@case(2)
|
||||
<span class="profile-ud-value"><span class="badge bg-danger">Ditolak</span></span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Data Jurnalis</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="row g-gs">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<span class="preview-title overline-title">Pilih Jurnalis</span>
|
||||
<ul class="custom-control-group custom-control-vertical w-100">
|
||||
@foreach ($user->company->media->journalists as $journalist)
|
||||
<li>
|
||||
<div class="custom-control custom-control-sm custom-checkbox custom-control-pro">
|
||||
<input type="checkbox" class="custom-control-input" id="journalists-{{$journalist->id}}" name="journalists[]" value="{{$journalist->id}}" required>
|
||||
<label class="custom-control-label" for="journalists-{{$journalist->id}}">
|
||||
<span class="user-card">
|
||||
<span class="user-avatar sm bg-info">
|
||||
<em class="icon ni ni-user-alt"></em>
|
||||
</span>
|
||||
<span class="user-info">
|
||||
<span class="lead-text">{{$journalist->name}}</span>
|
||||
<span class="sub-text"><em class="icon ni ni-call"></em> {{$journalist->phone_number}}</span>
|
||||
<span class="sub-text"><em class="icon ni ni-mail"></em> {{$journalist->email}}</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Data Pengajuan Kerjasama</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="row gy-2">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="fw-telegram-username">Lampiran Pengajuan</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" data-msg="Wajib Di isi" class="form-control required" id="fw-telegram-username" name="fw-telegram-username" required>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .col -->
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="fw-telegram-username">Template Lampiran Pengajuan</label>
|
||||
<div class="form-control-wrap">
|
||||
<a href="#" class="btn btn-info" style="width: 100%;">
|
||||
<em class="icon ni ni-download" style="margin-top: -0.2rem"></em> Unduh template lampiran pengajuan
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .col -->
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="fw-token-address">Deskripsi</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="tinymce-basic form-control" name="content">{!!old('content')!!}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .row -->
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true, 'proposal' => true])
|
||||
157
resources/views/dashboard/cooperation-requests/reject.blade.php
Normal file
157
resources/views/dashboard/cooperation-requests/reject.blade.php
Normal file
@ -0,0 +1,157 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperation_requests'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card">
|
||||
<div class="card-aside-wrap">
|
||||
<div class="card-content">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Kerjasama</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
<div class="nk-block">
|
||||
{{-- <div class="nk-block-head">
|
||||
<h5 class="title">Personal Information</h5>
|
||||
<p>Basic info, like your name and address, that you use on Nio Platform.</p>
|
||||
</div> --}}
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama Kegiatan</span>
|
||||
<span class="profile-ud-value">{{$cooperation->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Diunggah Pada</span>
|
||||
<span class="profile-ud-value">{{idn_date($cooperation->created_at, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Mulai Pengajuan</span>
|
||||
<span class="profile-ud-value">{{idn_date($cooperation->start_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Akhir Pengajuan</span>
|
||||
<span class="profile-ud-value">{{idn_date($cooperation->end_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Deskripsi</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$cooperation->description!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div id="accordion" class="accordion my-3">
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head" data-bs-toggle="collapse" data-bs-target="#accordion-item-1">
|
||||
<h6 class="title">Banner</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse" id="accordion-item-1" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
@if (filled($cooperation->banner))
|
||||
<img src="{{asset('storage/uploads/cooperations/'. $cooperation->banner)}}" alt="Banner" style="max-width: 300px; height: auto; display: block; margin: auto;">
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#accordion-item-2">
|
||||
<h6 class="title">Template Pengajuan</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse" id="accordion-item-2" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
@if (filled($cooperation->offer_file_template))
|
||||
<iframe src="{{ asset('storage/uploads/cooperations/' . $cooperation->offer_file_template) }}"
|
||||
width="100%" height="400">
|
||||
<p>Browser Anda tidak mendukung PDF viewer. Anda bisa mengunduh PDF ini <a href="{{ asset('storage/uploads/cooperations/' . $cooperation->offer_file_template) }}">di sini</a>.</p>
|
||||
</iframe>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .card-inner -->
|
||||
</div><!-- .card-content -->
|
||||
</div><!-- .card-aside-wrap -->
|
||||
</div>
|
||||
<div class="card card-bordered card-preview">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-warning" href="#"><em class="icon ni ni-na"></em><span>Data Penolakan</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
{{-- {{dd($mediaCooperationPivot->status != '0')}} --}}
|
||||
<form action="{{route('dashboard.cooperations.requests.reject.action', ['id' => encrypt_id($cooperation->id)])}}" method="post">
|
||||
@csrf
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="rejection_reason">Alasan Menolak @if($mediaCooperationPivot->status === '0')<span class="required-input">*</span> @endif </label>
|
||||
@if ($mediaCooperationPivot->status === '0')
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="tinymce-basic form-control" name="rejection_reason" id="rejection_reason" >{!!old('rejection_reason')!!}</textarea>
|
||||
</div>
|
||||
@else
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaCooperationPivot->rejection_reason!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
@endif
|
||||
</div>
|
||||
<hr>
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.cooperations.requests.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
@if ($mediaCooperationPivot->status === '0')
|
||||
<button type="submit" class="btn btn-primary">Kirim</button>
|
||||
@endif
|
||||
</div><!-- .nk-block -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true])
|
||||
158
resources/views/dashboard/cooperation-requests/show.blade.php
Normal file
158
resources/views/dashboard/cooperation-requests/show.blade.php
Normal file
@ -0,0 +1,158 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperation_requests'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card">
|
||||
<div class="card-aside-wrap">
|
||||
<div class="card-content">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Kerjasama</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
<div class="nk-block">
|
||||
{{-- <div class="nk-block-head">
|
||||
<h5 class="title">Personal Information</h5>
|
||||
<p>Basic info, like your name and address, that you use on Nio Platform.</p>
|
||||
</div> --}}
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama Kegiatan</span>
|
||||
<span class="profile-ud-value">{{$cooperation->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Diunggah Pada</span>
|
||||
<span class="profile-ud-value">{{idn_date($cooperation->created_at, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Mulai Pengajuan</span>
|
||||
<span class="profile-ud-value">{{idn_date($cooperation->start_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Akhir Pengajuan</span>
|
||||
<span class="profile-ud-value">{{idn_date($cooperation->end_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Deskripsi</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$cooperation->description!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div id="accordion" class="accordion my-3">
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head" data-bs-toggle="collapse" data-bs-target="#accordion-item-1">
|
||||
<h6 class="title">Banner</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse" id="accordion-item-1" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
@if (filled($cooperation->banner))
|
||||
<img src="{{asset('storage/uploads/cooperations/'. $cooperation->banner)}}" alt="Banner" style="max-width: 300px; height: auto; display: block; margin: auto;">
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#accordion-item-2">
|
||||
<h6 class="title">Template Pengajuan</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse" id="accordion-item-2" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
@if (filled($cooperation->offer_file_template))
|
||||
<iframe src="{{ asset('storage/uploads/cooperations/' . $cooperation->offer_file_template) }}"
|
||||
width="100%" height="400">
|
||||
<p>Browser Anda tidak mendukung PDF viewer. Anda bisa mengunduh PDF ini <a href="{{ asset('storage/uploads/cooperations/' . $cooperation->offer_file_template) }}">di sini</a>.</p>
|
||||
</iframe>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if ($mediaCooperationPivot->status !== '2')
|
||||
<div class="nk-block d-flex justify-content-end mt-3">
|
||||
<a href="{{route('dashboard.cooperations.requests.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
</div><!-- .nk-block -->
|
||||
@endif
|
||||
</div>
|
||||
</div><!-- .card-inner -->
|
||||
</div><!-- .card-content -->
|
||||
</div><!-- .card-aside-wrap -->
|
||||
</div>
|
||||
@if ($mediaCooperationPivot->status === '2')
|
||||
<div class="card card-bordered card-preview">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-warning" href="#"><em class="icon ni ni-na"></em><span>Data Penolakan</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
{{-- {{dd($mediaCooperationPivot->status != '0')}} --}}
|
||||
<form action="{{route('dashboard.cooperations.requests.reject.action', ['id' => encrypt_id($cooperation->id)])}}" method="post">
|
||||
@csrf
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="rejection_reason">Alasan Menolak </label>
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaCooperationPivot->rejection_reason!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div>
|
||||
<hr>
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.cooperations.requests.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
@if ($mediaCooperationPivot->status === '0')
|
||||
<button type="submit" class="btn btn-primary">Kirim</button>
|
||||
@endif
|
||||
</div><!-- .nk-block -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true])
|
||||
118
resources/views/dashboard/media-cooperations/create.blade.php
Normal file
118
resources/views/dashboard/media-cooperations/create.blade.php
Normal file
@ -0,0 +1,118 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperations'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="card-head">
|
||||
<h5 class="card-title">{{$title}}</h5>
|
||||
</div>
|
||||
<form action="{{route('dashboard.cooperations.store')}}" method="post" id="myForm" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-12">
|
||||
<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="{{old('name')}}">
|
||||
</div>
|
||||
@error('name')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<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="{{old('start_date')}}">
|
||||
</div>
|
||||
@error('start_date')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<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="{{old('end_date')}}">
|
||||
</div>
|
||||
@error('end_date')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<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">
|
||||
@foreach ($media as $item)
|
||||
<option value="{{ $item->id }}"
|
||||
{{ is_array(old('media_ids')) && in_array($item->id, old('media_ids')) ? 'selected' : '' }}>
|
||||
{{ $item->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@error('media_ids')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<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" id="banner" name="banner" placeholder="Masukan file banner" value="{{old('banner')}}" accept="image/*">
|
||||
</div>
|
||||
@error('banner')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<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" 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>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="phone-no-1">Deskripsi Kerjasama<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="tinymce-basic form-control" name="description">{!!old('description')!!}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
<div class="form-group d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.cooperations.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<button type="button" class="btn btn-md btn-primary" id="submitButton">Kirim</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true])
|
||||
119
resources/views/dashboard/media-cooperations/edit.blade.php
Normal file
119
resources/views/dashboard/media-cooperations/edit.blade.php
Normal file
@ -0,0 +1,119 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperations'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="card-head">
|
||||
<h5 class="card-title">{{$title}}</h5>
|
||||
</div>
|
||||
<form action="{{route('dashboard.cooperations.update', ['id' => encrypt_id($cooperation->id)])}}" method="post" id="myForm" enctype="multipart/form-data">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-12">
|
||||
<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}}">
|
||||
</div>
|
||||
@error('name')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<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}}">
|
||||
</div>
|
||||
@error('start_date')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<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}}">
|
||||
</div>
|
||||
@error('end_date')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<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">
|
||||
@foreach ($media as $item)
|
||||
<option value="{{ $item->id }}"
|
||||
{{ in_array($item->id, old('media_ids', $selectedMediaIds)) ? 'selected' : '' }}>
|
||||
{{ $item->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@error('media_ids')
|
||||
<span class="validation-error">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<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" id="banner" name="banner" placeholder="Masukan file banner" accept="image/*">
|
||||
</div>
|
||||
@error('banner')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<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" 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>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="phone-no-1">Deskripsi Kerjasama<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="tinymce-basic form-control" name="description">{!!$cooperation->description!!}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
<div class="form-group d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.cooperations.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<button type="button" class="btn btn-md btn-primary" id="submitButton">Simpan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => true])
|
||||
65
resources/views/dashboard/media-cooperations/index.blade.php
Normal file
65
resources/views/dashboard/media-cooperations/index.blade.php
Normal file
@ -0,0 +1,65 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperations'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block-head nk-block-head-sm">
|
||||
<div class="nk-block-between">
|
||||
<div class="nk-block-head-content">
|
||||
<h3 class="nk-block-title page-title">{{$title}}</h3>
|
||||
</div><!-- .nk-block-head-content -->
|
||||
@if (is_role(['1']))
|
||||
<div class="nk-block-head-content">
|
||||
<div class="toggle-wrap nk-block-tools-toggle">
|
||||
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
|
||||
<div class="toggle-expand-content" data-content="pageMenu">
|
||||
<ul class="nk-block-tools g-3">
|
||||
{{-- <li>
|
||||
<div class="drodown">
|
||||
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
|
||||
<div class="dropdown-menu dropdown-menu-end">
|
||||
<ul class="link-list-opt no-bdr">
|
||||
<li><a href="#"><span>Last 30 Days</span></a></li>
|
||||
<li><a href="#"><span>Last 6 Months</span></a></li>
|
||||
<li><a href="#"><span>Last 1 Years</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li> --}}
|
||||
<li class="nk-block-tools-opt"><a href="{{route('dashboard.cooperations.create')}}" class="btn btn-primary"><em class="icon ni ni-plus"></em><span>Tambah</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .nk-block-head-content -->
|
||||
@endif
|
||||
</div><!-- .nk-block-between -->
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-bordered nowrap" id="cooperationsTable" border="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10% !important;">No</th>
|
||||
<th>Nama Kegiatan</th>
|
||||
<th>Tanggal Mulai</th>
|
||||
<th>Tanggal Selesai</th>
|
||||
<th>Dibuat Pada</th>
|
||||
<th style="width: 10% !important;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer' ,['datatable' => 'cooperation'])
|
||||
151
resources/views/dashboard/media-cooperations/show.blade.php
Normal file
151
resources/views/dashboard/media-cooperations/show.blade.php
Normal file
@ -0,0 +1,151 @@
|
||||
@include('partials.dashboard.head')
|
||||
@include('partials.dashboard.sidebar', ['page' => 'cooperations'])
|
||||
@include('partials.dashboard.header')
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card">
|
||||
<div class="card-aside-wrap">
|
||||
<div class="card-content">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Kerjasama</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
<div class="nk-block">
|
||||
{{-- <div class="nk-block-head">
|
||||
<h5 class="title">Personal Information</h5>
|
||||
<p>Basic info, like your name and address, that you use on Nio Platform.</p>
|
||||
</div> --}}
|
||||
<div class="profile-ud-list">
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Nama Kegiatan</span>
|
||||
<span class="profile-ud-value">{{$mediaCooperation->name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Diunggah Pada</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaCooperation->created_at, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Mulai Pengajuan</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaCooperation->start_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Tanggal Akhir Pengajuan</span>
|
||||
<span class="profile-ud-value">{{idn_date($mediaCooperation->end_date, 'l, m F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
<div class="nk-block">
|
||||
<div class="nk-block-head nk-block-head-sm nk-block-between">
|
||||
<span class="profile-ud-label">Deskripsi</span>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
{!!$mediaCooperation->description!!}
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<div id="accordion" class="accordion my-3">
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head" data-bs-toggle="collapse" data-bs-target="#accordion-item-1">
|
||||
<h6 class="title">Banner</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse" id="accordion-item-1" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
@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
|
||||
-
|
||||
@endif
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#accordion-item-2">
|
||||
<h6 class="title">Template Pengajuan</h6>
|
||||
<span class="accordion-icon"></span>
|
||||
</a>
|
||||
<div class="accordion-body collapse" id="accordion-item-2" data-bs-parent="#accordion">
|
||||
<div class="accordion-inner">
|
||||
<div class="bq-note">
|
||||
<div class="bq-note-item">
|
||||
<div class="bq-note-text">
|
||||
@if (filled($mediaCooperation->offer_file_template))
|
||||
<iframe src="{{ asset('storage/uploads/cooperations/' . $mediaCooperation->offer_file_template) }}"
|
||||
width="100%" height="400">
|
||||
<p>Browser Anda tidak mendukung PDF viewer. Anda bisa mengunduh PDF ini <a href="{{ asset('storage/uploads/cooperations/' . $mediaCooperation->offer_file_template) }}">di sini</a>.</p>
|
||||
</iframe>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</div>
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.media.monitoring.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<a href="{{route('dashboard.content.recaps.edit', ['id' => encrypt_id($mediaCooperation->id)])}}" class="btn btn-warning"><span>Ubah</span></a>
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- .card-inner -->
|
||||
</div><!-- .card-content -->
|
||||
</div><!-- .card-aside-wrap -->
|
||||
</div>
|
||||
<div class="card card-bordered card-preview">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Media</span></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-bordered nowrap" id="cooperationMediaTable" border="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10% !important;">No</th>
|
||||
<th>Nama Media</th>
|
||||
<th>Nama Perusahaan</th>
|
||||
<th>Email</th>
|
||||
<th>Tipe</th>
|
||||
<th>Klasifikasi</th>
|
||||
<th>Status</th>
|
||||
{{-- <th style="width: 10% !important;"></th> --}}
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
@include('partials.dashboard.footer', ['rich_editor' => false, 'datatable' => 'cooperation_media'])
|
||||
@ -304,6 +304,96 @@
|
||||
</script>
|
||||
@endif
|
||||
|
||||
@if ($datatable === 'cooperation')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#cooperationsTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{{ route('dashboard.cooperations.data') }}',
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'name', name: 'name' },
|
||||
{ data: 'start_date', name: 'start_date' },
|
||||
{ data: 'end_date', name: 'end_date' },
|
||||
{ data: 'posted_at', name: 'posted_at' },
|
||||
{ data: 'action', name: 'action', orderable: false, searchable: false },
|
||||
{ data: 'created_at', name: 'created_at', visible: false },
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']],
|
||||
scrollX: true,
|
||||
// scrollY: true,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
@if ($datatable === 'cooperation_media')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#cooperationMediaTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{{ route('dashboard.cooperations.media.data', ["id" => encrypt_id($mediaCooperation->id)]) }}',
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'media_name', name: 'media_name' },
|
||||
{ data: 'company_name', name: 'company_name' },
|
||||
{ data: 'email', name: 'email' },
|
||||
{ data: 'type', name: 'type' },
|
||||
{ data: 'classification', name: 'classification' },
|
||||
{ data: 'status', name: 'status' },
|
||||
// { data: 'action', name: 'action', orderable: false, searchable: false },
|
||||
{ data: 'created_at', name: 'created_at', visible: false },
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
autoWidth: false,
|
||||
order: [[7, 'desc']],
|
||||
pagingType: "simple",
|
||||
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']],
|
||||
scrollX: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
@if ($datatable === 'cooperation_request')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#cooperationRequestsTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{{ route('dashboard.cooperations.requests.data') }}',
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'name', name: 'name' },
|
||||
{ data: 'start_date', name: 'start_date' },
|
||||
{ data: 'end_date', name: 'end_date' },
|
||||
{ data: 'posted_at', name: 'posted_at' },
|
||||
{ data: 'status', name: 'status' },
|
||||
{ data: 'action', name: 'action', orderable: false, searchable: false },
|
||||
{ data: 'created_at', name: 'created_at', visible: false },
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']],
|
||||
scrollX: true,
|
||||
// scrollY: "300px",
|
||||
// scrollCollapse: true,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
@if ($datatable === 'content_recap')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
@ -45,6 +45,7 @@ function deleteItem(url, message) {
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$.ajaxSetup({
|
||||
@ -92,6 +93,7 @@ function statusAction(url, message, confirmButtonAction) {
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
@if (session('success-status'))
|
||||
<script>
|
||||
Swal.fire({
|
||||
@ -113,3 +115,100 @@ function statusAction(url, message, confirmButtonAction) {
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
<script>
|
||||
$('#submitButton').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
Swal.fire({
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: 'Pastikan data yang Anda masukkan sudah benar.',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Ya, kirim!',
|
||||
cancelButtonText: 'Batal',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
console.log("Form akan dikirim...");
|
||||
|
||||
$('#myForm').off('submit').submit(); // Pastikan hanya submit 1x
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
function showDetail(reason) {
|
||||
Swal.fire({
|
||||
title: 'Alasan Penolakan', // Judul utama
|
||||
html: `
|
||||
<div class="card" style="border: none; border-radius: 12px; padding: 15px; text-align: left; background-color: #f8f9fa; max-width: 500px; margin: auto; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); margin-top:0.5rem;">
|
||||
<div class="card-body" style="font-size: 14px; color: #555; line-height: 1.6;">
|
||||
<p style="margin: 0; padding: 10px 0; font-style: italic; color: #888;">
|
||||
${reason || "<i>Tidak ada alasan yang diberikan.</i>"}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
icon: 'info',
|
||||
confirmButtonText: 'Tutup',
|
||||
confirmButtonColor: '#3085d6', // Mengubah warna tombol
|
||||
padding: '25px', // Padding sekitar modal
|
||||
backdrop: true, // Mengaktifkan backdrop
|
||||
customClass: {
|
||||
popup: 'custom-popup',
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function itemConfirm(url, message, buttonText) {
|
||||
Swal.fire({
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: message,
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: buttonText,
|
||||
cancelButtonText: 'Batal',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: url,
|
||||
success: function(response) {
|
||||
$('#usersTable').DataTable().ajax.reload();
|
||||
Swal.fire(
|
||||
'Berhasil!',
|
||||
response.message,
|
||||
'success'
|
||||
).then(() => {
|
||||
location.reload();
|
||||
});
|
||||
},
|
||||
error: function(xhr) {
|
||||
Swal.fire(
|
||||
'Terjadi kesalahan!',
|
||||
xhr.responseText,
|
||||
'error'
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -54,8 +54,13 @@
|
||||
<!-- app-root @e -->
|
||||
<!-- JavaScript -->
|
||||
<script src="{{asset('assets/dashboard/js/bundle.js?ver=3.0.3')}}"></script>
|
||||
@if (isset($proposal))
|
||||
<script src="{{asset('assets/dashboard/js/script-wizard.js?ver=3.0.3')}}"></script>
|
||||
@else
|
||||
<script src="{{asset('assets/dashboard/js/scripts.js?ver=3.0.3')}}"></script>
|
||||
@endif
|
||||
<script src="{{asset('assets/dashboard/js/custom.js')}}"></script>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
|
||||
|
||||
@include('partials.app.sweetalert')
|
||||
|
||||
@ -32,10 +32,10 @@
|
||||
</li><!-- .nk-menu-item -->
|
||||
@if (is_role([3]))
|
||||
<li class="nk-menu-item">
|
||||
<a href="javascript:void(0);" class="nk-menu-link">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-bell"></em></span>
|
||||
<span class="nk-menu-text">Ajakan Kerjasama</span>
|
||||
<span class="nk-menu-badge bg-info text-white">10</span>
|
||||
<a href="{{route('dashboard.cooperations.requests.index')}}" class="nk-menu-link {{$page === 'cooperation_requests' ? 'active-page' : ''}}">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-star"></em></span>
|
||||
<span class="nk-menu-text">Ajuan Kerjasama</span>
|
||||
<span class="nk-menu-badge bg-success text-white" style="color: white !important;">{{get_cooperation_notif()}}</span>
|
||||
</a>
|
||||
</li><!-- .nk-menu-item -->
|
||||
@endif
|
||||
@ -104,7 +104,7 @@
|
||||
</li><!-- .nk-menu-item -->
|
||||
@endif
|
||||
<li class="nk-menu-heading">
|
||||
<h6 class="overline-title text-primary-alt">Data</h6>
|
||||
<h6 class="overline-title text-primary-alt">Data @if(is_role(['3'])) Saya @endif</h6>
|
||||
</li><!-- .nk-menu-item -->
|
||||
<li class="nk-menu-item">
|
||||
<a href="{{route('dashboard.companies.index')}}" class="nk-menu-link {{$page === 'companies' ? 'active-page' : ''}}">
|
||||
@ -128,11 +128,12 @@
|
||||
<h6 class="overline-title text-primary-alt">Kerjasama {{is_role(['1']) ? 'Eksternal' : ''}}</h6>
|
||||
</li><!-- .nk-menu-item -->
|
||||
<li class="nk-menu-item">
|
||||
<a href="javascript:void(0);" class="nk-menu-link">
|
||||
<a href="{{route('dashboard.cooperations.index')}}" class="nk-menu-link {{$page === 'cooperations' ? 'active-page' : ''}}">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-globe"></em></span>
|
||||
<span class="nk-menu-text">Kerjasama Media</span>
|
||||
</a>
|
||||
</li><!-- .nk-menu-item -->
|
||||
@if (is_role(['1']))
|
||||
<li class="nk-menu-item">
|
||||
<a href="javascript:void(0);" class="nk-menu-link">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-briefcase"></em></span>
|
||||
@ -145,6 +146,7 @@
|
||||
<span class="nk-menu-text">Laporan</span>
|
||||
</a>
|
||||
</li><!-- .nk-menu-item -->
|
||||
@endif
|
||||
<li class="nk-menu-item">
|
||||
<a href="javascript:void(0);" class="nk-menu-link">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-check-circle-cut"></em></span>
|
||||
|
||||
@ -5,12 +5,14 @@
|
||||
use App\Http\Controllers\Dashboard\ClassificationController;
|
||||
use App\Http\Controllers\Dashboard\CompanyController;
|
||||
use App\Http\Controllers\Dashboard\ContentRecapController;
|
||||
use App\Http\Controllers\Dashboard\CooperationRequestController;
|
||||
use App\Http\Controllers\Dashboard\DatatableController;
|
||||
use App\Http\Controllers\Dashboard\GovernmentAgencyController;
|
||||
use App\Http\Controllers\Dashboard\IssueManagementController;
|
||||
use App\Http\Controllers\Dashboard\JournalistController;
|
||||
use App\Http\Controllers\Dashboard\LocationController;
|
||||
use App\Http\Controllers\Dashboard\MediaController;
|
||||
use App\Http\Controllers\Dashboard\MediaCooperationController;
|
||||
use App\Http\Controllers\Dashboard\MediaMonitoringController;
|
||||
use App\Http\Controllers\Dashboard\NewsController;
|
||||
use App\Http\Controllers\Dashboard\OverviewController;
|
||||
@ -224,19 +226,55 @@
|
||||
});
|
||||
});
|
||||
|
||||
Route::middleware('role:1,4')->group(function(){});
|
||||
Route::prefix('content-recaps')->name('content.recaps.')->group(function(){
|
||||
Route::controller(ContentRecapController::class)->group(function(){
|
||||
Route::prefix('cooperations')->name('cooperations.')->group(function(){
|
||||
Route::controller(MediaCooperationController::class)->group(function(){
|
||||
Route::get('/', 'index')->name('index');
|
||||
Route::get('/{id}/show', 'show')->name('show');
|
||||
Route::get('/create', 'create')->name('create');
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::get('/{id}/show', 'show')->name('show');
|
||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||
Route::put('/{id}', 'update')->name('update');
|
||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
||||
});
|
||||
|
||||
Route::get('/data', [DatatableController::class, 'contentRecap'])->name('data');
|
||||
Route::get('/data', [DatatableController::class, 'cooperation'])->name('data');
|
||||
Route::get('/data-media/{id}', [DatatableController::class, 'cooperationMedia'])->name('media.data');
|
||||
});
|
||||
|
||||
Route::middleware('role:1,3')->group(function(){
|
||||
Route::prefix('cooperations-requests')->name('cooperations.requests.')->group(function(){
|
||||
Route::controller(CooperationRequestController::class)->group(function(){
|
||||
Route::get('/', 'index')->name('index');
|
||||
Route::get('/{id}/show', 'show')->name('show');
|
||||
Route::get('/create', 'create')->name('create');
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::post('/{id}/accept', 'accept')->name('accept');
|
||||
Route::get('/{id}/proposal', 'proposal')->name('proposal');
|
||||
Route::get('/{id}/reject', 'reject')->name('reject');
|
||||
Route::post('/{id}/reject', 'rejectAction')->name('reject.action');
|
||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||
Route::put('/{id}', 'update')->name('update');
|
||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
||||
});
|
||||
|
||||
Route::get('/data', [DatatableController::class, 'cooperationRequest'])->name('data');
|
||||
});
|
||||
});
|
||||
|
||||
Route::middleware('role:1,4')->group(function(){
|
||||
Route::prefix('content-recaps')->name('content.recaps.')->group(function(){
|
||||
Route::controller(ContentRecapController::class)->group(function(){
|
||||
Route::get('/', 'index')->name('index');
|
||||
Route::get('/create', 'create')->name('create');
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::get('/{id}/show', 'show')->name('show');
|
||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||
Route::put('/{id}', 'update')->name('update');
|
||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
||||
});
|
||||
|
||||
Route::get('/data', [DatatableController::class, 'contentRecap'])->name('data');
|
||||
});
|
||||
});
|
||||
|
||||
Route::middleware('role:1,2')->group(function(){
|
||||
|
||||
Loading…
Reference in New Issue
Block a user