CHANGELOG.md 27.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
9
10
11
12
13
14
## [9.5.6] unreleased

### API changes

#### Deprecated

- `CommonITILTask::showInObjectSumnary()`

## [9.5.5] 2021-04-13
15
16
17
18
19
20
21
22

### API changes

#### Changed

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

## [9.5.4] 2021-03-02
Cédric Anne's avatar
Cédric Anne committed
23
24
25
26
27

### Changed

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

28
29
30
31
32
33
### API changes

#### Deprecated

- `Search::getMetaReferenceItemtype()`

34
35
36
37
38
## [9.5.3] 2020-11-25

### Deprecated
- Usage of alternative DB connection encoding (`DB::$dbenc` property).

Johan Cwiklinski's avatar
Johan Cwiklinski committed
39
## [9.5.2] 2020-10-07
40
41
42
43
44
45

### API changes

#### Removed

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

## [9.5.1] 2020-07-16
49
50

## [9.5.0] 2020-07-07
51

Johan Cwiklinski's avatar
Johan Cwiklinski committed
52
### Added
53

54
55
56
- 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.
57
- CLI commands to enable and disable maintenance mode.
58
- Operating system links on Monitors, Peripherals, Phones and Printers.
59
- Add datacenter items to global search
60
- Project task search options for Projects
61
- Automatic action to purge closed tickets
62
- Ability to automatically calculate project's percent done
cconard96's avatar
cconard96 committed
63
- Software link on Phones.
cconard96's avatar
cconard96 committed
64
- Add and answer approvals from timeline
65
- Add lightbox with PhotoSwipe to timeline images
66
- Ability to copy tasks while merging tickets
67
- the API gives the ID of the user who logs in with initSession
cconard96's avatar
cconard96 committed
68
- Kanban view for projects
69
- Network ports on Monitors
cconard96's avatar
cconard96 committed
70
- Add warning when there are unsaved changes in forms
71
72
- 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
73

74
75
### Changed

76
- 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).
77
- `scripts/migrations/racks_plugin.php` has been replaced by `glpi:migration:racks_plugin_to_core` command available using `bin/console`
78
- Encryption alogithm improved using libsodium
Johan Cwiklinski's avatar
Johan Cwiklinski committed
79
80
81

### API changes

Cédric Anne's avatar
Cédric Anne committed
82
83
#### Added

