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

{
    view: 'path/to/some-action-view',
    hook: 'someProperty'
}

or hook parameter can get multiple properties

{
    view: 'path/to/some-action-view',
    hook: {
        someProperty: true,
        someProperty2: 'string' or 'number'
    }
}

Example of Usage

// 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