public function loadModel($id) { if (($model = Notepad::model()->findByPk($id)) === null) { throw new CHttpException(404, 'Страница не найдена'); } return $model; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
/** * 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']); } }
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; }
/** * 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; }
public function run() { $date = date("Y-m-d"); $models = Notepad::model()->active()->date($date)->findAll(); $this->render($this->view, array('models' => $models)); }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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);
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; }
/** * 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; }
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; }
/** * 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; }