From fecfeee2ac6db6caafd1447c28ef1024495569b3 Mon Sep 17 00:00:00 2001 From: alekseybobkov Date: Sat, 2 Aug 2014 12:29:17 +1100 Subject: [PATCH] Fixed drop-down widget properties on the dashboard --- modules/backend/controllers/Index.php | 2 ++ modules/backend/traits/InspectableContainer.php | 2 +- modules/backend/widgets/ReportContainer.php | 11 +++++++---- .../widgets/reportcontainer/partials/_widget.htm | 1 + 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/backend/controllers/Index.php b/modules/backend/controllers/Index.php index db130946c..8f422c1f3 100644 --- a/modules/backend/controllers/Index.php +++ b/modules/backend/controllers/Index.php @@ -3,6 +3,7 @@ use BackendMenu; use Backend\Classes\Controller; use Backend\Widgets\ReportContainer; +use Backend\Traits\InspectableContainer; /** * Dashboard controller @@ -13,6 +14,7 @@ use Backend\Widgets\ReportContainer; */ class Index extends Controller { + use InspectableContainer; public $requiredPermissions = ['backend.access_dashboard']; diff --git a/modules/backend/traits/InspectableContainer.php b/modules/backend/traits/InspectableContainer.php index fe319b697..0e53f5c6c 100644 --- a/modules/backend/traits/InspectableContainer.php +++ b/modules/backend/traits/InspectableContainer.php @@ -40,7 +40,7 @@ trait InspectableContainer if (!$traitFound) throw new ApplicationException('The options cannot be loaded for the specified class.'); - $obj = new $className(); + $obj = new $className(null); $methodName = 'get'.ucfirst($property).'Options'; if (method_exists($obj, $methodName)) diff --git a/modules/backend/widgets/ReportContainer.php b/modules/backend/widgets/ReportContainer.php index fe906af80..61bd8e94d 100644 --- a/modules/backend/widgets/ReportContainer.php +++ b/modules/backend/widgets/ReportContainer.php @@ -311,15 +311,18 @@ class ReportContainer extends WidgetBase $result[] = $property; foreach ($properties as $name=>$params) { + $property = [ 'property' => $name, 'title' => isset($params['title']) ? $params['title'] : $name, - 'description' => isset($params['description']) ? $params['description'] : null, - 'type' => isset($params['type']) ? $params['type'] : 'string', - 'validationPattern' => isset($params['validationPattern']) ? $params['validationPattern'] : null, - 'validationMessage' => isset($params['validationMessage']) ? $params['validationMessage'] : null + 'type' => isset($params['type']) ? $params['type'] : 'string' ]; + foreach ($params as $name => $value) { + if (isset($property[$name])) continue; + $property[$name] = $value; + } + $result[] = $property; } diff --git a/modules/backend/widgets/reportcontainer/partials/_widget.htm b/modules/backend/widgets/reportcontainer/partials/_widget.htm index 13eda77be..14cfb8a1f 100644 --- a/modules/backend/widgets/reportcontainer/partials/_widget.htm +++ b/modules/backend/widgets/reportcontainer/partials/_widget.htm @@ -14,6 +14,7 @@ data-inspector-title="Widget configuration" data-inspector-description="Configure the report widget" data-inspector-config="getWidgetPropertyConfig($widget)) ?>" + data-inspector-class="" data-inspector-offset="-3" data-inspector-offset-x="-15" data-inspector-placement="left"