CHANGELOG.md 27.2 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
9
10
11
12
13
14
15
16
17
18
19
20
21
## [x.x.x] unreleased

### Added

### Changed

### API changes

#### Added

#### Changes

#### Deprecated

#### Removed

22
23
24
## [9.5.1] unreleased

## [9.5.0] 2020-07-07
25

Johan Cwiklinski's avatar
Johan Cwiklinski committed
26
### Added
27

28
29
30
- 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.
31
- CLI commands to enable and disable maintenance mode.
32
- Operating system links on Monitors, Peripherals, Phones and Printers.
33
- Add datacenter items to global search
34
- Project task search options for Projects
35
- Automatic action to purge closed tickets
36
- Ability to automatically calculate project's percent done
cconard96's avatar
cconard96 committed
37
- Software link on Phones.
cconard96's avatar
cconard96 committed
38
- Add and answer approvals from timeline
39
- Add lightbox with PhotoSwipe to timeline images
40
- Ability to copy tasks while merging tickets
41
- the API gives the ID of the user who logs in with initSession
cconard96's avatar
cconard96 committed
42
- Kanban view for projects
43
- Network ports on Monitors
cconard96's avatar
cconard96 committed
44
- Add warning when there are unsaved changes in forms
45
46
- 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
47

48
49
### Changed

50
- 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).
51
- `scripts/migrations/racks_plugin.php` has been replaced by `glpi:migration:racks_plugin_to_core` command available using `bin/console`
52
- Encryption alogithm improved using libsodium
Johan Cwiklinski's avatar
Johan Cwiklinski committed
53
54
55

### API changes

Cédric Anne's avatar
Cédric Anne committed
56
57
#### Added

