(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, { 'newLayout': true, 'title': 'Organization {{ organization.name }}', 'description': 'Organization {{ organization.name }}' }) }]); function OrgViewCtrl($scope, $routeParams, $timeout, ApiService, UIService, AvatarService) { var orgname = $routeParams.orgname; $scope.showLogsCounter = 0; $scope.showApplicationsCounter = 0; $scope.showInvoicesCounter = 0; $scope.showRobotsCounter = 0; $scope.showTeamsCounter = 0; $scope.orgScope = { 'changingOrganization': false, 'organizationEmail': '' }; $scope.$watch('orgScope.organizationEmail', function(e) { UIService.hidePopover('#changeEmailForm input'); }); var loadRepositories = function() { var options = { 'namespace_only': true, 'namespace': orgname, }; $scope.repositoriesResource = ApiService.listReposAsResource().withOptions(options).get(function(resp) { return resp.repositories; }); }; var loadOrganization = function() { $scope.orgResource = ApiService.getOrganizationAsResource({'orgname': orgname}).get(function(org) { $scope.organization = org; $scope.orgScope.organizationEmail = org.email; $scope.isAdmin = org.is_admin; $scope.isMember = org.is_member; // Load the repositories. $timeout(function() { loadRepositories(); }, 10); }); }; // Load the organization. loadOrganization(); $scope.showRobots = function() { $scope.showRobotsCounter++; }; $scope.showTeams = function() { $scope.showTeamsCounter++; }; $scope.showInvoices = function() { $scope.showInvoicesCounter++; }; $scope.showApplications = function() { $scope.showApplicationsCounter++; }; $scope.showLogs = function() { $scope.showLogsCounter++; }; $scope.changeEmail = function() { UIService.hidePopover('#changeEmailForm input'); $scope.orgScope.changingOrganization = true; var params = { 'orgname': orgname }; var data = { 'email': $scope.orgScope.organizationEmail }; ApiService.changeOrganizationDetails(data, params).then(function(org) { $scope.orgScope.changingOrganization = false; $scope.organization = org; }, function(result) { $scope.orgScope.changingOrganization = false; UIService.showFormError('#changeEmailForm input', result, 'right'); }); }; } })();