chore: add year and created_at column in table airing-proof-theme
This commit is contained in:
parent
9ce357c394
commit
082775cdbc
@ -28,6 +28,14 @@ public function store(AiringProofThemeRequest $request){
|
||||
$validatedData['slug'] = Str::slug($validatedData['name']. ' '. $validatedData['year']);
|
||||
$validatedData['enhancer_id'] = Auth::id();
|
||||
|
||||
$existedData = AiringProofTheme::withTrashed()->where('slug', $validatedData['slug'])->first();
|
||||
|
||||
if($existedData && filled($existedData->deleted_at)){
|
||||
return redirect()->back()->with('data-exists', $validatedData['slug']);
|
||||
}elseif($existedData){
|
||||
return redirect()->back()->with('failed-status', 'Tema dengan nama dan tahun tersebut sudah ada.');
|
||||
}
|
||||
|
||||
$createdTheme = AiringProofTheme::create($validatedData);
|
||||
|
||||
if($createdTheme){
|
||||
@ -81,4 +89,23 @@ public function destroy($id){
|
||||
return response()->json(['message' => 'Gagal menghapus tema bukti tayang.'], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function restore($slug)
|
||||
{
|
||||
$airingProofTheme = AiringProofTheme::withTrashed()
|
||||
->where('slug', $slug)
|
||||
->first();
|
||||
|
||||
if (!$airingProofTheme) {
|
||||
return redirect()->back()->with('failed-status', 'Tema tidak ditemukan.');
|
||||
}
|
||||
|
||||
if (filled($airingProofTheme->deleted_at)) {
|
||||
$airingProofTheme->restore();
|
||||
return redirect()->back()->with('success-status', 'Tema berhasil dipulihkan.');
|
||||
}
|
||||
|
||||
return redirect()->back()->with('info-status', 'Tema sudah aktif.');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -643,6 +643,9 @@ public function airingProofTheme(Request $request){
|
||||
|
||||
return DataTables::of($data)
|
||||
->addIndexColumn()
|
||||
->addColumn('date_created', function ($data) {
|
||||
return idn_date($data->created_at, 'l, d F Y');
|
||||
})
|
||||
->addColumn('action', function ($data) {
|
||||
$showUrl = route('dashboard.airing.proof.themes.show', ['id' => encrypt_id($data->id)]);
|
||||
|
||||
|
||||
@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class AiringProofTheme extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
protected $table = 'airing_proof_themes';
|
||||
|
||||
protected $fillable = [
|
||||
|
||||
@ -20,6 +20,7 @@ public function up(): void
|
||||
$table->unsignedBigInteger('enhancer_id');
|
||||
$table->foreign('enhancer_id')->references('id')->on('users');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -7,12 +7,23 @@
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="nk-block nk-block-lg">
|
||||
@if (session()->has('data-exists'))
|
||||
<div class="example-alert mb-3">
|
||||
<div class="alert alert-warning alert-icon">
|
||||
<em class="icon ni ni-alert-circle"></em> <strong>Tema Sudah Ada.</strong><br>Tema dengan nama dan tahun tersebut sudah ada di database, namun dalam kondisi <span class="text-danger">terhapus</span>. Anda ingin mengembalikannya?
|
||||
<div class="text-center mt-1">
|
||||
<a href="{{route('dashboard.airing.proof.themes.restore', ['slug' => session()->get('data-exists')])}}" class="btn btn-sm btn-primary mx-1">Ya</a>
|
||||
<a href="{{route('dashboard.airing.proof.themes.create')}}" class="btn btn-sm btn-warning">Tidak</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<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.airing.proof.themes.store')}}" method="post">
|
||||
<form action="{{route('dashboard.airing.proof.themes.store')}}" method="post" id="myForm">
|
||||
@csrf
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-6">
|
||||
@ -49,7 +60,7 @@
|
||||
<hr>
|
||||
<div class="form-group d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.airing.proof.themes.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<button type="submit" class="btn btn-md btn-primary">Tambahkan</button>
|
||||
<button type="button" class="btn btn-md btn-primary" id="submitButton">Tambahkan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<div class="card-head">
|
||||
<h5 class="card-title">{{$title}}</h5>
|
||||
</div>
|
||||
<form action="{{route('dashboard.airing.proof.themes.update', ['id' => encrypt_id($airingProofTheme->id)])}}" method="post">
|
||||
<form action="{{route('dashboard.airing.proof.themes.update', ['id' => encrypt_id($airingProofTheme->id)])}}" method="post" id="myForm">
|
||||
@csrf
|
||||
@method('put')
|
||||
<div class="row g-4">
|
||||
@ -50,7 +50,7 @@
|
||||
<hr>
|
||||
<div class="form-group d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.airing.proof.themes.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<button type="submit" class="btn btn-md btn-primary">Simpan</button>
|
||||
<button type="button" class="btn btn-md btn-primary" id="submitButton">Simpan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -44,6 +44,8 @@
|
||||
<tr>
|
||||
<th style="width: 10% !important;">No</th>
|
||||
<th>Nama</th>
|
||||
<th>Tahun</th>
|
||||
<th>Tanggal Dibuat</th>
|
||||
<th style="width: 10% !important;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="phone-no-1">Deskripsi</label>
|
||||
<div class="form-control-wrap">
|
||||
<div class="description-content">{!! $airingProofTheme->description !!}</div>
|
||||
<div class="description-content">{!! filled($airingProofTheme->description) ? $airingProofTheme->description : '<i>Tidak ada deskripsi</i>' !!}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -56,7 +56,7 @@
|
||||
}
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [
|
||||
[6, 'desc'],
|
||||
@ -105,7 +105,7 @@
|
||||
}
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [
|
||||
[6, 'desc']
|
||||
@ -153,7 +153,7 @@
|
||||
}
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -200,7 +200,7 @@
|
||||
}
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -242,7 +242,7 @@
|
||||
}
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[4, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -297,7 +297,7 @@
|
||||
}
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -343,7 +343,7 @@
|
||||
{ targets: 4, width: '5%' }, // Kolom aksi
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [
|
||||
[5, 'desc']
|
||||
@ -393,7 +393,7 @@
|
||||
{ targets: 5, width: '5%' }, // Kolom aksi
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [
|
||||
[4, 'desc'],
|
||||
@ -417,14 +417,16 @@
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'name', name: 'name' },
|
||||
{ data: 'year', name: 'year' },
|
||||
{ data: 'date_created', name: 'date_created' },
|
||||
{ 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,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[3, 'desc']],
|
||||
order: [[5, '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
|
||||
@ -466,7 +468,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[10, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -512,7 +514,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[10, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -555,7 +557,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[8, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -599,7 +601,7 @@
|
||||
],
|
||||
@endif
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -630,7 +632,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -661,7 +663,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[7, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -690,7 +692,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[7, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -722,7 +724,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[7, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -752,7 +754,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[5, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -784,7 +786,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[7, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -813,7 +815,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -841,7 +843,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[5, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -870,7 +872,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[7, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -900,7 +902,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[7, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -932,7 +934,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[9, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -987,7 +989,7 @@
|
||||
}
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[3, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -1023,7 +1025,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[6, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -1048,7 +1050,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[1, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -1084,7 +1086,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[4, 'desc']],
|
||||
pagingType: "simple",
|
||||
@ -1121,7 +1123,7 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
language: datatableLanguage,
|
||||
responsive: true,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[4, 'desc']],
|
||||
pagingType: "simple",
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
<li class="nk-menu-item">
|
||||
<a href="{{route('dashboard.airing.proof.themes.index')}}" class="nk-menu-link {{$page === 'airing_proof_themes' ? 'active-page' : ''}}">
|
||||
<span class="nk-menu-icon"><em class="icon ni ni-puzzle"></em></span>
|
||||
<span class="nk-menu-text">Tema</span>
|
||||
<span class="nk-menu-text">Tema Bukti Tayang</span>
|
||||
</a>
|
||||
</li><!-- .nk-menu-item -->
|
||||
<li class="nk-menu-item">
|
||||
|
||||
@ -232,6 +232,7 @@
|
||||
|
||||
Route::middleware('role:1')->group(function(){
|
||||
Route::get('/create', 'create')->name('create');
|
||||
Route::get('/create/restore/{slug}', 'restore')->name('restore');
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||
Route::put('/{id}', 'update')->name('update');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user