/** * @since version 0.85 * * @see CommonDBTM::processMassiveActionsForOneItemtype() **/ static function processMassiveActionsForOneItemtype(MassiveAction $ma, CommonDBTM $item, array $ids) { switch ($ma->getAction()) { case 'delete_email': case 'import_email': if (!$item->canUpdate()) { $ma->itemDone($item->getType(), $ids, MassiveAction::ACTION_NORIGHT); } else { $input = $ma->getInput(); if (count($ids)) { $mailcollector = new MailCollector(); if ($ma->getAction() == 'delete_email') { $mailcollector->deleteOrImportSeveralEmails($ids, 0); } else { $mailcollector->deleteOrImportSeveralEmails($ids, 1, $input['entities_id']); } } $ma->itemDone($item->getType(), $ids, MassiveAction::ACTION_OK); } return; } parent::processMassiveActionsForOneItemtype($ma, $item, $ids); }
/** * We can add several single CommonDBChild to a given Item. In such case, we display a "+" * button and the fields already entered. * This method display the fields * * @since version 0.84 * * @todo study if we cannot use these methods for the user emails * @see showAddChildButtonForItemForm() * * @param $item CommonDBTM object the item on which to add the current CommenDBChild * @param $field_name the name of the HTML field inside Item's form * @param $canedit (default NULL) NULL to use default behaviour * * @return nothing (display only) **/ static function showChildsForItemForm(CommonDBTM $item, $field_name, $canedit = NULL) { global $DB, $CFG_GLPI; $items_id = $item->getID(); if (is_null($canedit)) { if ($item->isNewItem()) { if (!$item->canCreate()) { return false; } $canedit = $item->canUpdate(); } else { if (!$item->can($items_id, 'r')) { return false; } $canedit = $item->can($items_id, "w"); } } $lower_name = strtolower(get_called_class()); $div_id = "add_" . $lower_name . "_to_" . $item->getType() . "_" . $items_id; // To be sure not to load bad datas from this table if ($items_id == 0) { $items_id = -99; } $query = "SELECT *\n FROM `" . static::getTable() . "`\n WHERE `" . static::$items_id . "` = '" . $item->getID() . "'"; if (preg_match('/^itemtype/', static::$itemtype)) { $query .= " AND `itemtype` = '" . $item->getType() . "'"; } $current_item = new static(); if ($current_item->maybeDeleted()) { $query .= " AND `is_deleted` = '0'"; } $count = 0; foreach ($DB->request($query) as $data) { $current_item->fields = $data; if ($count) { echo '<br>'; } $count++; $current_item->showChildForItemForm($canedit, $field_name . "[" . $current_item->getID() . "]"); } if ($canedit) { echo "<div id='{$div_id}'>"; // No Child display field if ($count == 0) { $current_item->getEmpty(); $current_item->showChildForItemForm($canedit, $field_name . "[-100]"); } echo "</div>"; } }