} else { $toDate = zbxDateToTime($this->data['active_till']); $activeTill = $this->data['active_till']; } $maintenanceForm->addVar('active_till', $activeTill); $maintenanceFormList->addRow(_('Active since'), createDateSelector('active_since', $fromDate, 'active_till')); $maintenanceFormList->addRow(_('Active till'), createDateSelector('active_till', $toDate, 'active_since')); $maintenanceFormList->addRow(_('Description'), new CTextArea('description', $this->data['description'])); /* * Maintenance period tab */ $maintenancePeriodFormList = new CFormList('maintenancePeriodFormList'); $maintenancePeriodTable = new CTable(_('No maintenance periods defined.'), 'formElementTable'); $maintenancePeriodTable->setHeader(array(_('Period type'), _('Schedule'), _('Period'), _('Action'))); foreach ($this->data['timeperiods'] as $id => $timeperiod) { $maintenancePeriodTable->addRow(array(new CCol(timeperiod_type2str($timeperiod['timeperiod_type']), 'nowrap'), new CCol(shedule2str($timeperiod), 'wraptext'), new CCol(zbx_date2age(0, $timeperiod['period']), 'nowrap'), new CCol(array(new CSubmit('edit_timeperiodid[' . $id . ']', _('Edit'), null, 'link_menu'), SPACE . SPACE, new CSubmit('del_timeperiodid[' . $id . ']', _('Remove'), null, 'link_menu')), 'nowrap'))); if (isset($timeperiod['timeperiodid'])) { $maintenanceForm->addVar('timeperiods[' . $id . '][timeperiodid]', $timeperiod['timeperiodid']); } $maintenanceForm->addVar('timeperiods[' . $id . '][timeperiod_type]', $timeperiod['timeperiod_type']); $maintenanceForm->addVar('timeperiods[' . $id . '][every]', $timeperiod['every']); $maintenanceForm->addVar('timeperiods[' . $id . '][month]', $timeperiod['month']); $maintenanceForm->addVar('timeperiods[' . $id . '][dayofweek]', $timeperiod['dayofweek']); $maintenanceForm->addVar('timeperiods[' . $id . '][day]', $timeperiod['day']); $maintenanceForm->addVar('timeperiods[' . $id . '][start_time]', $timeperiod['start_time']); $maintenanceForm->addVar('timeperiods[' . $id . '][start_date]', $timeperiod['start_date']); $maintenanceForm->addVar('timeperiods[' . $id . '][period]', $timeperiod['period']); } $periodsDiv = new CDiv($maintenancePeriodTable, 'objectgroup inlineblock border_dotted'); if (!isset($_REQUEST['new_timeperiod'])) { $periodsDiv->addItem(new CSubmit('new_timeperiod', _('New'), null, 'link_menu'));
function get_maintenance_periods() { $tblPeriod = new CTableInfo(); $tblPeriod->addOption('style', 'background-color: #CCC;'); if (isset($_REQUEST['maintenanceid']) && !isset($_REQUEST["form_refresh"])) { $timeperiods = array(); $sql = 'SELECT DISTINCT mw.maintenanceid, tp.* ' . ' FROM timeperiods tp, maintenances_windows mw ' . ' WHERE mw.maintenanceid=' . $_REQUEST['maintenanceid'] . ' AND tp.timeperiodid=mw.timeperiodid ' . ' ORDER BY tp.timeperiod_type ASC'; $db_timeperiods = DBselect($sql); while ($timeperiod = DBfetch($db_timeperiods)) { $timeperiods[] = $timeperiod; } } else { $timeperiods = get_request('timeperiods', array()); } $tblPeriod->SetHeader(array(new CCheckBox('all_periods', null, 'CheckAll("' . S_PERIOD . '","all_periods","g_timeperiodid");'), S_PERIOD_TYPE, S_SHEDULE, S_PERIOD, S_ACTION)); // zbx_rksort($timeperiods); foreach ($timeperiods as $id => $timeperiod) { $period_type = timeperiod_type2str($timeperiod['timeperiod_type']); $shedule_str = shedule2str($timeperiod); $tblPeriod->addRow(array(new CCheckBox('g_timeperiodid[]', 'no', null, $id), $period_type, new CCol($shedule_str, 'wraptext'), zbx_date2age(0, $timeperiod['period']), new CButton('edit_timeperiodid[' . $id . ']', S_EDIT))); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][timeperiod_type]', $timeperiod['timeperiod_type'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][every]', $timeperiod['every'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][month]', $timeperiod['month'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][dayofweek]', $timeperiod['dayofweek'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][day]', $timeperiod['day'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][start_time]', $timeperiod['start_time'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][date]', $timeperiod['date'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][period]', $timeperiod['period'])); } unset($timeperiods); $tblPeriodFooter = new CTableInfo(null); $oper_buttons = array(); if (!isset($_REQUEST['new_timeperiod'])) { $oper_buttons[] = new CButton('new_timeperiod', S_NEW); } if ($tblPeriod->ItemsCount() > 0) { $oper_buttons[] = new CButton('del_timeperiod', S_DELETE_SELECTED); } $td = new CCol($oper_buttons); $td->addOption('colspan', 7); $td->addOption('style', 'text-align: right;'); $tblPeriodFooter->SetFooter($td); // end of condition list preparation return array($tblPeriod, $tblPeriodFooter); }
$activeTill = $toYear . $toMonth . $toDay . $toHours . $toMinutes; } else { $toDate = zbxDateToTime($this->data['active_till']); $activeTill = $this->data['active_till']; } $maintenanceForm->addVar('active_till', $activeTill); $maintenanceFormList->addRow(_('Active since'), createDateSelector('active_since', $fromDate, 'active_till')); $maintenanceFormList->addRow(_('Active till'), createDateSelector('active_till', $toDate, 'active_since')); $maintenanceFormList->addRow(_('Description'), (new CTextArea('description', $this->data['description']))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)); /* * Maintenance period tab */ $maintenancePeriodFormList = new CFormList('maintenancePeriodFormList'); $maintenancePeriodTable = (new CTable())->setAttribute('style', 'width: 100%;')->setHeader([_('Period type'), _('Schedule'), _('Period'), _('Action')]); foreach ($this->data['timeperiods'] as $id => $timeperiod) { $maintenancePeriodTable->addRow([(new CCol(timeperiod_type2str($timeperiod['timeperiod_type'])))->addClass(ZBX_STYLE_NOWRAP), shedule2str($timeperiod), (new CCol(zbx_date2age(0, $timeperiod['period'])))->addClass(ZBX_STYLE_NOWRAP), (new CCol(new CHorList([(new CSubmit('edit_timeperiodid[' . $id . ']', _('Edit')))->addClass(ZBX_STYLE_BTN_LINK), (new CSubmit('del_timeperiodid[' . $id . ']', _('Remove')))->addClass(ZBX_STYLE_BTN_LINK)])))->addClass(ZBX_STYLE_NOWRAP)]); if (isset($timeperiod['timeperiodid'])) { $maintenanceForm->addVar('timeperiods[' . $id . '][timeperiodid]', $timeperiod['timeperiodid']); } $maintenanceForm->addVar('timeperiods[' . $id . '][timeperiod_type]', $timeperiod['timeperiod_type'])->addVar('timeperiods[' . $id . '][every]', $timeperiod['every'])->addVar('timeperiods[' . $id . '][month]', $timeperiod['month'])->addVar('timeperiods[' . $id . '][dayofweek]', $timeperiod['dayofweek'])->addVar('timeperiods[' . $id . '][day]', $timeperiod['day'])->addVar('timeperiods[' . $id . '][start_time]', $timeperiod['start_time'])->addVar('timeperiods[' . $id . '][start_date]', $timeperiod['start_date'])->addVar('timeperiods[' . $id . '][period]', $timeperiod['period']); } $periodsDiv = (new CDiv($maintenancePeriodTable))->addClass(ZBX_STYLE_TABLE_FORMS_SEPARATOR)->setAttribute('style', 'min-width: ' . ZBX_TEXTAREA_BIG_WIDTH . 'px;'); if (!isset($_REQUEST['new_timeperiod'])) { $periodsDiv->addItem((new CSubmit('new_timeperiod', _('New')))->addClass(ZBX_STYLE_BTN_LINK)); } $maintenancePeriodFormList->addRow(_('Periods'), $periodsDiv); if (isset($_REQUEST['new_timeperiod'])) { if (is_array($_REQUEST['new_timeperiod']) && isset($_REQUEST['new_timeperiod']['id'])) { $saveLabel = _('Update'); } else { $saveLabel = _('Add');
// }}} MAINTENANCE FORM // MAINTENANCE PERIODS {{{ $tblPeriod = new CTableInfo(); if (isset($_REQUEST['maintenanceid']) && !isset($_REQUEST['form_refresh'])) { $timeperiods = array(); $sql = 'SELECT DISTINCT mw.maintenanceid, tp.* ' . ' FROM timeperiods tp, maintenances_windows mw ' . ' WHERE mw.maintenanceid=' . $_REQUEST['maintenanceid'] . ' AND tp.timeperiodid=mw.timeperiodid ' . ' ORDER BY tp.timeperiod_type ASC'; $db_timeperiods = DBselect($sql); while ($timeperiod = DBfetch($db_timeperiods)) { $timeperiods[] = $timeperiod; } } else { $timeperiods = get_request('timeperiods', array()); } $tblPeriod->setHeader(array(new CCheckBox('all_periods', null, 'checkAll("' . S_PERIOD . '","all_periods","g_timeperiodid");'), S_PERIOD_TYPE, S_SCHEDULE, S_PERIOD, S_ACTION)); foreach ($timeperiods as $id => $timeperiod) { $tblPeriod->addRow(array(new CCheckBox('g_timeperiodid[]', 'no', null, $id), timeperiod_type2str($timeperiod['timeperiod_type']), new CCol(shedule2str($timeperiod), 'wraptext'), zbx_date2age(0, $timeperiod['period']), new CButton('edit_timeperiodid[' . $id . ']', S_EDIT))); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][timeperiod_type]', $timeperiod['timeperiod_type'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][every]', $timeperiod['every'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][month]', $timeperiod['month'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][dayofweek]', $timeperiod['dayofweek'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][day]', $timeperiod['day'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][start_time]', $timeperiod['start_time'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][start_date]', $timeperiod['start_date'])); $tblPeriod->addItem(new Cvar('timeperiods[' . $id . '][period]', $timeperiod['period'])); } $footer = array(); if (!isset($_REQUEST['new_timeperiod'])) { $footer[] = new CButton('new_timeperiod', S_NEW); } if ($tblPeriod->ItemsCount() > 0) { $footer[] = new CButton('del_timeperiod', S_DELETE_SELECTED);
$maintenanceTillYear->setAttribute('placeholder', _('yyyy')); $maintenanceTillHour = new CNumericBox('mntc_till_hour', $hours, 2); $maintenanceTillHour->setAttribute('placeholder', _('hh')); $maintenanceTillMinute = new CNumericBox('mntc_till_minute', $minutes, 2); $maintenanceTillMinute->setAttribute('placeholder', _('mm')); $maintenanceFormList->addRow(_('Active till'), array($maintenanceTillDay, '/', $maintenanceTillMonth, '/', $maintenanceTillYear, SPACE, $maintenanceTillHour, ':', $maintenanceTillMinute, $calendarIcon)); zbx_add_post_js('create_calendar(null, ["mntc_till_day", "mntc_till_month", "mntc_till_year", "mntc_till_hour", "mntc_till_minute"], "mntc_active_till", "active_till");'); $maintenanceFormList->addRow(_('Description'), new CTextArea('description', $this->data['description'])); /* * Maintenance period tab */ $maintenancePeriodFormList = new CFormList('maintenancePeriodFormList'); $maintenancePeriodTable = new CTableInfo(_('No maintenance period defined.')); $maintenancePeriodTable->setHeader(array(new CCheckBox('all_periods', null, 'checkAll("' . $maintenanceForm->getName() . '", "all_periods", "g_timeperiodid");'), _('Period type'), _('Schedule'), _('Period'), _('Action'))); foreach ($this->data['timeperiods'] as $id => $timeperiod) { $maintenancePeriodTable->addRow(array(new CCheckBox('g_timeperiodid[]', 'no', null, $id), timeperiod_type2str($timeperiod['timeperiod_type']), new CCol(shedule2str($timeperiod), 'wraptext'), zbx_date2age(0, $timeperiod['period']), new CSubmit('edit_timeperiodid[' . $id . ']', _('Edit'), null, 'link_menu'))); if (isset($timeperiod['timeperiodid'])) { $maintenanceForm->addVar('timeperiods[' . $id . '][timeperiodid]', $timeperiod['timeperiodid']); } $maintenanceForm->addVar('timeperiods[' . $id . '][timeperiod_type]', $timeperiod['timeperiod_type']); $maintenanceForm->addVar('timeperiods[' . $id . '][every]', $timeperiod['every']); $maintenanceForm->addVar('timeperiods[' . $id . '][month]', $timeperiod['month']); $maintenanceForm->addVar('timeperiods[' . $id . '][dayofweek]', $timeperiod['dayofweek']); $maintenanceForm->addVar('timeperiods[' . $id . '][day]', $timeperiod['day']); $maintenanceForm->addVar('timeperiods[' . $id . '][start_time]', $timeperiod['start_time']); $maintenanceForm->addVar('timeperiods[' . $id . '][start_date]', $timeperiod['start_date']); $maintenanceForm->addVar('timeperiods[' . $id . '][period]', $timeperiod['period']); } $maintenancePeriodFormList->addRow(_('Periods'), array($maintenancePeriodTable, new CSubmit('new_timeperiod', _('New'), null, 'link_menu'), SPACE, SPACE, new CSubmit('del_timeperiod', _('Delete selected'), null, 'link_menu'))); if (isset($_REQUEST['new_timeperiod'])) { $label = is_array($_REQUEST['new_timeperiod']) && isset($_REQUEST['new_timeperiod']['id']) ? _('Edit maintenance period') : _('New maintenance period');