Beispiel #1
0
function plugin_init_racks()
{
    global $PLUGIN_HOOKS, $CFG_GLPI;
    $PLUGIN_HOOKS['csrf_compliant']['racks'] = true;
    //load changeprofile function
    $PLUGIN_HOOKS['change_profile']['racks'] = array('PluginRacksProfile', 'initProfile');
    $plugin = new Plugin();
    if ($plugin->isInstalled('racks') && $plugin->isActivated('racks')) {
        //Ability to add a rack to a project
        $CFG_GLPI["project_asset_types"][] = 'PluginRacksRack';
        $PLUGIN_HOOKS['assign_to_ticket']['racks'] = true;
        Plugin::registerClass('PluginRacksRack', array('document_types' => true, 'location_types' => true, 'unicity_types' => true, 'linkgroup_tech_types' => true, 'linkuser_tech_types' => true, 'infocom_types' => true, 'ticket_types' => true));
        Plugin::registerClass('PluginRacksProfile', array('addtabon' => 'Profile'));
        $types = array('PluginAppliancesAppliance', 'PluginManufacturersimportsConfig', 'PluginTreeviewConfig', 'PluginPositionsPosition');
        foreach ($types as $itemtype) {
            if (class_exists($itemtype)) {
                $itemtype::registerType('PluginRacksRack');
            }
        }
        //If treeview plugin is installed, add rack as a type of item
        //that can be shown in the tree
        if (class_exists('PluginTreeviewConfig')) {
            $PLUGIN_HOOKS['treeview']['PluginRacksRack'] = '../racks/pics/racks.png';
        }
        if (Session::getLoginUserID()) {
            include_once GLPI_ROOT . "/plugins/racks/inc/rack.class.php";
            if (PluginRacksRack::canView()) {
                //Display menu entry only if user has right to see it !
                $PLUGIN_HOOKS["menu_toadd"]['racks'] = array('assets' => 'PluginRacksMenu');
                $PLUGIN_HOOKS['use_massive_action']['racks'] = 1;
            }
            if (PluginRacksRack::canCreate() || Config::canUpdate()) {
                $PLUGIN_HOOKS['config_page']['racks'] = 'front/config.form.php';
            }
            $PLUGIN_HOOKS['add_css']['racks'] = "racks.css";
            $PLUGIN_HOOKS['post_init']['racks'] = 'plugin_racks_postinit';
            $PLUGIN_HOOKS['reports']['racks'] = array('front/report.php' => __("Report - Bays management", "racks"));
        }
    }
}
 static function getMenuContent()
 {
     global $CFG_GLPI;
     $menu = array();
     //Menu entry in tools
     $menu['title'] = self::getMenuName(2);
     $menu['page'] = PluginRacksRack::getSearchURL(false);
     $menu['links']['search'] = PluginRacksRack::getSearchURL(false);
     $menu['options']['racks']['links']['search'] = PluginRacksRack::getSearchURL(false);
     $menu['options']['racks']['links']['config'] = PluginRacksConfig::getFormURL(false);
     $menu['options']['config']['title'] = __('Setup');
     $menu['options']['config']['page'] = PluginRacksConfig::getSearchURL(false);
     $menu['options']['specifications']['title'] = __('Specifications', 'racks');
     $menu['options']['specifications']['page'] = PluginRacksItemSpecification::getSearchURL(false);
     $menu['options']['specifications']['links']['search'] = PluginRacksItemSpecification::getSearchURL(false);
     if (PluginRacksRack::canCreate()) {
         $menu['options']['racks']['links']['add'] = PluginRacksRack::getFormURL(false);
     }
     if (PluginRacksRackModel::canView()) {
         $menu['options']['racks']['links']['template'] = '/plugins/racks/front/setup.templates.php?add=0';
         $menu['options']['racks']['links']["<img  src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png' title=\"" . __('Equipments models specifications', 'racks') . "\" alt=\"" . __('Equipments models specifications', 'racks') . "\">"] = PluginRacksItemSpecification::getSearchURL(false);
     }
     return $menu;
 }
 } else {
     if (isset($_POST["addDevice"])) {
         if (!isset($_POST['rack_size'])) {
             $PluginRacksRack->getFromDB($_POST['racks_id']);
             $_POST['rack_size'] = $PluginRacksRack->fields['rack_size'];
         }
         $test = explode(";", $_POST['itemtype']);
         $_POST['itemtype'] = $test[0];
         $_POST['items_id'] = $test[1];
         $_POST['plugin_racks_itemspecifications_id'] = $test[2];
         if ($_POST['itemtype'] == 'PluginRacksOtherModel') {
             $newid = $PluginRacksOther->addOthers($_POST['items_id']);
             $_POST['items_id'] = $newid;
         }
         if (!empty($_POST['itemtype']) && $_POST['items_id'] > 0 && !empty($_POST['pos'])) {
             if ($PluginRacksRack->canCreate()) {
                 $space_left = $PluginRacksRack_Item->addItem($_POST['plugin_racks_racks_id'], $_POST['rack_size'], $_POST['faces_id'], $_POST['items_id'], $_POST['itemtype'], $_POST['plugin_racks_itemspecifications_id'], $_POST['pos']);
                 if ($space_left < 0) {
                     Session::addMessageAfterRedirect(__('No more place for insertion', 'racks'), false, ERROR);
                 }
             }
         }
         Html::back();
     } elseif (isset($_POST["deleteDevice"])) {
         if ($PluginRacksRack->canCreate()) {
             foreach ($_POST["item"] as $key => $val) {
                 $input = array('id' => $key);
                 if ($val == 1) {
                     $PluginRacksRack_Item->delete($input);
                 }
             }
Beispiel #4
0
 } else {
     if (isset($_POST["addDevice"])) {
         if (!isset($_POST['rack_size'])) {
             $PluginRacksRack->getFromDB($_POST['racks_id']);
             $_POST['rack_size'] = $PluginRacksRack->fields['rack_size'];
         }
         $test = explode(";", $_POST['itemtype']);
         $_POST['itemtype'] = $test[0];
         $_POST['items_id'] = $test[1];
         $_POST['plugin_racks_itemspecifications_id'] = $test[2];
         if ($_POST['itemtype'] == 'PluginRacksOtherModel') {
             $newid = $PluginRacksOther->addOthers($_POST['items_id']);
             $_POST['items_id'] = $newid;
         }
         if (!empty($_POST['itemtype']) && $_POST['items_id'] > 0 && !empty($_POST['pos'])) {
             if ($PluginRacksRack->canCreate()) {
                 $space_left = $PluginRacksRack_Item->addItem($_POST['plugin_racks_racks_id'], $_POST['rack_size'], $_POST['faces_id'], $_POST['items_id'], $_POST['itemtype'], $_POST['plugin_racks_itemspecifications_id'], $_POST['pos']);
                 if ($space_left < 0) {
                     if ($_POST['itemtype'] == 'PluginRacksOtherModel') {
                         $PluginRacksOther->deleteOthers($_POST['items_id']);
                     }
                     Session::addMessageAfterRedirect(__('No more place for insertion', 'racks'), false, ERROR);
                 }
             }
         }
         Html::back();
     } elseif (isset($_POST["deleteDevice"])) {
         if ($PluginRacksRack->canCreate() && isset($_POST["item"])) {
             foreach ($_POST["item"] as $key => $val) {
                 $input = array('id' => $key);
                 if ($val == 1) {