CHANGELOG.md 37.6 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.

Cédric Anne's avatar
Cédric Anne committed
6
## [10.0.0] unreleased
7
8

### Added
9
- Added UUID to all other itemtypes that are related to Operating Systems (Phones, Printers, etc)
Curtis Conard's avatar
Curtis Conard committed
10
- Added a button to the General > System configuration tab to copy the system information
11
12

### Changed
13
- APCu and WinCache are not anymore use by GLPI, use `php bin/console cache:configure` command to configure cache system.
Cédric Anne's avatar
Cédric Anne committed
14
- PDF export library has been changed from `TCPDF` to `mPDF`.
Cédric Anne's avatar
Cédric Anne committed
15
16
- The search engine and search results page now support sorting by multiple fields.
- The search result lists now refresh/update without triggering a full page reload.
17

Cédric Anne's avatar
Cédric Anne committed
18
19
20
### Deprecated
- Usage of XML-RPC API is deprecated.

Cédric Anne's avatar
Cédric Anne committed
21
### Removed
Cédric Anne's avatar
Cédric Anne committed
22
- Autocomplete feature on text fields.
Cédric Anne's avatar
Cédric Anne committed
23
24
- Usage of alternative DB connection encoding (`DB::$dbenc` property).

25
26
27
### API changes

#### Added
28
- Added `DBMysql::setSavepoint` to create savepoints within a transaction.
Cédric Anne's avatar
Cédric Anne committed
29
- Added `CommonDBTM::showForm` to have a generic showForm for asset (based on a twig template).
30
31

#### Changes
Cédric Anne's avatar
Cédric Anne committed
32
- `DBmysqlIterator` class compliancy with `Iterator` has been fixed (i.e. `DBmysqlIterator::next()` does not return current row anymore).
33
- Format of `Message-Id` header sent in Tickets notifications changed to match format used by other items.
cconard96's avatar
cconard96 committed
34
- Added `DB::truncate()` to replace raw SQL queries
35
- Impact context `positions` field type changed from `TEXT` to `MEDIUMTEXT`
36
37
38
39
40
41
42
43
- Field `date` of KnowbaseItem has been renamed to `date_creation`.
- Field `date_creation` of KnowbaseItem_Revision has been renamed to `date`.
- Field `date_creation` of NetworkPortConnectionLog has been renamed to `date`.
- Field `date_creation` of NetworkPortMetrics has been renamed to `date`.
- Field `date` of Notepad has been renamed to `date_creation`.
- Field `date_mod` of ObjectLock has been renamed to `date`.
- Field `date_creation` of PrinterLog has been renamed to `date`.
- Field `date` of ProjectTask has been renamed to `date_creation`.
Stanislas's avatar
Stanislas committed
44
- Table `glpi_netpoints` has been renamed to `glpi_sockets`.
Cédric Anne's avatar
Cédric Anne committed
45
46
47
- `GLPI_FORCE_EMPTY_SQL_MODE` constant has been removed in favor of `GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE` usage.
- `CommonDBTM::clone()`, `CommonDBTM::prepareInputForClone()` and `CommonDBTM::post_clone()` has been removed. Clonable objects must now use `Glpi\Features\Clonable` trait.
- `CommonDBTM::notificationqueueonaction` property has been removed in favor of `CommonDBTM::deduplicate_queued_notifications` property.
Stanislas's avatar
Stanislas committed
48
- `CommonDropdown::displaySpecificTypeField()` has a new `$options` parameter.
Cédric Anne's avatar
Cédric Anne committed
49
- `DBMysql::rollBack` supports a `name` parameter for rolling back to a savepoint.
50
- `Knowbase::getJstreeCategoryList()` as been replaced by `Knowbase::getTreeCategoryList()`.
Stanislas's avatar
Stanislas committed
51
- `NetworkPortInstantiation::showNetpointField()` has been renamed to `NetworkPortInstantiation::showSocketField()`.
Cédric Anne's avatar
Cédric Anne committed
52
53
54
55
- `NotificationSettingConfig::showForm()` renamed to `NotificationSettingConfig::showConfigForm()`.
- `RuleMatchedLog::showForm()` renamed to `RuleMatchedLog::showItemForm()`.
- `Search::addOrderBy()` signature changed.
- `TicketSatisfaction::showForm()` renamed to `TicketSatisfaction::showSatisfactionForm()`.
Stanislas's avatar
Stanislas committed
56
- `Transfer::transferDropdownNetpoint()` has been renamed to `Transfer::transferDropdownSocket()`.
57
58

