From 620d07a2d2c200fee8cbab1baac98ede538a9bb4 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Wed, 23 May 2012 16:02:32 -0700 Subject: [PATCH] Fixing scroll to feed for social feeds. Also fixing manage menu for folders. --- .../js/newsblur/models/social_subscription.js | 11 +++++ media/js/newsblur/reader/reader.js | 13 +----- media/js/newsblur/views/feed_list_view.js | 9 ++-- media/js/newsblur/views/feed_view.js | 36 ++++++++-------- media/js/newsblur/views/folder_view.js | 42 ++++++++++++++++++- 5 files changed, 78 insertions(+), 33 deletions(-) diff --git a/media/js/newsblur/models/social_subscription.js b/media/js/newsblur/models/social_subscription.js index 6d1de8d7b..3da688406 100644 --- a/media/js/newsblur/models/social_subscription.js +++ b/media/js/newsblur/models/social_subscription.js @@ -34,6 +34,13 @@ NEWSBLUR.Collections.SocialSubscriptions = Backbone.Collection.extend({ model : NEWSBLUR.Models.SocialSubscription, + parse: function(models) { + _.each(models, function(feed) { + feed.selected = false; + }); + return models; + }, + comparator: function(a, b) { var sort_order = NEWSBLUR.reader.model.preference('feed_order'); var title_a = a.get('feed_title') || ''; @@ -54,6 +61,10 @@ NEWSBLUR.Collections.SocialSubscriptions = Backbone.Collection.extend({ return 0; }, + selected: function() { + return this.detect(function(feed) { return feed.get('selected'); }); + }, + deselect: function() { this.chain().select(function(feed) { return feed.get('selected'); diff --git a/media/js/newsblur/reader/reader.js b/media/js/newsblur/reader/reader.js index 1fb63e1ca..07efb331c 100644 --- a/media/js/newsblur/reader/reader.js +++ b/media/js/newsblur/reader/reader.js @@ -3499,7 +3499,7 @@ $indicator.removeClass('unread_threshold_positive') .removeClass('unread_threshold_neutral') .addClass('unread_threshold_negative'); - $indicator.animate({'opacity': 0}, {'duration': 500}); + $indicator.animate({'opacity': 0}, {'duration': 500}).css('display', 'none'); } }, @@ -6825,17 +6825,6 @@ self.open_river_stories(); }); - // = Feed Bar ===================================================== - - $.targetIs(e, { tagSelector: '.NB-feed-like' }, function($t, $p){ - e.preventDefault(); - self.open_feed_intelligence_modal(1); - }); - $.targetIs(e, { tagSelector: '.NB-feed-dislike' }, function($t, $p){ - e.preventDefault(); - self.open_feed_intelligence_modal(-1); - }); - // = Stories ====================================================== var story_prevent_bubbling = false; diff --git a/media/js/newsblur/views/feed_list_view.js b/media/js/newsblur/views/feed_list_view.js index b2523f75a..6d23ad693 100644 --- a/media/js/newsblur/views/feed_list_view.js +++ b/media/js/newsblur/views/feed_list_view.js @@ -22,6 +22,7 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({ }, this)); NEWSBLUR.assets.load_feeds(); + NEWSBLUR.assets.social_feeds.bind('change:selected', this.selected); NEWSBLUR.assets.feeds.bind('change:selected', this.selected); }, @@ -140,10 +141,10 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({ options = options || {}; if (!model) { - model = NEWSBLUR.assets.feeds.selected(); + model = NEWSBLUR.assets.feeds.selected() || NEWSBLUR.assets.social_feeds.selected(); console.log(["selected models", model]); } - if (!model) return; + if (!model || !model.get('selected')) return; if (options.$feed) { feed_view = _.detect(model.views, function(view) { @@ -154,7 +155,9 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({ feed_view = model.views[0]; } - this.scroll_to_show_selected_feed(feed_view); + if (feed_view) { + this.scroll_to_show_selected_feed(feed_view); + } }, scroll_to_show_selected_feed: function(feed_view) { diff --git a/media/js/newsblur/views/feed_view.js b/media/js/newsblur/views/feed_view.js index d5cfa2fa7..3309f550c 100644 --- a/media/js/newsblur/views/feed_view.js +++ b/media/js/newsblur/views/feed_view.js @@ -9,8 +9,8 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({ "contextmenu" : "show_manage_menu", "click .NB-feedlist-manage-icon" : "show_manage_menu", "click" : "open", - "mouseenter" : "add_hover_inverse_to_feed", - "mouseleave" : "remove_hover_inverse_from_feed" + "mouseenter" : "add_hover_inverse", + "mouseleave" : "remove_hover_inverse" }, initialize: function() { @@ -172,20 +172,6 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({ $(this.el).addClass(extra_classes); }, - add_hover_inverse_to_feed: function() { - if (NEWSBLUR.app.feed_list.is_sorting()) { - return; - } - - if (this.$el.offset().top > $(window).height() - 314) { - this.$el.addClass('NB-hover-inverse'); - } - }, - - remove_hover_inverse_from_feed: function() { - this.$el.removeClass('NB-hover-inverse'); - }, - // =========== // = Actions = // =========== @@ -196,6 +182,8 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({ // ========== open: function(e) { + if (this.options.type != 'feed') return; + if (NEWSBLUR.hotkeys.command) { NEWSBLUR.reader.open_unread_stories_in_tabs(this.id); } else if (this.model.is_social()) { @@ -209,7 +197,7 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({ e.preventDefault(); e.stopPropagation(); // console.log(["showing manage menu", this.model.is_social() ? 'socialfeed' : 'feed', $(this.el), this]); - NEWSBLUR.reader.show_manage_menu(this.model.is_social() ? 'socialfeed' : 'feed', $(this.el), { + NEWSBLUR.reader.show_manage_menu(this.model.is_social() ? 'socialfeed' : 'feed', this.$el, { feed_id: this.model.id, toplevel: this.options.depth == 0 }); @@ -223,6 +211,20 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({ NEWSBLUR.reader.reset_feed(); NEWSBLUR.reader.show_splash_page(); } + }, + + add_hover_inverse: function() { + if (NEWSBLUR.app.feed_list.is_sorting()) { + return; + } + + if (this.$el.offset().top > $(window).height() - 314) { + this.$el.addClass('NB-hover-inverse'); + } + }, + + remove_hover_inverse: function() { + this.$el.removeClass('NB-hover-inverse'); } }); \ No newline at end of file diff --git a/media/js/newsblur/views/folder_view.js b/media/js/newsblur/views/folder_view.js index 0f9689ede..12301e523 100644 --- a/media/js/newsblur/views/folder_view.js +++ b/media/js/newsblur/views/folder_view.js @@ -11,6 +11,14 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({ root: false }, + events: { + "contextmenu" : "show_manage_menu", + "click .NB-feedlist-manage-icon" : "show_manage_menu", + "click" : "open", + "mouseenter" : "add_hover_inverse", + "mouseleave" : "remove_hover_inverse" + }, + render: function() { var depth = this.options.depth; this.options.collapsed = _.contains(NEWSBLUR.Preferences.collapsed_folders, this.options.title); @@ -45,7 +53,7 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({ render_folder: function($feeds) { var $folder = _.template('\ <% if (!root) { %>\ -
\ +
\
\
\
\ @@ -62,6 +70,38 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({ }); return $folder; + }, + + // ========== + // = Events = + // ========== + + open: function(e) { + + }, + + show_manage_menu: function(e) { + e.preventDefault(); + e.stopPropagation(); + // console.log(["showing manage menu", this.model.is_social() ? 'socialfeed' : 'feed', $(this.el), this]); + NEWSBLUR.reader.show_manage_menu('folder', this.$el, { + toplevel: this.options.depth == 0 + }); + return false; + }, + + add_hover_inverse: function() { + if (NEWSBLUR.app.feed_list.is_sorting()) { + return; + } + + if (this.$el.offset().top > $(window).height() - 314) { + this.$el.addClass('NB-hover-inverse'); + } + }, + + remove_hover_inverse: function() { + this.$el.removeClass('NB-hover-inverse'); } }); \ No newline at end of file