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 "/";
},
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;

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-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"

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

View File

@ -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,