iTop 3.0 Community
Beta version 3.0.0 release date: April 2021
3.0.0 release date: summer 2021
What's new in iTop Community
Main thing that you cannot miss: the layout, the colors, the icons, the menus,… all this has totally changed
Tabs layout & navigation
With 2 parameters:
Layout defining where the tabs titles of an object are displayed:
Horizontalas before and
verticalon the left part of the object display.
Navigation defining how you can switch from one tab to another:
classicas before, only one tab at a time is displayed,
scrollableall tabs are displayed in the same page and you can scroll through them with your mouse. The scrollable mode do not display tabs which are time consuming, but just an image on which you need to click to get the content.
Those modes applies on all objects of iTop, as well as on the edit mode
Rich Text Editor
This option specify if when you display the details of an object with a caselog (a Ticket in general, but it applies to all object having at least one caselog), you directly have the possibility to enter something in the caselog and sent it (Entry form opened by default).
If you like to navigate quickly just with the keyboard, we have added shortcut for frequent actions. As those default shortcut may collide with those of your browser or operating system, you can change them
The Quick search is now on the left.
The main new feature is that it remembers your past search strings
As before, when you reopen the Quick search, your last search is still there, so if you made a typo, you can fix it without reentering the whole string.
This feature can now be configured through new configuration parameters global_search.xxx, which allow to:
disable completely the feature
remove the tracking and display of the past searches
fine-tuned the number of past searches which are kept (default 10)
Brand new feature, it allows you to quicky create any object without knowing where is the menu to do it, if even there is one.
Just type the beginning of the class you want, and you are proposed with the matching classes.
If there is just one matching class, just press enter and the creation form for that class is displayed.
You can use the arrow-keys from your keyboard to navigate in the proposed list
This feature can be configured through configuration parameters quick_create. .xxx, which allow to:
disable completely the feature
remove the tracking and display of the past creations
fine-tuned the number of past creations which are kept (default 10)
fine-tuned the number of results displayed by the autocomplete feature (default 10)
A quick way to go back to iTop homepage, I am sure you had dreamed about it, and we made it:
This top left icon was never going where you wanted, I bet, now it will bring you back to iTop homepage, by default it is the Welcome dashboard!
In fact, all menu icons can be customized.
Expand & Collapse
Use the hamburger icon to expand and collapse the first level of menus.
When the menubar is expended, it displays a text along with the group icons.
When the menubar is collapsed, you have a visual feedback with a red circle if you have filtered on a particular organization.
Exact number of objects in predefined queries menus, is
displayed in the menu itself, unless it is above 99, in which case
99+ just indicates that they are more than 99.
Search in menus
Just enter some characters and it displays the menus containing the entered string
Alt+Mon Chrome to search in menus without the mouse
Caselog edition alone
Within the console, the caselogs are editable even if the associated object is in read mode (in general a Ticket, but this applies to any object). This allows the agent to be more efficient, if the only thing they have to do, is to provide a caselog entry and maybe apply a transition
|Switch to edit mode||Submit your entry
with optional transition
edition in parallel
If you have edited more than one caselog, you get a warning to remind you that multiple entries will be saved at once
In this part of the screen, that we have named the “activity panel”, you retrieve the logs and the history, all merged in a single timeline, which makes it more efficient to understand the full history.
You can filter this panel, to view any of those type of entries
the caselogs entries, which you can filter more, to view only the public or the private log
whenever the object has changed state
the object editions
Next to the entry, the user picture, if they have one, is displayed, otherwise its their initials.
The history timestamps are relative when recent and absolute above a specified delay, which can be configured for your iTop.
activity_panel.datetimes_reformat_limitto go back to previous absolute format for every entries.
Another configuration parameter
to display the name of the author below the date. Otherwise, a
tooltip over the user icon displays their name as well.
In the console an agent may want to quickly notify someone within a caselog to get their attention. That person may not be linked to the Ticket, but still we want to notify them. Just type @ and the beginning of the person name, you will be prompt with available persons.
A trigger and a Notification action allow to specify the email
body and message. That trigger will occur only once at submission
of the caselog entry containing a
persons can be mentioned in the same caselog.
You can expend this behavior on other classes, each one having
its specific special caracter, with the Configuration parameter
Expand & collapse
The activity panel can be collapsed or expanded depending on if the agent work requires more to read and edit the caselog(s) or the object it-self
This topic only applies, if you have activated the concurrent_lock_enabled parameter to prevent multiple users modifying at the same time, the same object.
If a user enter some text or just try to edit a caselog in the activity panel of an object currently under edition, or simply under caselog edition by another user, then the first user receive a small message to let him know that he will only be able to submit his entries once the other user will have finished. Notice that the
Sendbutton is greyed for that first user.
iTop will check every activity_panel.lock_watcher_period seconds, if the lock was released or not, and if it was, it will lock it again but for the first user this time and activate the
Sendbutton, without loosing the text already entered in the caselog(s)
Display of relationships in read and edit mode are identical in terms of displayed fields. And it's much faster now to replace a team member by another one, just by editing their name. This new logic is available on all many to many relationships.
Predefined OQL queries
On Setup (new installation or version upgrade), a set of OQL queries usable in Notifications are automatically loaded.
Queries label and description are in iTop default language, when translation exist (
For each query to load, iTop searchs for OQLQuery flagged as
Template for OQL fieldsand having the exact same
If none are found, a new OQLQuery is created
If one and one only exists already, then no new query is loaded and the existing one is not updated.
If more than one is found, then a new one is created (known iTop limitation)
Usage in Notification
OQL Queries flagged as
Template for OQL fields, are proposed when editing any iTop field of type
OQL, as a new action to retrieve existing queries and easily copy the OQL from the selected OQL Query.
You can create your own template queries,
You can modify the label and description of the template OQL queries automatically loaded.
A modification of the OQL in a template OQL Query has no effect on Notifications which in the past, have used that OQL Query as source. Those notifications keep the old version of the query.
The following modifications was made in order to prevent admins or users to commit suicide.
A user allowed to acces the backoffice cannot add to his own user account a “Portal profile” or any other profile which would prevent him to access the backoffice anymore. If this account needs to be modified this has to be done using another user account.
A user cannot disable his own account
A user cannot remove the contact linked to his own user account.
A user cannot remove the profile allowing him to edit users accounts. He needs to keep at least one profile allowing him to edit users accounts.
A user cannot delete his own account.
If a user has at least one allowed organization, then its contact must have his organization in the list of the user's allowed orgs.
In CLI mode the JSON data structure can now be put in a separate file and in the command line, you just provide the path of the file, like this json-data@<path>.
Monitoring: allow to monitor itop status without any authentication via http
Set colors on enum values
With iTop 3.0 it's now possible to define colors and fontawesome icon for each value of any Enumeration field.
Create your own theme
With iTop 3.0 it's even easier to define your own iTop theme, on top of the existing one or in place.
Every user can select the theme he wants, among those installed.
Enrich object friendlyname
Sometimes a friendlyname is not enough to differentiate 2 objects, especially when you want to select it within a drop-down list. In order to cope with this, iTop 3.0 brings a new concept, a long friendlyname, which displays more information.
New methods on DBObject
We have added 2 new methods on DBObjects, available on all classes (mainly useful for XML developers and ITSM Designer users to modify attributes on transitions without coding): SetCurrentDateIfNull and AddValue
Check that new page for details on methods available, usable as action on transitions.
Enum values edition
Not sure this is included in 3.0, to be checked again !!!
It's now possible to remove existing values of an Enum attribute within the datamodel (with an extension or in the ITSM Designer), without issue during the Setup/MTP, even if some records are still using those values which need to be removed.
If an object is using a no more allowed value, in read view, that old value will be visible.
But in modification, as it is not an allowed value, the user editing the object will be forced to change it (assuming that field is editable for him, otherwise the old value is kept)
If a CSV import tries to update other fields than the enum on an object using a no more allowed values, it should work, letting the obsolete value unchanged (To be check )
It is not possible using the standard iTop search to retrieve object having an old value for that enum, it can only be done by OQL.
The advantage of this new mechanism is to change values of an Enum in a single Setup/MTP.
Once you have migrated the data to the new values, the next setup will change the database schema on that field to limit it to what the datamodel requires, but before that, it uses the datamodel requirement combined with the used values.
Limitation If you have a Datasynchro with replicas using old values for that enum, then it won't work!
Log calls to deprecated files / PHP methods
A new log file is added in 3.0.0 :
This will contains logs of calls to deprecated files or PHP
methods, and will help developers to migrate their code. Actually
parts of the iTop API marked with
@deprecated are usually removed in the
next iTop major version : ie a method marked as
@deprecated in iTop 3.0.0 will certainly be removed in
By default those logs are disabled, but you can enabled them
log_level_min config parameter for the
appropriate log channels. Also, the logger will have a different
behavior if used on a GitHub clone.
See the corresponding documentation for reference.
Compilation process changes
Themes precompilation at wizard setup
This feature is an optimization of the setup to spare significant time with themes (about 30 seconds per theme).
for more details see theme precompilation.
New developer_mode.enabled config parameter
Some iTop behaviors intended for extensions and core developers are triggered by the \utils::IsDevelopmentEnvironment method : Twig cache reset, setup symlinks, DeprecatedCallsLog, …
This method was returning true only for Github clones.
Now the new
developer_mode.enabled config parameter
allows to control the method returned value : if the parameter has
a boolean value then it will be used as the method return value,
otherwise the existing behavior will be kept.
Default config parameter value is
null so that nothing
changes unless an explicit value is set.
Generate symlinks flag
This option is available only if both following conditions are met :
we are running on a dev environment (either you got the iTop package from GitHub or you set the configuration parameter developer_mode.enabled to true) and if the file data/.compilation-symlinks exists
symlinkPHP function is available
If the setup is launched in such environnement,a new option is added in the setup, in the “Miscellaneous Parameters” wizard step. A generate symlinks options checked is displayed.
If the option is checked,it will keep the file
data/.compilation-symlinks to remember this
This option will be used whenever a client (ITSM Designer connector, Hub connector, custom script calling RuntimeEnvironment, …) doesn't set a true or false value for the useSymLinks parameter : if the file is present then compilation will generate symlinks.
This is a gain for extension developers : if you are developping using the toolkit with the symlinks option, and if you need to launch the setup, you will get directly symlinks. Before it was mandatory to compile again using the toolkit to get the symlinks back.