diff --git a/app/assets/javascripts/discourse/adapters/group.js.es6 b/app/assets/javascripts/discourse/adapters/group.js.es6 new file mode 100644 index 00000000000..34134b50ea3 --- /dev/null +++ b/app/assets/javascripts/discourse/adapters/group.js.es6 @@ -0,0 +1,7 @@ +import RestAdapter from 'discourse/adapters/rest'; + +export default RestAdapter.extend({ + appendQueryParams(path, findArgs) { + return this._super(path, findArgs, '.json'); + }, +}); diff --git a/app/assets/javascripts/discourse/adapters/rest.js.es6 b/app/assets/javascripts/discourse/adapters/rest.js.es6 index c826bbefc9c..e33a755970b 100644 --- a/app/assets/javascripts/discourse/adapters/rest.js.es6 +++ b/app/assets/javascripts/discourse/adapters/rest.js.es6 @@ -40,7 +40,7 @@ export default Ember.Object.extend({ return "/"; }, - appendQueryParams(path, findArgs) { + appendQueryParams(path, findArgs, extension) { if (findArgs) { if (typeof findArgs === "object") { const queryString = Object.keys(findArgs) @@ -48,11 +48,11 @@ export default Ember.Object.extend({ .map(k => k + "=" + encodeURIComponent(findArgs[k])); if (queryString.length) { - return path + "?" + queryString.join('&'); + return `${path}${extension ? extension : ''}?${queryString.join('&')}`; } } else { // It's serializable as a string if not an object - return path + "/" + findArgs; + return `${path}/${findArgs}${extension ? extension : ''}`; } } return path; diff --git a/config/routes.rb b/config/routes.rb index 69b7b2fbef7..8a96931a8ed 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -626,7 +626,7 @@ Discourse::Application.routes.draw do get "private-messages-archive/:username" => "list#private_messages_archive", as: "topics_private_messages_archive" get "private-messages-unread/:username" => "list#private_messages_unread", as: "topics_private_messages_unread" get "private-messages-tags/:username/:tag_id.json" => "list#private_messages_tag", as: "topics_private_messages_tag", constraints: StaffConstraint.new - get "groups/:group_name.json" => "list#group_topics", as: "group_topics" + get "groups/:group_name" => "list#group_topics", as: "group_topics", group_name: RouteFormat.username scope "/private-messages-group/:username", group_name: RouteFormat.username do get ":group_name.json" => "list#private_messages_group", as: "topics_private_messages_group" diff --git a/test/javascripts/acceptance/group-manage-logs-test.js.es6 b/test/javascripts/acceptance/group-manage-logs-test.js.es6 index 26446972942..95c76dc70a6 100644 --- a/test/javascripts/acceptance/group-manage-logs-test.js.es6 +++ b/test/javascripts/acceptance/group-manage-logs-test.js.es6 @@ -11,7 +11,7 @@ acceptance("Group logs", { ]; }; - server.get('/groups/snorlax', () => { // eslint-disable-line no-undef + server.get('/groups/snorlax.json', () => { // eslint-disable-line no-undef return response({"group":{"id":41,"automatic":false,"name":"snorlax","user_count":1,"alias_level":0,"visible":true,"automatic_membership_email_domains":"","automatic_membership_retroactive":false,"primary_group":true,"title":"Team Snorlax","grant_trust_level":null,"incoming_email":null,"has_messages":false,"flair_url":"","flair_bg_color":"","flair_color":"","bio_raw":"","bio_cooked":null,"public":true,"is_group_user":true,"is_group_owner":true}}); }); diff --git a/test/javascripts/fixtures/group-fixtures.js.es6 b/test/javascripts/fixtures/group-fixtures.js.es6 index c0dd3a567b7..4493e65df7b 100644 --- a/test/javascripts/fixtures/group-fixtures.js.es6 +++ b/test/javascripts/fixtures/group-fixtures.js.es6 @@ -1,5 +1,5 @@ export default { - "/groups/moderators":{ + "/groups/moderators.json":{ "group": { "id": 50, "automatic": true, @@ -32,7 +32,7 @@ export default { "messageable": true }, }, - "/groups/discourse":{ + "/groups/discourse.json":{ "group":{ "id":47, "automatic":false,