rosa-abf/rosa-build

View on GitHub
app/assets/javascripts/angularjs/controllers/projects_controller.js

Summary

Maintainability
C
1 day
Test Coverage
RosaABF.controller('ProjectsCtrl', ['$scope', '$http', function($scope, $http) {
$scope.total_items = null;
$scope.page = null;
$scope.projects = null;
$scope.filter_users = [];
$scope.filter_groups = [];
// remove_user_project_path(project), method: :delete
 
$scope.init = function(total_items, page) {
$scope.total_items = total_items;
$scope.page = page;
};
 
$scope.getProjects = function() {
var params = { format: 'json', page: $scope.page, search: $scope.search,
users: $scope.filter_users, groups: $scope.filter_groups };
Similar blocks of code found in 3 locations. Consider refactoring.
$http.get(Routes.projects_path(params)).then(function(res) {
$scope.page = res.data.page;
$scope.total_items = res.data.projects_count;
$scope.projects = res.data.projects;
});
};
 
$scope.goToPage = function(page) {
$scope.page = page;
$scope.getProjects();
};
 
$scope.leave_project = function(project) {
project.can_leave_project = false;
var path = Routes.remove_user_project_path(project.name_with_owner, {format: 'json'});
$http.delete(path).success(function(res){
//$scope.getProjects();
// Find and remove item from an array
var i = $scope.projects.indexOf(project);
if(i != -1) {
$scope.projects.splice(i, 1);
}
}).error(function() {
$scope.getProjects();
});
};
 
Similar blocks of code found in 2 locations. Consider refactoring.
$scope.change_user_filter = function(user_id) {
var position = $.inArray(user_id, $scope.filter_users);
var filter = 'user_filter_'+user_id+'_class';
if( ~position ) {
$scope.filter_users.splice(position, 1);
$scope[filter] = false;
}
else {
$scope.filter_users.push(user_id);
$scope[filter] = true;
}
$scope.getProjects();
};
 
Similar blocks of code found in 2 locations. Consider refactoring.
$scope.change_group_filter = function(group_id) {
var position = $.inArray(group_id, $scope.filter_groups);
var filter = 'group_filter_'+group_id+'_class';
if( ~position ) {
$scope.filter_groups.splice(position, 1);
$scope[filter] = false;
}
else {
$scope.filter_groups.push(group_id);
$scope[filter] = true;
}
$scope.getProjects();
};
 
$scope.getProjects();
}]);