diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-03-16 11:39:29 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-03-16 11:39:29 +0000 |
| commit | df2d967e519775ef67c7e004199fe52caea58f1d (patch) | |
| tree | 1a78d3641a7f4874fa950bde06ad4c185d18efe7 /frontends/php/include/triggers.inc.php | |
| parent | 7aa815c71fb9382e11d5886e91fa36dfae80339d (diff) | |
- developed PopUp menu for overview (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3892 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/triggers.inc.php')
| -rw-r--r-- | frontends/php/include/triggers.inc.php | 83 |
1 files changed, 79 insertions, 4 deletions
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php index fffc4573..a2956927 100644 --- a/frontends/php/include/triggers.inc.php +++ b/frontends/php/include/triggers.inc.php @@ -1095,7 +1095,7 @@ $group_where = ' where'; } - $result=DBselect('select distinct t.description,t.value,t.priority,t.lastchange,h.hostid,h.host'. + $result=DBselect('select distinct t.triggerid,t.description,t.value,t.priority,t.lastchange,h.hostid,h.host'. ' from hosts h,items i,triggers t, functions f '.$group_where. ' h.status='.HOST_STATUS_MONITORED.' and h.hostid=i.hostid and i.itemid=f.itemid and f.triggerid=t.triggerid'. ' and h.hostid in ('.get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY, null, null, $nodeid).') '. @@ -1107,6 +1107,8 @@ { $hosts[$row['host']] = $row['host']; $triggers[$row['description']][$row['host']] = array( + 'hostid' => $row['hostid'], + 'triggerid' => $row['triggerid'], 'value' => $row['value'], 'lastchange' => $row['lastchange'], 'priority' => $row['priority']); @@ -1130,6 +1132,7 @@ foreach($hosts as $hostname) { $style = NULL; + unset($tr_ov_menu); if(isset($trhosts[$hostname])) { switch($trhosts[$hostname]['value']) @@ -1143,10 +1146,82 @@ $style = 'unknown_trigger'; } - if((time(NULL)-$trhosts[$hostname]['lastchange'])<300) $style .= '_blink1'; - elseif((time(NULL)-$trhosts[$hostname]['lastchange'])<900) $style .= '_blink2'; + if((time(NULL)-$trhosts[$hostname]['lastchange'])<300) + $style_img = 'background-image: url(images/gradients/blink1.gif); '. + 'background-position: top left; '. + 'background-repeat: repeate;'; + elseif((time(NULL)-$trhosts[$hostname]['lastchange'])<900) + $style_img = 'background-image: url(images/gradients/blink2.gif); '. + 'background-position: top left; '. + 'background-repeat: repeate;'; + + unset($item_menu); + $tr_ov_menu = array( + /* name, url, (target [tw], statusbar [sb]), css, submenu */ + array(S_TRIGGER, null, null, + array('outer'=> array('pum_oheader'), 'inner'=>array('pum_iheader')) + ), + array(S_EVENTS, 'tr_events.php?triggerid='.$trhosts[$hostname]['triggerid'], array('tw'=>'_blank')) + ); + + $db_items = DBselect('select distinct i.itemid, i.description, i.key_, i.value_type '. + ' from items i, functions f '. + ' where f.itemid=i.itemid and f.triggerid='.$trhosts[$hostname]['triggerid']); + + while($item_data = DBfetch($db_items)) + { + $description = item_description($item_data['description'], $item_data['key_']); + switch($item_data['value_type']) + { + case ITEM_VALUE_TYPE_UINT64: + case ITEM_VALUE_TYPE_FLOAT: + $action = 'showgraph'; + $status_bar = S_SHOW_GRAPH_OF_ITEM.' \''.$description.'\''; + break; + case ITEM_VALUE_TYPE_LOG: + case ITEM_VALUE_TYPE_STR: + case ITEM_VALUE_TYPE_TEXT: + default: + $action = 'showlatest'; + $status_bar = S_SHOW_VALUES_OF_ITEM.' \''.$description.'\''; + break; + } + + if(strlen($description) > 25) $description = substr($description,0,22).'...'; + + $item_menu[$action][] = array( + $description, + 'history.php?action='.$action.'&itemid='.$item_data['itemid'].'&period=3600', + array('tw'=>'_blank', 'sb'=>$status_bar)); + } + if(isset($item_menu['showgraph'])) + { + $tr_ov_menu[] = array(S_GRAPHS, null, null, + array('outer'=> array('pum_oheader'), 'inner'=>array('pum_iheader')) + ); + $tr_ov_menu = array_merge($tr_ov_menu, $item_menu['showgraph']); + } + if(isset($item_menu['showlatest'])) + { + $tr_ov_menu[] = array(S_VALUES, null, null, + array('outer'=> array('pum_oheader'), 'inner'=>array('pum_iheader')) + ); + $tr_ov_menu = array_merge($tr_ov_menu, $item_menu['showlatest']); + } + + unset($item_menu); + } + + $status_col = new CCol(SPACE,$style); + if(isset($style_img)) + $status_col->AddOption('style', $style_img); + + if(isset($tr_ov_menu)) + { + $tr_ov_menu = new CPUMenu($tr_ov_menu,170); + $status_col->OnClick($tr_ov_menu->GetOnActionJS()); } - array_push($table_row,new CCol(SPACE,$style)); + array_push($table_row,$status_col); } $table->AddRow($table_row); } |