#### Deprecated
59
- Usage of `MyISAM` engine in database, in favor of `InnoDB` engine.
60
- Usage of `utf8mb3` charset/collation in database in favor of `utf8mb4` charset/collation.
61
- Usage of `datetime` field type in database, in favor of `timestamp` field type.
62
- Handling of encoded/escaped value in `autoName()`
Stanislas's avatar
Stanislas committed
63
- `Netpoint` has been deprecated and replaced by `Socket`
Cédric Anne's avatar
Cédric Anne committed
64
- `Html::clean()`
65
66
- `RuleImportComputer` class
- `RuleImportComputerCollection` class
67
- `Toolbox::clean_cross_side_scripting_deep()`
68
- `Toolbox::endsWith()`
Cédric Anne's avatar
Cédric Anne committed
69
- `Toolbox::getHtmlToDisplay()`
70
- `Toolbox::unclean_cross_side_scripting_deep()`
71
- `Toolbox::startsWith()`
Cédric Anne's avatar
Cédric Anne committed
72
73
- `Toolbox::sodiumDecrypt()`
- `Toolbox::sodiumEncrypt()`
74
75

#### Removed
Cédric Anne's avatar
Cédric Anne committed
76
- jQueryUI has been partially removed and remaining widgets will be removed in a near future.
Cédric Anne's avatar
Cédric Anne committed
77
- Usage of `$order` parameter in `getAllDataFromTable()` (`DbUtils::getAllDataFromTable()`)
Cédric Anne's avatar
Cédric Anne committed
78
79
80
81
82
- Usage of `table` parameter in requests made to `ajax/comments.php`
- Usage of `GLPI_FORCE_EMPTY_SQL_MODE` constant
- Support of `doc_types`, `helpdesk_types` and `netport_types` keys in `Plugin::registerClass()`
- `$CFG_GLPI['layout_excluded_pages']` entry
- `$CFG_GLPI['use_ajax_autocompletion']` entry
Cédric Anne's avatar
Cédric Anne committed
83
- `$DEBUG_AUTOLOAD` global variable
Cédric Anne's avatar
Cédric Anne committed
84
- `$LOADED_PLUGINS` global variable
Cédric Anne's avatar
Cédric Anne committed
85
86
- `CommonDBTM::notificationqueueonaction` property
- `NotificationTarget::html_tags` property
Cédric Anne's avatar
Cédric Anne committed
87
88
- `getAllDatasFromTable()`
- `getRealQueryForTreeItem()`
Cédric Anne's avatar
Cédric Anne committed
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
- `Ajax::createFixedModalWindow()`
- `Ajax::createSlidePanel()`
- `Calendar_Holiday::cloneCalendar()`
- `Calendar::duplicate()`
- `CalendarSegment::cloneCalendar()`
- `Change::getCommonLeftJoin()`
- `Change::getCommonSelect()`
- `Change::showAnalysisForm()`
- `Change::showPlanForm()`
- `CommonDBTM::clone()`
- `CommonDBTM::getRawName()`
- `CommonDBTM::prepareInputForClone()`
- `CommonDBTM::post_clone()`
- `CommonDBTM::showDates()`
- `CommonGLPI::isLayoutExcludedPage()`
- `CommonGLPI::isLayoutWithMain()`
- `CommonGLPI::showPrimaryForm()`
- `CommonITILObject::displayHiddenItemsIdInput()`
- `CommonITILObject::filterTimeline()`
- `CommonITILObject::getActorIcon()`
- `CommonITILObject::getSplittedSubmitButtonHtml()`
- `CommonITILObject::showActorsPartForm()`
- `CommonITILObject::showFormHeader()`
- `CommonITILObject::showGroupsAssociated()`
- `CommonITILObject::showSupplierAddFormOnCreate()`
- `CommonITILObject::showSuppliersAssociated()`
- `CommonITILObject::showTimeline()`
- `CommonITILObject::showTimelineForm()`
- `CommonITILObject::showTimelineHeader()`
- `CommonITILObject::showUsersAssociated()`
- `Computer_Item::cloneComputer()`
- `Computer_Item::cloneItem()`
- `Computer_SoftwareLicense` class
- `Computer_SoftwareVersion` class
- `ComputerAntivirus::cloneComputer()`
- `Contract::cloneItem()`
- `Contract_Item::cloneItem()`
- `ContractCost::cloneContract()`
- `Config::checkWriteAccessToDirs()`
- `Config::displayCheckExtensions()`
- `Config::getCache()`
Cédric Anne's avatar
Cédric Anne committed
130
- `DBMysql::affected_rows()`
131
- `DBMysql::areTimezonesAvailable()`
Cédric Anne's avatar
Cédric Anne committed
132
133
134
135
136
137
138
- `DBMysql::data_seek()`
- `DBMysql::fetch_array()`
- `DBMysql::fetch_assoc()`
- `DBMysql::fetch_object()`
- `DBMysql::fetch_row()`
- `DBMysql::field_name()`
- `DBMysql::free_result()`
Cédric Anne's avatar
Cédric Anne committed
139
- `DBmysql::getTableSchema()`
Cédric Anne's avatar
Cédric Anne committed
140
141
142
- `DBMysql::insert_id()`
- `DBMysql::isMySQLStrictMode()`
- `DBMysql::list_fields()`
143
- `DBMysql::notTzMigrated()`
Cédric Anne's avatar
Cédric Anne committed
144
145
- `DBMysql::num_fields()`
- `DbUtils::getRealQueryForTreeItem()`
Stanislas's avatar
Stanislas committed
146
- `Dropdown::getDropdownNetpoint()`
Cédric Anne's avatar
Cédric Anne committed
147
- `DCBreadcrumb::showDcBreadcrumb()`
Cédric Anne's avatar
Cédric Anne committed
148
- `Document_Item::cloneItem()`
Cédric Anne's avatar
Cédric Anne committed
149
- `Entity::showSelector()`
Cédric Anne's avatar
Cédric Anne committed
150
151
152
153
154
- `Glpi\Marketplace\Api\Plugins::getNewPlugins()`
- `Glpi\Marketplace\Api\Plugins::getPopularPlugins()`
- `Glpi\Marketplace\Api\Plugins::getTopPlugins()`
- `Glpi\Marketplace\Api\Plugins::getTrendingPlugins()`
- `Glpi\Marketplace\Api\Plugins::getUpdatedPlugins()`
Cédric Anne's avatar
Cédric Anne committed
155
156
157
158
159
160
161
- `Html::autocompletionTextField()`
- `Html::displayImpersonateBanner()`
- `Html::displayMainMenu()`
- `Html::displayMenuAll()`
- `Html::displayTopMenu()`
- `Html::fileForRichText()`
- `Html::generateImageName()`
Cédric Anne's avatar
Cédric Anne committed
162
163
- `Html::jsDisable()`
- `Html::jsEnable()`
Cédric Anne's avatar
Cédric Anne committed
164
165
166
167
168
169
- `Html::nl2br_deep()`
- `Html::resume_name()`
- `Html::setSimpleTextContent()`
- `Html::setRichTextContent()`
- `Html::showProfileSelecter()`
- `Html::weblink_extract()`
Cédric Anne's avatar
Cédric Anne committed
170
171
- `Infocom::cloneItem()`
- `Itil_Project::cloneItilProject()`
Cédric Anne's avatar
Cédric Anne committed
172
173
174
175
176
- `ITILFollowup::showApprobationForm()`
- `ITILTemplate::getBeginHiddenFieldText()`
- `ITILTemplate::getBeginHiddenFieldValue()`
- `ITILTemplate::getEndHiddenFieldText()`
- `ITILTemplate::getEndHiddenFieldValue()`
Cédric Anne's avatar
Cédric Anne committed
177
178
179
180
181
182
183
184
185
186
- `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()`
Cédric Anne's avatar
Cédric Anne committed
187
- `LevelAgreement::showForTicket()`
Cédric Anne's avatar
Cédric Anne committed
188
189
- `NetworkPort::cloneItem()`
- `Notepad::cloneItem()`
Cédric Anne's avatar
Cédric Anne committed
190
- `NotificationTargetTicket::isAuthorMailingActivatedForHelpdesk()`
Cédric Anne's avatar
Cédric Anne committed
191
192
193
194
195
- `Plugin::setLoaded()`
- `Plugin::setUnloaded()`
- `Plugin::setUnloadedByName()`
- `Problem::getCommonLeftJoin()`
- `Problem::getCommonSelect()`
Cédric Anne's avatar
Cédric Anne committed
196
- `Problem::showAnalysisForm()`
Cédric Anne's avatar
Cédric Anne committed
197
198
199
- `ProjectCost::cloneProject()`
- `ProjectTeam::cloneProjectTask()`
- `ProjectTask::cloneProjectTeam()`
Cédric Anne's avatar
Cédric Anne committed
200
201
202
- `Reservation::displayReservationDay()`
- `Reservation::displayReservationsForAnItem()`
- `Search::isDeletedSwitch()`
Cédric Anne's avatar
Cédric Anne committed
203
204
205
- `Ticket::getCommonLeftJoin()`
- `Ticket::getCommonSelect()`
- `Ticket::getTicketTemplateToUse()`
Cédric Anne's avatar
Cédric Anne committed
206
207
- `Ticket::showDocumentAddButton()`
- `Ticket_Ticket::displayLinkedTicketsTo()`
Cédric Anne's avatar
Cédric Anne committed
208
209
210
- `TicketTemplate::getFromDBWithDatas()`
- `Toolbox::canUseImapPop()`
- `Toolbox::checkSELinux()`
Cédric Anne's avatar
Cédric Anne committed
211
- `Toolbox::commonCheckForUseGLPI()`
Cédric Anne's avatar
Cédric Anne committed
212
213
214
215
- `Toolbox::convertImageToTag()`
- `Toolbox::decrypt()`
- `Toolbox::doubleEncodeEmails()`
- `Toolbox::encrypt()`
Cédric Anne's avatar
Cédric Anne committed
216
- `Toolbox::getGlpiSecKey()`
Cédric Anne's avatar
Cédric Anne committed
217
218
219
220
- `Toolbox::removeHtmlSpecialChars()`
- `Toolbox::sanitize()`
- `Toolbox::unclean_html_cross_side_scripting_deep()`
- `Toolbox::useCache()`
Cédric Anne's avatar
Cédric Anne committed
221
222
223
- `Toolbox::userErrorHandlerDebug()`
- `Toolbox::userErrorHandlerNormal()`
- `Transfer::transferComputerSoftwares()`
Cédric Anne's avatar
Cédric Anne committed
224
225
- `Update::declareOldItems()`
- `User::showPersonalInformation()`
226

