49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
|
/**
|
||
|
* An element which displays a dialog for creating a team.
|
||
|
*/
|
||
|
angular.module('quay').directive('createTeamDialog', function () {
|
||
|
var directiveDefinitionObject = {
|
||
|
priority: 0,
|
||
|
templateUrl: '/static/directives/create-team-dialog.html',
|
||
|
replace: false,
|
||
|
transclude: true,
|
||
|
restrict: 'C',
|
||
|
scope: {
|
||
|
'info': '=info',
|
||
|
'teamCreated': '&teamCreated'
|
||
|
},
|
||
|
controller: function($scope, $element, ApiService, UserService, NAME_PATTERNS) {
|
||
|
$scope.TEAM_PATTERN = NAME_PATTERNS.TEAM_PATTERN;
|
||
|
|
||
|
$scope.teamFinished = function(team) {
|
||
|
$scope.teamCreated({'team': team});
|
||
|
};
|
||
|
|
||
|
$scope.createTeam = function(name, callback) {
|
||
|
var data = {
|
||
|
'name': name,
|
||
|
'role': 'member'
|
||
|
};
|
||
|
|
||
|
var params = {
|
||
|
'orgname': $scope.info.namespace,
|
||
|
'teamname': name
|
||
|
};
|
||
|
|
||
|
var errorDisplay = ApiService.errorDisplay('Cannot create team', function() {
|
||
|
callback(null);
|
||
|
});
|
||
|
|
||
|
ApiService.updateOrganizationTeam(data, params).then(function(resp) {
|
||
|
if (!resp.new_team) {
|
||
|
callback(null);
|
||
|
bootbox.alert('Team with name "' + resp.name + '" already exists')
|
||
|
return;
|
||
|
}
|
||
|
callback(resp);
|
||
|
}, errorDisplay);
|
||
|
};
|
||
|
}
|
||
|
};
|
||
|
return directiveDefinitionObject;
|
||
|
});
|