scripts/core/services/workflowService.ts
import _ from 'lodash';
export default angular.module('superdesk.core.workflow', [])
.run(['workflowService', angular.noop]) // make sure it's loaded
.service('workflowService', ['preferencesService', '$rootScope', function(preferencesService, $rootScope) {
var _actions = [];
this.isActionAllowed = function isActionAllowed(item, actionName) {
if (_.isUndefined(actionName) || _.isUndefined(item.state)) {
return true;
}
var action = _.find(_actions, (actionItem) => actionItem.name === actionName);
if (action) {
if (!_.isEmpty(action.include_states)) {
return _.findIndex(action.include_states, (state) => item.state === state) >= 0;
} else if (!_.isEmpty(action.exclude_states)) {
return _.findIndex(action.exclude_states, (state) => item.state === state) === -1;
}
}
return false;
};
this.setActions = function(actions) {
_actions = actions;
};
preferencesService.getActions().then(this.setActions);
$rootScope.isActionAllowed = angular.bind(this, this.isActionAllowed);
}]);