if ($data['screen']) { $data['elementId'] = getRequest('elementid'); CProfile::update('web.slides.elementid', getRequest('elementid'), PROFILE_TYPE_ID); } else { $data['elementId'] = CProfile::get('web.slides.elementid'); $data['screen'] = get_slideshow_by_slideshowid($data['elementId'], PERM_READ); if (!$data['screen']) { // Redirect to slide show list. ob_end_clean(); redirect('slideconf.php'); } } $data['fullscreen'] = getRequest('fullscreen'); if ($data['screen']) { // get groups and hosts if (check_dynamic_items($data['elementId'], 1)) { $data['isDynamicItems'] = true; $data['pageFilter'] = new CPageFilter(['groups' => ['monitored_hosts' => true, 'with_items' => true], 'hosts' => ['monitored_hosts' => true, 'with_items' => true, 'DDFirstLabel' => _('not selected')], 'hostid' => getRequest('hostid'), 'groupid' => getRequest('groupid')]); $data['groupid'] = $data['pageFilter']->groupid; $data['hostid'] = $data['pageFilter']->hostid; } // get element $data['element'] = get_slideshow_by_slideshowid($data['elementId'], PERM_READ); $data['screen']['editable'] = (bool) get_slideshow_by_slideshowid($data['elementId'], PERM_READ_WRITE); if ($data['screen']['delay'] > 0) { $data['element']['delay'] = $data['screen']['delay']; } show_messages(); } // refresh $data['refreshMultiplier'] = CProfile::get('web.slides.rf_rate.' . WIDGET_SLIDESHOW, 1, $data['elementId']);
// 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;
** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** 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(_('Screens'))->addItem((new CList())->addClass(ZBX_STYLE_OBJECT_GROUP)->addItem([(new CSpan())->addItem(new CLink(_('All screens'), 'screenconf.php')), '/', (new CSpan())->addClass(ZBX_STYLE_SELECTED)->addItem(new CLink($data['screen']['name'], 'screens.php?elementid=' . $data['screen']['screenid'] . '&fullscreen=' . $data['fullscreen']))]))->addItem((new CFilter('web.screens.filter.state'))->addNavigator()); $controls = (new CList())->addItem(new CComboBox('config', 'screens.php', 'redirect(this.options[this.selectedIndex].value);', ['screens.php' => _('Screens'), 'slides.php' => _('Slide shows')])); // Append screens combobox to page header. $form = (new CForm())->setName('headerForm')->addVar('fullscreen', $data['fullscreen']); if (check_dynamic_items($data['screen']['screenid'], 0)) { $pageFilter = new CPageFilter(['groups' => ['monitored_hosts' => true, 'with_items' => true], 'hosts' => ['monitored_hosts' => true, 'with_items' => true, 'DDFirstLabel' => _('not selected')], 'hostid' => getRequest('hostid'), 'groupid' => getRequest('groupid')]); $_REQUEST['groupid'] = $pageFilter->groupid; $_REQUEST['hostid'] = $pageFilter->hostid; $controls->addItem([_('Group') . SPACE, $pageFilter->getGroupsCB()])->addItem([_('Host') . SPACE, $pageFilter->getHostsCB()]); } // page header $controls->addItem($data['screen']['editable'] ? (new CButton('edit', _('Edit screen')))->onClick('redirect("screenedit.php?screenid=' . $data['screen']['screenid'] . '")') : null)->addItem(get_icon('favourite', ['fav' => 'web.favorite.screenids', 'elname' => 'screenid', 'elid' => $data['screen']['screenid']]))->addItem(get_icon('fullscreen', ['fullscreen' => $data['fullscreen']])); $form->addItem($controls); $widget->setControls($form); // Append screens to widget. $screenBuilder = new CScreenBuilder(['screenid' => $data['screen']['screenid'], 'mode' => SCREEN_MODE_PREVIEW, 'profileIdx' => 'web.screens', 'profileIdx2' => $data['screen']['screenid'], 'groupid' => getRequest('groupid'), 'hostid' => getRequest('hostid'), 'period' => $data['period'], 'stime' => $data['stime']]); $widget->addItem((new CDiv($screenBuilder->show()))->addClass(ZBX_STYLE_TABLE_FORMS_CONTAINER)); CScreenBuilder::insertScreenStandardJs(['timeline' => $screenBuilder->timeline, 'profileIdx' => $screenBuilder->profileIdx]); return $widget;
$element_correct = 1; } if (!isset($first_element)) { $first_element = $row['elementid']; } } if (!isset($element_correct) && isset($first_element)) { $elementid = $first_element; } if (isset($elementid) && !slideshow_accessible($elementid, PERM_READ_ONLY)) { access_deny(); } if ($cmbElements->ItemsCount() > 0) { $form->addItem(array(SPACE . S_SLIDESHOW . SPACE, $cmbElements)); } if (2 != $_REQUEST['fullscreen'] && !empty($elementid) && check_dynamic_items($elementid, 1)) { if (!isset($_REQUEST['hostid'])) { $_REQUEST['groupid'] = $_REQUEST['hostid'] = 0; } $options = array('allow_all_hosts', 'monitored_hosts', 'with_items'); if (!$ZBX_WITH_ALL_NODES) { array_push($options, 'only_current_node'); } $params = array(); foreach ($options as $option) { $params[$option] = 1; } $PAGE_GROUPS = get_viewed_groups(PERM_READ_ONLY, $params); $PAGE_HOSTS = get_viewed_hosts(PERM_READ_ONLY, $PAGE_GROUPS['selected'], $params); //SDI($_REQUEST['groupid'].' : '.$_REQUEST['hostid']); validate_group_with_host($PAGE_GROUPS, $PAGE_HOSTS);
$form->addVar('fullscreen', $_REQUEST['fullscreen']); $cmbElements = new CComboBox('elementid', $screen['screenid'], 'submit()'); foreach ($screens as $snum => $scr) { /** * Adding htmlspecialchars function to output of the screen name, so * that it would be available to use symbols like ">" in screen names * @see ZBX-2844 * @author Konstantin Buravcov */ $displayed_screen_name = htmlspecialchars(get_node_name_by_elid($scr['screenid'], null, ': ') . $scr['name']); $cmbElements->addItem($scr['screenid'], $displayed_screen_name); } $form->addItem(array(S_SCREENS . SPACE, $cmbElements)); $screens_wdgt->addHeader($element_name, $form); // }}} HEADER if (2 != $_REQUEST['fullscreen'] && check_dynamic_items($screen['screenid'], 0)) { if (!isset($_REQUEST['hostid'])) { $_REQUEST['groupid'] = $_REQUEST['hostid'] = 0; } $options = array('allow_all_hosts', 'monitored_hosts', 'with_items'); if (!$ZBX_WITH_ALL_NODES) { array_push($options, 'only_current_node'); } $params = array(); foreach ($options as $option) { $params[$option] = 1; } $PAGE_GROUPS = get_viewed_groups(PERM_READ_ONLY, $params); $PAGE_HOSTS = get_viewed_hosts(PERM_READ_ONLY, $PAGE_GROUPS['selected'], $params); //SDI($_REQUEST['groupid'].' : '.$_REQUEST['hostid']); validate_group_with_host($PAGE_GROUPS, $PAGE_HOSTS);