CHANGELOG.md 30.9 KB
Newer Older
Johan Cwiklinski's avatar
Johan Cwiklinski committed
1
2
3
4
5
# GLPI changes

The present file will list all changes made to the project; according to the
[Keep a Changelog](http://keepachangelog.com/) project.

6
7
8
## [x.x.x] unreleased

### Added
9
- Added UUID to all other itemtypes that are related to Operating Systems (Phones, Printers, etc)
10
11
12

### Changed

Cédric Anne's avatar
Cédric Anne committed
13
14
15
### Deprecated
- Usage of XML-RPC API is deprecated.

Cédric Anne's avatar
Cédric Anne committed
16
17
18
### Removed
- Usage of alternative DB connection encoding (`DB::$dbenc` property).

19
20
21
22
23
### API changes

#### Added

#### Changes
24
- Format of `Message-Id` header sent in Tickets notifications changed to match format used by other items.
cconard96's avatar
cconard96 committed
25
- Added `DB::truncate()` to replace raw SQL queries
26
27

#### Deprecated
28
- Usage of `GLPI_FORCE_EMPTY_SQL_MODE` constant
29
- Usage of `CommonDBTM::notificationqueueonaction` property
Cédric Anne's avatar
Cédric Anne committed
30
- `DBmysql::getTableSchema()`
31
32
33
34
- `Calendar::duplicate()`
- `CommonDBTM::clone()`
- `CommonDBTM::prepareInputForClone()`
- `CommonDBTM::post_clone()`
35
- `Html::setRichTextContent()`
36
37
- `RuleImportComputer` class
- `RuleImportComputerCollection` class
38
39

#### Removed
40
- `Update::declareOldItems()`
41

Cédric Anne's avatar
Cédric Anne committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
- Usage of `$order` parameter in `getAllDataFromTable()` (`DbUtils::getAllDataFromTable()`)
- `$LOADED_PLUGINS` global variable
- `Computer_SoftwareLicense` class
- `Computer_SoftwareVersion` class
- `getAllDatasFromTable()`
- `getRealQueryForTreeItem()`
- `DBMysql::affected_rows()`
- `DBMysql::data_seek()`
- `DBMysql::fetch_array()`
- `DBMysql::fetch_assoc()`
- `DBMysql::fetch_object()`
- `DBMysql::fetch_row()`
- `DBMysql::field_name()`
- `DBMysql::free_result()`
- `DBMysql::insert_id()`
- `DBMysql::isMySQLStrictMode()`
- `DBMysql::list_fields()`
- `DBMysql::num_fields()`
- `DbUtils::getRealQueryForTreeItem()`
- `Calendar_Holiday::cloneCalendar()`
- `CalendarSegment::cloneCalendar()`
- `Change::getCommonLeftJoin()`
- `Change::getCommonSelect()`
- `CommonDBTM::getRawName()`
- `Computer_Item::cloneComputer()`
- `Computer_Item::cloneItem()`
- `ComputerAntivirus::cloneComputer()`
- `Config::checkWriteAccessToDirs()`
- `Config::displayCheckExtensions()`
- `Contract::cloneItem()`
- `ContractCost::cloneContract()`
- `Contract_Item::cloneItem()`
- `Document_Item::cloneItem()`
- `Html::jsDisable()`
- `Html::jsEnable()`
- `Infocom::cloneItem()`
- `Itil_Project::cloneItilProject()`
- `Item_Devices::cloneItem()`
- `Item_Disk::cloneItem()`
- `Item_OperatingSystem::cloneItem()`
- `Item_SoftwareLicense::cloneComputer()`
- `Item_SoftwareLicense::cloneItem()`
- `Item_SoftwareVersion::cloneComputer()`
- `Item_SoftwareVersion::cloneItem()`
- `Item_SoftwareVersion::showForComputer()`
- `Item_SoftwareVersion::updateDatasForComputer()`
- `KnowbaseItem_Item::cloneItem()`
- `NetworkPort::cloneItem()`
- `Notepad::cloneItem()`
- `Plugin::setLoaded()`
- `Plugin::setUnloaded()`
- `Plugin::setUnloadedByName()`
- `Problem::getCommonLeftJoin()`
- `Problem::getCommonSelect()`
- `ProjectCost::cloneProject()`
- `ProjectTeam::cloneProjectTask()`
- `ProjectTask::cloneProjectTeam()`
- `Ticket::getCommonLeftJoin()`
- `Ticket::getCommonSelect()`
- `Ticket::getTicketTemplateToUse()`
- `TicketTemplate::getFromDBWithDatas()`
- `Toolbox::canUseImapPop()`
- `Toolbox::checkSELinux()`
- `Toolbox::userErrorHandlerDebug()`
- `Toolbox::userErrorHandlerNormal()`
- `Transfer::transferComputerSoftwares()`

109
110
111
- `Reservation::displayReservationDay()`
- `Reservation::displayReservationsForAnItem()`

112
113

## [9.5.4] 2021-03-02
Cédric Anne's avatar
Cédric Anne committed
114
115
116
117
118

### Changed

- `iframe` elements are not anymore allowed in rich text unless `GLPI_ALLOW_IFRAME_IN_RICH_TEXT` constant is defined to `true`

119
120
121
122
123
124
### API changes

#### Deprecated

- `Search::getMetaReferenceItemtype()`

Johan Cwiklinski's avatar
Johan Cwiklinski committed
125
126
127
128
129
130
131
132
## [9.5.5] unreleased

### API changes

#### Changed

- Remove deprecation of `Search::getMetaReferenceItemtype()`

133
134
135
136
## [9.5.3] 2020-11-25

### Deprecated
- Usage of alternative DB connection encoding (`DB::$dbenc` property).
Johan Cwiklinski's avatar
Johan Cwiklinski committed
137

Johan Cwiklinski's avatar
Johan Cwiklinski committed
138
## [9.5.2] 2020-10-07
139
140
141
142
143
144

### API changes

#### Removed

- Ability to use SQL expressions as string in criterion values in SQL iterator (replaced by usage of `QueryExpression`).
145
- Ability to delete a plugin image using `/front/pluginimage.send.php` script.
146

147
## [9.5.1] 2020-07-16
148
149

## [9.5.0] 2020-07-07
150

Johan Cwiklinski's avatar
Johan Cwiklinski committed
151
### Added
152

153
154
155
- Encrypted file systems support.
- Mails collected from suppliers can be marked as private on an entity basis.
- Ability to add custom CSS in entity configuration.
156
- CLI commands to enable and disable maintenance mode.
157
- Operating system links on Monitors, Peripherals, Phones and Printers.
158
- Add datacenter items to global search
159
- Project task search options for Projects
160
- Automatic action to purge closed tickets
161
- Ability to automatically calculate project's percent done
cconard96's avatar
cconard96 committed
162
- Software link on Phones.
cconard96's avatar
cconard96 committed
163
- Add and answer approvals from timeline
164
- Add lightbox with PhotoSwipe to timeline images
165
- Ability to copy tasks while merging tickets
166
- the API gives the ID of the user who logs in with initSession
cconard96's avatar
cconard96 committed
167
- Kanban view for projects
168
- Network ports on Monitors
cconard96's avatar
cconard96 committed
169
- Add warning when there are unsaved changes in forms
170
171
- Add ability to get information from the status endpoint in JSON format using Accept header
- Add `glpi:system:status` CLI command for getting the GLPI status
172

173
174
### Changed

175
- PHP error_reporting and display_errors configuration directives are no longer overrided by GLPI, unless in debug mode (which forces reporting and display of all errors).
176
- `scripts/migrations/racks_plugin.php` has been replaced by `glpi:migration:racks_plugin_to_core` command available using `bin/console`
177
- Encryption alogithm improved using libsodium
Johan Cwiklinski's avatar
Johan Cwiklinski committed
178
179
180

### API changes

Cédric Anne's avatar
Cédric Anne committed
181
182
#### Added

183
- Add translation functions `__()`,  `_n()`,  `_x()` and  `_nx()` in javascript in browser context.
Cédric Anne's avatar
Cédric Anne committed
184
- `Migration::renameItemtype()` method to update of database schema/values when an itemtype class is renamed
185
- Menu returned by `CommonGLPI::getMenuContent()` method override may now define an icon for each menu entry.
flonou's avatar
flonou committed
186
187
188
189
190
- `CommonDBConnexity::getItemsAssociatedTo()` method to get the items associated to the given one
- `CommonDBConnexity::getItemsAssociationRequest()` method to get the DB request to use to get the items associated to the given one
- `CommonDBTM::clone()` method to clone the current item
- `CommonDBTM::prepareInputForClone()` method to modify the input data that will be used for the cloning
- `CommonDBTM::post_clone()` method to perform other steps after an item has been cloned (like clone the elements it is associated to)
Cédric Anne's avatar
Cédric Anne committed
191

192
193
#### Changes

194
- jQuery library has been upgraded from 2.2.x to 3.4.x. jQuery Migrate is used to ensure backward compatibility in most cases.
195
- `DBmysqlIterator::handleOrderClause()` supports QueryExpressions
196
- Use Laminas instead of deprecated ZendFramework
197
198
199
- Database datetime fields have been replaced by timestamp fields to handle timezones support.
- Database integer/float fields values are now returned as number instead of strings from DB read operations.
- Field `domains_id` of Computer, NetworkEquipment and Printer has been dropped and data has been transfered into `glpi_domains_items` table.
200
201
202
- Plugin status hook can now be used to provide an array with more information about the plugin's status the status of any child services.
    - Returned array should contain a 'status' value at least (See status values in Glpi\System\Status\StatusChecker)
    - Old style returns are still supported
203

Johan Cwiklinski's avatar
Johan Cwiklinski committed
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#### Deprecated

- `DBMysql::fetch_array()`
- `DBMysql::fetch_row()`
- `DBMysql::fetch_assoc()`
- `DBMysql::fetch_object()`
- `DBMysql::data_seek()`
- `DBMysql::insert_id()`
- `DBMysql::num_fields()`
- `DBMysql::field_name()`
- `DBMysql::list_fields()`
- `DBMysql::affected_rows()`
- `DBMysql::free_result()`
- `DBMysql::isMySQLStrictMode()`
218
219
- `getAllDatasFromTable` renamed to `getAllDataFromTable()`
- Usage of `$order` parameter in `getAllDataFromTable()` (`DbUtils::getAllDataFromTable()`)
220
- `Ticket::getTicketTemplateToUse()` renamed to `Ticket::getITILTemplateToUse()`
Cédric Anne's avatar
Cédric Anne committed
221
222
223
- `TicketTemplate::getFromDBWithDatas()` renamed to `TicketTemplate::getFromDBWithData()` (inherited from `ITILTemplate`)
- `Computer_SoftwareLicense` replaced by `Item_SoftwareLicense` and table `glpi_computers_softwarelicenses` renamed to `glpi_items_softwarelicenses`
- `Computer_SoftwareVersion` replaced by `Item_SoftwareVersion` and table `glpi_computers_softwareversions` renamed to `glpi_items_softwareversions`
cconard96's avatar
cconard96 committed
224
225
226
227
228
229
- `Item_SoftwareVersion::updateDatasForComputer` renamed to `Item_SoftwareVersion::updateDatasForItem`
- `Item_SoftwareVersion::showForComputer` renamed to `Item_SoftwareVersion::showForItem`
- `Item_SoftwareVersion::softsByCategory` renamed to `Item_SoftwareVersion::softwareByCategory`
- `Item_SoftwareVersion::displaySoftsByLicense` renamed to `Item_SoftwareVersion::displaySoftwareByLicense`
- `Item_SoftwareVersion::cloneComputer` renamed to `Item_SoftwareVersion::cloneItem`
- `Transfer::transferComputerSoftwares` renamed to `Transfer::transferItemSoftwares`
230
231
- 'getRealQueryForTreeItem()'
- ``getCommonSelect`` and ``getCommonLeftJoin()`` from ``Ticket``, ``Change`` and ``Problem`` are replaced with ``getCommonCriteria()`` compliant with db iterator
232
233
234
- `Config::checkWriteAccessToDirs()`
- `Config::displayCheckExtensions()`
- `Toolbox::checkSELinux()`
235
236
- `Toolbox::userErrorHandlerDebug()`
- `Toolbox::userErrorHandlerNormal()`
237
238
- `Html::jsDisable()`
- `Html::jsEnable()`
239
240
241
242
- `Plugin::setLoaded()`
- `Plugin::setUnloaded()`
- `Plugin::setUnloadedByName()`
- Usage of `$LOADED_PLUGINS` global variable
243
- `CommonDBTM::getRawName()` replaced by `CommonDBTM::getFriendlyName()`
flonou's avatar
flonou committed
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
- `Calendar_Holiday::cloneCalendar()`
- `CalendarSegment::cloneCalendar()`
- `Computer_Item::cloneComputer()`
- `Computer_Item::cloneItem()`
- `ComputerAntivirus::cloneComputer()`
- `Contract::cloneItem()`
- `Contract_Item::cloneItem()`
- `ContractCost::cloneContract()`
- `Document_Item::cloneItem()`
- `Infocom::cloneItem()`
- `Item_Devices::cloneItem()`
- `Item_Disk::cloneItem()`
- `Item_OperatingSystem::cloneItem()`
- `Item_SoftwareLicense::cloneComputer()`
- `Item_SoftwareLicense::cloneItem()`
- `Item_SoftwareVersion::cloneComputer()`
- `Item_SoftwareVersion::cloneItem()`
- `Itil_Project::cloneItilProject()`
- `KnowbaseItem_Item::cloneItem()`
- `NetworkPort::cloneItem()`
- `Notepad::cloneItem()`
- `ProjectCost::cloneProject()`
- `ProjectTeam::cloneProjectTask()`
- `ProjectTask::cloneProjectTeam()`
268
- Usage of `GLPIKEY` constant
Cédric Anne's avatar
Cédric Anne committed
269
- `Toolbox::encrypt()` and `Toolbox::decrypt()` because they use the old encryption algorithm
Johan Cwiklinski's avatar
Johan Cwiklinski committed
270

271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
#### Removed

- Usage of string `$condition` parameter in `CommonDBTM::find()`
- Usage of string `$condition` parameter in `Dropdown::addNewCondition()`
- Usage of string in `$option['condition']` parameter in `Dropdown::show()`
- `KnowbaseItemCategory::showFirstLevel()`
- `Ticket::getTicketActors()`
- `NotificationTarget::getProfileJoinSql()`
- `NotificationTarget::getDistinctUserSql()`
- `NotificationTargetCommonITILObject::getProfileJoinSql()`
- `RuleCollection::getRuleListQuery()`
- `getNextItem()`
- `getPreviousItem()`
- `CommonDBChild::getSQLRequestToSearchForItem()`
- `CommonDBConnexity::getSQLRequestToSearchForItem()`
- `CommonDBRelation::getSQLRequestToSearchForItem()`
- `Project::addVisibility()`
- `Project::addVisibilityJoins()`
289
290
291
292
- `Plugin::hasBeenInit()`
- 'SELECT DISTINCT' and 'DISTINCT FIELDS' criteria in `DBmysqlIterator::buildQuery()`
- `CommonDBTM::getTablesOf()`
- `CommonDBTM::getForeignKeyFieldsOf()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
293
294
295
296
- `TicketFollowup`
- `getDateRequest` and `DbUtils::getDateRequest()`
- `Html::convertTagFromRichTextToImageTag()`
- `Transfer::createSearchConditionUsingArray()`
297
- Unused constants GLPI_FONT_FREESANS and GLPI_SCRIPT_DIR
298

299
300
301
## [9.4.6] 2020-05-05

## [9.4.5] 2019-12-18
302

303
## [9.4.4] 2019-09-24
Cédric Anne's avatar
Cédric Anne committed
304
305
306
307
308
309
310

### API changes

#### Changes
- For security reasons, autocompletion feature requires now to be authorized by a `'autocomplete' => true` flag in corresponding field search option.

## [9.4.3] 2019-06-20
311

312
313
314
315
316
317
318
319
### API changes

#### Deprecated

The following methods have been deprecated:

- `Html::convertTagFromRichTextToImageTag()`

320
## [9.4.2] 2019-04-11
321
322
323
324
325
326
327
328
329
330
331

### API changes

#### Deprecated

The following methods have been deprecated:

- `CommonDBTM::getTablesOf()`
- `CommonDBTM::getForeignKeyFieldsOf()`

## [9.4.1] 2019-03-15
332

333
334
335
### API changes

#### Added
336
337

- new display hook `timeline_actions` to add new buttons to timeline forms
cconard96's avatar
cconard96 committed
338
- Ability to copy document links while merging tickets
339

340
341
342
343
344
#### Deprecated

The following methods have been deprecated:

- `Plugin::hasBeenInit()`
345
- Deprecate 'SELECT DISTINCT' and 'DISTINCT FIELDS' criteria in `DBmysqlIterator::buildQuery()`
346

347
348
349
350
351
#### Removed

- Drop `CommonITILObject::showSolutions()`.

## [9.4.0] 2019-02-11
Johan Cwiklinski's avatar
Johan Cwiklinski committed
352

353
### Added
cconard96's avatar
cconard96 committed
354

355
- Ability to link project with problems and tickets.
356
- Ability to specify creation and modification dates during CommonDBTM object add method
357
358
359
360
- Add followups to Changes and Problems.
- Add timeline to Changes and Problems.
- CLI console to centralize CLI commands.
- Search on devices from Printers and Network equipments.
361
362
- Ability to merge and split tickets.
- Search on devices from Printers and Network equipments.
363
- Ability to specify creation and modification dates during CommonDBTM object add method.
364

Johan Cwiklinski's avatar
Johan Cwiklinski committed
365
366
### Changed
- `license_id` field in `glpi_items_operatingsystems` table has been renamed to `licenseid`
367
368
369
370
371
372
- `olas_tto_id` field in `glpi_tickets` table has been renamed to `olas_id_tto`
- `olas_ttr_id` field in `glpi_tickets` table has been renamed to `olas_id_ttr`
- `ttr_olalevels_id` field in `glpi_tickets` table has been renamed to `olalevels_id_ttr`
- `slas_tto_id` field in `glpi_tickets` table has been renamed to `slas_id_tto`
- `slas_ttr_id` field in `glpi_tickets` table has been renamed to `slas_id_ttr`
- `ttr_slalevels_id` field in `glpi_tickets` table has been renamed to `slalevels_id_ttr`
373
- `scripts/add_creation_date.php` has been replaced by `glpi:migration:build_missing_timestamps` command available using `bin/console`
374
- `scripts/checkdb.php` has been replaced by `glpi:database:check` command available using `bin/console`
375
- `scripts/cliinstall.php` has been replaced by `glpi:database:install` command available using `bin/console`
376
- `scripts/cliupdate.php` has been replaced by `glpi:database:update` command available using `bin/console`
Cédric Anne's avatar
Cédric Anne committed
377
- `scripts/ldap_mass_sync.php` has been replaced by `glpi:ldap:synchronize_users` command available using `bin/console`
378
- `scripts/innodb_migration.php` has been replaced by `glpi:migration:myisam_to_innodb` command available using `bin/console`
379
- `scripts/unlock_tasks.php` has been replaced by `glpi:task:unlock` command available using `bin/console`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
380

Johan Cwiklinski's avatar
Johan Cwiklinski committed
381
382
### API changes

Cédric Anne's avatar
Cédric Anne committed
383
384
#### Changes
- Plugins are now loaded in ajax files.
Cédric Anne's avatar
Cédric Anne committed
385
- `TicketFollowup` has been replaced by `ITILFollowup`
386
387
388
389
390
- `$num` parameter has been removed from several `Search` class methods:
   - `addSelect()`,
   - `addOrderBy()`,
   - `addHaving()`,
   - `giveItem()`
391
- `NotificationTarget::getMode()` visibility is now `public`.
392
- Added `add_recipient_to_target` hook, triggered when a recipient is added to a notification.
Cédric Anne's avatar
Cédric Anne committed
393

394
395
396
#### Deprecated

- Remove `$CFG_GLPI['use_rich_text']` parameter. Will now be `true` per default.
397
398
- Remove `$CFG_GLPI['ticket_timeline']` parameter. Will now be `true` per default.
- Remove `$CFG_GLPI['ticket_timeline_keep_replaced_tabs']` parameter. Will now be `false` per default.
Cédric Anne's avatar
Cédric Anne committed
399
- Usage of `TicketFollowup` class has been deprecated.
400
401
402
- Usage of string `$condition` parameter in `CommonDBTM::find()` has been deprecated.
- Usage of string `$condition` parameter in `Dropdown::addNewCondition()` has been deprecated.
- Usage of string in `$option['condition']` parameter in `Dropdown::show()` has been deprecated.
Cédric Anne's avatar
Cédric Anne committed
403
404
405

The following methods have been deprecated:

406
- `KnowbaseItemCategory::showFirstLevel()`
Cédric Anne's avatar
Cédric Anne committed
407
408
409
410
- `Ticket::getTicketActors()`
- `Ticket::processMassiveActionsForOneItemtype()`
- `Ticket::showFormMassiveAction()`
- `Ticket::showMassiveActionsSubForm()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
411
412
- `NotificationTarget::getProfileJoinSql()`
- `NotificationTarget::getDistinctUserSql()`
413
- `NotificationTargetCommonITILObject::getProfileJoinSql()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
414
- `RuleCollection::getRuleListQuery()`
415
416
- `getNextItem()`
- `getPreviousItem()`
417
418
419
- `CommonDBChild::getSQLRequestToSearchForItem()`
- `CommonDBConnexity::getSQLRequestToSearchForItem()`
- `CommonDBRelation::getSQLRequestToSearchForItem()`
420
421
- `Project::addVisibility()`
- `Project::addVisibilityJoins()`
422

Johan Cwiklinski's avatar
Johan Cwiklinski committed
423
424
#### Removed

425
426
427
428
- Drop ability to use `JOIN` in `DBmysqlIterator::buildQuery()`
- Drop `NotificationTarget::datas` property
- Drop support of string `$filter` parameter in `Profileuser::getUserProfiles()`
- Drop support of string `$condition` parameter in `User::getFromDBbyEmail()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
429
430
431
432
433
434
435
- Drop support of string `$condition` parameter in `Group_User::getUserGroups()`
- Drop support of string `$condition` parameter in `Group_User::getGroupUsers()`
- Drop support of string `$condition` parameter in `countElementsInTable` (`DbUtils::countElementsInTable()`)
- Drop support of string `$condition` parameter in `countDistinctElementsInTable` (`DbUtils::countDistinctElementsInTable()`)
- Drop support of string `$condition` parameter in `countElementsInTableForMyEntities` (`DbUtils::countElementsInTableForMyEntities()`)
- Drop support of string `$condition` parameter in `countElementsInTableForEntity` (`DbUtils::countElementsInTableForEntity()`)
- Drop support of string `$condition` parameter in `getAllDatasFromTable` (`DbUtils::getAllDataFromTable()`)
Johan Cwiklinski's avatar
Johan Cwiklinski committed
436
- Drop ITIL Tasks, Followups and Solutions `showSummary()` and massive actions related methods that are replaced with timeline
Johan Cwiklinski's avatar
Johan Cwiklinski committed
437

Cédric Anne's avatar
Cédric Anne committed
438
- Drop class alias `Event` for `Glpi\Event`
439
- Drop `Zend\Loader\SplAutoloader` interface
Johan Cwiklinski's avatar
Johan Cwiklinski committed
440
- Drop all methods that have been deprecated in GLPI 9.2
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
  - `_e()`
  - `_ex()`
  - `FieldExists()`
  - `formatOutputWebLink()`
  - `TableExists()`
  - `CommonTreeDropodwn::recursiveCleanSonsAboveID()`
  - `DBMysql::optimize_tables()`
  - `NotificationTarget::addToAddressesList()`
  - `NotificationTarget::getAdditionalTargets()`
  - `NotificationTarget::getAddressesByGroup()`
  - `NotificationTarget::getAddressesByTarget()`
  - `NotificationTarget::getAdminAddress()`
  - `NotificationTarget::getEntityAdminAddress()`
  - `NotificationTarget::getItemAuthorAddress()`
  - `NotificationTarget::getItemGroupAddress()`
  - `NotificationTarget::getItemGroupSupervisorAddress()`
  - `NotificationTarget::getItemGroupTechInChargeAddress()`
  - `NotificationTarget::getItemGroupWithoutSupervisorAddress()`
  - `NotificationTarget::getItemOwnerAddress()`
  - `NotificationTarget::getItemTechnicianInChargeAddress()`
  - `NotificationTarget::getNotificationTargets()`
  - `NotificationTarget::getSpecificTargets()`
  - `NotificationTarget::getUserByField()`
  - `NotificationTarget::getUsersAddressesByProfile()`
  - `NotificationTargetCommonITILObject::getDatasForObject()`
  - `NotificationTargetCommonITILObject::getFollowupAuthor()`
  - `NotificationTargetCommonITILObject::getLinkedGroupByType()`
  - `NotificationTargetCommonITILObject::getLinkedGroupSupervisorByType()`
  - `NotificationTargetCommonITILObject::getLinkedGroupWithoutSupervisorByType()`
  - `NotificationTargetCommonITILObject::getLinkedUserByType()`
  - `NotificationTargetCommonITILObject::getOldAssignTechnicianAddress()`
  - `NotificationTargetCommonITILObject::getRecipientAddress()`
  - `NotificationTargetCommonITILObject::getSupplierAddress()`
  - `NotificationTargetCommonITILObject::getTaskAssignGroup()`
  - `NotificationTargetCommonITILObject::getTaskAssignUser()`
  - `NotificationTargetCommonITILObject::getTaskAuthor()`
  - `NotificationTargetCommonITILObject::getValidationApproverAddress()`
  - `NotificationTargetCommonITILObject::getValidationRequesterAddress()`
  - `NotificationTargetProjectTask::getTeamContacts()`
  - `NotificationTargetProjectTask::getTeamGroups()`
  - `NotificationTargetProjectTask::getTeamSuppliers()`
  - `NotificationTargetProjectTask::getTeamUsers()`
  - `QueuedNotification::sendMailById()`
  - `Ticket::convertContentForNotification()`
  - `User::getPersonalToken()`
  - `User::getUniquePersonalToken()`
487
- Drop all methods that have been deprecated in GLPI 9.3.0
488
489
490
  - `CommonDBTM::getFromDBByQuery()`
  - `CommonDBTM::getSearchOptions()`
  - `CommonDBTM::getSearchOptionsNew()`
491
  - `CommonDBTM::getSearchOptionsToAddNew()`
492
493
494
495
496
497
498
499
500
501
  - `CommonITILObject::getStatusIconURL()`
  - `DBMysql::list_tables()`
  - `Dropdown::showPrivatePublicSwitch()`
  - `NotificationTargetProjectTask::getTeamContacts()`
  - `NotificationTargetProjectTask::getTeamGroups()`
  - `NotificationTargetProjectTask::getTeamSuppliers()`
  - `NotificationTargetProjectTask::getTeamUsers()`
  - `Search::constructDatas()`
  - `Search::displayDatas()`
  - `Transfer::transferComputerDisks()`
502
503
504
505
- Drop all methods that have been deprecated in GLPI 9.3.1
  - `ComputerVirtualMachine::getUUIDRestrictRequest()`
  - `Config::getSQLMode()`
  - `DBMysql::checkForCrashedTables()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
506
507
508
  - `Html::checkAllAsCheckbox()`
  - `Html::scriptEnd()`
  - `Html::scriptStart()`
509
  - `Plugin::isAllPluginsCSRFCompliant()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
510
  - `Profile::getUnderActiveProfileRestrictRequest()`
511
512
  - `Toolbox::is_a()`
- Drop all constants that have been deprecated in GLPI 9.3.1
Cédric Anne's avatar
Cédric Anne committed
513
514
515
516
517
  - `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
  - `CommonDBTM::HAS_DUPLICATE`
  - `CommonDBTM::NOTHING_TO_DO`
  - `CommonDBTM::SUCCESS`
  - `CommonDBTM::TYPE_MISMATCH`
518
519
- Drop all methods that have been deprecated in GLPI 9.3.2
 - `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
520
 - `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
521

Johan Cwiklinski's avatar
Johan Cwiklinski committed
522
## [9.3.3] 2018-11-27
Johan Cwiklinski's avatar
Johan Cwiklinski committed
523

Johan Cwiklinski's avatar
Johan Cwiklinski committed
524
525
526
527
528
529
530
531
532
533
534
535
### Changed

- Fix some cache issues
- Fix reservation tab of an item
- Fix actors notifications massive action
- Improve racks plugins migration script

### API changes

No API changes.

## [9.3.2] 2018-10-26
536
537
538

### API changes

539
540
541
#### Changed

- `Rule::executePluginsActions()` signature has changed
542
- Javascript function `formatResult()` has been renamed to `templateResult()`
543

544
545
546
547
#### Deprecated

The following methods have been deprecated:

Johan Cwiklinski's avatar
Johan Cwiklinski committed
548
549
550
551
- `CommonITILTask::displayTabContentForItem()`
- `CommonITILTask::showFormMassiveAction()`
- `CommonITILTask::showSummary()`
- `ITILSolution::displayTabContentForItem()`
552
- `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
553
- `ITILSolution::showSummary()`
554
- `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
555
556
557
558
- `TicketFollowup::processMassiveActionsForOneItemtype()`
- `TicketFollowup::showFormMassiveAction()`
- `TicketFollowup::showMassiveActionsSubForm()`
- `TicketFollowup::showSummary()`
559
- `Plugin::removeFromSession()`
560
561

## [9.3.1] 2018-09-12
Johan Cwiklinski's avatar
Johan Cwiklinski committed
562

Johan Cwiklinski's avatar
Johan Cwiklinski committed
563
564
565
### Added
- List receivers folders to choose imported/refused folders

Johan Cwiklinski's avatar
Johan Cwiklinski committed
566
567
568
569
### API changes

#### Deprecated

570
571
- Usage of string `$condition` parameter in `Group_User::getUserGroups()` has been deprecated
- Usage of string `$condition` parameter in `Group_User::getGroupUsers()` has been deprecated
572
573
574
575
576
- Usage of string `$condition` parameter in `countElementsInTable` (`DbUtils::countElementsInTable()`) has been deprecated
- Usage of string `$condition` parameter in `countDistinctElementsInTable` (`DbUtils::countDistinctElementsInTable()`) has been deprecated
- Usage of string `$condition` parameter in `countElementsInTableForMyEntities` (`DbUtils::countElementsInTableForMyEntities()`) has been deprecated
- Usage of string `$condition` parameter in `countElementsInTableForEntity` (`DbUtils::countElementsInTableForEntity()`) has been deprecated
- Usage of string `$condition` parameter in `getAllDatasFromTable` (`DbUtils::getAllDataFromTable()`) has been deprecated
577

Johan Cwiklinski's avatar
Johan Cwiklinski committed
578
579
The following methods have been deprecated:

580
- `Config::getSQLMode()`
581
- `DBMysql::checkForCrashedTables()`
582
- `Html::checkAllAsCheckbox()`
583
584
- `Html::scriptEnd()`
- `Html::scriptStart()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
585
- `Toolbox::is_a()`
586
- `ComputerVirtualMachine::getUUIDRestrictRequest()`
587
588
- `Plugin::isAllPluginsCSRFCompliant()`
- `Profile::getUnderActiveProfileRestrictRequest()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
589

590
591
592
593
594
595
596
The following constants have been deprecated:
- `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
- `CommonDBTM::HAS_DUPLICATE`
- `CommonDBTM::NOTHING_TO_DO`
- `CommonDBTM::SUCCESS`
- `CommonDBTM::TYPE_MISMATCH`

597
## [9.3.0] 2018-06-28
Johan Cwiklinski's avatar
Johan Cwiklinski committed
598
599
600
601
602
603
604

### Added
- Add DCIM management
- Add OSM view to set locations and on Search
- Add login source selection
- Add logs purge
- Filter in items logs
605
606

### Changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
607
- Switch MySQL engine from MyIsam to Innodb
608
- Rework solutions for Tickets, Problems and Changes to support history
Johan Cwiklinski's avatar
Johan Cwiklinski committed
609
- Disks can be attached to network equipments and printers
610
611
612
613

### API changes

#### Changes
614
- Added `DB::insert()`, `DB::update()` and `DB::delete()` to replace raw SQL queries
615
- `CommonITILObject::showMassiveSolutionForm()` now takes a `CommonITILObject` as argument
616
617
- `Profileuser::getUserProfiles()` `$filter` parameter is now an array
- `User::getFromDBbyEmail()` `$condition` parameter is now an array
618
- Select2 javascript component has been upgraded to 4.0 version, see [Migrating from Select2 3.5](https://select2.org/upgrading/migrating-from-35)
619
- `CommonDevice::getItem_DeviceType()` has a new optional `$devicetype` parameter
620
621
622

#### Deprecated

623
624
625
- Usage of string `$filter` parameter in `Profileuser::getUserProfiles()` has been deprecated
- Usage of string `$condition` parameter in `User::getFromDBbyEmail()` has been deprecated

626
627
The following methods have been deprecated:

628
- `CommonDBTM::getFromDBByQuery()`
629
630
631
632
633
634
- `CommonDBTM::getSearchOptions()`
- `CommonDBTM::getSearchOptionsNew()`
- `CommonDBTM::getSearchOptionsToAddNew()`
- `CommonITILObject::getStatusIconURL()`
- `DBMysql::list_tables()`
- `Dropdown::showPrivatePublicSwitch()`
635
636
637
638
- `NotificationTargetProject::getTeamContacts()`
- `NotificationTargetProject::getTeamGroups()`
- `NotificationTargetProject::getTeamSuppliers()`
- `NotificationTargetProject::getTeamUsers()`
639
640
641
- `Search::constructDatas()`
- `Search::displayDatas()`
- `Transfer::transferComputerDisks()`
642

643
644
645
646
#### Removed

- `CommonITILValidation::isAllValidationsHaveSameStatusForTicket`
- `CommonITILValidation::getNumberValidationForTicket`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
647
648
649
- PHPCas library is no longer provided (for licensing issues)

## [9.2.4] 2018-06-21
650

Johan Cwiklinski's avatar
Johan Cwiklinski committed
651
## [9.2.3] 2018-04-27
652

Johan Cwiklinski's avatar
Johan Cwiklinski committed
653
## [9.2.2] 2018-03-01
654

Johan Cwiklinski's avatar
Johan Cwiklinski committed
655

656
657
658
659
660
### Deprecated

- `CommonITILValidation::isAllValidationsHaveSameStatusForTicket`
- `CommonITILValidation::getNumberValidationForTicket`
- `DBMysql::optimize_tables()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
661

Johan Cwiklinski's avatar
Johan Cwiklinski committed
662
## [9.2.1] 2017-11-16
663
664

### Added
665

666
667
- Search engine, added ``itemtype_item_revert`` jointype

668
669
670
671
### Deprecated

- `Ticket::convertContentForNotification()`

672
## [9.2] 2017-09-25
Johan Cwiklinski's avatar
Johan Cwiklinski committed
673
674
675
676
677

### Added
- Link knowledge base entries with assets or tickets
- Revisions on knowledge base entries and their translations, with diff view
- Add recursive comments on knowledge base entries
678
- Direct links to KB article's title for a direct access
679
- Load minified CSS and JS files (core and plugins) that are generated on release
Johan Cwiklinski's avatar
Johan Cwiklinski committed
680
- Link beetween software licenses
Johan Cwiklinski's avatar
Johan Cwiklinski committed
681
- Alerts on saved searches
Johan Cwiklinski's avatar
Johan Cwiklinski committed
682
683
- Add ajax browsers notifications in addition to emails
- Plugins can now add new notifications types (xmpp, sms, telegram, ...) to be used along with standard notifications
Thierry Bugier Pineau's avatar
Thierry Bugier Pineau committed
684
- Simcard component
Johan Cwiklinski's avatar
Johan Cwiklinski committed
685
- Synchronization field for LDAP
686
687
688
689
690
691
692
693
694
695
- Improved performances on large entities databases
- Remember me on login
- Fuzzy search
- Paste images in rich text editor
- Add tasks in tickets templates
- Composite tickets (link on sons/parents)
- Telemetry
- Certificates component
- Firmwares components (BIOSes, firwmwares, ...)
- Add OLA management
Johan Cwiklinski's avatar
Johan Cwiklinski committed
696
697

### Changed
698
- Many bugs have been fixed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
699
700
- Display knowledge base category items in tickets using a popup instead of a
new whole window
701
- Reviewed all richtext editor (tinymce) and their upload parts, now more simpler and intuitive
702
- Don't ask user to select a template if there is no configured template
703
704
705
706
- personal_token is not used anymore for api authentication, a new api_token field has been added (empty by default, you should regenerate it)
- Operating systems management has been improved
- Direct language change from any page
- Better icons harmonization
Johan Cwiklinski's avatar
Johan Cwiklinski committed
707

708
709
### API changes

710
711
712
#### Changes

- `CommonDBTM::getTable()` signature has changed
713
- `User::getFromDBbyToken()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
714
- `Bookmark` has been renamed to `SavedSearch`
715
- Update to latest jsTree plugin
716
- `RuleDictionnarySoftwareCollection::versionExists()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
717
718
- `NotificationTemplate::getDataToSend()` signature has changed
- `QueuedMail` has been renamed to `QueuedNotification`
719
- `CommonDBTM::mailqueueonaction` has been renamed to `CommonDBTM::notificationqueueonaction`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
720
- `NotificationTarget::getSender()` no longer takes any parameters (was not used)
Johan Cwiklinski's avatar
Johan Cwiklinski committed
721
722
723
- `TableExists()` has been moved to `DBMysql::tableExists()`
- `FieldExists()` has been moved to `DBMysql::fieldExists()`
- `Profile_User::getUserEntitiesForRight()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
724
- `NotificationTarget` property `datas` has been renamed to `data`
725

726
727
#### Deprecated

728
729
730
731
- Ability to use `JOIN` in `DBmysqlIterator::buildQuery()` has been deprecated
- Usage of `NotificationTarget::datas` property has been deprecated
- Usage of `Zend\Loader\SplAutoloader` interface has been deprecated

732
733
734
735
The following methods have been deprecated:

- `_e()`
- `_ex()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
736
737
- `Bookmark::mark_default()`
- `Bookmark::unmark_default()`
738
- `CommonTreeDropodwn::recursiveCleanSonsAboveID()`
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
- `NotificationTarget::addToAddressesList()`
- `NotificationTarget::getAdditionalTargets()`
- `NotificationTarget::getAddressesByGroup()`
- `NotificationTarget::getAddressesByTarget()`
- `NotificationTarget::getAdminAddress()`
- `NotificationTarget::getEntityAdminAddress()`
- `NotificationTarget::getItemAuthorAddress()`
- `NotificationTarget::getItemGroupAddress()`
- `NotificationTarget::getItemGroupSupervisorAddress()`
- `NotificationTarget::getItemGroupTechInChargeAddress()`
- `NotificationTarget::getItemGroupWithoutSupervisorAddress()`
- `NotificationTarget::getItemOwnerAddress()`
- `NotificationTarget::getItemTechnicianInChargeAddress()`
- `NotificationTarget::getNotificationTargets()`
- `NotificationTarget::getSpecificTargets()`
- `NotificationTarget::getUserByField()`
- `NotificationTarget::getUsersAddressesByProfile()`
- `NotificationTargetCommonITILObject::getDatasForObject()`
- `NotificationTargetCommonITILObject::getFollowupAuthor()`
- `NotificationTargetCommonITILObject::getLinkedGroupByType()`
- `NotificationTargetCommonITILObject::getLinkedGroupSupervisorByType()`
- `NotificationTargetCommonITILObject::getLinkedGroupWithoutSupervisorByType()`
- `NotificationTargetCommonITILObject::getLinkedUserByType()`
- `NotificationTargetCommonITILObject::getOldAssignTechnicianAddress()`
- `NotificationTargetCommonITILObject::getRecipientAddress()`
- `NotificationTargetCommonITILObject::getSupplierAddress()`
- `NotificationTargetCommonITILObject::getTaskAssignGroup()`
- `NotificationTargetCommonITILObject::getTaskAssignUser()`
- `NotificationTargetCommonITILObject::getTaskAuthor()`
- `NotificationTargetCommonITILObject::getValidationApproverAddress()`
- `NotificationTargetCommonITILObject::getValidationRequesterAddress()`
- `NotificationTargetProjectTask::getTeamContacts()`
- `NotificationTargetProjectTask::getTeamGroups()`
- `NotificationTargetProjectTask::getTeamSuppliers()`
- `NotificationTargetProjectTask::getTeamUsers()`
- `QueuedNotification::sendMailById()`
- `User::getPersonalToken()`
- `User::getUniquePersonalToken()`
777
- `formatOutputWebLink()`
778
779
780
781
782

#### Removals

The following methods have been dropped:

yllen's avatar
yllen committed
783
784
785
786
- `Ajax::displaySearchTextForDropdown()`
- `Ajax::getSearchTextForDropdown()`
- `Bookmark::changeBookmarkOrder()`
- `Bookmark::moveBookmark()`
787
788
789
790
- `CommonGLPI::addDivForTabs()`
- `CommonGLPI::showTabs()`
- `CommonGLPI::showNavigationHeaderOld()`
- `CommonGLPI::show()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
791
- `Dropdown::showInteger()`
792
- `DBMysql::field_flags()`
yllen's avatar
yllen committed
793
794
795
- `Html::showDateFormItem()`
- `Html::showDateTimeFormItem()`
- `Profile::dropdownNoneReadWrite()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
796
797
- `Toolbox::get_magic_quotes_runtime()`
- `Toolbox::get_magic_quotes_gpc()`
798
- `Dropdown::showAllItems()`
799

Johan Cwiklinski's avatar
Johan Cwiklinski committed
800
For older entries, please check [GLPI website](http://glpi-project.org).