diff --git a/app/Http/Controllers/Admin/CampaignCrudController.php b/app/Http/Controllers/Admin/CampaignCrudController.php
index e82ec0e..bb91c00 100644
--- a/app/Http/Controllers/Admin/CampaignCrudController.php
+++ b/app/Http/Controllers/Admin/CampaignCrudController.php
@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin;
use App\Http\Requests\CampaignRequest;
+use App\Models\Campaign;
use Backpack\CRUD\app\Http\Controllers\CrudController;
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;
@@ -40,6 +41,7 @@ public function setup()
protected function setupListOperation()
{
CRUD::column('partner_id');
+ CRUD::column('verified_at');
CRUD::column('title');
CRUD::column('status');
CRUD::column('fund_target');
@@ -51,6 +53,8 @@ protected function setupListOperation()
CRUD::column('finish_date');
CRUD::column('slug');
+ CRUD::addButtonFromModelFunction('line', 'verify', 'verifyButton', 'end');
+
// CRUD::column('description');
/**
@@ -100,4 +104,19 @@ protected function setupUpdateOperation()
{
$this->setupCreateOperation();
}
+
+ // custom function to verify campaign
+ public function verify(Campaign $campaign)
+ {
+ $campaign->verify();
+
+ return redirect()->back();
+ }
+
+ public function unverify(Campaign $campaign)
+ {
+ $campaign->unverify();
+
+ return redirect()->back();
+ }
}
diff --git a/app/Models/Campaign.php b/app/Models/Campaign.php
index 37f4326..1eb074e 100644
--- a/app/Models/Campaign.php
+++ b/app/Models/Campaign.php
@@ -21,7 +21,8 @@ class Campaign extends Model
'tenor',
'start_date',
'finish_date',
- 'status'
+ 'status',
+ 'verified_at'
];
public function __construct()
@@ -90,4 +91,28 @@ public function getCollectedPerTotalAttribute()
return 'Rp. ' . number_format($this->fundings->sum('fund_nominal'), 0, ',', '.') . " / Rp. " . number_format($this->fund_target, 0, ',', '.');
}
+
+ public function getIsVerifiedAttribute()
+ {
+ return $this->verified_at != null;
+ }
+
+ public function verify()
+ {
+ $this->update(['verified_at' => now()]);
+ }
+
+ public function unverify()
+ {
+ $this->update(['verified_at' => null]);
+ }
+
+ public function verifyButton()
+ {
+ if ($this->is_verified) {
+ return ' Batalkan Verifikasi';
+ }
+
+ return ' Verifikasi';
+ }
}
diff --git a/routes/backpack/custom.php b/routes/backpack/custom.php
index 501e1f5..d177a4b 100644
--- a/routes/backpack/custom.php
+++ b/routes/backpack/custom.php
@@ -24,4 +24,7 @@
Route::get('partner/{partner}/verify', 'PartnerCrudController@verify')->name('partner.verify');
Route::get('partner/{partner}/unverify', 'PartnerCrudController@unverify')->name('partner.unverify');
+
+ Route::get('campaign/{campaign}/verify', 'CampaignCrudController@verify')->name('campaign.verify');
+ Route::get('campaign/{campaign}/unverify', 'CampaignCrudController@unverify')->name('campaign.unverify');
}); // this should be the absolute last line of this file
\ No newline at end of file