Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 1.6 KB

how-add-more-action-button.md

File metadata and controls

38 lines (29 loc) · 1.6 KB

How To Add More Action Button In Grid Data

Products Table - products

Field Name Description
id int(PK)
created_at timestamp
name varchar(255)
description varchar(255)
status varchar(25) default 'pending'

Open your module controller. Find $this->addaction in cbInit() method.

$this->addaction[] = ['label'=>'Set Active','url'=>CRUDBooster::mainpath('set-status/active/[id]'),'icon'=>'fa fa-check','color'=>'success','showIf'=>"[status] == 'pending'"];
$this->addaction[] = ['label'=>'Set Pending','url'=>CRUDBooster::mainpath('set-status/pending/[id]'),'icon'=>'fa fa-ban','color'=>'warning','showIf'=>"[status] == 'active'", 'confirmation' => true];

It will add Set Active button if a row has status 'pending', and the opposite, it will add Set Pending if a row has status 'active'

In the showIf attribute, you can fill anything condition with any other operator. You can use [field_name] as an alias.

If the confirmation attribute is set to 'true', a confirm dialogue will show before the action takes place.

Then, lets create a method to update the products status. Create a method after cbInit() method.

public function getSetStatus($status,$id) {
   DB::table('products')->where('id',$id)->update(['status'=>$status]);
   
   //This will redirect back and gives a message
   CRUDBooster::redirect($_SERVER['HTTP_REFERER'],"The status product has been updated !","info");
}

What's Next

Table Of Contents