FIX: listable badges need more logic

This commit is contained in:
Sam 2014-07-03 20:34:26 +10:00
parent decff6dc85
commit 5a28609afc
3 changed files with 10 additions and 4 deletions

View File

@ -184,8 +184,12 @@ Discourse.Badge.reopenClass({
@method findAll @method findAll
@returns {Promise} a promise that resolves to an array of `Discourse.Badge` @returns {Promise} a promise that resolves to an array of `Discourse.Badge`
**/ **/
findAll: function() { findAll: function(opts) {
return Discourse.ajax('/badges.json').then(function(badgesJson) { var listable = "";
if(opts && opts.onlyListable){
listable = "?only_listable=true";
}
return Discourse.ajax('/badges.json' + listable).then(function(badgesJson) {
return Discourse.Badge.createFromJson(badgesJson); return Discourse.Badge.createFromJson(badgesJson);
}); });
}, },

View File

@ -13,7 +13,7 @@ Discourse.BadgesIndexRoute = Discourse.Route.extend({
return Discourse.Badge.createFromJson(json); return Discourse.Badge.createFromJson(json);
}); });
} else { } else {
return Discourse.Badge.findAll(); return Discourse.Badge.findAll({onlyListable: true});
} }
}, },

View File

@ -2,7 +2,9 @@ class BadgesController < ApplicationController
skip_before_filter :check_xhr, only: [:index, :show] skip_before_filter :check_xhr, only: [:index, :show]
def index def index
badges = Badge.where(listable: true).all.to_a badges = Badge.all
badges = badges.where(listable: true) if(params[:only_listable] == "true") || !request.xhr?
badges = badges.to_a
serialized = MultiJson.dump(serialize_data(badges, BadgeSerializer, root: "badges")) serialized = MultiJson.dump(serialize_data(badges, BadgeSerializer, root: "badges"))
respond_to do |format| respond_to do |format|
format.html do format.html do