diff -ru zabbix-1.7/frontends/php/include/defines.inc.php zabbix-1.7-patched/frontends/php/include/defines.inc.php --- zabbix-1.7/frontends/php/include/defines.inc.php 2009-05-03 23:00:25.000000000 +0200 +++ zabbix-1.7-patched/frontends/php/include/defines.inc.php 2009-05-04 10:54:50.000000000 +0200 @@ -39,6 +39,7 @@ define('EVENTS_OPTION_NOT_ACK', 3); // use 0 to disable define('EVENTS_OPTION_ONLYTRUE_NOTACK', 4); // use 0 to disable define('EVENTS_OPTION_NOFALSEFORB', 5); // reserved for TRIGGERS_OPTION_NOFALSEFORB, to disable set TRIGGERS_OPTION_NOFALSEFORB to 0 + define('EVENTS_OPTION_EVENT_LAST', 6); define('ZBX_MIN_PERIOD', 3600); // ~1 hour define('ZBX_MAX_PERIOD', 12*31*24*3600); // ~1 year diff -ru zabbix-1.7/frontends/php/include/locales/en_gb.inc.php zabbix-1.7-patched/frontends/php/include/locales/en_gb.inc.php --- zabbix-1.7/frontends/php/include/locales/en_gb.inc.php 2009-05-03 23:00:25.000000000 +0200 +++ zabbix-1.7-patched/frontends/php/include/locales/en_gb.inc.php 2009-05-04 10:57:04.000000000 +0200 @@ -1638,6 +1638,7 @@ 'S_SHOW_NOFALSEFORB'=> 'Show all(no FALSE for B)', 'S_SHOW_UNACKNOWLEDGED'=> 'Show unacknowledged', 'S_SHOW_PROBLEM_UNACKNOWLEDGED'=> 'Show problem-unacknowledged', + 'S_SHOW_PROBLEM_EVENT_LAST'=> 'Show Last', 'S_SHOW_ONLY_FALSE'=> 'Show only FALSE', 'S_SHOW_ONLY_TRUE'=> 'Show only TRUE', 'S_NOT_ACKNOWLEDGED'=> 'Not acknowledged', diff -ru zabbix-1.7/frontends/php/tr_status.php zabbix-1.7-patched/frontends/php/tr_status.php --- zabbix-1.7/frontends/php/tr_status.php 2009-05-03 23:00:26.000000000 +0200 +++ zabbix-1.7-patched/frontends/php/tr_status.php 2009-05-04 10:59:50.000000000 +0200 @@ -312,6 +312,9 @@ if(EVENTS_OPTION_ONLYTRUE_NOTACK && $config['event_ack_enable']){ $ev_select->addItem(EVENTS_OPTION_ONLYTRUE_NOTACK,S_SHOW_PROBLEM_UNACKNOWLEDGED.SPACE.'('.$config['event_expire'].SPACE.(($config['event_expire']>1)?S_DAYS:S_DAY).')'); } + if(EVENTS_OPTION_EVENT_LAST && $config['event_ack_enable']){ + $ev_select->addItem(EVENTS_OPTION_EVENT_LAST,S_SHOW_PROBLEM_EVENT_LAST.SPACE); + } //------- JP ------- if($show_triggers==TRIGGERS_OPTION_NOFALSEFORB){ @@ -427,6 +430,7 @@ $triggers_num = 0; $event_cond = ''; + $event_join = ''; $event_expire = ($config['event_expire']*86400); // days switch($show_events){ case EVENTS_OPTION_ALL: @@ -444,6 +448,10 @@ $event_cond.=' AND e.acknowledged=0 '. ' AND ((e.value='.TRIGGER_VALUE_TRUE.') OR ((e.value='.TRIGGER_VALUE_FALSE.') AND t.type='.TRIGGER_MULT_EVENT_DISABLED.'))'; break; + case EVENTS_OPTION_EVENT_LAST: + $event_join.=' LEFT JOIN events e2 ON e.objectid = e2.objectid AND e.clock < e2.clock '; + $event_cond.=' AND e2.objectid IS NULL AND e.acknowledged=0 '; + break; case EVENTS_OPTION_NOEVENT: default: $event_cond.=' AND 1=2 '; @@ -472,10 +480,10 @@ if($show_triggers == TRIGGERS_OPTION_NOFALSEFORB){ $event_sql = 'SELECT e.eventid, e.value, e.clock, e.objectid as triggerid, e.acknowledged, t.type '. - ' FROM events e, triggers t '. + ' FROM events e JOIN triggers t ON t.triggerid=e.objectid '. + $event_join. ' WHERE e.object=0 '. ' AND e.objectid='.$row['triggerid']. - ' AND t.triggerid=e.objectid '. $event_cond. ' ORDER by e.object DESC, e.objectid DESC, e.eventid DESC'; if(!$row = get_row_for_nofalseforb($row,$event_sql)){ @@ -504,10 +512,10 @@ } $event_sql = 'SELECT e.eventid, e.value, e.clock, e.objectid as triggerid, e.acknowledged, t.type '. - ' FROM events e, triggers t '. + ' FROM events e JOIN triggers t ON t.triggerid=e.objectid '. + $event_join. ' WHERE e.object=0 '. - ' AND '.DBcondition('e.objectid',$triggerids). - ' AND t.triggerid=e.objectid '. + ' AND '.DBcondition('e.objectid',$triggerids). $event_cond. ' ORDER by e.object DESC, e.objectid DESC, e.eventid DESC'; Alleen in zabbix-1.7-patched/frontends/php: tr_status.php.old