1<?php 2/* 3** Zabbix 4** Copyright (C) 2001-2021 Zabbix SIA 5** 6** This program is free software; you can redistribute it and/or modify 7** it under the terms of the GNU General Public License as published by 8** the Free Software Foundation; either version 2 of the License, or 9** (at your option) any later version. 10** 11** This program is distributed in the hope that it will be useful, 12** but WITHOUT ANY WARRANTY; without even the implied warranty of 13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14** GNU General Public License for more details. 15** 16** You should have received a copy of the GNU General Public License 17** along with this program; if not, write to the Free Software 18** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19**/ 20 21 22/** 23 * @var CView $this 24 */ 25 26$widget_view = include('include/classes/widgets/views/widget.'.$data['dialogue']['type'].'.form.view.php'); 27 28$form = $widget_view['form']; 29 30// Submit button is needed to enable submit event on Enter on inputs. 31$form->addItem((new CInput('submit', 'dashboard_widget_config_submit'))->addStyle('display: none;')); 32 33$output = [ 34 'header' => $data['unique_id'] !== null ? _s('Edit widget') : _s('Add widget'), 35 'body' => '', 36 'buttons' => [ 37 [ 38 'title' => $data['unique_id'] !== null ? _s('Apply') : _s('Add'), 39 'class' => 'dialogue-widget-save', 40 'keepOpen' => true, 41 'isSubmit' => true, 42 'action' => 'ZABBIX.Dashboard.applyWidgetProperties();' 43 ] 44 ], 45 'data' => [ 46 'original_properties' => [ 47 'type' => $data['dialogue']['type'], 48 'unique_id' => $data['unique_id'], 49 'dashboard_page_unique_id' => $data['dashboard_page_unique_id'] 50 ] 51 ] 52]; 53 54if (($messages = getMessages()) !== null) { 55 $output['body'] .= $messages->toString(); 56} 57 58$output['body'] .= $form->toString(); 59 60if (array_key_exists('jq_templates', $widget_view)) { 61 foreach ($widget_view['jq_templates'] as $id => $jq_template) { 62 $output['body'] .= '<script type="text/x-jquery-tmpl" id="'.$id.'">'.$jq_template.'</script>'; 63 } 64} 65 66if (array_key_exists('scripts', $widget_view)) { 67 $output['body'] .= get_js(implode("\n", $widget_view['scripts'])); 68} 69 70if ($data['user']['debug_mode'] == GROUP_DEBUG_MODE_ENABLED) { 71 CProfiler::getInstance()->stop(); 72 $output['debug'] = CProfiler::getInstance()->make()->toString(); 73} 74 75echo json_encode($output); 76