function doSpecificMassiveActions($input = array()) { $res = array('ok' => 0, 'ko' => 0, 'noright' => 0); $database_item = new PluginDatabasesDatabase_Item(); switch ($input['action']) { case "Transfert": if ($input['itemtype'] == 'PluginDatabasesDatabase') { foreach ($input["item"] as $key => $val) { if ($val == 1) { $this->getFromDB($key); $type = PluginDatabasesDatabaseType::transfer($this->fields["plugin_databases_databasetypes_id"], $input['entities_id']); if ($type > 0) { $values["id"] = $key; $values["plugin_databases_databasetypes_id"] = $type; if ($this->update($values)) { $res['ok']++; } else { $res['ko']++; } } unset($values); $values["id"] = $key; $values["entities_id"] = $input['entities_id']; if ($this->update($values)) { $res['ok']++; } else { $res['ko']++; } } } } break; case "Install": foreach ($input["item"] as $key => $val) { if ($val == 1) { $values = array('plugin_databases_databases_id' => $key, 'items_id' => $input["item_item"], 'itemtype' => $input['typeitem']); if ($database_item->add($values)) { $res['ok']++; } else { $res['ko']++; } } } break; case "Desinstall": foreach ($input["item"] as $key => $val) { if ($val == 1) { if ($database_item->deleteItemByDatabasesAndItem($key, $input['item_item'], $input['typeitem'])) { $res['ok']++; } else { $res['ko']++; } } } break; default: return parent::doSpecificMassiveActions($input); break; } return $res; }
function plugin_databases_getAddSearchOptions($itemtype) { $sopt = array(); if (in_array($itemtype, PluginDatabasesDatabase::getTypes(true))) { if (Session::haveRight("plugin_databases", READ)) { $sopt[2410]['table'] = 'glpi_plugin_databases_databases'; $sopt[2410]['field'] = 'name'; $sopt[2410]['name'] = PluginDatabasesDatabase::getTypeName(2) . " - " . __('Name'); $sopt[2410]['forcegroupby'] = true; $sopt[2410]['datatype'] = 'itemlink'; $sopt[2410]['massiveaction'] = false; $sopt[2410]['itemlink_type'] = 'PluginDatabasesDatabase'; $sopt[2410]['joinparams'] = array('beforejoin' => array('table' => 'glpi_plugin_databases_databases_items', 'joinparams' => array('jointype' => 'itemtype_item'))); $sopt[2411]['table'] = 'glpi_plugin_databases_databasecategories'; $sopt[2411]['field'] = 'name'; $sopt[2411]['name'] = PluginDatabasesDatabase::getTypeName(2) . " - " . PluginDatabasesDatabaseCategory::getTypeName(1); $sopt[2411]['forcegroupby'] = true; $sopt[2411]['joinparams'] = array('beforejoin' => array(array('table' => 'glpi_plugin_databases_databases', 'joinparams' => $sopt[2410]['joinparams']))); $sopt[2411]['datatype'] = 'dropdown'; $sopt[2411]['massiveaction'] = false; $sopt[2412]['table'] = 'glpi_plugin_databases_servertypes'; $sopt[2412]['field'] = 'name'; $sopt[2412]['name'] = PluginDatabasesDatabase::getTypeName(2) . " - " . PluginDatabasesServerType::getTypeName(1); $sopt[2412]['forcegroupby'] = true; $sopt[2412]['joinparams'] = array('beforejoin' => array(array('table' => 'glpi_plugin_databases_databases', 'joinparams' => $sopt[2410]['joinparams']))); $sopt[2412]['datatype'] = 'dropdown'; $sopt[2412]['massiveaction'] = false; $sopt[2413]['table'] = 'glpi_plugin_databases_databasetypes'; $sopt[2413]['field'] = 'name'; $sopt[2413]['name'] = PluginDatabasesDatabase::getTypeName(2) . " - " . PluginDatabasesDatabaseType::getTypeName(1); $sopt[2413]['forcegroupby'] = true; $sopt[2413]['joinparams'] = array('beforejoin' => array(array('table' => 'glpi_plugin_databases_databases', 'joinparams' => $sopt[2410]['joinparams']))); $sopt[2413]['datatype'] = 'dropdown'; $sopt[2413]['massiveaction'] = false; } } /*if ($itemtype == 'Ticket') { if (Session::haveRight("plugin_databases", READ)) { $sopt[2414]['table'] = 'glpi_plugin_databases_databases'; $sopt[2414]['field'] = 'name'; $sopt[2414]['linkfield'] = 'items_id'; $sopt[2414]['datatype'] = 'itemlink'; $sopt[2414]['massiveaction'] = false; $sopt[2414]['name'] = __('Database', 'databases')." - ". __('Name'); } }*/ return $sopt; }
/** * @since version 0.85 * * @see CommonDBTM::processMassiveActionsForOneItemtype() **/ static function processMassiveActionsForOneItemtype(MassiveAction $ma, CommonDBTM $item, array $ids) { global $DB; $database_item = new PluginDatabasesDatabase_Item(); switch ($ma->getAction()) { case "plugin_databases_add_item": $input = $ma->getInput(); foreach ($ids as $id) { $input = array('plugin_databases_databasetypes_id' => $input['plugin_databases_databasetypes_id'], 'items_id' => $id, 'itemtype' => $item->getType()); if ($database_item->can(-1, UPDATE, $input)) { if ($database_item->add($input)) { $ma->itemDone($item->getType(), $id, MassiveAction::ACTION_OK); } else { $ma->itemDone($item->getType(), $ids, MassiveAction::ACTION_KO); } } else { $ma->itemDone($item->getType(), $ids, MassiveAction::ACTION_KO); } } return; case "transfer": $input = $ma->getInput(); if ($item->getType() == 'PluginDatabasesDatabase') { foreach ($ids as $key) { $item->getFromDB($key); $type = PluginDatabasesDatabaseType::transfer($item->fields["plugin_databases_databasetypes_id"], $input['entities_id']); if ($type > 0) { $values["id"] = $key; $values["plugin_databases_databasetypes_id"] = $type; $item->update($values); } unset($values); $values["id"] = $key; $values["entities_id"] = $input['entities_id']; if ($item->update($values)) { $ma->itemDone($item->getType(), $key, MassiveAction::ACTION_OK); } else { $ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO); } } } return; case 'install': $input = $ma->getInput(); foreach ($ids as $key) { if ($item->can($key, UPDATE)) { $values = array('plugin_databases_databases_id' => $key, 'items_id' => $input["item_item"], 'itemtype' => $input['typeitem']); if ($database_item->add($values)) { $ma->itemDone($item->getType(), $key, MassiveAction::ACTION_OK); } else { $ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO); } } else { $ma->itemDone($item->getType(), $key, MassiveAction::ACTION_NORIGHT); $ma->addMessage($item->getErrorMessage(ERROR_RIGHT)); } } return; case 'uninstall': $input = $ma->getInput(); foreach ($ids as $key) { if ($val == 1) { if ($database_item->deleteItemByDatabasesAndItem($key, $input['item_item'], $input['typeitem'])) { $ma->itemDone($item->getType(), $key, MassiveAction::ACTION_OK); } else { $ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO); } } } return; } parent::processMassiveActionsForOneItemtype($ma, $item, $ids); }