summaryrefslogtreecommitdiffstats
path: root/frontends/php
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/php')
-rw-r--r--frontends/php/include/triggers.inc.php53
-rw-r--r--frontends/php/tr_status.php7
-rw-r--r--frontends/php/triggers.php4
3 files changed, 56 insertions, 8 deletions
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php
index 9ec4ae64..d9879044 100644
--- a/frontends/php/include/triggers.inc.php
+++ b/frontends/php/include/triggers.inc.php
@@ -1986,4 +1986,57 @@
return $ret;
}
+ /*
+ * Function: trigger_depenent_rec
+ *
+ * Description:
+ * check if trigger depends on other triggers having status TRUE
+ *
+ * Author:
+ * Alexei Vladishev
+ *
+ * Comments: Recursive function
+ *
+ */
+ function trigger_dependent_rec($triggerid,&$level)
+ {
+ $ret = FALSE;
+
+ $level++;
+
+ /* Check for recursive loop */
+ if($level > 32) return $ret;
+
+ $result = DBselect("select t.triggerid, t.value from trigger_depends d,triggers t where d.triggerid_down=$triggerid and d.triggerid_up=t.triggerid");
+ while($row = DBfetch($result))
+ {
+ $triggerid_tmp = $row["triggerid"];
+ $value_tmp = $row["value"];
+ if(TRIGGER_VALUE_TRUE == $value_tmp || trigger_dependent_rec($triggerid_tmp, $level))
+ {
+ $ret = TRUE;
+ break;
+ }
+ }
+
+ return $ret;
+ }
+
+ /*
+ * Function: trigger_depenent
+ *
+ * Description:
+ * check if trigger depends on other triggers having status TRUE
+ *
+ * Author:
+ * Alexei Vladishev
+ *
+ * Comments:
+ *
+ */
+ function trigger_dependent($triggerid)
+ {
+ $level = 0;
+ return trigger_dependent_rec($triggerid, $level);
+ }
?>
diff --git a/frontends/php/tr_status.php b/frontends/php/tr_status.php
index dbc26b65..ad0badf4 100644
--- a/frontends/php/tr_status.php
+++ b/frontends/php/tr_status.php
@@ -400,12 +400,7 @@ echo '<script type="text/javascript" src="js/blink.js"></script>';
while($row=DBfetch($result)){
// Check for dependencies
- $deps = DBfetch(DBselect("select count(*) as cnt from trigger_depends d, triggers t ".
- " where d.triggerid_down=".$row["triggerid"]." and d.triggerid_up=t.triggerid and t.value=1"));
-
- if($deps["cnt"]>0){
- continue;
- }
+ if(trigger_dependent($row["triggerid"])) continue;
$cond = '';
$ack_expire = ($config['ack_expire']*86400);
diff --git a/frontends/php/triggers.php b/frontends/php/triggers.php
index c6ce4195..8130e39e 100644
--- a/frontends/php/triggers.php
+++ b/frontends/php/triggers.php
@@ -438,9 +438,9 @@ include_once "include/page_header.php";
$deps = get_trigger_dependences_by_triggerid($row["triggerid"]);
if(count($deps) > 0)
{
- $description[] = BR.BR."<strong>".S_DEPENDS_ON."</strong>".SPACE.BR;
+ $description[] = BR.BR."<strong>".S_DEPENDS_ON.":</strong>".SPACE.BR;
foreach($deps as $val)
- $description[] = '['.$val.']'.expand_trigger_description($val).BR;
+ $description[] = expand_trigger_description($val).BR;
$description[] = BR;
}