mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Fixing scroll to feed for social feeds. Also fixing manage menu for folders.
This commit is contained in:
parent
9434ee5ef1
commit
620d07a2d2
5 changed files with 78 additions and 33 deletions
|
@ -34,6 +34,13 @@ NEWSBLUR.Collections.SocialSubscriptions = Backbone.Collection.extend({
|
||||||
|
|
||||||
model : NEWSBLUR.Models.SocialSubscription,
|
model : NEWSBLUR.Models.SocialSubscription,
|
||||||
|
|
||||||
|
parse: function(models) {
|
||||||
|
_.each(models, function(feed) {
|
||||||
|
feed.selected = false;
|
||||||
|
});
|
||||||
|
return models;
|
||||||
|
},
|
||||||
|
|
||||||
comparator: function(a, b) {
|
comparator: function(a, b) {
|
||||||
var sort_order = NEWSBLUR.reader.model.preference('feed_order');
|
var sort_order = NEWSBLUR.reader.model.preference('feed_order');
|
||||||
var title_a = a.get('feed_title') || '';
|
var title_a = a.get('feed_title') || '';
|
||||||
|
@ -54,6 +61,10 @@ NEWSBLUR.Collections.SocialSubscriptions = Backbone.Collection.extend({
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
selected: function() {
|
||||||
|
return this.detect(function(feed) { return feed.get('selected'); });
|
||||||
|
},
|
||||||
|
|
||||||
deselect: function() {
|
deselect: function() {
|
||||||
this.chain().select(function(feed) {
|
this.chain().select(function(feed) {
|
||||||
return feed.get('selected');
|
return feed.get('selected');
|
||||||
|
|
|
@ -3499,7 +3499,7 @@
|
||||||
$indicator.removeClass('unread_threshold_positive')
|
$indicator.removeClass('unread_threshold_positive')
|
||||||
.removeClass('unread_threshold_neutral')
|
.removeClass('unread_threshold_neutral')
|
||||||
.addClass('unread_threshold_negative');
|
.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();
|
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 ======================================================
|
// = Stories ======================================================
|
||||||
|
|
||||||
var story_prevent_bubbling = false;
|
var story_prevent_bubbling = false;
|
||||||
|
|
|
@ -22,6 +22,7 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
|
||||||
}, this));
|
}, this));
|
||||||
NEWSBLUR.assets.load_feeds();
|
NEWSBLUR.assets.load_feeds();
|
||||||
|
|
||||||
|
NEWSBLUR.assets.social_feeds.bind('change:selected', this.selected);
|
||||||
NEWSBLUR.assets.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 || {};
|
options = options || {};
|
||||||
|
|
||||||
if (!model) {
|
if (!model) {
|
||||||
model = NEWSBLUR.assets.feeds.selected();
|
model = NEWSBLUR.assets.feeds.selected() || NEWSBLUR.assets.social_feeds.selected();
|
||||||
console.log(["selected models", model]);
|
console.log(["selected models", model]);
|
||||||
}
|
}
|
||||||
if (!model) return;
|
if (!model || !model.get('selected')) return;
|
||||||
|
|
||||||
if (options.$feed) {
|
if (options.$feed) {
|
||||||
feed_view = _.detect(model.views, function(view) {
|
feed_view = _.detect(model.views, function(view) {
|
||||||
|
@ -154,7 +155,9 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
|
||||||
feed_view = model.views[0];
|
feed_view = model.views[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (feed_view) {
|
||||||
this.scroll_to_show_selected_feed(feed_view);
|
this.scroll_to_show_selected_feed(feed_view);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
scroll_to_show_selected_feed: function(feed_view) {
|
scroll_to_show_selected_feed: function(feed_view) {
|
||||||
|
|
|
@ -9,8 +9,8 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({
|
||||||
"contextmenu" : "show_manage_menu",
|
"contextmenu" : "show_manage_menu",
|
||||||
"click .NB-feedlist-manage-icon" : "show_manage_menu",
|
"click .NB-feedlist-manage-icon" : "show_manage_menu",
|
||||||
"click" : "open",
|
"click" : "open",
|
||||||
"mouseenter" : "add_hover_inverse_to_feed",
|
"mouseenter" : "add_hover_inverse",
|
||||||
"mouseleave" : "remove_hover_inverse_from_feed"
|
"mouseleave" : "remove_hover_inverse"
|
||||||
},
|
},
|
||||||
|
|
||||||
initialize: function() {
|
initialize: function() {
|
||||||
|
@ -172,20 +172,6 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({
|
||||||
$(this.el).addClass(extra_classes);
|
$(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 =
|
// = Actions =
|
||||||
// ===========
|
// ===========
|
||||||
|
@ -196,6 +182,8 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({
|
||||||
// ==========
|
// ==========
|
||||||
|
|
||||||
open: function(e) {
|
open: function(e) {
|
||||||
|
if (this.options.type != 'feed') return;
|
||||||
|
|
||||||
if (NEWSBLUR.hotkeys.command) {
|
if (NEWSBLUR.hotkeys.command) {
|
||||||
NEWSBLUR.reader.open_unread_stories_in_tabs(this.id);
|
NEWSBLUR.reader.open_unread_stories_in_tabs(this.id);
|
||||||
} else if (this.model.is_social()) {
|
} else if (this.model.is_social()) {
|
||||||
|
@ -209,7 +197,7 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
// console.log(["showing manage menu", this.model.is_social() ? 'socialfeed' : 'feed', $(this.el), this]);
|
// 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,
|
feed_id: this.model.id,
|
||||||
toplevel: this.options.depth == 0
|
toplevel: this.options.depth == 0
|
||||||
});
|
});
|
||||||
|
@ -223,6 +211,20 @@ NEWSBLUR.Views.Feed = Backbone.View.extend({
|
||||||
NEWSBLUR.reader.reset_feed();
|
NEWSBLUR.reader.reset_feed();
|
||||||
NEWSBLUR.reader.show_splash_page();
|
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');
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
|
@ -11,6 +11,14 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
|
||||||
root: false
|
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() {
|
render: function() {
|
||||||
var depth = this.options.depth;
|
var depth = this.options.depth;
|
||||||
this.options.collapsed = _.contains(NEWSBLUR.Preferences.collapsed_folders, this.options.title);
|
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) {
|
render_folder: function($feeds) {
|
||||||
var $folder = _.template('\
|
var $folder = _.template('\
|
||||||
<% if (!root) { %>\
|
<% if (!root) { %>\
|
||||||
<div class="folder_title <% if (depth == 0) { %>NB-toplevel<% } %>">\
|
<div class="folder_title <% if (depth <= 1) { %>NB-toplevel<% } %>">\
|
||||||
<div class="NB-folder-icon"></div>\
|
<div class="NB-folder-icon"></div>\
|
||||||
<div class="NB-feedlist-collapse-icon" title="<% if (is_collapsed) { %>Expand Folder<% } else {%>Collapse Folder<% } %>"></div>\
|
<div class="NB-feedlist-collapse-icon" title="<% if (is_collapsed) { %>Expand Folder<% } else {%>Collapse Folder<% } %>"></div>\
|
||||||
<div class="NB-feedlist-manage-icon"></div>\
|
<div class="NB-feedlist-manage-icon"></div>\
|
||||||
|
@ -62,6 +70,38 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
|
||||||
});
|
});
|
||||||
|
|
||||||
return $folder;
|
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');
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
Loading…
Add table
Reference in a new issue