logo

Catalogue of available system extensions

Use of extension points

ELMA supports a variety of extension points that allow you to extend the functionality of the system.
The most frequently used extension points:

System's view editing 

Very often, you need to make changes in the system view. For example, edit the task creation page. The view of the page has the following path: \ELMA3- "System Edition"\Web\ Modules\EleWise.ELMA.BPM.Web.Tasks\Views\Task\TaskEditor.cshtml.

First, in the configuration folder (UserConfig) create the WebApplication folder, inside the WebApplication folder re-create the path to the TaskEditor, by creating the corresponding folders. As a result, the way to TaskEditor will look like \ELMA3-"System Edition"\UserConfig\WebApplication\Modules\EleWise.ELMA.BPM.Web.Tasks\Views\Task\TaskEditor.cshtml.

Once you have re-created the path in the configuration folder, you can proceed to editing. This view is written using the Razor engine. 

Suppose we need to make the Category and the Description fields mandatory. To do this, open the view with a text editor and make the following changes:

@ Html.EditableProperty (m => m.Entity.Category, a => a.Required = true)
@ Html.ExtensionZone ( "EleWise.ELMA.BPM.Web.Tasks.TaskEditor")
@ Html.EditableProperty (m => m.Entity.Description, a => a.Required = true)


After you have made all the necessary changes, save the view, and refresh the page to see the changes.

view editing

Attention!
The view that you have edited, can be changed in the next version of the system, and therefore there is a possibility of incorrect work of the view after the system upgrade.

This section includes other examples and instructions, concerning system extension:

Creating custom messaging channel

Using this extension point you can send messages to Twitter, ICQ, Jabber, if necessary.

Creating custom events in the calendar

custom event

Read more

Displaying additional information on the header of an object 

Example: display the VAT №ща the contractor in the drop-down list, below the contractor's name.

VAT of contractor

Read more

Adding custom events to the calendar

Fig. 1 Adding an event by opening a pop-up window

Read more

Creating a menu item with a custom markup

Read more

Creating data counter for the menu

Read more

Adding a custom settings section for a module

A simple example: shows how to quickly add a custom settings section
For more details, read this page

A detailed example of how to add a custom settings section for the module with the custom display of view/edit forms.

For more details, read this page

Creating a link to the object (in the lists, links)

Read more

Creating document preview for different file formats (audio, video, etc.)

preview

Read more

Adding custom columns to the standard/custom table “Dynamic Grid” 

Fig. 1. Adding a column to the grid with the list of tasks in the Tasks portlet

Read more

Creating custom object monitoring

Read more

Creating custom pop-up windows to view custom/system objects 

Read more

Creating a custom scheduler

Read more

Adding tabs to the standard “TabPanel” element

Fig. 1. A tab with a markup, added by using an extension point implementation

Read more

Displaying custom object in the Messages section

 

Read more

 

Creating recent activity on a system object 

Fig. 2. Information on projects in the Recent Activity portlet

Read more

Creating a custom event listener before/after you create, modify, delete, etc. an object

Read more

PostFlush listeners of NHibernate events

Read more

Creating module-level events

Read more

Database conversion 

Read more

Performing any action upon activation/deleting module's container

Read more

Creating a custom Web service

Read more 

Additional file permission check 

Fig. 1. Notification shown when there are not enough permissions to access a file

Read more

Implementing access permissions for a custom object

Fig. 2. Access permissions for the instance object

Read more

Creating a custom notification template or editing system notification template  

Read more

Creating custom functions for notification templates

Example: Creating a custom function that generates the markup with a start/end date

Read more

Creating a custom data type for a list of notification recipients

Example: Recipients of notification is a group of users.

Read more

Creating a custom portlet in a module

Read more