57 lines
2.9 KiB
JavaScript
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;
|
|
};
|
|
}]
|
|
};
|
|
}]);
|
|
}());
|