public/scripts/project.js (31 lines of code) (raw):

/* global mergeRequest:false */ /* global utils:false */ /* global api:false */ /* global popup:false */ function getProjectsError(t, error) { throw t.NotHandled('error occurred when getting projects from GitLab API', error); } function getProjects(t) { return utils.getAuthToken(t) .then(api.getAllProjects) .catch(getProjectsError.bind(this, t)); } function mapProjects(p) { return { text: p.name_with_namespace, callback: function selectProject(t) { return mergeRequest.showProjectMergeRequest(t, p.id, p.name_with_namespace); } }; } function showProjectsCallback(response) { return response.data.map(mapProjects); } function showProjectsError(t, error) { throw t.NotHandled('error occurred while displaying projects', error); } function showProjects(t) { return getProjects(t) .then(showProjectsCallback) .then(popup.openProjects.bind(this, t)) .catch(showProjectsError.bind(this, t)); } window.project = { showProjects: showProjects };