Support for non-english categories

This commit is contained in:
Robin Ward
2013-02-14 16:51:48 -05:00
parent d740d7b25f
commit 5d4efa9100
8 changed files with 48 additions and 6 deletions

View File

@@ -11,15 +11,21 @@ Discourse.Utilities =
when 'large' then size=45
return size
categoryUrlId: (category) ->
return "" unless category
id = Em.get(category, 'id')
slug = Em.get(category, 'slug')
return "#{id}-category" if (!slug) or slug.isBlank()
slug
# Create a badge like category link
categoryLink: (category) ->
return "" unless category
slug = Em.get(category, 'slug')
color = Em.get(category, 'color')
name = Em.get(category, 'name')
"<a href=\"/category/#{slug}\" class=\"badge-category excerptable\" data-excerpt-size=\"medium\" style=\"background-color: ##{color}\">#{name}</a>"
"<a href=\"/category/#{@categoryUrlId(category)}\" class=\"badge-category excerptable\" data-excerpt-size=\"medium\" style=\"background-color: ##{color}\">#{name}</a>"
avatarUrl: (username, size, template)->
return "" unless username

View File

@@ -3,11 +3,14 @@ window.Discourse.ListCategoryRoute = Discourse.FilteredListRoute.extend
slug = Em.get(model, 'slug')
category = Discourse.get('site.categories').findProperty('slug', slug)
category ||= Discourse.get('site.categories').findProperty('id', parseInt(slug))
category ||= Discourse.Category.create(name: slug, slug: slug)
listController = @controllerFor('list')
listController.set('filterMode', "category/#{category.get('slug')}")
listController.load("category/#{category.get('slug')}").then (topicList) =>
urlId = Discourse.Utilities.categoryUrlId(category)
listController.set('filterMode', "category/#{urlId}")
listController.load("category/#{urlId}").then (topicList) =>
listController.set('canCreateTopic', topicList.get('can_create_topic'))
listController.set('category',category)
@controllerFor('listTopics').set('content', topicList)

View File

@@ -32,7 +32,7 @@ window.Discourse.EditCategoryView = window.Discourse.ModalBodyView.extend
saveSuccess: (result) ->
$('#discourse-modal').modal('hide')
window.location = "/category/#{result.category.slug}"
window.location = "/category/#{Discourse.Utilities.categoryUrlId(result.category)}"
saveCategory: ->