ResourceUnitWidget::getUnitOptions()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 49

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 49
ccs 0
cts 47
cp 0
rs 9.1127
c 0
b 0
f 0
cc 2
nc 2
nop 0
crap 6
1
<?php
2
/**
3
 * Finance module for HiPanel
4
 *
5
 * @link      https://github.com/hiqdev/hipanel-module-finance
6
 * @package   hipanel-module-finance
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2015-2019, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hipanel\modules\finance\widgets;
12
13
use Yii;
14
use yii\base\Widget;
15
16
final class ResourceUnitWidget extends Widget
17
{
18
    /**
19
     * @var ActiveField
20
     */
21
    public $activeField;
22
23
    /** @var ServerResource */
24
    public $resource;
25
26
    public function run()
27
    {
28
        echo $this->activeField->dropDownList($this->getUnitOptions());
29
    }
30
31
    protected function getUnitOptions()
32
    {
33
        $unitGroup = [
34
            'speed' => [
35
                'bps' => Yii::t('hipanel.finance.units', 'bps'),
36
                'kbps' => Yii::t('hipanel.finance.units', 'kbps'),
37
                'mbps' => Yii::t('hipanel.finance.units', 'Mbps'),
38
                'gbps' => Yii::t('hipanel.finance.units', 'Gbps'),
39
                'tbps' => Yii::t('hipanel.finance.units', 'Tbps'),
40
            ],
41
            'size' => [
42
                'mb' => Yii::t('hipanel.finance.units', 'MB'),
43
                'gb' => Yii::t('hipanel.finance.units', 'GB'),
44
                'tb' => Yii::t('hipanel.finance.units', 'TB'),
45
            ],
46
            'time' => [
47
                'hour' => Yii::t('hipanel.finance.units', 'Hours'),
48
                'min' => Yii::t('hipanel.finance.units', 'Minutes'),
49
            ],
50
            'items' => [
51
                'items' => Yii::t('hipanel.finance.units', 'Items'),
52
                'units' => Yii::t('hipanel.finance.units', 'Units'),
53
                'files' => Yii::t('hipanel.finance.units', 'Files'),
54
            ],
55
        ];
56
57
        $resource = [
58
            'monthly' => $unitGroup['items'],
59
            'support_time' => $unitGroup['time'],
60
            'ip_num' => $unitGroup['items'],
61
            'mail_num' => $unitGroup['items'],
62
            'ssd_files' => $unitGroup['items'],
63
            'sata_files' => $unitGroup['items'],
64
            'domain_num' => $unitGroup['items'],
65
            'db_num' => $unitGroup['items'],
66
            'server_traf_max' => $unitGroup['size'],
67
            'backup_du' => $unitGroup['size'],
68
            'server_du' => $unitGroup['size'],
69
            'mail_du' => $unitGroup['size'],
70
            'account_du' => $unitGroup['size'],
71
            'backup_traf' => $unitGroup['size'],
72
            'domain_traf' => $unitGroup['size'],
73
            'ip_traf_max' => $unitGroup['size'],
74
            'account_traf' => $unitGroup['size'],
75
            'server_traf95_max' => $unitGroup['speed'],
76
        ];
77
78
        return isset($resource[$this->resource->type]) ? $resource[$this->resource->type] : [];
79
    }
80
}
81