diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index 0c4f1cc25..4ec6b53c7 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -148,6 +148,7 @@ class Feed(models.Model): 'num_subscribers': self.num_subscribers, 'updated': relative_timesince(self.last_update), 'updated_seconds_ago': seconds_timesince(self.last_update), + 'last_story_date': self.last_story_date, 'min_to_decay': self.min_to_decay, 'subs': self.num_subscribers, 'is_push': self.is_push, diff --git a/media/css/modals.css b/media/css/modals.css index 582a001b0..144af88eb 100644 --- a/media/css/modals.css +++ b/media/css/modals.css @@ -14,6 +14,8 @@ -webkit-box-shadow: 8px 8px 15px #505050; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 2px, rgba(255, 255, 255, 0.4) 0px 0px 300px 0px; border: 1px solid rgba(5, 5, 5,.6); + min-height: 300px; + overflow: auto; } /* =================== */ diff --git a/media/css/reader.css b/media/css/reader.css index b50baf7eb..1dc5c3a3d 100644 --- a/media/css/reader.css +++ b/media/css/reader.css @@ -6017,6 +6017,8 @@ form.opml_import_form input { } .NB-menu-manage .NB-menu-manage-confirm .NB-add-folders { float: left; + max-height: 84px; + overflow-y: auto; } .NB-menu-manage .NB-menu-manage-story-share-confirm .NB-sideoption-share { overflow: hidden; @@ -10362,6 +10364,15 @@ form.opml_import_form input { .NB-module-search .NB-module-search-results { padding: 12px; } +.NB-module-search .NB-friends-search-badges-empty { + clear: both; + font-size: 14px; + font-weight: 100; +} +.NB-module-search .NB-friends-search-badges-empty .NB-raquo { + float: left; + padding: 2px 6px; +} .NB-module-search-input.NB-active input { background: white url('/media/embed/reader/clos.gif') no-repeat right 4px; diff --git a/media/js/newsblur/reader/reader.js b/media/js/newsblur/reader/reader.js index 0a24ad845..1c03a1763 100644 --- a/media/js/newsblur/reader/reader.js +++ b/media/js/newsblur/reader/reader.js @@ -2356,7 +2356,7 @@ $gettingstarted.animate({ 'opacity': 0 }, { - 'duration': 500, + 'duration': 380, 'complete': function() { $gettingstarted.slideUp(350); } @@ -2831,13 +2831,13 @@ ]), $.make('li', { className: 'NB-menu-item NB-menu-manage-move NB-menu-manage-feed-move' }, [ $.make('div', { className: 'NB-menu-manage-image' }), - $.make('div', { className: 'NB-menu-manage-title' }, 'Move to folder') + $.make('div', { className: 'NB-menu-manage-title' }, 'Change folders') ]), $.make('li', { className: 'NB-menu-subitem NB-menu-manage-confirm NB-menu-manage-feed-move-confirm NB-modal-submit' }, [ $.make('div', { className: 'NB-menu-manage-confirm-position'}, [ $.make('div', { className: 'NB-menu-manage-move-save NB-menu-manage-feed-move-save NB-modal-submit-green NB-modal-submit-button' }, 'Save'), $.make('div', { className: 'NB-menu-manage-image' }), - $.make('div', { className: 'NB-add-folders' }, NEWSBLUR.utils.make_folders()) + $.make('div', { className: 'NB-add-folders' }) ]) ]), $.make('li', { className: 'NB-menu-item NB-menu-manage-rename NB-menu-manage-feed-rename' }, [ @@ -3460,51 +3460,104 @@ var $move = $('.NB-menu-manage-feed-move,.NB-menu-manage-folder-move'); var $confirm = $('.NB-menu-manage-feed-move-confirm,.NB-menu-manage-folder-move-confirm'); var $position = $('.NB-menu-manage-confirm-position', $confirm); + var $add = $(".NB-add-folders", $confirm); var $select = $('select', $confirm); + if (_.isNumber(feed_id)) { var feed = this.model.get_feed(feed_id); var feed_view = feed.get_view($feed, true); var in_folder = feed_view.options.folder_title; + var $folders = this.make_folders_multiselect(feed); + $add.html($folders); } else { folder_view = NEWSBLUR.assets.folders.get_view($feed) || this.active_folder.folder_view; var in_folder = folder_view.collection.options.title; } - + $move.addClass('NB-menu-manage-feed-move-cancel'); $('.NB-menu-manage-title', $move).text('Cancel move'); $position.css('position', 'relative'); var height = $confirm.height(); $position.css('position', 'absolute'); $confirm.css({'height': 0, 'display': 'block'}).animate({'height': height}, { - 'duration': 500, + 'duration': 380, 'easing': 'easeOutQuart' }); - $('select', $confirm).focus().select(); this.flags['showing_confirm_input_on_manage_menu'] = true; + + if (!_.isNumber(feed_id)) { + $('select', $confirm).focus().select(); + $('option', $select).each(function() { + if ($(this).attr('value') == in_folder) { + $(this).attr('selected', 'selected'); + return false; + } + }); + } + }, + + make_folders_multiselect: function(feed) { + var folders = NEWSBLUR.assets.get_folders(); + var in_folders = _.pluck(_.pluck(NEWSBLUR.assets.active_feed.folders, 'options'), 'title'); + var $options = $.make('div', { className: 'NB-folders' }); + var $option = this.make_folder_selectable('Top Level', '', 0, _.any(in_folders, function(folder) { + return !folder; + })); + $options.append($option); + + $options = this.make_folders_multiselect_options($options, folders, 0, in_folders); - $('option', $select).each(function() { - if ($(this).attr('value') == in_folder) { - $(this).attr('selected', 'selected'); - return false; + return $options; + }, + + make_folders_multiselect_options: function($options, items, depth, in_folders) { + var self = this; + items.each(function(item) { + if (item.is_folder()) { + var title = item.get('folder_title'); + var $option = self.make_folder_selectable(title, title, _.contains(in_folders, title)); + $options.append($option); + $options = self.make_folders_multiselect_options($options, item.folders, depth+1, in_folders); } }); + + return $options; + }, + + make_folder_selectable: function(folder_title, folder_value, depth, selected) { + return $.make('div', { + className: "NB-folder-option " + (selected ? "NB-folder-option-active" : ""), + style: 'padding-left: ' + depth*12 + 'px;' + }, [ + $.make('div', { className: 'NB-icon' }), + $.make('div', { className: 'NB-folder-option-title' }, folder_title) + ]).data('folder', folder_value); }, hide_confirm_move_menu_item: function(moved) { - var $move = $('.NB-menu-manage-feed-move,.NB-menu-manage-folder-move'); - var $confirm = $('.NB-menu-manage-feed-move-confirm,.NB-menu-manage-folder-move-confirm'); + var $move_folder = $('.NB-menu-manage-folder-move'); + var $move_feed = $('.NB-menu-manage-feed-move'); + var $confirm_folder = $('.NB-menu-manage-folder-move-confirm'); + var $confirm_feed = $('.NB-menu-manage-feed-move-confirm'); - $move.removeClass('NB-menu-manage-feed-move-cancel'); - var text = 'Move to folder'; + $move_folder.removeClass('NB-menu-manage-feed-move-cancel'); + $move_feed.removeClass('NB-menu-manage-feed-move-cancel'); + var text_folder = 'Move to folder'; + var text_feed = 'Change folders'; if (moved) { - text = 'Moved'; - $move.addClass('NB-active'); + text_folder = 'Moved'; + text_feed = 'Moved'; + $move_folder.addClass('NB-active'); + $move_feed.addClass('NB-active'); } else { - $move.removeClass('NB-active'); + $move_folder.removeClass('NB-active'); + $move_feed.removeClass('NB-active'); } - $('.NB-menu-manage-title', $move).text(text); - $confirm.slideUp(500); + $('.NB-menu-manage-title', $move_folder).text(text_folder); + $('.NB-menu-manage-title', $move_feed).text(text_feed); + $confirm_feed.slideUp(500); + $confirm_folder.slideUp(500); this.flags['showing_confirm_input_on_manage_menu'] = false; }, @@ -3564,7 +3617,7 @@ var height = $confirm.height(); $position.css('position', 'absolute'); $confirm.css({'height': 0, 'display': 'block'}).animate({'height': height}, { - 'duration': 500, + 'duration': 380, 'easing': 'easeOutQuart' }); $('input', $confirm).focus().select(); @@ -3642,7 +3695,7 @@ var height = $story_share.height(); $position.css('position', 'absolute'); $confirm.css({'height': 0, 'display': 'block'}).animate({'height': height}, { - 'duration': 500, + 'duration': 380, 'easing': 'easeOutQuart' }); $('textarea', $confirm).focus().select(); diff --git a/media/js/newsblur/reader/reader_account.js b/media/js/newsblur/reader/reader_account.js index 428ec2f87..89f722d25 100644 --- a/media/js/newsblur/reader/reader_account.js +++ b/media/js/newsblur/reader/reader_account.js @@ -5,6 +5,7 @@ NEWSBLUR.ReaderAccount = function(options) { 'change_password': false, 'onOpen': _.bind(function() { this.animate_fields(); + $(window).trigger('resize.simplemodal'); }, this) }; diff --git a/media/js/newsblur/views/menu_sidebar.js b/media/js/newsblur/views/menu_sidebar.js new file mode 100644 index 000000000..d4686a1e9 --- /dev/null +++ b/media/js/newsblur/views/menu_sidebar.js @@ -0,0 +1,10 @@ +NEWSBLUR.Views.MenuSidebar = Backbone.View.extend({ + + className: "NB-menu-sidebar", + + render: function() { + + return this; + } + +}); \ No newline at end of file