:: Version 3.2.0 ::

iTop 3.2 Community

  • Beta version 3.2.0 release date: June 2024
  • 3.2.0 release date: August 2024

What's new in iTop Community

For users

News

The existing Newsroom feature was extended to all iTop back-office users. It was previously limited to iTop administrators and to external News providers, such as iTop Hub

Since this version, iTop is a News provider, which means he can send News to targeted users, when something is occurring in iTop.

This uses the existing Trigger-Action mechanism. A new type of Action Notification allows to send News, instead or in parallel to eMails.

  1. The news message are displayed to the targeted iTop users, within iTop back-office, under the bell icon.
  2. A red bullet on the bell, informs the user that he has unread News.
  3. When a user click on one of their News, it opens the url specified in the action, in general the object which has triggered the News. And the news is automatically flagged as read with a date.

A user can retrieve all received news, and work on them, one by one or in bulk:

  • He can flag them as being read or not
  • He can delete them
  • News, read or not are automatically deleted for all users after an itop configurable delay, 60 days by default.

Those News notifications can only be sent to iTop Users having access to the iTop backoffice

Notification center

Back-office users can now unsubscribe themself to a particular notification

What we call a notification here, is the combination of a particular Trigger and Action

  • For example: an administrator may have configured
    • a trigger on log update to notify by email and by news the agent
    • and another trigger on location creation, to notify by news some people.
  • In such case, the agent will be able to
    • Choose between email and news for the first trigger, he might even unsubscribe to all, if allowed by the trigger.
    • Unsubscribe to the News on the Location creation trigger, if it is useless for him

Limitations The person who configured the trigger and action can limit the possibility for users to unsubscribe:

  • For OnMention triggers, we usually want to deny users to unsubscribe from all channels, they will have to keep at least one, so we are sure that they are notified.
  • On some action such as iCalendar Invitation, Unauthenticated Form,… users are not allowed to unsubscribe at all.
  • Users can unsubscribe only to notification action for which they have already received at least one notification event.
  • Users can only unsubscribed to action which are sent directly to their Contact Person linked to their User, such as Email and News, so not to a Rocket, Teams,… and other notification channels of this nature.

HTML field editor

iTop is using an external provider tool, called CKEditor, which had to be upgraded for security reason. The new version being quite different that the previous one, most edition possibilities are preserved with different icons, a few were lost and new one were added.

Welcome popup

New iTop and extensions versions can now decide to display to some Users, welcome messages.

  • There can be multiple messages at the first user connection after an iTop upgrade
  • Those messages once acknowledge by the user are no more displayed

For administrators

Notifications

Multiple improvements were made around notifications. The main one are listed below:

by Newsroom

This version brings a new action to notify back-office users through News displayed in iTop.

  • This action can be triggered by any trigger.
  • The triggering of this action generates one News per recipient person having an associated active user

Asynchronous

Most actions propose a new Asynchronous field to specify if it must be triggered immediately and block the user as long as not completed, or be executed in background or follow the global iTop setting

Subscription policy

Triggers can now define if users are allowed to unsubscribe from all communication channels, all but one or none, by default it Allow complete unsubscription

Better changing it for triggers such as on object mention and when an approval is requested

last executions in Action

A new ajax tab (displayed asynchronously, as dashboard attributes) is added in the Action objects : Last executions.

It will display the logs for this specific Action. By default it will display 61 days, but this can be changed using the notifications.last_executions_days configuration parameter.

Class renaming

In order to make a clearer difference between the Action which specify how a particular action must be performed and the Event which represent the result of an action execution, we have renamed most classes under Action and Event.

For developers

New Events

With the 3.2.0, some events have been added and some were removed

Removed

  • EVENT_DB_BEFORE_APPLY_STIMULUS
  • EVENT_DB_AFTER_APPLY_STIMULUS
  • EVENT_DB_APPLY_STIMULUS_FAILED

Added

  • EVENT_DB_ABOUT_TO_DELETE: Deletion is confirmed and will occur. Object and its relationships are still available in DB for OQL query and Get('att_code'))
  • EVENT_ENUM_TRANSITIONS: Manage the allowed transitions in current object state. The only action allowed is to deny transitions with $this→DenyTransition($sTransitionCode)

New APIs

\iBackupExtraFilesExtension

Allows (through an extension or snippet) to specify extra files and directories to be added in the iTop backup archive along with standard files (conf. file, DB dump, …).

Example
class MyFilesToAddToBackupArchive implements \iBackupExtraFilesExtension
{
        public function GetExtraFilesRelPaths(): array
        {
                return [
                        // A file saved in the data folder
                        'data/file1.txt',
                        // A file saved in a module in the current environment ("production" most of the time)
                        'env-'.\utils::GetCurrentEnvironment().'/some-module/file2.txt',
                        // A file from the log folder
                        'log/file3.txt',
                ];
        }
}

\iWelcomePopupExtension

Allows (through an extension or snippet) to display messages to users in a popup that log in the backoffice. Messages will be displayed on each log in until the user acknowledge the messages.

To provide your messages, extend the \AbstractWelcomePopupExtension class (which implements \iWelcomePopupExtension with default methods implementations) and return your messages in the GetMessages() method .

Example
use AbstractWelcomePopupExtension;
use utils;
use Combodo\iTop\Application\WelcomePopup\MessageFactory;
 
class MyTestProvider extends AbstractWelcomePopupExtension
{
        /**
         * @inheritDoc
         */
        public function GetMessages(): array
        {
                return [
                        // Message with title and description on the left, illustration on the right
                        MessageFactory::MakeForLeftTextsRightIllustration(
                                // Unique ID of the message within the provider
                                "fake_id_01",
                                // Title of the message
                                "Example 1",
                                // Description of the message, can contain HTML
                                "Some text to be displayed",
                                // Absolute URI to the illustration
                                utils::GetAbsoluteUrlAppRoot() . "images/illustrations/undraw_relaunch_day.svg"
                        ),
 
                        // Message with illustration on the left, title and description on the right
                        MessageFactory::MakeForLeftIllustrationRightTexts(
                                "fake_id_02",
                                "Example 2",
                                "Some text to be displayed, but on the right",
                                utils::GetAbsoluteUrlAppRoot() . "images/illustrations/undraw_relaunch_day.svg"
                        ),
 
                        // Message with complete HTML description
                        MessageFactory::MakeForLeftTextsRightIllustration(
                                "fake_id_03",
                                "Example 3",
                                <<<HTML
                                        <div>
                                                <p>Some content for the message</p>
                                                <p>Some other content for the message</p>
                                        </div>
HTML,
                                utils::GetAbsoluteUrlAppRoot() . "images/illustrations/undraw_relaunch_day.svg"
                        ),
 
                        // Message with an embeded video
                        MessageFactory::MakeForLeftTextsRightIllustration(
                                "fake_id_03",
                                "HTML with YouTube video",
                                <<<HTML
<iframe width="560" height="315" src="https://www.youtube.com/embed/GCUdV7tHmEA?si=T6tcJFqobQ0TxLgo&amp;start=16" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
HTML
                        ),
                ];
        }
}
3_2_0/release/whats_new.txt · Last modified: 2024/06/20 17:28 (external edit)
Back to top
Contact us