From 97cc413aae6012a8b4c064993842b1a5132bf45f Mon Sep 17 00:00:00 2001 From: Max Goodman Date: Thu, 18 Apr 2013 01:00:10 -0700 Subject: [PATCH] Index multireddit subreddit lists by lowercase name. This prevents dupes with different capitalization. --- r2/r2/public/static/js/multi.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/r2/r2/public/static/js/multi.js b/r2/r2/public/static/js/multi.js index 3a8b95e2d..448c4ca4a 100644 --- a/r2/r2/public/static/js/multi.js +++ b/r2/r2/public/static/js/multi.js @@ -30,10 +30,16 @@ r.multi = { r.multi.MultiRedditList = Backbone.Collection.extend({ model: Backbone.Model.extend({ - idAttribute: 'name' + initialize: function() { + this.id = this.get('name').toLowerCase() + } }), comparator: function(model) { - return model.get('name').toLowerCase() + return model.id + }, + + getByName: function(name) { + return this.get(name.toLowerCase()) } }) @@ -63,7 +69,7 @@ r.multi.MultiReddit = Backbone.Model.extend({ }, removeSubreddit: function(name, options) { - this.subreddits.get(name).destroy(options) + this.subreddits.getByName(name).destroy(options) } }) @@ -199,13 +205,13 @@ r.multi.MultiSubscribeBubble = r.ui.Bubble.extend({ r.multi.mine.chain() .sortBy(function(multi) { // sort multireddits containing this subreddit to the top. - return multi.subreddits.get(this.options.sr_name) + return multi.subreddits.getByName(this.options.sr_name) }, this) .each(function(multi) { content.append(this.itemTemplate({ name: multi.get('name'), path: multi.get('path'), - checked: multi.subreddits.get(this.options.sr_name) + checked: multi.subreddits.getByName(this.options.sr_name) ? 'checked' : '' })) }, this)