84
- Add translation functions `__()`,  `_n()`,  `_x()` and  `_nx()` in javascript in browser context.
Cédric Anne's avatar
Cédric Anne committed
85
- `Migration::renameItemtype()` method to update of database schema/values when an itemtype class is renamed
86
- Menu returned by `CommonGLPI::getMenuContent()` method override may now define an icon for each menu entry.
flonou's avatar
flonou committed
87
88
89
90
91
- `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
92

93
94
#### Changes

95
- jQuery library has been upgraded from 2.2.x to 3.4.x. jQuery Migrate is used to ensure backward compatibility in most cases.
96
- `DBmysqlIterator::handleOrderClause()` supports QueryExpressions
97
- Use Laminas instead of deprecated ZendFramework
98
99
100
- 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.
101
102
103
- 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
104

Johan Cwiklinski's avatar
Johan Cwiklinski committed
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#### 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()`
119
120
- `getAllDatasFromTable` renamed to `getAllDataFromTable()`
- Usage of `$order` parameter in `getAllDataFromTable()` (`DbUtils::getAllDataFromTable()`)
121
- `Ticket::getTicketTemplateToUse()` renamed to `Ticket::getITILTemplateToUse()`
Cédric Anne's avatar
Cédric Anne committed
122
123
124
- `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
125
126
127
128
129
130
- `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`
131
132
- 'getRealQueryForTreeItem()'
- ``getCommonSelect`` and ``getCommonLeftJoin()`` from ``Ticket``, ``Change`` and ``Problem`` are replaced with ``getCommonCriteria()`` compliant with db iterator
133
134
135
- `Config::checkWriteAccessToDirs()`
- `Config::displayCheckExtensions()`
- `Toolbox::checkSELinux()`
136
137
- `Toolbox::userErrorHandlerDebug()`
- `Toolbox::userErrorHandlerNormal()`
138
139
- `Html::jsDisable()`
- `Html::jsEnable()`
140
141
142
143
- `Plugin::setLoaded()`
- `Plugin::setUnloaded()`
- `Plugin::setUnloadedByName()`
- Usage of `$LOADED_PLUGINS` global variable
144
- `CommonDBTM::getRawName()` replaced by `CommonDBTM::getFriendlyName()`
flonou's avatar
flonou committed
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
- `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()`
169
170
- Usage of `GLPIKEY` constant
- `Toolbox::encrypt()` and `Toolbox::decrypt()` because they use the old encryption aglogithm
Johan Cwiklinski's avatar
Johan Cwiklinski committed
171

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#### 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()`
190
191
192
193
- `Plugin::hasBeenInit()`
- 'SELECT DISTINCT' and 'DISTINCT FIELDS' criteria in `DBmysqlIterator::buildQuery()`
- `CommonDBTM::getTablesOf()`
- `CommonDBTM::getForeignKeyFieldsOf()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
194
195
196
197
- `TicketFollowup`
- `getDateRequest` and `DbUtils::getDateRequest()`
- `Html::convertTagFromRichTextToImageTag()`
- `Transfer::createSearchConditionUsingArray()`
198
- Unused constants GLPI_FONT_FREESANS and GLPI_SCRIPT_DIR
199

200
201
202
## [9.4.6] 2020-05-05

## [9.4.5] 2019-12-18
203

204
## [9.4.4] 2019-09-24
Cédric Anne's avatar
Cédric Anne committed
205
206
207
208
209
210
211

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

213
214
215
216
217
218
219
220
### API changes

#### Deprecated

The following methods have been deprecated:

- `Html::convertTagFromRichTextToImageTag()`

221
## [9.4.2] 2019-04-11
222
223
224
225
226
227
228
229
230
231
232

### API changes

#### Deprecated

The following methods have been deprecated:

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

## [9.4.1] 2019-03-15
233

234
235
236
### API changes

#### Added
237
238

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

241
242
243
244
245
#### Deprecated

The following methods have been deprecated:

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

248
249
250
251
252
#### Removed

- Drop `CommonITILObject::showSolutions()`.

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

254
### Added
cconard96's avatar
cconard96 committed
255

256
- Ability to link project with problems and tickets.
257
- Ability to specify creation and modification dates during CommonDBTM object add method
258
259
260
261
- 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.
262
263
- Ability to merge and split tickets.
- Search on devices from Printers and Network equipments.
264
- Ability to specify creation and modification dates during CommonDBTM object add method.
265

Johan Cwiklinski's avatar
Johan Cwiklinski committed
266
267
### Changed
- `license_id` field in `glpi_items_operatingsystems` table has been renamed to `licenseid`
268
269
270
271
272
273
- `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`
274
- `scripts/add_creation_date.php` has been replaced by `glpi:migration:build_missing_timestamps` command available using `bin/console`
275
- `scripts/checkdb.php` has been replaced by `glpi:database:check` command available using `bin/console`
276
- `scripts/cliinstall.php` has been replaced by `glpi:database:install` command available using `bin/console`
277
- `scripts/cliupdate.php` has been replaced by `glpi:database:update` command available using `bin/console`
Cédric Anne's avatar
Cédric Anne committed
278
- `scripts/ldap_mass_sync.php` has been replaced by `glpi:ldap:synchronize_users` command available using `bin/console`
279
- `scripts/innodb_migration.php` has been replaced by `glpi:migration:myisam_to_innodb` command available using `bin/console`
280
- `scripts/unlock_tasks.php` has been replaced by `glpi:task:unlock` command available using `bin/console`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
281

Johan Cwiklinski's avatar
Johan Cwiklinski committed
282
283
### API changes

Cédric Anne's avatar
Cédric Anne committed
284
285
#### Changes
- Plugins are now loaded in ajax files.
Cédric Anne's avatar
Cédric Anne committed
286
- `TicketFollowup` has been replaced by `ITILFollowup`
287
288
289
290
291
- `$num` parameter has been removed from several `Search` class methods:
   - `addSelect()`,
   - `addOrderBy()`,
   - `addHaving()`,
   - `giveItem()`
292
- `NotificationTarget::getMode()` visibility is now `public`.
293
- Added `add_recipient_to_target` hook, triggered when a recipient is added to a notification.
Cédric Anne's avatar
Cédric Anne committed
294

295
296
297
#### Deprecated

- Remove `$CFG_GLPI['use_rich_text']` parameter. Will now be `true` per default.
298
299
- 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
300
- Usage of `TicketFollowup` class has been deprecated.
301
302
303
- 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
304
305
306

The following methods have been deprecated:

307
- `KnowbaseItemCategory::showFirstLevel()`
Cédric Anne's avatar
Cédric Anne committed
308
309
310
311
- `Ticket::getTicketActors()`
- `Ticket::processMassiveActionsForOneItemtype()`
- `Ticket::showFormMassiveAction()`
- `Ticket::showMassiveActionsSubForm()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
312
313
- `NotificationTarget::getProfileJoinSql()`
- `NotificationTarget::getDistinctUserSql()`
314
- `NotificationTargetCommonITILObject::getProfileJoinSql()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
315
- `RuleCollection::getRuleListQuery()`
316
317
- `getNextItem()`
- `getPreviousItem()`
318
319
320
- `CommonDBChild::getSQLRequestToSearchForItem()`
- `CommonDBConnexity::getSQLRequestToSearchForItem()`
- `CommonDBRelation::getSQLRequestToSearchForItem()`
321
322
- `Project::addVisibility()`
- `Project::addVisibilityJoins()`
323

Johan Cwiklinski's avatar
Johan Cwiklinski committed
324
325
#### Removed

326
327
328
329
- 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
330
331
332
333
334
335
336
- 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
337
- Drop ITIL Tasks, Followups and Solutions `showSummary()` and massive actions related methods that are replaced with timeline
Johan Cwiklinski's avatar
Johan Cwiklinski committed
338

Cédric Anne's avatar
Cédric Anne committed
339
- Drop class alias `Event` for `Glpi\Event`
340
- Drop `Zend\Loader\SplAutoloader` interface
Johan Cwiklinski's avatar
Johan Cwiklinski committed
341
- Drop all methods that have been deprecated in GLPI 9.2
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
  - `_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()`
388
- Drop all methods that have been deprecated in GLPI 9.3.0
389
390
391
  - `CommonDBTM::getFromDBByQuery()`
  - `CommonDBTM::getSearchOptions()`
  - `CommonDBTM::getSearchOptionsNew()`
392
  - `CommonDBTM::getSearchOptionsToAddNew()`
393
394
395
396
397
398
399
400
401
402
  - `CommonITILObject::getStatusIconURL()`
  - `DBMysql::list_tables()`
  - `Dropdown::showPrivatePublicSwitch()`
  - `NotificationTargetProjectTask::getTeamContacts()`
  - `NotificationTargetProjectTask::getTeamGroups()`
  - `NotificationTargetProjectTask::getTeamSuppliers()`
  - `NotificationTargetProjectTask::getTeamUsers()`
  - `Search::constructDatas()`
  - `Search::displayDatas()`
  - `Transfer::transferComputerDisks()`
403
404
405
406
- 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
407
408
409
  - `Html::checkAllAsCheckbox()`
  - `Html::scriptEnd()`
  - `Html::scriptStart()`
410
  - `Plugin::isAllPluginsCSRFCompliant()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
