require_once dirname(__FILE__).'/include/config.inc.php';
require_once dirname(__FILE__).'/include/screens.inc.php';
require_once dirname(__FILE__).'/include/ident.inc.php';
require_once dirname(__FILE__).'/include/forms.inc.php';
require_once dirname(__FILE__).'/include/maps.inc.php';
$page['type'] = detect_page_type(PAGE_TYPE_HTML);
$page['title'] = _('Configuration of screens');
$page['file'] = 'screenconf.php';
$page['scripts'] = ['multiselect.js'];
require_once dirname(__FILE__).'/include/page_header.php';
'screens' => [T_ZBX_INT, O_OPT, P_SYS, DB_ID, null],
'screenid' => [T_ZBX_INT, O_NO, P_SYS, DB_ID,
'isset({form}) && ({form} === "update" || {form} === "full_clone")'
'templateid' => [T_ZBX_INT, O_OPT, P_SYS, DB_ID, null],
'name' => [T_ZBX_STR, O_OPT, null, NOT_EMPTY, 'isset({add}) || isset({update})', _('Name')],
'hsize' => [T_ZBX_INT, O_OPT, null, BETWEEN(SCREEN_MIN_SIZE, SCREEN_MAX_SIZE),
'isset({add}) || isset({update})', _('Columns')
'vsize' => [T_ZBX_INT, O_OPT, null, BETWEEN(SCREEN_MIN_SIZE, SCREEN_MAX_SIZE),
'isset({add}) || isset({update})', _('Rows')
'userid' => [T_ZBX_INT, O_OPT, P_SYS, DB_ID, null],
'private' => [T_ZBX_INT, O_OPT, null, BETWEEN(0, 1), null],
'users' => [T_ZBX_INT, O_OPT, null, null, null],
'userGroups' => [T_ZBX_INT, O_OPT, null, null, null],
'action' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, IN('"screen.export","screen.massdelete"'), null],
'add' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null],
'update' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null],
'delete' => [T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null],
'cancel' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'form' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'form_refresh' => [T_ZBX_INT, O_OPT, null, null, null],
'filter_set' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'filter_rst' => [T_ZBX_STR, O_OPT, P_SYS, null, null],
'filter_name' => [T_ZBX_STR, O_OPT, null, null, null],
'sort' => [T_ZBX_STR, O_OPT, P_SYS, IN('"name"'), null],
'sortorder' => [T_ZBX_STR, O_OPT, P_SYS, IN('"'.ZBX_SORT_DOWN.'","'.ZBX_SORT_UP.'"'), null]
if (hasRequest('screenid')) {
if (hasRequest('templateid')) {
$screens = API::TemplateScreen()->get([
'output' => ['screenid', 'name', 'hsize', 'vsize', 'templateid'],
'screenids' => getRequest('screenid'),
$screens = API::Screen()->get([
'output' => ['screenid', 'name', 'hsize', 'vsize', 'userid', 'private'],
'selectUsers' => ['userid', 'permission'],
'selectUserGroups' => ['usrgrpid', 'permission'],
'screenids' => getRequest('screenid'),