Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Passed
Pull Request — main (#5043)
by
unknown
19:08 queued 04:25
created

Tabs::disableHorizontalTabs()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Backpack\CRUD\app\Library\CrudPanel\Traits;
4
5
trait Tabs
6
{
7
    public function enableTabs()
8
    {
9
        $this->setOperationSetting('tabsEnabled', true);
0 ignored issues
show
Bug introduced by
It seems like setOperationSetting() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

9
        $this->/** @scrutinizer ignore-call */ 
10
               setOperationSetting('tabsEnabled', true);
Loading history...
10
        $this->setOperationSetting('tabsType', config('backpack.crud.operations.'.$this->getCurrentOperation().'.tabsType', 'horizontal'));
0 ignored issues
show
Bug introduced by
It seems like getCurrentOperation() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

10
        $this->setOperationSetting('tabsType', config('backpack.crud.operations.'.$this->/** @scrutinizer ignore-call */ getCurrentOperation().'.tabsType', 'horizontal'));
Loading history...
11
12
        return $this->tabsEnabled();
13
    }
14
15
    public function disableTabs()
16
    {
17
        $this->setOperationSetting('tabsEnabled', false);
18
19
        return $this->tabsEnabled();
20
    }
21
22
    /**
23
     * @return bool
24
     */
25
    public function tabsEnabled()
26
    {
27
        return $this->getOperationSetting('tabsEnabled');
0 ignored issues
show
Bug introduced by
It seems like getOperationSetting() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

27
        return $this->/** @scrutinizer ignore-call */ getOperationSetting('tabsEnabled');
Loading history...
28
    }
29
30
    /**
31
     * @return bool
32
     */
33
    public function tabsDisabled()
34
    {
35
        return ! $this->tabsEnabled();
36
    }
37
38
    public function setTabsType($type)
39
    {
40
        $this->enableTabs();
41
        $this->setOperationSetting('tabsType', $type);
42
43
        return $this->getOperationSetting('tabsType');
44
    }
45
46
    /**
47
     * @return string
48
     */
49
    public function getTabsType()
50
    {
51
        return $this->getOperationSetting('tabsType');
52
    }
53
54
    public function enableVerticalTabs()
55
    {
56
        return $this->setTabsType('vertical');
57
    }
58
59
    public function disableVerticalTabs()
60
    {
61
        return $this->setTabsType('horizontal');
62
    }
63
64
    public function enableHorizontalTabs()
65
    {
66
        return $this->setTabsType('horizontal');
67
    }
68
69
    public function disableHorizontalTabs()
70
    {
71
        return $this->setTabsType('vertical');
72
    }
73
74
    /**
75
     * @param  string  $label
76
     * @return bool
77
     */
78
    public function tabExists($label)
79
    {
80
        $tabs = $this->getTabs();
81
82
        return in_array($label, $tabs);
83
    }
84
85
    /**
86
     * @return bool|string
87
     */
88
    public function getLastTab()
89
    {
90
        $tabs = $this->getTabs();
91
92
        if (count($tabs)) {
93
            return last($tabs);
94
        }
95
96
        return false;
97
    }
98
99
    /**
100
     * @param $label
101
     * @return bool
102
     */
103
    public function isLastTab($label)
104
    {
105
        return $this->getLastTab() == $label;
106
    }
107
108
    /**
109
     * @return \Illuminate\Support\Collection
110
     */
111
    public function getFieldsOrColumnsWithoutATab()
112
    {
113
        $all_fields = $this->getCurrentFieldsOrColumns();
114
115
        $fields_without_a_tab = collect($all_fields)->filter(function ($value) {
0 ignored issues
show
Bug introduced by
$all_fields of type array is incompatible with the type Illuminate\Contracts\Support\Arrayable expected by parameter $value of collect(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

115
        $fields_without_a_tab = collect(/** @scrutinizer ignore-type */ $all_fields)->filter(function ($value) {
Loading history...
116
            return ! isset($value['tab']);
117
        });
118
119
        return $fields_without_a_tab;
120
    }
121
122
    /**
123
     * @param $label
124
     * @return array|\Illuminate\Support\Collection
125
     */
126
    public function getTabFieldsOrColumns($label)
127
    {
128
        if ($this->tabExists($label)) {
129
            $all_fields = $this->getCurrentFieldsOrColumns();
130
131
            $fields_for_current_tab = collect($all_fields)->filter(function ($value) use ($label) {
0 ignored issues
show
Bug introduced by
$all_fields of type array is incompatible with the type Illuminate\Contracts\Support\Arrayable expected by parameter $value of collect(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

131
            $fields_for_current_tab = collect(/** @scrutinizer ignore-type */ $all_fields)->filter(function ($value) use ($label) {
Loading history...
132
                return isset($value['tab']) && $value['tab'] == $label;
133
            });
134
135
            return $fields_for_current_tab;
136
        }
137
138
        return [];
139
    }
140
141
    /**
142
     * @return array
143
     */
144
    public function getTabs()
145
    {
146
        $tabs = [];
147
148
        collect($this->getCurrentFieldsOrColumns())
0 ignored issues
show
Bug introduced by
$this->getCurrentFieldsOrColumns() of type array is incompatible with the type Illuminate\Contracts\Support\Arrayable expected by parameter $value of collect(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

148
        collect(/** @scrutinizer ignore-type */ $this->getCurrentFieldsOrColumns())
Loading history...
149
            ->filter(function ($value) {
150
                return isset($value['tab']);
151
            })
152
            ->each(function ($value) use (&$tabs) {
153
                if (! in_array($value['tab'], $tabs)) {
154
                    $tabs[] = $value['tab'];
155
                }
156
            });
157
158
        return $tabs;
159
    }
160
161
    public function getCurrentFieldsOrColumns(): array
162
    {
163
        return $this->getCurrentOperation() === 'show'
164
            ? $this->getCurrentColumns()
0 ignored issues
show
Bug introduced by
The method getCurrentColumns() does not exist on Backpack\CRUD\app\Library\CrudPanel\Traits\Tabs. Did you maybe mean getCurrentFieldsOrColumns()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

164
            ? $this->/** @scrutinizer ignore-call */ getCurrentColumns()

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
165
            : $this->getCurrentFields();
0 ignored issues
show
Bug introduced by
The method getCurrentFields() does not exist on Backpack\CRUD\app\Library\CrudPanel\Traits\Tabs. Did you maybe mean getCurrentFieldsOrColumns()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

165
            : $this->/** @scrutinizer ignore-call */ getCurrentFields();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
166
    }
167
}
168