Description of reusable components

AEM Forms workspace is composed of
reusable
components which are organized in a specific
folder structure
in CRX™. Each component has model, view, and template file at location specified in the folder structure, JavaScript™ dependencies on other component files, events listened by the component and JavaScript objects which trigger these events in AEM Forms workspace. The complete list of reusable components with constituent filenames and dependencies is given here.

TeamFilter gets the event indicating which task has been selected from TaskList component. Although these components share the model class, there is no other dependency.

TaskDetails

Model

tasklist.js

View

taskdetails.js

Template

taskdetails.html

Requires components

Most of the Utility classes

JS dependencies

processinstancehistory.html

formrendering utility

notes utility

attachments utility

taskactions utility

history utility

Events listened (Event name - Trigger)

forwarded - task model

shared - task model

consulted - task model

rejected - task model

abandoned - task model

unlocked - task model

locked - task model

claimed - task model

change:taskselected - tasklist model

change:formUrl - task model

attachmentURLFetched - task model

newAttachment - task model

taskHistoryFetched - task model

prepareForSubmitComplete - task model

submitComplete - task model

CategoryList

Model

categorylist.js

View

categorylist.js

Template

startprocess.html (in the route folder)

Requires components

Category

JS dependencies

favoritecategoryfactory model

allcategoryfactory model

Events listened (Event name - Trigger)

allStartpointsFetched - categorylist model

add - categorylist model

This component uses model classes of some other components like StartPointList, StartPoint, and Task. Besides this dependency, CategoryList can be used independently.

Category

Model

category.js

View

category.js

Template

category.html

Requires components

NA

JS dependencies

categorylist model

startpointlist model

Events listened (Event name - Trigger)

changed - category model

childrenFetched - category model

category:selected - categorylist model

StartPointList

Model

categorylist.js

View

startpointlist.js

Template

startprocess.html (in the route folder)

Requires components

NA

JS dependencies

category model

favoritecategoryfactory model

allcategoryfactory model

startpoint view

startpointlist model

startpoint model

task model

task model

tasklist model

teamtask model

Events listened (Event name - Trigger)

category:selected - categorylist model

allStartpointsFetched - categorylist model

StartPointList and CategoryList components share the model class, hence the former depends on the latter. CategoryList accesses the information about which category's start points are shown. To use StartPointList independently, simulate the event trigger from CategoryList.

StartPoint

Model

startpoint.js

View

startpoint.js

Template

startpoint.html

Requires components

NA

JS dependencies

task model

Events listened (Event name - Trigger)

change - startpoint model

StartProcess

Model

categorylist.js

View

startprocess.js

Template

startprocess.html

Requires components

Most of the Utility classes

UserSearch

JS dependencies

category model

favoritecategoryfactory model

allcategoryfactory model

formrendering utility

notes utility

attachments utility

taskactions utility

Events listened (Event name - Trigger)

category:selected - categorylist model

change:invokedTask - startpointlist model

change:formUrl - task model

startpoint:selected - startpointlist model

forwarded - task model

abandoned - task model

unlocked - task model

locked - task model

attachmentURLFetched - task model

newAttachment - task model

prepareForSubmitComplete - task model

submitComplete - task model

allStartpointsFetched - categorylist model

StartProcess and StartPointList components share the model class. This component becomes relevant you select a startpoint from StartPointList.

ProcessNameList

Model

processnamelist.js

View

processnamelist.js

Template

tracking.html (in the route folder)

Requires components

NA

JS dependencies

processname model

Events listened (Event name - Trigger)

add - processnamelist model

fetched:processnames - processnamelist model

change - processnamelist model

ProcessNameList does not depend on other components. However, internally it depends on ProcessInstanceList model class that in turn depends on other components. Hence, ProcessNameList uses many model classes like ProcessInstanceList, ProcessInstance, TaskList, Teamtask, and Task. Besides these dependencies, ProcessNameList can be used independently.

ProcessName

Model

processname.js

View

processname (in processnamelist.js)

Template

processname.html

Requires components

NA

JS dependencies

processinstancelist model

Events listened (Event name - Trigger)

change - processname model

ProcessInstanceList

Model

processnamelist.js

View

processinstancelist.js

Template

tracking.html (in the route folder)

Requires components

NA

JS dependencies

processname model

Events listened (Event name - Trigger)

processname:selected - processnamelist model

processname:instancesfetched - processnamelist model

ProcessInstanceList expects an event from ProcessNameList indicating the process name for fetching and displaying instances. To use ProcessInstanceList independently, simulate the event trigger separately.

ProcessInstance

Model

processinstance.js

View

processname inside processnamelist.js

Template

processinstance.html

Requires components

NA

JS dependencies

tasklist model

Events listened (Event name - Trigger)

change - processinstance model

ProcessInstanceHistory

Model

processnamelist.js

View

processinstancehistory.js

Template

processinstancehistory.html

Requires components

NA

JS dependencies

processname model

history utility

Events listened (Event name - Trigger)

processname:selected - processnamelist model

processinstance:selected - processinstancelist model

tasksFetched - processinstance model

ProcessInstanceHistory expects an event from ProcessInstanceList indicating which process instance's history is to be shown. Besides this dependency the component can be used independently.