MOON
Server: Apache
System: Linux 101-53-147-124.cprapid.com 4.18.0-553.121.1.el8_10.x86_64 #1 SMP Thu Apr 30 09:06:34 EDT 2026 x86_64
User: clientsoftwares (1005)
PHP: 8.2.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
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;
    }
}