Test Failed
Push — master ( fae1a9...cc5ef8 )
by Terzi
04:02
created

Template::menu()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
1
<?php
2
3
namespace Terranet\Administrator\Services;
4
5
use Terranet\Administrator\Contracts\Module\Navigable;
6
use Terranet\Administrator\Contracts\Services\TemplateProvider;
7
8
class Template implements TemplateProvider
9
{
10
    /**
11
     * Scaffold layout.
12
     *
13
     * @param string $layout
14
     *
15
     * @return string
16
     */
17
    public function layout($layout = 'app')
18
    {
19
        return config('administrator.layouts.'.$layout, 'administrator::layouts.'.$layout);
20
    }
21
22
    /**
23
     * Scaffold index templates.
24
     *
25
     * @param $partial
26
     *
27
     * @return mixed array|string
28
     */
29
    public function index($partial = 'index')
30
    {
31
        $partials = $this->map(
32
            'index',
33
            ['index', 'create', 'export', 'filters', 'scopes', 'header', 'batch', 'row', 'scripts', 'paginator']
34
        );
35
36
        return null === $partial ? $partials : $partials[$partial];
37
    }
38
39
    /**
40
     * Scaffold media templates.
41
     *
42
     * @param $partial
43
     *
44
     * @return mixed array|string
45
     */
46
    public function media($partial = 'index')
47
    {
48
        $partials = $this->map(
49
            'media',
50
            ['index']
51
        );
52
53
        return null === $partial ? $partials : $partials[$partial];
54
    }
55
56
    /**
57
     * Scaffold translations templates.
58
     *
59
     * @param $partial
60
     *
61
     * @return mixed array|string
62
     */
63
    public function translations($partial = 'index')
64
    {
65
        $partials = $this->map(
66
            'translations',
67
            ['index']
68
        );
69
70
        return null === $partial ? $partials : $partials[$partial];
71
    }
72
73
    /**
74
     * Scaffold view templates.
75
     *
76
     * @param $partial
77
     *
78
     * @return mixed array|string
79
     */
80
    public function view($partial = 'index')
81
    {
82
        $partials = $this->map('view', [
83
            'index',
84
            'model',
85
            'create',
86
        ]);
87
88
        return null === $partial ? $partials : $partials[$partial];
89
    }
90
91
    /**
92
     * Scaffold edit templates.
93
     *
94
     * @param $partial
95
     *
96
     * @return mixed array|string
97
     */
98
    public function edit($partial = 'index')
99
    {
100
        $partials = $this->map('edit', ['index', 'actions', 'row', 'scripts', 'create']);
101
102
        return null === $partial ? $partials : $partials[$partial];
103
    }
104
105
    public function menu($partial = 'sidebar')
106
    {
107
        $partials = $this->map('menus', [Navigable::MENU_SIDEBAR, Navigable::MENU_TOOLS]);
108
109
        return null === $partial ? $partials : $partials[$partial];
110
    }
111
112
    public function partials($partial = 'messages')
113
    {
114
        $partials = $this->map('partials', ['messages', 'breadcrumbs']);
115
116
        return null === $partial ? $partials : $partials[$partial];
117
    }
118
119
    public function scripts($partial = null)
120
    {
121
        $partials = $this->map('scripts', ['listeners', 'editors']);
122
123
        return null === $partial ? $partials : $partials[$partial];
124
    }
125
126
    public function auth($partial = 'login')
127
    {
128
        $partials = $this->map('auth', ['login']);
129
130
        return null === $partial ? $partials : $partials[$partial];
131
    }
132
133
    public function dashboard($partial = null)
134
    {
135
        $partials = $this->map('dashboard', ['database', 'members', 'google_analytics']);
136
137
        return null === $partial ? $partials : $partials[$partial];
138
    }
139
140
    /**
141
     * @param $namespace
142
     * @param array $views
143
     *
144
     * @return array
145
     */
146
    protected function map($namespace, array $views = [])
147
    {
148
        return array_merge(
149
            ['index' => "administrator::{$namespace}"],
150
            array_build($views, function ($key, $view) use ($namespace) {
151
                return [$view, "administrator::{$namespace}.{$view}"];
152
            })
153
        );
154
    }
155
}
156