Commit 987e0374 authored by Tobias Munk's avatar Tobias Munk

updated widget container UI

parent 71f6f54d
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
*/ */
namespace hrzg\widget\widgets; namespace hrzg\widget\widgets;
use hrzg\widget\models\crud\WidgetContent;
use hrzg\widget\assets\WidgetAsset; use hrzg\widget\assets\WidgetAsset;
use hrzg\widget\models\crud\WidgetContent;
use rmrevin\yii\fontawesome\AssetBundle; use rmrevin\yii\fontawesome\AssetBundle;
use rmrevin\yii\fontawesome\component\Icon; use rmrevin\yii\fontawesome\component\Icon;
use rmrevin\yii\fontawesome\FA; use rmrevin\yii\fontawesome\FA;
...@@ -18,6 +18,7 @@ use yii\base\Event; ...@@ -18,6 +18,7 @@ use yii\base\Event;
use yii\base\Widget; use yii\base\Widget;
use yii\helpers\Html; use yii\helpers\Html;
use yii\helpers\Json; use yii\helpers\Json;
use yii\helpers\Url;
class WidgetContainer extends Widget class WidgetContainer extends Widget
{ {
...@@ -31,19 +32,56 @@ class WidgetContainer extends Widget ...@@ -31,19 +32,56 @@ class WidgetContainer extends Widget
public function run() public function run()
{ {
Url::remember('',$this->getRoute());
return $this->renderWidgets(); return $this->renderWidgets();
} }
public function getMenuItems()
{
// todo, register FA-asset from asset bundle
AssetBundle::register($this->view);
return [
[
'label' => FA::icon(FA::_PLUS_SQUARE).' <b>'.$this->id.'</b> <span class="label label-info">widget</span>',
'url' => [
'/widgets/crud/widget/create',
'WidgetContent' => [
'route' => $this->getRoute(),
'container_id' => $this->id,
'request_param' => \Yii::$app->request->get('id'),
'access_domain' => \Yii::$app->language,
],
],
],
[
'label' => FA::icon(FA::_EDIT).' <b>'.$this->id.'</b> <span class="label label-info">widget</span>',
'url' => [
'/widgets/crud/widget/index',
'WidgetContent' => [
'route' => $this->getRoute(),
'container_id' => $this->id,
'request_param' => \Yii::$app->request->get('id'),
'access_domain' => \Yii::$app->language,
],
],
],
];
}
private function queryWidgets() private function queryWidgets()
{ {
\Yii::trace(\Yii::$app->requestedRoute, __METHOD__); \Yii::trace(\Yii::$app->requestedRoute, __METHOD__);
$models = WidgetContent::find() $models = WidgetContent::find()
->orderBy('rank') ->orderBy('rank ASC')
->where( ->andFilterWhere(
[ [
'container_id' => $this->id,
'route' => \Yii::$app->requestedRoute,
'request_param' => \Yii::$app->request->get('id'), 'request_param' => \Yii::$app->request->get('id'),
]
)
->andWhere(
[
'container_id' => $this->id,
'route' => $this->getRoute(),
'access_domain' => \Yii::$app->language, 'access_domain' => \Yii::$app->language,
]) ])
->all(); ->all();
...@@ -51,9 +89,13 @@ class WidgetContainer extends Widget ...@@ -51,9 +89,13 @@ class WidgetContainer extends Widget
return $models; return $models;
} }
private function getRoute(){
return \Yii::$app->controller->module->id.'/'.\Yii::$app->controller->id.'/'.\Yii::$app->controller->action->id;
}
private function renderWidgets() private function renderWidgets()
{ {
$html = Html::beginTag('div',['class'=>'hrzg-widget-widget-container']); $html = Html::beginTag('div', ['class' => 'hrzg-widget-widget-container']);
if (\Yii::$app->user->can('widgets')) { if (\Yii::$app->user->can('widgets')) {
$html .= $this->generateContainerControls(); $html .= $this->generateContainerControls();
...@@ -67,7 +109,7 @@ class WidgetContainer extends Widget ...@@ -67,7 +109,7 @@ class WidgetContainer extends Widget
if ($properties) { if ($properties) {
$class->setProperties($properties); $class->setProperties($properties);
} }
$html .= Html::beginTag('div',['class'=>'hrzg-widget-widget']); $html .= Html::beginTag('div', ['class' => 'hrzg-widget-widget']);
if (\Yii::$app->user->can('widgets')) { if (\Yii::$app->user->can('widgets')) {
$html .= $this->generateWidgetControls($widget); $html .= $this->generateWidgetControls($widget);
} }
...@@ -82,55 +124,39 @@ class WidgetContainer extends Widget ...@@ -82,55 +124,39 @@ class WidgetContainer extends Widget
{ {
} }
private function generateContainerControls(){ private function generateContainerControls()
$html = Html::beginTag('div',['class'=>'hrzg-widget-container-controls pull-right']); {
$html .= Html::a('Add', ['/widgets/crud/widget/create', $html = Html::beginTag('div', ['class' => 'hrzg-widget-container-controls pull-right']);
$html .= Html::a(
FA::icon(FA::_PLUS_SQUARE).' '.$this->id,
[
'/widgets/crud/widget/create',
'WidgetContent' => [ 'WidgetContent' => [
'route' => \Yii::$app->requestedRoute, 'route' => $this->getRoute(),
'container_id' => $this->id, 'container_id' => $this->id,
'request_param' => \Yii::$app->request->get('id'), 'request_param' => \Yii::$app->request->get('id'),
'access_domain' => \Yii::$app->language, 'access_domain' => \Yii::$app->language,
]], ['class'=>'btn btn-default']); ]
],
['class' => 'btn btn-success']);
$html .= Html::endTag('div'); $html .= Html::endTag('div');
return $html; return $html;
} }
private function generateWidgetControls($widget){ private function generateWidgetControls($widget)
$html = Html::beginTag('div',['class'=>'hrzg-widget-widget-controls']); {
$html .= Html::a('Edit', ['/widgets/crud/widget/update', 'id'=>$widget->id], ['class'=>'btn btn-default']); $html = Html::beginTag('div', ['class' => 'hrzg-widget-widget-controls btn-group', 'role'=>'group']);
$html .= Html::a(
FA::icon(FA::_PENCIL).' #'.$widget->id.' '.$widget->template->name.' <span class="label label-default">'.$widget->rank.'</span>',
['/widgets/crud/widget/update', 'id' => $widget->id],
['class' => 'btn btn-xs btn-primary']
);
$html .= Html::a(
FA::icon(FA::_EYE),
['/widgets/crud/widget/view', 'id' => $widget->id],
['class' => 'btn btn-xs btn-default']
);
$html .= Html::endTag('div'); $html .= Html::endTag('div');
return $html; return $html;
} }
public function getMenuItems()
{
// todo, register FA-asset from asset bundle
AssetBundle::register($this->view);
return [
[
'label' => FA::icon(FA::_PLUS_SQUARE).' <b>'.$this->id.'</b> <span class="label label-info">widget</span>',
'url' => [
'/widgets/crud/widget/create',
'WidgetContent' => [
'route' => \Yii::$app->requestedRoute,
'container_id' => $this->id,
'request_param' => \Yii::$app->request->get('id'),
'access_domain' => \Yii::$app->language,
],
],
],
[
'label' => FA::icon(FA::_EDIT).' <b>'.$this->id.'</b> <span class="label label-info">widget</span>',
'url' => [
'/widgets/crud/widget/index',
'WidgetContent' => [
'route' => \Yii::$app->requestedRoute,
'container_id' => $this->id,
'request_param' => \Yii::$app->request->get('id'),
'access_domain' => \Yii::$app->language,
],
],
],
];
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment