Ejemplo n.º 1
0
function make_favorite_screens()
{
    $table = new CTableInfo();
    $fav_screens = get_favorites('web.favorite.screenids');
    foreach ($fav_screens as $key => $favorite) {
        $source = $favorite['source'];
        $sourceid = $favorite['value'];
        if ('slideshowid' == $source) {
            if (!($slide = get_slideshow_by_slideshowid($sourceid))) {
                continue;
            }
            if (!slideshow_accessible($sourceid, PERM_READ_ONLY)) {
                continue;
            }
            $link = new CLink(get_node_name_by_elid($sourceid) . $slide['name'], 'screens.php?config=1&elementid=' . $sourceid);
            $link->setTarget('blank');
            $capt = new CSpan($link);
            $capt->setAttribute('style', 'line-height: 14px; vertical-align: middle;');
            $icon = new CLink(new CImg('images/general/chart.png', 'screen', 18, 18, 'borderless'), 'screens.php?config=1&elementid=' . $sourceid . '&fullscreen=1');
            $icon->setTarget('blank');
        } else {
            if (!($screen = get_screen_by_screenid($sourceid))) {
                continue;
            }
            if (!screen_accessible($sourceid, PERM_READ_ONLY)) {
                continue;
            }
            $link = new CLink(get_node_name_by_elid($sourceid) . $screen['name'], 'screens.php?config=0&elementid=' . $sourceid);
            $link->setTarget('blank');
            $capt = new CSpan($link);
            $capt->setAttribute('style', 'line-height: 14px; vertical-align: middle;');
            $icon = new CLink(new CImg('images/general/chart.png', 'screen', 18, 18, 'borderless'), 'screens.php?config=0&elementid=' . $sourceid . '&fullscreen=1');
            $icon->setTarget('blank');
        }
        $table->addRow(new CCol(array($icon, SPACE, $capt)));
    }
    $td = new CCol(array(new CLink(S_SCREENS . ' »', 'screens.php', 'highlight')));
    $td->setAttribute('style', 'text-align: right;');
    $table->setFooter($td);
    return $table;
}
Ejemplo n.º 2
0
function make_screen_submenu()
{
    $favScreens = array();
    $fav_screens = CFavorite::get('web.favorite.screenids');
    if (!$fav_screens) {
        return $favScreens;
    }
    $screenids = array();
    foreach ($fav_screens as $favorite) {
        if ('screenid' == $favorite['source']) {
            $screenids[$favorite['value']] = $favorite['value'];
        }
    }
    $options = array('screenids' => $screenids, 'output' => array('screenid', 'name'));
    $screens = API::Screen()->get($options);
    $screens = zbx_toHash($screens, 'screenid');
    foreach ($fav_screens as $favorite) {
        $source = $favorite['source'];
        $sourceid = $favorite['value'];
        if ('slideshowid' == $source) {
            if (!slideshow_accessible($sourceid, PERM_READ)) {
                continue;
            }
            if (!($slide = get_slideshow_by_slideshowid($sourceid))) {
                continue;
            }
            $slide_added = true;
            $favScreens[] = array('name' => $slide['name'], 'favobj' => 'slideshowid', 'favid' => $slide['slideshowid'], 'favaction' => 'remove');
        } else {
            if (!isset($screens[$sourceid])) {
                continue;
            }
            $screen = $screens[$sourceid];
            $screen_added = true;
            $favScreens[] = array('name' => $screen['name'], 'favobj' => 'screenid', 'favid' => $screen['screenid'], 'favaction' => 'remove');
        }
    }
    if (isset($screen_added)) {
        $favScreens[] = array('name' => _('Remove') . ' ' . _('All') . ' ' . _('Screens'), 'favobj' => 'screenid', 'favid' => 0, 'favaction' => 'remove');
    }
    if (isset($slide_added)) {
        $favScreens[] = array('name' => _('Remove') . ' ' . _('All') . ' ' . _('Slides'), 'favobj' => 'slideshowid', 'favid' => 0, 'favaction' => 'remove');
    }
    return $favScreens;
}
Ejemplo n.º 3
0
while ($row = DBfetch($result)) {
    if (!slideshow_accessible($row['elementid'], PERM_READ_ONLY)) {
        continue;
    }
    $cmbElements->addItem($row['elementid'], get_node_name_by_elid($row['elementid']) . $row['name']);
    if (bccomp($elementid, $row['elementid']) == 0) {
        $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) {
Ejemplo n.º 4
0
 /**
  * Prepare data for favourite screens menu popup.
  *
  * @return array
  */
 public static function getFavouriteScreens()
 {
     $screens = $slideshows = array();
     $favourites = CFavorite::get('web.favorite.screenids');
     if ($favourites) {
         $screenIds = $slideshowIds = array();
         foreach ($favourites as $favourite) {
             if ($favourite['source'] === 'screenid') {
                 $screenIds[$favourite['value']] = $favourite['value'];
             }
         }
         $dbScreens = API::Screen()->get(array('output' => array('screenid', 'name'), 'screenids' => $screenIds, 'preservekeys' => true));
         foreach ($favourites as $favourite) {
             $sourceId = $favourite['value'];
             if ($favourite['source'] === 'slideshowid') {
                 if (slideshow_accessible($sourceId, PERM_READ)) {
                     $dbSlideshow = get_slideshow_by_slideshowid($sourceId);
                     if ($dbSlideshow) {
                         $slideshows[] = array('id' => $dbSlideshow['slideshowid'], 'label' => $dbSlideshow['name']);
                     }
                 }
             } else {
                 if (isset($dbScreens[$sourceId])) {
                     $dbScreen = $dbScreens[$sourceId];
                     $screens[] = array('id' => $dbScreen['screenid'], 'label' => $dbScreen['name']);
                 }
             }
         }
     }
     return array('type' => 'favouriteScreens', 'screens' => $screens, 'slideshows' => $slideshows);
 }
Ejemplo n.º 5
0
/**
 * Get favourite screens and slide shows data.
 *
 * @return array['screens']
 * @return array['slideshows']
 */
function getFavouriteScreensData()
{
    $screens = $slideshows = [];
    $favourites = CFavorite::get('web.favorite.screenids');
    if ($favourites) {
        $screenIds = $slideshowIds = [];
        foreach ($favourites as $favourite) {
            if ($favourite['source'] === 'screenid') {
                $screenIds[$favourite['value']] = $favourite['value'];
            }
        }
        $dbScreens = API::Screen()->get(['output' => ['screenid', 'name'], 'screenids' => $screenIds, 'preservekeys' => true]);
        foreach ($favourites as $favourite) {
            $sourceId = $favourite['value'];
            if ($favourite['source'] === 'slideshowid') {
                if (slideshow_accessible($sourceId, PERM_READ)) {
                    $dbSlideshow = get_slideshow_by_slideshowid($sourceId, PERM_READ);
                    if ($dbSlideshow) {
                        $slideshows[] = ['id' => $dbSlideshow['slideshowid'], 'label' => $dbSlideshow['name']];
                    }
                }
            } else {
                if (isset($dbScreens[$sourceId])) {
                    $dbScreen = $dbScreens[$sourceId];
                    $screens[] = ['id' => $dbScreen['screenid'], 'label' => $dbScreen['name']];
                }
            }
        }
    }
    return ['screens' => $screens, 'slideshows' => $slideshows];
}
$slideWidget = new CWidget();
// create new hostgroup button
$createForm = new CForm('get');
$createForm->cleanItems();
$createForm->addItem(new CSubmit('form', _('Create slide show')));
$slideWidget->addPageHeader(_('CONFIGURATION OF SLIDE SHOWS'), $createForm);
$slideWidget->addHeader(_('Slide shows'));
$slideWidget->addHeaderRowNumber();
// create form
$slideForm = new CForm();
$slideForm->setName('slideForm');
// create table
$slidesTable = new CTableInfo(_('No slide shows defined.'));
$slidesTable->setHeader(array(new CCheckBox('all_shows', null, "checkAll('" . $slideForm->getName() . "', 'all_shows', 'shows');"), make_sorting_header(_('Name'), 'name'), make_sorting_header(_('Delay'), 'delay'), make_sorting_header(_('Count of slides'), 'cnt')));
foreach ($this->data['slides'] as $slide) {
    if (!slideshow_accessible($slide['slideshowid'], PERM_READ_WRITE)) {
        continue;
    }
    $slidesTable->addRow(array(new CCheckBox('shows[' . $slide['slideshowid'] . ']', null, null, $slide['slideshowid']), new CLink($slide['name'], '?config=1&form=update&slideshowid=' . $slide['slideshowid'], 'action'), $slide['delay'], $slide['cnt']));
}
// create go button
$goComboBox = new CComboBox('go');
$goOption = new CComboItem('delete', _('Delete selected'));
$goOption->setAttribute('confirm', _('Delete selected slide shows?'));
$goComboBox->addItem($goOption);
$goButton = new CSubmit('goButton', _('Go') . ' (0)');
$goButton->setAttribute('id', 'goButton');
zbx_add_post_js('chkbxRange.pageGoName = "shows";');
// append table to form
$slideForm->addItem(array($this->data['paging'], $slidesTable, $this->data['paging'], get_table_header(array($goComboBox, $goButton))));
// append form to widget
Ejemplo n.º 7
0
            CProfile::update('web.slides.timelinefixed', $_REQUEST['favid'], PROFILE_TYPE_INT);
        }
    }
}
if ($page['type'] == PAGE_TYPE_JS || $page['type'] == PAGE_TYPE_HTML_BLOCK) {
    require_once dirname(__FILE__) . '/include/page_footer.php';
    exit;
}
/*
 * Display
 */
