$form->addVar('regexpid', $this->data['regexpid']); /* * Expressions tab */ $exprTab = new CFormList('exprTab'); $nameTextBox = new CTextBox('name', $this->get('name'), ZBX_TEXTBOX_STANDARD_SIZE, false, 128); $nameTextBox->attr('autofocus', 'autofocus'); $exprTab->addRow(_('Name'), $nameTextBox); $exprTable = new CTable(null, 'formElementTable formWideTable'); $exprTable->attr('id', 'exprTable'); $exprTable->setHeader(array(_('Expression'), new CCol(_('Expression type'), 'nowrap'), new CCol(_('Case sensitive'), 'nowrap'), SPACE)); $exprTable->setFooter(new CButton('add', _('Add'), null, 'link_menu exprAdd')); $exprTab->addRow(_('Expressions'), new CDiv($exprTable, 'inlineblock border_dotted objectgroup')); $exprForm = new CTable(null, 'formElementTable'); $exprForm->addRow(array(_('Expression'), new CTextBox('expressionNew', null, ZBX_TEXTBOX_STANDARD_SIZE))); $exprForm->addRow(array(_('Expression type'), new CComboBox('typeNew', null, null, expression_type2str()))); $exprForm->addRow(array(_('Delimiter'), new CComboBox('delimiterNew', null, null, expressionDelimiters())), null, 'delimiterNewRow'); $exprForm->addRow(array(_('Case sensitive'), new CCheckBox('case_sensitiveNew'))); $exprFormFooter = array(new CButton('saveExpression', _('Add'), null, 'link_menu'), SPACE, new CButton('cancelExpression', _('Cancel'), null, 'link_menu')); $exprTab->addRow(null, new CDiv(array($exprForm, $exprFormFooter), 'objectgroup inlineblock border_dotted'), true, 'exprForm'); /* * Test tab */ $testTab = new CFormList('testTab'); $testTab->addRow(_('Test string'), new CTextArea('test_string', $this->get('test_string'))); $preloaderDiv = new CDiv(null, 'preloader', 'testPreloader'); $preloaderDiv->addStyle('display: none'); $testTab->addRow(SPACE, array(new CButton('testExpression', _('Test expressions')), $preloaderDiv)); $tabExp = new CTableInfo(null); $tabExp->attr('id', 'testResultTable'); $tabExp->setHeader(array(_('Expression'), _('Expression type'), _('Result')));
function get_expression_form() { $tblExp = new CTable(); /* init new_timeperiod variable */ $new_expression = get_request('new_expression', array()); if (is_array($new_expression) && isset($new_expression['id'])) { $tblExp->addItem(new Cvar('new_expression[id]', $new_expression['id'])); } if (!is_array($new_expression)) { $new_expression = array(); } if (!isset($new_expression['expression'])) { $new_expression['expression'] = ''; } if (!isset($new_expression['expression_type'])) { $new_expression['expression_type'] = EXPRESSION_TYPE_INCLUDED; } if (!isset($new_expression['case_sensitive'])) { $new_expression['case_sensitive'] = 0; } if (!isset($new_expression['exp_delimiter'])) { $new_expression['exp_delimiter'] = ','; } $tblExp->addRow(array(S_EXPRESSION, new CTextBox('new_expression[expression]', $new_expression['expression'], 60))); $cmbType = new CComboBox('new_expression[expression_type]', $new_expression['expression_type'], 'javascript: submit();'); $cmbType->addItem(EXPRESSION_TYPE_INCLUDED, expression_type2str(EXPRESSION_TYPE_INCLUDED)); $cmbType->addItem(EXPRESSION_TYPE_ANY_INCLUDED, expression_type2str(EXPRESSION_TYPE_ANY_INCLUDED)); $cmbType->addItem(EXPRESSION_TYPE_NOT_INCLUDED, expression_type2str(EXPRESSION_TYPE_NOT_INCLUDED)); $cmbType->addItem(EXPRESSION_TYPE_TRUE, expression_type2str(EXPRESSION_TYPE_TRUE)); $cmbType->addItem(EXPRESSION_TYPE_FALSE, expression_type2str(EXPRESSION_TYPE_FALSE)); $tblExp->addRow(array(S_EXPRESSION_TYPE, $cmbType)); if (EXPRESSION_TYPE_ANY_INCLUDED == $new_expression['expression_type']) { $cmbDelimiter = new CComboBox('new_expression[exp_delimiter]', $new_expression['exp_delimiter']); $cmbDelimiter->addItem(',', ','); $cmbDelimiter->addItem('.', '.'); $cmbDelimiter->addItem('/', '/'); $tblExp->addRow(array(S_DELIMITER, $cmbDelimiter)); } else { $tblExp->addItem(new Cvar('new_expression[exp_delimiter]', $new_expression['exp_delimiter'])); } $chkbCase = new CCheckBox('new_expression[case_sensitive]', $new_expression['case_sensitive'], null, 1); $tblExp->addRow(array(S_IGNORE_CASE, $chkbCase)); $tblExpFooter = new CTableInfo($tblExp); $oper_buttons = array(); $oper_buttons[] = new CButton('add_expression', isset($new_expression['id']) ? S_SAVE : S_ADD); $oper_buttons[] = new CButton('cancel_new_expression', S_CANCEL); $td = new CCol($oper_buttons); $td->addOption('colspan', 2); $td->addOption('style', 'text-align: right;'); $tblExpFooter->setFooter($td); // end of condition list preparation return $tblExpFooter; }
$regExpForm = new CForm(); $regExpForm->setName('regularExpressionsForm'); $regExpForm->addItem(BR()); $regExpTable = new CTableInfo(_('No regular expressions found.')); $regExpTable->setHeader(array(new CCheckBox('all_regexps', null, "checkAll('regularExpressionsForm', 'all_regexps', 'regexpids');"), $this->data['displayNodes'] ? _('Node') : null, _('Name'), _('Expressions'))); $expressions = array(); $values = array(); foreach ($this->data['db_exps'] as $exp) { if (!isset($expressions[$exp['regexpid']])) { $values[$exp['regexpid']] = 1; } else { $values[$exp['regexpid']]++; } if (!isset($expressions[$exp['regexpid']])) { $expressions[$exp['regexpid']] = new CTable(); } $expressions[$exp['regexpid']]->addRow(array($values[$exp['regexpid']], ' » ', $exp['expression'], ' [' . expression_type2str($exp['expression_type']) . ']')); } foreach ($this->data['regexps'] as $regexpid => $regexp) { $regExpTable->addRow(array(new CCheckBox('regexpids[' . $regexp['regexpid'] . ']', null, null, $regexp['regexpid']), $this->data['displayNodes'] ? $regexp['nodename'] : null, new CLink($regexp['name'], 'adm.regexps.php?form=update' . '®expid=' . $regexp['regexpid']), isset($expressions[$regexpid]) ? $expressions[$regexpid] : '-')); } $goBox = new CComboBox('go'); $goOption = new CComboItem('delete', _('Delete selected')); $goOption->setAttribute('confirm', _('Delete selected regular expressions?')); $goBox->addItem($goOption); $goButton = new CSubmit('goButton', _('Go') . ' (0)'); $goButton->setAttribute('id', 'goButton'); zbx_add_post_js('chkbxRange.pageGoName = "regexpids";'); $regExpTable->setFooter(new CCol(array($goBox, $goButton))); $regExpForm->addItem($regExpTable); return $regExpForm;
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program; if not, write to the Free Software ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ $widget = (new CWidget())->setTitle(_('Regular expressions'))->setControls((new CForm())->cleanItems()->addItem((new CList())->addItem(makeAdministrationGeneralMenu('adm.regexps.php'))->addItem(new CSubmit('form', _('New regular expression'))))); $form = (new CForm())->setName('regularExpressionsForm'); $regExpTable = (new CTableInfo())->setHeader([(new CColHeader((new CCheckBox('all_regexps'))->onClick("checkAll('" . $form->getName() . "', 'all_regexps', 'regexpids');")))->addClass(ZBX_STYLE_CELL_WIDTH), _('Name'), _('Expressions')]); $expressions = []; $values = []; foreach ($data['db_exps'] as $exp) { if (!isset($expressions[$exp['regexpid']])) { $values[$exp['regexpid']] = 1; } else { $values[$exp['regexpid']]++; } if (!isset($expressions[$exp['regexpid']])) { $expressions[$exp['regexpid']] = new CTable(); } $expressions[$exp['regexpid']]->addRow([new CCol($values[$exp['regexpid']]), new CCol(' » '), new CCol($exp['expression']), new CCol(' [' . expression_type2str($exp['expression_type']) . ']')]); } foreach ($data['regexps'] as $regexpid => $regexp) { $regExpTable->addRow([new CCheckBox('regexpids[' . $regexp['regexpid'] . ']', $regexp['regexpid']), new CLink($regexp['name'], 'adm.regexps.php?form=update' . '®expid=' . $regexp['regexpid']), isset($expressions[$regexpid]) ? $expressions[$regexpid] : '']); } // append table to form $form->addItem([$regExpTable, new CActionButtonList('action', 'regexpids', ['regexp.massdelete' => ['name' => _('Delete'), 'confirm' => _('Delete selected regular expressions?')]])]); // append form to widget $widget->addItem($form); return $widget;
** along with this program; if not, write to the Free Software ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ require_once dirname(__FILE__) . '/js/adm.regexprs.edit.js.php'; $widget = (new CWidget())->setTitle(_('Regular expressions'))->setControls((new CForm())->cleanItems()->addItem((new CList())->addItem(makeAdministrationGeneralMenu('adm.regexps.php')))); $form = (new CForm())->setId('zabbixRegExpForm')->addVar('form', 1)->addVar('regexpid', $data['regexpid']); /* * Expressions tab */ $exprTable = (new CTable())->setId('tbl_expr')->setAttribute('style', 'width: 100%;')->setHeader([_('Expression type'), _('Expression'), _('Delimiter'), _('Case sensitive'), _('Action')]); foreach ($data['expressions'] as $i => $expression) { $exp_delimiter = new CComboBox('expressions[' . $i . '][exp_delimiter]', $expression['exp_delimiter'], null, expressionDelimiters()); if ($expression['expression_type'] != EXPRESSION_TYPE_ANY_INCLUDED) { $exp_delimiter->addStyle('display: none;'); } $row = [(new CComboBox('expressions[' . $i . '][expression_type]', $expression['expression_type'], null, expression_type2str()))->onChange('onChangeExpressionType(this, ' . $i . ')'), (new CTextBox('expressions[' . $i . '][expression]', $expression['expression'], false, 255))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH), $exp_delimiter, (new CCheckBox('expressions[' . $i . '][case_sensitive]', '1'))->setChecked($expression['case_sensitive'])]; $button_cell = [(new CButton('expressions[' . $i . '][remove]', _('Remove')))->addClass(ZBX_STYLE_BTN_LINK)->addClass('element-table-remove')]; if (array_key_exists('expressionid', $expression)) { $button_cell[] = new CVar('expressions[' . $i . '][expressionid]', $expression['expressionid']); } $row[] = (new CCol($button_cell))->addClass(ZBX_STYLE_NOWRAP); $exprTable->addRow((new CRow($row))->addClass('form_row')->setAttribute('data-index', $i)); } $exprTable->setFooter((new CButton('expression_add', _('Add')))->addClass(ZBX_STYLE_BTN_LINK)->addClass('element-table-add')); $exprTab = (new CFormList('exprTab'))->addRow(_('Name'), (new CTextBox('name', $data['name'], false, 128))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)->setAttribute('autofocus', 'autofocus'))->addRow(_('Expressions'), (new CDiv($exprTable))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_BIG_WIDTH . 'px;')); /* * Test tab */ $testTab = (new CFormList())->addRow(_('Test string'), (new CTextArea('test_string', $data['test_string']))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH))->addRow('', (new CButton('testExpression', _('Test expressions')))->addClass(ZBX_STYLE_BTN_ALT))->addRow(_('Result'), (new CDiv((new CTable())->setId('testResultTable')->setAttribute('style', 'width: 100%;')->setHeader([_('Expression type'), _('Expression'), _('Result')])))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_BIG_WIDTH . 'px;')); $regExpView = new CTabView(); if (!$data['form_refresh']) {
function get_expression_form() { $tblExp = new CTable(); /* init new_timeperiod variable */ $new_expression = get_request('new_expression', array()); if (is_array($new_expression) && isset($new_expression['id'])) { $tblExp->addItem(new Cvar('new_expression[id]', $new_expression['id'])); } if (!is_array($new_expression)) { $new_expression = array(); } if (isset($new_expression['expressionid'])) { $tblExp->addItem(new CVar('new_expression[expressionid]', $new_expression['expressionid'])); } if (!isset($new_expression['expression'])) { $new_expression['expression'] = ''; } if (!isset($new_expression['expression_type'])) { $new_expression['expression_type'] = EXPRESSION_TYPE_INCLUDED; } if (!isset($new_expression['case_sensitive'])) { $new_expression['case_sensitive'] = 0; } if (!isset($new_expression['exp_delimiter'])) { $new_expression['exp_delimiter'] = ','; } $tblExp->addRow(array(_('Expression'), new CTextBox('new_expression[expression]', $new_expression['expression'], 60))); $cmbType = new CComboBox('new_expression[expression_type]', $new_expression['expression_type'], 'javascript: submit();'); $cmbType->addItem(EXPRESSION_TYPE_INCLUDED, expression_type2str(EXPRESSION_TYPE_INCLUDED)); $cmbType->addItem(EXPRESSION_TYPE_ANY_INCLUDED, expression_type2str(EXPRESSION_TYPE_ANY_INCLUDED)); $cmbType->addItem(EXPRESSION_TYPE_NOT_INCLUDED, expression_type2str(EXPRESSION_TYPE_NOT_INCLUDED)); $cmbType->addItem(EXPRESSION_TYPE_TRUE, expression_type2str(EXPRESSION_TYPE_TRUE)); $cmbType->addItem(EXPRESSION_TYPE_FALSE, expression_type2str(EXPRESSION_TYPE_FALSE)); $tblExp->addRow(array(_('Expression type'), $cmbType)); if (EXPRESSION_TYPE_ANY_INCLUDED == $new_expression['expression_type']) { $cmbDelimiter = new CComboBox('new_expression[exp_delimiter]', $new_expression['exp_delimiter']); $cmbDelimiter->addItem(',', ','); $cmbDelimiter->addItem('.', '.'); $cmbDelimiter->addItem('/', '/'); $tblExp->addRow(array(_('Delimiter'), $cmbDelimiter)); } else { $tblExp->addItem(new Cvar('new_expression[exp_delimiter]', $new_expression['exp_delimiter'])); } $chkbCase = new CCheckBox('new_expression[case_sensitive]', $new_expression['case_sensitive'], null, 1); $tblExp->addRow(array(_('Case sensitive'), $chkbCase)); $tblExpFooter = new CTableInfo($tblExp); $oper_buttons = array(); $oper_buttons[] = new CSubmit('add_expression', isset($new_expression['id']) ? _('Save') : _('Add')); $oper_buttons[] = new CSubmit('cancel_new_expression', _('Cancel')); $td = new CCol($oper_buttons); $td->setAttribute('colspan', 2); $td->setAttribute('style', 'text-align: right;'); $tblExpFooter->setFooter($td); return $tblExpFooter; }
$regExpForm = new CForm(); $regExpForm->setName('regularExpressionsForm'); $regExpForm->addItem(BR()); $regExpTable = new CTableInfo(_('No regular expressions found.')); $regExpTable->setHeader(array(new CCheckBox('all_regexps', null, "checkAll('regularExpressionsForm', 'all_regexps', 'regexpids');"), _('Name'), _('Expressions'))); $expressions = array(); $values = array(); foreach ($this->data['db_exps'] as $exp) { if (!isset($expressions[$exp['regexpid']])) { $values[$exp['regexpid']] = 1; } else { $values[$exp['regexpid']]++; } if (!isset($expressions[$exp['regexpid']])) { $expressions[$exp['regexpid']] = new CTable(); } $expressions[$exp['regexpid']]->addRow(array(new CCol($values[$exp['regexpid']], 'top'), new CCol(' » ', 'top'), new CCol($exp['expression'], 'pre-wrap break-lines'), new CCol(' [' . expression_type2str($exp['expression_type']) . ']', 'top'))); } foreach ($this->data['regexps'] as $regexpid => $regexp) { $regExpTable->addRow(array(new CCheckBox('regexpids[' . $regexp['regexpid'] . ']', null, null, $regexp['regexpid']), new CLink($regexp['name'], 'adm.regexps.php?form=update' . '®expid=' . $regexp['regexpid']), isset($expressions[$regexpid]) ? $expressions[$regexpid] : '-')); } $goBox = new CComboBox('action'); $goOption = new CComboItem('regexp.massdelete', _('Delete selected')); $goOption->setAttribute('confirm', _('Delete selected regular expressions?')); $goBox->addItem($goOption); $goButton = new CSubmit('goButton', _('Go') . ' (0)'); $goButton->setAttribute('id', 'goButton'); zbx_add_post_js('chkbxRange.pageGoName = "regexpids";'); $regExpTable->setFooter(new CCol(array($goBox, $goButton))); $regExpForm->addItem($regExpTable); return $regExpForm;
<script type="text/x-jquery-tmpl" id="row_expr"> <?php echo (new CRow([(new CComboBox('expressions[#{rowNum}][expression_type]', null, null, expression_type2str()))->onChange('onChangeExpressionType(this, #{rowNum})'), (new CTextBox('expressions[#{rowNum}][expression]', '', false, 255))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH), (new CComboBox('expressions[#{rowNum}][exp_delimiter]', null, null, expressionDelimiters()))->addStyle('display: none;'), new CCheckBox('expressions[#{rowNum}][case_sensitive]'), (new CCol((new CButton('expressions[#{rowNum}][remove]', _('Remove')))->addClass(ZBX_STYLE_BTN_LINK)->addClass('element-table-remove')))->addClass(ZBX_STYLE_NOWRAP)]))->addClass('form_row')->setAttribute('data-index', '#{rowNum}')->toString(); ?> </script> <script type="text/x-jquery-tmpl" id="testTableRow"> <?php echo (new CRow(['#{type}', '#{expression}', (new CSpan('#{result}'))->addClass('#{resultClass}')]))->addClass('test_row')->toString(); ?> </script> <script type="text/x-jquery-tmpl" id="testCombinedTableRow"> <?php echo (new CRow([(new CCol(_('Combined result')))->setColspan(2), (new CSpan('#{result}'))->addClass('#{resultClass}')]))->addClass('test_row')->toString(); ?> </script> <script> function onChangeExpressionType(obj, index) { if (obj.value === '<?php echo EXPRESSION_TYPE_ANY_INCLUDED; ?> ') { jQuery('#expressions_' + index + '_exp_delimiter').show(); } else { jQuery('#expressions_' + index + '_exp_delimiter').hide(); } }