diff --git a/modules/backend/classes/ReportWidgetBase.php b/modules/backend/classes/ReportWidgetBase.php index 8d5b7086d..d37e180d1 100644 --- a/modules/backend/classes/ReportWidgetBase.php +++ b/modules/backend/classes/ReportWidgetBase.php @@ -15,6 +15,14 @@ class ReportWidgetBase extends WidgetBase { $this->properties = $this->validateProperties($properties); + /* + * Ensure the provided alias (if present) takes effect as the widget configuration is + * not passed to the WidgetBase constructor which would normally take care of that + */ + if (!isset($this->alias)) { + $this->alias = $properties['alias'] ?? $this->defaultAlias; + } + parent::__construct($controller); } } diff --git a/modules/backend/widgets/ReportContainer.php b/modules/backend/widgets/ReportContainer.php index 53281a437..a3b02e368 100644 --- a/modules/backend/widgets/ReportContainer.php +++ b/modules/backend/widgets/ReportContainer.php @@ -236,6 +236,9 @@ class ReportContainer extends WidgetBase } while (array_key_exists($alias, $widgets)); + // Ensure that the widget's alias is correctly set for this request + $widget->alias = $alias; + $sortOrder = 0; foreach ($widgets as $widgetInfo) { $sortOrder = max($sortOrder, $widgetInfo['sortOrder']);