-
Notifications
You must be signed in to change notification settings - Fork 3
/
GanttProgressBar.php
75 lines (63 loc) · 1.72 KB
/
GanttProgressBar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
/**
* @package yii2-gantt
* @author Markus Rotter <[email protected]>
* @copyright Copyright © Markus Rotter, 2020
* @version 0.0.2
*/
namespace rottriges\ganttcolumn;
use yii\bootstrap\Progress;
use yii\helpers\Html;
class GanttProgressBar extends \yii\base\Component
{
public $startGap = 0;
public $length = 0;
public $progressBarType = 'primary';
public $progressBarColor;
public function getProgressBar()
{
if ($this->startGap > 0){
return $this->getProgressBarWithStartGap();
}
return $this->getProgressBarWithoutStartGap();
}
protected function getProgressBarWithoutStartGap()
{
return Progress::widget([
'options' => ['class' => 'ro-progress' ],
'barOptions' => [
'class' => 'progress-bar-' . $this->progressBarType,
'style' => 'width:' . $this->length . 'px; ' . $this->getProgressBarColor(),
]
]);
}
protected function getProgressBarWithStartGap()
{
return Progress::widget([
'options' => ['class' => 'ro-progress' ],
'bars' => [
[
'percent' => 0,
'options' => [
'class' => 'progress-bar-empty',
'style' => 'width:' . $this->startGap . 'px;'
]
],
[
'percent' => 0,
'options' => [
'class' => 'progress-bar-' . $this->progressBarType,
'style' => 'width:' . $this->length . 'px; ' . $this->getProgressBarColor(),
]
]
]
]);
}
protected function getProgressBarColor()
{
if(isset($this->progressBarColor) && $this->progressBarColor !== ''){
return 'background-color:' . $this->progressBarColor . ';';
}
}
}
?>