Hierarchical and cross entities
Inheritance: extends CommonDropdown
 function getSearchOptions()
 {
     $tab = parent::getSearchOptions();
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'is_helpdesk_visible';
     $tab[11]['name'] = __('Last update');
     $tab[11]['datatype'] = 'bool';
     return $tab;
 }
 function getFromDB($ID)
 {
     global $LANG;
     if ($ID == 0) {
         $this->fields = array('id' => 0, 'name' => $LANG['entity'][2], 'entities_id' => 0, 'completename' => $LANG['entity'][2], 'comment' => '', 'level' => 0, 'sons_cache' => '', 'ancestors_cache' => '');
         return true;
     }
     return parent::getFromDB($ID);
 }
Beispiel #3
0
 function getSearchOptions()
 {
     $tab = parent::getSearchOptions();
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'is_active';
     $tab[8]['name'] = __('Active');
     $tab[8]['datatype'] = 'bool';
     return $tab;
 }
 /**
  * Report if a dropdown have Child
  * Used to (dis)allow delete action
  **/
 function haveChildren()
 {
     if (parent::haveChildren()) {
         return true;
     }
     $kb = new KnowbaseItem();
     $fk = $this->getForeignKeyField();
     $id = $this->fields['id'];
     return countElementsInTable($kb->getTable(), "`{$fk}`='{$id}'") > 0;
 }
Beispiel #5
0
 function getSearchOptions()
 {
     $tab = parent::getSearchOptions();
     $tab[14]['table'] = $this->getTable();
     $tab[14]['field'] = 'short_name';
     $tab[14]['name'] = __('Short name', 'resources');
     $tab[14]['datatype'] = 'text';
     $tab[17]['table'] = 'glpi_locations';
     $tab[17]['field'] = 'completename';
     $tab[17]['name'] = __('Location');
     return $tab;
 }
 function getSearchOptions()
 {
     global $LANG;
     $tab = parent::getSearchOptions();
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = $LANG['common'][10];
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'name';
     $tab[71]['name'] = $LANG['common'][35];
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'is_helpdeskvisible';
     $tab[2]['name'] = $LANG['tracking'][39];
     $tab[2]['datatype'] = 'bool';
     return $tab;
 }
 static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $withtemplate = 0)
 {
     if ($item->getType() == 'TicketTemplate') {
         self::showForTicketTemplate($item, $withtemplate);
     }
     return parent::displayTabContentForItem($item, $tabnum, $withtemplate);
 }
 /**
  * Used to update tree by redefining other items ForeignKeyField
  *
  * @return nothing
  **/
 function pre_deleteItem()
 {
     $this->alterElementInsideTree("delete");
     return parent::pre_deleteItem();
 }
