:: Version 2.4.0 ::

iTop Change Log



  • Portal: Support for MUST_CHANGE flag on CaseLog attributes in transitions.
  • Portal: Objects and external keys in linkedsets (forms) now have hyperlinks if access is authorized regarding the user's scopes.
  • Portal: Exception raised in BrowseBrick when one of the levels had no scope.
  • Portal: Add CSS/JS hooks on object forms for the current state: CSS class on <form> tag: form_object_state_<STATE_CODE>. HTML attribute on <form> tag: data-object-state=“<STATE_CODE>”

Console UI

  • Enable WYSIWYG feature in CaseLog / HTML attributes on transition.
  • Fix MUST_CHANGE flag behavior on CaseLog attributes in the console.
  • Allow email links (mailto) in HTML attributes.
  • Allow BLOCKQUOTE tag in HTML attributes.
  • Console UI improvements in details forms: Columns size optimization.
  • Tooltip on (none empty) String attribute so long value can be seen without scrolling to the end of the input.
  • OQL attribute displayed as Text/HTML attributes.“
  • Better ergonomics for “Add To Dashboard” popup window.
  • In console dashlets add a scrolling bar on list, if not enough width for content.
  • Restore Organization selector adaptive width
  • Fix AttributeEnum display as vertical radio buttons in console UI.
  • Fix dictionary typo in Notification header text.
  • Show/Hide Obsolete data in Audit based on user preference
  • Show/Hide Obsolete data in CSV export based on user preference
  • Include Archived data in dashlets when in archived mode


  • New configuration parameter (disable_attachments_download_legacy_portal) to disable attachments download from the legacy portal. Default is “true”!
  • Setup : add checks on PHP and MySQL version to warn for deprecated versions.
  • Enable data synchronization for applications classes (such as Localized Data).
  • Fixed losing the additional links attributes values during impact analysis update. The issue was only visible when attributes were added to the links (FunctionalCIs and Contacts).
  • Fix impact analysis relation upstream description.
  • Show “delete” and “bulk delete” rights in user's grant matrix.
  • New Context Tag on CRON background tasks.
  • Fix TemplateFieldsHandler::IsNull() for EmailNotification with no RequestTemplate selected.
  • Add ArchivedObjectException on MetaModel:GetObject().
  • Add ContextTag on CRON background tasks (eg. “CRON:Task:<CLASS_NAME_OF_THE_CURRENT_TASK>”). Introduced for the “Mail to ticket automation” extension, so we know when a Ticket is created/updated from an email.”
  • Regression introduced in iTop 2.4 : Unable to notify when a template was used with a linkset ($this→functionalcis_list$).
  • Fix regression in 2.4.0 where GET_LOCK is called with a name length greater than 64 characters on MySQL > 5.7.5.
  • Fixed “Notice: undefined index 0” in the portal. UserRequest/Incident::ComputePriority() was failing when attributes impact was still undefined.


  • Fix Backup very long to generate.
  • PHAR is not used anymore for the backup/restore feature.
  • The disk space necessary to create a backup is now limited to the size of the uncompressed archive + the size of the compressed archive.
  • All the temporary files are now stored into ““web/data/backup/tmp”” folder to avoid access rights issues on temporary folders.
  • Fixed check_backup reporting non existing file.
  • More logs added in case of error during the cron backup.“
  • Fix regression: check_backup.php always returning “missing backup file” in 2.4.0.



  • New Ticket Lifecycle: Enable a field to be requested or changed only on a particular transition, instead of on all transitions ending on a given state.
  • Move the “must_change” flag on transitions if you don't want the user to be forced to change a field on every edition in a state.
  • Display stimulus codes in the Datamodel page tab:Lifecycle
  • Fix Fatal error on transition with AttributeBlob or AttributeCaseLog

CSV import

  • Images and File documents can now be exported using CSV and Excel formats (the export provides an URL (with iTop authentication required) where to download the actual image/document).
  • CSV import of documents and images via URLs is supported (including URLs pointing to iTop itself). Administrators can also provide directly the path to a local file on the server.”
  • CSV Import now supports friendlynames as reconciliation keys.
  • Enable CSV import of request template fields
  • Fix: Ticket from emails: duplicated dictionary entries which was an issue on CSV import.


  • Email notification: new placeholder to provide the current user name in the body of the email, so the person who is triggering the notification who may not be the agent nor the caller.
  • Fix Notification: Date & time format is now applied when using a date(time) attribute in a placeholder (eg. Notifications). Note: $this→raw(attcode)$ can be used to display value in SQL format like before.

