Adding mark read and preferences modals. Also cleaning up and fixing minor bugs in the manage menu.

This commit is contained in:
Samuel Clay 2010-06-13 18:57:20 -04:00
parent ea98c18da3
commit 72e5f25400
8 changed files with 422 additions and 190 deletions

View file

@ -1226,7 +1226,6 @@ form.opml_import_form input {
#NB-splash .NB-splash-title {
position: absolute;
bottom: -1px;
margin-left: 244px;
background: transparent url('../img/reader/newsblur_logo.png') no-repeat 0 0;
height: 52px;
right: 250px;
@ -1271,8 +1270,14 @@ form.opml_import_form input {
color: #A85B40;
}
#NB-splash .NB-splash-info {
margin-left: 244px;
.NB-splash-info {
background-color: white;
z-index: 1;
position: absolute;
right: 0;
bottom: 0;
width: 500px;
height: 56px;
}
/* ============== */
@ -1871,7 +1876,7 @@ background: transparent;
.NB-menu-manage li {
margin: 0 0 0 0;
padding: 3px 12px;
padding: 3px 8px 3px 12px;
cursor: pointer;
}

View file

@ -1791,6 +1791,18 @@
self.open_manage_feed_modal();
}
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-mark-read' }, function($t, $p){
e.preventDefault();
if (!$t.hasClass('NB-disabled')) {
self.open_mark_read_modal();
}
});
$.targetIs(e, { tagSelector: '.NB-menu-manage-preferences' }, function($t, $p){
e.preventDefault();
if (!$t.hasClass('NB-disabled')) {
self.open_preferences_modal();
}
});
$.targetIs(e, { tagSelector: '.task_button_view' }, function($t, $p){
e.preventDefault();
var view;
@ -2067,6 +2079,18 @@
NEWSBLUR.manage_feed = new NEWSBLUR.ReaderManageFeed(feed_id);
},
open_mark_read_modal: function() {
var feed_id = this.active_feed;
NEWSBLUR.mark_read = new NEWSBLUR.ReaderMarkRead();
},
open_preferences_modal: function() {
var feed_id = this.active_feed;
NEWSBLUR.preferences = new NEWSBLUR.ReaderPreferences();
},
make_manage_menu: function() {
var feed_id = this.active_feed;
var feed = this.model.get_feed(feed_id);
@ -2094,8 +2118,8 @@
}
var $site_specific = [
$.make('li', { className: 'NB-menu-manage-mark-read' }, 'Mark read older than...'),
$.make('li', { className: 'NB-menu-manage-mark-read' }, 'Preferences')
$.make('li', { className: 'NB-menu-manage-mark-read' }, 'Mark old stories as read'),
$.make('li', { className: 'NB-menu-manage-preferences' }, 'Preferences')
];
for (var f in $site_specific) {
$manage_menu.append($site_specific[f]);
@ -2128,18 +2152,30 @@
'complete': function() {
$(document).bind('click.menu', function() {
self.hide_manage_menu();
$(document).unbind('click.menu');
});
}
});
$('.NB-task-manage').addClass('NB-hover');
clearTimeout(this.flags.closed_manage_menu);
$manage_menu_container.hover(function() {
clearTimeout(self.flags.closed_manage_menu);
}, function() {
clearTimeout(self.flags.closed_manage_menu);
self.flags.closed_manage_menu = setTimeout(function() {
self.hide_manage_menu();
}, 1000);
});
},
hide_manage_menu: function() {
var $manage_menu_container = $('.NB-menu-manage-container');
var height = $manage_menu_container.outerHeight();
clearTimeout(this.flags.closed_manage_menu);
$(document).unbind('click.menu');
$manage_menu_container.animate({
'opacity': 0
}, {

View file

@ -0,0 +1,98 @@
NEWSBLUR.ReaderMarkRead = function(options) {
var defaults = {};
this.options = $.extend({}, defaults, options);
this.model = NEWSBLUR.AssetModel.reader();
this.google_favicon_url = 'http://www.google.com/s2/favicons?domain_url=';
this.runner();
};
NEWSBLUR.ReaderMarkRead.prototype = {
runner: function() {
this.make_modal();
this.handle_cancel();
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-markread NB-modal' }, [
$.make('h2', { className: 'NB-modal-title' }, 'Mark old stories as read'),
$.make('form', { className: 'NB-markread-form' }, [
$.make('div', { className: 'NB-modal-submit' }, [
$.make('input', { name: 'score', value: this.score, type: 'hidden' }),
$.make('input', { name: 'feed_id', value: this.feed_id, type: 'hidden' }),
$.make('input', { name: 'story_id', value: this.story_id, type: 'hidden' }),
$.make('input', { type: 'submit', disabled: 'true', className: 'NB-disabled', value: 'Check what you like above...' }),
' or ',
$.make('a', { href: '#', className: 'NB-modal-cancel' }, 'cancel')
])
]).bind('submit', function(e) {
e.preventDefault();
self.save_mark_read();
return false;
})
]);
},
open_modal: function() {
var self = this;
var $holder = $.make('div', { className: 'NB-modal-holder' }).append(this.$modal).appendTo('body').css({'visibility': 'hidden', 'display': 'block', 'width': 600});
var height = $('.NB-add', $holder).outerHeight(true);
$holder.css({'visibility': 'visible', 'display': 'none'});
this.$modal.modal({
'minWidth': 600,
'minHeight': height,
'overlayClose': true,
'onOpen': function (dialog) {
dialog.overlay.fadeIn(200, function () {
dialog.container.fadeIn(200);
dialog.data.fadeIn(200);
});
},
'onShow': function(dialog) {
$('#simplemodal-container').corner('6px').css({'width': 600, 'height': height});
// $('.NB-classifier-tag', self.$modal).corner('4px');
},
'onClose': function(dialog) {
dialog.data.hide().empty().remove();
dialog.container.hide().empty().remove();
dialog.overlay.fadeOut(200, function() {
dialog.overlay.empty().remove();
$.modal.close();
});
$('.NB-modal-holder').empty().remove();
}
});
},
handle_cancel: function() {
var $cancel = $('.NB-modal-cancel', this.$modal);
$cancel.click(function(e) {
e.preventDefault();
$.modal.close();
});
},
// ===========
// = Actions =
// ===========
handle_click: function(elem, e) {
var self = this;
$.targetIs(e, { tagSelector: '.NB-add-url-submit' }, function($t, $p) {
e.preventDefault();
self.save_add_url();
});
}
};

View file

@ -0,0 +1,95 @@
NEWSBLUR.ReaderPreferences = function(options) {
var defaults = {};
this.options = $.extend({}, defaults, options);
this.model = NEWSBLUR.AssetModel.reader();
this.google_favicon_url = 'http://www.google.com/s2/favicons?domain_url=';
this.runner();
};
NEWSBLUR.ReaderPreferences.prototype = {
runner: function() {
this.make_modal();
this.handle_cancel();
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-preferences NB-modal' }, [
$.make('h2', { className: 'NB-modal-title' }, 'Preferences'),
$.make('form', { className: 'NB-preferences-form' }, [
$.make('div', { className: 'NB-modal-submit' }, [
$.make('input', { type: 'submit', disabled: 'true', className: 'NB-disabled', value: 'Check what you like above...' }),
' or ',
$.make('a', { href: '#', className: 'NB-modal-cancel' }, 'cancel')
])
]).bind('submit', function(e) {
e.preventDefault();
self.save_preferences();
return false;
})
]);
},
open_modal: function() {
var self = this;
var $holder = $.make('div', { className: 'NB-modal-holder' }).append(this.$modal).appendTo('body').css({'visibility': 'hidden', 'display': 'block', 'width': 600});
var height = $('.NB-add', $holder).outerHeight(true);
$holder.css({'visibility': 'visible', 'display': 'none'});
this.$modal.modal({
'minWidth': 600,
'minHeight': height,
'overlayClose': true,
'onOpen': function (dialog) {
dialog.overlay.fadeIn(200, function () {
dialog.container.fadeIn(200);
dialog.data.fadeIn(200);
});
},
'onShow': function(dialog) {
$('#simplemodal-container').corner('6px').css({'width': 600, 'height': height});
// $('.NB-classifier-tag', self.$modal).corner('4px');
},
'onClose': function(dialog) {
dialog.data.hide().empty().remove();
dialog.container.hide().empty().remove();
dialog.overlay.fadeOut(200, function() {
dialog.overlay.empty().remove();
$.modal.close();
});
$('.NB-modal-holder').empty().remove();
}
});
},
handle_cancel: function() {
var $cancel = $('.NB-modal-cancel', this.$modal);
$cancel.click(function(e) {
e.preventDefault();
$.modal.close();
});
},
// ===========
// = Actions =
// ===========
handle_click: function(elem, e) {
var self = this;
$.targetIs(e, { tagSelector: '.NB-add-url-submit' }, function($t, $p) {
e.preventDefault();
self.save_add_url();
});
}
};

View file

@ -113,6 +113,8 @@ COMPRESS_JS = {
'js/newsblur/reader_classifier.js',
'js/newsblur/reader_add_feed.js',
'js/newsblur/reader_manage_feed.js',
'js/newsblur/reader_mark_read.js',
'js/newsblur/reader_preferences.js',
),
'output_filename': 'js/all-compressed-?.js'
}

View file

@ -7,7 +7,6 @@
<div id="NB-splash">
<div class="NB-splash-info">
<div class="NB-account">
{% if not user.is_authenticated %}
@ -143,18 +142,15 @@
</div>
</div>
</div>
<div class="NB-splash-info NB-splash-info-about"></div>
<div class="NB-splash-info">
<ul class="NB-splash-links">
<li class="NB-splash-link">Hand-crafted by: <a href="http://www.samuelclay.com">Samuel Clay</a></li>
<li class="NB-splash-link">Write to me: <a href="mailto:samuel@ofbrooklyn.com">samuel@ofbrooklyn.com</a></li>
<li class="NB-splash-link">Twitter, Twitter: <a href="http://twitter.com/samuelclay">@samuelclay</a></li>
</ul>
{# <div class="NB-splash-image"></div> #}
<div class="NB-splash-title"></div>
</div>
</div>