Inheritance: extends yupe\models\YModel
 public function loadModel($id)
 {
     if (($model = Notepad::model()->findByPk($id)) === null) {
         throw new CHttpException(404, 'Страница не найдена');
     }
     return $model;
 }
Ejemplo n.º 2
0
     
This file is part of Tasklists.

Tasklists is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Tasklists is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Tasklists. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------
*/
include '../../../inc/includes.php';
if (!isset($_GET["id"])) {
    $_GET["id"] = "";
}
if (!isset($_GET["withtemplate"])) {
    $_GET["withtemplate"] = "";
}
Html::header(PluginTasklistsTask::getTypeName(2), '', "helpdesk", "plugintasklistsmenu");
$task = new PluginTasklistsTask();
$task->checkGlobal(READ);
$task->getFromDB($_GET['id']);
$note = new Notepad();
$note->showForItem($task);
Html::footer();
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[4]['table'] = 'glpi_phonetypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[40]['table'] = 'glpi_phonemodels';
     $tab[40]['field'] = 'name';
     $tab[40]['name'] = __('Model');
     $tab[40]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['condition'] = "`is_visible_phone`";
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'serial';
     $tab[5]['name'] = __('Serial number');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'otherserial';
     $tab[6]['name'] = __('Inventory number');
     $tab[6]['datatype'] = 'string';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'contact';
     $tab[7]['name'] = __('Alternate username');
     $tab[7]['datatype'] = 'string';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'contact_num';
     $tab[8]['name'] = __('Alternate username number');
     $tab[8]['datatype'] = 'string';
     $tab[9]['table'] = $this->getTable();
     $tab[9]['field'] = 'number_line';
     $tab[9]['name'] = _x('quantity', 'Number of lines');
     $tab[9]['datatype'] = 'string';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'brand';
     $tab[11]['name'] = __('Brand');
     $tab[11]['datatype'] = 'string';
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Manufacturer');
     $tab[23]['datatype'] = 'dropdown';
     $tab[32]['table'] = $this->getTable();
     $tab[32]['field'] = 'firmware';
     $tab[32]['name'] = __('Firmware');
     $tab[32]['datatype'] = 'string';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[42]['table'] = 'glpi_phonepowersupplies';
     $tab[42]['field'] = 'name';
     $tab[42]['name'] = __('Power supply');
     $tab[42]['datatype'] = 'dropdown';
     $tab[43]['table'] = $this->getTable();
     $tab[43]['field'] = 'have_headset';
     $tab[43]['name'] = __('Headset');
     $tab[43]['datatype'] = 'bool';
     $tab[44]['table'] = $this->getTable();
     $tab[44]['field'] = 'have_hp';
     $tab[44]['name'] = __('Speaker');
     $tab[44]['datatype'] = 'bool';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[82]['table'] = $this->getTable();
     $tab[82]['field'] = 'is_global';
     $tab[82]['name'] = __('Global management');
     $tab[82]['datatype'] = 'bool';
     $tab[82]['massiveaction'] = false;
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 4
0
 function getSearchOptions()
 {
     global $CFG_GLPI;
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     // implicit key==1
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     // implicit field is id
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[4]['table'] = 'glpi_computertypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[40]['table'] = 'glpi_computermodels';
     $tab[40]['field'] = 'name';
     $tab[40]['name'] = __('Model');
     $tab[40]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['condition'] = "`is_visible_computer`";
     $tab[45]['table'] = 'glpi_operatingsystems';
     $tab[45]['field'] = 'name';
     $tab[45]['name'] = __('Operating system');
     $tab[45]['datatype'] = 'dropdown';
     $tab[46]['table'] = 'glpi_operatingsystemversions';
     $tab[46]['field'] = 'name';
     $tab[46]['name'] = __('Version of the operating system');
     $tab[46]['datatype'] = 'dropdown';
     $tab[41]['table'] = 'glpi_operatingsystemservicepacks';
     $tab[41]['field'] = 'name';
     $tab[41]['name'] = __('Service pack');
     $tab[41]['datatype'] = 'dropdown';
     $tab[42]['table'] = 'glpi_autoupdatesystems';
     $tab[42]['field'] = 'name';
     $tab[42]['name'] = __('Update Source');
     $tab[42]['datatype'] = 'dropdown';
     $tab[43]['table'] = $this->getTable();
     $tab[43]['field'] = 'os_license_number';
     $tab[43]['name'] = __('Serial of the operating system');
     $tab[43]['datatype'] = 'string';
     $tab[44]['table'] = $this->getTable();
     $tab[44]['field'] = 'os_licenseid';
     $tab[44]['name'] = __('Product ID of the operating system');
     $tab[44]['datatype'] = 'string';
     $tab[47]['table'] = $this->getTable();
     $tab[47]['field'] = 'uuid';
     $tab[47]['name'] = __('UUID');
     $tab[47]['datatype'] = 'string';
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'serial';
     $tab[5]['name'] = __('Serial number');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'otherserial';
     $tab[6]['name'] = __('Inventory number');
     $tab[6]['datatype'] = 'string';
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'contact';
     $tab[7]['name'] = __('Alternate username');
     $tab[7]['datatype'] = 'string';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'contact_num';
     $tab[8]['name'] = __('Alternate username number');
     $tab[8]['datatype'] = 'string';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[32]['table'] = 'glpi_networks';
     $tab[32]['field'] = 'name';
     $tab[32]['name'] = __('Network');
     $tab[32]['datatype'] = 'dropdown';
     $tab[33]['table'] = 'glpi_domains';
     $tab[33]['field'] = 'name';
     $tab[33]['name'] = __('Domain');
     $tab[33]['datatype'] = 'dropdown';
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Manufacturer');
     $tab[23]['datatype'] = 'dropdown';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['datatype'] = 'dropdown';
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     $tab['periph'] = _n('Component', 'Components', Session::getPluralNumber());
     $items_device_joinparams = array('jointype' => 'itemtype_item', 'specific_itemtype' => 'Computer');
     $tab[17]['table'] = 'glpi_deviceprocessors';
     $tab[17]['field'] = 'designation';
     $tab[17]['name'] = __('Processor');
     $tab[17]['forcegroupby'] = true;
     $tab[17]['usehaving'] = true;
     $tab[17]['massiveaction'] = false;
     $tab[17]['datatype'] = 'string';
     $tab[17]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_deviceprocessors', 'joinparams' => $items_device_joinparams));
     $tab[36]['table'] = 'glpi_items_deviceprocessors';
     $tab[36]['field'] = 'frequency';
     $tab[36]['name'] = __('Processor frequency');
     $tab[36]['unit'] = __('MHz');
     $tab[36]['forcegroupby'] = true;
     $tab[36]['usehaving'] = true;
     $tab[36]['datatype'] = 'number';
     $tab[36]['width'] = 100;
     $tab[36]['massiveaction'] = false;
     $tab[36]['joinparams'] = $items_device_joinparams;
     $tab[36]['computation'] = "SUM(TABLE.`frequency`) / COUNT(TABLE.`id`)";
     $tab[10]['table'] = 'glpi_devicememories';
     $tab[10]['field'] = 'designation';
     $tab[10]['name'] = __('Memory type');
     $tab[10]['forcegroupby'] = true;
     $tab[10]['usehaving'] = true;
     $tab[10]['massiveaction'] = false;
     $tab[10]['datatype'] = 'string';
     $tab[10]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicememories', 'joinparams' => $items_device_joinparams));
     $tab[35]['table'] = 'glpi_items_devicememories';
     $tab[35]['field'] = 'size';
     $tab[35]['unit'] = __('Mio');
     $tab[35]['name'] = sprintf(__('%1$s (%2$s)'), __('Memory'), __('Mio'));
     $tab[35]['forcegroupby'] = true;
     $tab[35]['usehaving'] = true;
     $tab[35]['datatype'] = 'number';
     $tab[35]['width'] = 100;
     $tab[35]['massiveaction'] = false;
     $tab[35]['joinparams'] = $items_device_joinparams;
     $tab[35]['computation'] = "(SUM(TABLE.`size`) / COUNT(TABLE.`id`))\n                                    * COUNT(DISTINCT TABLE.`id`)";
     $tab[11]['table'] = 'glpi_devicenetworkcards';
     $tab[11]['field'] = 'designation';
     $tab[11]['name'] = _n('Network interface', 'Network interfaces', 1);
     $tab[11]['forcegroupby'] = true;
     $tab[11]['massiveaction'] = false;
     $tab[11]['datatype'] = 'string';
     $tab[11]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicenetworkcards', 'joinparams' => $items_device_joinparams));
     $tab[20]['table'] = 'glpi_items_devicenetworkcards';
     $tab[20]['field'] = 'mac';
     $tab[20]['name'] = __('MAC address');
     $tab[20]['forcegroupby'] = true;
     $tab[20]['massiveaction'] = false;
     $tab[20]['datatype'] = 'string';
     $tab[20]['joinparams'] = $items_device_joinparams;
     $tab[12]['table'] = 'glpi_devicesoundcards';
     $tab[12]['field'] = 'designation';
     $tab[12]['name'] = __('Soundcard');
     $tab[12]['forcegroupby'] = true;
     $tab[12]['massiveaction'] = false;
     $tab[12]['datatype'] = 'string';
     $tab[12]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicesoundcards', 'joinparams' => $items_device_joinparams));
     $tab[13]['table'] = 'glpi_devicegraphiccards';
     $tab[13]['field'] = 'designation';
     $tab[13]['name'] = __('Graphics card');
     $tab[13]['forcegroupby'] = true;
     $tab[13]['massiveaction'] = false;
     $tab[13]['datatype'] = 'string';
     $tab[13]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicegraphiccards', 'joinparams' => $items_device_joinparams));
     $tab[14]['table'] = 'glpi_devicemotherboards';
     $tab[14]['field'] = 'designation';
     $tab[14]['name'] = __('System board');
     $tab[14]['forcegroupby'] = true;
     $tab[14]['massiveaction'] = false;
     $tab[14]['datatype'] = 'string';
     $tab[14]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicemotherboards', 'joinparams' => $items_device_joinparams));
     $tab[15]['table'] = 'glpi_deviceharddrives';
     $tab[15]['field'] = 'designation';
     $tab[15]['name'] = __('Hard drive type');
     $tab[15]['forcegroupby'] = true;
     $tab[15]['usehaving'] = true;
     $tab[15]['massiveaction'] = false;
     $tab[15]['datatype'] = 'string';
     $tab[15]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_deviceharddrives', 'joinparams' => $items_device_joinparams));
     $tab[34]['table'] = 'glpi_items_deviceharddrives';
     $tab[34]['field'] = 'capacity';
     $tab[34]['name'] = __('Hard drive size');
     $tab[34]['unit'] = __('Mio');
     $tab[34]['forcegroupby'] = true;
     $tab[34]['usehaving'] = true;
     $tab[34]['datatype'] = 'number';
     $tab[34]['width'] = 1000;
     $tab[34]['massiveaction'] = false;
     $tab[34]['joinparams'] = $items_device_joinparams;
     $tab[34]['computation'] = "(SUM(TABLE.`capacity`) / COUNT(TABLE.`id`))\n                                       * COUNT(DISTINCT TABLE.`id`)";
     $tab[39]['table'] = 'glpi_devicepowersupplies';
     $tab[39]['field'] = 'designation';
     $tab[39]['name'] = __('Power supply');
     $tab[39]['forcegroupby'] = true;
     $tab[39]['usehaving'] = true;
     $tab[39]['massiveaction'] = false;
     $tab[39]['datatype'] = 'string';
     $tab[39]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicepowersupplies', 'joinparams' => $items_device_joinparams));
     $tab[95]['table'] = 'glpi_devicepcis';
     $tab[95]['field'] = 'designation';
     $tab[95]['name'] = __('Other component');
     $tab[95]['forcegroupby'] = true;
     $tab[95]['usehaving'] = true;
     $tab[95]['massiveaction'] = false;
     $tab[95]['datatype'] = 'string';
     $tab[95]['joinparams'] = array('beforejoin' => array('table' => 'glpi_items_devicepcis', 'joinparams' => $items_device_joinparams));
     $tab['disk'] = _n('Volume', 'Volumes', Session::getPluralNumber());
     $tab[156]['table'] = 'glpi_computerdisks';
     $tab[156]['field'] = 'name';
     $tab[156]['name'] = __('Volume');
     $tab[156]['forcegroupby'] = true;
     $tab[156]['massiveaction'] = false;
     $tab[156]['datatype'] = 'dropdown';
     $tab[156]['joinparams'] = array('jointype' => 'child');
     $tab[150]['table'] = 'glpi_computerdisks';
     $tab[150]['field'] = 'totalsize';
     $tab[150]['name'] = sprintf(__('%1$s (%2$s)'), __('Global size'), __('Mio'));
     $tab[150]['forcegroupby'] = true;
     $tab[150]['usehaving'] = true;
     $tab[150]['datatype'] = 'number';
     $tab[150]['width'] = 1000;
     $tab[150]['massiveaction'] = false;
     $tab[150]['joinparams'] = array('jointype' => 'child');
     $tab[151]['table'] = 'glpi_computerdisks';
     $tab[151]['field'] = 'freesize';
     $tab[151]['name'] = __('Free size');
     $tab[151]['forcegroupby'] = true;
     $tab[151]['datatype'] = 'number';
     $tab[151]['width'] = 1000;
     $tab[151]['massiveaction'] = false;
     $tab[151]['joinparams'] = array('jointype' => 'child');
     $tab[152]['table'] = 'glpi_computerdisks';
     $tab[152]['field'] = 'freepercent';
     $tab[152]['name'] = __('Free percentage');
     $tab[152]['forcegroupby'] = true;
     $tab[152]['datatype'] = 'decimal';
     $tab[152]['width'] = 2;
     $tab[152]['computation'] = "ROUND(100*TABLE.freesize/TABLE.totalsize)";
     $tab[152]['unit'] = '%';
     $tab[152]['massiveaction'] = false;
     $tab[152]['joinparams'] = array('jointype' => 'child');
     $tab[153]['table'] = 'glpi_computerdisks';
     $tab[153]['field'] = 'mountpoint';
     $tab[153]['name'] = __('Mount point');
     $tab[153]['forcegroupby'] = true;
     $tab[153]['massiveaction'] = false;
     $tab[153]['datatype'] = 'string';
     $tab[153]['joinparams'] = array('jointype' => 'child');
     $tab[154]['table'] = 'glpi_computerdisks';
     $tab[154]['field'] = 'device';
     $tab[154]['name'] = __('Partition');
     $tab[154]['forcegroupby'] = true;
     $tab[154]['massiveaction'] = false;
     $tab[154]['datatype'] = 'string';
     $tab[154]['joinparams'] = array('jointype' => 'child');
     $tab[155]['table'] = 'glpi_filesystems';
     $tab[155]['field'] = 'name';
     $tab[155]['name'] = __('File system');
     $tab[155]['forcegroupby'] = true;
     $tab[155]['massiveaction'] = false;
     $tab[155]['datatype'] = 'dropdown';
     $tab[155]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computerdisks', 'joinparams' => array('jointype' => 'child')));
     $tab['virtualmachine'] = _n('Virtual machine', 'Virtual machines', Session::getPluralNumber());
     $tab[160]['table'] = 'glpi_computervirtualmachines';
     $tab[160]['field'] = 'name';
     $tab[160]['name'] = __('Virtual machine');
     $tab[160]['forcegroupby'] = true;
     $tab[160]['massiveaction'] = false;
     $tab[160]['datatype'] = 'dropdown';
     $tab[160]['joinparams'] = array('jointype' => 'child');
     $tab[161]['table'] = 'glpi_virtualmachinestates';
     $tab[161]['field'] = 'name';
     $tab[161]['name'] = __('State of the virtual machine');
     $tab[161]['forcegroupby'] = true;
     $tab[161]['massiveaction'] = false;
     $tab[161]['datatype'] = 'dropdown';
     $tab[161]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computervirtualmachines', 'joinparams' => array('jointype' => 'child')));
     $tab[162]['table'] = 'glpi_virtualmachinesystems';
     $tab[162]['field'] = 'name';
     $tab[162]['name'] = __('Virtualization model');
     $tab[162]['forcegroupby'] = true;
     $tab[162]['massiveaction'] = false;
     $tab[162]['datatype'] = 'dropdown';
     $tab[162]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computervirtualmachines', 'joinparams' => array('jointype' => 'child')));
     $tab[163]['table'] = 'glpi_virtualmachinetypes';
     $tab[163]['field'] = 'name';
     $tab[163]['name'] = __('Virtualization system');
     $tab[163]['datatype'] = 'dropdown';
     $tab[163]['forcegroupby'] = true;
     $tab[163]['massiveaction'] = false;
     $tab[163]['joinparams'] = array('beforejoin' => array('table' => 'glpi_computervirtualmachines', 'joinparams' => array('jointype' => 'child')));
     $tab[164]['table'] = 'glpi_computervirtualmachines';
     $tab[164]['field'] = 'vcpu';
     $tab[164]['name'] = __('Virtual machine processor number');
     $tab[164]['datatype'] = 'number';
     $tab[164]['forcegroupby'] = true;
     $tab[164]['massiveaction'] = false;
     $tab[164]['joinparams'] = array('jointype' => 'child');
     $tab[165]['table'] = 'glpi_computervirtualmachines';
     $tab[165]['field'] = 'ram';
     $tab[165]['name'] = __('Memory of virtual machines');
     $tab[165]['datatype'] = 'number';
     $tab[165]['unit'] = __('Mio');
     $tab[165]['forcegroupby'] = true;
     $tab[165]['massiveaction'] = false;
     $tab[165]['joinparams'] = array('jointype' => 'child');
     $tab[166]['table'] = 'glpi_computervirtualmachines';
     $tab[166]['field'] = 'uuid';
     $tab[166]['name'] = __('Virtual machine UUID');
     $tab[165]['datatype'] = 'string';
     $tab[166]['forcegroupby'] = true;
     $tab[166]['massiveaction'] = false;
     $tab[166]['joinparams'] = array('jointype' => 'child');
     return $tab;
 }