227
## [9.5.6] unreleased
Cédric Anne's avatar
Cédric Anne committed
228

229
230
231
232
### Changed

- `X-Forwarded-For` header value is no longer used during API access controls, API requests passing through proxies may be refused for security reasons.

233
234
### API changes

235
236
237
238
239
240
#### Changed

- All POST request made to `/ajax/` scripts are now requiring a valid CSRF token in their `X-Glpi-Csrf-Token` header.
Requests done using jQuery are automatically including this header, from the moment that the page header is built using
`Html::includeHeader()` method and the `js/common.js` script is loaded.

241
242
#### Deprecated

Cédric Anne's avatar
Cédric Anne committed
243
- Usage of "followups" option in `CommonITILObject::showShort()`
244
- `CommonITILTask::showInObjectSumnary()`
Cédric Anne's avatar
Cédric Anne committed
245
- `ITILFollowup::showShortForITILObject()`
246

247
## [9.5.5] 2021-04-13
Johan Cwiklinski's avatar
Johan Cwiklinski committed
248
249
250
251
252
253
254

### API changes

#### Changed

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

255
## [9.5.4] 2021-03-02
Cédric Anne's avatar
Cédric Anne committed
256
257
258
259
260

### Changed

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

261
262
263
264
265
266
### API changes

