chg: [widgets:multiline] Pass widget_config to the view

pull/5719/head
mokaddem 2020-03-24 12:01:57 +01:00
parent 2b3df4a65d
commit 143d70604c
No known key found for this signature in database
GPG Key ID: 164C473F627A06FA
2 changed files with 24 additions and 6 deletions

View File

@ -97,6 +97,7 @@ class DashboardsController extends AppController
$dashboardWidget = $this->Dashboard->loadWidget($this->Auth->user(), $data['widget']);
$data['description'] = empty($dashboardWidget->description) ? '' : $dashboardWidget->description;
$data['params'] = empty($dashboardWidget->params) ? array() : $dashboardWidget->params;
$data['params'] = array_merge($data['params'], array('widget_config' => __('Configuration of the widget that will be passed to the render. Check the view for more information')));
$data['params'] = array_merge(array('alias' => __('Alias to use as the title of the widget')), $data['params']);
}
$this->set('data', $data);
@ -174,9 +175,11 @@ class DashboardsController extends AppController
} else {
$data = json_decode($data, true)['data'];
}
$valueConfig = json_decode($value['config'], true);
$config = array(
'render' => $dashboardWidget->render,
'autoRefreshDelay' => empty($dashboardWidget->autoRefreshDelay) ? false : $dashboardWidget->autoRefreshDelay
'autoRefreshDelay' => empty($dashboardWidget->autoRefreshDelay) ? false : $dashboardWidget->autoRefreshDelay,
'widget_config' => empty($valueConfig['widget_config']) ? array() : $valueConfig['widget_config']
);
$this->set('widget_id', $widget_id);
$this->set('data', $data);

View File

@ -57,22 +57,37 @@
var series, line_guides, points, pointsGroup, labels
var colors = d3.scale.category10();
var options = <?= json_encode(isset($data['options']) ? $data['options'] : array()) ?>;
_validateOptions(options);
var options = <?= json_encode(isset($config['widget_config']) ? $config['widget_config'] : array()) ?>;
var options = $.extend(true, {}, default_options, options);
options = _validateOptions(options);
var data_nodes = [];
var data_nodes_active = [];
var chart_data = [];
var legend_labels = [];
var raw_data;
var options = $.extend(true, {}, default_options, options);
_init();
_init_canvas();
if (data !== undefined) {
update(data)
}
function _validateOptions() {
return true;
function __parseTextBoolean(text) {
if (text === "true" || text === "1") {
return true;
} else if (text === "false" || text === "0") {
return false;
} else {
return text;
}
}
function _validateOptions(options) {
options.abscissa_linear = __parseTextBoolean(options.abscissa_linear);
options.show_crossair = __parseTextBoolean(options.show_crossair);
options.show_datapoints = __parseTextBoolean(options.show_datapoints);
options.show_legend = __parseTextBoolean(options.show_legend);
options.max_datapoints = (options.max_datapoints === null || options.max_datapoints === "null") ? null : parseInt(options.max_datapoints);
return options;
}
function _init() {