Beispiel #9
0
 function getSearchOptions()
 {
     $tab = parent::getSearchOptions();
     if (AuthLdap::useAuthLdap()) {
         $tab[3]['table'] = $this->getTable();
         $tab[3]['field'] = 'ldap_field';
         $tab[3]['name'] = __('Attribute of the user containing its groups');
         $tab[3]['datatype'] = 'string';
         $tab[4]['table'] = $this->getTable();
         $tab[4]['field'] = 'ldap_value';
         $tab[4]['name'] = __('Attribute value');
         $tab[4]['datatype'] = 'text';
         $tab[5]['table'] = $this->getTable();
         $tab[5]['field'] = 'ldap_group_dn';
         $tab[5]['name'] = __('Group DN');
         $tab[5]['datatype'] = 'text';
     }
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'is_requester';
     $tab[11]['name'] = __('Requester');
     $tab[11]['datatype'] = 'bool';
     $tab[12]['table'] = $this->getTable();
     $tab[12]['field'] = 'is_assign';
     $tab[12]['name'] = __('Assigned to');
     $tab[12]['datatype'] = 'bool';
     $tab[18]['table'] = $this->getTable();
     $tab[18]['field'] = 'is_manager';
     $tab[18]['name'] = __('Can be manager');
     $tab[18]['datatype'] = 'bool';
     $tab[13]['table'] = $this->getTable();
     $tab[13]['field'] = 'is_notify';
     $tab[13]['name'] = __('Can be notified');
     $tab[13]['datatype'] = 'bool';
     $tab[17]['table'] = $this->getTable();
     $tab[17]['field'] = 'is_itemgroup';
     $tab[17]['name'] = sprintf(__('%1$s %2$s'), __('Can contain'), _n('Item', 'Items', Session::getPluralNumber()));
     $tab[17]['datatype'] = 'bool';
     $tab[15]['table'] = $this->getTable();
     $tab[15]['field'] = 'is_usergroup';
     $tab[15]['name'] = sprintf(__('%1$s %2$s'), __('Can contain'), User::getTypeName(Session::getPluralNumber()));
     $tab[15]['datatype'] = 'bool';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[121]['table'] = $this->getTable();
     $tab[121]['field'] = 'date_creation';
     $tab[121]['name'] = __('Creation date');
     $tab[121]['datatype'] = 'datetime';
     $tab[121]['massiveaction'] = false;
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('Manager');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[70]['forcegroupby'] = true;
     $tab[70]['massiveaction'] = false;
     $tab[70]['joinparams'] = array('beforejoin' => array('table' => 'glpi_groups_users', 'joinparams' => array('jointype' => 'child', 'condition' => "AND NEWTABLE.`is_manager` = 1")));
     $tab[71]['table'] = 'glpi_users';
     $tab[71]['field'] = 'name';
     $tab[71]['name'] = __('Delegatee');
     $tab[71]['datatype'] = 'dropdown';
     $tab[71]['right'] = 'all';
     $tab[71]['forcegroupby'] = true;
     $tab[71]['massiveaction'] = false;
     $tab[71]['joinparams'] = array('beforejoin' => array('table' => 'glpi_groups_users', 'joinparams' => array('jointype' => 'child', 'condition' => "AND NEWTABLE.`is_userdelegate` = 1")));
     return $tab;
 }
Beispiel #10
0
 /**
  * @since version 0.85
  *
  * @see commonDBTM::getRights()
  **/
 function getRights($interface = 'central')
 {
     $values = parent::getRights();
     $values[self::READHELPDESK] = array('short' => __('Read parameters'), 'long' => __('Read helpdesk parameters'));
     $values[self::UPDATEHELPDESK] = array('short' => __('Update parameters'), 'long' => __('Update helpdesk parameters'));
     return $values;
 }
Beispiel #11
0
 static function pdfChildren(PluginPdfSimplePDF $pdf, CommonTreeDropdown $item)
 {
     global $DB;
     $ID = $item->getID();
     $fields = $item->getAdditionalFields();
     $nb = count($fields);
     $entity_assign = $item->isEntityAssign();
     $fk = $item->getForeignKeyField();
     $crit = array($fk => $item->getID(), 'ORDER' => 'name');
     $pdf->setColumnsSize(100);
     $pdf->displayTitle(sprintf(__('Sons of %s'), '<b>' . $item->getNameID() . '</b>'));
     if ($item->haveChildren()) {
         if ($entity_assign) {
             if ($fk == 'entities_id') {
                 $crit['id'] = $_SESSION['glpiactiveentities'];
                 $crit['id'] += $_SESSION['glpiparententities'];
             } else {
                 $crit['entities_id'] = $_SESSION['glpiactiveentities'];
             }
             $pdf->setColumnsSize(30, 30, 40);
             $pdf->displayTitle(__('Name'), __('Entity'), __('Comments'));
         } else {
             $pdf->setColumnsSize(45, 55);
             $pdf->displayTitle(__('Name'), __('Comments'));
         }
         foreach ($DB->request($item->getTable(), $crit) as $data) {
             if ($entity_assign) {
                 $pdf->displayLine($data['name'], Html::clean(Dropdown::getDropdownName("glpi_entities", $data["entities_id"])), $data['comment']);
             } else {
                 $pdf->displayLine($data['name'], $data['comment']);
             }
         }
     } else {
         $pdf->displayLine(__('No item found'));
     }
     $pdf->displaySpace();
 }
 /**
  * @see CommonDBTM::prepareInputForAdd()
  */
 function prepareInputForAdd($input)
 {
     global $LANG;
     // Check for mandatory fields
     $mandatory_ok = true;
     if (!isset($input["plugin_customfields_dropdowns_id"]) || empty($input["plugin_customfields_dropdowns_id"])) {
         Session::addMessageAfterRedirect($LANG['plugin_customfields']['error'][1], false, ERROR);
         $mandatory_ok = false;
     }
     if (!$mandatory_ok) {
         return false;
     }
     return parent::prepareInputForAdd($input);
 }
