Commit 910eacbb authored by Sam Rose's avatar Sam Rose

Update frontend to use v4 API

parent b1e567ff
...@@ -18,8 +18,10 @@ window.AdminEmailSelect = (function() { ...@@ -18,8 +18,10 @@ window.AdminEmailSelect = (function() {
group_result = Api.groups(query.term, {}, function(groups) { group_result = Api.groups(query.term, {}, function(groups) {
return groups; return groups;
}); });
// Should be replaced with "Api.projects" when API v4 is frozen (9.1) project_result = Api.projects(query.term, {
project_result = Api.allProjects(query.term, 'id', function(projects) { order_by: 'id',
membership: false
}, function(projects) {
return projects; return projects;
}); });
return $.when(project_result, group_result).done(function(projects, groups) { return $.when(project_result, group_result).done(function(projects, groups) {
......
...@@ -6,7 +6,6 @@ var Api = { ...@@ -6,7 +6,6 @@ var Api = {
namespacesPath: "/api/:version/namespaces.json", namespacesPath: "/api/:version/namespaces.json",
groupProjectsPath: "/api/:version/groups/:id/projects.json", groupProjectsPath: "/api/:version/groups/:id/projects.json",
projectsPath: "/api/:version/projects.json?simple=true", projectsPath: "/api/:version/projects.json?simple=true",
allProjectsPath: "/api/:version/projects/all.json?simple=true", // Deprecated. Valid for API v3 only.
labelsPath: "/:namespace_path/:project_path/labels", labelsPath: "/:namespace_path/:project_path/labels",
licensePath: "/api/:version/templates/licenses/:key", licensePath: "/api/:version/templates/licenses/:key",
gitignorePath: "/api/:version/templates/gitignores/:key", gitignorePath: "/api/:version/templates/gitignores/:key",
...@@ -53,33 +52,15 @@ var Api = { ...@@ -53,33 +52,15 @@ var Api = {
}); });
}, },
// Return projects list. Filtered by query // Return projects list. Filtered by query
projects: function(query, order, callback) { projects: function(query, options, callback) {
var url = Api.buildUrl(Api.projectsPath); var url = Api.buildUrl(Api.projectsPath);
return $.ajax({ return $.ajax({
url: url, url: url,
data: { data: $.extend({
search: query,
order_by: order,
per_page: 20
},
dataType: "json"
}).done(function(projects) {
return callback(projects);
});
},
// Deprecated and should be deleted for 9.1
// Also the 'Api.allProjectsPath' should be deleted as well.
// Basically, the whole commit that adds this comment should be reverted when API v4 is frozen (9.1)
// Details here: https://gitlab.com/gitlab-org/gitlab-ce/issues/28853#note_24410695
allProjects: function(query, order, callback) {
var url = Api.buildUrl(Api.allProjectsPath);
return $.ajax({
url: url,
data: {
search: query, search: query,
order_by: order, per_page: 20,
per_page: 20 membership: true
}, }, options),
dataType: "json" dataType: "json"
}).done(function(projects) { }).done(function(projects) {
return callback(projects); return callback(projects);
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
if (this.groupId) { if (this.groupId) {
return Api.groupProjects(this.groupId, term, projectsCallback); return Api.groupProjects(this.groupId, term, projectsCallback);
} else { } else {
return Api.projects(term, orderBy, projectsCallback); return Api.projects(term, { order_by: orderBy }, projectsCallback);
} }
}, },
url: function(project) { url: function(project) {
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
if (_this.groupId) { if (_this.groupId) {
return Api.groupProjects(_this.groupId, query.term, projectsCallback); return Api.groupProjects(_this.groupId, query.term, projectsCallback);
} else { } else {
return Api.projects(query.term, _this.orderBy, projectsCallback); return Api.projects(query.term, { order_by: _this.orderBy }, projectsCallback);
} }
}; };
})(this), })(this),
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
fields: ['name'] fields: ['name']
}, },
data: function(term, callback) { data: function(term, callback) {
return Api.projects(term, 'id', function(data) { return Api.projects(term, { order_by: 'id' }, function(data) {
data.unshift({ data.unshift({
name_with_namespace: 'Any' name_with_namespace: 'Any'
}); });
......
...@@ -410,7 +410,7 @@ ...@@ -410,7 +410,7 @@
:javascript :javascript
$('#js-project-dropdown').glDropdown({ $('#js-project-dropdown').glDropdown({
data: function (term, callback) { data: function (term, callback) {
Api.projects(term, "last_activity_at", function (data) { Api.projects(term, { order_by: 'last_activity_at' }, function (data) {
callback(data); callback(data);
}); });
}, },
......
module Gitlab module Gitlab
module GonHelper module GonHelper
def add_gon_variables def add_gon_variables
gon.api_version = 'v3' # v4 Is not officially released yet, therefore can't be considered as "frozen" gon.api_version = 'v4'
gon.default_avatar_url = URI.join(Gitlab.config.gitlab.url, ActionController::Base.helpers.image_path('no_avatar.png')).to_s gon.default_avatar_url = URI.join(Gitlab.config.gitlab.url, ActionController::Base.helpers.image_path('no_avatar.png')).to_s
gon.max_file_size = current_application_settings.max_attachment_size gon.max_file_size = current_application_settings.max_attachment_size
gon.asset_host = ActionController::Base.asset_host gon.asset_host = ActionController::Base.asset_host
......
...@@ -26,7 +26,7 @@ require('~/project'); ...@@ -26,7 +26,7 @@ require('~/project');
var fakeAjaxResponse = function fakeAjaxResponse(req) { var fakeAjaxResponse = function fakeAjaxResponse(req) {
var d; var d;
expect(req.url).toBe('/api/v3/projects.json?simple=true'); expect(req.url).toBe('/api/v3/projects.json?simple=true');
expect(req.data).toEqual({ search: '', order_by: 'last_activity_at', per_page: 20 }); expect(req.data).toEqual({ search: '', order_by: 'last_activity_at', membership: true, per_page: 20 });
d = $.Deferred(); d = $.Deferred();
d.resolve(this.projects_data); d.resolve(this.projects_data);
return d.promise(); return d.promise();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment