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 ->setId('mediatype_message_form') 29 ->setName('mediatype_message_form') 30 ->addVar('action', 'popup.mediatype.message') 31 ->addVar('type', $data['params']['type']) 32 ->addVar('content_type', $data['params']['content_type']) 33 ->addVar('old_message_type', $data['params']['old_message_type']) 34 ->addVar('message_types', $data['params']['message_types']); 35 36if ($data['params']['old_message_type'] != -1) { 37 foreach ($data['params']['message_types'] as $idx => $message_type) { 38 if ($message_type == $data['params']['old_message_type']) { 39 unset($data['params']['message_types'][$idx]); 40 } 41 } 42} 43 44$form_list = (new CFormList())->addRow(new CLabel(_('Message type'), 'label-message-type'), 45 (new CSelect('message_type')) 46 ->setId('message_type') 47 ->setFocusableElementId( 'label-message-type') 48 ->setValue($data['params']['old_message_type']) 49 ->addOption((new CSelectOption(CMediatypeHelper::MSG_TYPE_PROBLEM, _('Problem'))) 50 ->setDisabled(in_array(CMediatypeHelper::MSG_TYPE_PROBLEM, $data['params']['message_types'])) 51 ) 52 ->addOption((new CSelectOption(CMediatypeHelper::MSG_TYPE_RECOVERY, _('Problem recovery'))) 53 ->setDisabled(in_array(CMediatypeHelper::MSG_TYPE_RECOVERY, $data['params']['message_types'])) 54 ) 55 ->addOption((new CSelectOption(CMediatypeHelper::MSG_TYPE_UPDATE, _('Problem update'))) 56 ->setDisabled(in_array(CMediatypeHelper::MSG_TYPE_UPDATE, $data['params']['message_types'])) 57 ) 58 ->addOption((new CSelectOption(CMediatypeHelper::MSG_TYPE_DISCOVERY, _('Discovery'))) 59 ->setDisabled(in_array(CMediatypeHelper::MSG_TYPE_DISCOVERY, $data['params']['message_types'])) 60 ) 61 ->addOption((new CSelectOption(CMediatypeHelper::MSG_TYPE_AUTOREG, _('Autoregistration'))) 62 ->setDisabled(in_array(CMediatypeHelper::MSG_TYPE_AUTOREG, $data['params']['message_types'])) 63 ) 64 ->addOption((new CSelectOption(CMediatypeHelper::MSG_TYPE_INTERNAL, _('Internal problem'))) 65 ->setDisabled(in_array(CMediatypeHelper::MSG_TYPE_INTERNAL, $data['params']['message_types'])) 66 ) 67 ->addOption((new CSelectOption(CMediatypeHelper::MSG_TYPE_INTERNAL_RECOVERY, _('Internal problem recovery'))) 68 ->setDisabled(in_array(CMediatypeHelper::MSG_TYPE_INTERNAL_RECOVERY, $data['params']['message_types'])) 69 ) 70); 71 72if ($data['params']['type'] != MEDIA_TYPE_SMS) { 73 $form_list->addRow(_('Subject'), 74 (new CTextBox('subject', $data['params']['subject'])) 75 ->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH) 76 ->setAttribute('maxlength', DB::getFieldLength('media_type_message', 'subject')) 77 ); 78} 79 80$form_list->addRow(_('Message'), 81 (new CTextArea('message', $data['params']['message'])) 82 ->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH) 83 ->setAttribute('maxlength', DB::getFieldLength('media_type_message', 'message')) 84); 85 86$form 87 ->addItem($form_list) 88 ->addItem((new CInput('submit', 'submit'))->addStyle('display: none;')); 89 90$output = [ 91 'header' => $data['title'], 92 'body' => $form->toString(), 93 'buttons' => [ 94 [ 95 'title' => ($data['params']['old_message_type'] == -1) ? _('Add') : _('Update'), 96 'class' => 'dialogue-widget-save', 97 'keepOpen' => true, 98 'isSubmit' => true, 99 'action' => 'submitMessageTemplate(overlay);' 100 ] 101 ], 102 'params' => $data['params'], 103 'script_inline' => $this->readJsFile('popup.mediatype.message.js.php') 104]; 105 106if ($data['user']['debug_mode'] == GROUP_DEBUG_MODE_ENABLED) { 107 CProfiler::getInstance()->stop(); 108 $output['debug'] = CProfiler::getInstance()->make()->toString(); 109} 110 111echo json_encode($output); 112