(function() { /** * Page that displays details about an organization, such as its teams. */ angular.module('quayPages').config(['pages', function(pages) { pages.create('org-view', 'org-view.html', OrgViewCtrl); }]); function OrgViewCtrl($rootScope, $scope, ApiService, $routeParams, CreateService) { var orgname = $routeParams.orgname; $scope.TEAM_PATTERN = TEAM_PATTERN; $rootScope.title = 'Loading...'; $scope.teamRoles = [ { 'id': 'member', 'title': 'Member', 'kind': 'default' }, { 'id': 'creator', 'title': 'Creator', 'kind': 'success' }, { 'id': 'admin', 'title': 'Admin', 'kind': 'primary' } ]; $scope.setRole = function(role, teamname) { var previousRole = $scope.organization.teams[teamname].role; $scope.organization.teams[teamname].role = role; var params = { 'orgname': orgname, 'teamname': teamname }; var data = $scope.organization.teams[teamname]; ApiService.updateOrganizationTeam(data, params).then(function(resp) { }, function(resp) { $scope.organization.teams[teamname].role = previousRole; $scope.roleError = resp.data || ''; $('#cannotChangeTeamModal').modal({}); }); }; $scope.createTeam = function(teamname) { if (!teamname) { return; } if ($scope.organization.teams[teamname]) { $('#team-' + teamname).removeClass('highlight'); setTimeout(function() { $('#team-' + teamname).addClass('highlight'); }, 10); return; } CreateService.createOrganizationTeam(ApiService, orgname, teamname, function(created) { $scope.organization.teams[teamname] = created; }); }; $scope.askDeleteTeam = function(teamname) { $scope.currentDeleteTeam = teamname; $('#confirmdeleteModal').modal({}); }; $scope.deleteTeam = function() { $('#confirmdeleteModal').modal('hide'); if (!$scope.currentDeleteTeam) { return; } var teamname = $scope.currentDeleteTeam; var params = { 'orgname': orgname, 'teamname': teamname }; var errorHandler = ApiService.errorDisplay('Cannot delete team', function() { $scope.currentDeleteTeam = null; }); ApiService.deleteOrganizationTeam(null, params).then(function() { delete $scope.organization.teams[teamname]; $scope.currentDeleteTeam = null; }, errorHandler); }; var loadOrganization = function() { $scope.orgResource = ApiService.getOrganizationAsResource({'orgname': orgname}).get(function(org) { $scope.organization = org; $rootScope.title = orgname; $rootScope.description = 'Viewing organization ' + orgname; $('.info-icon').popover({ 'trigger': 'hover', 'html': true }); }); }; // Load the organization. loadOrganization(); } })();