Beispiel #13
0
 /**
  * Get search function for the class
  *
  * @since version 0.85
  *
  * @return array of search option
  **/
 function getSearchOptions()
 {
     $tab = parent::getSearchOptions();
     $tab[21]['table'] = $this->getTable();
     $tab[21]['field'] = 'is_visible_computer';
     $tab[21]['name'] = sprintf(__('%1$s - %2$s'), __('Visibility'), Computer::getTypeName(Session::getPluralNumber()));
     $tab[21]['datatype'] = 'bool';
     $tab[22]['table'] = $this->getTable();
     $tab[22]['field'] = 'is_visible_softwareversion';
     $tab[22]['name'] = sprintf(__('%1$s - %2$s'), __('Visibility'), SoftwareVersion::getTypeName(Session::getPluralNumber()));
     $tab[22]['datatype'] = 'bool';
     $tab[23]['table'] = $this->getTable();
     $tab[23]['field'] = 'is_visible_monitor';
     $tab[23]['name'] = sprintf(__('%1$s - %2$s'), __('Visibility'), Monitor::getTypeName(Session::getPluralNumber()));
     $tab[23]['datatype'] = 'bool';
     $tab[24]['table'] = $this->getTable();
     $tab[24]['field'] = 'is_visible_printer';
     $tab[24]['name'] = sprintf(__('%1$s - %2$s'), __('Visibility'), Printer::getTypeName(Session::getPluralNumber()));
     $tab[24]['datatype'] = 'bool';
     $tab[25]['table'] = $this->getTable();
     $tab[25]['field'] = 'is_visible_peripheral';
     $tab[25]['name'] = sprintf(__('%1$s - %2$s'), __('Visibility'), Peripheral::getTypeName(Session::getPluralNumber()));
     $tab[25]['datatype'] = 'bool';
     $tab[26]['table'] = $this->getTable();
     $tab[26]['field'] = 'is_visible_phone';
     $tab[26]['name'] = sprintf(__('%1$s - %2$s'), __('Visibility'), Phone::getTypeName(Session::getPluralNumber()));
     $tab[26]['datatype'] = 'bool';
     $tab[27]['table'] = $this->getTable();
     $tab[27]['field'] = 'is_visible_networkequipment';
     $tab[27]['name'] = sprintf(__('%1$s - %2$s'), __('Visibility'), NetworkEquipment::getTypeName(Session::getPluralNumber()));
     $tab[27]['datatype'] = 'bool';
     return $tab;
 }
Beispiel #14
0
 function defineTabs($options = array())
 {
     $ong = parent::defineTabs($options);
     $this->addStandardTab('Netpoint', $ong, $options);
     $this->addStandardTab(__CLASS__, $ong, $options);
     return $ong;
 }
