feat: edit journalist
This commit is contained in:
parent
8fcd20c9f5
commit
e84a7a287b
@ -205,9 +205,59 @@ public function processEditAction(Request $request, $id, $action){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function edit(){}
|
public function edit($id){
|
||||||
|
$journalist = Journalist::findOrFail(decrypt_id($id));
|
||||||
|
|
||||||
public function update(){}
|
return view('dashboard.journalists.edit', [
|
||||||
|
'title' => 'Ubah Data Jurnalis',
|
||||||
|
'journalist' => $journalist
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(JournalistRequest $request, $id){
|
||||||
|
$validatedData = $request->validated();
|
||||||
|
|
||||||
|
$journalist = Journalist::findOrFail(decrypt_id($id));
|
||||||
|
if(!in_array($journalist->edit_status, ['2'])){
|
||||||
|
abort(404);
|
||||||
|
}
|
||||||
|
|
||||||
|
$fileFieldMap = [
|
||||||
|
'journalist_ukw_sertificate_doc' => 'ukw_sertificate_doc',
|
||||||
|
'journalist_press_card_doc' => 'press_card_doc',
|
||||||
|
];
|
||||||
|
|
||||||
|
$journalistFileNames = [];
|
||||||
|
|
||||||
|
foreach ($fileFieldMap as $requestKey => $dbField) {
|
||||||
|
if ($request->hasFile($requestKey) && filled($validatedData[$requestKey])) {
|
||||||
|
$journalistFileNames[$requestKey] = store_file($validatedData[$requestKey], '/uploads/journalists', 'public')['randomFileName'];
|
||||||
|
}else{
|
||||||
|
$journalistFileNames[$requestKey] = $journalist->{$dbField};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$createdJournalist = $journalist->update([
|
||||||
|
'name' => $validatedData['journalist_name'],
|
||||||
|
'email' => $validatedData['journalist_email'],
|
||||||
|
'phone_number' => $validatedData['journalist_phone_number'],
|
||||||
|
'press_card' => $validatedData['journalist_press_card'],
|
||||||
|
'press_card_doc' => $journalistFileNames['journalist_press_card_doc'],
|
||||||
|
'ukw_sertificate' => $validatedData['journalist_ukw_sertificate'],
|
||||||
|
'ukw_sertificate_doc' => $journalistFileNames['journalist_ukw_sertificate_doc'],
|
||||||
|
'approved_status' => $journalist->approved_status,
|
||||||
|
'approved_at' => $journalist->approved_at,
|
||||||
|
'edit_description' => null,
|
||||||
|
'edit_status' => '0',
|
||||||
|
'media_id' => Auth::user()->company->media->id
|
||||||
|
]);
|
||||||
|
|
||||||
|
if($createdJournalist){
|
||||||
|
return redirect()->route('dashboard.journalists.index')->with('success-status', 'Berhasil mengubah jurnalis.');
|
||||||
|
}else{
|
||||||
|
return redirect()->route('dashboard.journalists.index')->with('failed-status', 'Gagal mengubah jurnalis.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function show($id){
|
public function show($id){
|
||||||
$journalist = Journalist::findOrFail(decrypt_id($id));
|
$journalist = Journalist::findOrFail(decrypt_id($id));
|
||||||
|
|||||||
146
resources/views/dashboard/journalists/edit.blade.php
Normal file
146
resources/views/dashboard/journalists/edit.blade.php
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
@include('partials.dashboard.head')
|
||||||
|
@include('partials.dashboard.sidebar', ['page' => 'journalists'])
|
||||||
|
@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 g-3">
|
||||||
|
<div class="nk-block-head-content">
|
||||||
|
<h3 class="nk-block-title page-title">Ubah Data Jurnalis</h3>
|
||||||
|
<div class="nk-block-des text-soft">
|
||||||
|
<ul class="list-inline">
|
||||||
|
<li>Ubah data jurnalis Anda di sini.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="nk-block-head-content">
|
||||||
|
<a href="{{route('dashboard.journalists.index')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
|
||||||
|
<a href="{{route('dashboard.journalists.index')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- .nk-block-head -->
|
||||||
|
<div class="nk-block nk-block-lg">
|
||||||
|
<div class="example-alert mb-2">
|
||||||
|
<div class="alert alert-info alert-icon">
|
||||||
|
<em class="icon ni ni-alert-circle"></em> Mohon lakukan pembaruan data jurnalis sesuai dengan informasi yang telah diajukan sebelumnya. Pastikan seluruh data telah diisi dengan lengkap dan benar.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-aside-wrap">
|
||||||
|
<div class="card-content">
|
||||||
|
<div class="card-inner">
|
||||||
|
{{-- <div class="nk-divider divider md"></div> --}}
|
||||||
|
<form action="{{route('dashboard.journalists.update', ['id' => encrypt_id($journalist->id)])}}" method="post" id="myForm" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
<div class="nk-block">
|
||||||
|
<div class="row gy-4">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="journalist_name">Nama Jurnalis</label>
|
||||||
|
<div class="form-control-wrap">
|
||||||
|
<input type="text" class="form-control" id="journalist_name" placeholder="Nama perusahaan Anda" value="{{$journalist->name}}" name="journalist_name">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="journalist_email">Email Jurnalis</label>
|
||||||
|
<div class="form-control-wrap">
|
||||||
|
<input type="text" class="form-control" id="journalist_email" placeholder="Nama media Anda" value="{{$journalist->email}}" name="journalist_email">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="journalist_phone_number">Nomor Telepon Jurnalis</label>
|
||||||
|
<div class="form-control-wrap">
|
||||||
|
<input type="text" class="form-control" id="journalist_phone_number" placeholder="Nama media Anda" value="{{$journalist->phone_number}}" name="journalist_phone_number">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="journalist_press_card">Kartu Pers</label>
|
||||||
|
<div class="form-control-wrap">
|
||||||
|
<input type="text" class="form-control" id="journalist_press_card" placeholder="Alamat perusahaan Anda" value="{{$journalist->press_card ?? '-'}}" name="journalist_press_card">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="journalist_ukw_sertificate">Kartu Pers</label>
|
||||||
|
<div class="form-control-wrap">
|
||||||
|
<input type="text" class="form-control" id="journalist_ukw_sertificate" placeholder="Kartu Pers Jurnalis" value="{{$journalist->ukw_certificate ?? '-'}}" name="journalist_ukw_sertificate">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="journalist_press_card">
|
||||||
|
Organisasi Kewartawanan
|
||||||
|
@if (filled($journalist->press_card))
|
||||||
|
<span>
|
||||||
|
<a href="{{ filled($journalist->press_card) ? asset('storage/uploads/media/'.$journalist->press_card) : 'javascript:void(0);' }}"
|
||||||
|
target="_blank">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
|
||||||
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||||
|
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
|
||||||
|
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
@endif
|
||||||
|
</label>
|
||||||
|
<div class="form-control-wrap">
|
||||||
|
<div class="form-file">
|
||||||
|
<input type="file" accept="application/pdf" class="form-file-input" id="journalist_press_card" name="journalist_press_card">
|
||||||
|
<label class="form-file-label {{!filled($journalist->press_card) ? 'text-danger' : ''}}" for="journalist_press_card">{{$journalist->press_card ?? 'Belum ditambahkan'}}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label" for="journalist_ukw_sertificate_doc">Sertifikat Dewan Press
|
||||||
|
@if (filled($journalist->ukw_certificate))
|
||||||
|
<span>
|
||||||
|
<a href="{{ filled($journalist->ukw_certificate) ? asset('storage/uploads/media/'.$journalist->ukw_certificate) : 'javascript:void(0);' }}"
|
||||||
|
target="_blank">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
|
||||||
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||||
|
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
|
||||||
|
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
@endif
|
||||||
|
</label>
|
||||||
|
<div class="form-control-wrap">
|
||||||
|
<div class="form-file">
|
||||||
|
<input type="file" accept="application/pdf" class="form-file-input" id="journalist_ukw_sertificate_doc" name="journalist_ukw_sertificate_doc">
|
||||||
|
<label class="form-file-label {{!filled($journalist->ukw_certificate) ? 'text-danger' : ''}}" for="journalist_ukw_sertificate_doc">{{$journalist->ukw_certificate ?? 'Belum ditambahkan'}}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-5 d-flex justify-content-end p-2 rounded-2" style="background-color: #f4f4f4 !important;">
|
||||||
|
<a href="{{route('dashboard.journalists.edit', ['id' => encrypt_id($journalist->id)])}}" class="btn btn-danger mx-2">Reset Perubahan</a>
|
||||||
|
<button type="button" class="btn btn-primary" id="submitButton">Kirim</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- .nk-block -->
|
||||||
|
</form>
|
||||||
|
</div><!-- .card-inner -->
|
||||||
|
</div><!-- .card-content -->
|
||||||
|
</div><!-- .card-aside-wrap -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- content @e -->
|
||||||
|
@include('partials.dashboard.footer', ['rich_editor' => false])
|
||||||
@ -160,6 +160,10 @@
|
|||||||
<span>Ubah</span></a>
|
<span>Ubah</span></a>
|
||||||
@elseif($journalist->edit_status === '1')
|
@elseif($journalist->edit_status === '1')
|
||||||
<a href="javascript:void(0);" class="btn d-none d-sm-inline-flex" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Menunggu persetujuan Admin" aria-disabled="true" tabindex="-1" style="background-color: #DBDBDB; color: #89A8B2;"><em class="icon ni ni-pen2"></em><span>Ubah</span></a>
|
<a href="javascript:void(0);" class="btn d-none d-sm-inline-flex" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Menunggu persetujuan Admin" aria-disabled="true" tabindex="-1" style="background-color: #DBDBDB; color: #89A8B2;"><em class="icon ni ni-pen2"></em><span>Ubah</span></a>
|
||||||
|
@elseif($journalist->edit_status === '2')
|
||||||
|
<a href="{{route('dashboard.journalists.edit', ['id' => encrypt_id($journalist->id)])}}" class="btn btn-info mx-1">
|
||||||
|
<em class="icon ni ni-pen2"></em>
|
||||||
|
<span>Ubah</span></a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -315,7 +315,7 @@
|
|||||||
Route::put('/{id}/process/{action}', 'processEditAction')->name('edit.process.action');
|
Route::put('/{id}/process/{action}', 'processEditAction')->name('edit.process.action');
|
||||||
|
|
||||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||||
Route::put('/{id}', 'update')->name('update');
|
Route::post('/{id}', 'update')->name('update');
|
||||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
Route::delete('/{id}', 'destroy')->name('destroy');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user