Ejemplo n.º 5
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[4]['table'] = 'glpi_monitortypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[40]['table'] = 'glpi_monitormodels';
     $tab[40]['field'] = 'name';
     $tab[40]['name'] = __('Model');
     $tab[40]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['condition'] = "`is_visible_monitor`";
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'serial';
     $tab[5]['name'] = __('Serial number');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'otherserial';
     $tab[6]['name'] = __('Inventory number');
     $tab[6]['datatype'] = 'string';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'contact';
     $tab[7]['name'] = __('Alternate username');
     $tab[7]['datatype'] = 'string';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'contact_num';
     $tab[8]['name'] = __('Alternate username number');
     $tab[8]['datatype'] = 'string';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'size';
     $tab[11]['name'] = __('Size');
     $tab[11]['datatype'] = 'number';
     $tab[41]['table'] = $this->getTable();
     $tab[41]['field'] = 'have_micro';
     $tab[41]['name'] = __('Microphone');
     $tab[41]['datatype'] = 'bool';
     $tab[42]['table'] = $this->getTable();
     $tab[42]['field'] = 'have_speaker';
     $tab[42]['name'] = __('Speakers');
     $tab[42]['datatype'] = 'bool';
     $tab[43]['table'] = $this->getTable();
     $tab[43]['field'] = 'have_subd';
     $tab[43]['name'] = __('Sub-D');
     $tab[43]['datatype'] = 'bool';
     $tab[44]['table'] = $this->getTable();
     $tab[44]['field'] = 'have_bnc';
     $tab[44]['name'] = 'BNC';
     $tab[44]['datatype'] = 'bool';
     $tab[45]['table'] = $this->getTable();
     $tab[45]['field'] = 'have_dvi';
     $tab[45]['name'] = __('DVI');
     $tab[45]['datatype'] = 'bool';
     $tab[46]['table'] = $this->getTable();
     $tab[46]['field'] = 'have_pivot';
     $tab[46]['name'] = __('Pivot');
     $tab[46]['datatype'] = 'bool';
     $tab[47]['table'] = $this->getTable();
     $tab[47]['field'] = 'have_hdmi';
     $tab[47]['name'] = __('HDMI');
     $tab[47]['datatype'] = 'bool';
     $tab[48]['table'] = $this->getTable();
     $tab[48]['field'] = 'have_displayport';
     $tab[48]['name'] = __('DisplayPort');
     $tab[48]['datatype'] = 'bool';
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Manufacturer');
     $tab[23]['datatype'] = 'dropdown';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[82]['table'] = $this->getTable();
     $tab[82]['field'] = 'is_global';
     $tab[82]['name'] = __('Global management');
     $tab[82]['datatype'] = 'bool';
     $tab[82]['massiveaction'] = false;
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 6
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[4]['table'] = 'glpi_printertypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[40]['table'] = 'glpi_printermodels';
     $tab[40]['field'] = 'name';
     $tab[40]['name'] = __('Model');
     $tab[40]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['condition'] = "`is_visible_printer`";
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'serial';
     $tab[5]['name'] = __('Serial number');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'otherserial';
     $tab[6]['name'] = __('Inventory number');
     $tab[6]['datatype'] = 'string';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'contact';
     $tab[7]['name'] = __('Alternate username');
     $tab[7]['datatype'] = 'string';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'contact_num';
     $tab[8]['name'] = __('Alternate username number');
     $tab[8]['datatype'] = 'string';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[42]['table'] = $this->getTable();
     $tab[42]['field'] = 'have_serial';
     $tab[42]['name'] = __('Serial');
     $tab[42]['datatype'] = 'bool';
     $tab[43]['table'] = $this->getTable();
     $tab[43]['field'] = 'have_parallel';
     $tab[43]['name'] = __('Parallel');
     $tab[43]['datatype'] = 'bool';
     $tab[44]['table'] = $this->getTable();
     $tab[44]['field'] = 'have_usb';
     $tab[44]['name'] = __('USB');
     $tab[44]['datatype'] = 'bool';
     $tab[45]['table'] = $this->getTable();
     $tab[45]['field'] = 'have_ethernet';
     $tab[45]['name'] = __('Ethernet');
     $tab[45]['datatype'] = 'bool';
     $tab[46]['table'] = $this->getTable();
     $tab[46]['field'] = 'have_wifi';
     $tab[46]['name'] = __('Wifi');
     $tab[46]['datatype'] = 'bool';
     $tab[13]['table'] = $this->getTable();
     $tab[13]['field'] = 'memory_size';
     $tab[13]['name'] = __('Memory');
     $tab[13]['datatype'] = 'string';
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'init_pages_counter';
     $tab[11]['name'] = __('Initial page counter');
     $tab[11]['datatype'] = 'number';
     $tab[11]['nosearch'] = true;
     // only display and histo, no index
     $tab[12]['table'] = $this->getTable();
     $tab[12]['field'] = 'last_pages_counter';
     $tab[12]['name'] = __('Current counter of pages');
     $tab[12]['datatype'] = 'number';
     $tab[9]['table'] = 'glpi_printers';
     $tab[9]['field'] = '_virtual';
     $tab[9]['linkfield'] = '_virtual';
     $tab[9]['name'] = _n('Cartridge', 'Cartridges', Session::getPluralNumber());
     $tab[9]['datatype'] = 'specific';
     $tab[9]['massiveaction'] = false;
     $tab[9]['nosearch'] = true;
     $tab[9]['nosort'] = true;
     $tab[17]['table'] = 'glpi_cartridges';
     $tab[17]['field'] = 'id';
     $tab[17]['name'] = __('Number of used cartridges');
     $tab[17]['datatype'] = 'count';
     $tab[17]['forcegroupby'] = true;
     $tab[17]['usehaving'] = true;
     $tab[17]['massiveaction'] = false;
     $tab[17]['joinparams'] = array('jointype' => 'child', 'condition' => "AND NEWTABLE.`date_use` IS NOT NULL\n                                                      AND NEWTABLE.`date_out` IS NULL");
     $tab[18]['table'] = 'glpi_cartridges';
     $tab[18]['field'] = 'id';
     $tab[18]['name'] = __('Number of worn cartridges');
     $tab[18]['datatype'] = 'count';
     $tab[18]['forcegroupby'] = true;
     $tab[18]['usehaving'] = true;
     $tab[18]['massiveaction'] = false;
     $tab[18]['joinparams'] = array('jointype' => 'child', 'condition' => "AND NEWTABLE.`date_out` IS NOT NULL");
     $tab[32]['table'] = 'glpi_networks';
     $tab[32]['field'] = 'name';
     $tab[32]['name'] = __('Network');
     $tab[32]['datatype'] = 'dropdown';
     $tab[33]['table'] = 'glpi_domains';
     $tab[33]['field'] = 'name';
     $tab[33]['name'] = __('Domain');
     $tab[33]['datatype'] = 'dropdown';
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Manufacturer');
     $tab[23]['datatype'] = 'dropdown';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[82]['table'] = $this->getTable();
     $tab[82]['field'] = 'is_global';
     $tab[82]['name'] = __('Global management');
     $tab[82]['datatype'] = 'bool';
     $tab[82]['massiveaction'] = false;
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 7
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'num';
     $tab[3]['name'] = _x('phone', 'Number');
     $tab[3]['datatype'] = 'string';
     $tab[4]['table'] = 'glpi_contracttypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'begin_date';
     $tab[5]['name'] = __('Start date');
     $tab[5]['datatype'] = 'date';
     $tab[5]['maybefuture'] = true;
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'duration';
     $tab[6]['name'] = __('Duration');
     $tab[6]['datatype'] = 'number';
     $tab[6]['max'] = 120;
     $tab[6]['unit'] = 'month';
     $tab[20]['table'] = $this->getTable();
     $tab[20]['field'] = 'end_date';
     $tab[20]['name'] = __('End date');
     $tab[20]['datatype'] = 'date_delay';
     $tab[20]['datafields'][1] = 'begin_date';
     $tab[20]['datafields'][2] = 'duration';
     $tab[20]['searchunit'] = 'MONTH';
     $tab[20]['delayunit'] = 'MONTH';
     $tab[20]['maybefuture'] = true;
     $tab[20]['massiveaction'] = false;
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'notice';
     $tab[7]['name'] = __('Notice');
     $tab[7]['datatype'] = 'number';
     $tab[7]['max'] = 120;
     $tab[7]['unit'] = 'month';
     $tab[21]['table'] = $this->getTable();
     $tab[21]['field'] = 'periodicity';
     $tab[21]['name'] = __('Periodicity');
     $tab[21]['massiveaction'] = false;
     $tab[21]['datatype'] = 'number';
     $tab[21]['min'] = 12;
     $tab[21]['max'] = 60;
     $tab[21]['step'] = 12;
     $tab[21]['toadd'] = array(0 => Dropdown::EMPTY_VALUE, 1 => sprintf(_n('%d month', '%d months', 1), 1), 2 => sprintf(_n('%d month', '%d months', 2), 2), 3 => sprintf(_n('%d month', '%d months', 3), 3), 6 => sprintf(_n('%d month', '%d months', 6), 6));
     $tab[21]['unit'] = 'month';
     $tab[22]['table'] = $this->getTable();
     $tab[22]['field'] = 'billing';
     $tab[22]['name'] = __('Invoice period');
     $tab[22]['massiveaction'] = false;
     $tab[22]['datatype'] = 'number';
     $tab[22]['min'] = 12;
     $tab[22]['max'] = 60;
     $tab[22]['step'] = 12;
     $tab[22]['toadd'] = array(0 => Dropdown::EMPTY_VALUE, 1 => sprintf(_n('%d month', '%d months', 1), 1), 2 => sprintf(_n('%d month', '%d months', 2), 2), 3 => sprintf(_n('%d month', '%d months', 3), 3), 6 => sprintf(_n('%d month', '%d months', 6), 6));
     $tab[22]['unit'] = 'month';
     $tab[10]['table'] = $this->getTable();
     $tab[10]['field'] = 'accounting_number';
     $tab[10]['name'] = __('Account number');
     $tab[10]['datatype'] = 'string';
     $tab[23]['table'] = $this->getTable();
     $tab[23]['field'] = 'renewal';
     $tab[23]['name'] = __('Renewal');
     $tab[23]['massiveaction'] = false;
     $tab[23]['datatype'] = 'specific';
     $tab[23]['searchtype'] = array('equals', 'notequals');
     $tab[12]['table'] = $this->getTable();
     $tab[12]['field'] = 'expire';
     $tab[12]['name'] = __('Expiration');
     $tab[12]['datatype'] = 'date_delay';
     $tab[12]['datafields'][1] = 'begin_date';
     $tab[12]['datafields'][2] = 'duration';
     $tab[12]['searchunit'] = 'DAY';
     $tab[12]['delayunit'] = 'MONTH';
     $tab[12]['maybefuture'] = true;
     $tab[12]['massiveaction'] = false;
     $tab[13]['table'] = $this->getTable();
     $tab[13]['field'] = 'expire_notice';
     $tab[13]['name'] = __('Expiration date + notice');
     $tab[13]['datatype'] = 'date_delay';
     $tab[13]['datafields'][1] = 'begin_date';
     $tab[13]['datafields'][2] = 'duration';
     $tab[13]['datafields'][3] = 'notice';
     $tab[13]['searchunit'] = 'DAY';
     $tab[13]['delayunit'] = 'MONTH';
     $tab[13]['maybefuture'] = true;
     $tab[13]['massiveaction'] = false;
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[59]['table'] = $this->getTable();
     $tab[59]['field'] = 'alert';
     $tab[59]['name'] = __('Email alarms');
     $tab[59]['datatype'] = 'specific';
     $tab[59]['searchtype'] = array('equals', 'notequals');
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     $tab[72]['table'] = 'glpi_contracts_items';
     $tab[72]['field'] = 'id';
     $tab[72]['name'] = _x('quantity', 'Number of items');
     $tab[72]['forcegroupby'] = true;
     $tab[72]['usehaving'] = true;
     $tab[72]['datatype'] = 'count';
     $tab[72]['massiveaction'] = false;
     $tab[72]['joinparams'] = array('jointype' => 'child');
     $tab[29]['table'] = 'glpi_suppliers';
     $tab[29]['field'] = 'name';
     $tab[29]['name'] = _n('Associated supplier', 'Associated suppliers', Session::getPluralNumber());
     $tab[29]['forcegroupby'] = true;
     $tab[29]['datatype'] = 'itemlink';
     $tab[29]['massiveaction'] = false;
     $tab[29]['joinparams'] = array('beforejoin' => array('table' => 'glpi_contracts_suppliers', 'joinparams' => array('jointype' => 'child')));
     $tab += Notepad::getSearchOptionsToAdd();
     $tab['cost'] = __('Cost');
     $tab[11]['table'] = 'glpi_contractcosts';
     $tab[11]['field'] = 'totalcost';
     $tab[11]['name'] = __('Total cost');
     $tab[11]['datatype'] = 'decimal';
     $tab[11]['forcegroupby'] = true;
     $tab[11]['usehaving'] = true;
     $tab[11]['massiveaction'] = false;
     $tab[11]['joinparams'] = array('jointype' => 'child');
     $tab[11]['computation'] = "(SUM(TABLE.`cost`) / COUNT(TABLE.`id`))\n                                       * COUNT(DISTINCT TABLE.`id`)";
     $tab[41]['table'] = 'glpi_contractcosts';
     $tab[41]['field'] = 'cost';
     $tab[41]['name'] = _n('Cost', 'Costs', Session::getPluralNumber());
     $tab[41]['datatype'] = 'decimal';
     $tab[41]['forcegroupby'] = true;
     $tab[41]['massiveaction'] = false;
     $tab[41]['joinparams'] = array('jointype' => 'child');
     $tab[42]['table'] = 'glpi_contractcosts';
     $tab[42]['field'] = 'begin_date';
     $tab[42]['name'] = sprintf(__('%1$s - %2$s'), __('Cost'), __('Begin date'));
     $tab[42]['datatype'] = 'date';
     $tab[42]['forcegroupby'] = true;
     $tab[42]['massiveaction'] = false;
     $tab[42]['joinparams'] = array('jointype' => 'child');
     $tab[43]['table'] = 'glpi_contractcosts';
     $tab[43]['field'] = 'end_date';
     $tab[43]['name'] = sprintf(__('%1$s - %2$s'), __('Cost'), __('End date'));
     $tab[43]['datatype'] = 'date';
     $tab[43]['forcegroupby'] = true;
     $tab[43]['massiveaction'] = false;
     $tab[43]['joinparams'] = array('jointype' => 'child');
     $tab[44]['table'] = 'glpi_contractcosts';
     $tab[44]['field'] = 'name';
     $tab[44]['name'] = sprintf(__('%1$s - %2$s'), __('Cost'), __('Name'));
     $tab[44]['forcegroupby'] = true;
     $tab[44]['massiveaction'] = false;
     $tab[44]['joinparams'] = array('jointype' => 'child');
     $tab[44]['datatype'] = 'dropdown';
     $tab[45]['table'] = 'glpi_budgets';
     $tab[45]['field'] = 'name';
     $tab[45]['name'] = sprintf(__('%1$s - %2$s'), __('Cost'), __('Budget'));
     $tab[45]['datatype'] = 'dropdown';
     $tab[45]['forcegroupby'] = true;
     $tab[45]['massiveaction'] = false;
     $tab[45]['joinparams'] = array('beforejoin' => array('table' => 'glpi_contractcosts', 'joinparams' => array('jointype' => 'child')));
     return $tab;
 }