Beispiel #15
0
 /**
  * @since version 0.84
  *
  * @param $field
  * @param $name               (default '')
  * @param $values             (default '')
  * @param $options      array
  **/
 static function getSpecificValueToSelect($field, $name = '', $values = '', array $options = array())
 {
     global $DB;
     if (!is_array($values)) {
         $values = array($field => $values);
     }
     $options['display'] = false;
     switch ($field) {
         case 'use_licenses_alert':
         case 'use_contracts_alert':
         case 'use_infocoms_alert':
             $options['name'] = $name;
             $options['value'] = $values[$field];
             return Alert::dropdownYesNo($options);
         case 'cartridges_alert_repeat':
         case 'consumables_alert_repeat':
             $options['name'] = $name;
             $options['value'] = $values[$field];
             return Alert::dropdown($options);
         case 'send_contracts_alert_before_delay':
         case 'send_infocoms_alert_before_delay':
         case 'send_licenses_alert_before_delay':
             $options['unit'] = 'day';
             $options['never_string'] = __('No');
             return Alert::dropdownIntegerNever($name, $values[$field], $options);
         case 'use_reservations_alert':
             $options['unit'] = 'hour';
             return Alert::dropdownIntegerNever($name, $values[$field], $options);
         case 'notclosed_delay':
             $options['unit'] = 'hour';
             return Alert::dropdownIntegerNever($name, $values[$field], $options);
         case 'auto_assign_mode':
             $options['name'] = $name;
             $options['value'] = $values[$field];
             return self::dropdownAutoAssignMode($options);
         case 'tickettype':
             $options['value'] = $values[$field];
             $options['toadd'] = array(self::CONFIG_PARENT => __('Inheritance of the parent entity'));
             return Ticket::dropdownType($name, $options);
         case 'autofill_buy_date':
         case 'autofill_order_date':
         case 'autofill_delivery_date':
         case 'autofill_use_date':
             $tab[0] = __('No autofill');
             $tab[self::CONFIG_PARENT] = __('Inheritance of the parent entity');
             foreach (getAllDatasFromTable('glpi_states') as $state) {
                 $tab[Infocom::ON_STATUS_CHANGE . '_' . $state['id']] = sprintf(__('Fill when shifting to state %s'), $state['name']);
             }
             $tab[Infocom::COPY_WARRANTY_DATE] = __('Copy the start date of warranty');
             if ($field != 'autofill_buy_date') {
                 $tab[Infocom::COPY_BUY_DATE] = __('Copy the date of purchase');
                 if ($field != 'autofill_order_date') {
                     $tab[Infocom::COPY_ORDER_DATE] = __('Copy the order date');
                     if ($field != 'autofill_delivery_date') {
                         $options[Infocom::COPY_DELIVERY_DATE] = __('Copy the delivery date');
                     }
                 }
             }
             $options['value'] = $values[$field];
             return Dropdown::showFromArray($name, $tab, $options);
         case 'autofill_warranty_date':
             $tab = array(0 => __('No autofill'), Infocom::COPY_BUY_DATE => __('Copy the date of purchase'), Infocom::COPY_ORDER_DATE => __('Copy the order date'), Infocom::COPY_DELIVERY_DATE => __('Copy the delivery date'), self::CONFIG_PARENT => __('Inheritance of the parent entity'));
             $options['value'] = $values[$field];
             return Dropdown::showFromArray($name, $tab, $options);
         case 'inquest_config':
             $typeinquest = array(self::CONFIG_PARENT => __('Inheritance of the parent entity'), 1 => __('Internal survey'), 2 => __('External survey'));
             $options['value'] = $values[$field];
             return Dropdown::showFromArray($name, $typeinquest, $options);
         case 'default_contract_alert':
             $options['name'] = $name;
             $options['value'] = $values[$field];
             return Contract::dropdownAlert($options);
         case 'default_infocom_alert':
             $options['name'] = $name;
             $options['value'] = $values[$field];
             return Infocom::dropdownAlert($options);
         case 'entities_id_software':
             $options['toadd'] = array(self::CONFIG_NEVER => __('No change of entity'));
             // Keep software in PC entity
             $options['toadd'][self::CONFIG_PARENT] = __('Inheritance of the parent entity');
             return self::dropdown($options);
     }
     return parent::getSpecificValueToSelect($field, $name, $values, $options);
 }
 /**
  * Display content of Tab
  *
  * @param $ID of the item
  * @param $tab number of the tab
  *
  * @return true if handled (for class stack)
  **/
 function showTabContent($ID, $tab)
 {
     if ($ID > 0 && !parent::showTabContent($ID, $tab)) {
         switch ($tab) {
             case 2:
                 $this->showNetpoints($ID);
                 return true;
             case -1:
                 $this->showNetpoints($ID);
                 return false;
         }
     }
     return false;
 }