58
- Add translation functions `__()`,  `_n()`,  `_x()` and  `_nx()` in javascript in browser context.
Cédric Anne's avatar
Cédric Anne committed
59
- `Migration::renameItemtype()` method to update of database schema/values when an itemtype class is renamed
60
- Menu returned by `CommonGLPI::getMenuContent()` method override may now define an icon for each menu entry.
flonou's avatar
flonou committed
61
62
63
64
65
- `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
66

67
68
#### Changes

69
- jQuery library has been upgraded from 2.2.x to 3.4.x. jQuery Migrate is used to ensure backward compatibility in most cases.
70
- `DBmysqlIterator::handleOrderClause()` supports QueryExpressions
71
- Use Laminas instead of deprecated ZendFramework
72
73
74
- 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.
75
76
77
- 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
78

Johan Cwiklinski's avatar
Johan Cwiklinski committed
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#### 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()`
93
94
- `getAllDatasFromTable` renamed to `getAllDataFromTable()`
- Usage of `$order` parameter in `getAllDataFromTable()` (`DbUtils::getAllDataFromTable()`)
95
- `Ticket::getTicketTemplateToUse()` renamed to `Ticket::getITILTemplateToUse()`
Cédric Anne's avatar
Cédric Anne committed
96
97
98
- `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
99
100
101
102
103
104
- `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`
105
106
- 'getRealQueryForTreeItem()'
- ``getCommonSelect`` and ``getCommonLeftJoin()`` from ``Ticket``, ``Change`` and ``Problem`` are replaced with ``getCommonCriteria()`` compliant with db iterator
107
108
109
- `Config::checkWriteAccessToDirs()`
- `Config::displayCheckExtensions()`
- `Toolbox::checkSELinux()`
110
111
- `Toolbox::userErrorHandlerDebug()`
- `Toolbox::userErrorHandlerNormal()`
112
113
- `Html::jsDisable()`
- `Html::jsEnable()`
114
115
116
117
- `Plugin::setLoaded()`
- `Plugin::setUnloaded()`
- `Plugin::setUnloadedByName()`
- Usage of `$LOADED_PLUGINS` global variable
118
- `CommonDBTM::getRawName()` replaced by `CommonDBTM::getFriendlyName()`
flonou's avatar
flonou committed
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
- `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()`
143
144
- Usage of `GLPIKEY` constant
- `Toolbox::encrypt()` and `Toolbox::decrypt()` because they use the old encryption aglogithm
Johan Cwiklinski's avatar
Johan Cwiklinski committed
145

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#### 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()`
164
165
166
167
- `Plugin::hasBeenInit()`
- 'SELECT DISTINCT' and 'DISTINCT FIELDS' criteria in `DBmysqlIterator::buildQuery()`
- `CommonDBTM::getTablesOf()`
- `CommonDBTM::getForeignKeyFieldsOf()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
168
169
170
171
- `TicketFollowup`
- `getDateRequest` and `DbUtils::getDateRequest()`
- `Html::convertTagFromRichTextToImageTag()`
- `Transfer::createSearchConditionUsingArray()`
172
- Unused constants GLPI_FONT_FREESANS and GLPI_SCRIPT_DIR
173

174
175
176
## [9.4.6] 2020-05-05

## [9.4.5] 2019-12-18
177

178
## [9.4.4] 2019-09-24
Cédric Anne's avatar
Cédric Anne committed
179
180
181
182
183
184
185

### 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
186

187
188
189
190
191
192
193
194
### API changes

#### Deprecated

The following methods have been deprecated:

- `Html::convertTagFromRichTextToImageTag()`

195
## [9.4.2] 2019-04-11
196
197
198
199
200
201
202
203
204
205
206

### API changes

#### Deprecated

The following methods have been deprecated:

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

## [9.4.1] 2019-03-15
207

208
209
210
### API changes

#### Added
211
212

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

215
216
217
218
219
#### Deprecated

The following methods have been deprecated:

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

222
223
224
225
226
#### Removed

- Drop `CommonITILObject::showSolutions()`.

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

228
### Added
cconard96's avatar
cconard96 committed
229

230
- Ability to link project with problems and tickets.
231
- Ability to specify creation and modification dates during CommonDBTM object add method
232
233
234
235
- 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.
236
237
- Ability to merge and split tickets.
- Search on devices from Printers and Network equipments.
238
- Ability to specify creation and modification dates during CommonDBTM object add method.
239

Johan Cwiklinski's avatar
Johan Cwiklinski committed
240
241
### Changed
- `license_id` field in `glpi_items_operatingsystems` table has been renamed to `licenseid`
242
243
244
245
246
247
- `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`
248
- `scripts/add_creation_date.php` has been replaced by `glpi:migration:build_missing_timestamps` command available using `bin/console`
249
- `scripts/checkdb.php` has been replaced by `glpi:database:check` command available using `bin/console`
250
- `scripts/cliinstall.php` has been replaced by `glpi:database:install` command available using `bin/console`
251
- `scripts/cliupdate.php` has been replaced by `glpi:database:update` command available using `bin/console`
Cédric Anne's avatar
Cédric Anne committed
252
- `scripts/ldap_mass_sync.php` has been replaced by `glpi:ldap:synchronize_users` command available using `bin/console`
253
- `scripts/innodb_migration.php` has been replaced by `glpi:migration:myisam_to_innodb` command available using `bin/console`
254
- `scripts/unlock_tasks.php` has been replaced by `glpi:task:unlock` command available using `bin/console`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
255

Johan Cwiklinski's avatar
Johan Cwiklinski committed
256
257
### API changes

Cédric Anne's avatar
Cédric Anne committed
258
259
#### Changes
- Plugins are now loaded in ajax files.
Cédric Anne's avatar
Cédric Anne committed
260
- `TicketFollowup` has been replaced by `ITILFollowup`
261
262
263
264
265
- `$num` parameter has been removed from several `Search` class methods:
   - `addSelect()`,
   - `addOrderBy()`,
   - `addHaving()`,
   - `giveItem()`
266
- `NotificationTarget::getMode()` visibility is now `public`.
267
- Added `add_recipient_to_target` hook, triggered when a recipient is added to a notification.
Cédric Anne's avatar
Cédric Anne committed
268

269
270
271
#### Deprecated

- Remove `$CFG_GLPI['use_rich_text']` parameter. Will now be `true` per default.
272
273
- 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
274
- Usage of `TicketFollowup` class has been deprecated.
275
276
277
- 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
278
279
280

The following methods have been deprecated:

281
- `KnowbaseItemCategory::showFirstLevel()`
Cédric Anne's avatar
Cédric Anne committed
282
283
284
285
- `Ticket::getTicketActors()`
- `Ticket::processMassiveActionsForOneItemtype()`
- `Ticket::showFormMassiveAction()`
- `Ticket::showMassiveActionsSubForm()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
286
287
- `NotificationTarget::getProfileJoinSql()`
- `NotificationTarget::getDistinctUserSql()`
288
- `NotificationTargetCommonITILObject::getProfileJoinSql()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
289
- `RuleCollection::getRuleListQuery()`
290
291
- `getNextItem()`
- `getPreviousItem()`
292
293
294
- `CommonDBChild::getSQLRequestToSearchForItem()`
- `CommonDBConnexity::getSQLRequestToSearchForItem()`
- `CommonDBRelation::getSQLRequestToSearchForItem()`
295
296
- `Project::addVisibility()`
- `Project::addVisibilityJoins()`
297

Johan Cwiklinski's avatar
Johan Cwiklinski committed
298
299
#### Removed

300
301
302
303
- 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
304
305
306
307
308
309
310
- 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
311
- Drop ITIL Tasks, Followups and Solutions `showSummary()` and massive actions related methods that are replaced with timeline
Johan Cwiklinski's avatar
Johan Cwiklinski committed
312

Cédric Anne's avatar
Cédric Anne committed
313
- Drop class alias `Event` for `Glpi\Event`
314
- Drop `Zend\Loader\SplAutoloader` interface
Johan Cwiklinski's avatar
Johan Cwiklinski committed
315
- Drop all methods that have been deprecated in GLPI 9.2
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
  - `_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()`
362
- Drop all methods that have been deprecated in GLPI 9.3.0
363
364
365
  - `CommonDBTM::getFromDBByQuery()`
  - `CommonDBTM::getSearchOptions()`
  - `CommonDBTM::getSearchOptionsNew()`
366
  - `CommonDBTM::getSearchOptionsToAddNew()`
367
368
369
370
371
372
373
374
375
376
  - `CommonITILObject::getStatusIconURL()`
  - `DBMysql::list_tables()`
  - `Dropdown::showPrivatePublicSwitch()`
  - `NotificationTargetProjectTask::getTeamContacts()`
  - `NotificationTargetProjectTask::getTeamGroups()`
  - `NotificationTargetProjectTask::getTeamSuppliers()`
  - `NotificationTargetProjectTask::getTeamUsers()`
  - `Search::constructDatas()`
  - `Search::displayDatas()`
  - `Transfer::transferComputerDisks()`
377
378
379
380
- 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
381
382
383
  - `Html::checkAllAsCheckbox()`
  - `Html::scriptEnd()`
  - `Html::scriptStart()`
384
  - `Plugin::isAllPluginsCSRFCompliant()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