#### Deprecated

- `Search::getMetaReferenceItemtype()`

267
268
269
270
## [9.5.3] 2020-11-25

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

Johan Cwiklinski's avatar
Johan Cwiklinski committed
272
## [9.5.2] 2020-10-07
273
274
275
276
277
278

### API changes

#### Removed

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

281
## [9.5.1] 2020-07-16
282
283

## [9.5.0] 2020-07-07
284

Johan Cwiklinski's avatar
Johan Cwiklinski committed
285
### Added
286

287
288
289
- 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.
290
- CLI commands to enable and disable maintenance mode.
291
- Operating system links on Monitors, Peripherals, Phones and Printers.
292
- Add datacenter items to global search
293
- Project task search options for Projects
294
- Automatic action to purge closed tickets
295
- Ability to automatically calculate project's percent done
cconard96's avatar
cconard96 committed
296
- Software link on Phones.
cconard96's avatar
cconard96 committed
297
- Add and answer approvals from timeline
298
- Add lightbox with PhotoSwipe to timeline images
299
- Ability to copy tasks while merging tickets
300
- the API gives the ID of the user who logs in with initSession
cconard96's avatar
cconard96 committed
301
- Kanban view for projects
302
- Network ports on Monitors
cconard96's avatar
cconard96 committed
303
- Add warning when there are unsaved changes in forms
304
305
- 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
306

307
308
### Changed

309
- 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).
310
- `scripts/migrations/racks_plugin.php` has been replaced by `glpi:migration:racks_plugin_to_core` command available using `bin/console`
311
- Encryption alogithm improved using libsodium
Johan Cwiklinski's avatar
Johan Cwiklinski committed
312
313
314

### API changes

Cédric Anne's avatar
Cédric Anne committed
315
316
#### Added

