diff options
Diffstat (limited to 'ui/include/classes/import/converters/C62ImportConverter.php')
-rw-r--r-- | ui/include/classes/import/converters/C62ImportConverter.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ui/include/classes/import/converters/C62ImportConverter.php b/ui/include/classes/import/converters/C62ImportConverter.php index 1a79ace08ff..19bb2ccf11d 100644 --- a/ui/include/classes/import/converters/C62ImportConverter.php +++ b/ui/include/classes/import/converters/C62ImportConverter.php @@ -24,6 +24,15 @@ */ class C62ImportConverter extends CConverter { + private const DASHBOARD_WIDGET_TYPE = [ + CXmlConstantName::DASHBOARD_WIDGET_TYPE_CLOCK => CXmlConstantValue::DASHBOARD_WIDGET_TYPE_CLOCK, + CXmlConstantName::DASHBOARD_WIDGET_TYPE_GRAPH_CLASSIC => CXmlConstantValue::DASHBOARD_WIDGET_TYPE_GRAPH_CLASSIC, + CXmlConstantName::DASHBOARD_WIDGET_TYPE_GRAPH_PROTOTYPE => CXmlConstantValue::DASHBOARD_WIDGET_TYPE_GRAPH_PROTOTYPE, + CXmlConstantName::DASHBOARD_WIDGET_TYPE_ITEM => CXmlConstantValue::DASHBOARD_WIDGET_TYPE_ITEM, + CXmlConstantName::DASHBOARD_WIDGET_TYPE_PLAIN_TEXT => CXmlConstantValue::DASHBOARD_WIDGET_TYPE_PLAIN_TEXT, + CXmlConstantName::DASHBOARD_WIDGET_TYPE_URL => CXmlConstantValue::DASHBOARD_WIDGET_TYPE_URL + ]; + /** * Convert import data from 6.2 to 6.4 version. * @@ -75,6 +84,10 @@ class C62ImportConverter extends CConverter { if (array_key_exists('discovery_rules', $template)) { $template['discovery_rules'] = self::convertDiscoveryRules($template['discovery_rules']); } + + if (array_key_exists('dashboards', $template)) { + $template['dashboards'] = self::convertDashboards($template['dashboards']); + } } unset($template); @@ -116,4 +129,34 @@ class C62ImportConverter extends CConverter { return $item_prototypes; } + + /** + * Convert dashboards. + * + * @param array $dashboards + * + * @return array + */ + private static function convertDashboards(array $dashboards): array { + foreach ($dashboards as &$dashboard) { + if (!array_key_exists('pages', $dashboard)) { + continue; + } + + foreach ($dashboard['pages'] as &$dashboard_page) { + if (!array_key_exists('widgets', $dashboard_page)) { + continue; + } + + foreach ($dashboard_page['widgets'] as &$widget) { + $widget['type'] = self::DASHBOARD_WIDGET_TYPE[$widget['type']]; + } + unset($widget); + } + unset($dashboard_page); + } + unset($dashboard); + + return $dashboards; + } } |