:: Version 2.5.0 ::

iTop 2.5 Community

What's new in iTop 2.5 Community

Since this iTop version PHP and MySQL requirement have changed:
  • Minimum PHP 5.6, recommended ​PHP 7.1 (PHP 7.2 is not supported yet)
  • Minimum MySQL 5.5.3 (or MariaDB 5.5), recommended MySQL 5.7

This is the main new feature brought by this version. We have totally redesigned the way the search of objects is performed and this brings multiple new capabilities. You can search for:

  • Objects which do have a particular field which is empty
    • Ticket with no Resolution code
    • Ticket with no Agent
    • Customer Contract with no End date
  • Objects which do have a particular field which is defined, whatever is the value, as long as there is one.
    • Server which do have a Management ip defined
    • Active Customer Contract with an End date
  • Objects with an ExternalKey which is in a set of values
    • Ticket where the Caller is “Pablo Picasso” OR “Agatha Christie” OR “Anna Gavalda”
    • Ticket for Customer “Demo” or “Client Special”

  • You can combine both features:
  • Ticket where the Agent is “Edgard Poe” OR agent is undefined

  • Objects which have a numeric field above, under or within a range of values
    • Datacenter Devices with a height (rack units) above 3
  • Objects with a date above, under or in a range of fixed dates has been simplified.

  • Your Shortcut and most Search Menus, will display - at the top of the results list - the filtering criterion, allowing to see and even modify them, so you can filter further or change the filtering with a different criteria.
    • Filter further the “Ticket assigned to me”

More details on New Search



The Manage Brick was enhanced to display Bar and Pie charts on the Portal.
More details


The Group by dashlet was enhanced to offer other Aggregation function


Admin menus

REST Web services

The access to the REST web services is now restricted to the users having the profile REST Services User. If you want to emulate the previous behavior (i.e. allow any user to access the REST web services) add the configuration parameter secure_rest_services and set it to false.

tracking REST users

  1. Set the configuration parameter, when you want to start recording who is accessing your iTop
    'log_rest_service' => 'true',
  2. Then run this query, to see who used it since you activated the parameter
    SELECT EventRestService
  3. Last remove the parameter or change the value
    'log_rest_service' => 'false',

Secure Web-DB traffic

Form Prefill

When you edit a Team (in fact any object with an Organization field) and start to add Members (or any objects with a n:n relationship), then the search of those Persons is automatically filtered on the Organization of the Team.
In a similar manner, if you create a new Caller person while editing a User Request, that Person Organization will be prefilled with the User Request Organization.

This magic is valid in 95% of the cases, but there are always corner cases, which can now be addressed:

Three new methods have been declared and can be defined on the Source object class

  • PrefillSearchForm(&$aContextParam) to preset fields in the search frame of related objects
  • PrefillCreationForm(&$aContextParam) to preset fields in an object creation form
  • PrefillTransitionForm(&$aContextParam) to preset fields in a transition form

The Context parameter provides the original object from which the Search, the Creation or the Transition was invoked.

/** Example of how on the Contract class, the Search has been modified to search for:
*      Services from the Provider only
*      Contacts and Documents from both the Customer and the Provider **/
public function PrefillSearchForm(&$aContextParam)
  if($aContextParam['dest_class'] == 'Service' || is_subclass_of($aContextParam['dest_class'], 'Service'))
    if(MetaModel::IsValidAttCode($aContextParam['dest_class'],'org_id') && !empty($aContextParam['source_obj']->Get('provider_id')))
        $aContextParam['filter']->AddCondition('org_id', $aContextParam['source_obj']->Get('provider_id'));
  elseif (($aContextParam['dest_class'] == 'Contact' || is_subclass_of($aContextParam['dest_class'], 'Contact'))
          || ($aContextParam['dest_class'] == 'Document' || is_subclass_of($aContextParam['dest_class'], 'Document')))
    if(MetaModel::IsValidAttCode($aContextParam['dest_class'],'org_id') && !empty($aContextParam['source_obj']->Get('provider_id')) && !empty($aContextParam['source_obj']->Get('org_id')))
      $aOrgIds = array( $aContextParam['source_obj']->Get('provider_id'),
      $aContextParam['filter']->AddCondition('org_id', $aOrgIds , 'IN');


A new AttributePhoneNumber type has been created which allows smooth integration with IP phone applications, such as Skype for example.
The Phones attribute of the class Person were changed in the standard Datamodel to use it and be now clickable.

New Dashboard Brick

There is a new AggregatePageBrick which allow to have more than one Welcome page on your portal.

Configuration Editor

The Configuration file editor has been changed to use one with syntax color, much easier to read.

DataModel visualisation

The Datamodel viewer was entirely rewritten, it offers now:

  • A class selection tool with autocomplete
  • A graphical representation of the class and its neighbours
  • A simplified list of attributes

Support of 4 bytes characters

In order to be able to use characters outside of the BMP, iTop now uses the utf8mb4 MySQL charset that was introduced in version 5.5.3.

2_5_0/release/2_5_whats_new.txt · Last modified: 2018/04/25 17:57 by vdumas
Back to top