GradeTypeCrudController   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 93
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 42
c 1
b 0
f 0
dl 0
loc 93
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setup() 0 30 1
A setupUpdateOperation() 0 4 1
A fetchCategory() 0 3 1
A setupCreateOperation() 0 40 1
1
<?php
2
3
namespace App\Http\Controllers\Admin;
4
5
use App\Http\Requests\GradeTypeRequest;
6
use App\Models\GradeType;
7
use App\Models\GradeTypeCategory;
8
use Backpack\CRUD\app\Http\Controllers\CrudController;
9
use Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
10
use Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
11
use Backpack\CRUD\app\Http\Controllers\Operations\FetchOperation;
12
use Backpack\CRUD\app\Http\Controllers\Operations\ListOperation;
13
use Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
14
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;
15
16
class GradeTypeCrudController extends CrudController
17
{
18
    use ListOperation;
0 ignored issues
show
introduced by
The trait Backpack\CRUD\app\Http\C...perations\ListOperation requires some properties which are not provided by App\Http\Controllers\Admin\GradeTypeCrudController: $model, $query, $entity_name_plural
Loading history...
19
    use CreateOperation;
0 ignored issues
show
Bug introduced by
The trait Backpack\CRUD\app\Http\C...rations\CreateOperation requires the property $entity_name which is not provided by App\Http\Controllers\Admin\GradeTypeCrudController.
Loading history...
20
    use UpdateOperation;
0 ignored issues
show
introduced by
The trait Backpack\CRUD\app\Http\C...rations\UpdateOperation requires some properties which are not provided by App\Http\Controllers\Admin\GradeTypeCrudController: $entity_name, $model
Loading history...
21
    use DeleteOperation;
22
    use FetchOperation;
0 ignored issues
show
Bug introduced by
The trait Backpack\CRUD\app\Http\C...erations\FetchOperation requires the property $wheres which is not provided by App\Http\Controllers\Admin\GradeTypeCrudController.
Loading history...
23
24
    public function setup()
25
    {
26
        /*
27
        |--------------------------------------------------------------------------
28
        | CrudPanel Basic Information
29
        |--------------------------------------------------------------------------
30
        */
31
        CRUD::setModel(GradeType::class);
32
        CRUD::setRoute(config('backpack.base.route_prefix').'/gradetype');
33
        CRUD::setEntityNameStrings(__('grade type'), __('grade types'));
34
35
        /*
36
        |--------------------------------------------------------------------------
37
        | CrudPanel Configuration
38
        |--------------------------------------------------------------------------
39
        */
40
41
        CRUD::addColumns([
42
            ['name' => 'name',
43
                'label' => 'Name', ],
44
            ['name' => 'total',
45
                'label' => 'Total', ],
46
            [
47
                // 1-n relationship
48
                'label' => 'Category',
49
                'type' => 'select',
50
                'name' => 'grade_type_category_id',
51
                'entity' => 'category',
52
                'attribute' => 'name',
53
                'model' => GradeTypeCategory::class,
54
            ],
55
        ]);
56
    }
57
58
    protected function setupCreateOperation()
59
    {
60
        CRUD::addFields([
61
            [
62
                'name' => 'name',
63
                'label' => 'Name',
64
                'type' => 'text',
65
            ],
66
67
            [
68
                'name' => 'total',
69
                'label' => 'Total',
70
                'type' => 'text',
71
            ],
72
73
            [
74
                'label' => 'Category',
75
                'type' => 'relationship',
76
                'name' => 'category',
77
                'ajax' => true,
78
                'inline_create' => [ // specify the entity in singular
79
                    'entity' => 'gradetypecategory',
80
                    // the entity in singular
81
                    // OPTIONALS
82
                    'force_select' => true,
83
                    // should the inline-created entry be immediately selected?
84
                    'modal_class' => 'modal-dialog modal-xl',
85
                    // use modal-sm, modal-lg to change width
86
                    'modal_route' => route('gradetypecategory-inline-create'),
87
                    // InlineCreate::getInlineCreateModal()
88
                    'create_route' => route('gradetypecategory-inline-create-save'),
89
                    // InlineCreate::storeInlineCreate()
90
                ],
91
            ],
92
        ]);
93
94
        // add asterisk for fields that are required in GradeTypeRequest
95
        CRUD::setRequiredFields(GradeTypeRequest::class);
96
97
        CRUD::setValidation(GradeTypeRequest::class);
98
    }
99
100
    protected function setupUpdateOperation()
101
    {
102
        $this->setupCreateOperation();
103
        CRUD::setRequiredFields(GradeTypeRequest::class);
104
    }
105
106
    protected function fetchCategory()
107
    {
108
        return $this->fetch(GradeTypeCategory::class);
109
    }
110
}
111