317
- Add translation functions `__()`,  `_n()`,  `_x()` and  `_nx()` in javascript in browser context.
Cédric Anne's avatar
Cédric Anne committed
318
- `Migration::renameItemtype()` method to update of database schema/values when an itemtype class is renamed
319
- Menu returned by `CommonGLPI::getMenuContent()` method override may now define an icon for each menu entry.
flonou's avatar
flonou committed
320
321
322
323
324
- `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
325

326
327
#### Changes

328
- jQuery library has been upgraded from 2.2.x to 3.4.x. jQuery Migrate is used to ensure backward compatibility in most cases.
329
- `DBmysqlIterator::handleOrderClause()` supports QueryExpressions
330
- Use Laminas instead of deprecated ZendFramework
331
332
333
- 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.
334
335
336
- 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
337

Johan Cwiklinski's avatar
Johan Cwiklinski committed
338
339
340
341
342
343
344
345
346
347
348
349
350
351
#### 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()`
352
353
- `getAllDatasFromTable` renamed to `getAllDataFromTable()`
- Usage of `$order` parameter in `getAllDataFromTable()` (`DbUtils::getAllDataFromTable()`)
354
- `Ticket::getTicketTemplateToUse()` renamed to `Ticket::getITILTemplateToUse()`
Cédric Anne's avatar
Cédric Anne committed
355
356
357
- `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
358
359
360
361
362
363
- `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`
364
365
- 'getRealQueryForTreeItem()'
- ``getCommonSelect`` and ``getCommonLeftJoin()`` from ``Ticket``, ``Change`` and ``Problem`` are replaced with ``getCommonCriteria()`` compliant with db iterator
366
367
368
- `Config::checkWriteAccessToDirs()`
- `Config::displayCheckExtensions()`
- `Toolbox::checkSELinux()`
369
370
- `Toolbox::userErrorHandlerDebug()`
- `Toolbox::userErrorHandlerNormal()`
371
372
- `Html::jsDisable()`
- `Html::jsEnable()`
373
374
375
376
- `Plugin::setLoaded()`
- `Plugin::setUnloaded()`
- `Plugin::setUnloadedByName()`
- Usage of `$LOADED_PLUGINS` global variable
377
- `CommonDBTM::getRawName()` replaced by `CommonDBTM::getFriendlyName()`
flonou's avatar
flonou committed
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
- `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()`
402
- Usage of `GLPIKEY` constant
Cédric Anne's avatar
Cédric Anne committed
403
- `Toolbox::encrypt()` and `Toolbox::decrypt()` because they use the old encryption algorithm
Johan Cwiklinski's avatar
Johan Cwiklinski committed
404

405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
#### 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()`
423
424
425
426
- `Plugin::hasBeenInit()`
- 'SELECT DISTINCT' and 'DISTINCT FIELDS' criteria in `DBmysqlIterator::buildQuery()`
- `CommonDBTM::getTablesOf()`
- `CommonDBTM::getForeignKeyFieldsOf()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
427
428
429
430
- `TicketFollowup`
- `getDateRequest` and `DbUtils::getDateRequest()`
- `Html::convertTagFromRichTextToImageTag()`
- `Transfer::createSearchConditionUsingArray()`
431
- Unused constants GLPI_FONT_FREESANS and GLPI_SCRIPT_DIR
432

433
434
435
## [9.4.6] 2020-05-05

## [9.4.5] 2019-12-18
436

437
## [9.4.4] 2019-09-24
Cédric Anne's avatar
Cédric Anne committed
438
439
440
441
442
443
444

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

446
447
448
449
450
451
452
453
### API changes

#### Deprecated

The following methods have been deprecated:

- `Html::convertTagFromRichTextToImageTag()`

454
## [9.4.2] 2019-04-11
455
456
457
458
459
460
461
462
463
464
465

### API changes

#### Deprecated

The following methods have been deprecated:

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

## [9.4.1] 2019-03-15
466

467
468
469
### API changes

#### Added
470
471

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

474
475
476
477
478
#### Deprecated

The following methods have been deprecated:

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

481
482
483
484
485
#### Removed

- Drop `CommonITILObject::showSolutions()`.

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

487
### Added
cconard96's avatar
cconard96 committed
488

489
- Ability to link project with problems and tickets.
490
- Ability to specify creation and modification dates during CommonDBTM object add method
491
492
493
494
- 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.
495
496
- Ability to merge and split tickets.
- Search on devices from Printers and Network equipments.
497
- Ability to specify creation and modification dates during CommonDBTM object add method.
498

Johan Cwiklinski's avatar
Johan Cwiklinski committed
499
500
### Changed
- `license_id` field in `glpi_items_operatingsystems` table has been renamed to `licenseid`
501
502
503
504
505
506
- `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`
507
- `scripts/add_creation_date.php` has been replaced by `glpi:migration:build_missing_timestamps` command available using `bin/console`
508
- `scripts/checkdb.php` has been replaced by `glpi:database:check` command available using `bin/console`
509
- `scripts/cliinstall.php` has been replaced by `glpi:database:install` command available using `bin/console`
510
- `scripts/cliupdate.php` has been replaced by `glpi:database:update` command available using `bin/console`
Cédric Anne's avatar
Cédric Anne committed
511
- `scripts/ldap_mass_sync.php` has been replaced by `glpi:ldap:synchronize_users` command available using `bin/console`
512
- `scripts/innodb_migration.php` has been replaced by `glpi:migration:myisam_to_innodb` command available using `bin/console`
513
- `scripts/unlock_tasks.php` has been replaced by `glpi:task:unlock` command available using `bin/console`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
514

Johan Cwiklinski's avatar
Johan Cwiklinski committed
515
516
### API changes

Cédric Anne's avatar
Cédric Anne committed
517
518
#### Changes
- Plugins are now loaded in ajax files.
Cédric Anne's avatar
Cédric Anne committed
519
- `TicketFollowup` has been replaced by `ITILFollowup`
520
521
522
523
524
- `$num` parameter has been removed from several `Search` class methods:
   - `addSelect()`,
   - `addOrderBy()`,
   - `addHaving()`,
   - `giveItem()`
525
- `NotificationTarget::getMode()` visibility is now `public`.
526
- Added `add_recipient_to_target` hook, triggered when a recipient is added to a notification.
Cédric Anne's avatar
Cédric Anne committed
527

528
529
530
#### Deprecated

- Remove `$CFG_GLPI['use_rich_text']` parameter. Will now be `true` per default.
531
532
- 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
533
- Usage of `TicketFollowup` class has been deprecated.
534
535
536
- 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
537
538
539

The following methods have been deprecated:

540
- `KnowbaseItemCategory::showFirstLevel()`
Cédric Anne's avatar
Cédric Anne committed
541
542
543
544
- `Ticket::getTicketActors()`
- `Ticket::processMassiveActionsForOneItemtype()`
- `Ticket::showFormMassiveAction()`
- `Ticket::showMassiveActionsSubForm()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
545
546
- `NotificationTarget::getProfileJoinSql()`
- `NotificationTarget::getDistinctUserSql()`
547
- `NotificationTargetCommonITILObject::getProfileJoinSql()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
548
- `RuleCollection::getRuleListQuery()`
549
550
- `getNextItem()`
- `getPreviousItem()`
551
552
553
- `CommonDBChild::getSQLRequestToSearchForItem()`
- `CommonDBConnexity::getSQLRequestToSearchForItem()`
- `CommonDBRelation::getSQLRequestToSearchForItem()`
554
555
- `Project::addVisibility()`
- `Project::addVisibilityJoins()`
556

Johan Cwiklinski's avatar
Johan Cwiklinski committed
557
558
#### Removed

559
560
561
562
- 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
563
564
565
566
567
568
569
- 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
570
- Drop ITIL Tasks, Followups and Solutions `showSummary()` and massive actions related methods that are replaced with timeline
Johan Cwiklinski's avatar
Johan Cwiklinski committed
571

Cédric Anne's avatar
Cédric Anne committed
572
- Drop class alias `Event` for `Glpi\Event`
573
- Drop `Zend\Loader\SplAutoloader` interface
Johan Cwiklinski's avatar
Johan Cwiklinski committed
574
- Drop all methods that have been deprecated in GLPI 9.2
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
  - `_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()`
621
- Drop all methods that have been deprecated in GLPI 9.3.0
622
623
624
  - `CommonDBTM::getFromDBByQuery()`
  - `CommonDBTM::getSearchOptions()`
  - `CommonDBTM::getSearchOptionsNew()`
625
  - `CommonDBTM::getSearchOptionsToAddNew()`
626
627
628
629
630
631
632
633
634
635
  - `CommonITILObject::getStatusIconURL()`
  - `DBMysql::list_tables()`
  - `Dropdown::showPrivatePublicSwitch()`
  - `NotificationTargetProjectTask::getTeamContacts()`
  - `NotificationTargetProjectTask::getTeamGroups()`
  - `NotificationTargetProjectTask::getTeamSuppliers()`
  - `NotificationTargetProjectTask::getTeamUsers()`
  - `Search::constructDatas()`
  - `Search::displayDatas()`
  - `Transfer::transferComputerDisks()`
636
637
638
639
- 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
640
641
642
  - `Html::checkAllAsCheckbox()`
  - `Html::scriptEnd()`
  - `Html::scriptStart()`
643
  - `Plugin::isAllPluginsCSRFCompliant()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
