summaryrefslogtreecommitdiffstats
path: root/frontends/php/include
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-16 15:16:10 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-16 15:16:10 +0000
commit951b627274d307ab484d1ae596e7d77a8d63ca30 (patch)
tree44d5dba83c5c74b64fd93e110b26a6fb12187c07 /frontends/php/include
parent7c02f572f78affee6f82830c8ef8b3f089509782 (diff)
downloadzabbix-951b627274d307ab484d1ae596e7d77a8d63ca30.tar.gz
zabbix-951b627274d307ab484d1ae596e7d77a8d63ca30.tar.xz
zabbix-951b627274d307ab484d1ae596e7d77a8d63ca30.zip
- [NTT-43] fixes for "No false for B" (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5065 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include')
-rw-r--r--frontends/php/include/events.inc.php80
1 files changed, 74 insertions, 6 deletions
diff --git a/frontends/php/include/events.inc.php b/frontends/php/include/events.inc.php
index c3683445..10b0ff89 100644
--- a/frontends/php/include/events.inc.php
+++ b/frontends/php/include/events.inc.php
@@ -198,12 +198,12 @@ function event_initial_time($row,$show_unknown=0){
$sql_cond=($show_unknown == 0)?' AND value<>2 ':'';
$events = array();
- $res = DBselect('SELECT MAX(clock) as clock, value '.
- ' FROM events '.
- ' WHERE objectid='.$row['triggerid'].$sql_cond.
- ' AND clock < '.$row['clock'].
- ' AND object='.EVENT_OBJECT_TRIGGER.
- ' GROUP BY value '.
+ $res = DBselect('SELECT MAX(eclock) as clock, e.value '.
+ ' FROM events e'.
+ ' WHERE e.objectid='.$row['triggerid'].$sql_cond.
+ ' AND e.clock < '.$row['clock'].
+ ' AND e.object='.EVENT_OBJECT_TRIGGER.
+ ' GROUP BY e.value '.
' ORDER BY clock DESC');
while($rows = DBfetch($res)){
@@ -221,4 +221,72 @@ function event_initial_time($row,$show_unknown=0){
}
return true;
}
+
+
+function first_initial_eventid($row,$show_unknown=0){
+ $sql_cond=($show_unknown == 0)?' AND value<>2 ':'';
+
+ $events = array();
+
+ $sql = 'SELECT MAX(eventid) as eventid,MAX(clock) as clock, value '.
+ ' FROM events as e '.
+ ' WHERE objectid='.$row['triggerid'].
+ ' AND clock < '.$row['lastchange'].$sql_cond.
+ ' AND object='.EVENT_OBJECT_TRIGGER.
+ ' GROUP BY value '.
+ ' ORDER BY clock DESC';
+ $res = DBselect($sql);
+
+ while($rows = DBfetch($res)){
+ $events[] = $rows;
+ }
+
+ if(empty($events)){
+ $sql = 'SELECT eventid,clock '.
+ ' FROM events as e '.
+ ' WHERE objectid='.$row['triggerid'].$sql_cond.
+ ' AND object='.EVENT_OBJECT_TRIGGER.
+ ' ORDER BY clock ASC';
+ $res = DBselect($sql,1);
+
+ while($rows = DBfetch($res)) return $rows['eventid'];
+ }
+ else if(!empty($events) && ($events[0]['value'] != $row['value'])){
+ $clock = $events[0]['clock'];
+ $sql = 'SELECT eventid,clock '.
+ ' FROM events as e '.
+ ' WHERE clock > '.$clock.
+ ' AND objectid='.$row['triggerid'].$sql_cond.
+ ' AND object='.EVENT_OBJECT_TRIGGER.
+ ' ORDER BY clock ASC';
+
+ $res = DBselect($sql,1);
+
+ while($rows = DBfetch($res)){
+ return $rows['eventid'];
+ }
+
+ $row['lastchange'] = $clock;
+ $row['value'] = $events[0]['value'];
+ return first_initial_eventid($row,$show_unknown=0);
+ }
+ else if(!empty($events) && ($events[0]['value'] == $row['value'])){
+
+ $clock = (count($events) > 1)?($events[1]['clock']):(0);
+
+ $sql = 'SELECT eventid,clock '.
+ ' FROM events as e '.
+ ' WHERE clock > '.$clock.
+ ' AND objectid='.$row['triggerid'].$sql_cond.
+ ' AND object='.EVENT_OBJECT_TRIGGER.
+ ' AND value='.$row['value'].
+ ' ORDER BY clock ASC';
+
+ $res = DBselect($sql,1);
+
+ $rows = DBfetch($res);
+ return $rows['eventid'];
+ }
+return false;
+}
?>