From 40f02befd74d08d10eb2e5be7c28c520aa704e95 Mon Sep 17 00:00:00 2001 From: osmiy Date: Tue, 11 Apr 2006 13:48:54 +0000 Subject: - fixed items status changing of parent hosts (Eugene) git-svn-id: svn://svn.zabbix.com/trunk@2729 97f52cf1-0a1b-0410-bd0e-c28be96e8082 --- frontends/php/include/items.inc.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'frontends/php/include/items.inc.php') diff --git a/frontends/php/include/items.inc.php b/frontends/php/include/items.inc.php index 23562cab..13820bbd 100644 --- a/frontends/php/include/items.inc.php +++ b/frontends/php/include/items.inc.php @@ -179,12 +179,14 @@ error("Insufficient permissions"); return 0; } + if($status==ITEM_STATUS_ACTIVE) $sql="update items set status=$status,error='' where itemid=$itemid"; else $sql="update items set status=$status where itemid=$itemid"; - return DBexecute($sql); + $result = DBexecute($sql); + return $result; } # Update Item definition @@ -334,14 +336,32 @@ function activate_item($itemid) { - return DBexecute("update items set status=".ITEM_STATUS_ACTIVE." where itemid=$itemid"); + // first update status for child items + $db_tmp_items = DBselect("select itemid, hostid from items where templateid=$itemid"); + while($db_tmp_item = DBfetch($db_tmp_items)) + { + // recursion + activate_item($db_tmp_item["itemid"]); + } + + $result = DBexecute("update items set status=".ITEM_STATUS_ACTIVE.",error='' where itemid=$itemid"); + return $result; } # Disable Item function disable_item($itemid) { - return DBexecute("update items set status=".ITEM_STATUS_DISABLED." where itemid=$itemid"); + // first update status for child items + $db_tmp_items = DBselect("select itemid, hostid from items where templateid=$itemid"); + while($db_tmp_item = DBfetch($db_tmp_items)) + { + // recursion + disable_item($db_tmp_item["itemid"]); + } + + $result = DBexecute("update items set status=".ITEM_STATUS_DISABLED." where itemid=$itemid"); + return $result; } function get_items_by_hostid($hostid) -- cgit