644
  - `Profile::getUnderActiveProfileRestrictRequest()`
645
646
  - `Toolbox::is_a()`
- Drop all constants that have been deprecated in GLPI 9.3.1
Cédric Anne's avatar
Cédric Anne committed
647
648
649
650
651
  - `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
  - `CommonDBTM::HAS_DUPLICATE`
  - `CommonDBTM::NOTHING_TO_DO`
  - `CommonDBTM::SUCCESS`
  - `CommonDBTM::TYPE_MISMATCH`
652
653
- Drop all methods that have been deprecated in GLPI 9.3.2
 - `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
654
 - `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
655

Johan Cwiklinski's avatar
Johan Cwiklinski committed
656
## [9.3.3] 2018-11-27
Johan Cwiklinski's avatar
Johan Cwiklinski committed
657

Johan Cwiklinski's avatar
Johan Cwiklinski committed
658
659
660
661
662
663
664
665
666
667
668
669
### 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
670
671
672

### API changes

673
674
675
#### Changed

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

678
679
680
681
#### Deprecated

The following methods have been deprecated:

Johan Cwiklinski's avatar
Johan Cwiklinski committed
682
683
684
685
- `CommonITILTask::displayTabContentForItem()`
- `CommonITILTask::showFormMassiveAction()`
- `CommonITILTask::showSummary()`
- `ITILSolution::displayTabContentForItem()`
686
- `ITILSolution::removeForItem()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
687
- `ITILSolution::showSummary()`
688
- `Session::isViewAllEntities()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
689
690
691
692
- `TicketFollowup::processMassiveActionsForOneItemtype()`
- `TicketFollowup::showFormMassiveAction()`
- `TicketFollowup::showMassiveActionsSubForm()`
- `TicketFollowup::showSummary()`
693
- `Plugin::removeFromSession()`
694
695

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

Johan Cwiklinski's avatar
Johan Cwiklinski committed
697
698
699
### Added
- List receivers folders to choose imported/refused folders

Johan Cwiklinski's avatar
Johan Cwiklinski committed
700
701
702
703
### API changes

#### Deprecated

704
705
- Usage of string `$condition` parameter in `Group_User::getUserGroups()` has been deprecated
- Usage of string `$condition` parameter in `Group_User::getGroupUsers()` has been deprecated
706
707
708
709
710
- 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
711

Johan Cwiklinski's avatar
Johan Cwiklinski committed
712
713
The following methods have been deprecated:

714
- `Config::getSQLMode()`
715
- `DBMysql::checkForCrashedTables()`
716
- `Html::checkAllAsCheckbox()`
717
718
- `Html::scriptEnd()`
- `Html::scriptStart()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
719
- `Toolbox::is_a()`
720
- `ComputerVirtualMachine::getUUIDRestrictRequest()`
721
722
- `Plugin::isAllPluginsCSRFCompliant()`
- `Profile::getUnderActiveProfileRestrictRequest()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
723

724
725
726
727
728
729
730
The following constants have been deprecated:
- `CommonDBTM::ERROR_FIELDSIZE_EXCEEDED`
- `CommonDBTM::HAS_DUPLICATE`
- `CommonDBTM::NOTHING_TO_DO`
- `CommonDBTM::SUCCESS`
- `CommonDBTM::TYPE_MISMATCH`

731
## [9.3.0] 2018-06-28
Johan Cwiklinski's avatar
Johan Cwiklinski committed
732
733
734
735
736
737
738

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

### Changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
741
- Switch MySQL engine from MyIsam to Innodb
742
- Rework solutions for Tickets, Problems and Changes to support history
Johan Cwiklinski's avatar
Johan Cwiklinski committed
743
- Disks can be attached to network equipments and printers
744
745
746
747

### API changes

#### Changes
748
- Added `DB::insert()`, `DB::update()` and `DB::delete()` to replace raw SQL queries
749
- `CommonITILObject::showMassiveSolutionForm()` now takes a `CommonITILObject` as argument
750
751
- `Profileuser::getUserProfiles()` `$filter` parameter is now an array
- `User::getFromDBbyEmail()` `$condition` parameter is now an array
752
- Select2 javascript component has been upgraded to 4.0 version, see [Migrating from Select2 3.5](https://select2.org/upgrading/migrating-from-35)
753
- `CommonDevice::getItem_DeviceType()` has a new optional `$devicetype` parameter
754
755
756

#### Deprecated

757
758
759
- Usage of string `$filter` parameter in `Profileuser::getUserProfiles()` has been deprecated
- Usage of string `$condition` parameter in `User::getFromDBbyEmail()` has been deprecated

760
761
The following methods have been deprecated:

762
- `CommonDBTM::getFromDBByQuery()`
763
764
765
766
767
768
- `CommonDBTM::getSearchOptions()`
- `CommonDBTM::getSearchOptionsNew()`
- `CommonDBTM::getSearchOptionsToAddNew()`
- `CommonITILObject::getStatusIconURL()`
- `DBMysql::list_tables()`
- `Dropdown::showPrivatePublicSwitch()`
769
770
771
772
- `NotificationTargetProject::getTeamContacts()`
- `NotificationTargetProject::getTeamGroups()`
- `NotificationTargetProject::getTeamSuppliers()`
- `NotificationTargetProject::getTeamUsers()`
773
774
775
- `Search::constructDatas()`
- `Search::displayDatas()`
- `Transfer::transferComputerDisks()`
776

777
778
779
780
#### Removed

- `CommonITILValidation::isAllValidationsHaveSameStatusForTicket`
- `CommonITILValidation::getNumberValidationForTicket`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
781
782
783
- PHPCas library is no longer provided (for licensing issues)

## [9.2.4] 2018-06-21
784

Johan Cwiklinski's avatar
Johan Cwiklinski committed
785
## [9.2.3] 2018-04-27
786

Johan Cwiklinski's avatar
Johan Cwiklinski committed
787
## [9.2.2] 2018-03-01
788

Johan Cwiklinski's avatar
Johan Cwiklinski committed
789

790
791
792
793
794
### Deprecated

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

Johan Cwiklinski's avatar
Johan Cwiklinski committed
796
## [9.2.1] 2017-11-16
797
798

### Added
799

800
801
- Search engine, added ``itemtype_item_revert`` jointype

802
803
804
805
### Deprecated

- `Ticket::convertContentForNotification()`

806
## [9.2] 2017-09-25
Johan Cwiklinski's avatar
Johan Cwiklinski committed
807
808
809
810
811

### 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
812
- Direct links to KB article's title for a direct access
813
- Load minified CSS and JS files (core and plugins) that are generated on release
Johan Cwiklinski's avatar
Johan Cwiklinski committed
814
- Link beetween software licenses
Johan Cwiklinski's avatar
Johan Cwiklinski committed
815
- Alerts on saved searches
Johan Cwiklinski's avatar
Johan Cwiklinski committed
816
817
- 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
818
- Simcard component
Johan Cwiklinski's avatar
Johan Cwiklinski committed
819
- Synchronization field for LDAP
820
821
822
823
824
825
826
827
828
829
- 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
830
831

### Changed
832
- Many bugs have been fixed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
833
834
- Display knowledge base category items in tickets using a popup instead of a
new whole window
835
- Reviewed all richtext editor (tinymce) and their upload parts, now more simpler and intuitive
836
- Don't ask user to select a template if there is no configured template
837
838
839
840
- 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
841

842
843
### API changes

844
845
846
#### Changes

- `CommonDBTM::getTable()` signature has changed
847
- `User::getFromDBbyToken()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
848
- `Bookmark` has been renamed to `SavedSearch`
849
- Update to latest jsTree plugin
850
- `RuleDictionnarySoftwareCollection::versionExists()` signature has changed
Johan Cwiklinski's avatar
Johan Cwiklinski committed
851
852
- `NotificationTemplate::getDataToSend()` signature has changed
- `QueuedMail` has been renamed to `QueuedNotification`
853
- `CommonDBTM::mailqueueonaction` has been renamed to `CommonDBTM::notificationqueueonaction`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
854
- `NotificationTarget::getSender()` no longer takes any parameters (was not used)
Johan Cwiklinski's avatar
Johan Cwiklinski committed
855
856
857
- `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
858
- `NotificationTarget` property `datas` has been renamed to `data`
859

860
861
#### Deprecated

862
863
864
865
- 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

866
867
868
869
The following methods have been deprecated:

- `_e()`
- `_ex()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
870
871
- `Bookmark::mark_default()`
- `Bookmark::unmark_default()`
872
- `CommonTreeDropodwn::recursiveCleanSonsAboveID()`
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
- `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()`
911
- `formatOutputWebLink()`
912
913
914
915
916

#### Removals

The following methods have been dropped:

yllen's avatar
yllen committed
917
918
919
920
- `Ajax::displaySearchTextForDropdown()`
- `Ajax::getSearchTextForDropdown()`
- `Bookmark::changeBookmarkOrder()`
- `Bookmark::moveBookmark()`
921
922
923
924
- `CommonGLPI::addDivForTabs()`
- `CommonGLPI::showTabs()`
- `CommonGLPI::showNavigationHeaderOld()`
- `CommonGLPI::show()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
925
- `Dropdown::showInteger()`
926
- `DBMysql::field_flags()`
yllen's avatar
yllen committed
927
928
929
- `Html::showDateFormItem()`
- `Html::showDateTimeFormItem()`
- `Profile::dropdownNoneReadWrite()`
Johan Cwiklinski's avatar
Johan Cwiklinski committed
930
931
- `Toolbox::get_magic_quotes_runtime()`
- `Toolbox::get_magic_quotes_gpc()`
932
- `Dropdown::showAllItems()`
933

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