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:
- Adding new items to ELMA left menu
- Adding new buttons to ELMA toolbars
- Creating portlet in ELMA module
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.
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
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.
Adding custom events to the calendar
Creating a menu item with a custom markup
Creating data counter for the menu
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)
Creating document preview for different file formats (audio, video, etc.)
Adding custom columns to the standard/custom table “Dynamic Grid”
Creating custom object monitoring
Creating custom pop-up windows to view custom/system objects
Creating a custom scheduler
Adding tabs to the standard “TabPanel” element
Displaying custom object in the Messages section
Creating recent activity on a system object
Creating a custom event listener before/after you create, modify, delete, etc. an object
PostFlush listeners of NHibernate events
Creating module-level events
Database conversion
Performing any action upon activation/deleting module's container
Creating a custom Web service
Additional file permission check
Implementing access permissions for a custom object
Creating a custom notification template or editing system notification template
Creating custom functions for notification templates
Example: Creating a custom function that generates the markup with a start/end date
Creating a custom data type for a list of notification recipients
Example: Recipients of notification is a group of users.