2011-05-10 18:30:35 -04:00
|
|
|
NEWSBLUR.ReaderTutorial = function(options) {
|
|
|
|
var defaults = {};
|
|
|
|
|
|
|
|
_.bindAll(this, 'close');
|
2011-05-11 12:27:28 -04:00
|
|
|
|
|
|
|
this.options = $.extend({
|
|
|
|
'page_number': 1
|
|
|
|
}, defaults, options);
|
2011-05-10 18:30:35 -04:00
|
|
|
this.model = NEWSBLUR.AssetModel.reader();
|
|
|
|
|
2011-05-11 12:27:28 -04:00
|
|
|
this.page_number = this.options.page_number;
|
2011-05-10 18:30:35 -04:00
|
|
|
this.runner();
|
|
|
|
};
|
|
|
|
|
2011-05-11 12:27:28 -04:00
|
|
|
NEWSBLUR.ReaderTutorial.prototype = new NEWSBLUR.Modal;
|
|
|
|
NEWSBLUR.ReaderTutorial.prototype.constructor = NEWSBLUR.ReaderTutorial;
|
|
|
|
|
|
|
|
_.extend(NEWSBLUR.ReaderTutorial.prototype, {
|
2011-05-10 18:30:35 -04:00
|
|
|
|
2011-05-16 11:34:05 -04:00
|
|
|
TITLES: [
|
|
|
|
'Learn to use NewsBlur',
|
2011-05-16 23:13:49 -04:00
|
|
|
'Three Feed Views',
|
2011-05-16 11:34:05 -04:00
|
|
|
'Training the Intelligence',
|
|
|
|
'Tips and Tricks',
|
|
|
|
'Feedback and Open Source'
|
|
|
|
],
|
|
|
|
|
2011-05-10 18:30:35 -04:00
|
|
|
runner: function() {
|
|
|
|
this.make_modal();
|
|
|
|
this.open_modal();
|
2011-05-11 20:18:33 -04:00
|
|
|
this.page(1);
|
2011-05-10 18:30:35 -04:00
|
|
|
|
|
|
|
this.$modal.bind('click', $.rescope(this.handle_click, this));
|
|
|
|
},
|
|
|
|
|
|
|
|
make_modal: function() {
|
|
|
|
var self = this;
|
|
|
|
|
2011-05-11 12:27:28 -04:00
|
|
|
this.$modal = $.make('div', { className: 'NB-modal-tutorial NB-modal' }, [
|
2011-05-10 18:30:35 -04:00
|
|
|
$.make('span', { className: 'NB-modal-loading NB-spinner'}),
|
2011-05-11 20:18:33 -04:00
|
|
|
$.make('div', { className: 'NB-modal-page' }),
|
2011-05-16 11:34:05 -04:00
|
|
|
$.make('h2', { className: 'NB-modal-title' }),
|
2011-05-11 12:27:28 -04:00
|
|
|
$.make('div', { className: 'NB-page NB-page-1' }, [
|
|
|
|
'Page 1'
|
|
|
|
]),
|
|
|
|
$.make('div', { className: 'NB-page NB-page-2' }, [
|
2011-05-16 23:13:49 -04:00
|
|
|
$.make('div', { className: 'NB-tutorial-view' }, [
|
|
|
|
$.make('div', { className: 'NB-tutorial-view-title' }, [
|
|
|
|
$.make('img', { src: NEWSBLUR.Globals.MEDIA_URL + '/img/icons/silk/application_view_tile.png' }),
|
|
|
|
'Original'
|
|
|
|
]),
|
|
|
|
$.make('img', { className: 'NB-tutorial-view-image', src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/tutorial_view_original.png' }),
|
|
|
|
$.make('span', 'The site itself.')
|
|
|
|
]),
|
|
|
|
$.make('div', { className: 'NB-tutorial-view' }, [
|
|
|
|
$.make('div', { className: 'NB-tutorial-view-title' }, [
|
|
|
|
$.make('img', { src: NEWSBLUR.Globals.MEDIA_URL + '/img/icons/silk/application_view_list.png' }),
|
|
|
|
'Feed'
|
|
|
|
]),
|
|
|
|
$.make('img', { className: 'NB-tutorial-view-image', src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/tutorial_view_feed.png' }),
|
|
|
|
$.make('span', 'All feed stories.')
|
|
|
|
]),
|
|
|
|
$.make('div', { className: 'NB-tutorial-view' }, [
|
|
|
|
$.make('div', { className: 'NB-tutorial-view-title' }, [
|
|
|
|
$.make('img', { src: NEWSBLUR.Globals.MEDIA_URL + '/img/icons/silk/application_view_gallery.png' }),
|
|
|
|
'Story'
|
|
|
|
]),
|
|
|
|
$.make('img', { className: 'NB-tutorial-view-image', src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/tutorial_view_story.png' }),
|
|
|
|
$.make('span', 'Story click-through.')
|
|
|
|
]),
|
|
|
|
$.make('ul', [
|
|
|
|
$.make('li', [
|
|
|
|
'Instantly refresh a site by right-clicking on it and selecting '
|
|
|
|
]),
|
|
|
|
$.make('li', [
|
|
|
|
'Instantly refresh a site by right-clicking on it and selecting '
|
|
|
|
]),
|
|
|
|
$.make('li', [
|
|
|
|
'Instantly refresh a site by right-clicking on it and selecting '
|
|
|
|
])
|
|
|
|
])
|
2011-05-11 12:27:28 -04:00
|
|
|
]),
|
2011-05-16 11:34:05 -04:00
|
|
|
$.make('div', { className: 'NB-page NB-page-3' }, [
|
|
|
|
'Page 3'
|
|
|
|
]),
|
|
|
|
$.make('div', { className: 'NB-page NB-page-4' }, [
|
2011-05-16 23:13:49 -04:00
|
|
|
$.make('h4', 'Here are a few tricks that may enhance your experience:'),
|
|
|
|
$.make('ul', [
|
|
|
|
$.make('li', [
|
|
|
|
$.make('img', { src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/tutorial_tips_instafetch.png' }),
|
|
|
|
'Instantly refresh a site by right-clicking on it and selecting ',
|
2011-05-17 11:05:38 -04:00
|
|
|
$.make('b', 'Insta-fetch stories.')
|
2011-05-16 23:13:49 -04:00
|
|
|
]),
|
2011-05-17 11:05:38 -04:00
|
|
|
$.make('li', { className: 'NB-tutorial-tips-train' }, [
|
2011-05-16 23:13:49 -04:00
|
|
|
$.make('img', { src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/tutorial_tips_train.png' }),
|
2011-05-17 11:05:38 -04:00
|
|
|
$.make('div', 'Train sites in the Feed view by clicking directly on the tags and authors. The tags will rotate color between like and dislike.')
|
2011-05-16 23:13:49 -04:00
|
|
|
]),
|
|
|
|
$.make('li', [
|
|
|
|
$.make('img', { src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/tutorial_tips_folders.png' }),
|
|
|
|
'Folders can be nested inside folders.'
|
|
|
|
]),
|
2011-05-17 11:05:38 -04:00
|
|
|
$.make('li', { className: 'NB-tutorial-tips-sites' }, [
|
|
|
|
$.make('img', { src: NEWSBLUR.Globals.MEDIA_URL + '/img/reader/tutorial_tips_sites.png' }),
|
|
|
|
$.make('div', [
|
|
|
|
'Click on ',
|
|
|
|
$.make('span', { className: 'NB-tutorial-sites-count' }),
|
|
|
|
' at the top of the sidebar to hide sites with no unread stories.'
|
|
|
|
])
|
2011-05-16 23:13:49 -04:00
|
|
|
]),
|
|
|
|
$.make('li', [
|
|
|
|
'There are more than a dozen keyboard shortcuts you can use:'
|
|
|
|
])
|
|
|
|
])
|
2011-05-16 11:34:05 -04:00
|
|
|
]),
|
|
|
|
$.make('div', { className: 'NB-page NB-page-5' }, [
|
|
|
|
]),
|
2011-05-11 12:27:28 -04:00
|
|
|
$.make('div', { className: 'NB-modal-submit' }, [
|
|
|
|
$.make('div', { className: 'NB-page-next NB-modal-submit-button NB-modal-submit-green NB-modal-submit-save' }, [
|
|
|
|
$.make('span', { className: 'NB-tutorial-next-page-text' }, 'Next Page '),
|
|
|
|
$.make('span', { className: 'NB-raquo' }, '»')
|
|
|
|
]),
|
|
|
|
$.make('div', { className: 'NB-page-previous NB-modal-submit-button NB-modal-submit-close NB-modal-submit-save' }, [
|
|
|
|
$.make('span', { className: 'NB-raquo' }, '«'),
|
|
|
|
' Previous Page'
|
|
|
|
])
|
|
|
|
])
|
2011-05-10 18:30:35 -04:00
|
|
|
]);
|
|
|
|
},
|
|
|
|
|
2011-05-16 11:34:05 -04:00
|
|
|
set_title: function() {
|
|
|
|
$('.NB-modal-title', this.$modal).text(this.TITLES[this.page_number-1]);
|
|
|
|
},
|
|
|
|
|
2011-05-11 12:27:28 -04:00
|
|
|
// ==========
|
|
|
|
// = Paging =
|
|
|
|
// ==========
|
|
|
|
|
|
|
|
next_page: function() {
|
|
|
|
return this.page(this.page_number+1);
|
|
|
|
},
|
|
|
|
|
|
|
|
previous_page: function() {
|
|
|
|
return this.page(this.page_number-1);
|
|
|
|
},
|
|
|
|
|
|
|
|
page: function(page_number) {
|
|
|
|
if (page_number == null) {
|
|
|
|
return this.page_number;
|
|
|
|
}
|
|
|
|
var page_count = $('.NB-page', this.$modal).length;
|
|
|
|
this.page_number = page_number;
|
|
|
|
|
|
|
|
if (page_number == page_count) {
|
2011-05-11 20:18:33 -04:00
|
|
|
$('.NB-tutorial-next-page-text', this.$modal).text('Finish Tutorial ');
|
2011-05-11 12:27:28 -04:00
|
|
|
} else if (page_number > page_count) {
|
|
|
|
return this.close();
|
|
|
|
} else {
|
2011-05-11 20:18:33 -04:00
|
|
|
$('.NB-tutorial-next-page-text', this.$modal).text('Next Page ');
|
2011-05-11 12:27:28 -04:00
|
|
|
}
|
2011-05-11 20:18:33 -04:00
|
|
|
$('.NB-page-previous', this.$modal).toggle(page_number != 1);
|
2011-05-11 12:27:28 -04:00
|
|
|
$('.NB-page', this.$modal).css({'display': 'none'});
|
2011-05-11 20:18:33 -04:00
|
|
|
$('.NB-page-'+this.page_number, this.$modal).css({'display': 'block'});
|
|
|
|
$('.NB-modal-page', this.$modal).html($.make('div', [
|
|
|
|
'Page ',
|
|
|
|
$.make('b', this.page_number),
|
|
|
|
' of ',
|
|
|
|
$.make('b', page_count)
|
|
|
|
]));
|
2011-05-16 11:34:05 -04:00
|
|
|
this.set_title();
|
2011-05-11 12:27:28 -04:00
|
|
|
},
|
|
|
|
|
2011-05-13 10:15:56 -04:00
|
|
|
close: function() {
|
|
|
|
_.delay(function() {
|
|
|
|
NEWSBLUR.reader.hide_tutorial();
|
|
|
|
}, 500);
|
|
|
|
NEWSBLUR.Modal.prototype.close.call(this);
|
|
|
|
},
|
|
|
|
|
2011-05-10 18:30:35 -04:00
|
|
|
// ===========
|
|
|
|
// = Actions =
|
|
|
|
// ===========
|
|
|
|
|
|
|
|
handle_click: function(elem, e) {
|
|
|
|
var self = this;
|
|
|
|
|
2011-05-11 12:27:28 -04:00
|
|
|
$.targetIs(e, { tagSelector: '.NB-page-next' }, function($t, $p) {
|
|
|
|
e.preventDefault();
|
|
|
|
|
|
|
|
self.next_page();
|
|
|
|
});
|
|
|
|
$.targetIs(e, { tagSelector: '.NB-page-previous' }, function($t, $p) {
|
2011-05-10 18:30:35 -04:00
|
|
|
e.preventDefault();
|
|
|
|
|
2011-05-11 12:27:28 -04:00
|
|
|
self.previous_page();
|
2011-05-10 18:30:35 -04:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|