Maslosoft Framework Documentation
Flexible Application Foundation
Widget Activities
Widget activities, are mostly the same as actions, except that URL's use hash scheme, and are meant to be used on actions that do not reach server.
The resulting URL's are similar too: #ms_8.addGroup=below.
Reacting on activity
To make widget react on activity, it need to have dispatcher initialized with third parameter:
class MyWidget
constructor: (@id) ->
@dispatcher = new Maslosoft.Widgets.Dispatcher @, @, @
#
# Will be called as activity or action URL
# #ms_8.addGroup=below
# ?ms_8.addGroup=below
#
addGroup: (position, e) =>
# Do something
If third parameter contains different object, activities will be called
on this object, while action will be called on MyWidget instance. Also the
second parameter of dispatcher can be different object holding actions. This
might be useful for large widgets:
class MyActions
#
# Will be called as action only
# Will react on example on URL: ?ms_8.sort=name:desc
#
sort: (directions) =>
# Do sort
class MyActivities
#
# Will be called as activity only
# Will react on example on URL: #ms_8.addGroup=below
#
addGroup: (position, e) =>
# Do something
class MyWidget
constructor: (@id) ->
# Assume @id ms_8
@actions = new MyActions
@activities = new MyActivities
@dispatcher = new Maslosoft.Widgets.Dispatcher @, @actions, @activities
Creating URL's
To create URL, echo ActivityUrl with apropriate parameters, for example
to sort with name desc, let's assume widget ID users:
echo new ActivityUrl($widget, 'sort', ['name' => 'dest']);
Will result in URL:
#user.sort=name:desc
Creating link
The class ActivityLink will create whole tag, with rel="virtual" attribute,
so that it will call javascript widget activity method.
echo new ActivityLink($widget, 'sort', 'Sort by name', ['name' => 'dest']);
Will result in link:
<a href="?user.sort=name:desc" rel="virtual">Sort by name</a>