Ejemplo n.º 8
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['datatype'] = 'number';
     $tab[2]['massiveaction'] = false;
     $tab[34]['table'] = $this->getTable();
     $tab[34]['field'] = 'ref';
     $tab[34]['name'] = __('Reference');
     $tab[34]['datatype'] = 'string';
     $tab[4]['table'] = 'glpi_consumableitemtypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Manufacturer');
     $tab[23]['datatype'] = 'dropdown';
     $tab[9]['table'] = 'glpi_consumableitems';
     $tab[9]['field'] = '_virtual';
     $tab[9]['linkfield'] = '_virtual';
     $tab[9]['name'] = _n('Consumable', 'Consumables', Session::getPluralNumber());
     $tab[9]['datatype'] = 'specific';
     $tab[9]['massiveaction'] = false;
     $tab[9]['nosearch'] = true;
     $tab[9]['nosort'] = true;
     $tab[9]['additionalfields'] = array('alarm_threshold');
     $tab[17]['table'] = 'glpi_consumables';
     $tab[17]['field'] = 'id';
     $tab[17]['name'] = __('Number of used consumables');
     $tab[17]['datatype'] = 'count';
     $tab[17]['forcegroupby'] = true;
     $tab[17]['usehaving'] = true;
     $tab[17]['massiveaction'] = false;
     $tab[17]['joinparams'] = array('jointype' => 'child', 'condition' => "AND NEWTABLE.`date_out` IS NOT NULL");
     $tab[19]['table'] = 'glpi_consumables';
     $tab[19]['field'] = 'id';
     $tab[19]['name'] = __('Number of new consumables');
     $tab[19]['datatype'] = 'count';
     $tab[19]['forcegroupby'] = true;
     $tab[19]['usehaving'] = true;
     $tab[19]['massiveaction'] = false;
     $tab[19]['joinparams'] = array('jointype' => 'child', 'condition' => "AND NEWTABLE.`date_out` IS NULL");
     $tab += Location::getSearchOptionsToAdd();
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'alarm_threshold';
     $tab[8]['name'] = __('Alert threshold');
     $tab[8]['datatype'] = 'number';
     $tab[8]['toadd'] = array('-1' => __('Never'));
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 9
0
 function getSearchOptions()
 {
     $tab = array();
     $tab += $this->getSearchOptionsMain();
     $tab[63]['table'] = 'glpi_items_problems';
     $tab[63]['field'] = 'id';
     $tab[63]['name'] = _x('quantity', 'Number of items');
     $tab[63]['forcegroupby'] = true;
     $tab[63]['usehaving'] = true;
     $tab[63]['datatype'] = 'count';
     $tab[63]['massiveaction'] = false;
     $tab[63]['joinparams'] = array('jointype' => 'child');
     $tab[13]['table'] = 'glpi_items_problems';
     $tab[13]['field'] = 'items_id';
     $tab[13]['name'] = _n('Associated element', 'Associated elements', Session::getPluralNumber());
     $tab[13]['datatype'] = 'specific';
     $tab[13]['comments'] = true;
     $tab[13]['nosort'] = true;
     $tab[13]['nosearch'] = true;
     $tab[13]['additionalfields'] = array('itemtype');
     $tab[13]['joinparams'] = array('jointype' => 'child');
     $tab[13]['forcegroupby'] = true;
     $tab[13]['massiveaction'] = false;
     $tab[131]['table'] = 'glpi_items_problems';
     $tab[131]['field'] = 'itemtype';
     $tab[131]['name'] = _n('Associated item type', 'Associated item types', Session::getPluralNumber());
     $tab[131]['datatype'] = 'itemtypename';
     $tab[131]['itemtype_list'] = 'ticket_types';
     $tab[131]['nosort'] = true;
     $tab[131]['additionalfields'] = array('itemtype');
     $tab[131]['joinparams'] = array('jointype' => 'child');
     $tab[131]['forcegroupby'] = true;
     $tab[131]['massiveaction'] = false;
     $tab += $this->getSearchOptionsActors();
     $tab['analysis'] = __('Analysis');
     $tab[60]['table'] = $this->getTable();
     $tab[60]['field'] = 'impactcontent';
     $tab[60]['name'] = __('Impacts');
     $tab[60]['massiveaction'] = false;
     $tab[60]['datatype'] = 'text';
     $tab[61]['table'] = $this->getTable();
     $tab[61]['field'] = 'causecontent';
     $tab[61]['name'] = __('Causes');
     $tab[61]['massiveaction'] = false;
     $tab[61]['datatype'] = 'text';
     $tab[62]['table'] = $this->getTable();
     $tab[62]['field'] = 'symptomcontent';
     $tab[62]['name'] = __('Symptoms');
     $tab[62]['massiveaction'] = false;
     $tab[62]['datatype'] = 'text';
     $tab += Notepad::getSearchOptionsToAdd();
     $tab += ProblemTask::getSearchOptionsToAdd();
     $tab += $this->getSearchOptionsSolution();
     $tab += $this->getSearchOptionsStats();
     $tab += ProblemCost::getSearchOptionsToAdd();
     $tab['ticket'] = Ticket::getTypeName(Session::getPluralNumber());
     $tab[141]['table'] = 'glpi_problems_tickets';
     $tab[141]['field'] = 'id';
     $tab[141]['name'] = _x('quantity', 'Number of tickets');
     $tab[141]['forcegroupby'] = true;
     $tab[141]['usehaving'] = true;
     $tab[141]['datatype'] = 'count';
     $tab[141]['massiveaction'] = false;
     $tab[141]['joinparams'] = array('jointype' => 'child');
     return $tab;
 }
