diff --git a/media/css/reader.css b/media/css/reader.css index 483ea4654..a77348269 100644 --- a/media/css/reader.css +++ b/media/css/reader.css @@ -8579,22 +8579,27 @@ form.opml_import_form input { .NB-modal-exception .NB-exception-block-only { display: block; } -.NB-modal-exception.NB-modal-feed-settings .NB-modal-title { +.NB-modal-exception.NB-modal-feed-settings .NB-modal-title, +.NB-modal-exception.NB-modal-folder-settings .NB-modal-title { display: block; } .NB-modal-exception .NB-modal-title.NB-exception-block-only { display: block; } +.NB-modal-exception.NB-modal-folder-settings .NB-exception-block-only, .NB-modal-exception.NB-modal-feed-settings .NB-exception-block-only { display: none; } .NB-modal-exception.NB-modal-feed-settings .NB-exception-only, -.NB-modal-exception.NB-modal-feed-settings .NB-exception-block-only { +.NB-modal-exception.NB-modal-folder-settings .NB-exception-only, +.NB-modal-exception.NB-modal-feed-settings .NB-exception-block-only, +.NB-modal-exception.NB-modal-folder-settings .NB-exception-block-only { display: none; } .NB-modal-exception .NB-settings-only { display: none; } +.NB-modal-exception.NB-modal-folder-settings .NB-settings-only, .NB-modal-exception.NB-modal-feed-settings .NB-settings-only { display: block; } @@ -8653,20 +8658,23 @@ form.opml_import_form input { .NB-modal-exception .NB-fieldset-fields .NB-error { padding: 6px 0 6px 4px; } -.NB-modal-feed-settings .NB-exception-option-status { +.NB-modal-feed-settings .NB-exception-option-status, +.NB-modal-folder-settings .NB-exception-option-status { color: #3945C0; font-weight: bold; text-transform: uppercase; opacity: 0; } -.NB-modal-feed-settings .NB-preference-label { +.NB-modal-feed-settings .NB-preference-label, +.NB-modal-folder-settings .NB-preference-label { float: left; margin: 10px 0; width: 102px; clear: both; } -.NB-modal-feed-settings .NB-preference-options { +.NB-modal-feed-settings .NB-preference-options, +.NB-modal-folder-settings .NB-preference-options { margin: 6px 0; float: left; overflow: hidden; diff --git a/media/js/newsblur/reader/reader_feed_exception.js b/media/js/newsblur/reader/reader_feed_exception.js index 762f7a50c..ebaae8bd3 100644 --- a/media/js/newsblur/reader/reader_feed_exception.js +++ b/media/js/newsblur/reader/reader_feed_exception.js @@ -27,15 +27,16 @@ _.extend(NEWSBLUR.ReaderFeedException.prototype, { NEWSBLUR.Modal.prototype.initialize_feed.call(this, this.feed_id); } this.make_modal(); - this.show_recommended_options_meta(); + if (this.feed) { + this.show_recommended_options_meta(); + _.delay(_.bind(function() { + this.get_feed_settings(); + }, this), 50); + } this.handle_cancel(); this.open_modal(); this.initialize_feed(this.feed_id); - _.delay(_.bind(function() { - this.get_feed_settings(); - }, this), 50); - this.$modal.bind('click', $.rescope(this.handle_click, this)); this.$modal.bind('change', $.rescope(this.handle_change, this)); }, @@ -43,9 +44,17 @@ _.extend(NEWSBLUR.ReaderFeedException.prototype, { initialize_feed: function(feed_id) { var view_setting = this.model.view_setting(feed_id, 'view'); var story_layout = this.model.view_setting(feed_id, 'layout'); - NEWSBLUR.Modal.prototype.initialize_feed.call(this, feed_id); - $('input[name=feed_link]', this.$modal).val(this.feed.get('feed_link')); - $('input[name=feed_address]', this.$modal).val(this.feed.get('feed_address')); + + if (this.feed) { + NEWSBLUR.Modal.prototype.initialize_feed.call(this, feed_id); + $('input[name=feed_link]', this.$modal).val(this.feed.get('feed_link')); + $('input[name=feed_address]', this.$modal).val(this.feed.get('feed_address')); + $(".NB-exception-option-page", this.$modal).toggle(this.feed.is_feed() || this.feed.is_social()); + $(".NB-view-setting-original", this.$modal).toggle(this.feed.is_feed() || this.feed.is_social()); + } else if (this.folder) { + NEWSBLUR.Modal.prototype.initialize_folder.call(this, feed_id); + } + $('input[name=view_settings]', this.$modal).each(function() { if ($(this).val() == view_setting) { $(this).attr('checked', true); @@ -59,14 +68,20 @@ _.extend(NEWSBLUR.ReaderFeedException.prototype, { } }); - $(".NB-exception-option-page", this.$modal).toggle(this.feed.is_feed() || this.feed.is_social()); - $(".NB-view-setting-original", this.$modal).toggle(this.feed.is_feed() || this.feed.is_social()); - if (this.feed.get('exception_type')) { + if (this.folder) { + this.$modal.addClass('NB-modal-folder-settings'); this.$modal.removeClass('NB-modal-feed-settings'); + $(".NB-modal-title", this.$modal).text("Folder Settings"); + } else if (this.feed.get('exception_type')) { + this.$modal.removeClass('NB-modal-folder-settings'); + this.$modal.removeClass('NB-modal-feed-settings'); + $(".NB-modal-title", this.$modal).text("Fix a misbehaving site"); } else { + this.$modal.removeClass('NB-modal-folder-settings'); this.$modal.addClass('NB-modal-feed-settings'); + $(".NB-modal-title", this.$modal).text("Site Settings"); } - + this.resize(); }, @@ -202,7 +217,7 @@ _.extend(NEWSBLUR.ReaderFeedException.prototype, { ]) ]) ]), - $.make('div', { className: 'NB-fieldset NB-exception-option NB-exception-option-feed NB-modal-submit' }, [ + (this.feed && $.make('div', { className: 'NB-fieldset NB-exception-option NB-exception-option-feed NB-modal-submit' }, [ $.make('h5', [ $.make('div', { className: 'NB-exception-option-meta' }), $.make('span', { className: 'NB-exception-option-option NB-exception-only' }, 'Option 2:'), @@ -223,8 +238,8 @@ _.extend(NEWSBLUR.ReaderFeedException.prototype, { $.make('div', { className: 'NB-exception-feed-history' }) ])) ]) - ]), - ($.make('div', { className: 'NB-fieldset NB-exception-option NB-exception-option-page NB-modal-submit' }, [ + ])), + (this.feed && $.make('div', { className: 'NB-fieldset NB-exception-option NB-exception-option-page NB-modal-submit' }, [ $.make('h5', [ $.make('div', { className: 'NB-exception-option-meta' }), $.make('span', { className: 'NB-exception-option-option NB-exception-only' }, 'Option 3:'), @@ -488,11 +503,19 @@ _.extend(NEWSBLUR.ReaderFeedException.prototype, { }); $.targetIs(e, { tagSelector: 'input[name=view_settings]' }, function($t, $p){ - self.model.view_setting(self.feed_id, {'view': $t.val()}); + if (self.folder) { + self.folder.view_setting({'view': $t.val()}); + } else { + NEWSBLUR.assets.view_setting(self.feed_id, {'view': $t.val()}); + } self.animate_saved(); }); $.targetIs(e, { tagSelector: 'input[name=story_layout]' }, function($t, $p){ - self.model.view_setting(self.feed_id, {'layout': $t.val()}); + if (self.folder) { + self.folder.view_setting({'layout': $t.val()}); + } else { + NEWSBLUR.assets.view_setting(self.feed_id, {'layout': $t.val()}); + } self.animate_saved(); }); }