NewsBlur-viq/media/js/newsblur/reader_tutorial.js

102 lines
3.1 KiB
JavaScript
Raw Normal View History

NEWSBLUR.ReaderTutorial = function(options) {
var defaults = {};
_.bindAll(this, 'close');
this.options = $.extend({
'page_number': 1
}, defaults, options);
this.model = NEWSBLUR.AssetModel.reader();
this.page_number = this.options.page_number;
this.runner();
};
NEWSBLUR.ReaderTutorial.prototype = new NEWSBLUR.Modal;
NEWSBLUR.ReaderTutorial.prototype.constructor = NEWSBLUR.ReaderTutorial;
_.extend(NEWSBLUR.ReaderTutorial.prototype, {
runner: function() {
this.make_modal();
this.open_modal();
this.$modal.bind('click', $.rescope(this.handle_click, this));
},
make_modal: function() {
var self = this;
this.$modal = $.make('div', { className: 'NB-modal-tutorial NB-modal' }, [
$.make('span', { className: 'NB-modal-loading NB-spinner'}),
$.make('h2', { className: 'NB-modal-title' }, 'Learn to use NewsBlur'),
$.make('div', { className: 'NB-page NB-page-1' }, [
'Page 1'
]),
$.make('div', { className: 'NB-page NB-page-2' }, [
'Page 2'
]),
$.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'
])
])
]);
},
// ==========
// = 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) {
$('.NB-tutorial-next-page-text', this.$modal).text('Finish Tutorial');
} else if (page_number > page_count) {
return this.close();
} else {
$('.NB-tutorial-next-page-text', this.$modal).text('Next Page');
}
$('.NB-page', this.$modal).css({'display': 'none'});
$('.NB-page-'+this.page_number, this.$modal).css({'display': 'none'});
},
// ===========
// = Actions =
// ===========
handle_click: function(elem, e) {
var self = this;
$.targetIs(e, { tagSelector: '.NB-page-next' }, function($t, $p) {
e.preventDefault();
self.next_page();
});
$.targetIs(e, { tagSelector: '.NB-page-previous' }, function($t, $p) {
e.preventDefault();
self.previous_page();
});
}
});