Ejemplo n.º 10
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[4]['table'] = 'glpi_peripheraltypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[40]['table'] = 'glpi_peripheralmodels';
     $tab[40]['field'] = 'name';
     $tab[40]['name'] = __('Model');
     $tab[40]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['condition'] = "`is_visible_peripheral`";
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'serial';
     $tab[5]['name'] = __('Serial number');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'otherserial';
     $tab[6]['name'] = __('Inventory number');
     $tab[6]['datatype'] = 'string';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'contact';
     $tab[7]['name'] = __('Alternate username');
     $tab[7]['datatype'] = 'string';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'contact_num';
     $tab[8]['name'] = __('Alternate username number');
     $tab[8]['datatype'] = 'string';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $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[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'brand';
     $tab[11]['name'] = __('Brand');
     $tab[11]['datatype'] = 'string';
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Manufacturer');
     $tab[23]['datatype'] = 'dropdown';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[82]['table'] = $this->getTable();
     $tab[82]['field'] = 'is_global';
     $tab[82]['name'] = __('Global management');
     $tab[82]['datatype'] = 'bool';
     $tab[82]['massiveaction'] = false;
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 11
0
 /**
  * Clean the date in the relation tables for the deleted item
  * Clear N/N Relation
  **/
 function cleanRelationTable()
 {
     global $CFG_GLPI, $DB;
     // If this type have INFOCOM, clean one associated to purged item
     if (Infocom::canApplyOn($this)) {
         $infocom = new Infocom();
         if ($infocom->getFromDBforDevice($this->getType(), $this->fields['id'])) {
             $infocom->delete(array('id' => $infocom->fields['id']));
         }
     }
     // If this type have NETPORT, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['networkport_types'])) {
         // If we don't use delete, then cleanDBonPurge() is not call and the NetworkPorts are not
         // clean properly
         $networkPortObject = new NetworkPort();
         $networkPortObject->cleanDBonItemDelete($this->getType(), $this->getID());
         // Manage networkportmigration if exists
         if (TableExists('glpi_networkportmigrations')) {
             $networkPortMigObject = new NetworkPortMigration();
             $networkPortMigObject->cleanDBonItemDelete($this->getType(), $this->getID());
         }
     }
     // If this type is RESERVABLE clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['reservation_types'])) {
         $rr = new ReservationItem();
         if ($rr->getFromDBbyItem($this->getType(), $this->fields['id'])) {
             $rr->delete(array('id' => $infocom->fields['id']));
         }
     }
     // If this type have CONTRACT, clean one associated to purged item
     if (in_array($this->getType(), $CFG_GLPI['contract_types'])) {
         $ci = new Contract_Item();
         $ci->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
     // If this type have DOCUMENT, clean one associated to purged item
     if (Document::canApplyOn($this)) {
         $di = new Document_Item();
         $di->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
     // If this type have NOTEPAD, clean one associated to purged item
     if ($this->usenotepad) {
         $note = new Notepad();
         $note->cleanDBonItemDelete($this->getType(), $this->fields['id']);
     }
 }
Ejemplo n.º 12
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[4]['table'] = 'glpi_networkequipmenttypes';
     $tab[4]['field'] = 'name';
     $tab[4]['name'] = __('Type');
     $tab[4]['datatype'] = 'dropdown';
     $tab[40]['table'] = 'glpi_networkequipmentmodels';
     $tab[40]['field'] = 'name';
     $tab[40]['name'] = __('Model');
     $tab[40]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['condition'] = "`is_visible_networkequipment`";
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'serial';
     $tab[5]['name'] = __('Serial number');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'otherserial';
     $tab[6]['name'] = __('Inventory number');
     $tab[6]['datatype'] = 'string';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'contact';
     $tab[7]['name'] = __('Alternate username');
     $tab[7]['datatype'] = 'string';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'contact_num';
     $tab[8]['name'] = __('Alternate username number');
     $tab[8]['datatype'] = 'string';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['datatype'] = 'dropdown';
     $tab[71]['condition'] = '`is_itemgroup`';
     $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[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[11]['table'] = 'glpi_networkequipmentfirmwares';
     $tab[11]['field'] = 'name';
     $tab[11]['name'] = _n('Firmware', 'Firmwares', 1);
     $tab[11]['datatype'] = 'dropdown';
     $tab[14]['table'] = $this->getTable();
     $tab[14]['field'] = 'ram';
     $tab[14]['name'] = sprintf(__('%1$s (%2$s)'), __('Memory'), __('Mio'));
     $tab[14]['datatype'] = 'number';
     $tab[32]['table'] = 'glpi_networks';
     $tab[32]['field'] = 'name';
     $tab[32]['name'] = __('Network');
     $tab[32]['datatype'] = 'dropdown';
     $tab[33]['table'] = 'glpi_domains';
     $tab[33]['field'] = 'name';
     $tab[33]['name'] = __('Domain');
     $tab[33]['datatype'] = 'dropdown';
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Manufacturer');
     $tab[23]['datatype'] = 'dropdown';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 13
0
 /**
  * Delete an item in the database.
  *
  * @see CommonDBTM::delete()
  *
  * @param $input     array    the _POST vars returned by the item form when press delete
  * @param $force     boolean  force deletion (default 0)
  * @param $history   boolean  do history log ? (default 1)
  *
  * @return boolean : true on success
  **/
 function delete(array $input, $force = 0, $history = 1)
 {
     $deleteSuccessful = parent::delete($input, $force, $history);
     if ($deleteSuccessful != false) {
         if ($force == 1) {
             $notepad = new Notepad();
             $notepad->deleteByCriteria(array('itemtype' => 'PluginSimcardSimcard', 'items_id' => $input['id']));
         }
     }
     return $deleteSuccessful;
 }
Ejemplo n.º 14
0
 public function run()
 {
     $date = date("Y-m-d");
     $models = Notepad::model()->active()->date($date)->findAll();
     $this->render($this->view, array('models' => $models));
 }
Ejemplo n.º 15
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'address';
     $tab[3]['name'] = __('Address');
     $tab[3]['datatype'] = 'text';
     $tab[10]['table'] = $this->getTable();
     $tab[10]['field'] = 'fax';
     $tab[10]['name'] = __('Fax');
     $tab[10]['datatype'] = 'string';
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'town';
     $tab[11]['name'] = __('City');
     $tab[11]['datatype'] = 'string';
     $tab[14]['table'] = $this->getTable();
     $tab[14]['field'] = 'postcode';
     $tab[14]['name'] = __('Postal code');
     $tab[14]['datatype'] = 'string';
     $tab[12]['table'] = $this->getTable();
     $tab[12]['field'] = 'state';
     $tab[12]['name'] = _x('location', 'State');
     $tab[12]['datatype'] = 'string';
     $tab[13]['table'] = $this->getTable();
     $tab[13]['field'] = 'country';
     $tab[13]['name'] = __('Country');
     $tab[13]['datatype'] = 'string';
     $tab[4]['table'] = $this->getTable();
     $tab[4]['field'] = 'website';
     $tab[4]['name'] = __('Website');
     $tab[4]['datatype'] = 'weblink';
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'phonenumber';
     $tab[5]['name'] = __('Phone');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'email';
     $tab[6]['name'] = _n('Email', 'Emails', 1);
     $tab[6]['datatype'] = 'email';
     $tab[9]['table'] = 'glpi_suppliertypes';
     $tab[9]['field'] = 'name';
     $tab[9]['name'] = __('Third party type');
     $tab[9]['datatype'] = 'dropdown';
     $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;
     if ($_SESSION["glpinames_format"] == User::FIRSTNAME_BEFORE) {
         $name1 = 'firstname';
         $name2 = 'name';
     } else {
         $name1 = 'name';
         $name2 = 'firstname';
     }
     $tab[8]['table'] = 'glpi_contacts';
     $tab[8]['field'] = 'completename';
     $tab[8]['name'] = _n('Associated contact', 'Associated contacts', Session::getPluralNumber());
     $tab[8]['forcegroupby'] = true;
     $tab[8]['datatype'] = 'itemlink';
     $tab[8]['massiveaction'] = false;
     $tab[8]['computation'] = "CONCAT(TABLE.`{$name1}`, ' ', TABLE.`{$name2}`)";
     $tab[8]['computationgroupby'] = true;
     $tab[8]['joinparams'] = array('beforejoin' => array('table' => 'glpi_contacts_suppliers', 'joinparams' => array('jointype' => 'child')));
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     $tab[29]['table'] = 'glpi_contracts';
     $tab[29]['field'] = 'name';
     $tab[29]['name'] = _n('Associated contract', 'Associated contracts', Session::getPluralNumber());
     $tab[29]['forcegroupby'] = true;
     $tab[29]['datatype'] = 'itemlink';
     $tab[29]['massiveaction'] = false;
     $tab[29]['joinparams'] = array('beforejoin' => array('table' => 'glpi_contracts_suppliers', 'joinparams' => array('jointype' => 'child')));
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 16
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     // implicit key==1
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     // implicit field is id
     $tab[2]['datatype'] = 'number';
     $tab[2]['table'] = 'glpi_projects';
     $tab[2]['field'] = 'name';
     $tab[2]['name'] = __('Project');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'dropdown';
     $tab[13]['table'] = $this->getTable();
     $tab[13]['field'] = 'name';
     $tab[13]['name'] = __('Father');
     $tab[13]['datatype'] = 'dropdown';
     $tab[13]['massiveaction'] = false;
     // Add virtual condition to relink table
     $tab[13]['joinparams'] = array('condition' => "AND 1=1");
     $tab[21]['table'] = $this->getTable();
     $tab[21]['field'] = 'content';
     $tab[21]['name'] = __('Description');
     $tab[21]['massiveaction'] = false;
     $tab[21]['datatype'] = 'text';
     $tab[12]['table'] = 'glpi_projectstates';
     $tab[12]['field'] = 'name';
     $tab[12]['name'] = _x('item', 'State');
     $tab[12]['datatype'] = 'dropdown';
     $tab[14]['table'] = 'glpi_projecttasktypes';
     $tab[14]['field'] = 'name';
     $tab[14]['name'] = __('Type');
     $tab[14]['datatype'] = 'dropdown';
     $tab[15]['table'] = $this->getTable();
     $tab[15]['field'] = 'date';
     $tab[15]['name'] = __('Opening date');
     $tab[15]['datatype'] = 'datetime';
     $tab[15]['massiveaction'] = false;
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'percent_done';
     $tab[5]['name'] = __('Percent done');
     $tab[5]['datatype'] = 'number';
     $tab[5]['unit'] = '%';
     $tab[5]['min'] = 0;
     $tab[5]['max'] = 100;
     $tab[5]['step'] = 5;
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id';
     $tab[24]['name'] = __('Creator');
     $tab[24]['datatype'] = 'dropdown';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'plan_start_date';
     $tab[7]['name'] = __('Planned start date');
     $tab[7]['datatype'] = 'datetime';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'plan_end_date';
     $tab[8]['name'] = __('Planned end date');
     $tab[8]['datatype'] = 'datetime';
     $tab[9]['table'] = $this->getTable();
     $tab[9]['field'] = 'real_start_date';
     $tab[9]['name'] = __('Real start date');
     $tab[9]['datatype'] = 'datetime';
     $tab[10]['table'] = $this->getTable();
     $tab[10]['field'] = 'real_end_date';
     $tab[10]['name'] = __('Real end date');
     $tab[10]['datatype'] = 'datetime';
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'planned_duration';
     $tab[11]['name'] = __('Planned duration');
     $tab[11]['datatype'] = 'timestamp';
     $tab[11]['min'] = 0;
     $tab[11]['max'] = 100 * HOUR_TIMESTAMP;
     $tab[11]['step'] = HOUR_TIMESTAMP;
     $tab[11]['addfirstminutes'] = true;
     $tab[11]['inhours'] = true;
     $tab[17]['table'] = $this->getTable();
     $tab[17]['field'] = 'effective_duration';
     $tab[17]['name'] = __('Effective duration');
     $tab[17]['datatype'] = 'timestamp';
     $tab[17]['min'] = 0;
     $tab[17]['max'] = 100 * HOUR_TIMESTAMP;
     $tab[17]['step'] = HOUR_TIMESTAMP;
     $tab[17]['addfirstminutes'] = true;
     $tab[17]['inhours'] = true;
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[18]['table'] = $this->getTable();
     $tab[18]['field'] = 'is_milestone';
     $tab[18]['name'] = __('Milestone');
     $tab[18]['datatype'] = 'bool';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 17
0
 function getSearchOptions()
 {
     // Only use for History (not by search Engine)
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[62]['table'] = 'glpi_softwarecategories';
     $tab[62]['field'] = 'completename';
     $tab[62]['name'] = __('Category');
     $tab[62]['datatype'] = 'dropdown';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Publisher');
     $tab[23]['datatype'] = 'dropdown';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $tab[61]['table'] = $this->getTable();
     $tab[61]['field'] = 'is_helpdesk_visible';
     $tab[61]['name'] = __('Associable to a ticket');
     $tab[61]['datatype'] = 'bool';
     $tab[63]['table'] = $this->getTable();
     $tab[63]['field'] = 'is_valid';
     //TRANS: Indicator to know is all licenses of the software are valids
     $tab[63]['name'] = __('Valid licenses');
     $tab[63]['datatype'] = 'bool';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[72]['table'] = 'glpi_computers_softwareversions';
     $tab[72]['field'] = 'id';
     $tab[72]['name'] = _x('quantity', 'Number of installations');
     $tab[72]['forcegroupby'] = true;
     $tab[72]['usehaving'] = true;
     $tab[72]['datatype'] = 'count';
     $tab[72]['nometa'] = true;
     $tab[72]['massiveaction'] = false;
     if (Session::getLoginUserID()) {
         $tab[72]['joinparams'] = array('jointype' => 'child', 'condition' => "AND NEWTABLE.`is_deleted_computer` = '0'\n                                                          AND NEWTABLE.`is_deleted` = '0'\n                                                          AND NEWTABLE.`is_template_computer` = '0'\n                                                          " . getEntitiesRestrictRequest('AND', 'NEWTABLE'), 'beforejoin' => array('table' => 'glpi_softwareversions', 'joinparams' => array('jointype' => 'child')));
     }
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     $tab[86]['massiveaction'] = false;
     $tab['versions'] = _n('Version', 'Versions', Session::getPluralNumber());
     $tab[5]['table'] = 'glpi_softwareversions';
     $tab[5]['field'] = 'name';
     $tab[5]['name'] = __('Version name');
     $tab[5]['forcegroupby'] = true;
     $tab[5]['massiveaction'] = false;
     $tab[5]['joinparams'] = array('jointype' => 'child');
     $tab[5]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['forcegroupby'] = true;
     $tab[31]['massiveaction'] = false;
     $tab[31]['joinparams'] = array('beforejoin' => array('table' => 'glpi_softwareversions', 'joinparams' => array('jointype' => 'child')));
     $tab[170]['table'] = 'glpi_softwareversions';
     $tab[170]['field'] = 'comment';
     $tab[170]['name'] = __('Version comments');
     $tab[170]['forcegroupby'] = true;
     $tab[170]['datatype'] = 'text';
     $tab[170]['massiveaction'] = false;
     $tab[170]['joinparams'] = array('jointype' => 'child');
     $tab[4]['table'] = 'glpi_operatingsystems';
     $tab[4]['field'] = 'name';
     $tab[4]['datatype'] = 'dropdown';
     $tab[4]['name'] = __('Operating system');
     $tab[4]['forcegroupby'] = true;
     $tab[4]['joinparams'] = array('beforejoin' => array('table' => 'glpi_softwareversions', 'joinparams' => array('jointype' => 'child')));
     $tab += Notepad::getSearchOptionsToAdd();
     $tab['license'] = _n('License', 'Licenses', Session::getPluralNumber());
     $licjoin = array();
     $licjoinexpire = array();
     if (!Session::isCron() && !isCommandLine()) {
         // no filter for cron
         $licjoin = array('jointype' => 'child', 'condition' => getEntitiesRestrictRequest(' AND', "NEWTABLE", '', '', true));
         $licjoinexpire = array('jointype' => 'child', 'condition' => getEntitiesRestrictRequest(' AND', "NEWTABLE", '', '', true) . " AND (NEWTABLE.`expire` IS NULL\n                                                      OR NEWTABLE.`expire` > NOW())");
     }
     $tab[160]['table'] = 'glpi_softwarelicenses';
     $tab[160]['field'] = 'name';
     $tab[160]['name'] = __('License name');
     $tab[160]['datatype'] = 'dropdown';
     $tab[160]['forcegroupby'] = true;
     $tab[160]['massiveaction'] = false;
     $tab[160]['joinparams'] = $licjoinexpire;
     $tab[161]['table'] = 'glpi_softwarelicenses';
     $tab[161]['field'] = 'serial';
     $tab[161]['datatype'] = 'string';
     $tab[161]['name'] = __('License serial number');
     $tab[161]['forcegroupby'] = true;
     $tab[161]['massiveaction'] = false;
     $tab[161]['joinparams'] = $licjoinexpire;
     $tab[162]['table'] = 'glpi_softwarelicenses';
     $tab[162]['field'] = 'otherserial';
     $tab[162]['datatype'] = 'string';
     $tab[162]['name'] = __('License inventory number');
     $tab[162]['forcegroupby'] = true;
     $tab[162]['massiveaction'] = false;
     $tab[162]['joinparams'] = $licjoinexpire;
     $tab[163]['table'] = 'glpi_softwarelicenses';
     $tab[163]['field'] = 'number';
     $tab[163]['name'] = _x('phone', 'Number of licenses');
     $tab[163]['forcegroupby'] = true;
     $tab[163]['usehaving'] = true;
     $tab[163]['datatype'] = 'number';
     $tab[163]['massiveaction'] = false;
     $tab[163]['joinparams'] = $licjoinexpire;
     $tab[164]['table'] = 'glpi_softwarelicensetypes';
     $tab[164]['field'] = 'name';
     $tab[164]['datatype'] = 'dropdown';
     $tab[164]['name'] = _n('License type', 'License types', Session::getPluralNumber());
     $tab[164]['forcegroupby'] = true;
     $tab[164]['massiveaction'] = false;
     $tab[164]['joinparams'] = array('beforejoin' => array('table' => 'glpi_softwarelicenses', 'joinparams' => $licjoinexpire));
     $tab[165]['table'] = 'glpi_softwarelicenses';
     $tab[165]['field'] = 'comment';
     $tab[165]['name'] = __('License comments');
     $tab[165]['forcegroupby'] = true;
     $tab[165]['datatype'] = 'text';
     $tab[165]['massiveaction'] = false;
     $tab[165]['joinparams'] = $licjoinexpire;
     $tab[166]['table'] = 'glpi_softwarelicenses';
     $tab[166]['field'] = 'expire';
     $tab[166]['name'] = __('Expiration');
     $tab[166]['forcegroupby'] = true;
     $tab[166]['datatype'] = 'date';
     $tab[166]['emptylabel'] = __('Never expire');
     $tab[166]['massiveaction'] = false;
     $tab[166]['joinparams'] = $licjoinexpire;
     $tab[167]['table'] = 'glpi_softwarelicenses';
     $tab[167]['field'] = 'is_valid';
     $tab[167]['name'] = _x('adjective', 'Valid');
     $tab[167]['forcegroupby'] = true;
     $tab[167]['datatype'] = 'bool';
     $tab[167]['massiveaction'] = false;
     $tab[167]['joinparams'] = $licjoinexpire;
     return $tab;
 }
 function getSearchOptions()
 {
     global $CFG_GLPI;
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'filename';
     $tab[3]['name'] = __('File');
     $tab[3]['massiveaction'] = false;
     $tab[3]['datatype'] = 'string';
     $tab[4]['table'] = $this->getTable();
     $tab[4]['field'] = 'link';
     $tab[4]['name'] = __('Web Link');
     $tab[4]['datatype'] = 'weblink';
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'mime';
     $tab[5]['name'] = __('MIME type');
     $tab[5]['datatype'] = 'string';
     if ($CFG_GLPI['use_rich_text']) {
         $tab[6]['table'] = $this->getTable();
         $tab[6]['field'] = 'tag';
         $tab[6]['name'] = __('Tag');
         $tab[6]['datatype'] = 'text';
         $tab[6]['massiveaction'] = false;
     }
     $tab[7]['table'] = 'glpi_documentcategories';
     $tab[7]['field'] = 'completename';
     $tab[7]['name'] = __('Heading');
     $tab[7]['datatype'] = 'dropdown';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['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[20]['table'] = $this->getTable();
     $tab[20]['field'] = 'sha1sum';
     $tab[20]['name'] = sprintf(__('%1$s (%2$s)'), __('Checksum'), __('SHA1'));
     $tab[20]['massiveaction'] = false;
     $tab[20]['datatype'] = 'string';
     $tab[72]['table'] = 'glpi_documents_items';
     $tab[72]['field'] = 'id';
     $tab[72]['name'] = _x('quantity', 'Number of associated items');
     $tab[72]['forcegroupby'] = true;
     $tab[72]['usehaving'] = true;
     $tab[72]['datatype'] = 'count';
     $tab[72]['massiveaction'] = false;
     $tab[72]['joinparams'] = array('jointype' => 'child');
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 19
0
 function getSearchOptions()
 {
     // Only use for History (not by search Engine)
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab += Location::getSearchOptionsToAdd();
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[62]['table'] = 'glpi_softwarecategories';
     $tab[62]['field'] = 'completename';
     $tab[62]['name'] = __('Category');
     $tab[62]['datatype'] = 'dropdown';
     $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[23]['table'] = 'glpi_manufacturers';
     $tab[23]['field'] = 'name';
     $tab[23]['name'] = __('Publisher');
     $tab[23]['datatype'] = 'dropdown';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $tab[61]['table'] = $this->getTable();
     $tab[61]['field'] = 'is_helpdesk_visible';
     $tab[61]['name'] = __('Associable to a ticket');
     $tab[61]['datatype'] = 'bool';
     $tab[63]['table'] = $this->getTable();
     $tab[63]['field'] = 'is_valid';
     //TRANS: Indicator to know is all licenses of the software are valids
     $tab[63]['name'] = __('Valid licenses');
     $tab[63]['datatype'] = 'bool';
     $tab += SoftwareLicense::getSearchOptionsToAdd();
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[72]['table'] = 'glpi_computers_softwareversions';
     $tab[72]['field'] = 'id';
     $tab[72]['name'] = _x('quantity', 'Number of installations');
     $tab[72]['forcegroupby'] = true;
     $tab[72]['usehaving'] = true;
     $tab[72]['datatype'] = 'count';
     $tab[72]['nometa'] = true;
     $tab[72]['massiveaction'] = false;
     if (Session::getLoginUserID()) {
         $tab[72]['joinparams'] = array('jointype' => 'child', 'condition' => "AND NEWTABLE.`is_deleted_computer` = '0'\n                                                          AND NEWTABLE.`is_deleted` = '0'\n                                                          AND NEWTABLE.`is_template_computer` = '0'\n                                                          " . getEntitiesRestrictRequest('AND', 'NEWTABLE'), 'beforejoin' => array('table' => 'glpi_softwareversions', 'joinparams' => array('jointype' => 'child')));
     }
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     $tab[86]['massiveaction'] = false;
     $tab['versions'] = _n('Version', 'Versions', Session::getPluralNumber());
     $tab[5]['table'] = 'glpi_softwareversions';
     $tab[5]['field'] = 'name';
     $tab[5]['name'] = __('Version name');
     $tab[5]['forcegroupby'] = true;
     $tab[5]['massiveaction'] = false;
     $tab[5]['joinparams'] = array('jointype' => 'child');
     $tab[5]['datatype'] = 'dropdown';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['forcegroupby'] = true;
     $tab[31]['massiveaction'] = false;
     $tab[31]['joinparams'] = array('beforejoin' => array('table' => 'glpi_softwareversions', 'joinparams' => array('jointype' => 'child')));
     $tab[170]['table'] = 'glpi_softwareversions';
     $tab[170]['field'] = 'comment';
     $tab[170]['name'] = __('Version comments');
     $tab[170]['forcegroupby'] = true;
     $tab[170]['datatype'] = 'text';
     $tab[170]['massiveaction'] = false;
     $tab[170]['joinparams'] = array('jointype' => 'child');
     $tab[4]['table'] = 'glpi_operatingsystems';
     $tab[4]['field'] = 'name';
     $tab[4]['datatype'] = 'dropdown';
     $tab[4]['name'] = __('Operating system');
     $tab[4]['forcegroupby'] = true;
     $tab[4]['joinparams'] = array('beforejoin' => array('table' => 'glpi_softwareversions', 'joinparams' => array('jointype' => 'child')));
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 20
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Surname');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'firstname';
     $tab[11]['name'] = __('First name');
     $tab[11]['datatype'] = 'string';
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'phone';
     $tab[3]['name'] = __('Phone');
     $tab[3]['datatype'] = 'string';
     $tab[4]['table'] = $this->getTable();
     $tab[4]['field'] = 'phone2';
     $tab[4]['name'] = __('Phone 2');
     $tab[4]['datatype'] = 'string';
     $tab[10]['table'] = $this->getTable();
     $tab[10]['field'] = 'mobile';
     $tab[10]['name'] = __('Mobile phone');
     $tab[10]['datatype'] = 'string';
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'fax';
     $tab[5]['name'] = __('Fax');
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'email';
     $tab[6]['name'] = _n('Email', 'Emails', 1);
     $tab[6]['datatype'] = 'email';
     $tab[82]['table'] = $this->getTable();
     $tab[82]['field'] = 'address';
     $tab[82]['name'] = __('Address');
     $tab[83]['datatype'] = 'text';
     $tab[84]['table'] = $this->getTable();
     $tab[84]['field'] = 'town';
     $tab[84]['name'] = __('City');
     $tab[84]['datatype'] = 'string';
     $tab[83]['table'] = $this->getTable();
     $tab[83]['field'] = 'postcode';
     $tab[83]['name'] = __('Postal code');
     $tab[83]['datatype'] = 'string';
     $tab[85]['table'] = $this->getTable();
     $tab[85]['field'] = 'state';
     $tab[85]['name'] = _x('location', 'State');
     $tab[85]['datatype'] = 'string';
     $tab[87]['table'] = $this->getTable();
     $tab[87]['field'] = 'country';
     $tab[87]['name'] = __('Country');
     $tab[87]['datatype'] = 'string';
     $tab[9]['table'] = 'glpi_contacttypes';
     $tab[9]['field'] = 'name';
     $tab[9]['name'] = __('Type');
     $tab[9]['datatype'] = 'dropdown';
     $tab[81]['table'] = 'glpi_usertitles';
     $tab[81]['field'] = 'name';
     $tab[81]['name'] = _x('person', 'Title');
     $tab[81]['datatype'] = 'dropdown';
     $tab[8]['table'] = 'glpi_suppliers';
     $tab[8]['field'] = 'name';
     $tab[8]['name'] = _n('Associated supplier', 'Associated suppliers', Session::getPluralNumber());
     $tab[8]['forcegroupby'] = true;
     $tab[8]['datatype'] = 'itemlink';
     $tab[8]['joinparams'] = array('beforejoin' => array('table' => 'glpi_contacts_suppliers', 'joinparams' => array('jointype' => 'child')));
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 21
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     // implicit key==1
     $tab[1]['forcegroupby'] = true;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     // implicit field is id
     $tab[2]['datatype'] = 'number';
     $tab[4]['table'] = $this->getTable();
     $tab[4]['field'] = 'code';
     $tab[4]['name'] = __('Code');
     $tab[4]['massiveaction'] = false;
     $tab[4]['datatype'] = 'string';
     $tab[13]['table'] = $this->getTable();
     $tab[13]['field'] = 'name';
     $tab[13]['name'] = __('Father');
     $tab[13]['datatype'] = 'itemlink';
     $tab[13]['massiveaction'] = false;
     // Add virtual condition to relink table
     $tab[13]['joinparams'] = array('condition' => "AND 1=1");
     $tab[21]['table'] = $this->getTable();
     $tab[21]['field'] = 'content';
     $tab[21]['name'] = __('Description');
     $tab[21]['massiveaction'] = false;
     $tab[21]['datatype'] = 'text';
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'priority';
     $tab[3]['name'] = __('Priority');
     $tab[3]['searchtype'] = 'equals';
     $tab[3]['datatype'] = 'specific';
     $tab[14]['table'] = 'glpi_projecttypes';
     $tab[14]['field'] = 'name';
     $tab[14]['name'] = __('Type');
     $tab[14]['datatype'] = 'dropdown';
     $tab[12]['table'] = 'glpi_projectstates';
     $tab[12]['field'] = 'name';
     $tab[12]['name'] = _x('item', 'State');
     $tab[12]['datatype'] = 'dropdown';
     $tab[15]['table'] = $this->getTable();
     $tab[15]['field'] = 'date';
     $tab[15]['name'] = __('Creation date');
     $tab[15]['datatype'] = 'datetime';
     $tab[15]['massiveaction'] = false;
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'percent_done';
     $tab[5]['name'] = __('Percent done');
     $tab[5]['datatype'] = 'number';
     $tab[5]['unit'] = '%';
     $tab[5]['min'] = 0;
     $tab[5]['max'] = 100;
     $tab[5]['step'] = 5;
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'show_on_global_gantt';
     $tab[6]['name'] = __('Show on global GANTT');
     $tab[6]['datatype'] = 'bool';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id';
     $tab[24]['name'] = __('Manager');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'see_project';
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id';
     $tab[49]['name'] = __('Manager group');
     $tab[49]['condition'] = '`is_manager`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'plan_start_date';
     $tab[7]['name'] = __('Planned start date');
     $tab[7]['datatype'] = 'datetime';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'plan_end_date';
     $tab[8]['name'] = __('Planned end date');
     $tab[8]['datatype'] = 'datetime';
     $tab[17]['table'] = $this->getTable();
     $tab[17]['field'] = '_virtual_planned_duration';
     $tab[17]['name'] = __('Planned duration');
     $tab[17]['datatype'] = 'specific';
     $tab[17]['nosearch'] = true;
     $tab[17]['massiveaction'] = false;
     $tab[17]['nosort'] = true;
     $tab[9]['table'] = $this->getTable();
     $tab[9]['field'] = 'real_start_date';
     $tab[9]['name'] = __('Real start date');
     $tab[9]['datatype'] = 'datetime';
     $tab[10]['table'] = $this->getTable();
     $tab[10]['field'] = 'real_end_date';
     $tab[10]['name'] = __('Real end date');
     $tab[10]['datatype'] = 'datetime';
     $tab[18]['table'] = $this->getTable();
     $tab[18]['field'] = '_virtual_effective_duration';
     $tab[18]['name'] = __('Effective duration');
     $tab[18]['datatype'] = 'specific';
     $tab[18]['nosearch'] = true;
     $tab[18]['massiveaction'] = false;
     $tab[18]['nosort'] = true;
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $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[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 22
0
 function getSearchOptions()
 {
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'completename';
     $tab[1]['name'] = __('Complete name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[14]['table'] = $this->getTable();
     $tab[14]['field'] = 'name';
     $tab[14]['name'] = __('Name');
     $tab[14]['datatype'] = 'itemlink';
     $tab[14]['massiveaction'] = false;
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'address';
     $tab[3]['name'] = __('Address');
     $tab[3]['massiveaction'] = false;
     $tab[3]['datatype'] = 'text';
     $tab[4]['table'] = $this->getTable();
     $tab[4]['field'] = 'website';
     $tab[4]['name'] = __('Website');
     $tab[4]['massiveaction'] = false;
     $tab[4]['datatype'] = 'string';
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'phonenumber';
     $tab[5]['name'] = __('Phone');
     $tab[5]['massiveaction'] = false;
     $tab[5]['datatype'] = 'string';
     $tab[6]['table'] = $this->getTable();
     $tab[6]['field'] = 'email';
     $tab[6]['name'] = _n('Email', 'Emails', 1);
     $tab[6]['datatype'] = 'email';
     $tab[6]['massiveaction'] = false;
     $tab[10]['table'] = $this->getTable();
     $tab[10]['field'] = 'fax';
     $tab[10]['name'] = __('Fax');
     $tab[10]['massiveaction'] = false;
     $tab[10]['datatype'] = 'string';
     $tab[25]['table'] = $this->getTable();
     $tab[25]['field'] = 'postcode';
     $tab[25]['name'] = __('Postal code');
     $tab[25]['datatype'] = 'string';
     $tab[11]['table'] = $this->getTable();
     $tab[11]['field'] = 'town';
     $tab[11]['name'] = __('City');
     $tab[11]['massiveaction'] = false;
     $tab[11]['datatype'] = 'string';
     $tab[12]['table'] = $this->getTable();
     $tab[12]['field'] = 'state';
     $tab[12]['name'] = _x('location', 'State');
     $tab[12]['massiveaction'] = false;
     $tab[12]['datatype'] = 'string';
     $tab[13]['table'] = $this->getTable();
     $tab[13]['field'] = 'country';
     $tab[13]['name'] = __('Country');
     $tab[13]['massiveaction'] = false;
     $tab[13]['datatype'] = 'string';
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[122]['table'] = $this->getTable();
     $tab[122]['field'] = 'date_mod';
     $tab[122]['name'] = __('Last update');
     $tab[122]['datatype'] = 'datetime';
     $tab[122]['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;
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     $tab['advanced'] = __('Advanced information');
     $tab[7]['table'] = $this->getTable();
     $tab[7]['field'] = 'ldap_dn';
     $tab[7]['name'] = __('LDAP directory information attribute representing the entity');
     $tab[7]['massiveaction'] = false;
     $tab[7]['datatype'] = 'string';
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'tag';
     $tab[8]['name'] = __('Information in inventory tool (TAG) representing the entity');
     $tab[8]['massiveaction'] = false;
     $tab[8]['datatype'] = 'string';
     $tab[9]['table'] = 'glpi_authldaps';
     $tab[9]['field'] = 'name';
     $tab[9]['name'] = __('LDAP directory of an entity');
     $tab[9]['massiveaction'] = false;
     $tab[9]['datatype'] = 'dropdown';
     $tab[17]['table'] = $this->getTable();
     $tab[17]['field'] = 'entity_ldapfilter';
     $tab[17]['name'] = __('Search filter (if needed)');
     $tab[17]['massiveaction'] = false;
     $tab[17]['datatype'] = 'string';
     $tab[20]['table'] = $this->getTable();
     $tab[20]['field'] = 'mail_domain';
     $tab[20]['name'] = __('Mail domain');
     $tab[20]['massiveaction'] = false;
     $tab[20]['datatype'] = 'string';
     $tab['notif'] = __('Notification options');
     $tab[60]['table'] = $this->getTable();
     $tab[60]['field'] = 'delay_send_emails';
     $tab[60]['name'] = __('Delay to send email notifications');
     $tab[60]['massiveaction'] = false;
     $tab[60]['nosearch'] = true;
     $tab[60]['datatype'] = 'number';
     $tab[60]['min'] = 0;
     $tab[60]['max'] = 60;
     $tab[60]['step'] = 1;
     $tab[60]['unit'] = 'minute';
     $tab[60]['toadd'] = array(self::CONFIG_PARENT => __('Inheritance of the parent entity'));
     $tab[61]['table'] = $this->getTable();
     $tab[61]['field'] = 'is_notif_enable_default';
     $tab[61]['name'] = __('Enable notifications by default');
     $tab[61]['massiveaction'] = false;
     $tab[61]['nosearch'] = true;
     $tab[61]['datatype'] = 'string';
     $tab[18]['table'] = $this->getTable();
     $tab[18]['field'] = 'admin_email';
     $tab[18]['name'] = __('Administrator email');
     $tab[18]['massiveaction'] = false;
     $tab[18]['datatype'] = 'string';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'admin_reply';
     $tab[19]['name'] = __('Administrator reply-to email (if needed)');
     $tab[19]['massiveaction'] = false;
     $tab[19]['datatype'] = 'string';
     $tab[21]['table'] = $this->getTable();
     $tab[21]['field'] = 'notification_subject_tag';
     $tab[21]['name'] = __('Prefix for notifications');
     $tab[21]['datatype'] = 'string';
     $tab[22]['table'] = $this->getTable();
     $tab[22]['field'] = 'admin_email_name';
     $tab[22]['name'] = __('Administrator name');
     $tab[22]['datatype'] = 'string';
     $tab[23]['table'] = $this->getTable();
     $tab[23]['field'] = 'admin_reply_name';
     $tab[23]['name'] = __('Response address (if needed)');
     $tab[23]['datatype'] = 'string';
     $tab[24]['table'] = $this->getTable();
     $tab[24]['field'] = 'mailing_signature';
     $tab[24]['name'] = __('Email signature');
     $tab[24]['datatype'] = 'text';
     $tab[26]['table'] = $this->getTable();
     $tab[26]['field'] = 'cartridges_alert_repeat';
     $tab[26]['name'] = __('Alarms on cartridges');
     $tab[26]['massiveaction'] = false;
     $tab[26]['nosearch'] = true;
     $tab[26]['datatype'] = 'specific';
     $tab[27]['table'] = $this->getTable();
     $tab[27]['field'] = 'consumables_alert_repeat';
     $tab[27]['name'] = __('Alarms on consumables');
     $tab[27]['massiveaction'] = false;
     $tab[27]['nosearch'] = true;
     $tab[27]['datatype'] = 'specific';
     $tab[29]['table'] = $this->getTable();
     $tab[29]['field'] = 'use_licenses_alert';
     $tab[29]['name'] = __('Alarms on expired licenses');
     $tab[29]['massiveaction'] = false;
     $tab[29]['nosearch'] = true;
     $tab[29]['datatype'] = 'specific';
     $tab[53]['table'] = $this->getTable();
     $tab[53]['field'] = 'send_licenses_alert_before_delay';
     $tab[53]['name'] = __('Send license alarms before');
     $tab[53]['massiveaction'] = false;
     $tab[53]['nosearch'] = true;
     $tab[53]['datatype'] = 'specific';
     $tab[30]['table'] = $this->getTable();
     $tab[30]['field'] = 'use_contracts_alert';
     $tab[30]['name'] = __('Alarms on contracts');
     $tab[30]['massiveaction'] = false;
     $tab[30]['nosearch'] = true;
     $tab[30]['datatype'] = 'specific';
     $tab[54]['table'] = $this->getTable();
     $tab[54]['field'] = 'send_contracts_alert_before_delay';
     $tab[54]['name'] = __('Send contract alarms before');
     $tab[54]['massiveaction'] = false;
     $tab[54]['nosearch'] = true;
     $tab[54]['datatype'] = 'specific';
     $tab[31]['table'] = $this->getTable();
     $tab[31]['field'] = 'use_infocoms_alert';
     $tab[31]['name'] = __('Alarms on financial and administrative information');
     $tab[31]['massiveaction'] = false;
     $tab[31]['nosearch'] = true;
     $tab[31]['datatype'] = 'specific';
     $tab[55]['table'] = $this->getTable();
     $tab[55]['field'] = 'send_infocoms_alert_before_delay';
     $tab[55]['name'] = __('Send financial and administrative information alarms before');
     $tab[55]['massiveaction'] = false;
     $tab[55]['nosearch'] = true;
     $tab[55]['datatype'] = 'specific';
     $tab[32]['table'] = $this->getTable();
     $tab[32]['field'] = 'use_reservations_alert';
     $tab[32]['name'] = __('Alerts on reservations');
     $tab[32]['massiveaction'] = false;
     $tab[32]['nosearch'] = true;
     $tab[32]['datatype'] = 'specific';
     $tab[48]['table'] = $this->getTable();
     $tab[48]['field'] = 'default_contract_alert';
     $tab[48]['name'] = __('Default value for alarms on contracts');
     $tab[48]['massiveaction'] = false;
     $tab[48]['nosearch'] = true;
     $tab[48]['datatype'] = 'specific';
     $tab[49]['table'] = $this->getTable();
     $tab[49]['field'] = 'default_infocom_alert';
     $tab[49]['name'] = __('Default value for alarms on financial and administrative information');
     $tab[49]['massiveaction'] = false;
     $tab[49]['nosearch'] = true;
     $tab[49]['datatype'] = 'specific';
     $tab[50]['table'] = $this->getTable();
     $tab[50]['field'] = 'default_cartridges_alarm_threshold';
     $tab[50]['name'] = __('Default threshold for cartridges count');
     $tab[50]['massiveaction'] = false;
     $tab[50]['nosearch'] = true;
     $tab[50]['datatype'] = 'number';
     $tab[52]['table'] = $this->getTable();
     $tab[52]['field'] = 'default_consumables_alarm_threshold';
     $tab[52]['name'] = __('Default threshold for consumables count');
     $tab[52]['massiveaction'] = false;
     $tab[52]['nosearch'] = true;
     $tab[52]['datatype'] = 'number';
     $tab['helpdesk'] = __('Assistance');
     $tab[47]['table'] = $this->getTable();
     $tab[47]['field'] = 'tickettemplates_id';
     // not a dropdown because of special value
     $tab[47]['name'] = _n('Ticket template', 'Ticket templates', 1);
     $tab[47]['massiveaction'] = false;
     $tab[47]['nosearch'] = true;
     $tab[47]['datatype'] = 'specific';
     $tab[33]['table'] = $this->getTable();
     $tab[33]['field'] = 'autoclose_delay';
     $tab[33]['name'] = __('Automatic closing of solved tickets after');
     $tab[33]['massiveaction'] = false;
     $tab[33]['nosearch'] = true;
     $tab[33]['datatype'] = 'number';
     $tab[33]['min'] = 1;
     $tab[33]['max'] = 99;
     $tab[33]['step'] = 1;
     $tab[33]['unit'] = 'day';
     $tab[33]['toadd'] = array(self::CONFIG_PARENT => __('Inheritance of the parent entity'), self::CONFIG_NEVER => __('Never'), 0 => __('Immediatly'));
     $tab[34]['table'] = $this->getTable();
     $tab[34]['field'] = 'notclosed_delay';
     $tab[34]['name'] = __('Alerts on tickets which are not solved');
     $tab[34]['massiveaction'] = false;
     $tab[34]['nosearch'] = true;
     $tab[34]['datatype'] = 'specific';
     $tab[35]['table'] = $this->getTable();
     $tab[35]['field'] = 'auto_assign_mode';
     $tab[35]['name'] = __('Automatic assignment of tickets');
     $tab[35]['massiveaction'] = false;
     $tab[35]['nosearch'] = true;
     $tab[35]['datatype'] = 'specific';
     $tab[36]['table'] = $this->getTable();
     $tab[36]['field'] = 'calendars_id';
     // not a dropdown because of special value
     $tab[36]['name'] = __('Calendar');
     $tab[36]['massiveaction'] = false;
     $tab[36]['nosearch'] = true;
     $tab[36]['datatype'] = 'specific';
     $tab[37]['table'] = $this->getTable();
     $tab[37]['field'] = 'tickettype';
     $tab[37]['name'] = __('Tickets default type');
     $tab[37]['massiveaction'] = false;
     $tab[37]['nosearch'] = true;
     $tab[37]['datatype'] = 'specific';
     $tab['helpdesk'] = __('Assets');
     $tab[38]['table'] = $this->getTable();
     $tab[38]['field'] = 'autofill_buy_date';
     $tab[38]['name'] = __('Date of purchase');
     $tab[38]['massiveaction'] = false;
     $tab[38]['nosearch'] = true;
     $tab[38]['datatype'] = 'specific';
     $tab[39]['table'] = $this->getTable();
     $tab[39]['field'] = 'autofill_order_date';
     $tab[39]['name'] = __('Order date');
     $tab[39]['massiveaction'] = false;
     $tab[39]['nosearch'] = true;
     $tab[39]['datatype'] = 'specific';
     $tab[40]['table'] = $this->getTable();
     $tab[40]['field'] = 'autofill_delivery_date';
     $tab[40]['name'] = __('Delivery date');
     $tab[40]['massiveaction'] = false;
     $tab[40]['nosearch'] = true;
     $tab[40]['datatype'] = 'specific';
     $tab[41]['table'] = $this->getTable();
     $tab[41]['field'] = 'autofill_use_date';
     $tab[41]['name'] = __('Startup date');
     $tab[41]['massiveaction'] = false;
     $tab[41]['nosearch'] = true;
     $tab[41]['datatype'] = 'specific';
     $tab[42]['table'] = $this->getTable();
     $tab[42]['field'] = 'autofill_warranty_date';
     $tab[42]['name'] = __('Start date of warranty');
     $tab[42]['massiveaction'] = false;
     $tab[42]['nosearch'] = true;
     $tab[42]['datatype'] = 'specific';
     $tab[43]['table'] = $this->getTable();
     $tab[43]['field'] = 'inquest_config';
     $tab[43]['name'] = __('Satisfaction survey configuration');
     $tab[43]['massiveaction'] = false;
     $tab[43]['nosearch'] = true;
     $tab[43]['datatype'] = 'specific';
     $tab[44]['table'] = $this->getTable();
     $tab[44]['field'] = 'inquest_rate';
     $tab[44]['name'] = __('Satisfaction survey trigger rate');
     $tab[44]['massiveaction'] = false;
     $tab[44]['datatype'] = 'number';
     $tab[45]['table'] = $this->getTable();
     $tab[45]['field'] = 'inquest_delay';
     $tab[45]['name'] = __('Create survey after');
     $tab[45]['massiveaction'] = false;
     $tab[45]['datatype'] = 'number';
     $tab[46]['table'] = $this->getTable();
     $tab[46]['field'] = 'inquest_URL';
     $tab[46]['name'] = __('URL');
     $tab[46]['massiveaction'] = false;
     $tab[46]['datatype'] = 'string';
     $tab[51]['table'] = $this->getTable();
     $tab[51]['field'] = 'entities_id_software';
     // not a dropdown because of special value
     //TRANS: software in plural
     $tab[51]['name'] = __('Entity for software creation');
     $tab[51]['massiveaction'] = false;
     $tab[51]['nosearch'] = true;
     $tab[51]['datatype'] = 'specific';
     return $tab;
 }
Ejemplo n.º 23
0
 static function install(Migration $migration)
 {
     global $DB;
     $table = getTableForItemType(__CLASS__);
     if (!TableExists($table)) {
         $query = "CREATE TABLE `{$table}` (\n                           `id` INT( 11 ) NOT NULL AUTO_INCREMENT,\n                           `entities_id` INT( 11 ) NOT NULL DEFAULT 0,\n                           `itemtype` varchar(255) collate utf8_unicode_ci default NULL,\n                           `is_active` tinyint(1) NOT NULL default '0',\n                           `name` varchar(255) collate utf8_unicode_ci default NULL,\n                           `comment` text NULL,\n                           `date_mod` datetime DEFAULT NULL,\n                           `date_creation` datetime DEFAULT NULL,\n                           `use_global_search` tinyint(1) NOT NULL default '0',\n                           `use_unicity` tinyint(1) NOT NULL default '0',\n                           `use_history` tinyint(1) NOT NULL default '0',\n                           `use_infocoms` tinyint(1) NOT NULL default '0',\n                           `use_contracts` tinyint(1) NOT NULL default '0',\n                           `use_documents` tinyint(1) NOT NULL default '0',\n                           `use_tickets` tinyint(1) NOT NULL default '0',\n                           `use_links` tinyint(1) NOT NULL default '0',\n                           `use_loans` tinyint(1) NOT NULL default '0',\n                           `use_network_ports` tinyint(1) NOT NULL default '0',\n                           `use_direct_connections` tinyint(1) NOT NULL default '0',\n                           `use_plugin_datainjection` tinyint(1) NOT NULL default '0',\n                           `use_plugin_pdf` tinyint(1) NOT NULL default '0',\n                           `use_plugin_order` tinyint(1) NOT NULL default '0',\n                           `use_plugin_uninstall` tinyint(1) NOT NULL default '0',\n                           `use_plugin_geninventorynumber` tinyint(1) NOT NULL default '0',\n                           `use_menu_entry` tinyint(1) NOT NULL default '0',\n                           `use_projects` tinyint(1) NOT NULL default '0',\n                           `linked_itemtypes` text NULL,\n                           `plugin_genericobject_typefamilies_id` INT( 11 ) NOT NULL DEFAULT 0,\n                           PRIMARY KEY ( `id` )\n                           ) ENGINE = MYISAM COMMENT = 'Object types definition table' DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
         $DB->query($query) or die($DB->error());
     }
     $migration->addField($table, "use_network_ports", "bool");
     $migration->addField($table, "use_direct_connections", "bool");
     $migration->addField($table, "use_plugin_geninventorynumber", "bool");
     $migration->addField($table, "use_contracts", "bool");
     $migration->addField($table, "use_menu_entry", "bool");
     $migration->addField($table, "use_global_search", "bool");
     $migration->addField($table, "use_projects", "bool");
     $migration->addField($table, "use_notepad", "bool");
     $migration->addField($table, "comment", "text");
     if (!$migration->addField($table, "date_mod", "datetime")) {
         $migration->changeField($table, "date_mod", "date_mod", "datetime");
     }
     $migration->addField($table, "date_creation", "datetime");
     $migration->addField($table, "linked_itemtypes", "text");
     $migration->addField($table, "plugin_genericobject_typefamilies_id", "integer");
     $migration->addField($table, "use_plugin_simcard", "bool");
     $migration->migrationOneTable($table);
     // Migrate notepad data
     $allGenericObjectTypes = PluginGenericobjectType::getTypes(true);
     $notepad = new Notepad();
     foreach ($allGenericObjectTypes as $genericObjectType => $genericObjectData) {
         $genericObjectTypeInstance = new $genericObjectType();
         if (FieldExists($genericObjectTypeInstance->getTable(), "notepad")) {
             $query = "INSERT INTO `" . $notepad->getTable() . "`\n                  (`items_id`,\n                  `itemtype`,\n                  `date`,\n                  `date_mod`,\n                  `content`\n               )\n               SELECT\n                  `id` as `items_id`,\n                  '" . $genericObjectType . "' as `itemtype`,\n                  now() as `date`,\n                  now() as `date_mod`,\n                  `notepad` as `content`\n               FROM `" . $genericObjectTypeInstance->getTable() . "`\n               WHERE notepad IS NOT NULL\n               AND notepad <> ''";
             $DB->query($query) or die($DB->error());
         }
         $query = "UPDATE`" . $notepad->getTable() . "`";
         $migration->dropField($genericObjectTypeInstance->getTable(), "notepad");
         $migration->migrationOneTable($genericObjectTypeInstance->getTable());
     }
     //Displayprefs
     $prefs = array(10 => 6, 9 => 5, 8 => 4, 7 => 3, 6 => 2, 2 => 1, 4 => 1, 11 => 7, 12 => 8, 14 => 10, 15 => 11);
     foreach ($prefs as $num => $rank) {
         if (!countElementsInTable("glpi_displaypreferences", "`itemtype`='" . __CLASS__ . "' AND `num`='{$num}'\n                                       AND `users_id`='0'")) {
             $preference = new DisplayPreference();
             $tmp['itemtype'] = __CLASS__;
             $tmp['num'] = $num;
             $tmp['rank'] = $rank;
             $tmp['users_id'] = 0;
             $preference->add($tmp);
         }
     }
     //If files are missing, recreate them!
     self::checkClassAndFilesForItemType();
 }
 function getSearchOptions()
 {
     $tab = array();
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[19]['table'] = $this->getTable();
     $tab[19]['field'] = 'date_mod';
     $tab[19]['name'] = __('Last update');
     $tab[19]['datatype'] = 'datetime';
     $tab[19]['massiveaction'] = false;
     $tab[5]['table'] = $this->getTable();
     $tab[5]['field'] = 'begin_date';
     $tab[5]['name'] = __('Start date');
     $tab[5]['datatype'] = 'date';
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'end_date';
     $tab[3]['name'] = __('End date');
     $tab[3]['datatype'] = 'date';
     $tab[4]['table'] = $this->getTable();
     $tab[4]['field'] = 'value';
     $tab[4]['name'] = _x('price', 'Value');
     $tab[4]['datatype'] = 'decimal';
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['massiveaction'] = false;
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 25
0
GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GLPI. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------
*/
/** @file
* @brief
* @since version 0.85
*/
include '../inc/includes.php';
$note = new Notepad();
if (isset($_POST['add'])) {
    $note->check(-1, CREATE, $_POST);
    $newID = $note->add($_POST, false);
    Event::log($newID, "notepad", 4, "tools", sprintf(__('%1$s adds the item %2$s'), $_SESSION["glpiname"], $newID));
    Html::back();
} else {
    if (isset($_POST["purge"])) {
        $note->check($_POST["id"], PURGE);
        $note->delete($_POST, 1);
        Event::log($_POST["id"], "notepad", 4, "tools", sprintf(__('%s purges an item'), $_SESSION["glpiname"]));
        Html::back();
    } else {
        if (isset($_POST["update"])) {
            $note->check($_POST["id"], UPDATE);
            $note->update($_POST);
Ejemplo n.º 26
0
 function getSearchOptions()
 {
     // Only use for History (not by search Engine)
     $tab = array();
     $tab['common'] = __('Characteristics');
     $tab[1]['table'] = $this->getTable();
     $tab[1]['field'] = 'name';
     $tab[1]['name'] = __('Name');
     $tab[1]['datatype'] = 'itemlink';
     $tab[1]['massiveaction'] = false;
     $tab[1]['forcegroupby'] = true;
     $tab[1]['massiveaction'] = false;
     $tab[2]['table'] = $this->getTable();
     $tab[2]['field'] = 'id';
     $tab[2]['name'] = __('ID');
     $tab[2]['massiveaction'] = false;
     $tab[2]['datatype'] = 'number';
     $tab[2]['forcegroupby'] = true;
     $tab[2]['massiveaction'] = false;
     $tab += Location::getSearchOptionsToAdd();
     $tab[3]['table'] = $this->getTable();
     $tab[3]['field'] = 'serial';
     $tab[3]['name'] = __('Serial number');
     $tab[3]['datatype'] = 'string';
     $tab[4]['table'] = $this->getTable();
     $tab[4]['field'] = 'number';
     $tab[4]['name'] = _x('quantity', 'Number');
     $tab[4]['datatype'] = 'number';
     $tab[4]['max'] = 100;
     $tab[4]['toadd'] = array(-1 => __('Unlimited'));
     $tab[5]['table'] = 'glpi_softwarelicensetypes';
     $tab[5]['field'] = 'name';
     $tab[5]['name'] = __('Type');
     $tab[5]['datatype'] = 'dropdown';
     $tab[6]['table'] = 'glpi_softwareversions';
     $tab[6]['field'] = 'name';
     $tab[6]['linkfield'] = 'softwareversions_id_buy';
     $tab[6]['name'] = __('Purchase version');
     $tab[6]['datatype'] = 'dropdown';
     $tab[6]['displaywith'] = array('states_id');
     $tab[7]['table'] = 'glpi_softwareversions';
     $tab[7]['field'] = 'name';
     $tab[7]['linkfield'] = 'softwareversions_id_use';
     $tab[7]['name'] = __('Version in use');
     $tab[7]['datatype'] = 'dropdown';
     $tab[7]['displaywith'] = array('states_id');
     $tab[8]['table'] = $this->getTable();
     $tab[8]['field'] = 'expire';
     $tab[8]['name'] = __('Expiration');
     $tab[8]['datatype'] = 'date';
     $tab[9]['table'] = $this->getTable();
     $tab[9]['field'] = 'is_valid';
     $tab[9]['name'] = __('Valid');
     $tab[9]['datatype'] = 'bool';
     $tab[10]['table'] = 'glpi_softwares';
     $tab[10]['field'] = 'name';
     $tab[10]['name'] = __('Software');
     $tab[10]['datatype'] = 'itemlink';
     $tab[16]['table'] = $this->getTable();
     $tab[16]['field'] = 'comment';
     $tab[16]['name'] = __('Comments');
     $tab[16]['datatype'] = 'text';
     $tab[24]['table'] = 'glpi_users';
     $tab[24]['field'] = 'name';
     $tab[24]['linkfield'] = 'users_id_tech';
     $tab[24]['name'] = __('Technician in charge of the hardware');
     $tab[24]['datatype'] = 'dropdown';
     $tab[24]['right'] = 'own_ticket';
     $tab[31]['table'] = 'glpi_states';
     $tab[31]['field'] = 'completename';
     $tab[31]['name'] = __('Status');
     $tab[31]['datatype'] = 'dropdown';
     $tab[31]['condition'] = "`is_visible_softwarelicense`";
     $tab[49]['table'] = 'glpi_groups';
     $tab[49]['field'] = 'completename';
     $tab[49]['linkfield'] = 'groups_id_tech';
     $tab[49]['name'] = __('Group in charge of the hardware');
     $tab[49]['condition'] = '`is_assign`';
     $tab[49]['datatype'] = 'dropdown';
     $tab[70]['table'] = 'glpi_users';
     $tab[70]['field'] = 'name';
     $tab[70]['name'] = __('User');
     $tab[70]['datatype'] = 'dropdown';
     $tab[70]['right'] = 'all';
     $tab[71]['table'] = 'glpi_groups';
     $tab[71]['field'] = 'completename';
     $tab[71]['name'] = __('Group');
     $tab[71]['condition'] = '`is_itemgroup`';
     $tab[71]['datatype'] = 'dropdown';
     $tab[80]['table'] = 'glpi_entities';
     $tab[80]['field'] = 'completename';
     $tab[80]['name'] = __('Entity');
     $tab[80]['datatype'] = 'dropdown';
     $tab[86]['table'] = $this->getTable();
     $tab[86]['field'] = 'is_recursive';
     $tab[86]['name'] = __('Child entities');
     $tab[86]['datatype'] = 'bool';
     $tab[162]['table'] = $this->getTable();
     $tab[162]['field'] = 'otherserial';
     $tab[162]['name'] = __('Inventory number');
     $tab[162]['massiveaction'] = false;
     $tab[162]['datatype'] = 'string';
     // add objectlock search options
     $tab += ObjectLock::getSearchOptionsToAdd(get_class($this));
     $tab += Notepad::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 27
0
 /**
  * Return the instance fields of itemtype identified by id
  *
  * @param $itemtype    string  itemtype (class) of object
  * @param $id          integer identifier of object
  * @param $params      array   with theses options :
  *    - 'expand_dropdowns': Show dropdown's names instead of id. default: false. Optionnal
  *    - 'get_hateoas':      Show relation of current item in a links attribute. default: true. Optionnal
  *    - 'get_sha1':         Get a sha1 signature instead of the full answer. default: false. Optionnal
  *    - 'with_components':  Only for [Computer, NetworkEquipment, Peripheral, Phone, Printer], Optionnal.
  *    - 'with_disks':       Only for Computer, retrieve the associated filesystems. Optionnal.
  *    - 'with_softwares':   Only for Computer, retrieve the associated softwares installations. Optionnal.
  *    - 'with_connections': Only for Computer, retrieve the associated direct connections (like peripherals and printers) .Optionnal.
  *    - 'with_networkports':Retrieve all network connections and advanced network informations. Optionnal.
  *    - 'with_infocoms':    Retrieve financial and administrative informations. Optionnal.
  *    - 'with_contracts':   Retrieve associated contracts. Optionnal.
  *    - 'with_documents':   Retrieve associated external documents. Optionnal.
  *    - 'with_tickets':     Retrieve associated itil tickets. Optionnal.
  *    - 'with_problems':    Retrieve associated itil problems. Optionnal.
  *    - 'with_changes':     Retrieve associated itil changes. Optionnal.
  *    - 'with_notes':       Retrieve Notes (if exists, not all itemtypes have notes). Optionnal.
  *    - 'with_logs':        Retrieve historical. Optionnal.
  *
  * @return     array    fields of found object
  **/
 protected function getItem($itemtype, $id, $params = array())
 {
     global $CFG_GLPI, $DB;
     $this->initEndpoint();
     // default params
     $default = array('expand_dropdowns' => false, 'get_hateoas' => true, 'get_sha1' => false, 'with_components' => false, 'with_disks' => false, 'with_softwares' => false, 'with_connections' => false, 'with_networkports' => false, 'with_infocoms' => false, 'with_contracts' => false, 'with_documents' => false, 'with_tickets' => false, 'with_problems' => false, 'with_changes' => false, 'with_notes' => false, 'with_logs' => false);
     $params = array_merge($default, $params);
     $item = new $itemtype();
     if (!$item->getFromDB($id)) {
         return $this->messageNotfoundError();
     }
     if (!$item->can($id, READ)) {
         return $this->messageRightError();
     }
     $fields = $item->fields;
     // avoid disclosure of critical fields
     $item::unsetUndisclosedFields($fields);
     // retrieve devices
     if (isset($params['with_devices']) && $params['with_devices'] && in_array($itemtype, Item_Devices::getConcernedItems())) {
         $all_devices = array();
         foreach (Item_Devices::getItemAffinities($item->getType()) as $device_type) {
             $found_devices = getAllDatasFromTable($device_type::getTable(), "`items_id` = '" . $item->getID() . "'\n                                                   AND `itemtype` = '" . $item->getType() . "'\n                                                   AND `is_deleted` = '0'", true);
             foreach ($found_devices as $devices_id => &$device) {
                 unset($device['items_id']);
                 unset($device['itemtype']);
                 unset($device['is_deleted']);
             }
             if (!empty($found_devices)) {
                 $all_devices[$device_type] = $found_devices;
             }
         }
         $fields['_devices'] = $all_devices;
     }
     // retrieve computer disks
     if (isset($params['with_disks']) && $params['with_disks'] && $itemtype == "Computer") {
         // build query to retrive filesystems
         $query = "SELECT `glpi_filesystems`.`name` AS fsname,\n                          `glpi_computerdisks`.*\n                   FROM `glpi_computerdisks`\n                   LEFT JOIN `glpi_filesystems`\n                             ON (`glpi_computerdisks`.`filesystems_id` = `glpi_filesystems`.`id`)\n                   WHERE `computers_id` = '{$id}'\n                         AND `is_deleted` = '0'";
         $fields['_disks'] = array();
         if ($result = $DB->query($query)) {
             while ($data = $DB->fetch_assoc($result)) {
                 unset($data['computers_id']);
                 unset($data['is_deleted']);
                 $fields['_disks'][] = array('name' => $data);
             }
         }
     }
     // retrieve computer softwares
     if (isset($params['with_softwares']) && $params['with_softwares'] && $itemtype == "Computer") {
         $fields['_softwares'] = array();
         if (!Software::canView()) {
             $fields['_softwares'] = self::arrayRightError();
         } else {
             $query = "SELECT `glpi_softwares`.`softwarecategories_id`,\n                             `glpi_softwares`.`id` AS softwares_id,\n                             `glpi_softwareversions`.`id` AS softwareversions_id,\n                             `glpi_computers_softwareversions`.`is_dynamic`,\n                             `glpi_softwareversions`.`states_id`,\n                             `glpi_softwares`.`is_valid`\n                      FROM `glpi_computers_softwareversions`\n                      LEFT JOIN `glpi_softwareversions`\n                           ON (`glpi_computers_softwareversions`.`softwareversions_id`\n                                 = `glpi_softwareversions`.`id`)\n                      LEFT JOIN `glpi_softwares`\n                           ON (`glpi_softwareversions`.`softwares_id` = `glpi_softwares`.`id`)\n                      WHERE `glpi_computers_softwareversions`.`computers_id` = '{$id}'\n                            AND `glpi_computers_softwareversions`.`is_deleted` = '0'\n                      ORDER BY `glpi_softwares`.`name`, `glpi_softwareversions`.`name`";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_softwares'][] = $data;
                 }
             }
         }
     }
     // retrieve item connections
     if (isset($params['with_connections']) && $params['with_connections'] && $itemtype == "Computer") {
         $fields['_connections'] = array();
         foreach ($CFG_GLPI["directconnect_types"] as $connect_type) {
             $connect_item = new $connect_type();
             if ($connect_item->canView()) {
                 $query = "SELECT `glpi_computers_items`.`id` AS assoc_id,\n                         `glpi_computers_items`.`computers_id` AS assoc_computers_id,\n                         `glpi_computers_items`.`itemtype` AS assoc_itemtype,\n                         `glpi_computers_items`.`items_id` AS assoc_items_id,\n                         `glpi_computers_items`.`is_dynamic` AS assoc_is_dynamic,\n                         " . getTableForItemType($connect_type) . ".*\n                         FROM `glpi_computers_items`\n                         LEFT JOIN `" . getTableForItemType($connect_type) . "`\n                           ON (`" . getTableForItemType($connect_type) . "`.`id`\n                                 = `glpi_computers_items`.`items_id`)\n                         WHERE `computers_id` = '{$id}'\n                               AND `itemtype` = '" . $connect_type . "'\n                               AND `glpi_computers_items`.`is_deleted` = '0'";
                 if ($result = $DB->query($query)) {
                     while ($data = $DB->fetch_assoc($result)) {
                         $fields['_connections'][$connect_type][] = $data;
                     }
                 }
             }
         }
     }
     // retrieve item networkports
     if (isset($params['with_networkports']) && $params['with_networkports']) {
         $fields['_networkports'] = array();
         if (!NetworkEquipment::canView()) {
             $fields['_networkports'] = self::arrayRightError();
         } else {
             foreach (NetworkPort::getNetworkPortInstantiations() as $networkport_type) {
                 $netport_table = $networkport_type::getTable();
                 $query = "SELECT\n                           netp.`id` as netport_id,\n                           netp.`entities_id`,\n                           netp.`is_recursive`,\n                           netp.`logical_number`,\n                           netp.`name`,\n                           netp.`mac`,\n                           netp.`comment`,\n                           netp.`is_dynamic`,\n                           netp_subtable.*\n                         FROM glpi_networkports AS netp\n                         LEFT JOIN `{$netport_table}` AS netp_subtable\n                           ON netp_subtable.`networkports_id` = netp.`id`\n                         WHERE netp.`instantiation_type` = '{$networkport_type}'\n                           AND netp.`items_id` = '{$id}'\n                           AND netp.`itemtype` = '{$itemtype}'\n                           AND netp.`is_deleted` = '0'";
                 if ($result = $DB->query($query)) {
                     while ($data = $DB->fetch_assoc($result)) {
                         if (isset($data['netport_id'])) {
                             // append network name
                             $query_netn = "SELECT\n                              GROUP_CONCAT(CONCAT(ipadr.`id`, '" . Search::SHORTSEP . "' , ipadr.`name`)\n                                           SEPARATOR '" . Search::LONGSEP . "') as ipadresses,\n                              netn.`id` as networknames_id,\n                              netn.`name` as networkname,\n                              netn.`fqdns_id`,\n                              fqdn.`name` as fqdn_name,\n                              fqdn.`fqdn`\n                           FROM `glpi_networknames` AS netn\n                           LEFT JOIN `glpi_ipaddresses` AS ipadr\n                              ON ipadr.`itemtype` = 'NetworkName' AND ipadr.`items_id` = netn.`id`\n                           LEFT JOIN `glpi_fqdns` AS fqdn\n                              ON fqdn.`id` = netn.`fqdns_id`\n                           LEFT JOIN `glpi_ipaddresses_ipnetworks` ipadnet\n                              ON ipadnet.`ipaddresses_id` = ipadr.`id`\n                           LEFT JOIN `glpi_ipnetworks` `ipnet`\n                              ON ipnet.`id` = ipadnet.`ipnetworks_id`\n                           WHERE netn.`itemtype` = 'NetworkPort'\n                             AND netn.`items_id` = " . $data['netport_id'] . "\n                           GROUP BY netn.`id`, netn.`name`, netn.fqdns_id, fqdn.name, fqdn.fqdn";
                             if ($result_netn = $DB->query($query_netn)) {
                                 $data_netn = $DB->fetch_assoc($result_netn);
                                 $raw_ipadresses = explode(Search::LONGSEP, $data_netn['ipadresses']);
                                 $ipadresses = array();
                                 foreach ($raw_ipadresses as $ipadress) {
                                     $ipadress = explode(Search::SHORTSEP, $ipadress);
                                     //find ip network attached to these ip
                                     $ipnetworks = array();
                                     $query_ipnet = "SELECT\n                                    ipnet.`id`,\n                                    ipnet.`completename`,\n                                    ipnet.`name`,\n                                    ipnet.`address`,\n                                    ipnet.`netmask`,\n                                    ipnet.`gateway`,\n                                    ipnet.`ipnetworks_id`,\n                                    ipnet.`comment`\n                                 FROM `glpi_ipnetworks` ipnet\n                                 INNER JOIN `glpi_ipaddresses_ipnetworks` ipadnet\n                                    ON ipnet.`id` = ipadnet.`ipnetworks_id`\n                                    AND ipadnet.`ipaddresses_id` = " . $ipadress[0];
                                     if ($result_ipnet = $DB->query($query_ipnet)) {
                                         while ($data_ipnet = $DB->fetch_assoc($result_ipnet)) {
                                             $ipnetworks[] = $data_ipnet;
                                         }
                                     }
                                     $ipadresses[] = array('id' => $ipadress[0], 'name' => $ipadress[1], 'IPNetwork' => $ipnetworks);
                                 }
                                 $data['NetworkName'] = array('id' => $data_netn['networknames_id'], 'name' => $data_netn['networkname'], 'fqdns_id' => $data_netn['fqdns_id'], 'FQDN' => array('id' => $data_netn['fqdns_id'], 'name' => $data_netn['fqdn_name'], 'fqdn' => $data_netn['fqdn']), 'IPAddress' => $ipadresses);
                             }
                         }
                         $fields['_networkports'][$networkport_type][] = $data;
                     }
                 }
             }
         }
     }
     // retrieve item infocoms
     if (isset($params['with_infocoms']) && $params['with_infocoms']) {
         $fields['_infocoms'] = array();
         if (!Infocom::canView()) {
             $fields['_infocoms'] = self::arrayRightError();
         } else {
             $ic = new Infocom();
             if ($ic->getFromDBforDevice($itemtype, $id)) {
                 $fields['_infocoms'] = $ic->fields;
             }
         }
     }
     // retrieve item contracts
     if (isset($params['with_contracts']) && $params['with_contracts']) {
         $fields['_contracts'] = array();
         if (!Contract::canView()) {
             $fields['_contracts'] = self::arrayRightError();
         } else {
             $query = "SELECT `glpi_contracts_items`.*\n                     FROM `glpi_contracts_items`,\n                          `glpi_contracts`\n                     LEFT JOIN `glpi_entities` ON (`glpi_contracts`.`entities_id`=`glpi_entities`.`id`)\n                     WHERE `glpi_contracts`.`id`=`glpi_contracts_items`.`contracts_id`\n                           AND `glpi_contracts_items`.`items_id` = '{$id}'\n                           AND `glpi_contracts_items`.`itemtype` = '{$itemtype}'" . getEntitiesRestrictRequest(" AND", "glpi_contracts", '', '', true) . "\n                     ORDER BY `glpi_contracts`.`name`";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_contracts'][] = $data;
                 }
             }
         }
     }
     // retrieve item contracts
     if (isset($params['with_documents']) && $params['with_documents']) {
         $fields['_documents'] = array();
         if (!$itemtype != 'Ticket' && $itemtype != 'KnowbaseItem' && $itemtype != 'Reminder' && !Document::canView()) {
             $fields['_documents'] = self::arrayRightError();
         } else {
             $query = "SELECT `glpi_documents_items`.`id` AS assocID,\n                             `glpi_documents_items`.`date_mod` AS assocdate,\n                             `glpi_entities`.`id` AS entityID,\n                             `glpi_entities`.`completename` AS entity,\n                             `glpi_documentcategories`.`completename` AS headings,\n                             `glpi_documents`.*\n                      FROM `glpi_documents_items`\n                      LEFT JOIN `glpi_documents`\n                                ON (`glpi_documents_items`.`documents_id`=`glpi_documents`.`id`)\n                      LEFT JOIN `glpi_entities` ON (`glpi_documents`.`entities_id`=`glpi_entities`.`id`)\n                      LEFT JOIN `glpi_documentcategories`\n                              ON (`glpi_documents`.`documentcategories_id`=`glpi_documentcategories`.`id`)\n                      WHERE `glpi_documents_items`.`items_id` = '{$id}'\n                            AND `glpi_documents_items`.`itemtype` = '{$itemtype}' ";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_documents'][] = $data;
                 }
             }
         }
     }
     // retrieve item tickets
     if (isset($params['with_tickets']) && $params['with_tickets']) {
         $fields['_tickets'] = array();
         if (!Ticket::canView()) {
             $fields['_tickets'] = self::arrayRightError();
         } else {
             $query = "SELECT " . Ticket::getCommonSelect() . "\n                      FROM `glpi_tickets` " . Ticket::getCommonLeftJoin() . "\n                      WHERE `glpi_items_tickets`.`items_id` = '{$id}'\n                             AND `glpi_items_tickets`.`itemtype` = '{$itemtype}' " . getEntitiesRestrictRequest("AND", "glpi_tickets") . "\n                      ORDER BY `glpi_tickets`.`date_mod` DESC";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_tickets'][] = $data;
                 }
             }
         }
     }
     // retrieve item problems
     if (isset($params['with_problems']) && $params['with_problems']) {
         $fields['_problems'] = array();
         if (!Problem::canView()) {
             $fields['_problems'] = self::arrayRightError();
         } else {
             $query = "SELECT " . Problem::getCommonSelect() . "\n                            FROM `glpi_problems`\n                            LEFT JOIN `glpi_items_problems`\n                              ON (`glpi_problems`.`id` = `glpi_items_problems`.`problems_id`) " . Problem::getCommonLeftJoin() . "\n                            WHERE `items_id` = '{$id}'\n                                  AND `itemtype` = '{$itemtype}' " . getEntitiesRestrictRequest("AND", "glpi_problems") . "\n                            ORDER BY `glpi_problems`.`date_mod` DESC";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_problems'][] = $data;
                 }
             }
         }
     }
     // retrieve item changes
     if (isset($params['with_changes']) && $params['with_changes']) {
         $fields['_changes'] = array();
         if (!Change::canView()) {
             $fields['_changes'] = self::arrayRightError();
         } else {
             $query = "SELECT " . Change::getCommonSelect() . "\n                            FROM `glpi_changes`\n                            LEFT JOIN `glpi_changes_items`\n                              ON (`glpi_changes`.`id` = `glpi_changes_items`.`problems_id`) " . Change::getCommonLeftJoin() . "\n                            WHERE `items_id` = '{$id}'\n                                  AND `itemtype` = '{$itemtype}' " . getEntitiesRestrictRequest("AND", "glpi_changes") . "\n                            ORDER BY `glpi_changes`.`date_mod` DESC";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_changes'][] = $data;
                 }
             }
         }
     }
     // retrieve item notes
     if (isset($params['with_notes']) && $params['with_notes']) {
         $fields['_notes'] = array();
         if (!Session::haveRight($itemtype::$rightname, READNOTE)) {
             $fields['_notes'] = self::arrayRightError();
         } else {
             $fields['_notes'] = Notepad::getAllForItem($item);
         }
     }
     // retrieve item logs
     if (isset($params['with_logs']) && $params['with_logs']) {
         $fields['_logs'] = array();
         if (!Session::haveRight($itemtype::$rightname, READNOTE)) {
             $fields['_logs'] = self::arrayRightError();
         } else {
             $fields['_logs'] = getAllDatasFromTable("glpi_logs", "`items_id` = '" . $item->getID() . "'\n                                                    AND `itemtype` = '" . $item->getType() . "'");
         }
     }
     // expand dropdown (retrieve name of dropdowns) and get hateoas from foreign keys
     $fields = self::parseDropdowns($fields, $params);
     // get hateoas from children
     if ($params['get_hateoas']) {
         $hclasses = self::getHatoasClasses($itemtype);
         foreach ($hclasses as $hclass) {
             $fields['links'][] = array('rel' => $hclass, 'href' => self::$api_url . "/{$itemtype}/" . $item->getID() . "/{$hclass}/");
         }
     }
     // get sha1 footprint if needed
     if ($params['get_sha1']) {
         $fields = sha1(json_encode($fields, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK));
     }
     return $fields;
 }
Ejemplo n.º 28
0
 function getSearchOptions()
 {
     $tab = array();
     $tab += $this->getSearchOptionsMain();
     $tab += $this->getSearchOptionsActors();
     $tab['analysis'] = __('Control list');
     $tab[60]['table'] = $this->getTable();
     $tab[60]['field'] = 'impactcontent';
     $tab[60]['name'] = __('Impact');
     $tab[60]['massiveaction'] = false;
     $tab[60]['datatype'] = 'text';
     $tab[61]['table'] = $this->getTable();
     $tab[61]['field'] = 'controlistcontent';
     $tab[61]['name'] = __('Control list');
     $tab[61]['massiveaction'] = false;
     $tab[61]['datatype'] = 'text';
     $tab[62]['table'] = $this->getTable();
     $tab[62]['field'] = 'rolloutplancontent';
     $tab[62]['name'] = __('Deployment plan');
     $tab[62]['massiveaction'] = false;
     $tab[62]['datatype'] = 'text';
     $tab[63]['table'] = $this->getTable();
     $tab[63]['field'] = 'backoutplancontent';
     $tab[63]['name'] = __('Backup plan');
     $tab[63]['massiveaction'] = false;
     $tab[63]['datatype'] = 'text';
     $tab[64]['table'] = $this->getTable();
     $tab[64]['field'] = 'checklistcontent';
     $tab[64]['name'] = __('Checklist');
     $tab[64]['massiveaction'] = false;
     $tab[64]['datatype'] = 'text';
     $tab += Notepad::getSearchOptionsToAdd();
     $tab += ChangeValidation::getSearchOptionsToAdd();
     $tab += ChangeTask::getSearchOptionsToAdd();
     $tab += $this->getSearchOptionsSolution();
     $tab += ChangeCost::getSearchOptionsToAdd();
     return $tab;
 }
Ejemplo n.º 29
0
 /**
  * Return the instance fields of itemtype identified by id
  *
  * @since version 9.1
  *
  * @param      string   $itemtype  itemtype (class) of object
  * @param      integer  $id        identifier of object
  * @param      array   $params   array with theses options :
  *    - 'expand_dropdowns' : show dropdown's names instead of id. default: false. Optionnal
  *    - 'get_hateoas' :      show relation of current item in a links attribute. default: true. Optionnal
  *    - 'with_components' :  Only for [Computer, NetworkEquipment, Peripheral, Phone, Printer], Optionnal.
  *    - 'with_disks' :       Only for Computer, retrieve the associated filesystems. Optionnal.
  *    - 'with_softwares' :   Only for Computer, retrieve the associated softwares installations. Optionnal.
  *    - 'with_connections' : Only for Computer, retrieve the associated direct connections (like peripherals and printers) .Optionnal.
  *    - 'with_networkports' :Retrieve all network connections and advanced network informations. Optionnal.
  *    - 'with_infocoms' :    Retrieve financial and administrative informations. Optionnal.
  *    - 'with_contracts' :   Retrieve associated contracts. Optionnal.
  *    - 'with_documents' :   Retrieve associated external documents. Optionnal.
  *    - 'with_tickets' :     Retrieve associated itil tickets. Optionnal.
  *    - 'with_problems' :    Retrieve associated itil problems. Optionnal.
  *    - 'with_changes' :     Retrieve associated itil changes. Optionnal.
  *    - 'with_notes' :       Retrieve Notes (if exists, not all itemtypes have notes). Optionnal.
  *    - 'with_logs' :        Retrieve historical. Optionnal.
  *
  * @return     array    fields of found object
  */
 protected function getItem($itemtype, $id, $params = array())
 {
     global $CFG_GLPI, $DB;
     $this->initEndpoint();
     // default params
     $default = array('expand_dropdowns' => false, 'get_hateoas' => true, 'with_components' => false, 'with_disks' => false, 'with_softwares' => false, 'with_connections' => false, 'with_networkports' => false, 'with_infocoms' => false, 'with_contracts' => false, 'with_documents' => false, 'with_tickets' => false, 'with_problems' => false, 'with_changes' => false, 'with_notes' => false, 'with_logs' => false);
     $params = array_merge($default, $params);
     $item = new $itemtype();
     if (!$item->getFromDB($id)) {
         return $this->messageNotfoundError();
     }
     if (!$item->can($id, READ)) {
         return $this->messageRightError();
     }
     $fields = $item->fields;
     // retrieve devices
     if (isset($params['with_devices']) && $params['with_devices'] && in_array($itemtype, Item_Devices::getConcernedItems())) {
         $all_devices = array();
         foreach (Item_Devices::getItemAffinities($item->getType()) as $device_type) {
             $found_devices = getAllDatasFromTable($device_type::getTable(), "`items_id` = '" . $item->getID() . "'\n                                                   AND `itemtype` = '" . $item->getType() . "'\n                                                   AND `is_deleted` = '0'", true);
             foreach ($found_devices as $devices_id => &$device) {
                 unset($device['items_id']);
                 unset($device['itemtype']);
                 unset($device['is_deleted']);
             }
             if (!empty($found_devices)) {
                 $all_devices[$device_type] = $found_devices;
             }
         }
         $fields['_devices'] = $all_devices;
     }
     // retrieve computer disks
     if (isset($params['with_disks']) && $params['with_disks'] && $itemtype == "Computer") {
         // build query to retrive filesystems
         $query = "SELECT `glpi_filesystems`.`name` AS fsname,\n                          `glpi_computerdisks`.*\n                   FROM `glpi_computerdisks`\n                   LEFT JOIN `glpi_filesystems`\n                             ON (`glpi_computerdisks`.`filesystems_id` = `glpi_filesystems`.`id`)\n                   WHERE `computers_id` = '{$id}'\n                         AND `is_deleted` = '0'";
         if ($result = $DB->query($query)) {
             while ($data = $DB->fetch_assoc($result)) {
                 unset($data['computers_id']);
                 unset($data['is_deleted']);
                 $fields['_disks'][] = array('name' => $data);
             }
         }
     }
     // retrieve computer softwares
     if (isset($params['with_softwares']) && $params['with_softwares'] && $itemtype == "Computer") {
         $fields['_softwares'] = array();
         if (!Software::canView()) {
             $fields['_softwares'] = self::arrayRightError();
         } else {
             $query = "SELECT `glpi_softwares`.`softwarecategories_id`,\n                             `glpi_softwares`.`id` AS softwares_id,\n                             `glpi_softwareversions`.`id` AS softwareversions_id,\n                             `glpi_computers_softwareversions`.`is_dynamic`,\n                             `glpi_softwareversions`.`states_id`,\n                             `glpi_softwares`.`is_valid`\n                      FROM `glpi_computers_softwareversions`\n                      LEFT JOIN `glpi_softwareversions`\n                           ON (`glpi_computers_softwareversions`.`softwareversions_id`\n                                 = `glpi_softwareversions`.`id`)\n                      LEFT JOIN `glpi_softwares`\n                           ON (`glpi_softwareversions`.`softwares_id` = `glpi_softwares`.`id`)\n                      WHERE `glpi_computers_softwareversions`.`computers_id` = '{$id}'\n                            AND `glpi_computers_softwareversions`.`is_deleted` = '0'\n                      ORDER BY `glpi_softwares`.`name`, `glpi_softwareversions`.`name`";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_softwares'][] = $data;
                 }
             }
         }
     }
     // retrieve item connections
     if (isset($params['with_connections']) && $params['with_connections'] && $itemtype == "Computer") {
         $fields['_connections'] = array();
         foreach ($CFG_GLPI["directconnect_types"] as $connect_type) {
             $connect_item = new $connect_type();
             if ($connect_item->canView()) {
                 $query = "SELECT `glpi_computers_items`.`id` AS assoc_id,\n                         `glpi_computers_items`.`computers_id` AS assoc_computers_id,\n                         `glpi_computers_items`.`itemtype` AS assoc_itemtype,\n                         `glpi_computers_items`.`items_id` AS assoc_items_id,\n                         `glpi_computers_items`.`is_dynamic` AS assoc_is_dynamic,\n                         " . getTableForItemType($connect_type) . ".*\n                         FROM `glpi_computers_items`\n                         LEFT JOIN `" . getTableForItemType($connect_type) . "`\n                           ON (`" . getTableForItemType($connect_type) . "`.`id`\n                                 = `glpi_computers_items`.`items_id`)\n                         WHERE `computers_id` = '{$id}'\n                               AND `itemtype` = '" . $connect_type . "'\n                               AND `glpi_computers_items`.`is_deleted` = '0'";
                 if ($result = $DB->query($query)) {
                     while ($data = $DB->fetch_assoc($result)) {
                         $fields['_connections'][$connect_type][] = $data;
                     }
                 }
             }
         }
     }
     // retrieve item networkports
     if (isset($params['with_networkports']) && $params['with_networkports']) {
         $fields['_networkports'] = array();
         if (!NetworkEquipment::canView()) {
             $fields['_networkports'] = self::arrayRightError();
         } else {
             foreach (NetworkPort::getNetworkPortInstantiations() as $networkport_type) {
                 $query = "SELECT\n                           netp.`entities_id`,\n                           netp.`is_recursive`,\n                           netp.`logical_number`,\n                           netp.`name`,\n                           netp.`mac`,\n                           netp.`comment`,\n                           netp.`is_dynamic`,\n                           netp_subtable.*\n                         FROM glpi_networkports AS netp\n                         LEFT JOIN " . $networkport_type::getTable() . " AS netp_subtable\n                           ON netp_subtable.`networkports_id` = netp.`id`\n                         WHERE netp.`instantiation_type` = '{$networkport_type}'\n                               AND netp.`items_id` = '{$id}'\n                               AND netp.`itemtype` = '{$itemtype}'\n                               AND netp.`is_deleted` = '0'";
                 if ($result = $DB->query($query)) {
                     while ($data = $DB->fetch_assoc($result)) {
                         $fields['_networkports'][$networkport_type][] = $data;
                     }
                 }
             }
         }
     }
     // retrieve item infocoms
     if (isset($params['with_infocoms']) && $params['with_infocoms']) {
         $fields['_infocoms'] = array();
         if (!Infocom::canView()) {
             $fields['_infocoms'] = self::arrayRightError();
         } else {
             $ic = new Infocom();
             if ($ic->getFromDBforDevice($itemtype, $id)) {
                 $fields['_infocoms'] = $ic->fields;
             }
         }
     }
     // retrieve item contracts
     if (isset($params['with_contracts']) && $params['with_contracts']) {
         $fields['_contracts'] = array();
         if (!Contract::canView()) {
             $fields['_contracts'] = self::arrayRightError();
         } else {
             $query = "SELECT `glpi_contracts_items`.*\n                     FROM `glpi_contracts_items`,\n                          `glpi_contracts`\n                     LEFT JOIN `glpi_entities` ON (`glpi_contracts`.`entities_id`=`glpi_entities`.`id`)\n                     WHERE `glpi_contracts`.`id`=`glpi_contracts_items`.`contracts_id`\n                           AND `glpi_contracts_items`.`items_id` = '{$id}'\n                           AND `glpi_contracts_items`.`itemtype` = '{$itemtype}'" . getEntitiesRestrictRequest(" AND", "glpi_contracts", '', '', true) . "\n                     ORDER BY `glpi_contracts`.`name`";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_contracts'][] = $data;
                 }
             }
         }
     }
     // retrieve item contracts
     if (isset($params['with_documents']) && $params['with_documents']) {
         $fields['_documents'] = array();
         if (!$itemtype != 'Ticket' && $itemtype != 'KnowbaseItem' && $itemtype != 'Reminder' && !Document::canView()) {
             $fields['_documents'] = self::arrayRightError();
         } else {
             $query = "SELECT `glpi_documents_items`.`id` AS assocID,\n                             `glpi_documents_items`.`date_mod` AS assocdate,\n                             `glpi_entities`.`id` AS entityID,\n                             `glpi_entities`.`completename` AS entity,\n                             `glpi_documentcategories`.`completename` AS headings,\n                             `glpi_documents`.*\n                      FROM `glpi_documents_items`\n                      LEFT JOIN `glpi_documents`\n                                ON (`glpi_documents_items`.`documents_id`=`glpi_documents`.`id`)\n                      LEFT JOIN `glpi_entities` ON (`glpi_documents`.`entities_id`=`glpi_entities`.`id`)\n                      LEFT JOIN `glpi_documentcategories`\n                              ON (`glpi_documents`.`documentcategories_id`=`glpi_documentcategories`.`id`)\n                      WHERE `glpi_documents_items`.`items_id` = '{$id}'\n                            AND `glpi_documents_items`.`itemtype` = '{$itemtype}' ";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_documents'][] = $data;
                 }
             }
         }
     }
     // retrieve item tickets
     if (isset($params['with_tickets']) && $params['with_tickets']) {
         $fields['_tickets'] = array();
         if (!Ticket::canView()) {
             $fields['_tickets'] = self::arrayRightError();
         } else {
             $query = "SELECT " . Ticket::getCommonSelect() . "\n                      FROM `glpi_tickets` " . Ticket::getCommonLeftJoin() . "\n                      WHERE `glpi_items_tickets`.`items_id` = '{$id}'\n                             AND `glpi_items_tickets`.`itemtype` = '{$itemtype}' " . getEntitiesRestrictRequest("AND", "glpi_tickets") . "\n                      ORDER BY `glpi_tickets`.`date_mod` DESC";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_tickets'][] = $data;
                 }
             }
         }
     }
     // retrieve item problems
     if (isset($params['with_problems']) && $params['with_problems']) {
         $fields['_problems'] = array();
         if (!Problem::canView()) {
             $fields['_problems'] = self::arrayRightError();
         } else {
             $query = "SELECT " . Problem::getCommonSelect() . "\n                            FROM `glpi_problems`\n                            LEFT JOIN `glpi_items_problems`\n                              ON (`glpi_problems`.`id` = `glpi_items_problems`.`problems_id`) " . Problem::getCommonLeftJoin() . "\n                            WHERE `items_id` = '{$id}'\n                                  AND `itemtype` = '{$itemtype}' " . getEntitiesRestrictRequest("AND", "glpi_problems") . "\n                            ORDER BY `glpi_problems`.`date_mod` DESC";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_problems'][] = $data;
                 }
             }
         }
     }
     // retrieve item changes
     if (isset($params['with_changes']) && $params['with_changes']) {
         $fields['_changes'] = array();
         if (!Change::canView()) {
             $fields['_changes'] = self::arrayRightError();
         } else {
             $query = "SELECT " . Change::getCommonSelect() . "\n                            FROM `glpi_changes`\n                            LEFT JOIN `glpi_changes_items`\n                              ON (`glpi_changes`.`id` = `glpi_changes_items`.`problems_id`) " . Change::getCommonLeftJoin() . "\n                            WHERE `items_id` = '{$id}'\n                                  AND `itemtype` = '{$itemtype}' " . getEntitiesRestrictRequest("AND", "glpi_changes") . "\n                            ORDER BY `glpi_changes`.`date_mod` DESC";
             if ($result = $DB->query($query)) {
                 while ($data = $DB->fetch_assoc($result)) {
                     $fields['_changes'][] = $data;
                 }
             }
         }
     }
     // retrieve item notes
     if (isset($params['with_notes']) && $params['with_notes']) {
         $fields['_notes'] = array();
         if (!Session::haveRight($itemtype::$rightname, READNOTE)) {
             $fields['_notes'] = self::arrayRightError();
         } else {
             $fields['_notes'] = Notepad::getAllForItem($itemtype);
         }
     }
     // retrieve item logs
     if (isset($params['with_logs']) && $params['with_logs']) {
         $fields['_logs'] = array();
         if (!Session::haveRight($itemtype::$rightname, READNOTE)) {
             $fields['_logs'] = self::arrayRightError();
         } else {
             $fields['_logs'] = getAllDatasFromTable("glpi_logs", "`items_id` = '" . $item->getID() . "'\n                                                    AND `itemtype` = '" . $item->getType() . "'");
         }
     }
     // expand dropdown (retrieve name of dropdowns) and get hateoas from foreign keys
     $fields = self::parseDropdowns($fields, $params);
     // get hateoas from children
     if ($params['get_hateoas']) {
         $hclasses = self::getHatoasClasses($itemtype);
         foreach ($hclasses as $hclass) {
             $fields['links'][] = array('rel' => $hclass, 'href' => self::$api_url . "/{$itemtype}/" . $item->getID() . "/{$hclass}/");
         }
     }
     return $fields;
 }