Example #1
0
imageText($im, 10, 0, $x, 14, $darkred, $str);
$now = time(null);
$count_now = array();
$true = array();
$false = array();
$start = mktime(0, 0, 0, 1, 1, date('Y'));
$wday = date('w', $start);
if ($wday == 0) {
    $wday = 7;
}
$start = $start - ($wday - 1) * SEC_PER_DAY;
$weeks = (int) (date('z') / 7 + 1);
for ($i = 0; $i < $weeks; $i++) {
    $periodStart = $start + SEC_PER_WEEK * $i;
    $periodEnd = $start + SEC_PER_WEEK * ($i + 1);
    $stat = calculateAvailability(getRequest('triggerid'), $periodStart, $periodEnd);
    $true[$i] = $stat['true'];
    $false[$i] = $stat['false'];
    $count_now[$i] = 1;
}
for ($i = 0; $i <= $sizeY; $i += $sizeY / 10) {
    dashedLine($im, $shiftX, $i + $shiftYup, $sizeX + $shiftX, $i + $shiftYup, $gray);
}
for ($i = 0, $periodStart = $start; $i <= $sizeX; $i += $sizeX / 52) {
    dashedLine($im, $i + $shiftX, $shiftYup, $i + $shiftX, $sizeY + $shiftYup, $gray);
    imageText($im, 6, 90, $i + $shiftX + 4, $sizeY + $shiftYup + 30, $black, zbx_date2str(_('d.M'), $periodStart));
    $periodStart += SEC_PER_WEEK;
}
$maxY = max(max($true), 100);
$minY = 0;
$maxX = 900;
Example #2
0
    }
    // filter period
    $timeSinceRow = createDateSelector('filter_timesince', $_REQUEST['filter_timesince'], 'filter_timetill');
    array_unshift($timeSinceRow, _('From'));
    $timeTillRow = createDateSelector('filter_timetill', $_REQUEST['filter_timetill'], 'filter_timesince');
    array_unshift($timeTillRow, _('Till'));
    $filterPeriodTable = new CTable(null, 'calendar');
    $filterPeriodTable->addRow($timeSinceRow);
    $filterPeriodTable->addRow($timeTillRow);
    $filterForm->addRow(_('Period'), $filterPeriodTable);
    // filter buttons
    $filterForm->addItemToBottomRow(new CSubmit('filter_set', _('Filter')));
    $filterForm->addItemToBottomRow(new CSubmit('filter_rst', _('Reset')));
    $reportWidget->addFlicker($filterForm, CProfile::get('web.avail_report.filter.state', 0));
    /*
     * Triggers
     */
    $triggerTable = new CTableInfo(_('No triggers found.'));
    $triggerTable->setHeader(array($_REQUEST['filter_hostid'] == 0 || $availabilityReportMode == AVAILABILITY_REPORT_BY_TEMPLATE ? _('Host') : null, _('Name'), _('Problems'), _('Ok'), _('Graph')));
    $triggers = API::Trigger()->get($triggerOptions);
    CArrayHelper::sort($triggers, array('host', 'description'));
    $paging = getPagingLine($triggers);
    foreach ($triggers as $trigger) {
        $availability = calculateAvailability($trigger['triggerid'], getRequest('filter_timesince'), getRequest('filter_timetill'));
        $triggerTable->addRow(array($_REQUEST['filter_hostid'] == 0 || $availabilityReportMode == AVAILABILITY_REPORT_BY_TEMPLATE ? $trigger['hosts'][0]['name'] : null, new CLink($trigger['description'], 'events.php?filter_set=1&triggerid=' . $trigger['triggerid'] . '&source=' . EVENT_SOURCE_TRIGGERS), new CSpan(sprintf('%.4f%%', $availability['true']), 'on'), new CSpan(sprintf('%.4f%%', $availability['false']), 'off'), new CLink(_('Show'), 'report2.php?filter_groupid=' . $_REQUEST['filter_groupid'] . '&filter_hostid=' . $_REQUEST['filter_hostid'] . '&triggerid=' . $trigger['triggerid'])));
    }
    $reportWidget->addItem(BR());
    $reportWidget->addItem(array($paging, $triggerTable, $paging));
    $reportWidget->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';