/**
  * show for PDF the webapplications associated with a device
  *
  * @param $pdf
  * @param $item
  *
  **/
 static function PdfFromItems(PluginPdfSimplePDF $pdf, CommonGLPI $item)
 {
     global $DB, $CFG_GLPI;
     $pdf->setColumnsSize(100);
     $pdf->displayTitle('<b>' . _n('Associated web application', 'Associated web applications', 2, 'webapplications') . '</b>');
     $ID = $item->getField('id');
     $itemtype = get_Class($item);
     $canread = $item->can($ID, READ);
     $canedit = $item->can($ID, UPDATE);
     $web = new PluginWebapplicationsWebapplication();
     $query = "SELECT `glpi_plugin_webapplications_webapplications`.* " . " FROM `glpi_plugin_webapplications_webapplications_items`,`glpi_plugin_webapplications_webapplications` " . " LEFT JOIN `glpi_entities` ON (`glpi_entities`.`id` = `glpi_plugin_webapplications_webapplications`.`entities_id`) " . " WHERE `glpi_plugin_webapplications_webapplications_items`.`items_id` = '" . $ID . "' \n         AND `glpi_plugin_webapplications_webapplications_items`.`itemtype` = '" . $itemtype . "' \n         AND `glpi_plugin_webapplications_webapplications_items`.`plugin_webapplications_webapplications_id` = `glpi_plugin_webapplications_webapplications`.`id` " . getEntitiesRestrictRequest(" AND ", "glpi_plugin_webapplications_webapplications", '', '', $web->maybeRecursive());
     $result = $DB->query($query);
     $number = $DB->numrows($result);
     if (!$number) {
         $pdf->displayLine(__('No item found'));
     } else {
         if (Session::isMultiEntitiesMode()) {
             $pdf->setColumnsSize(25, 25, 15, 15, 20);
             $pdf->displayTitle('<b><i>' . __('Name'), __('Entity'), __('Technician in charge of the hardware'), __('Group in charge of the hardware'), PluginWebapplicationsWebapplicationType::getTypeName(1) . '</i></b>');
         } else {
             $pdf->setColumnsSize(30, 30, 20, 20);
             $pdf->displayTitle('<b><i>' . __('Name'), __('Technician in charge of the hardware'), __('Group in charge of the hardware'), PluginWebapplicationsWebapplicationType::getTypeName(1) . '</i></b>');
         }
         while ($data = $DB->fetch_array($result)) {
             $webapplicationsID = $data["id"];
             if (Session::isMultiEntitiesMode()) {
                 $pdf->setColumnsSize(25, 25, 15, 15, 20);
                 $pdf->displayLine($data["name"], Html::clean(Dropdown::getDropdownName("glpi_entities", $data['entities_id'])), Html::clean(getUsername("glpi_users", $data["users_id_tech"])), Html::clean(Dropdown::getDropdownName("glpi_groups", $data["groups_id_tech"])), Html::clean(Dropdown::getDropdownName("glpi_plugin_webapplications_webapplicationtypes", $data["plugin_webapplications_webapplicationtypes_id"])));
             } else {
                 $pdf->setColumnsSize(50, 25, 25);
                 $pdf->displayLine($data["name"], Html::clean(getUsername("glpi_users", $data["users_id_tech"])), Html::clean(Dropdown::getDropdownName("glpi_groups", $data["groups_id_tech"])), Html::clean(Dropdown::getDropdownName("glpi_plugin_webapplications_webapplicationtypes", $data["plugin_webapplications_webapplicationtypes_id"])));
             }
         }
     }
 }
