@copyright Copyright (c) 2010-2011 Order plugin team @license GPLv2+ http://www.gnu.org/licenses/gpl.txt @link https://forge.indepnet.net/projects/genericobject @link http://www.glpi-project.org/ @since 2009 ---------------------------------------------------------------------- */ include "../../../inc/includes.php"; if (isset($_POST["delete"])) { $type = new PluginGenericobjectType(); $type->getFromDB($_POST["id"]); $itemtype = $type->fields['itemtype']; PluginGenericobjectType::registerOneType($itemtype); foreach ($_POST["fields"] as $field => $value) { if ($type->can($_POST["id"], PURGE) && $value == 1 && PluginGenericobjectField::checkNecessaryFieldsDelete($itemtype, $field)) { PluginGenericobjectField::deleteField(getTableForItemType($itemtype), $field); Session::addMessageAfterRedirect(__("Field(s) deleted successfully", "genericobject"), true, INFO); } } } elseif (isset($_POST["add_field"])) { $type = new PluginGenericobjectType(); if ($_POST["new_field"] && $type->can($_POST["id"], UPDATE)) { $itemtype = $type->fields['itemtype']; PluginGenericobjectType::registerOneType($itemtype); PluginGenericobjectField::addNewField(getTableForItemType($itemtype), $_POST["new_field"]); Session::addMessageAfterRedirect(__("Field added successfully", "genericobject")); } } elseif (isset($_POST['action'])) { //Move field PluginGenericobjectField::changeFieldOrder($_POST); }
/** * * Add or delete, if needed some fields to make sure that the itemtype is compatible with * GLPI framework * * @return nothing */ function checkNecessaryFieldsUpdate() { $itemtype = $this->fields["itemtype"]; $item = new $itemtype(); $item->getEmpty(); $table = getTableForItemType($itemtype); //Global search (inventory > status) if (isset($this->input['use_global_search']) && $this->input['use_global_search']) { PluginGenericobjectField::addNewField($table, 'serial', 'name'); PluginGenericobjectField::addNewField($table, 'otherserial', 'serial'); PluginGenericobjectField::addNewField($table, 'locations_id', 'otherserial'); PluginGenericobjectField::addNewField($table, 'states_id', 'locations_id'); PluginGenericobjectField::addNewField($table, 'users_id', 'states_id'); PluginGenericobjectField::addNewField($table, 'groups_id', 'users_id'); PluginGenericobjectField::addNewField($table, 'manufacturers_id', 'groups_id'); PluginGenericobjectField::addNewField($table, 'users_id_tech', 'manufacturers_id'); PluginGenericobjectField::addNewField($table, 'is_deleted', 'id'); } if (isset($this->input['use_recursivity']) && $this->input['use_recursivity']) { PluginGenericobjectField::addNewField($table, 'is_recursive', 'entities_id'); } else { PluginGenericobjectField::deleteField($table, 'is_recursive'); } //Template if (isset($this->input['use_template']) && $this->input['use_template']) { PluginGenericobjectField::addNewField($table, 'is_template', 'id'); PluginGenericobjectField::addNewField($table, 'template_name', 'is_template'); } else { PluginGenericobjectField::deleteField($table, 'is_template'); PluginGenericobjectField::deleteField($table, 'template_name'); } //Trash if (isset($this->input['use_deleted']) && $this->input['use_deleted']) { PluginGenericobjectField::addNewField($table, 'is_deleted', 'id'); } else { PluginGenericobjectField::deleteField($table, 'is_deleted'); } //Reservation needs is_deleted field ! if ($this->canBeReserved()) { PluginGenericobjectField::addNewField($table, 'is_deleted', 'id'); PluginGenericobjectField::addNewField($table, 'locations_id'); } //Helpdesk post-only if ($this->canUseTickets()) { //TODO rename is_helpdesk_visible into is_helpdeskvisible PluginGenericobjectField::addNewField($table, 'is_helpdesk_visible', 'comment'); } else { PluginGenericobjectField::deleteField($table, 'is_helpdesk_visible'); } //Notes if (isset($this->input['use_notes']) && $this->input['use_notes']) { PluginGenericobjectField::addNewField($table, 'notepad', 'id'); } else { PluginGenericobjectField::deleteField($table, 'notepad'); } //Networkport if ($this->canUseNetworkPorts()) { PluginGenericobjectField::addNewField($table, 'locations_id'); } if ($this->canUseDirectConnections()) { self::addItemsTable($itemtype); self::addItemClassFile($this->fields['name'], $itemtype); } else { self::deleteItemsTable($itemtype); self::deleteClassFile($this->fields['name'] . "_item"); } if ($this->canUsePluginDataInjection() && !file_exists(self::getCompleteInjectionFilename($this->fields['name']))) { self::addDatainjectionFile($this->fields['name']); } if (!$this->canUsePluginDataInjection() && file_exists(self::getCompleteInjectionFilename($this->fields['name']))) { self::deleteInjectionFile($this->fields['name']); } }