Reloading feed list when adding, moving, and deleting feeds and folders.

This commit is contained in:
Samuel Clay 2013-09-13 16:35:48 -07:00
parent 83cdbebcd7
commit cab28a845e
6 changed files with 34 additions and 11 deletions

View file

@ -1391,6 +1391,9 @@ def delete_feed(request):
if feed:
feed[0].count_subscribers()
r = redis.Redis(connection_pool=settings.REDIS_PUBSUB_POOL)
r.publish(request.user.username, 'reload:feeds')
return dict(code=1, message="Removed %s from '%s'." % (feed, in_folder))
@ajax_login_required
@ -1429,6 +1432,9 @@ def delete_folder(request):
user_sub_folders = get_object_or_404(UserSubscriptionFolders, user=request.user)
user_sub_folders.delete_folder(folder_to_delete, in_folder, feed_ids_in_folder)
r = redis.Redis(connection_pool=settings.REDIS_PUBSUB_POOL)
r.publish(request.user.username, 'reload:feeds')
return dict(code=1)
@ajax_login_required
@ -1474,6 +1480,9 @@ def move_feed_to_folder(request):
user_sub_folders = get_object_or_404(UserSubscriptionFolders, user=request.user)
user_sub_folders = user_sub_folders.move_feed_to_folder(feed_id, in_folder=in_folder, to_folder=to_folder)
r = redis.Redis(connection_pool=settings.REDIS_PUBSUB_POOL)
r.publish(request.user.username, 'reload:feeds')
return dict(code=1, folders=json.decode(user_sub_folders.folders))
@ -1486,6 +1495,9 @@ def move_folder_to_folder(request):
user_sub_folders = get_object_or_404(UserSubscriptionFolders, user=request.user)
user_sub_folders = user_sub_folders.move_folder_to_folder(folder_name, in_folder=in_folder, to_folder=to_folder)
r = redis.Redis(connection_pool=settings.REDIS_PUBSUB_POOL)
r.publish(request.user.username, 'reload:feeds')
return dict(code=1, folders=json.decode(user_sub_folders.folders))

View file

@ -47,8 +47,11 @@ NEWSBLUR.Models.Feed = Backbone.Model.extend({
delete_feed: function(options) {
options = options || {};
var view = options.view || this.get_view();
NEWSBLUR.assets.delete_feed(this.id, view.options.folder_title);
NEWSBLUR.reader.flags['reloading_feeds'] = true;
NEWSBLUR.assets.delete_feed(this.id, view.options.folder_title, function() {
NEWSBLUR.reader.flags['reloading_feeds'] = false;
});
view.delete_feed();
},
@ -58,8 +61,10 @@ NEWSBLUR.Models.Feed = Backbone.Model.extend({
var in_folder = view.options.folder_title;
if (in_folder == to_folder) return false;
NEWSBLUR.reader.flags['reloading_feeds'] = true;
NEWSBLUR.assets.move_feed_to_folder(this.id, in_folder, to_folder, function() {
NEWSBLUR.reader.flags['reloading_feeds'] = false;
_.delay(function() {
NEWSBLUR.reader.$s.$feed_list.css('opacity', 1).animate({'opacity': 0}, {
'duration': 100,

View file

@ -75,7 +75,9 @@ NEWSBLUR.Models.FeedOrFolder = Backbone.Model.extend({
var folder_title = this.get('folder_title');
if (in_folder == to_folder) return false;
NEWSBLUR.reader.flags['reloading_feeds'] = true;
NEWSBLUR.assets.move_folder_to_folder(folder_title, in_folder, to_folder, function() {
NEWSBLUR.reader.flags['reloading_feeds'] = false;
_.delay(function() {
NEWSBLUR.reader.$s.$feed_list.css('opacity', 1).animate({'opacity': 0}, {
'duration': 100,
@ -100,7 +102,11 @@ NEWSBLUR.Models.FeedOrFolder = Backbone.Model.extend({
var folder_title = this.get('folder_title');
var in_folder = this.collection.options.title;
var feed_ids_in_folder = this.feed_ids_in_folder();
NEWSBLUR.assets.delete_folder(folder_title, in_folder, feed_ids_in_folder);
NEWSBLUR.reader.flags['reloading_feeds'] = true;
NEWSBLUR.assets.delete_folder(folder_title, in_folder, feed_ids_in_folder, function() {
NEWSBLUR.reader.flags['reloading_feeds'] = false;
});
this.trigger('delete');
},

View file

@ -1102,7 +1102,7 @@
'social_view': false,
'select_story_in_feed': null,
'global_blurblogs': false,
'adding_url': false
'reloading_feeds': false
});
$.extend(this.cache, {
@ -4002,7 +4002,7 @@
var feeds = message.replace('refresh:', '').split(",");
this.force_feeds_refresh(null, false, feeds);
} else if (_.string.startsWith(message, "reload:")) {
if (!NEWSBLUR.reader.flags['adding_url']) {
if (!NEWSBLUR.reader.flags['reloading_feeds']) {
NEWSBLUR.assets.load_feeds();
}
}

View file

@ -217,7 +217,7 @@ NEWSBLUR.ReaderAddFeed = NEWSBLUR.ReaderPopover.extend({
$loading.addClass('NB-active');
$submit.addClass('NB-disabled').text('Adding...');
NEWSBLUR.reader.flags['adding_url'] = true;
NEWSBLUR.reader.flags['reloading_feeds'] = true;
this.model.save_add_url(url, folder, $.rescope(this.post_save_add_url, this), $.rescope(this.error, this));
},
@ -226,7 +226,7 @@ NEWSBLUR.ReaderAddFeed = NEWSBLUR.ReaderPopover.extend({
var $submit = this.$('.NB-add-url-submit');
var $loading = this.$('.NB-add-site .NB-loading');
$loading.removeClass('NB-active');
NEWSBLUR.reader.flags['adding_url'] = false;
NEWSBLUR.reader.flags['reloading_feeds'] = false;
if (data.code > 0) {
NEWSBLUR.assets.load_feeds(function() {
@ -253,7 +253,7 @@ NEWSBLUR.ReaderAddFeed = NEWSBLUR.ReaderPopover.extend({
$(".NB-error-message", $error).text(data.message || "Oh no, there was a problem grabbing that URL and there's no good explanation for what happened.");
$error.slideDown(300);
$submit.text('Add Site');
NEWSBLUR.reader.flags['adding_url'] = false;
NEWSBLUR.reader.flags['reloading_feeds'] = false;
},
open_add_folder: function() {

View file

@ -432,10 +432,10 @@ NEWSBLUR.ReaderFeedchooser.prototype = {
var $submit = $('.NB-modal-submit-save', this.$modal);
$submit.addClass('NB-disabled').removeClass('NB-modal-submit-green').val('Saving...');
NEWSBLUR.reader.flags['adding_url'] = true;
NEWSBLUR.reader.flags['reloading_feeds'] = true;
this.model.save_feed_chooser(approve_list, function() {
self.flags['has_saved'] = true;
NEWSBLUR.reader.flags['adding_url'] = false;
NEWSBLUR.reader.flags['reloading_feeds'] = false;
NEWSBLUR.reader.hide_feed_chooser_button();
NEWSBLUR.assets.load_feeds();
$.modal.close();