From 0cf1c2d020935c6290e9026290908c2ae1534e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonne=20Ha=C3=9F?= Date: Thu, 21 Feb 2013 14:25:38 +0100 Subject: [PATCH] Sort tag followings alphabetically, not in reverse, fixes #3986 --- Changelog.md | 1 + app/assets/javascripts/app/collections/tag_followings.js | 4 +++- app/assets/javascripts/app/router.js | 2 +- .../javascripts/app/views/tag_following_list_view.js | 5 +++-- app/assets/templates/tag_following_list_tpl.jst.hbs | 2 +- .../app/collections/tag_following_collection_spec.js | 8 ++++++++ 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Changelog.md b/Changelog.md index f8dd4c210..834429295 100644 --- a/Changelog.md +++ b/Changelog.md @@ -16,6 +16,7 @@ * Move custom splash page logic into the controller [#3991](https://github.com/diaspora/diaspora/issues/3991) * Fixed removing images from publisher on the profile and tags pages. [#3995](https://github.com/diaspora/diaspora/pull/3995) * Wrap text if too long in mobile notifications. [#3990](https://github.com/diaspora/diaspora/pull/3990) +* Sort tag followings alphabetically, not in reverse [#3986](https://github.com/diaspora/diaspora/issues/3986) # 0.0.3.0 diff --git a/app/assets/javascripts/app/collections/tag_followings.js b/app/assets/javascripts/app/collections/tag_followings.js index d969a598b..ab0a9f783 100644 --- a/app/assets/javascripts/app/collections/tag_followings.js +++ b/app/assets/javascripts/app/collections/tag_followings.js @@ -1,8 +1,10 @@ app.collections.TagFollowings = Backbone.Collection.extend({ model: app.models.TagFollowing, - url : "/tag_followings", + comparator: function(first_tf, second_tf) { + return first_tf.get("name") < second_tf.get("name"); + }, create : function(model) { var name = model.name || model.get("name"); diff --git a/app/assets/javascripts/app/router.js b/app/assets/javascripts/app/router.js index f1aa32b95..e00d3e4dd 100644 --- a/app/assets/javascripts/app/router.js +++ b/app/assets/javascripts/app/router.js @@ -73,7 +73,7 @@ app.Router = Backbone.Router.extend({ $("#tags_list").replaceWith(followedTagsView.render().el); followedTagsView.setupAutoSuggest(); - app.tagFollowings.add(preloads.tagFollowings); + app.tagFollowings.reset(preloads.tagFollowings); if(name) { var followedTagsAction = new app.views.TagFollowingAction( diff --git a/app/assets/javascripts/app/views/tag_following_list_view.js b/app/assets/javascripts/app/views/tag_following_list_view.js index 192d276ea..353be4582 100644 --- a/app/assets/javascripts/app/views/tag_following_list_view.js +++ b/app/assets/javascripts/app/views/tag_following_list_view.js @@ -14,7 +14,8 @@ app.views.TagFollowingList = app.views.Base.extend({ }, initialize : function(){ - this.collection.bind("add", this.appendTagFollowing, this); + this.collection.on("add", this.appendTagFollowing, this); + this.collection.on("reset", this.postRenderTemplate, this); }, postRenderTemplate : function() { @@ -72,4 +73,4 @@ app.views.TagFollowingList = app.views.Base.extend({ }).render().el); } -}); \ No newline at end of file +}); diff --git a/app/assets/templates/tag_following_list_tpl.jst.hbs b/app/assets/templates/tag_following_list_tpl.jst.hbs index 279fbefa7..2e0c2f292 100644 --- a/app/assets/templates/tag_following_list_tpl.jst.hbs +++ b/app/assets/templates/tag_following_list_tpl.jst.hbs @@ -2,4 +2,4 @@
- \ No newline at end of file + diff --git a/spec/javascripts/app/collections/tag_following_collection_spec.js b/spec/javascripts/app/collections/tag_following_collection_spec.js index 6567a3b0a..cffdd4ae6 100644 --- a/spec/javascripts/app/collections/tag_following_collection_spec.js +++ b/spec/javascripts/app/collections/tag_following_collection_spec.js @@ -3,6 +3,14 @@ describe("app.collections.TagFollowings", function(){ this.collection = new app.collections.TagFollowings(); }) + describe("comparator", function() { + it("should compare in reverse order", function() { + var a = new app.models.TagFollowing({name: "aaa"}), + b = new app.models.TagFollowing({name: "zzz"}) + expect(this.collection.comparator(a, b)).toBe(true) + }) + }) + describe("create", function(){ it("should not allow duplicates", function(){ this.collection.create({"name":"name"})