$data = array('fullscreen' => $_REQUEST['fullscreen'], 'slideshows' => array());
// get slideshows
$db_slideshows = DBselect('SELECT s.slideshowid,s.name' . ' FROM slideshows s' . whereDbNode('s.slideshowid'));
while ($slideshow = DBfetch($db_slideshows)) {
    if (slideshow_accessible($slideshow['slideshowid'], PERM_READ)) {
        $data['slideshows'][$slideshow['slideshowid']] = $slideshow;
    }
}
order_result($data['slideshows'], 'name');
// get element id
$data['elementid'] = get_request('elementid', CProfile::get('web.slides.elementid', null));
CProfile::update('web.slides.elementid', $data['elementid'], PROFILE_TYPE_ID);
if (!isset($data['slideshows'][$data['elementid']])) {
    $slideshow = reset($data['slideshows']);
    $data['elementid'] = $slideshow['slideshowid'];
}
// get screen
$data['screen'] = empty($data['elementid']) ? array() : get_slideshow($data['elementid'], 0);
if (!empty($data['screen'])) {
    // get groups and hosts
Ejemplo n.º 8
0
$page['file'] = 'slideconf.php';
$page['type'] = detect_page_type(PAGE_TYPE_HTML);
$page['hist_arg'] = array();
require_once dirname(__FILE__) . '/include/page_header.php';
//	VAR		TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
$fields = array('shows' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null), 'slideshowid' => array(T_ZBX_INT, O_NO, P_SYS, DB_ID, '(isset({form})&&({form}=="update"))'), 'name' => array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, 'isset({save})', _('Name')), 'delay' => array(T_ZBX_INT, O_OPT, null, BETWEEN(1, SEC_PER_DAY), 'isset({save})', _('Default delay (in seconds)')), 'slides' => array(null, O_OPT, null, null, null), 'go' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'clone' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'save' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'delete' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'cancel' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'form' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'form_refresh' => array(T_ZBX_INT, O_OPT, null, null, null));
check_fields($fields);
validate_sort_and_sortorder('name', ZBX_SORT_UP);
if (!empty($_REQUEST['slides'])) {
    natksort($_REQUEST['slides']);
}
/*
 * Permissions
 */
