Common UI events for widget configuration

Was this article helpful?

What UI events are

Clio Operate screens are built from independent widgets, panels, and list views placed side by side on the same page. UI events let those pieces communicate in the browser. When something changes in one place, for example a work item is saved, a phase is progressed, or a document is generated, that action broadcasts a named event. Any widget that listens for that event refreshes itself.

The model has two halves: one place broadcasts an event, and other places subscribe to it. To make widget B refresh when action A happens, find the event that A broadcasts and add that event name to widget B's configuration. This article lists the built-in event names and shows where to configure them.

Who this article is for

This article is for Modellers who configure widgets on portals and want a widget to refresh when something changes elsewhere on the page. It covers the common case: subscribing a widget to built-in events through the UI. Narrowing a subscription to specific widgets is included as an advanced sub-topic. See Reduce the scope of a subscription.

UI events can do more than this first version documents. Broadcasting your own events, working with events in the IDE, and the full set of platform events are out of scope here, and may be documented in a later pass.

Top 15 events: quick reference

These are the events you will reach for most often. Select an event to jump to its section in the reference below. For most "keep my widget in sync with the matter" cases, listening to sharedo.updated and sharedo.core.case.forms.phase.phase-changed is enough.

# Event Fires when
1 sharedo.updated Any work item is saved. The general "refresh me" signal
2 sharedo.core.case.sharedo-updated A work item is saved from the Add/Edit screen
3 sharedo.core.case.sharedo-created A new work item is created
4 sharedo.core.case.forms.phase.phase-changed A phase transition completes
5 sharedo.core.case.components.taskList.data-changed The task list changes (one of the most-used events)
6 Sharedo.Core.Case.Participants.Updated A participant is assigned
7 sharedo.core.case.keyfacts.updated Key facts are updated
8 sharedo.legal.updated Legal or matter data is updated
9 sharedo.core.case.components.related-documents.data-changed The related-documents set changes
10 sharedo.core.documents-changed Documents change (generation, filing, or removal)
11 sharedo.core.case.widgets.timeEntry.data-changed A time entry is created or deleted
12 sharedo.core.case.components.comments.comments-changed A comment is posted
13 Sharedo.Core.Legal.Finance.Refresh A finance operation completes (broad refresh)
14 sharedo.core.case.ownerChanged Ownership is taken or changed
15 sharedo.core.case.components.portfolioList.data-changed A portfolio changes

Where to configure events

Modellers configure a widget's events in the page designer. You need Modeller access.

  1. In the Modeller, navigate to Forms and views > Portal editor.
  2. Select the portal, then select Design on the page that holds the widget.
  3. In the page designer, select the widget, then select its Edit (pencil) icon. The Edit widget blade opens.

The Modeller page designer showing widgets arranged in page zones, with a list view widget's Edit widget blade open on the right.

Figure 1: The page designer, with a list view widget selected and its Edit widget blade open.

Events are entered in a field called UI Events, found in the Advanced settings section of a widget's configuration (or its scope). 

The UI Events field holds one or more event names separated by a semicolon (;). Each entry is trimmed, so spaces around the semicolon do not matter. The field's own help text lists a few common events to get you started.

sharedo.updated;sharedo.core.case.components.taskList.data-changed;sharedo.core.case.components.portfolioList.data-changed

This subscribes the widget to all three events, so it refreshes when any of them fire. For a single event, enter the name on its own with no separator.

The UI Events field inside the Advanced settings section of a widget, with help text explaining the semicolon separator and listing common events.

Figure 2: The UI Events field in the Advanced settings section.

Where the UI Events field lives, by widget

Not every widget can subscribe to events. Where the UI Events field appears depends on the widget:

  • List views: select Edit scope on the list view widget to open the list view scope, then expand Advanced settings. You can reach the same scope from Forms and views > List views in the Modeller.
  • Reports: select Edit report on the report widget, open the Customise tab, then expand the Advanced section.
  • Other supported widgets, such as Key Facts and Key Dates: expand Advanced settings in the widget's own configuration.

