| No | +Nama Jurnalis | +Perusahaan | +No Telepon | +Status | +Status Edit | ++ |
|---|
diff --git a/app/Http/Controllers/Dashboard/DatatableController.php b/app/Http/Controllers/Dashboard/DatatableController.php index 9f482d2..7b97653 100644 --- a/app/Http/Controllers/Dashboard/DatatableController.php +++ b/app/Http/Controllers/Dashboard/DatatableController.php @@ -9,6 +9,7 @@ use App\Models\ContentRecap; use App\Models\GovernmentAgency; use App\Models\IssueManagement; +use App\Models\Journalist; use App\Models\Location; use App\Models\Media; use App\Models\MediaMonitoring; @@ -603,6 +604,91 @@ public function media(Request $request){ } + public function journalist(Request $request){ + if ($request->ajax()) { + + $data = Journalist::with(['media' => function($query) { + $query->withTrashed(); + }, 'media.company' => function($query) { + $query->withTrashed(); + }, 'media.company.user' => function($query) { + $query->withTrashed(); + }])->get(); + + + return DataTables::of($data) + ->addIndexColumn() + ->addColumn('journalist_name', function ($data) { + return $data->name; + }) + ->addColumn('company_name', function ($data) { + return $data->media->company->name; + }) + ->addColumn('status', function ($data) { + switch($data->media->company->user->status){ + case 0: + return 'Menunggu'; + case 1: + return 'Diterima'; + case 2: + return 'Ditolak'; + case 3: + return 'Tidak Diketahui'; + default: + return 'Tidak Diketahui'; + } + }) + ->addColumn('status_edit', function ($data) { + switch($data->edit_status){ + case 0: + return 'Menunggu'; + case 1: + return 'Diterima'; + case 2: + return 'Ditolak'; + case 3: + return 'Tidak Diketahui'; + default: + return 'Tidak Diketahui'; + } + }) + ->addColumn('action', function ($data) { + $showUrl = route('dashboard.journalists.show', ['id' => encrypt_id($data->id)]); + + $editUrl = route('dashboard.journalists.edit', ['id' => encrypt_id($data->id)]); + + $deleteUrl = route('dashboard.journalists.destroy', ['id' => encrypt_id($data->id)]); + + $dropdown = '
'; + + return $dropdown; + }) + + ->rawColumns(['status', 'status_edit', 'action']) + ->make(true); + } + + return response()->json(['error' => 'Unauthorized'], 401); + + } + public function contentRecap(Request $request){ if ($request->ajax()) { diff --git a/app/Http/Controllers/Dashboard/JournalistController.php b/app/Http/Controllers/Dashboard/JournalistController.php new file mode 100644 index 0000000..3adc24c --- /dev/null +++ b/app/Http/Controllers/Dashboard/JournalistController.php @@ -0,0 +1,35 @@ + 'Jurnalis' + ]); + } + + public function create(){} + + public function store(){} + + public function edit(){} + + public function update(){} + + public function show($id){ + $journalist = Journalist::findOrFail(decrypt_id($id)); + + return view('dashboard.journalists.show', [ + 'title' => 'Detail Jurnalis', + 'journalist' => $journalist + ]); + } + + public function destroy(){} +} diff --git a/app/Models/Company.php b/app/Models/Company.php index 8efcf2b..1e8eb42 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -19,12 +19,12 @@ class Company extends Model 'director_nik_doc', 'deed_incorporation', 'deed_incorporation_doc', - 'siup_nib', - 'siup_nib_doc', - 'npwp', - 'npwp_doc', - 'pkp', - 'pkp_doc', + 'trade_license', + 'trade_license_doc', + 'tax_id_number', + 'tax_id_number_doc', + 'taxable_enterprise', + 'taxable_enterprise_doc', 'annual_tax_return', 'annual_tax_return_doc', 'domicile_certificate', @@ -33,6 +33,10 @@ class Company extends Model 'profile_doc', 'cooperation_request', 'cooperation_request_doc', + 'edit_description', + 'edit_status', + 'validated_at', + 'rejection_reason', 'user_id' ]; diff --git a/app/Models/Journalist.php b/app/Models/Journalist.php index b945732..41cf48a 100644 --- a/app/Models/Journalist.php +++ b/app/Models/Journalist.php @@ -3,9 +3,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class Journalist extends Model { + use SoftDeletes; + protected $table = 'journalists'; protected $fillable = [ @@ -14,9 +17,11 @@ class Journalist extends Model 'phone_number', 'press_card', 'press_card_doc', - 'ukw_sertificate', - 'ukw_sertificate_doc', - 'media_id', + 'ukw_certificate', + 'ukw_certificate_doc', + 'edit_description', + 'edit_status', + 'media_id' ]; public function media(){ diff --git a/app/Models/Legacy/OldJournalist.php b/app/Models/Legacy/OldJournalist.php new file mode 100644 index 0000000..eb78672 --- /dev/null +++ b/app/Models/Legacy/OldJournalist.php @@ -0,0 +1,12 @@ +string('name'); $table->string('email'); $table->string('phone_number'); - $table->string('press_card'); + $table->string('press_card')->nullable(); $table->string('press_card_doc')->nullable(); - $table->string('ukw_sertificate'); - $table->string('ukw_sertificate_doc')->nullable(); + $table->string('ukw_certificate')->nullable(); + $table->string('ukw_certificate_doc')->nullable(); + $table->text('edit_description')->nullable(); + $table->enum('edit_status', ['0', '1', '2', '3'])->default('0'); $table->unsignedBigInteger('media_id'); $table->foreign('media_id')->references('id')->on('media'); $table->timestamps(); + $table->softDeletes(); }); } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index ea1ecd9..30d1909 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -17,6 +17,7 @@ public function run(): void $this->call(UserSeeder::class); $this->call(CompanySeeder::class); $this->call(MediaSeeder::class); + $this->call(JournalistSeeder::class); $this->call(ClassificationSeeder::class); $this->call(SubClassificationSeeder::class); $this->call(GovernmentAgencySeeder::class); diff --git a/database/seeders/JournalistSeeder.php b/database/seeders/JournalistSeeder.php index 8b4aa61..8445e73 100644 --- a/database/seeders/JournalistSeeder.php +++ b/database/seeders/JournalistSeeder.php @@ -2,6 +2,8 @@ namespace Database\Seeders; +use App\Models\Journalist; +use App\Models\Legacy\OldJournalist; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; @@ -12,6 +14,25 @@ class JournalistSeeder extends Seeder */ public function run(): void { - // + $legacyJournalists = OldJournalist::all(); + + foreach($legacyJournalists as $legacyJournalist){ + Journalist::create([ + 'id' => $legacyJournalist->id, + 'name' => $legacyJournalist->name, + 'email' => $legacyJournalist->email, + 'phone_number' => $legacyJournalist->phone, + 'press_card' => $legacyJournalist->press_card, + 'press_card_doc' => $legacyJournalist->doc_of_press_card, + 'ukw_certificate' => $legacyJournalist->certificate, + 'ukw_certificate_doc' => $legacyJournalist->doc_of_certificate, + 'edit_description' => $legacyJournalist->description_edit, + 'edit_status' => $legacyJournalist->status_edit, + 'created_at' => $legacyJournalist->created_at, + 'updated_at' => $legacyJournalist->updated_at, + 'deleted_at' => $legacyJournalist->deleted_at, + 'media_id' => $legacyJournalist->media, + ]); + } } } diff --git a/resources/views/dashboard/journalists/index.blade.php b/resources/views/dashboard/journalists/index.blade.php new file mode 100644 index 0000000..731fd33 --- /dev/null +++ b/resources/views/dashboard/journalists/index.blade.php @@ -0,0 +1,65 @@ +@include('partials.dashboard.head') +@include('partials.dashboard.sidebar', ['page' => 'journalists']) +@include('partials.dashboard.header') + +Basic info, like your name and address, that you use on Nio Platform.
+