summaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-03-16 16:13:43 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-03-16 16:13:43 +0000
commit183033d3e4f67f05bb0fd0bb8cd394cb829e5f4a (patch)
treec1cb71781578730450d4244df3c5cb8f316d9d5e /frontends
parenta2d4a94630bb644b26b63db7c3071c41d8b0c4be (diff)
downloadzabbix-183033d3e4f67f05bb0fd0bb8cd394cb829e5f4a.tar.gz
zabbix-183033d3e4f67f05bb0fd0bb8cd394cb829e5f4a.tar.xz
zabbix-183033d3e4f67f05bb0fd0bb8cd394cb829e5f4a.zip
- hard-linked templates works when deleting a trigger (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@1698 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends')
-rw-r--r--frontends/php/include/triggers.inc.php36
-rw-r--r--frontends/php/triggers.php1
2 files changed, 37 insertions, 0 deletions
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php
index 7f1b56b4..e2314b67 100644
--- a/frontends/php/include/triggers.inc.php
+++ b/frontends/php/include/triggers.inc.php
@@ -402,4 +402,40 @@ where h.hostid=i.hostid and i.itemid=f.itemid and f.triggerid=$triggerid";
}
}
}
+
+ function delete_trigger_from_templates($triggerid)
+ {
+ if($triggerid<=0)
+ {
+ return;
+ }
+
+ $trigger=get_trigger_by_triggerid($triggerid);
+
+ $sql="select distinct h.hostid from hosts h,functions f, items i where i.itemid=f.itemid and h.hostid=i.hostid and f.triggerid=$triggerid";
+ $result=DBselect($sql);
+ if(DBnum_rows($result)!=1)
+ {
+ return;
+ }
+
+ $row=DBfetch($result);
+
+ $hostid=$row["hostid"];
+
+ $sql="select hostid,templateid,items from hosts_templates where templateid=$hostid";
+ $result=DBselect($sql);
+ while($row=DBfetch($result))
+ {
+ if($row["triggers"]&4 == 0) continue;
+
+ $sql="select distinct f.triggerid from functions f,items i,triggers t where t.description='".addslashes($trigger["description"])."' and t.triggerid=f.triggerid and i.itemid=f.itemid and i.hostid=".$row["hostid"];
+ $result2=DBselect($sql);
+ while($row2=DBfetch($result2))
+ {
+ delete_trigger($row2["triggerid"]);
+ }
+
+ }
+ }
?>
diff --git a/frontends/php/triggers.php b/frontends/php/triggers.php
index 77607d9f..b914cfde 100644
--- a/frontends/php/triggers.php
+++ b/frontends/php/triggers.php
@@ -140,6 +140,7 @@
}
if($_GET["register"]=="delete")
{
+ delete_trigger_from_templates($_GET["triggerid"]);
$result=delete_trigger($_GET["triggerid"]);
show_messages($result, S_TRIGGER_DELETED, S_CANNOT_DELETE_TRIGGER);
unset($_GET["triggerid"]);