Common configuration mistakes

  1. Event names are case-sensitive and must match exactly. Enter each name character-for-character as listed below. Some built-in events are lowercase dotted (sharedo.core.case.sharedo-updated), others are PascalCase (Sharedo.Core.Case.Participants.Updated).
  2. The UI Events field uses a semicolon (;) to separate event names. Enter multiple events as one string separated by ;. Each entry is trimmed, so spaces around the semicolon are fine. If a widget does not refresh when expected, check the separator first.
  3. Listening to too many events affects performance. Each event a widget listens for can trigger a reload, so a long listen list means more reloading. Subscribe only to the events the widget needs.

Reduce the scope of a subscription (advanced)

By default, a widget responds to a matching event fired anywhere on the page. To narrow a subscription so that only a specific group of widgets responds, give those widgets the same Topic Name in their Messaging section (available from Clio Operate 7.10, currently on list views and reports). The Modeller describes the field as follows:

"Specify a topic name that is shared by two or more widgets to ensure that UI events are only processed by that group of widgets."

 

This is the mechanism behind interactive reports and list views, where selecting or filtering in one report filters another report or list on the same page. For example, a page has two report widgets and two list views. You want a filter on the first report to update only the list view beneath it, not the second pair. Give the first report and its list view a shared Topic Name, and give the second pair a different one. Enter the exact same name in every widget in the group, and remove any trailing space introduced by copying and pasting. For the full walkthrough, see Create interactive ShareDo reports and list views.

Reference: built-in UI events by area

Clio Operate broadcasts each event below when the described action happens. Add any of these names to a widget's UI Events field to refresh that widget at the right moment. This list is fuller than the everyday cases, so you can see the range of what is available; the events most Modellers use are in the quick reference above. Not every event below is something you would subscribe a widget to.

Admin and Modeller (configuration-time)

Event name Fires when
admin-user-updated A user is created, cloned, or restored
admin-plan-updated An execution-engine plan is saved
admin-time-code-updated A time code is updated
data-dictionary-reload A data-dictionary reload is triggered
data-quality-rules-updated A data-quality rule is saved
Sharedo.Core.Case.DataQuality.CallToActionDone A data-quality call-to-action is completed
check-usages-entity-deleted An entity is deleted via the check-usage-and-delete screen
importexport.jobcreated An import or export job is created
data-table-upload-template-saved A data-table upload template is saved
dataloading.load-and-bind Data-load widgets are told to reload
Sharedo.Core.Case.Widgets.Admin.TagLibraryExplorer.LibrarySaved A tag library is saved
modeller.assistant.activity-changed The Modeller assistant changes the active handler
admin.processSelected An execution-engine process is selected
admin.triggerSelected An execution-engine trigger is selected
sharedo.core.case.sharedo-type-role-updated A sharedo-type role is added in the Modeller
oAuthTokensChanged OAuth tokens change for a user service integration
sharedo.nonworkdays.changed The admin non-work-days list changes
*.trigger-add An admin "New" button is selected. Used with newButtonEvent, for example Sharedo.Core.Case.Widgets.Teams.trigger-add, sharedo.core.case.security-barriers.trigger-add, sharedo.core.case.permissions.trigger-add

Analytics

Event name Fires when
Sharedo.Core.Case.Analytics.Report.Changed An analytics report is saved or changed in admin

Comments and audit

Event name Fires when
sharedo.core.case.components.comments.comments-changed A comment is posted
sharedo.core.case.components.audit.data-changed An audit entry is written, for example after a phase change

Documents

Event name Fires when
sharedo.core.case.components.related-documents.data-changed The related-documents set changes, for example after a phase change
sharedo.core.documents-changed Documents change, for example after generation, filing, removal, or completing a document expectation
admin-document-templates-updated A document template is saved in admin

Finance and budgets

