Folder/feed action menus. All that's needed is positioning when too close to the bottom of the screen.

This commit is contained in:
Samuel Clay 2010-09-12 13:50:27 -04:00
parent 2b2305d08f
commit 5866aefe74
4 changed files with 318 additions and 152 deletions

View file

@ -472,12 +472,18 @@ a img {
top: -1px;
width: 20px;
height: 22px;
background: transparent url('../img/icons/silk/bullet_arrow_right.png') no-repeat 0px 3px;
background: transparent url('../img/icons/silk/bullet_arrow_right.png') no-repeat 3px 4px;
}
#feed_list .folder_title .NB-feedlist-manage-icon {
background-position: 3px 3px;
}
#feed_list .feed .NB-feedlist-manage-icon:hover,
#feed_list .folder_title .NB-feedlist-manage-icon:hover {
background: transparent url('../img/icons/silk/bullet_arrow_down.png') no-repeat -1px 3px;
background: transparent url('../img/icons/silk/bullet_arrow_down.png') no-repeat 3px 4px;
}
#feed_list .folder_title .NB-feedlist-manage-icon:hover {
background-position: 3px 3px;
}
#feed_list .feed.NB-toplevel .NB-feedlist-manage-icon,
@ -485,14 +491,15 @@ a img {
left: 0;
opacity: 1;
display: none;
background-position: 4px 3px !important;
background-position: 5px 4px;
}
#feed_list .folder_title.NB-toplevel .NB-feedlist-manage-icon {
background-position: 5px 3px;
}
#feed_list .feed.NB-hover .NB-feedlist-manage-icon,
#feed_list .folder_title.NB-hover .NB-feedlist-manage-icon {
opacity: 1;
display: block;
background-position: 3px 3px;
}
#feed_list .feed.NB-hover.NB-toplevel .feed_favicon {
@ -502,6 +509,16 @@ a img {
background: none;
}
#feed_list .feed.NB-manage-menu-showing > .NB-feedlist-manage-icon,
#feed_list .folder.NB-manage-menu-showing > .folder_title .NB-feedlist-manage-icon {
background-color: #F0FFF0;
background-image: url('../img/icons/silk/bullet_arrow_down.png');
-moz-border-radius: 4px;
border-radius: 4px;
display: block;
opacity: 1;
}
#feed_list .feed_counts {
position: absolute;
right: 2px;
@ -2557,9 +2574,7 @@ background: transparent;
position: absolute;
display: none;
opacity: 0;
bottom: 30px;
left: 40px;
width: 300px;
width: 260px;
padding: 0;
margin: 0;
background-color: #F0FFF0;
@ -2583,6 +2598,19 @@ background: transparent;
.NB-menu-manage.NB-menu-manage-notop {
}
.NB-menu-manage-container .NB-menu-manage-arrow {
width: 19px;
height: 20px;
background: #F0FFF0 url('../img/icons/silk/bullet_arrow_down.png') no-repeat 2px 2px;
border-top: 1px solid #8ABCBE;
border-left: 1px solid #8ABCBE;
border-right: 1px solid #6A9C9E;
z-index: 10;
position: absolute;
top: -21px;
left: -1px;
}
.NB-menu-manage li {
margin: 0 0 0 0;
padding: 5px 8px 5px 36px;
@ -2599,8 +2627,8 @@ background: transparent;
}
.NB-menu-manage li.NB-menu-separator {
background-color: #E2E8D8;
border-bottom: 1px solid #72924A;
background-color: #72924A;
border-bottom: 1px solid #E2E8D8;
padding: 0;
height: 1px;
}
@ -2622,8 +2650,8 @@ background: transparent;
}
.NB-menu-manage .NB-menu-manage-title {
font-size: 16px;
text-shadow: 0 1px 0 #FFF;
font-size: 14px;
text-shadow: 0 1px 0 #F0F0F0;
}
.NB-menu-manage li:hover:not(.NB-disabled) .NB-menu-manage-title {
@ -2636,7 +2664,7 @@ background: transparent;
}
.NB-menu-manage .NB-menu-manage-subtitle {
font-size: 12px;
font-size: 11px;
color: #718C7B;
}
@ -2696,24 +2724,12 @@ background: transparent;
background: transparent url('../img/icons/silk/cut.png') no-repeat 0 0;
}
.NB-menu-manage .NB-menu-manage-feed-delete {
.NB-menu-manage .NB-menu-manage-feed-delete .NB-menu-manage-image {
background: transparent url('../img/icons/silk/bin_closed.png') no-repeat 0 0;
float: right;
width: 16px;
height: 16px;
margin: 0 4px 0 0;
cursor: pointer;
visibility: hidden;
}
.NB-menu-manage .NB-menu-manage-feed-info:hover .NB-menu-manage-feed-delete {
visibility: visible;
}
.NB-menu-manage .NB-menu-manage-feed-delete.NB-menu-manage-feed-delete-cancel {
.NB-menu-manage .NB-menu-manage-feed-delete.NB-menu-manage-feed-delete-cancel .NB-menu-manage-image {
background: transparent url('../img/icons/silk/arrow_rotate_clockwise.png') no-repeat 0 0;
display: block;
visibility: visible;
}
.NB-menu-manage .NB-menu-manage-feed-delete-confirm .NB-menu-manage-image {
background: transparent url('../img/icons/silk/exclamation.png') no-repeat 0 1px;
font-weight: bold;

View file

@ -42,6 +42,88 @@ NEWSBLUR.log = function(msg) {
// NEWSBLUR.log(['isScrollVisible', docViewTop, docViewBottom, docOffset, elemTop, elemBottom]);
return ((elemTop >= docViewTop) && (elemBottom <= docViewBottom));
},
// Align an element relative to a target element's coordinates. Forces the
// element to be absolutely positioned. Element must be visible.
// Position string format is: "top -right".
// You can pass an optional offset object with top and left offsets specified.
align : function(target, pos, offset) {
var el = this;
pos = pos || '';
offset = offset || {};
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop || 0;
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft || 0;
var clientWidth = document.documentElement.clientWidth;
var clientHeight = document.documentElement.clientHeight;
if (target == window) {
var b = {
left : scrollLeft,
top : scrollTop,
width : $(window).width(),
height : $(window).height()
};
} else {
target = $(target);
var targOff = target.offset();
var b = {
left : targOff.left,
top : targOff.top,
width : target.innerWidth(),
height : target.innerHeight()
};
}
var elb = {
width : el.innerWidth(),
height : el.innerHeight()
};
var left, top;
if (pos.indexOf('-left') >= 0) {
left = b.left;
} else if (pos.indexOf('left') >= 0) {
left = b.left - elb.width;
} else if (pos.indexOf('-right') >= 0) {
left = b.left + b.width - elb.width;
} else if (pos.indexOf('right') >= 0) {
left = b.left + b.width;
} else { // Centered.
left = b.left + (b.width - elb.width) / 2;
}
if (pos.indexOf('-top') >= 0) {
top = b.top;
} else if (pos.indexOf('top') >= 0) {
top = b.top - elb.height;
} else if (pos.indexOf('-bottom') >= 0) {
top = b.top + b.height - elb.height;
} else if (pos.indexOf('bottom') >= 0) {
top = b.top + b.height;
} else { // Centered.
top = b.top + (b.height - elb.height) / 2;
}
var constrain = (pos.indexOf('no-constraint') >= 0) ? false : true;
left += offset.left || 0;
top += offset.top || 0;
if (constrain) {
left = Math.max(scrollLeft, Math.min(left, scrollLeft + clientWidth - elb.width));
top = Math.max(scrollTop, Math.min(top, scrollTop + clientHeight - elb.height));
}
// var offParent;
// if (offParent = el.offsetParent()) {
// left -= offParent.offset().left;
// top -= offParent.offset().top;
// }
$(el).css({position : 'absolute', left : left + 'px', top : top + 'px'});
return el;
}
});

View file

@ -937,10 +937,6 @@
});
},
open_feedlist_manage_menu: function($feed, type) {
NEWSBLUR.log(['Showing', $feed, $feed.data('feed_id'), type]);
},
// ===============================
// = Feed bar - Individual Feeds =
// ===============================
@ -958,7 +954,8 @@
'iframe_fetching_story_locations': false,
'story_titles_loaded': false,
'iframe_prevented_from_loading': false,
'pause_feed_refreshing': false
'pause_feed_refreshing': false,
'feed_list_showing_manage_menu': false
});
$.extend(this.cache, {
@ -1805,8 +1802,8 @@
}
},
open_feed_intelligence_modal: function(score) {
var feed_id = this.active_feed;
open_feed_intelligence_modal: function(score, feed_id) {
feed_id = feed_id || this.active_feed;
NEWSBLUR.classifier = new NEWSBLUR.ReaderClassifierFeed(feed_id, {'score': score});
},
@ -2118,8 +2115,8 @@
NEWSBLUR.add_feed = new NEWSBLUR.ReaderAddFeed();
},
open_manage_feed_modal: function() {
var feed_id = this.active_feed;
open_manage_feed_modal: function(feed_id) {
feed_id = feed_id || this.active_feed;
NEWSBLUR.manage_feed = new NEWSBLUR.ReaderManageFeed(feed_id);
},
@ -2136,144 +2133,193 @@
NEWSBLUR.feed_exception = new NEWSBLUR.ReaderFeedException(feed_id);
},
open_feed_statistics_modal: function() {
var feed_id = this.active_feed;
open_feed_statistics_modal: function(feed_id) {
feed_id = feed_id || this.active_feed;
NEWSBLUR.statistics = new NEWSBLUR.ReaderStatistics(feed_id);
},
make_manage_menu: function() {
var feed_id = this.active_feed;
var feed = this.model.get_feed(feed_id);
make_manage_menu: function(type, feed_id) {
var $manage_menu;
var $manage_menu = $.make('ul', { className: 'NB-menu-manage' }, [
$.make('li', { className: 'NB-menu-manage-site-info' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('span', { className: 'feed_title' }, "NewsBlur")
]).corner('tl tr 8px'),
$.make('li', { className: 'NB-menu-separator' }),
$.make('li', { className: 'NB-menu-manage-mark-read' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Mark all feeds as read'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Choose how many days back.')
]),
$.make('li', { className: 'NB-menu-manage-trainer' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Intelligence Trainer'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Accurate filters are happy filters.')
]),
$.make('li', { className: 'NB-menu-manage-preferences' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Preferences'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Defaults and options.')
])
]);
if (feed_id) {
var $feed_specific = [
$.make('li', { className: 'NB-menu-separator-top' }),
$.make('li', { className: 'NB-menu-manage-feed-info' }, [
$.make('div', { className: 'NB-menu-manage-feed-delete', title: 'Delete this site' }),
$.make('img', { className: 'feed_favicon', src: this.google_favicon_url + feed.feed_link }),
$.make('span', { className: 'feed_title' }, feed.feed_title)
]),
if (type == 'site') {
$manage_menu = $.make('ul', { className: 'NB-menu-manage' }, [
$.make('li', { className: 'NB-menu-manage-site-info' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('span', { className: 'feed_title' }, "Manage NewsBlur")
]).corner('tl tr 8px'),
$.make('li', { className: 'NB-menu-separator' }),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-delete-confirm' }, [
$.make('li', { className: 'NB-menu-manage-mark-read' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Really delete?')
$.make('div', { className: 'NB-menu-manage-title' }, 'Mark all feeds as read'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Choose how many days back.')
]),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-train' }, [
$.make('li', { className: 'NB-menu-manage-trainer' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Site intelligence trainer'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Choose classifiers for this site.')
$.make('div', { className: 'NB-menu-manage-title' }, 'Intelligence Trainer'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Accurate filters are happy filters.')
]),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-manage' }, [
$.make('li', { className: 'NB-menu-manage-preferences' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Site intelligence manager'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'What you like and don\'t like.')
]),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-stats' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Site statistics'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Popularity, load times, history.')
]),
$.make('div', { className: 'NB-menu-manage-title' }, 'Preferences'),
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Defaults and options.')
])
]);
$manage_menu.addClass('NB-menu-manage-notop');
} else if (type == 'feed') {
$manage_menu = $.make('ul', { className: 'NB-menu-manage' }, [
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-mark-read' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Mark as read')
]),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-stats' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Statistics')
]),
$.make('li', { className: 'NB-menu-separator' }),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-train' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Intelligence trainer')
]),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-manage' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Intelligence manager')
]),
$.make('li', { className: 'NB-menu-separator' }),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-delete' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Delete this site')
]),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-delete-confirm' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Really delete?')
])
];
for (var f in $feed_specific) {
$manage_menu.append($feed_specific[f]);
]);
$manage_menu.data('feed_id', feed_id);
if (feed_id && this.get_unread_count(true, feed_id) == 0) {
$('.NB-menu-manage-feed-mark-read', $manage_menu).addClass('NB-disabled');
}
} else {
$manage_menu.addClass('NB-menu-manage-notop');
} else if (type == 'folder') {
$manage_menu = $.make('ul', { className: 'NB-menu-manage' }, [
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-mark-read' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Mark folder as read')
]),
$.make('li', { className: 'NB-menu-separator' }),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-delete' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Delete this folder')
]),
$.make('li', { className: 'NB-menu-manage-feed NB-menu-manage-feed-delete-confirm' }, [
$.make('div', { className: 'NB-menu-manage-image' }),
$.make('div', { className: 'NB-menu-manage-title' }, 'Really delete?')
])
]);
}
if (feed_id && this.get_unread_count(true) == 0) {
$('.NB-menu-manage-feed-mark-read', $manage_menu).addClass('NB-disabled');
}
return $manage_menu;
},
show_manage_menu: function() {
show_manage_menu: function(type, $item) {
var self = this;
var $manage_menu_container = $('.NB-menu-manage-container');
// NEWSBLUR.log(['show_manage_menu', type, $item, $manage_menu_container.data('item'), $item && $item[0] == $manage_menu_container.data('item')]);
clearTimeout(this.flags.closed_manage_menu);
if ($manage_menu_container.css('opacity') != 0) {
return this.hide_manage_menu();
// If another menu is open, hide it first.
// If this menu is already open, then hide it instead.
if (($item && $item[0] == $manage_menu_container.data('item')) &&
parseInt($manage_menu_container.css('opacity'), 10) == 1) {
this.hide_manage_menu(type);
return;
} else {
this.hide_manage_menu(type);
}
var $manage_menu = this.make_manage_menu();
// Create menu, size and position it, then attach to the right place.
var feed_id = $item && $item.data('feed_id');
var $manage_menu = this.make_manage_menu(type, feed_id);
$manage_menu_container.empty().append($manage_menu);
$manage_menu_container.corner('tl tr 8px');
$manage_menu_container.data('item', $item && $item[0]);
$('.NB-task-manage').parents('.NB-taskbar').css('z-index', 2);
$manage_menu_container.css({'display': 'block'});
// var height = $manage_menu_container.outerHeight();
// $manage_menu_container.css({'bottom': '-'+(height+30)+'px', 'left': '40px', 'opacity': 0});
$manage_menu_container.animate({
'opacity': 1
}, {
'duration': 350,
'easing': 'easeOutQuint',
'queue': false,
'complete': function() {
$(document).bind('click.menu', function(e) {
self.hide_manage_menu();
});
}
});
$('.NB-task-manage').addClass('NB-hover');
if (type == 'site') {
$manage_menu_container.align($('.NB-task-manage'), '-bottom -left', {
'top': -32,
'left': -2
});
$('.NB-task-manage').addClass('NB-hover');
$manage_menu_container.corner('tl tr 8px');
} else if (type == 'feed' || type == 'folder') {
var left = -20;
if ($item.hasClass("NB-toplevel")) left = 0;
$manage_menu_container.align($item, '-top -left', {
'top': 21,
'left': left
});
$manage_menu_container.corner('tr 8px');
}
$manage_menu_container.stop().css({'display': 'block', 'opacity': 1});
// Create and position the arrow tab
if (type == 'feed' || type == 'folder') {
var $arrow = $.make('li', { className: 'NB-menu-manage-arrow' });
$arrow.corner('tl tr 5px');
$manage_menu_container.prepend($arrow);
}
// Hide menu on click outside menu.
_.defer(function() {
$(document).bind('click.menu', function(e) {
self.hide_manage_menu(type, $item, false);
});
});
// Hide menu on mouseout (on a delay).
$manage_menu_container.hover(function() {
clearTimeout(self.flags.closed_manage_menu);
}, function() {
clearTimeout(self.flags.closed_manage_menu);
self.flags.closed_manage_menu = setTimeout(function() {
if (self.flags.closed_manage_menu) {
self.hide_manage_menu();
self.hide_manage_menu(type, $item, true);
}
}, 1000);
});
},
hide_manage_menu: function() {
var $manage_menu_container = $('.NB-menu-manage-container');
var height = $manage_menu_container.outerHeight();
clearTimeout(this.flags.closed_manage_menu);
$(document).unbind('click.menu');
$manage_menu_container.animate({
'opacity': 0
}, {
'duration': 350,
'queue': false,
'complete': function() {
$manage_menu_container.css({'display': 'none'});
// Hide menu on scroll.
this.flags['feed_list_showing_manage_menu'] = true;
this.$s.$feed_list.unbind('scroll.manage_menu').bind('scroll.manage_menu', function(e) {
if (self.flags['feed_list_showing_manage_menu']) {
self.hide_manage_menu(type, $item, true);
} else {
self.$s.$feed_list.unbind('scroll.manage_menu');
}
});
},
hide_manage_menu: function(type, $item, animate) {
var $manage_menu_container = $('.NB-menu-manage-container');
var height = $manage_menu_container.outerHeight();
// NEWSBLUR.log(['hide_manage_menu', type, $item, animate, $manage_menu_container.css('opacity')]);
clearTimeout(this.flags.closed_manage_menu);
this.flags['feed_list_showing_manage_menu'] = false;
$(document).unbind('click.menu');
if (animate) {
$manage_menu_container.stop().animate({
'opacity': 0
}, {
'duration': 250,
'queue': false,
'complete': function() {
$manage_menu_container.css({'display': 'none', 'opacity': 0});
}
});
} else {
$manage_menu_container.css({'display': 'none', 'opacity': 0});
}
$('.NB-task-manage').removeClass('NB-hover');
},
@ -2363,14 +2409,15 @@
: 'neutral');
},
get_unread_count: function(visible_only, unread_view_name) {
get_unread_count: function(visible_only, feed_id) {
var total = 0;
var feed = this.model.get_feed(this.active_feed);
feed_id = feed_id || this.active_feed;
var feed = this.model.get_feed(feed_id);
if (!visible_only) {
total = feed.ng + feed.nt + feed.ps;
} else {
unread_view_name = unread_view_name || this.get_unread_view_name();
var unread_view_name = this.get_unread_view_name();
if (unread_view_name == 'positive') {
total = feed.ps;
} else if (unread_view_name == 'neutral') {
@ -2978,20 +3025,20 @@
handle_clicks: function(elem, e) {
var self = this;
var stopPropagation = false;
// var start = (new Date().getMilliseconds());
// = Feeds =
// Feeds ==========================================================
var stopPropagation = false;
$.targetIs(e, { tagSelector: '#feed_list .NB-feedlist-manage-icon' }, function($t, $p) {
e.preventDefault();
e.stopPropagation();
if (!self.flags['sorting_feed']) {
stopPropagation = true;
if ($t.parent().hasClass('feed')) {
self.open_feedlist_manage_menu($t.parents('.feed').eq(0), 'feed');
self.show_manage_menu('feed', $t.parents('.feed').eq(0));
} else {
self.open_feedlist_manage_menu($t.parents('.folder').eq(0), 'folder');
self.show_manage_menu('folder', $t.parents('.folder').eq(0));
}
}
});
@ -3001,7 +3048,7 @@
e.stopPropagation();
if (!self.flags['sorting_feed']) {
var feed_id = $t.data('feed_id');
exception = true;
stopPropagation = true;
self.open_feed_exception_modal(feed_id, $t);
}
});
@ -3036,7 +3083,7 @@
}
});
// = Feed Bar =
// = Feed Bar =====================================================
$.targetIs(e, { tagSelector: '.NB-feed-like' }, function($t, $p){
e.preventDefault();
@ -3047,7 +3094,7 @@
self.open_feed_intelligence_modal(-1);
});
// = Stories =
// = Stories ======================================================
var story_prevent_bubbling = false;
$.targetIs(e, { tagSelector: '.NB-story-like' }, function($t, $p){
@ -3090,7 +3137,7 @@
self.mark_story_as_read(story_id, $t);
});
// = Taskbar =
// = Taskbar ======================================================
$.targetIs(e, { tagSelector: '.NB-task-add' }, function($t, $p){
e.preventDefault();
@ -3099,19 +3146,21 @@
$.targetIs(e, { tagSelector: '.NB-task-manage' }, function($t, $p){
e.preventDefault();
if (!$t.hasClass('NB-disabled')) {
self.show_manage_menu($t);
self.show_manage_menu('site', $t);
}
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-feed-manage' }, function($t, $p){
e.preventDefault();
if (!$t.hasClass('NB-disabled')) {
self.open_manage_feed_modal();
var feed_id = $t.parents('.NB-menu-manage').data('feed_id');
self.open_manage_feed_modal(feed_id);
}
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-feed-train' }, function($t, $p){
e.preventDefault();
if (!$t.hasClass('NB-disabled')) {
self.open_feed_intelligence_modal(1);
var feed_id = $t.parents('.NB-menu-manage').data('feed_id');
self.open_feed_intelligence_modal(1, feed_id);
}
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-trainer' }, function($t, $p){
@ -3123,7 +3172,9 @@
$.targetIs(e, { tagSelector: '.NB-menu-manage-feed-stats' }, function($t, $p){
e.preventDefault();
if (!$t.hasClass('NB-disabled')) {
self.open_feed_statistics_modal();
var feed_id = $t.parents('.NB-menu-manage').data('feed_id');
NEWSBLUR.log(['statistics feed_id', feed_id]);
self.open_feed_statistics_modal(feed_id);
}
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-feed-delete' }, function($t, $p){
@ -3137,11 +3188,13 @@
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-feed-delete-confirm' }, function($t, $p){
e.preventDefault();
self.manage_menu_delete_feed(self.active_feed);
var feed_id = $t.parents('.NB-menu-manage').data('feed_id');
self.manage_menu_delete_feed(feed_id);
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-feed-mark-read' }, function($t, $p){
e.preventDefault();
self.mark_feed_as_read(self.active_feed);
var feed_id = $t.parents('.NB-menu-manage').data('feed_id');
self.mark_feed_as_read(feed_id);
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-mark-read' }, function($t, $p){
e.preventDefault();
@ -3189,7 +3242,8 @@
self.show_splash_page();
});
// = One-offs =
// = One-offs =====================================================
var clicked = false;
$.targetIs(e, { tagSelector: '#mouse-indicator' }, function($t, $p){
e.preventDefault();
@ -3239,6 +3293,20 @@
handle_dblclicks: function(elem, e) {
var self = this;
var stopPropagation = false;
$.targetIs(e, { tagSelector: '#feed_list .NB-feedlist-manage-icon' }, function($t, $p) {
e.preventDefault();
e.stopPropagation();
stopPropagation = true;
});
if (stopPropagation) return;
$.targetIs(e, { tagSelector: '#feed_list .feed.NB-feed-exception' }, function($t, $p){
e.preventDefault();
e.stopPropagation();
exception = true;
});
if (stopPropagation) return;
$.targetIs(e, { tagSelector: '#story_titles .story' }, function($t, $p){
e.preventDefault();
e.stopPropagation();

View file

@ -156,7 +156,7 @@
<table class="NB-howitworks-page-description">
<tr>
<td>
{% filter typogrify %}Use the iPhone app, available in August.{% endfilter %}
{% filter typogrify %}Use the iPhone app, available before January 2011.{% endfilter %}
</td>
</tr>
</table>