385
  - `Profile::getUnderActiveProfileRestrictRequest()`
386
387
  - `Toolbox::is_a()`
- Drop all constants that have been deprecated in GLPI 9.3.1
Cédric Anne's avatar
Cédric Anne committed
388
389
390
391
392
  - `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
  - `CommonDBTM::HAS_DUPLICATE`
  - `CommonDBTM::NOTHING_TO_DO`
  - `CommonDBTM::SUCCESS`
  - `CommonDBTM::TYPE_MISMATCH`
393
394
- Drop all methods that have been deprecated in GLPI 9.3.2
 - `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
395
 - `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
396

Johan Cwiklinski's avatar
Johan Cwiklinski committed
397
## [9.3.3] 2018-11-27
Johan Cwiklinski's avatar
Johan Cwiklinski committed
398

Johan Cwiklinski's avatar
Johan Cwiklinski committed
399
400
401
402
403
404
405
406
407
408
409
410
### 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
411
412
413

### API changes

414
415
416
#### Changed

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

419
420
421
422
#### Deprecated

The following methods have been deprecated:

Johan Cwiklinski's avatar
Johan Cwiklinski committed
423
424
425
426
- `CommonITILTask::displayTabContentForItem()`
- `CommonITILTask::showFormMassiveAction()`
- `CommonITILTask::showSummary()`
- `ITILSolution::displayTabContentForItem()`
427
- `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
428
- `ITILSolution::showSummary()`
429
- `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
430
431
432
433
- `TicketFollowup::processMassiveActionsForOneItemtype()`
- `TicketFollowup::showFormMassiveAction()`
- `TicketFollowup::showMassiveActionsSubForm()`
- `TicketFollowup::showSummary()`
434
- `Plugin::removeFromSession()`
435
436

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

Johan Cwiklinski's avatar
Johan Cwiklinski committed
438
439
440
### Added
- List receivers folders to choose imported/refused folders

Johan Cwiklinski's avatar
Johan Cwiklinski committed
441
442
443
444
### API changes

#### Deprecated

445
446
- Usage of string `$condition` parameter in `Group_User::getUserGroups()` has been deprecated
- Usage of string `$condition` parameter in `Group_User::getGroupUsers()` has been deprecated
447
448
449
450
451
- 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
452

Johan Cwiklinski's avatar
Johan Cwiklinski committed
453
454
The following methods have been deprecated:

455
- `Config::getSQLMode()`
456
- `DBMysql::checkForCrashedTables()`
457
- `Html::checkAllAsCheckbox()`
458
459
- `Html::scriptEnd()`
- `Html::scriptStart()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
460
- `Toolbox::is_a()`
461
- `ComputerVirtualMachine::getUUIDRestrictRequest()`
462
463
- `Plugin::isAllPluginsCSRFCompliant()`
- `Profile::getUnderActiveProfileRestrictRequest()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
464

465
466
467
468
469
470
471
The following constants have been deprecated:
- `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
- `CommonDBTM::HAS_DUPLICATE`
- `CommonDBTM::NOTHING_TO_DO`
- `CommonDBTM::SUCCESS`
- `CommonDBTM::TYPE_MISMATCH`

