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$form = (new CForm())
27	->cleanItems()
28	->setName('dashboard_properties_form');
29
30$multiselect = (new CMultiSelect([
31	'name' => 'userid',
32	'object_name' => 'users',
33	'data' => [$data['dashboard']['owner']],
34	'disabled' => in_array(CWebUser::getType(), [USER_TYPE_ZABBIX_USER, USER_TYPE_ZABBIX_ADMIN]),
35	'multiple' => false,
36	'popup' => [
37		'parameters' => [
38			'srctbl' => 'users',
39			'srcfld1' => 'userid',
40			'srcfld2' => 'fullname',
41			'dstfrm' => $form->getName(),
42			'dstfld1' => 'userid'
43		]
44	]
45]))
46	->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
47	->setAriaRequired();
48
49$form
50	->addItem(getMessages())
51	->addItem(new CInput('hidden', 'dashboardid', $data['dashboard']['dashboardid']))
52	->addItem((new CFormList())
53		->addRow((new CLabel(_('Owner'), 'userid_ms'))->setAsteriskMark(), $multiselect)
54		->addRow((new CLabel(_('Name'), 'name'))->setAsteriskMark(),
55			(new CTextBox('name', $data['dashboard']['name'], false, DB::getFieldLength('dashboard', 'name')))
56				->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
57				->setAriaRequired()
58				->setAttribute('autofocus', 'autofocus')
59		)
60		->addItem((new CInput('submit', 'submit'))->addStyle('display: none;'))
61	);
62
63$output = [
64	'header' => _('Dashboard properties'),
65	'script_inline' => $multiselect->getPostJS(),
66	'body' => $form->toString(),
67	'buttons' => [
68		[
69			'title' => _('Apply'),
70			'keepOpen' => true,
71			'isSubmit' => true,
72			'action' => 'return dashbrdApplyProperties(overlay);'
73		]
74	]
75];
76
77if ($data['user']['debug_mode'] == GROUP_DEBUG_MODE_ENABLED) {
78	CProfiler::getInstance()->stop();
79	$output['debug'] = CProfiler::getInstance()->make()->toString();
80}
81
82echo json_encode($output);
83