Completed
Push — master ( 2be944...2505fe )
by Elf
14:10 queued 12:32
created

Builder   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 2
dl 0
loc 69
ccs 0
cts 26
cp 0
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setTableId() 0 4 1
A addTableClass() 0 6 1
A removeTableClass() 0 6 1
A getTableClasses() 0 4 1
A stripedTable() 0 4 1
A hoveredTable() 0 4 1
1
<?php
2
3
namespace ElfSundae\Laravel\DataTables\Html;
4
5
use Illuminate\Support\Arr;
6
use Illuminate\Support\Str;
7
use Yajra\DataTables\Html\Builder as BaseBuilder;
8
9
class Builder extends BaseBuilder
10
{
11
    /**
12
     * Set table "id" attribute.
13
     *
14
     * @param  string  $id
15
     * @return $this
16
     */
17
    public function setTableId($id)
18
    {
19
        return $this->setTableAttribute('id', $id);
20
    }
21
22
    /**
23
     * Add classes to table "class" attribute.
24
     *
25
     * @param  string  ...$classes
26
     * @return $this
27
     */
28
    public function addTableClass(...$classes)
29
    {
30
        $classes = array_merge($this->getTableClasses(), $classes);
31
32
        return $this->setTableAttribute('class', implode(' ', $classes));
33
    }
34
35
    /**
36
     * Remove classes from table "class" attribute.
37
     *
38
     * @param  string  ...$classes
39
     * @return $this
40
     */
41
    public function removeTableClass(...$classes)
42
    {
43
        $classes = array_diff($this->getTableClasses(), $classes);
44
45
        return $this->setTableAttribute('class', implode(' ', $classes));
46
    }
47
48
    /**
49
     * Get table "class" attribute as array.
50
     *
51
     * @return array
52
     */
53
    public function getTableClasses()
54
    {
55
        return array_filter(explode(' ', Arr::get($this->getTableAttributes(), 'class', '')));
56
    }
57
58
    /**
59
     * Change table style to striped.
60
     *
61
     * @return $this
62
     */
63
    public function stripedTable()
64
    {
65
        return $this->removeTableClass('table-hover')->addTableClass('table-striped');
66
    }
67
68
    /**
69
     * Change table style to hovered.
70
     *
71
     * @return $this
72
     */
73
    public function hoveredTable()
74
    {
75
        return $this->removeTableClass('table-striped')->addTableClass('table-hover');
76
    }
77
}
78