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){
|
||||
$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>
|
||||
@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>
|
||||
@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
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -315,7 +315,7 @@
|
||||
Route::put('/{id}/process/{action}', 'processEditAction')->name('edit.process.action');
|
||||
|
||||
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');
|
||||
});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user