Exemplo n.º 1
0
 */
if ((hasRequest('widgetRefresh') || hasRequest('widgetRefreshRate')) && $data['screen']) {
    $elementId = getRequest('elementid');
    $screen = getSlideshowScreens($elementId, getRequest('upd_counter'));
    // display screens
    $dbScreens = API::Screen()->get(['screenids' => $screen['screenid'], 'output' => API_OUTPUT_EXTEND, 'selectScreenItems' => API_OUTPUT_EXTEND]);
    if (!$dbScreens) {
        insert_js('alert("' . _('No permissions') . '");');
    } else {
        $dbScreen = reset($dbScreens);
        // get fresh widget data
        if (hasRequest('widgetRefresh')) {
            $screenBuilder = new CScreenBuilder(['screen' => $dbScreen, 'mode' => SCREEN_MODE_PREVIEW, 'profileIdx' => 'web.slides', 'profileIdx2' => $elementId, 'hostid' => getRequest('hostid'), 'period' => getRequest('period'), 'stime' => getRequest('stime')]);
            CScreenBuilder::insertScreenCleanJs();
            echo (new CDiv($screenBuilder->show()))->addClass(ZBX_STYLE_TABLE_FORMS_CONTAINER)->toString();
            CScreenBuilder::insertScreenStandardJs(['timeline' => $screenBuilder->timeline, 'profileIdx' => $screenBuilder->profileIdx]);
            insertPagePostJs();
        }
        // refresh rate
        if (hasRequest('widgetRefreshRate')) {
            $widgetRefreshRate = substr(getRequest('widgetRefreshRate'), 1);
            CProfile::update('web.slides.rf_rate.' . WIDGET_SLIDESHOW, $widgetRefreshRate, PROFILE_TYPE_STR, $elementId);
        } else {
            $widgetRefreshRate = CProfile::get('web.slides.rf_rate.' . WIDGET_SLIDESHOW, 1, getRequest('elementid', CProfile::get('web.slides.elementid')));
        }
        $delay = $screen['delay'] > 0 ? $screen['delay'] : $data['screen']['delay'];
        insert_js('PMasters["slideshows"].dolls["' . WIDGET_SLIDESHOW . '"].frequency(' . CJs::encodeJson($delay * $widgetRefreshRate) . ');' . "\n" . 'PMasters["slideshows"].dolls["' . WIDGET_SLIDESHOW . '"].restartDoll();');
    }
}
// filter state
if (hasRequest('favobj') && hasRequest('favid')) {
Exemplo n.º 2
0
** 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.
**/
$chartsWidget = (new CWidget())->setTitle(_('Graphs'));
$controls = (new CList())->addItem([_('Group') . SPACE, $this->data['pageFilter']->getGroupsCB()])->addItem([_('Host') . SPACE, $this->data['pageFilter']->getHostsCB()])->addItem([_('Graph') . SPACE, $this->data['pageFilter']->getGraphsCB()]);
if ($this->data['graphid']) {
    $controls->addItem(get_icon('favourite', ['fav' => 'web.favorite.graphids', 'elname' => 'graphid', 'elid' => $this->data['graphid']]));
    $controls->addItem(get_icon('reset', ['id' => $this->data['graphid']]));
    $controls->addItem(get_icon('fullscreen', ['fullscreen' => $this->data['fullscreen']]));
} else {
    $controls->addItem([get_icon('fullscreen', ['fullscreen' => $this->data['fullscreen']])]);
}
$chartForm = (new CForm('get'))->addVar('fullscreen', $this->data['fullscreen'])->addItem($controls);
$chartsWidget->setControls($chartForm);
$filterForm = (new CFilter('web.charts.filter.state'))->addNavigator();
$chartsWidget->addItem($filterForm);
if (!empty($this->data['graphid'])) {
    // append chart to widget
    $screen = CScreenBuilder::getScreen(['resourcetype' => SCREEN_RESOURCE_CHART, 'graphid' => $this->data['graphid'], 'profileIdx' => 'web.screens', 'profileIdx2' => $this->data['graphid']]);
    $chartTable = (new CTable())->setAttribute('style', 'width: 100%;')->addRow($screen->get());
    $chartsWidget->addItem($chartTable);
    CScreenBuilder::insertScreenStandardJs(['timeline' => $screen->timeline, 'profileIdx' => $screen->profileIdx]);
} else {
    $screen = new CScreenBuilder();
    CScreenBuilder::insertScreenStandardJs(['timeline' => $screen->timeline]);
    $chartsWidget->addItem(new CTableInfo());
}
return $chartsWidget;
Exemplo n.º 3
0
    // if elementid is used to fetch an element, saving it in profile
    if (!$this->data['use_screen_name']) {
        CProfile::update('web.screens.elementid', $screen['screenid'], PROFILE_TYPE_ID);
    }
    // page header
    $screenWidget->addPageHeader(_('SCREENS'), array($headerForm, SPACE, get_icon('favourite', array('fav' => 'web.favorite.screenids', 'elname' => 'screenid', 'elid' => $screen['screenid'])), SPACE, get_icon('fullscreen', array('fullscreen' => $this->data['fullscreen']))));
    $screenWidget->addItem(BR());
    // append screens combobox to page header
    $headerForm = new CForm('get');
    $headerForm->setName('headerForm');
    $headerForm->addVar('fullscreen', $this->data['fullscreen']);
    $elementsComboBox = new CComboBox('elementid', $screen['screenid'], 'submit()');
    foreach ($this->data['screens'] as $dbScreen) {
        $elementsComboBox->addItem($dbScreen['screenid'], htmlspecialchars(get_node_name_by_elid($dbScreen['screenid'], null, NAME_DELIMITER) . $dbScreen['name']));
    }
    $headerForm->addItem(array(_('Screens') . SPACE, $elementsComboBox));
    if (check_dynamic_items($screen['screenid'], 0)) {
        $pageFilter = new CPageFilter(array('groups' => array('monitored_hosts' => true, 'with_items' => true), 'hosts' => array('monitored_hosts' => true, 'with_items' => true, 'DDFirstLabel' => _('Default')), 'hostid' => get_request('hostid', null), 'groupid' => get_request('groupid', null)));
        $_REQUEST['groupid'] = $pageFilter->groupid;
        $_REQUEST['hostid'] = $pageFilter->hostid;
        $headerForm->addItem(array(SPACE, _('Group'), SPACE, $pageFilter->getGroupsCB(true)));
        $headerForm->addItem(array(SPACE, _('Host'), SPACE, $pageFilter->getHostsCB(true)));
    }
    $screenWidget->addHeader($screen['name'], $headerForm);
    // append screens to widget
    $screenBuilder = new CScreenBuilder(array('screenid' => $screen['screenid'], 'mode' => SCREEN_MODE_PREVIEW, 'profileIdx' => 'web.screens', 'profileIdx2' => $screen['screenid'], 'groupid' => get_request('groupid'), 'hostid' => get_request('hostid'), 'period' => $this->data['period'], 'stime' => $this->data['stime']));
    $screenWidget->addItem($screenBuilder->show());
    CScreenBuilder::insertScreenStandardJs(array('timeline' => $screenBuilder->timeline, 'profileIdx' => $screenBuilder->profileIdx));
    $screenWidget->addItem(BR());
}
return $screenWidget;
Exemplo n.º 4
0
** 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.
**/
$chartsWidget = new CWidget('hat_charts');
$chartForm = new CForm('get');
$chartForm->addVar('fullscreen', $this->data['fullscreen']);
$chartForm->addItem(array(_('Group') . SPACE, $this->data['pageFilter']->getGroupsCB(true)));
$chartForm->addItem(array(SPACE . _('Host') . SPACE, $this->data['pageFilter']->getHostsCB(true)));
$chartForm->addItem(array(SPACE . _('Graph') . SPACE, $this->data['pageFilter']->getGraphsCB(true)));
$chartsWidget->addFlicker(new CDiv(null, null, 'scrollbar_cntr'), CProfile::get('web.charts.filter.state', 1));
if ($this->data['graphid']) {
    $chartsWidget->addPageHeader(_('GRAPHS'), array(get_icon('favourite', array('fav' => 'web.favorite.graphids', 'elname' => 'graphid', 'elid' => $this->data['graphid'])), SPACE, get_icon('reset', array('id' => $this->data['graphid'])), SPACE, get_icon('fullscreen', array('fullscreen' => $this->data['fullscreen']))));
} else {
    $chartsWidget->addPageHeader(_('GRAPHS'), array(get_icon('fullscreen', array('fullscreen' => $this->data['fullscreen']))));
}
$chartsWidget->addHeader(isset($this->data['pageFilter']->graphs[$this->data['graphid']]['name']) ? $this->data['pageFilter']->graphs[$this->data['graphid']]['name'] : null, $chartForm);
$chartsWidget->addItem(BR());
if (!empty($this->data['graphid'])) {
    // append chart to widget
    $screen = CScreenBuilder::getScreen(array('resourcetype' => SCREEN_RESOURCE_CHART, 'graphid' => $this->data['graphid'], 'profileIdx' => 'web.screens', 'profileIdx2' => $this->data['graphid']));
    $chartTable = new CTable(null, 'maxwidth');
    $chartTable->addRow($screen->get());
    $chartsWidget->addItem($chartTable);
    CScreenBuilder::insertScreenStandardJs(array('timeline' => $screen->timeline, 'profileIdx' => $screen->profileIdx));
} else {
    $screen = new CScreenBuilder();
    CScreenBuilder::insertScreenStandardJs(array('timeline' => $screen->timeline));
    $chartsWidget->addItem(new CTableInfo(_('No graphs found.')));
}
return $chartsWidget;