Пример #2
0
function plugin_webapplications_getAddSearchOptions($itemtype)
{
    $sopt = array();
    if (in_array($itemtype, PluginWebapplicationsWebapplication::getTypes(true))) {
        if (Session::haveRight("plugin_webapplications", READ)) {
            $sopt[1310]['table'] = 'glpi_plugin_webapplications_webapplications';
            $sopt[1310]['field'] = 'name';
            $sopt[1310]['name'] = PluginWebapplicationsWebapplication::getTypeName(2) . " - " . __('Name');
            $sopt[1310]['forcegroupby'] = true;
            $sopt[1310]['datatype'] = 'itemlink';
            $sopt[1310]['massiveaction'] = false;
            $sopt[1310]['itemlink_type'] = 'PluginWebapplicationsWebapplication';
            $sopt[1310]['joinparams'] = array('beforejoin' => array('table' => 'glpi_plugin_webapplications_webapplications_items', 'joinparams' => array('jointype' => 'itemtype_item')));
            $sopt[1311]['table'] = 'glpi_plugin_webapplications_webapplicationtypes';
            $sopt[1311]['field'] = 'name';
            $sopt[1311]['name'] = PluginWebapplicationsWebapplication::getTypeName(2) . " - " . PluginWebapplicationsWebapplicationType::getTypeName(1);
            $sopt[1311]['forcegroupby'] = true;
            $sopt[1311]['datatype'] = 'dropdown';
            $sopt[1311]['massiveaction'] = false;
            $sopt[1311]['joinparams'] = array('beforejoin' => array(array('table' => 'glpi_plugin_webapplications_webapplications', 'joinparams' => $sopt[1310]['joinparams'])));
        }
    }
    return $sopt;
}
 /**
  * @since version 0.85
  *
  * @see CommonDBTM::processMassiveActionsForOneItemtype()
  **/
 static function processMassiveActionsForOneItemtype(MassiveAction $ma, CommonDBTM $item, array $ids)
 {
     global $DB;
     $web_item = new PluginWebapplicationsWebapplication_Item();
     switch ($ma->getAction()) {
         case "plugin_webapplications_add_item":
             $input = $ma->getInput();
             foreach ($ids as $id) {
                 $input = array('plugin_webapplications_webapplications_id' => $input['plugin_webapplications_webapplications_id'], 'items_id' => $id, 'itemtype' => $item->getType());
                 if ($web_item->can(-1, UPDATE, $input)) {
                     if ($web_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() == 'PluginWebapplicationsWebapplication') {
                 foreach ($ids as $key) {
                     $item->getFromDB($key);
                     $type = PluginWebapplicationsWebapplicationType::transfer($item->fields["plugin_webapplications_webapplicationtypes_id"], $input['entities_id']);
                     if ($type > 0) {
                         $values["id"] = $key;
                         $values["plugin_webapplications_webapplicationtypes_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_webapplications_webapplications_id' => $key, 'items_id' => $input["item_item"], 'itemtype' => $input['typeitem']);
                     if ($web_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 ($web_item->deleteItemByWebApplicationsAndItem($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);
 }
Пример #4
0
 /**
  * Do the specific massive actions
  *
  * @since version 0.84
  * 
  * @param $input array of input datas
  * 
  * @return an array of results (nbok, nbko, nbnoright counts)
  **/
 public function doSpecificMassiveActions($input = array())
 {
     $res = array('ok' => 0, 'ko' => 0, 'noright' => 0);
     $web_item = new PluginWebapplicationsWebapplication_Item();
     switch ($input['action']) {
         case "Transfert":
             if ($input['itemtype'] == 'PluginWebapplicationsWebapplication') {
                 foreach ($input["item"] as $key => $val) {
                     if ($val == 1) {
                         $this->getFromDB($key);
                         $type = PluginWebapplicationsWebapplicationType::transfer($this->fields["plugin_webapplications_webapplicationtypes_id"], $input['entities_id']);
                         if ($type > 0) {
                             $values["id"] = $key;
                             $values["plugin_webapplications_webapplicationtypes_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_webapplications_webapplicationtypes_id' => $key, 'items_id' => $input["item_item"], 'itemtype' => $input['typeitem']);
                     if ($web_item->add($values)) {
                         $res['ok']++;
                     } else {
                         $res['ko']++;
                     }
                 }
             }
             break;
         case "Desinstall":
             foreach ($input["item"] as $key => $val) {
                 if ($val == 1) {
                     if ($web_item->deleteItemByWebApplicationsAndItem($key, $input['item_item'], $input['typeitem'])) {
                         $res['ok']++;
                     } else {
                         $res['ko']++;
                     }
                 }
             }
             break;
         default:
             return parent::doSpecificMassiveActions($input);
             break;
     }
     return $res;
 }