mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Adding manage feed modal.
This commit is contained in:
parent
c072b01355
commit
e966cd1ff8
7 changed files with 200 additions and 8 deletions
|
@ -628,6 +628,7 @@ background: transparent;
|
|||
#story_pane .NB-feed-stories .NB-feed-story {
|
||||
padding: 3px 0 0 0;
|
||||
margin: 0;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#story_pane .NB-feed-stories.NB-feed-view-story .NB-feed-story {
|
||||
|
@ -747,10 +748,16 @@ background: transparent;
|
|||
color: #405090;
|
||||
}
|
||||
|
||||
.NB-taskbar .task_button {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.NB-taskbar .task_button.task_add {
|
||||
.NB-taskbar .task_button.NB-task-add {
|
||||
background: transparent url('../img/icons/silk/add.png') no-repeat center 8px;
|
||||
}
|
||||
.NB-taskbar .task_button.NB-task-manage {
|
||||
background: transparent url('../img/icons/silk/wrench.png') no-repeat center 8px;
|
||||
}
|
||||
.NB-taskbar .task_button.task_profile {
|
||||
background: transparent url('../img/icons/silk/user.png') no-repeat center 8px;
|
||||
}
|
||||
|
@ -817,8 +824,8 @@ background: transparent;
|
|||
.NB-taskbar .task_button_view.NB-active {
|
||||
background-color: #A0A7B1;
|
||||
}
|
||||
.NB-taskbar .task_button_view.NB-inactive {
|
||||
opacity: .15;
|
||||
.NB-taskbar .NB-inactive {
|
||||
opacity: .3;
|
||||
}
|
||||
|
||||
.NB-taskbar .task_button.task_return {
|
||||
|
@ -847,6 +854,8 @@ background: transparent;
|
|||
width: 500px;
|
||||
background-color: white;
|
||||
padding: 8px;
|
||||
-moz-box-shadow: 3px 3px 5px #505050;
|
||||
-webkit-box-shadow: 3px 3px 5px #505050;
|
||||
}
|
||||
|
||||
/* ==================== */
|
||||
|
@ -1007,6 +1016,8 @@ form.opml_import_form input {
|
|||
|
||||
.NB-modal .NB-modal-title {
|
||||
font-weight: bold;
|
||||
color: #303030;
|
||||
text-shadow: 1px 1px 0px #e0e0e0;
|
||||
}
|
||||
|
||||
.NB-disabled {
|
||||
|
@ -1138,4 +1149,25 @@ form.opml_import_form input {
|
|||
}
|
||||
|
||||
.NB-intelligence-slider {
|
||||
}
|
||||
|
||||
/* ================ */
|
||||
/* = Manage Feeds = */
|
||||
/* ================ */
|
||||
|
||||
.NB-manage .NB-manage-feed-chooser-container {
|
||||
float: right;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.NB-manage .NB-manage-feed-chooser-container .NB-manage-feed-chooser-previous {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.NB-manage .NB-manage-feed-chooser-container .NB-manage-feed-chooser-next {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.NB-manage .NB-manage-feed-chooser-container .NB-manage-feed-chooser {
|
||||
width: 250px;
|
||||
}
|
|
@ -207,12 +207,24 @@ NEWSBLUR.AssetModel.Reader.prototype = {
|
|||
);
|
||||
},
|
||||
|
||||
get_feed: function(feed_id, callback) {
|
||||
get_feed: function(feed_id) {
|
||||
var self = this;
|
||||
|
||||
return this.feeds[feed_id];
|
||||
},
|
||||
|
||||
get_feeds: function() {
|
||||
var self = this;
|
||||
|
||||
return this.feeds;
|
||||
},
|
||||
|
||||
get_folders: function() {
|
||||
var self = this;
|
||||
|
||||
return this.folders;
|
||||
},
|
||||
|
||||
get_feed_tags: function() {
|
||||
return this.feed_tags;
|
||||
},
|
||||
|
|
|
@ -457,6 +457,7 @@
|
|||
this.hide_splash_page();
|
||||
this.$story_titles.data('page', 0);
|
||||
this.$story_titles.data('feed_id', feed_id);
|
||||
$('.NB-task-manage').removeClass('NB-inactive');
|
||||
|
||||
this.show_feed_title_in_stories($story_titles, feed_id);
|
||||
this.mark_feed_as_selected(feed_id, $feed_link);
|
||||
|
@ -1328,7 +1329,13 @@
|
|||
|
||||
$.targetIs(e, { tagSelector: '.NB-task-add' }, function($t, $p){
|
||||
e.preventDefault();
|
||||
self.open_add_modal();
|
||||
self.open_add_feed_modal();
|
||||
});
|
||||
$.targetIs(e, { tagSelector: '.NB-task-manage' }, function($t, $p){
|
||||
e.preventDefault();
|
||||
if (!$t.hasClass('NB-inactive')) {
|
||||
self.open_manage_feed_modal();
|
||||
}
|
||||
});
|
||||
$.targetIs(e, { tagSelector: '.task_button_view' }, function($t, $p){
|
||||
e.preventDefault();
|
||||
|
@ -1438,12 +1445,18 @@
|
|||
// = Bottom Task Bar =
|
||||
// ===================
|
||||
|
||||
open_add_modal: function() {
|
||||
open_add_feed_modal: function() {
|
||||
var feed_id = this.active_feed;
|
||||
|
||||
NEWSBLUR.add_feed = new NEWSBLUR.ReaderAddFeed();
|
||||
},
|
||||
|
||||
open_manage_feed_modal: function() {
|
||||
var feed_id = this.active_feed;
|
||||
|
||||
NEWSBLUR.manage_feed = new NEWSBLUR.ReaderManageFeed(feed_id);
|
||||
},
|
||||
|
||||
// ================
|
||||
// = Intelligence =
|
||||
// ================
|
||||
|
|
|
@ -157,6 +157,6 @@ NEWSBLUR.ReaderAddFeed.prototype = {
|
|||
self.model.process_opml_import($form.serialize(), callback);
|
||||
return false;
|
||||
});
|
||||
},
|
||||
}
|
||||
|
||||
};
|
133
media/js/newsblur/reader_manage_feed.js
Normal file
133
media/js/newsblur/reader_manage_feed.js
Normal file
|
@ -0,0 +1,133 @@
|
|||
NEWSBLUR.ReaderManageFeed = function(feed_id, options) {
|
||||
var defaults = {};
|
||||
|
||||
this.options = $.extend({}, defaults, options);
|
||||
this.model = NEWSBLUR.AssetModel.reader();
|
||||
this.feed_id = feed_id;
|
||||
this.feed = this.model.get_feed(feed_id);
|
||||
this.feeds = this.model.get_feeds();
|
||||
this.google_favicon_url = 'http://www.google.com/s2/favicons?domain_url=';
|
||||
this.runner();
|
||||
};
|
||||
|
||||
NEWSBLUR.ReaderManageFeed.prototype = {
|
||||
|
||||
runner: function() {
|
||||
this.make_modal();
|
||||
this.handle_cancel();
|
||||
this.open_modal();
|
||||
},
|
||||
|
||||
make_modal: function() {
|
||||
var self = this;
|
||||
|
||||
this.$manage = $.make('div', { className: 'NB-manage NB-modal' }, [
|
||||
$.make('div', { className: 'NB-manage-feed-chooser-container'}, [
|
||||
$.make('a', { href: '#', className: 'NB-manage-feed-chooser-next' }, '»'),
|
||||
$.make('a', { href: '#', className: 'NB-manage-feed-chooser-previous' }, '«'),
|
||||
this.make_feed_chooser()
|
||||
]),
|
||||
$.make('h2', { className: 'NB-modal-title' }, this.feed['feed_title']),
|
||||
$.make('form', { method: 'post', className: 'NB-manage-form' }, [
|
||||
$.make('div', { className: 'NB-manage-field' }, [
|
||||
$.make('h5', [
|
||||
'What you ',
|
||||
$.make('span', { className: 'NB-classifier-like' }, 'like')
|
||||
]),
|
||||
$.make('h5', [
|
||||
'What you ',
|
||||
$.make('span', { className: 'NB-classifier-like' }, 'dislike')
|
||||
]),
|
||||
$.make('h5', 'Management')
|
||||
]),
|
||||
$.make('div', { className: 'NB-modal-submit' }, [
|
||||
$.make('input', { name: 'feed_id', value: this.feed_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();
|
||||
return false;
|
||||
})
|
||||
]);
|
||||
|
||||
},
|
||||
|
||||
make_feed_chooser: function() {
|
||||
var $chooser = $.make('select', { name: 'feed', className: 'NB-manage-feed-chooser' });
|
||||
|
||||
for (var f in this.feeds) {
|
||||
var feed = this.feeds[f];
|
||||
var $option = $.make('option', { value: feed.id }, feed.feed_title);
|
||||
$option.appendTo($chooser);
|
||||
|
||||
if (feed.id == this.feed_id) {
|
||||
$option.attr('selected', true);
|
||||
}
|
||||
}
|
||||
|
||||
$('option', $chooser).tsort();
|
||||
return $chooser;
|
||||
},
|
||||
|
||||
open_modal: function() {
|
||||
var self = this;
|
||||
|
||||
var $holder = $.make('div', { className: 'NB-modal-holder' }).append(this.$manage).appendTo('body').css({'visibility': 'hidden', 'display': 'block', 'width': 600});
|
||||
var height = $('.NB-manage', $holder).outerHeight(true);
|
||||
$holder.css({'visibility': 'visible', 'display': 'none'});
|
||||
|
||||
this.$manage.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').corners('6px').css({'width': 600, 'height': height});
|
||||
// $('.NB-classifier-tag', self.$manage).corners('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.$manage);
|
||||
|
||||
$cancel.click(function(e) {
|
||||
e.preventDefault();
|
||||
$.modal.close();
|
||||
});
|
||||
},
|
||||
|
||||
serialize_classifier: function() {
|
||||
var data = $('.NB-manage form input').serialize();
|
||||
|
||||
return data;
|
||||
},
|
||||
|
||||
save: function() {
|
||||
var $save = $('.NB-modal input[type=submit]');
|
||||
var data = this.serialize_classifier();
|
||||
|
||||
$save.text('Saving...').addClass('NB-disabled').attr('disabled', true);
|
||||
this.model.save_classifier_publisher(data, function() {
|
||||
$.modal.close();
|
||||
});
|
||||
}
|
||||
|
||||
};
|
|
@ -180,6 +180,7 @@ COMPRESS_JS = {
|
|||
'js/newsblur/reader.js',
|
||||
'js/newsblur/reader_classifier.js',
|
||||
'js/newsblur/reader_add_feed.js',
|
||||
'js/newsblur/reader_manage_feed.js',
|
||||
),
|
||||
'output_filename': 'release/all-compressed-?.js'
|
||||
}
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
|
||||
<div class="NB-taskbar left-south">
|
||||
<ul class="taskbar_nav taskbar_nav_feeds">
|
||||
<li class="task_button task_button_menu task_add NB-task-add">
|
||||
<li class="task_button task_button_menu NB-task-add">
|
||||
<li class="task_button task_button_menu NB-task-manage NB-inactive">
|
||||
</li>
|
||||
</ul>
|
||||
<div class="NB-taskbar-intelligence">
|
||||
|
|
Loading…
Add table
Reference in a new issue