/** * 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"]))); } } } }
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); }
/** * 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; }