Skip to content

Commit e85e65a

Browse files
committed
added some panel structure
1 parent b997db3 commit e85e65a

File tree

16 files changed

+249
-13
lines changed

16 files changed

+249
-13
lines changed

src/Panel.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace cornernote\dashboard;
4+
5+
use cornernote\dashboard\models\DashboardPanel;
6+
use Yii;
7+
use yii\base\Component;
8+
9+
/**
10+
* Panel
11+
* @package cornernote\dashboard
12+
*/
13+
class Panel extends Component
14+
{
15+
/**
16+
* @var string panel unique identifier.
17+
*/
18+
public $id;
19+
20+
/**
21+
* @var DashboardPanel
22+
*/
23+
public $dashboardPanel;
24+
25+
/**
26+
* @return string
27+
*/
28+
public function renderView()
29+
{
30+
return '';
31+
}
32+
33+
/**
34+
* @return string
35+
*/
36+
public function renderUpdate()
37+
{
38+
return '';
39+
}
40+
41+
}

src/migrations/m150705_000002_create_dashboard_panel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public function up()
1111
$this->createTable(self::TABLE, [
1212
'id' => Schema::TYPE_PK,
1313
'name' => Schema::TYPE_STRING . ' NOT NULL',
14-
'panel' => Schema::TYPE_STRING . ' NOT NULL',
14+
'panel_class' => Schema::TYPE_STRING . ' NOT NULL',
1515
'options' => Schema::TYPE_TEXT,
1616
'dashboard_id' => Schema::TYPE_INTEGER . ' NOT NULL',
1717
'position' => Schema::TYPE_STRING . ' NOT NULL',

src/models/Dashboard.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,12 @@ public static function find()
6767
return new DashboardQuery(get_called_class());
6868
}
6969

70+
/**
71+
* @return \yii\db\ActiveQuery
72+
*/
73+
public function getDashboardPanels()
74+
{
75+
return $this->hasMany(DashboardPanel::className(), ['dashboard_id' => 'id']);
76+
}
77+
7078
}

src/models/DashboardPanel.php

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace cornernote\dashboard\models;
44

55
use cornernote\dashboard\models\query\DashboardPanelQuery;
6+
use cornernote\dashboard\Panel;
67
use \Yii;
78
use \yii\db\ActiveRecord;
89

@@ -14,12 +15,18 @@
1415
* @property string $position
1516
* @property string $name
1617
* @property string $options
17-
* @property string $panel
18+
* @property string $panel_class
1819
* @property integer $enabled
1920
* @property integer $sort
21+
* @property Panel $panel
2022
*/
2123
class DashboardPanel extends ActiveRecord
2224
{
25+
/**
26+
* @var
27+
*/
28+
private $_panel;
29+
2330
/**
2431
* @inheritdoc
2532
*/
@@ -34,10 +41,10 @@ public static function tableName()
3441
public function rules()
3542
{
3643
return [
37-
[['dashboard_id', 'position', 'name', 'panel', 'enabled', 'sort'], 'required'],
44+
[['dashboard_id', 'position', 'name', 'panel_class', 'enabled', 'sort'], 'required'],
3845
[['dashboard_id', 'enabled', 'sort'], 'integer'],
3946
[['options'], 'string'],
40-
[['position', 'name', 'panel'], 'string', 'max' => 255]
47+
[['position', 'name', 'panel_class'], 'string', 'max' => 255]
4148
];
4249
}
4350

@@ -52,7 +59,7 @@ public function attributeLabels()
5259
'position' => Yii::t('dashboard', 'Position'),
5360
'name' => Yii::t('dashboard', 'Name'),
5461
'options' => Yii::t('dashboard', 'Options'),
55-
'panel' => Yii::t('dashboard', 'Panel'),
62+
'panel_class' => Yii::t('dashboard', 'Panel Class'),
5663
'enabled' => Yii::t('dashboard', 'Enabled'),
5764
'sort' => Yii::t('dashboard', 'Sort'),
5865
];
@@ -68,4 +75,27 @@ public static function find()
6875
return new DashboardPanelQuery(get_called_class());
6976
}
7077

