/** * Delete web scenario item and web scenario step item history and trends by given web scenario IDs. * * @param array $httpTestIds * * @return bool */ function deleteHistoryByHttpTestIds(array $httpTestIds) { $itemIds = array(); $dbItems = DBselect('SELECT hti.itemid' . ' FROM httptestitem hti' . ' WHERE ' . dbConditionInt('httptestid', $httpTestIds) . ' UNION ALL ' . 'SELECT hsi.itemid' . ' FROM httpstep hs,httpstepitem hsi' . ' WHERE hs.httpstepid=hsi.httpstepid' . ' AND ' . dbConditionInt('httptestid', $httpTestIds)); while ($dbItem = DBfetch($dbItems)) { $itemIds[] = $dbItem['itemid']; } if ($itemIds) { return deleteHistoryByItemIds($itemIds); } return true; }
$result = DBend($result); if ($result) { uncheckTableRows(getRequest('hostid')); unset($_REQUEST['group_itemid']); } show_messages($result, _('Items copied'), _('Cannot copy items')); } else { show_error_message(_('No target selected.')); } } elseif (hasRequest('action') && getRequest('action') === 'item.massclearhistory' && hasRequest('group_itemid') && is_array(getRequest('group_itemid'))) { $result = false; $itemIds = getRequest('group_itemid'); $items = API::Item()->get(array('output' => array('itemid', 'key_'), 'itemids' => $itemIds, 'selectHosts' => array('name'), 'editable' => true)); if ($items) { DBstart(); $result = deleteHistoryByItemIds($itemIds); if ($result) { foreach ($items as $item) { $host = reset($item['hosts']); add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_ITEM, _('Item') . ' [' . $item['key_'] . '] [' . $item['itemid'] . '] ' . _('Host') . ' [' . $host['name'] . '] ' . _('History cleared')); } } $result = DBend($result); if ($result) { uncheckTableRows(getRequest('hostid')); } } show_messages($result, _('History cleared'), _('Cannot clear history')); } elseif (hasRequest('action') && getRequest('action') == 'item.massdelete' && hasRequest('group_itemid')) { DBstart(); $group_itemid = getRequest('group_itemid');