Conf & Setup

  • New configuration parameter 'allow_menu_on_linkset' (boolean, default value false) to display actions in linkset in view mode (new, modify, delete, …).
  • Setup: After a succesfull Setup, XML files are stored under /data with the complete view of the datamodel with and without delta.
  • Setup: Store user selection on setup, so AboutBox is much clearer for users, providing User selection instead of cryptic module names.
  • Setup: supports now changes of Configuration parameter: config db_charset.
  • Setup: New hook available after data load (ModuleInstaller::AfterDataLoad())


  • Backup: Backup files could not exceed 4Gb (technology limitation). The fix consists in archiving the backup as a tar.gz instead of a zip. As a consequence, installing iTop now requires TWO additional PHP modules: phar/zlib. The zip module remains mandatory because it is used in other places. The restore utility accepts both legacy zip files and brand new tar.gz files. DBBackup::CreateZip is deprecated in favor of DBBackup::CreateCompressedBackup. DBRestore::RestoreFromZip is deprecated in favor of DBRestore::RestoreFromCompressedFile (which autodetects the format for backward compatibility).
  • Backup: Allow database write access during a backup (can still be slow).


  • Support of PHP7, which divides by two the load on the web server
  • Internal emulation of apc(u), to divide by 5 the load on the web server (varies a lot, depending on the page, and cache hit ratio)


  • DataSynchro: Enable bulk deletion of Data Synchro Replica
  • DataSynchro: Creation and edition was broken due to the new object set API from ormLinkSet. Backward compatible method have been introduce to ensure plugins and modules compatibility. That being said they are already flagged as deprecated and should not be used. New: Using those deprecated methods will raise a PHP deprecated error.


  • Security: Portal OpenSans font embedded in iTop instead of fetching from google servers.
  • Rework on ormLinkSet BC with DBObjectSet. PHP notice are not thrown anymore, see PHPDoc instead. GetColumnAsArray() introduced.
  • Portal: Refactoring of const DEFAULT_COUNT_PER_PAGE in several modules
  • Reentrance issue on cmdbAbstractObject when coming from an extension implementing iApplicationObjectExtension.
  • Added an index to prevent a slow down when a lot of tickets have been validated by the mean of an approval process
  • Designer Connector has been revamped to avoid MTP temporary errors, diseappearing at the following Setup.
  • #1499: Regression in 2.4.0 beta: setup was failing with the message “cannot redeclare class XXXXXXX_0” when loading some extensions modules.
  • Fix: PHP Warning on not initialized variable $sHTMLValue in cmdbAbstractObject::GetFormElementForField().


  • The main menu “Helpdesk” could not be moved upward/downward by the mean of an XML delta (designer)
  • Internal: LoginWebPage title defaultvalue is now a dictionary entry ('UI:Login:Title')
  • Limitation: an a class having too many external keys, the update query fails with message “too many tables”
  • Cleaned up old datamodel (1.x) as it was no longer maintained and could not be upgraded.
  • Show product name on branding logo title instead of a generic “iTop” text.

Portal possibilities

  • Allowed portals are now displayed in the console user menu.
  • Portal: New “mosaic” browse mode for BrowseBrick.
  • Portal: Form layout optimizations
  • Portal: ExternalField support in forms has been improved. For example, email and url links were not displayed as proper HTML.
  • Portal: Only editable fields are now passed in forms submit, fixing issue where a portal user could unwillingly change the UserRequest status if a Support Agent had assign the ticket while the portal user was editing.
  • Portal: New filter brick that pre-filters a Browse or Manage brick results from the home page.
  • Portal: Linkset widget opening was throwing a warning message on IE9.
  • Portal: ExternalField support in forms has been improved. For example, email and url links were not displayed as proper HTML.
  • Portal: Option to display LinkedSet as opened in a form
  • Portal: Picture/Preferences/Password forms can now be disabled in the user profile
  • Portal: Notification URLs poiting to a portal were not working when several portal instances were configured.
  • Portal: Tabs in ManageBrick display the objects count.
  • Portal: Autocomplete fields were not showing all items when result count was below autocomplete display limit (eg. Showing only 2 elements out of 18 when display limit set to 20)
  • Portal: Added UI extension APIs similar to those used in the console (Experimental!)
  • Portal: ManageBrick tabs could show objects that were not supposed to be shown due to a bad OQL interpretation.
  • Portal: Display / download of blob attributes and attachments in the portal was not compatible with portal configuration and silos by-passing.

Console User Interface

  • Improve UI in object details in the console.
  • CKEditor: edition of HTML source code is now available. Filtering on allowed tags by CKEditor himself then by iTop for security reasons will still apply.
  • Added some attributes to the HTML sanitizer (title for a tag, alt / title for img tag).
  • Display actions on linkset in view mode (new, modify, delete, …).
  • New option to create an object with the [+] button on external key pointing to an abstract class.
  • Existing value always kept while editing an ExternalKey field, even if not in filter.
  • Showing action in object details only when the target class is writable (Archive mode off, access mode “write”, …)
  • Impact analysis: UI Glitch in tooltip when text was too long.
  • Fixed UI in console edit forms that were going over their container sometimes.
  • Added scrollbars to modal dialog for CSV export.
  • Fix Stop displaying Ticket objects in a CI's ongoing tickets tab when the impact code is 'not impacted'.
  • Fix: Edition of an object with an ExternalKey on an object that the user is not allowed to see
  • Fix: concurrent access on n:n relationships when edited from both end of the relation or when edited from portal and console in parallel.
  • Fix: Date format handling in LinkedSetIndirect was causing fatal error on object edition.
  • Fix: Edition of an object with not allowed (silos) remote objects in a linkedset causes fatal error.
  • Fix: Hierarchy button when editing external key
2_4_0/release/change_log.txt · Last modified: 2018/02/14 13:22 (external edit)
Back to top