FIX: Group pages should work when group name contains periods.

https://meta.discourse.org/t/group-name-cant-have-dot-inside/48658
This commit is contained in:
Guo Xiang Tan 2018-04-12 17:10:53 +08:00
parent deab0486fa
commit a389baeb07
5 changed files with 14 additions and 7 deletions

View File

@ -0,0 +1,7 @@
import RestAdapter from 'discourse/adapters/rest';
export default RestAdapter.extend({
appendQueryParams(path, findArgs) {
return this._super(path, findArgs, '.json');
},
});

View File

@ -40,7 +40,7 @@ export default Ember.Object.extend({
return "/"; return "/";
}, },
appendQueryParams(path, findArgs) { appendQueryParams(path, findArgs, extension) {
if (findArgs) { if (findArgs) {
if (typeof findArgs === "object") { if (typeof findArgs === "object") {
const queryString = Object.keys(findArgs) const queryString = Object.keys(findArgs)
@ -48,11 +48,11 @@ export default Ember.Object.extend({
.map(k => k + "=" + encodeURIComponent(findArgs[k])); .map(k => k + "=" + encodeURIComponent(findArgs[k]));
if (queryString.length) { if (queryString.length) {
return path + "?" + queryString.join('&'); return `${path}${extension ? extension : ''}?${queryString.join('&')}`;
} }
} else { } else {
// It's serializable as a string if not an object // It's serializable as a string if not an object
return path + "/" + findArgs; return `${path}/${findArgs}${extension ? extension : ''}`;
} }
} }
return path; return path;

View File

@ -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-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-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 "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 scope "/private-messages-group/:username", group_name: RouteFormat.username do
get ":group_name.json" => "list#private_messages_group", as: "topics_private_messages_group" get ":group_name.json" => "list#private_messages_group", as: "topics_private_messages_group"

View File

@ -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}}); 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}});
}); });

View File

@ -1,5 +1,5 @@
export default { export default {
"/groups/moderators":{ "/groups/moderators.json":{
"group": { "group": {
"id": 50, "id": 50,
"automatic": true, "automatic": true,
@ -32,7 +32,7 @@ export default {
"messageable": true "messageable": true
}, },
}, },
"/groups/discourse":{ "/groups/discourse.json":{
"group":{ "group":{
"id":47, "id":47,
"automatic":false, "automatic":false,