|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
namespace hipanel\modules\server\widgets; |
|
4
|
|
|
|
|
5
|
|
|
use dosamigos\chartjs\ChartJs; |
|
6
|
|
|
use Yii; |
|
7
|
|
|
use yii\helpers\Html; |
|
8
|
|
|
|
|
9
|
|
|
class ResourceConsumption extends TrafficConsumption |
|
10
|
|
|
{ |
|
11
|
|
|
public static function types() |
|
12
|
|
|
{ |
|
13
|
|
|
return [ |
|
14
|
|
|
'ip_num' => Yii::t('hipanel:server', 'Number of IP addresses'), |
|
15
|
|
|
'server_du' => Yii::t('hipanel:server', 'CDN disk usage'), |
|
16
|
|
|
'server_files' => Yii::t('hipanel:server', 'CDN files count'), |
|
17
|
|
|
'backup_du' => Yii::t('hipanel:server', 'Backup disk usage'), |
|
18
|
|
|
'backup_traf' => Yii::t('hipanel:server', 'Backup traffic'), |
|
19
|
|
|
'server_sata' => Yii::t('hipanel:server', 'CDN cache SATA'), |
|
20
|
|
|
'server_ssd' => Yii::t('hipanel:server', 'CDN cache SSD'), |
|
21
|
|
|
]; |
|
22
|
|
|
} |
|
23
|
|
|
|
|
24
|
|
|
public function init() |
|
25
|
|
|
{ |
|
26
|
|
|
foreach ($this->data as $k => $item) { |
|
27
|
|
|
if (in_array($k, ['server_du', 'server_files', 'backup_du', 'backup_traf', 'server_sata', 'server_ssd'])) { |
|
28
|
|
|
$this->data[$k] = array_map(function ($n) { |
|
29
|
|
|
return (int)Yii::$app->formatter->asShortSize($n, 2); |
|
30
|
|
|
}, $item); |
|
31
|
|
|
} |
|
32
|
|
|
} |
|
33
|
|
|
|
|
34
|
|
|
parent::init(); |
|
35
|
|
|
|
|
36
|
|
|
$this->emptyMessage = array_merge($this->emptyMessage, [ |
|
37
|
|
|
'ip_num' => Yii::t('hipanel:server', 'IP number history is not available for this server.'), |
|
38
|
|
|
'server_du' => Yii::t('hipanel:server', 'Server usage consumption history is not available for this server.'), |
|
39
|
|
|
'server_files' => Yii::t('hipanel:server', 'Server files consumption history is not available for this server.'), |
|
40
|
|
|
'backup_du' => Yii::t('hipanel:server', 'Backup disk usage consumption history is not available for this server.'), |
|
41
|
|
|
'backup_traf' => Yii::t('hipanel:server', ' consumption history is not available for this server.'), |
|
42
|
|
|
'server_sata' => Yii::t('hipanel:server', ' consumption history is not available for this server.'), |
|
43
|
|
|
'server_ssd' => Yii::t('hipanel:server', ' consumption history is not available for this server.'), |
|
44
|
|
|
]); |
|
45
|
|
|
|
|
46
|
|
|
$this->legends = array_merge($this->legends, [ |
|
47
|
|
|
'ip_num' => Yii::t('hipanel:server', 'Total of IP, PC'), |
|
48
|
|
|
'server_du' => Yii::t('hipanel:server', 'Total incoming traffic, Gb'), |
|
49
|
|
|
'server_files' => Yii::t('hipanel:server', 'Server files, Gb'), |
|
50
|
|
|
'backup_du' => Yii::t('hipanel:server', 'Backup disk usage, Gb'), |
|
51
|
|
|
'backup_traf' => Yii::t('hipanel:server', 'Buckup traffic, Gb'), |
|
52
|
|
|
'server_sata' => Yii::t('hipanel:server', 'Server SATA, Gb'), |
|
53
|
|
|
'server_ssd' => Yii::t('hipanel:server', 'Server SSD, Gb'), |
|
54
|
|
|
]); |
|
55
|
|
|
} |
|
56
|
|
|
|
|
57
|
|
|
protected function renderCanvasData() |
|
58
|
|
|
{ |
|
59
|
|
|
return Html::tag('div', ChartJs::widget([ |
|
60
|
|
|
'id' => $this->id, |
|
61
|
|
|
'type' => $this->chartType, |
|
62
|
|
|
'data' => [ |
|
63
|
|
|
'labels' => $this->labels, |
|
64
|
|
|
'datasets' => [ |
|
65
|
|
|
[ |
|
66
|
|
|
'label' => $this->legends[$this->consumptionBase], |
|
67
|
|
|
'backgroundColor' => 'rgba(139, 195, 74, 0.5)', |
|
68
|
|
|
'borderColor' => 'rgba(139, 195, 74, 1)', |
|
69
|
|
|
'pointBackgroundColor' => 'rgba(139, 195, 74, 1)', |
|
70
|
|
|
'pointBorderColor' => '#fff', |
|
71
|
|
|
'data' => (array)$this->data[$this->consumptionBase], |
|
72
|
|
|
], |
|
73
|
|
|
], |
|
74
|
|
|
], |
|
75
|
|
|
'clientOptions' => [ |
|
76
|
|
|
'bezierCurve' => false, |
|
77
|
|
|
'responsive' => true, |
|
78
|
|
|
'maintainAspectRatio' => true, |
|
79
|
|
|
], |
|
80
|
|
|
])); |
|
81
|
|
|
} |
|
82
|
|
|
} |
|
83
|
|
|
|