File: /home/clientsoftwares/www/saagsystem.clientsoftwares.com/app/Admin/Controllers/AddonController.php
<?php
namespace App\Admin\Controllers;
use App\Models\Addon;
use App\Models\Status;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class AddonController extends AdminController
{
/**
* Title for current resource.
*
* @var string
*/
protected $title = 'Addons';
/**
* Make a grid builder.
*
* @return Grid
*/
public function grid()
{
$grid = new Grid(new Addon());
$grid->column('id', __('Id'));
$grid->column('addon_name', __('Addon Name'));
$grid->column('addon_name_ar', __('Addon Name Arabic'));
$grid->column('price', __('Price'));
$grid->column('added_by', __('Added By'))->display(function($admin){
return DB::table('admin_users')->where('id',$admin)->value('name');
});
$grid->column('status', __('Status'))->display(function($status){
$status_name = Status::where('id',$status)->value('status_name');
if ($status == 1) {
return "<span class='label label-success'>$status_name</span>";
} else {
return "<span class='label label-danger'>$status_name</span>";
}
});
$grid->disableExport();
$grid->actions(function ($actions) {
$actions->disableView();
});
$grid->filter(function ($filter) {
//Get All status
$statuses = Status::pluck('status_name', 'id');
$filter->like('addon_name', 'Addon Name');
$filter->equal('status', 'Status')->select($statuses);
});
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(Addon::findOrFail($id));
$show->field('id', __('Id'));
$show->field('addon_name', __('Addon Name'));
$show->field('addon_name_ar', __('Addon Name Arabic'));
$show->field('price', __('Price'));
$show->field('added_by', __('Added By'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new Addon());
$statuses = Status::pluck('status_name', 'id');
$form->text('addon_name', __('Addon Name'))->rules(function ($form) {
return 'required|max:100';
});
$form->text('addon_name_ar', __('Addon Name Arabic'))->rules(function ($form) {
return 'required|max:100';
});
$form->decimal('price', __('Price'))->rules(function ($form) {
return 'required|integer|min:0';
});
$form->select('status', __('Status'))->options($statuses)->default(1)->rules(function ($form) {
return 'required';
});
$form->text('added_by', __('Added By'))->readonly()->default(Auth::user()->id);
$form->tools(function (Form\Tools $tools) {
$tools->disableDelete();
$tools->disableView();
});
$form->footer(function ($footer) {
$footer->disableViewCheck();
$footer->disableEditingCheck();
$footer->disableCreatingCheck();
});
return $form;
}
}