Event name Fires when
Sharedo.Core.Legal.Finance.Refresh A finance operation completes. A broad signal to refresh the finance widgets
Sharedo.Core.Case.Fees.Version.Updated A fee-structure version is saved
Sharedo.Core.Finance.Features.Budgets.MaintainBudgets.budget-phase-changed A budget phase is progressed
sharedo.core.finance.invoice-payment-transaction-created A payment is recorded against an unpaid invoice
Sharedo.Core.Legal.ContractFinancials.Refresh Contract-financials or e-billing settings change
Sharedo.Core.Legal.Coverage.Refresh Insurance or asset coverage changes
Event name Fires when
Sharedo.Core.Legal.Incidents.Updated An incident is updated
Sharedo.Core.Legal.StatementOfWork.Updated Statement-of-work inception rules are saved
Sharedo.Core.Case.RefersToManager.UpdatedData Instruction "refers to" data changes

Notifications and channels

Event name Fires when
sharedo.core.case.channel-config-changed A channel configuration is saved, for example an email attachment filing policy
sharedo.core.case.notifications.list Used on the notification list's commands to reload the list after an action

Participants and ODS (people and organisations)

Event name Fires when
Sharedo.Core.Case.Participants.Updated A participant is assigned to a work item
sharedo.core.case.components.participantCopy.update A participant (person) record is saved
sharedo.core.case.participants.connections-updated A participant is removed
sharedo.core.case.participants-reordered Participants are reordered
sharedo.core.case.ods.connections-updated An ODS connection is unlinked or updated, for example employment
sharedo.core.case.ods.entity-location-added A location is added to an ODS entity
sharedo.core.case.ods.bankdetails.entitybankdetails.updated An ODS entity's bank details are updated
sharedo.core.ods.teams.team-membership-updated A person's team membership changes
sharedo.core.teams.members-changed A team's members change

Portfolio and list views

Event name Fires when
sharedo.core.case.components.portfolioList.data-changed A portfolio changes, for example contract details updated

Screen chrome

Event name Fires when
sharedo.ui.framework.fullScreenToggled Full-screen mode is toggled
sharedo.ui.framework.mega-menu.favourites-changed A mega-menu favourite is added or removed

Tasks and action plans

Event name Fires when
sharedo.core.case.components.taskList.data-changed Anything affecting the task list changes (task saved or deleted, ownership or phase change). One of the most frequently used events in the platform
sharedo.core.case.refresh-task-ribbon A task is created and the task ribbon should refresh
sharedo.core.case.action-plan.updated An action plan is updated
sharedo.core.case.action-plan.changing / .changed Fired immediately before and after an action-plan change

Time recording

Event name Fires when
sharedo.core.case.widgets.timeEntry.data-changed A time entry is created or deleted
Sharedo.Core.TimeEntries.dataChanged The time-entry radar refreshes its data

Work item (matter or case) lifecycle

Event name Fires when
sharedo.updated Any work item is saved. The general "refresh me" signal that most lists use
sharedo.core.case.sharedo-updated A work item is saved from the Add/Edit screen
sharedo.core.case.sharedo-created A new work item is created (fires alongside sharedo-updated)
sharedo.core.case.forms.phase.phase-changed A phase transition completes successfully
sharedo.core.case.keyfacts.updated The work item's key facts are updated
sharedo.core.case.ownerChanged Ownership of a work item or task is taken or changed
sharedo.core.case.sharedo-aspect-model-loaded The Add/Edit screen finishes loading its aspect and participant data
sharedo.legal.updated Legal or matter data is updated (used on matter portals)
 
 

Worked examples

Refresh a Key Facts widget when the phase changes

You have a Key Facts widget on a matter page that should re-read its data whenever the matter changes phase. In the widget's Advanced settings, enter the phase event in the UI Events field:

sharedo.core.case.forms.phase.phase-changed

To also refresh on any save, add another event separated by a semicolon (;):

sharedo.core.case.forms.phase.phase-changed;sharedo.updated

Checklist: a widget does not refresh

  • Is the event name spelt exactly right, including capitalisation?
  • In the UI Events field, are multiple event names separated by a semicolon (;)?
  • If you are using a Topic Name to scope, do all the widgets in the group share the exact same Topic Name, with no trailing spaces?
  • Does the action you expect to trigger the refresh actually fire the event? Check the tables above. Some actions that seem like they should fire an event do not, and the reverse is also true.

Was this article helpful?

Related Articles

Related articles in the knowledge base