Action Manager

Action Manager enables you to add actions globally for all jsTree in the application, in one place

ActionManager.addAction(name, action) method takes two arguments {name, action}

  • ‘name’ - a unique action identifier
  • ‘action’ - an object with a view instance and a hook property, when this property contain true, action is appended to the tree view
1
2
3
4
 {
     view: 'path/to/some-action-view',
     hook: 'someProperty'
 }

or hook parameter can get multiple properties

1
2
3
4
5
6
7
 {
     view: 'path/to/some-action-view',
     hook: {
         someProperty: true,
         someProperty2: 'string' or 'number'
     }
 }

Example of Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 // Create action

     var AbstractActionView = require('oroui/js/app/views/jstree/abstract-action-view');

     SomeActionView = AbstractActionView.extend({
         options: _.extend({}, AbstractActionView.prototype.options, {
             icon: 'custom-icon',
             label: 'Custom Label'
         }),


         onClick: function() {

             // Get jstree instance

             var $tree = this.options.$tree;

             // Get jstree settings

             var settings = $tree.jstree().settings;

             // Add here action functionality
         }
     });

     return SomeActionView;

 // Register new action


     var ActionManager = require('oroui/js/jstree-action-manager');
     var SomeActionView_1 = require('oroui/js/app/views/jstree/some-action-view-1');
     var SomeActionView_2 = require('oroui/js/app/views/jstree/some-action-view-2');

     ActionManager.addAction('subtree', {
         view: SomeActionView_1,
         hook: 'someProperty'
     });

     ActionManager.addAction('subtree', {
         view: SomeActionView_2,
         hook: {
             someProperty: true,
             someProperty2: 'some string'
         }
     });

Hint

See more examples in ActionManager.addAction oroui/js/app/modules/jstree-actions-module.js