472
## [9.3.0] 2018-06-28
Johan Cwiklinski's avatar
Johan Cwiklinski committed
473
474
475
476
477
478
479

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

### Changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
482
- Switch MySQL engine from MyIsam to Innodb
483
- Rework solutions for Tickets, Problems and Changes to support history
Johan Cwiklinski's avatar
Johan Cwiklinski committed
484
- Disks can be attached to network equipments and printers
485
486
487
488

### API changes

#### Changes
489
- Added `DB::insert()`, `DB::update()` and `DB::delete()` to replace raw SQL queries
490
- `CommonITILObject::showMassiveSolutionForm()` now takes a `CommonITILObject` as argument
491
492
- `Profileuser::getUserProfiles()` `$filter` parameter is now an array
- `User::getFromDBbyEmail()` `$condition` parameter is now an array
493
- Select2 javascript component has been upgraded to 4.0 version, see [Migrating from Select2 3.5](https://select2.org/upgrading/migrating-from-35)
494
- `CommonDevice::getItem_DeviceType()` has a new optional `$devicetype` parameter
495
496
497

#### Deprecated

498
499
500
- Usage of string `$filter` parameter in `Profileuser::getUserProfiles()` has been deprecated
- Usage of string `$condition` parameter in `User::getFromDBbyEmail()` has been deprecated

501
502
The following methods have been deprecated:

503
- `CommonDBTM::getFromDBByQuery()`
504
505
506
507
508
509
- `CommonDBTM::getSearchOptions()`
- `CommonDBTM::getSearchOptionsNew()`
- `CommonDBTM::getSearchOptionsToAddNew()`
- `CommonITILObject::getStatusIconURL()`
- `DBMysql::list_tables()`
- `Dropdown::showPrivatePublicSwitch()`
510
511
512
513
- `NotificationTargetProject::getTeamContacts()`
- `NotificationTargetProject::getTeamGroups()`
- `NotificationTargetProject::getTeamSuppliers()`
- `NotificationTargetProject::getTeamUsers()`
514
515
516
- `Search::constructDatas()`
- `Search::displayDatas()`
- `Transfer::transferComputerDisks()`
517

518
519
520
521
#### Removed

- `CommonITILValidation::isAllValidationsHaveSameStatusForTicket`
- `CommonITILValidation::getNumberValidationForTicket`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
522
523
524
- PHPCas library is no longer provided (for licensing issues)

## [9.2.4] 2018-06-21
525

Johan Cwiklinski's avatar
Johan Cwiklinski committed
526
## [9.2.3] 2018-04-27
527

Johan Cwiklinski's avatar
Johan Cwiklinski committed
528
## [9.2.2] 2018-03-01
529

Johan Cwiklinski's avatar
Johan Cwiklinski committed
530

531
532
533
534
535
### Deprecated

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

Johan Cwiklinski's avatar
Johan Cwiklinski committed
537
## [9.2.1] 2017-11-16
538
539

### Added
540

541
542
- Search engine, added ``itemtype_item_revert`` jointype

543
544
545
546
### Deprecated

- `Ticket::convertContentForNotification()`

547
## [9.2] 2017-09-25
Johan Cwiklinski's avatar
Johan Cwiklinski committed
548
549
550
551
552

### 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
553
- Direct links to KB article's title for a direct access
554
- Load minified CSS and JS files (core and plugins) that are generated on release
Johan Cwiklinski's avatar
Johan Cwiklinski committed
555
- Link beetween software licenses
Johan Cwiklinski's avatar
Johan Cwiklinski committed
556
- Alerts on saved searches
Johan Cwiklinski's avatar
Johan Cwiklinski committed
557
558
- 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
559
- Simcard component
Johan Cwiklinski's avatar
Johan Cwiklinski committed
560
- Synchronization field for LDAP
561
562
563
564
565
566
567
568
569
570
- 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
571
572

### Changed
573
- Many bugs have been fixed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
574
575
- Display knowledge base category items in tickets using a popup instead of a
new whole window
576
- Reviewed all richtext editor (tinymce) and their upload parts, now more simpler and intuitive
577
- Don't ask user to select a template if there is no configured template
578
579
580
581
- 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
582

583
584
### API changes

585
586
587
#### Changes

- `CommonDBTM::getTable()` signature has changed
588
- `User::getFromDBbyToken()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
589
- `Bookmark` has been renamed to `SavedSearch`
590
- Update to latest jsTree plugin
591
- `RuleDictionnarySoftwareCollection::versionExists()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
592
593
- `NotificationTemplate::getDataToSend()` signature has changed
- `QueuedMail` has been renamed to `QueuedNotification`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
594
- `CommonDBTM::mailqueueonaction()` has been renamed to `CommonDBTM::notificationqueueonaction()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
595
- `NotificationTarget::getSender()` no longer takes any parameters (was not used)
Johan Cwiklinski's avatar
Johan Cwiklinski committed
596
597
598
- `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
599
- `NotificationTarget` property `datas` has been renamed to `data`
600

601
602
#### Deprecated

603
604
605
606
- 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

607
608
609
610
The following methods have been deprecated:

- `_e()`
- `_ex()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
611
612
- `Bookmark::mark_default()`
- `Bookmark::unmark_default()`
613
- `CommonTreeDropodwn::recursiveCleanSonsAboveID()`
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
- `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()`
652
- `formatOutputWebLink()`
653
654
655
656
657

#### Removals

The following methods have been dropped:

yllen's avatar
yllen committed
658
659
660
661
- `Ajax::displaySearchTextForDropdown()`
- `Ajax::getSearchTextForDropdown()`
- `Bookmark::changeBookmarkOrder()`
- `Bookmark::moveBookmark()`
662
663
664
665
- `CommonGLPI::addDivForTabs()`
- `CommonGLPI::showTabs()`
- `CommonGLPI::showNavigationHeaderOld()`
- `CommonGLPI::show()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
666
- `Dropdown::showInteger()`
667
- `DBMysql::field_flags()`
yllen's avatar
yllen committed
668
669
670
- `Html::showDateFormItem()`
- `Html::showDateTimeFormItem()`
- `Profile::dropdownNoneReadWrite()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
671
672
- `Toolbox::get_magic_quotes_runtime()`
- `Toolbox::get_magic_quotes_gpc()`
673
- `Dropdown::showAllItems()`
674

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