if (isset($_REQUEST['slideshowid'])) {
    if (!slideshow_accessible($_REQUEST['slideshowid'], PERM_READ_WRITE)) {
        access_deny();
    }
    $dbSlideshow = get_slideshow_by_slideshowid(get_request('slideshowid'));
    if (empty($dbSlideshow)) {
        access_deny();
    }
}
if (isset($_REQUEST['go'])) {
    if (!isset($_REQUEST['shows']) || !is_array($_REQUEST['shows'])) {
        access_deny();
    } else {
        $dbSlideshowChk = DBfetch(DBselect('SELECT COUNT(*) AS cnt FROM slideshows s WHERE ' . dbConditionInt('s.slideshowid', $_REQUEST['shows'])));
        if ($dbSlideshowChk['cnt'] != count($_REQUEST['shows'])) {
            access_deny();
        }
Ejemplo n.º 9
0
 require_once dirname(__FILE__) . '/include/screens.inc.php';
 $form = new CForm();
 $form->setName('slideform');
 $form->setAttribute('id', 'slides');
 $table = new CTableInfo(_('No slides found.'));
 if ($multiselect) {
     $header = array(array(new CCheckBox('all_slides', null, "javascript: checkAll('" . $form->getName() . "', 'all_slides', 'slides');"), _('Name')));
 } else {
     $header = array(_('Name'));
 }
 $table->setHeader($header);
 $slideshows = array();
 $dbSlideshows = DBfetchArray(DBselect('SELECT s.slideshowid,s.name' . ' FROM slideshows s' . whereDbNode('s.slideshowid', $nodeId)));
 order_result($dbSlideshows, 'name');
 foreach ($dbSlideshows as $dbSlideshow) {
     if (!slideshow_accessible($dbSlideshow['slideshowid'], PERM_READ)) {
         continue;
     }
     $slideshows[$dbSlideshow['slideshowid']] = $dbSlideshow;
     $name = new CLink($dbSlideshow['name'], '#');
     if ($multiselect) {
         $js_action = 'javascript: addValue(' . zbx_jsvalue($reference) . ', ' . zbx_jsvalue($dbSlideshow['slideshowid']) . ');';
     } else {
         $values = array($dstfld1 => $dbSlideshow[$srcfld1], $dstfld2 => $dbSlideshow[$srcfld2]);
         $js_action = 'javascript: addValues(' . zbx_jsvalue($dstfrm) . ', ' . zbx_jsvalue($values) . '); close_window(); return false;';
     }
     $name->setAttribute('onclick', $js_action . ' jQuery(this).removeAttr("onclick");');
     if ($multiselect) {
         $name = new CCol(array(new CCheckBox('slides[' . zbx_jsValue($dbSlideshow[$srcfld1]) . ']', null, null, $dbSlideshow['slideshowid']), $name));
     }
     $table->addRow($name);
Ejemplo n.º 10
0
             $action = get_window_opener($dstfrm, $dstfld1, $srctbl) . get_window_opener($dstfrm, $dstfld2, $row[$srcfld2]) . "window.opener.setTimeout('add2favorites();', 1000);";
         } else {
             $action = get_window_opener($dstfrm, $dstfld1, $row[$srcfld1]) . get_window_opener($dstfrm, $dstfld2, $row[$srcfld2]);
         }
         $description->SetAction($action . ' close_window(); return false;');
         $table->addRow(array($hostid > 0 ? null : $row['host'], $description, item_type2str($row['type']), item_value_type2str($row['value_type']), new CSpan(item_status2str($row['status']), item_status2style($row['status']))));
     }
     $table->Show();
 } else {
     if ('slides' == $srctbl) {
         require_once 'include/screens.inc.php';
         $table = new CTableInfo(S_NO_NODES_DEFINED);
         $table->SetHeader(S_NAME);
         $result = DBselect('select slideshowid,name from slideshows where ' . DBin_node('slideshowid', $nodeid) . ' ORDER BY name');
         while ($row = DBfetch($result)) {
             if (!slideshow_accessible($row['slideshowid'], PERM_READ_ONLY)) {
                 continue;
             }
             $name = new CLink($row['name'], '#', 'action');
             if (isset($_REQUEST['reference']) && $_REQUEST['reference'] == 'dashboard') {
                 $action = get_window_opener($dstfrm, $dstfld1, $srcfld2) . get_window_opener($dstfrm, $dstfld2, $row[$srcfld2]) . "window.opener.setTimeout('add2favorites();', 1000);";
             } else {
                 $action = get_window_opener($dstfrm, $dstfld1, $row[$srcfld1]) . (isset($srcfld2) ? get_window_opener($dstfrm, $dstfld2, $row[$srcfld2]) : '');
             }
             $name->SetAction($action . " close_window(); return false;");
             $table->addRow($name);
         }
         $table->Show();
     } else {
         if ($srctbl == 'screens') {
             require_once 'include/screens.inc.php';
Ejemplo n.º 11
0
function make_screen_submenu()
{
    $fav_screens = get_favorites('web.favorite.screenids');
    $screenids = array();
    foreach ($fav_screens as $key => $favorite) {
        if ('screenid' == $favorite['source']) {
            $screenids[$favorite['value']] = $favorite['value'];
        }
    }
    $options = array('screenids' => $screenids, 'output' => API_OUTPUT_EXTEND);
    $screens = CScreen::get($options);
    $screens = zbx_toHash($screens, 'screenid');
    $favScreens = array();
    foreach ($fav_screens as $key => $favorite) {
        $source = $favorite['source'];
        $sourceid = $favorite['value'];
        if ('slideshowid' == $source) {
            if (!slideshow_accessible($sourceid, PERM_READ_ONLY)) {
                continue;
            }
            if (!($slide = get_slideshow_by_slideshowid($sourceid))) {
                continue;
            }
            $slide_added = true;
            $favScreens[] = array('name' => $slide['name'], 'favobj' => 'slideshowid', 'favid' => $slide['slideshowid'], 'action' => 'remove');
        } else {
            if (!isset($screens[$sourceid])) {
                continue;
            }
            $screen = $screens[$sourceid];
            $screen_added = true;
            $favScreens[] = array('name' => $screen['name'], 'favobj' => 'screenid', 'favid' => $screen['screenid'], 'action' => 'remove');
        }
    }
    if (isset($screen_added)) {
        $favScreens[] = array('name' => S_REMOVE . SPACE . S_ALL_S . SPACE . S_SCREENS, 'favobj' => 'screenid', 'favid' => 0, 'action' => 'remove');
    }
    if (isset($slide_added)) {
        $favScreens[] = array('name' => S_REMOVE . SPACE . S_ALL_S . SPACE . S_SLIDES, 'favobj' => 'slideshowid', 'favid' => 0, 'action' => 'remove');
    }
    return $favScreens;
}