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

Builder::stripedTable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
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