411
  - `Profile::getUnderActiveProfileRestrictRequest()`
412
413
  - `Toolbox::is_a()`
- Drop all constants that have been deprecated in GLPI 9.3.1
Cédric Anne's avatar
Cédric Anne committed
414
415
416
417
418
  - `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
  - `CommonDBTM::HAS_DUPLICATE`
  - `CommonDBTM::NOTHING_TO_DO`
  - `CommonDBTM::SUCCESS`
  - `CommonDBTM::TYPE_MISMATCH`
419
420
- Drop all methods that have been deprecated in GLPI 9.3.2
 - `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
421
 - `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
422

Johan Cwiklinski's avatar
Johan Cwiklinski committed
423
## [9.3.3] 2018-11-27
Johan Cwiklinski's avatar
Johan Cwiklinski committed
424

Johan Cwiklinski's avatar
Johan Cwiklinski committed
425
426
427
428
429
430
431
432
433
434
435
436
### 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
437
438
439

### API changes

440
441
442
#### Changed

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

445
446
447
448
#### Deprecated

The following methods have been deprecated:

Johan Cwiklinski's avatar
Johan Cwiklinski committed
449
450
451
452
- `CommonITILTask::displayTabContentForItem()`
- `CommonITILTask::showFormMassiveAction()`
- `CommonITILTask::showSummary()`
- `ITILSolution::displayTabContentForItem()`
453
- `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
454
- `ITILSolution::showSummary()`
455
- `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
456
457
458
459
- `TicketFollowup::processMassiveActionsForOneItemtype()`
- `TicketFollowup::showFormMassiveAction()`
- `TicketFollowup::showMassiveActionsSubForm()`
- `TicketFollowup::showSummary()`
460
- `Plugin::removeFromSession()`
461
462

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

Johan Cwiklinski's avatar
Johan Cwiklinski committed
464
465
466
### Added
- List receivers folders to choose imported/refused folders

Johan Cwiklinski's avatar
Johan Cwiklinski committed
467
468
469
470
### API changes

#### Deprecated

471
472
- Usage of string `$condition` parameter in `Group_User::getUserGroups()` has been deprecated
- Usage of string `$condition` parameter in `Group_User::getGroupUsers()` has been deprecated
473
474
475
476
477
- 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
478

Johan Cwiklinski's avatar
Johan Cwiklinski committed
479
480
The following methods have been deprecated:

481
- `Config::getSQLMode()`
482
- `DBMysql::checkForCrashedTables()`
483
- `Html::checkAllAsCheckbox()`
484
485
- `Html::scriptEnd()`
- `Html::scriptStart()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
486
- `Toolbox::is_a()`
487
- `ComputerVirtualMachine::getUUIDRestrictRequest()`
488
489
- `Plugin::isAllPluginsCSRFCompliant()`
- `Profile::getUnderActiveProfileRestrictRequest()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
490

491
492
493
494
495
496
497
The following constants have been deprecated:
- `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
- `CommonDBTM::HAS_DUPLICATE`
- `CommonDBTM::NOTHING_TO_DO`
- `CommonDBTM::SUCCESS`
- `CommonDBTM::TYPE_MISMATCH`

