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