public function export(Export\ExportStream $stream, Export\ExportContext $context) { $this->datasourceName = $context->get('datasourceName'); $dashboards = array(); foreach (gd_dashboard_findall_by_datasource(LOAD_ENTITY,$this->datasourceName) as $dashboard) { $export = new stdClass(); $export->id = (int) $dashboard->nid; $export->title = $dashboard->title; $export->uuid = get_node_field_value($dashboard,'field_dashboard_uuid',0,'value',true); $export->description = get_node_field_value($dashboard,'field_dashboard_desc'); $export->public = (int) get_node_field_value($dashboard,'field_dashboard_public'); $export->custom_view = get_node_field_value($dashboard,'field_dashboard_custom_view'); $export->reports = (array) get_node_field_node_ref($dashboard,'field_dashboard_reports',null); $export->config = json_decode(get_node_field_value($dashboard,'field_dashboard_config',0,'value',true)); $export->alias = array(); if (!empty($dashboard->field_dashboard_alias)) { foreach($dashboard->field_dashboard_alias[$dashboard->language] as $alias) { $export->alias[] = $alias['value']; } } $export->tags = array(); if (!empty($dashboard->field_dashboard_tags)) { foreach($dashboard->field_dashboard_tags[$dashboard->language] as $tag) { $export->tags[] = $tag['tid']; } } // replace report nid with report uuid $reportNodes = gd_report_load_multiple($export->reports); foreach ( $export->reports as $key => $value ) { foreach ( $reportNodes as $node ) { if ( $node->nid == $value ) { $export->reports[$key] = get_node_field_value($node,'field_report_uuid',0,'value',true); } } } // replace references with uuid $this->processConfig($export); $dashboards[] = $export; } $stream->set('dashboards',$dashboards); }
public function export(Export\ExportStream $stream, Export\ExportContext $context) { $metamodel = data_controller_get_metamodel(); $reports = array(); foreach (gd_report_findall_by_datasource(LOAD_ENTITY,$context->get('datasourceName')) as $report) { $export = new stdClass(); $export->id = (int) $report->nid; $export->title = $report->title; $export->description = get_node_field_value($report,'field_report_desc',0,'value'); $export->uuid = get_node_field_value($report,'field_report_uuid',0,'value',true); $export->config = json_decode(get_node_field_value($report,'field_report_conf',0,'value',true)); $export->custom_view = get_node_field_value($report,'field_report_custom_view'); $export->datasets = (array) get_node_field_value($report,'field_report_dataset_sysnames',null,'value',true); $export->tags = array(); if (!empty($report->field_report_tags)) { foreach($report->field_report_tags[$report->language] as $tag) { $export->tags[] = $tag['tid']; } } // replace dataset name with dataset uuid foreach ( $export->datasets as $key => $value ) { $dataset = $metamodel->getDataset($value); if (isset($dataset->uuid)) { $export->datasets[$key] = $dataset->uuid; } else { $export->datasets[$key] = NameSpaceHelper::removeNameSpace($dataset->name); } } // replace dataset name with dataset uuid $this->processConfig($export->config); $reports[] = $export; } $stream->set('reports',$reports); }