498
## [9.3.0] 2018-06-28
Johan Cwiklinski's avatar
Johan Cwiklinski committed
499
500
501
502
503
504
505

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

### Changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
508
- Switch MySQL engine from MyIsam to Innodb
509
- Rework solutions for Tickets, Problems and Changes to support history
Johan Cwiklinski's avatar
Johan Cwiklinski committed
510
- Disks can be attached to network equipments and printers
511
512
513
514

### API changes

#### Changes
515
- Added `DB::insert()`, `DB::update()` and `DB::delete()` to replace raw SQL queries
516
- `CommonITILObject::showMassiveSolutionForm()` now takes a `CommonITILObject` as argument
517
518
- `Profileuser::getUserProfiles()` `$filter` parameter is now an array
- `User::getFromDBbyEmail()` `$condition` parameter is now an array
519
- Select2 javascript component has been upgraded to 4.0 version, see [Migrating from Select2 3.5](https://select2.org/upgrading/migrating-from-35)
520
- `CommonDevice::getItem_DeviceType()` has a new optional `$devicetype` parameter
521
522
523

#### Deprecated

524
525
526
- Usage of string `$filter` parameter in `Profileuser::getUserProfiles()` has been deprecated
- Usage of string `$condition` parameter in `User::getFromDBbyEmail()` has been deprecated

527
528
The following methods have been deprecated:

529
- `CommonDBTM::getFromDBByQuery()`
530
531
532
533
534
535
- `CommonDBTM::getSearchOptions()`
- `CommonDBTM::getSearchOptionsNew()`
- `CommonDBTM::getSearchOptionsToAddNew()`
- `CommonITILObject::getStatusIconURL()`
- `DBMysql::list_tables()`
- `Dropdown::showPrivatePublicSwitch()`
536
537
538
539
- `NotificationTargetProject::getTeamContacts()`
- `NotificationTargetProject::getTeamGroups()`
- `NotificationTargetProject::getTeamSuppliers()`
- `NotificationTargetProject::getTeamUsers()`
540
541
542
- `Search::constructDatas()`
- `Search::displayDatas()`
- `Transfer::transferComputerDisks()`
543

544
545
546
547
#### Removed

- `CommonITILValidation::isAllValidationsHaveSameStatusForTicket`
- `CommonITILValidation::getNumberValidationForTicket`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
548
549
550
- PHPCas library is no longer provided (for licensing issues)

## [9.2.4] 2018-06-21
551

Johan Cwiklinski's avatar
Johan Cwiklinski committed
552
## [9.2.3] 2018-04-27
553

Johan Cwiklinski's avatar
Johan Cwiklinski committed
554
## [9.2.2] 2018-03-01
555

Johan Cwiklinski's avatar
Johan Cwiklinski committed
556

557
558
559
560
561
### Deprecated

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

Johan Cwiklinski's avatar
Johan Cwiklinski committed
563
## [9.2.1] 2017-11-16
564
565

### Added
566

567
568
- Search engine, added ``itemtype_item_revert`` jointype

569
570
571
572
### Deprecated

- `Ticket::convertContentForNotification()`

573
## [9.2] 2017-09-25
Johan Cwiklinski's avatar
Johan Cwiklinski committed
574
575
576
577
578

### 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
579
- Direct links to KB article's title for a direct access
580
- Load minified CSS and JS files (core and plugins) that are generated on release
Johan Cwiklinski's avatar
Johan Cwiklinski committed
581
- Link beetween software licenses
Johan Cwiklinski's avatar
Johan Cwiklinski committed
582
- Alerts on saved searches
Johan Cwiklinski's avatar
Johan Cwiklinski committed
583
584
- 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
585
- Simcard component
Johan Cwiklinski's avatar
Johan Cwiklinski committed
586
- Synchronization field for LDAP
587
588
589
590
591
592
593
594
595
596
- 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
597
598

### Changed
599
- Many bugs have been fixed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
600
601
- Display knowledge base category items in tickets using a popup instead of a
new whole window
602
- Reviewed all richtext editor (tinymce) and their upload parts, now more simpler and intuitive
603
- Don't ask user to select a template if there is no configured template
604
605
606
607
- 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
608

609
610
### API changes

611
612
613
#### Changes

- `CommonDBTM::getTable()` signature has changed
614
- `User::getFromDBbyToken()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
615
- `Bookmark` has been renamed to `SavedSearch`
616
- Update to latest jsTree plugin
617
- `RuleDictionnarySoftwareCollection::versionExists()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
618
619
- `NotificationTemplate::getDataToSend()` signature has changed
- `QueuedMail` has been renamed to `QueuedNotification`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
620
- `CommonDBTM::mailqueueonaction()` has been renamed to `CommonDBTM::notificationqueueonaction()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
621
- `NotificationTarget::getSender()` no longer takes any parameters (was not used)
Johan Cwiklinski's avatar
Johan Cwiklinski committed
622
623
624
- `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
625
- `NotificationTarget` property `datas` has been renamed to `data`
626

627
628
#### Deprecated

629
630
631
632
- 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

633
634
635
636
The following methods have been deprecated:

- `_e()`
- `_ex()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
637
638
- `Bookmark::mark_default()`
- `Bookmark::unmark_default()`
639
- `CommonTreeDropodwn::recursiveCleanSonsAboveID()`
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
- `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()`
678
- `formatOutputWebLink()`
679
680
681
682
683

#### Removals

The following methods have been dropped:

yllen's avatar
yllen committed
684
685
686
687
- `Ajax::displaySearchTextForDropdown()`
- `Ajax::getSearchTextForDropdown()`
- `Bookmark::changeBookmarkOrder()`
- `Bookmark::moveBookmark()`
688
689
690
691
- `CommonGLPI::addDivForTabs()`
- `CommonGLPI::showTabs()`
- `CommonGLPI::showNavigationHeaderOld()`
- `CommonGLPI::show()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
692
- `Dropdown::showInteger()`
693
- `DBMysql::field_flags()`
yllen's avatar
yllen committed
694
695
696
- `Html::showDateFormItem()`
- `Html::showDateTimeFormItem()`
- `Profile::dropdownNoneReadWrite()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
697
698
- `Toolbox::get_magic_quotes_runtime()`
- `Toolbox::get_magic_quotes_gpc()`
699
- `Dropdown::showAllItems()`
700

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