mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Automatically loading intro or chooser dialog based on progress of new user.
This commit is contained in:
parent
cb1bbe25bc
commit
41b68b32eb
7 changed files with 62 additions and 53 deletions
|
@ -151,6 +151,9 @@ class OPMLImporter(Importer):
|
|||
if self.user.profile.is_premium and not us.active:
|
||||
us.active = True
|
||||
us.save()
|
||||
if not us.needs_unread_recalc:
|
||||
us.needs_unread_recalc = True
|
||||
us.save()
|
||||
folders.append(feed_db.pk)
|
||||
return folders
|
||||
|
||||
|
@ -245,6 +248,9 @@ class GoogleReaderImporter(Importer):
|
|||
'active': self.user.profile.is_premium,
|
||||
}
|
||||
)
|
||||
if not us.needs_unread_recalc:
|
||||
us.needs_unread_recalc = True
|
||||
us.save()
|
||||
if not category: category = "Root"
|
||||
folders[category].append(feed_db.pk)
|
||||
except Exception, e:
|
||||
|
|
|
@ -142,10 +142,10 @@ class Feed(models.Model):
|
|||
try:
|
||||
super(Feed, self).save(*args, **kwargs)
|
||||
return self
|
||||
except IntegrityError, e:
|
||||
except IntegrityError:
|
||||
duplicate_feed = Feed.objects.filter(feed_address=self.feed_address, feed_link=self.feed_link)
|
||||
logging.debug("%s: %s" % (self.feed_address, duplicate_feed))
|
||||
logging.debug(' ***> [%-30s] Feed deleted. Could not save: %s' % (unicode(self)[:30], e))
|
||||
logging.debug(' ***> [%-30s] Feed deleted.' % (unicode(self)[:30]))
|
||||
if duplicate_feed:
|
||||
merge_feeds(self.pk, duplicate_feed[0].pk)
|
||||
return duplicate_feed[0]
|
||||
|
@ -1375,8 +1375,8 @@ def merge_feeds(original_feed_id, duplicate_feed_id, force=False):
|
|||
|
||||
logging.info(" ---> Feed: [%s - %s] %s - %s" % (original_feed_id, duplicate_feed_id,
|
||||
original_feed, original_feed.feed_link))
|
||||
logging.info(" --> %s" % original_feed.feed_address)
|
||||
logging.info(" --> %s" % duplicate_feed.feed_address)
|
||||
logging.info(" --> %s / %s" % (original_feed.feed_address, original_feed.feed_link))
|
||||
logging.info(" --> %s / %s" % (duplicate_feed.feed_address, duplicate_feed.feed_link))
|
||||
|
||||
user_subs = UserSubscription.objects.filter(feed=duplicate_feed)
|
||||
for user_sub in user_subs:
|
||||
|
|
|
@ -873,21 +873,16 @@ body.NB-theme-serif #story_pane .NB-feed-story-content {
|
|||
display: none;
|
||||
margin: -2px 0 0;
|
||||
}
|
||||
|
||||
#NB-progress .NB-progress-link a {
|
||||
-moz-box-shadow:1px 1px 1px #202020;
|
||||
-webkit-box-shadow:1px 1px 1px #202020;
|
||||
box-shadow:1px 1px 1px #202020;
|
||||
-moz-border-radius:4px;
|
||||
#NB-progress .NB-progress-link .NB-modal-submit-button {
|
||||
padding: 3px 0;
|
||||
font-size: 15px;
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
-moz-box-shadow:2px 2px 0px #404040;
|
||||
-webkit-box-shadow:2px 2px 0px #404040;
|
||||
box-shadow:2px 2px 0px #404040;
|
||||
border-radius: 4px;
|
||||
border:1px solid #606060;
|
||||
font-size:12px;
|
||||
margin:0 4px 0;
|
||||
padding:0px 8px;
|
||||
text-decoration:none;
|
||||
text-transform:uppercase;
|
||||
background-color: #217412;
|
||||
color: #FFF;
|
||||
border:1px solid #303030;
|
||||
}
|
||||
|
||||
#NB-progress.NB-progress-error {
|
||||
|
@ -5798,15 +5793,15 @@ background: transparent;
|
|||
.NB-modal-feedchooser .NB-feedchooser-type {
|
||||
float: left;
|
||||
width: 345px;
|
||||
margin: 24px 12px 0 0;
|
||||
margin: 0 12px 0 0;
|
||||
padding: 0 12px 0 0;
|
||||
}
|
||||
|
||||
.NB-modal-feedchooser .NB-feedchooser-type.NB-last {
|
||||
margin: 24px 0 0 0;
|
||||
margin: 0 0 0 0;
|
||||
padding: 0 0 0 24px;
|
||||
margin-right: 0;
|
||||
border-left: 1px solid #909090;
|
||||
border-left: 1px solid #B0B0B0;
|
||||
}
|
||||
|
||||
.NB-modal-feedchooser .NB-feedchooser-info {
|
||||
|
|
|
@ -42,7 +42,8 @@ NEWSBLUR.AssetModel.Reader = function() {
|
|||
this.starred_count = 0;
|
||||
this.read_stories_river_count = 0;
|
||||
this.flags = {
|
||||
'favicons_fetching': false
|
||||
'favicons_fetching': false,
|
||||
'has_chosen_feeds': false
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -296,6 +297,8 @@ NEWSBLUR.AssetModel.Reader.prototype = {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
self.detect_any_inactive_feeds();
|
||||
callback();
|
||||
};
|
||||
|
||||
|
@ -307,6 +310,12 @@ NEWSBLUR.AssetModel.Reader.prototype = {
|
|||
this.make_request('/reader/feeds', data, pre_callback, error_callback, {request_type: 'GET'});
|
||||
},
|
||||
|
||||
detect_any_inactive_feeds: function() {
|
||||
this.flags['has_chosen_feeds'] = _.any(this.feeds, function(feed) {
|
||||
return feed.active;
|
||||
});
|
||||
},
|
||||
|
||||
load_feeds_flat: function(callback, error_callback) {
|
||||
var self = this;
|
||||
var data = {
|
||||
|
|
|
@ -1081,7 +1081,6 @@
|
|||
$feed_list.empty();
|
||||
|
||||
this.$s.$story_taskbar.css({'display': 'block'});
|
||||
this.flags['has_chosen_feeds'] = this.detect_all_inactive_feeds();
|
||||
var $feeds = this.make_feeds_folder(folders, 0);
|
||||
$feed_list.css({
|
||||
'display': 'block',
|
||||
|
@ -1097,15 +1096,10 @@
|
|||
$('.NB-task-manage').removeClass('NB-disabled');
|
||||
$('.NB-callout-ftux').fadeOut(500);
|
||||
}
|
||||
|
||||
if (NEWSBLUR.Globals.is_authenticated && this.flags['has_chosen_feeds']) {
|
||||
this.open_dialog_after_feeds_loaded();
|
||||
if (NEWSBLUR.Globals.is_authenticated && this.model.flags['has_chosen_feeds']) {
|
||||
_.delay(_.bind(this.start_count_unreads_after_import, this), 1000);
|
||||
this.force_feeds_refresh($.rescope(this.finish_count_unreads_after_import, this), true);
|
||||
} else if (!this.flags['has_chosen_feeds'] && this.flags['favicons_downloaded'] && folders.length) {
|
||||
_.defer(_.bind(this.open_feedchooser_modal, this), 100);
|
||||
return;
|
||||
} else if (NEWSBLUR.Globals.is_authenticated && !folders.length) {
|
||||
this.setup_ftux_add_feed_callout();
|
||||
}
|
||||
|
||||
if (folders.length) {
|
||||
|
@ -1119,7 +1113,7 @@
|
|||
this.force_feed_refresh();
|
||||
}
|
||||
_.defer(_.bind(function() {
|
||||
this.model.load_feed_favicons($.rescope(this.make_feed_favicons, this), this.flags['favicons_downloaded'], this.flags['has_chosen_feeds']);
|
||||
this.model.load_feed_favicons($.rescope(this.make_feed_favicons, this), this.flags['favicons_downloaded'], this.model.flags['has_chosen_feeds']);
|
||||
var force_socket = NEWSBLUR.Globals.is_admin;
|
||||
this.setup_socket_realtime_unread_counts(force_socket);
|
||||
}, this));
|
||||
|
@ -1162,9 +1156,7 @@
|
|||
$feed_favicon.attr('src', $.favicon(model.get_feed(feed_id)));
|
||||
});
|
||||
|
||||
if (!this.flags['has_chosen_feeds'] && this.model.folders.length) {
|
||||
_.defer(_.bind(this.open_feedchooser_modal, this), 100);
|
||||
}
|
||||
this.open_dialog_after_feeds_loaded();
|
||||
},
|
||||
|
||||
sort_items: function(a, b) {
|
||||
|
@ -1218,14 +1210,6 @@
|
|||
$('.folder', $feeds).tsort('.folder_title_text');
|
||||
},
|
||||
|
||||
detect_all_inactive_feeds: function() {
|
||||
var feeds = this.model.feeds;
|
||||
var has_chosen_feeds = _.any(feeds, function(feed) {
|
||||
return feed.active;
|
||||
});
|
||||
return has_chosen_feeds;
|
||||
},
|
||||
|
||||
make_feeds_folder: function(items, depth, collapsed_parent) {
|
||||
var self = this;
|
||||
var $feeds = "";
|
||||
|
@ -1619,7 +1603,9 @@
|
|||
$('.NB-progress-counts', $progress).hide();
|
||||
$('.NB-progress-percentage', $progress).hide();
|
||||
$progress.addClass('NB-progress-error').addClass('NB-progress-big');
|
||||
$('.NB-progress-link', $progress).html($.make('a', { href: '#', className: 'NB-splash-link NB-menu-manage-feedchooser' }, 'Choose your 64 sites'));
|
||||
$('.NB-progress-link', $progress).html($.make('div', {
|
||||
className: 'NB-modal-submit-button NB-modal-submit-green NB-menu-manage-feedchooser'
|
||||
}, ['Choose your 64 sites']));
|
||||
|
||||
this.show_progress_bar();
|
||||
},
|
||||
|
@ -1632,6 +1618,16 @@
|
|||
this.hide_progress_bar();
|
||||
},
|
||||
|
||||
open_dialog_after_feeds_loaded: function() {
|
||||
if (!NEWSBLUR.Globals.is_authenticated) return;
|
||||
|
||||
if (!this.model.folders.length) {
|
||||
_.defer(_.bind(this.open_intro_modal, this), 100);
|
||||
} else if (!this.model.flags['has_chosen_feeds'] && this.flags['favicons_downloaded'] && this.model.folders.length) {
|
||||
_.defer(_.bind(this.open_feedchooser_modal, this), 100);
|
||||
}
|
||||
},
|
||||
|
||||
// ================
|
||||
// = Progress Bar =
|
||||
// ================
|
||||
|
@ -6335,7 +6331,7 @@
|
|||
var percentage = 0;
|
||||
var feeds_count = _.keys(this.model.feeds).length;
|
||||
|
||||
if (!this.flags['pause_feed_refreshing']) return;
|
||||
if (!this.flags['pause_feed_refreshing'] || this.flags['has_unfetched_feeds']) return;
|
||||
|
||||
this.flags['count_unreads_after_import_working'] = true;
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ NEWSBLUR.ReaderFeedchooser.prototype = {
|
|||
var self = this;
|
||||
|
||||
this.$modal = $.make('div', { className: 'NB-modal-feedchooser NB-modal' }, [
|
||||
$.make('h2', { className: 'NB-modal-title' }, 'Choose Your '+this.MAX_FEEDS),
|
||||
// $.make('h2', { className: 'NB-modal-title' }, 'Choose Your '+this.MAX_FEEDS),
|
||||
$.make('div', { className: 'NB-feedchooser-type'}, [
|
||||
$.make('div', { className: 'NB-feedchooser-info'}, [
|
||||
$.make('div', { className: 'NB-feedchooser-info-type' }, [
|
||||
|
@ -73,7 +73,7 @@ NEWSBLUR.ReaderFeedchooser.prototype = {
|
|||
]),
|
||||
$.make('li', { className: 'NB-2' }, [
|
||||
$.make('div', { className: 'NB-feedchooser-premium-bullet-image' }),
|
||||
'Unlimited number of sites'
|
||||
'Unlimited number of sites.'
|
||||
]),
|
||||
$.make('li', { className: 'NB-3' }, [
|
||||
$.make('div', { className: 'NB-feedchooser-premium-bullet-image' }),
|
||||
|
@ -81,16 +81,16 @@ NEWSBLUR.ReaderFeedchooser.prototype = {
|
|||
]),
|
||||
$.make('li', { className: 'NB-4' }, [
|
||||
$.make('div', { className: 'NB-feedchooser-premium-bullet-image' }),
|
||||
'Access to future premium-only features like searching, archives, and [top secret]'
|
||||
'Access to future features like searching.'
|
||||
]),
|
||||
$.make('li', { className: 'NB-5' }, [
|
||||
$.make('div', { className: 'NB-feedchooser-premium-bullet-image' }),
|
||||
'You feed my poor, hungry dog for 6 days',
|
||||
'You feed my poor, hungry dog for 6 days.',
|
||||
$.make('img', { className: 'NB-feedchooser-premium-poor-hungry-dog', src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/shiloh.jpg' })
|
||||
]),
|
||||
$.make('li', { className: 'NB-6' }, [
|
||||
$.make('div', { className: 'NB-feedchooser-premium-bullet-image' }),
|
||||
'You are supporting an indie developer'
|
||||
'You are supporting a solo indie developer.'
|
||||
]),
|
||||
$.make('li', { className: 'NB-7' }, [
|
||||
$.make('div', { className: 'NB-feedchooser-premium-bullet-image' }),
|
||||
|
@ -219,7 +219,7 @@ NEWSBLUR.ReaderFeedchooser.prototype = {
|
|||
$('#simplemodal-container').corner('6px');
|
||||
},
|
||||
'onClose': function(dialog, callback) {
|
||||
if (!self.flags['has_saved'] && !NEWSBLUR.reader.flags['has_chosen_feeds']) {
|
||||
if (!self.flags['has_saved'] && !self.model.flags['has_chosen_feeds']) {
|
||||
NEWSBLUR.reader.show_feed_chooser_button();
|
||||
}
|
||||
dialog.data.hide().empty().remove();
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
NEWSBLUR.ReaderIntro = function(options) {
|
||||
var defaults = {};
|
||||
var intro_page = this.model.preference('intro_page');
|
||||
|
||||
_.bindAll(this, 'close');
|
||||
|
||||
this.model = NEWSBLUR.AssetModel.reader();
|
||||
this.options = $.extend({
|
||||
'page_number': this.model.preference('intro_page') || 1
|
||||
'page_number': intro_page && _.isNumber(intro_page) && intro_page <= 4 ? intro_page : 1
|
||||
}, defaults, options);
|
||||
this.services = {
|
||||
'twitter': {},
|
||||
|
@ -235,7 +235,10 @@ _.extend(NEWSBLUR.ReaderIntro.prototype, {
|
|||
if (page_number == page_count) {
|
||||
$('.NB-tutorial-next-page-text', this.$modal).text('All Done ');
|
||||
} else if (page_number > page_count) {
|
||||
return this.close();
|
||||
this.close(function() {
|
||||
NEWSBLUR.reader.open_dialog_after_feeds_loaded();
|
||||
});
|
||||
return;
|
||||
} else if (page_number == 1) {
|
||||
$('.NB-tutorial-next-page-text', this.$modal).text("Let's Get Started ");
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue