SmartIT_Extensions/BMC/smart-it-full/scripts/app/custom-widgets/assign-directive.js

57 lines
2.9 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('customWidgetsModule')
.directive('assignWidget', ["events", "userModel", function (events, userModel) {
return {
restrict: 'E',
replace: true,
scope: {
data: '=',
context: '=',
isEditable: '=',
isNew: '='
},
templateUrl: 'views/custom-widgets/assign-widget.html',
controller: ['$scope', 'userModel', 'events', function ($scope, userModel, events) {
$scope.assignTicket = function ($event, assignToMe) {
var editMode = _.isBoolean($scope.$parent.editMode) ? $scope.$parent.editMode :
_.isBoolean($scope.$parent.$parent.editMode) ? $scope.$parent.$parent.editMode : false;
var assignParams = {
originalEvent: $event,
assignToMe: !!assignToMe,
saveSelection: !editMode,
role: $scope.data.primaryKey
};
$scope.$emit(events.SHOW_ASSIGN_TICKET_BLADE, assignParams);
};
$scope.isAutoAssigned = function () {
return $scope.data.value && ($scope.data.value.autoAssign
|| $scope.data.value.managerAutoAssign
|| $scope.data.value.coordinatorAutoAssign);
};
$scope.showAssignToMe = function () {
if (userModel.userFullData.availableForAssignment && $scope.data.isAssigneeWidget()) {
if (!$scope.data.value || ($scope.data.value && userModel.decodedUserId !== $scope.data.value.id)) {
if ($scope.context.accessMappings) {
if ($scope.data.primaryKey === 'coordinator') {
return $scope.context.accessMappings.coordinatorSelfAssignmentAllowed;
}
else if ($scope.data.primaryKey === 'manager') {
return $scope.context.accessMappings.managerSelfAssignmentAllowed;
}
else if ($scope.data.primaryKey === 'assignee') {
return $scope.context.type === EntityVO.TYPE_CHANGE
? $scope.context.accessMappings.coordinatorSelfAssignmentAllowed
: $scope.context.accessMappings.assigneeSelfAssignmentAllowed;
}
}
}
}
return false;
};
}]
};
}]);
}());