78+
/**
79+
* @return \yii\db\ActiveQuery
80+
*/
81+
public function getDashboardPanels()
82+
{
83+
return $this->hasOne(Dashboard::className(), ['id' => 'dashboard_id']);
84+
}
85+
86+
/**
87+
* @return object
88+
*/
89+
public function getPanel()
90+
{
91+
if (!$this->_panel) {
92+
$config = json_decode($this->options, true);
93+
$config['dashboardPanel'] = $this;
94+
$config['class'] = $this->panel_class;
95+
$config['id'] = 'dashboard-panel-' . $this->id;
96+
$this->_panel = Yii::createObject($config);
97+
}
98+
return $this->_panel;
99+
}
100+
71101
}

src/models/search/DashboardPanelSearch.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function rules()
2929
{
3030
return [
3131
[['id', 'dashboard_id', 'enabled', 'sort'], 'integer'],
32-
[['position', 'name', 'panel'], 'safe'],
32+
[['position', 'name', 'panel_class'], 'safe'],
3333
];
3434
}
3535

@@ -64,7 +64,7 @@ public function search($params)
6464

6565
$query->andFilterWhere(['like', 'position', $this->position])
6666
->andFilterWhere(['like', 'name', $this->name])
67-
->andFilterWhere(['like', 'panel', $this->panel]);
67+
->andFilterWhere(['like', 'panel_class', $this->panel_class]);
6868

6969
return $dataProvider;
7070
}

src/panels/WelcomePanel.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
namespace cornernote\dashboard\panels;
4+
5+
use cornernote\dashboard\Panel;
6+
use Yii;
7+
8+
/**
9+
* WelcomePanel
10+
* @package cornernote\dashboard\panels
11+
*/
12+
class WelcomePanel extends Panel
13+
{
14+
15+
/**
16+
* @var string
17+
*/
18+
public $message;
19+
20+
/**
21+
* @inheritdoc
22+
*/
23+
public function renderView()
24+
{
25+
return \Yii::$app->view->render('../panels/welcome/view', [
26+
'panel' => $this,
27+
]);
28+
}
29+
30+
/**
31+
* @inheritdoc
32+
*/
33+
public function renderUpdate()
34+
{
35+
return \Yii::$app->view->render('../panels/welcome/update', [
36+
'panel' => $this,
37+
]);
38+
}
39+
40+
}

src/views/dashboard-panel/_form.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232

3333
<?= $form->field($model, 'sort')->textInput() ?>
3434

35-
<?= $form->field($model, 'panel')->textInput(['maxlength' => true]) ?>
35+
<?= $form->field($model, 'panel_class')->textInput(['maxlength' => true]) ?>
3636

3737
<?= $form->field($model, 'options')->textarea(['rows' => 6]) ?>
3838

39-
<?= $form->field($model, 'enabled')->textInput() ?>
39+
<?= $form->field($model, 'enabled')->checkbox() ?>
4040

4141
<?= Html::submitButton('<span class="fa fa-check"></span> ' . ($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Save')), [
4242
'id' => 'save-' . $model->formName(),

src/views/dashboard-panel/_search.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<?= $form->field($model, 'dashboard_id') ?>
4444
<?= $form->field($model, 'position') ?>
4545
<?= $form->field($model, 'sort') ?>
46-
<?= $form->field($model, 'panel') ?>
46+
<?= $form->field($model, 'panel_class') ?>
4747
<?= $form->field($model, 'options') ?>
4848
<?= $form->field($model, 'enabled') ?>
4949
</div>

src/views/dashboard-panel/index.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
'dashboard_id',
5858
'position',
5959
'sort',
60-
'panel',
60+
'panel_class',
6161
'options:ntext',
6262
'enabled',
6363
],

src/views/dashboard-panel/view.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
'dashboard_id',
2424
'position',
2525
'sort',
26-
'panel',
26+
'panel_class',
2727
'options:ntext',
2828
'enabled',
2929
],

0 commit comments

Comments
 (0)