summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/maps.inc.php
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-30 16:13:15 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-30 16:13:15 +0000
commit17a5d0466494cc294345eebddba054a27da7e49d (patch)
treebdba49bf80d812ac79203a1df36d6615dcb10381 /frontends/php/include/maps.inc.php
parent52ba9f54e0d36442deb5b4b0ce5c713de7b8ea30 (diff)
downloadzabbix-17a5d0466494cc294345eebddba054a27da7e49d.tar.gz
zabbix-17a5d0466494cc294345eebddba054a27da7e49d.tar.xz
zabbix-17a5d0466494cc294345eebddba054a27da7e49d.zip
- [DEV-52] added "Unlimited number of link styles for maps" (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5123 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/maps.inc.php')
-rw-r--r--frontends/php/include/maps.inc.php106
1 files changed, 75 insertions, 31 deletions
diff --git a/frontends/php/include/maps.inc.php b/frontends/php/include/maps.inc.php
index 5b3d690e..d380c9cf 100644
--- a/frontends/php/include/maps.inc.php
+++ b/frontends/php/include/maps.inc.php
@@ -203,50 +203,94 @@
return $sysmapid;
}
- function add_link($sysmapid,$selementid1,$selementid2,$triggerid,$drawtype_off,$color_off,$drawtype_on,$color_on)
- {
- if($triggerid == 0) $triggerid = 'NULL';
-
+ function add_link($sysmapid,$selementid1,$selementid2,$triggers,$drawtype_off,$color_off){
$linkid=get_dbid("sysmaps_links","linkid");
+
+ $result=TRUE;
+ foreach($triggers as $id => $trigger){
+ $result&=add_link_trigger($linkid,$trigger['triggerid'],$trigger['drawtype'],$trigger['color']);
+ }
+
+ if(!$result){
+ delete_link_trigger($linkid);
+ }
- $result=DBexecute("insert into sysmaps_links".
- " (linkid,sysmapid,selementid1,selementid2,triggerid,drawtype_off,".
- "color_off,drawtype_on,color_on)".
- " values ($linkid,$sysmapid,$selementid1,$selementid2,$triggerid,$drawtype_off,".
- zbx_dbstr($color_off).",$drawtype_on,".zbx_dbstr($color_on).")");
+ $result&=DBexecute("insert into sysmaps_links".
+ " (linkid,sysmapid,selementid1,selementid2,drawtype_off,color_off)".
+ " values ($linkid,$sysmapid,$selementid1,$selementid2,$drawtype_off,".zbx_dbstr($color_off).")");
if(!$result)
return $result;
- return $linkid;
+ return $linkid;
}
- function update_link($linkid,$sysmapid,$selementid1,$selementid2,$triggerid,$drawtype_off,$color_off,$drawtype_on,$color_on)
- {
- if($triggerid == 0) $triggerid = 'NULL';
+ function update_link($linkid,$sysmapid,$selementid1,$selementid2,$triggers,$drawtype_off,$color_off){
+
+ $result=TRUE;
+ foreach($triggers as $id => $trigger){
+ $result&=update_link_trigger($linkid,$trigger['triggerid'],$trigger['drawtype'],$trigger['color']);
+ }
+
+ if(!$result){
+ delete_link_trigger($linkid);
+ }
+
+ $result&=DBexecute('UPDATE sysmaps_links SET '.
+ " sysmapid=$sysmapid,selementid1=$selementid1,selementid2=$selementid2,".
+ " drawtype_off=$drawtype_off,color_off=".zbx_dbstr($color_off).
+ " WHERE linkid=$linkid");
+ return $result;
+ }
- return DBexecute("update sysmaps_links set ".
- "sysmapid=$sysmapid,selementid1=$selementid1,selementid2=$selementid2,".
- "triggerid=$triggerid,drawtype_off=$drawtype_off,color_off=".zbx_dbstr($color_off).",".
- "drawtype_on=$drawtype_on,color_on=".zbx_dbstr($color_on).
- " where linkid=$linkid");
+ function delete_link($linkid){
+ $result = delete_all_link_triggers($linkid);
+ $result&= DBexecute("delete from sysmaps_links where linkid=$linkid");
+ return $result;
}
- function delete_link($linkid)
- {
- return DBexecute("delete from sysmaps_links where linkid=$linkid");
+ function get_link_triggers($linkid){
+ $triggers = array();
+
+ $sql = "SELECT * FROM sysmaps_link_triggers WHERE linkid=$linkid";
+ $res = DBselect($sql);
+
+ while($rows = DBfetch($res)){
+ $triggers[] = $rows;
+ }
+ return $triggers;
}
- /*
- * Function: check_circle_elements_link
- *
- * Description:
- * Check circeling of maps
- *
- * Author:
- * Eugene Grigorjev
- *
- */
+ function add_link_trigger($linkid,$triggerid,$drawtype,$color){
+ $sql = 'INSERT INTO sysmaps_link_triggers (linkid,triggerid,drawtype,color) '.
+ " VALUES ('$linkid','$triggerid','$drawtype',".zbx_dbstr($color).")";
+ return DBexecute($sql);
+ }
+
+ function update_link_trigger($linkid,$triggerid,$drawtype,$color){
+ $result = delete_link_trigger($linkid,$triggerid);
+ $result&= add_link_trigger($linkid,$triggerid,$drawtype,$color);
+ return $result;
+ }
+
+ function delete_link_trigger($linkid,$triggerid){
+ return DBexecute("DELETE FROM sysmaps_link_triggers WHERE linkid=$linkid AND triggerid=$triggerid");
+ }
+
+ function delete_all_link_triggers($linkid){
+ return DBexecute("DELETE FROM sysmaps_link_triggers WHERE linkid=$linkid");
+ }
+
+/*
+ * Function: check_circle_elements_link
+ *
+ * Description:
+ * Check circeling of maps
+ *
+ * Author:
+ * Eugene Grigorjev
+ *
+ */
function check_circle_elements_link($sysmapid,$elementid,$elementtype)
{
if($elementtype!=SYSMAP_ELEMENT_TYPE_MAP) return FALSE;