"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; }; }] }; }]); }());