Merge branch 'dashboard3' of https://github.com/samuelclay/NewsBlur into dashboard3

This commit is contained in:
Jonathan Math 2021-02-03 19:20:28 -05:00
commit 9d94c572cd
11 changed files with 399 additions and 683 deletions

View file

@ -993,7 +993,8 @@ text-shadow: none;
/* = Feed Pane = */
/* ============= */
.NB-dark #NB-feeds-list-loader {
.NB-dark .NB-feeds-list-loader,
.NB-dark .NB-feeds-list-error {
color: rgba(255, 255, 255, .4);
text-shadow: 0 1px 0 rgba(0, 0, 0, .3);
background: transparent url("/media/embed/reader/sun_loader_dark.svg") no-repeat 0 0;

View file

@ -444,7 +444,8 @@ hr {
/* = Feed List = */
/* ============= */
#NB-feeds-list-loader {
.NB-feeds-list-loader,
.NB-feeds-list-error {
background: transparent url("/media/embed/reader/sun_loader_light.svg") no-repeat 0 0;
background-size: 52px;
color: rgba(0, 0, 0, .2);
@ -460,6 +461,14 @@ hr {
z-index: 10;
cursor: default;
}
.NB-feeds-list-error {
display: none;
background: transparent url("/media/embed/reader/warning.gif") no-repeat 16px 8px;
background-size: 32px;
}
.NB-button.NB-feeds-list-retry {
margin: 14px 0;
}
.NB-feeds-list-empty {
background: transparent url("/media/embed/reader/big_world.png") no-repeat center 0;
background-size: 64px;
@ -5299,17 +5308,16 @@ form.opml_import_form input {
}
@media screen and (max-width: 1100px) {
.NB-splash-modules {
flex-flow: row wrap;
display: block;
}
.NB-splash-modules .NB-modules-center,
.NB-splash-modules .NB-account-wide {
flex: 1 1 auto;
max-width: none;
}
.NB-splash-modules .NB-modules-center {
margin-right: 0;
}
.NB-splash-modules .NB-account-wide {
max-width: none;
margin: 0 24px;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

View file

@ -364,4 +364,4 @@ NEWSBLUR.Collections.Feeds = Backbone.Collection.extend({
});
}
});
});

View file

@ -39,7 +39,8 @@
$text_view: $('.NB-text-view'),
$intelligence_slider: $('.NB-intelligence-slider'),
$mouse_indicator: $('#mouse-indicator'),
$feed_link_loader: $('#NB-feeds-list-loader'),
$feed_link_loader: $('.NB-feeds-list-loader'),
$feed_link_error: $('.NB-feeds-list-error'),
$feeds_progress: $('#NB-progress'),
$dashboard: $('.NB-feeds-header-dashboard'),
$river_sites_header: $('.NB-feeds-header-river-sites'),
@ -138,9 +139,9 @@
NEWSBLUR.assets.feeds.bind('reset', _.bind(function () {
this.load_dashboard_rivers();
this.load_intelligence_slider();
}, this));
this.load_intelligence_slider();
this.handle_mouse_indicator_hover();
this.handle_login_and_signup_forms();
this.handle_wakeup();
@ -5731,6 +5732,7 @@
this.flags['count_unreads_after_import_working'] = false;
clearTimeout(this.locks['animate_progress_bar']);
this.$s.$feed_link_loader.fadeOut(250);
this.$s.$feed_link_error.css({'display': 'none'});
this.setup_feed_refresh();
if (!this.flags['has_unfetched_feeds']) {
this.hide_progress_bar();
@ -5997,7 +5999,11 @@
var stopPropagation = false;
// NEWSBLUR.log(['click', e, e.button]);
$.targetIs(e, { tagSelector: '.NB-feeds-list-retry' }, function($t, $p){
NEWSBLUR.app.feed_list.retry();
});
// = Taskbar ======================================================
$.targetIs(e, { tagSelector: '.NB-task-add' }, function($t, $p){

View file

@ -25,6 +25,7 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
$('.NB-callout-ftux .NB-callout-text').text('Loading feeds...');
this.$s.$feed_link_loader.css({'display': 'block'});
this.$s.$feed_link_error.css({'display': 'none'});
NEWSBLUR.assets.feeds.bind('reset', _.bind(function(options) {
this.make_feeds(options);
@ -48,7 +49,7 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
NEWSBLUR.assets.starred_feeds.bind('change:selected', this.scroll_to_selected, this);
NEWSBLUR.assets.searches_feeds.bind('change:selected', this.scroll_to_selected, this);
if (!NEWSBLUR.assets.folders.size()) {
NEWSBLUR.assets.load_feeds();
NEWSBLUR.assets.load_feeds(null, _.bind(this.handle_error, this));
}
NEWSBLUR.assets.feeds.bind('add', this.update_dashboard_count, this);
NEWSBLUR.assets.feeds.bind('remove', this.update_dashboard_count, this);
@ -86,6 +87,8 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
this.$el.html(this.folder_view.el);
this.$el.animate({'opacity': 1}, {'duration': 700});
// this.count_collapsed_unread_stories();
this.$s.$feed_link_error.css({'display': 'none'});
this.$s.$feed_link_loader.fadeOut(250, _.bind(function() {
this.$s.$feed_link_loader.css({'display': 'none'});
}, this));
@ -143,6 +146,22 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({
return this;
},
handle_error: function (model, resp, options) {
console.log(['Error loading feeds', model, resp, options]);
this.$s.$feed_link_error.css({ 'display': 'block' });
this.$s.$feed_link_loader.css({'display': 'none'});
},
retry: function () {
if (!NEWSBLUR.assets.folders.size()) {
this.$s.$feed_link_loader.css({'display': 'block'});
this.$s.$feed_link_error.css({'display': 'none'});
NEWSBLUR.assets.load_feeds(null, _.bind(this.handle_error, this));
}
},
toggle_filter_feeds: function() {
if (NEWSBLUR.assets.preference('show_global_shared_stories')) {

File diff suppressed because it is too large Load diff

1
media/js/vendor/socket.io.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

118
node/package-lock.json generated
View file

@ -110,9 +110,9 @@
"integrity": "sha512-zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg=="
},
"@types/node": {
"version": "14.14.20",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz",
"integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A=="
"version": "14.14.23",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.23.tgz",
"integrity": "sha512-pkKXgf96TELUhrc8C01J0e+If5qb0WqF+WF09FbCINywIk+iUEQgMlA8IxgdZ79qQ88Bljw+9NcqwvWGXknWDw=="
},
"abab": {
"version": "2.0.3",
@ -421,11 +421,6 @@
"delayed-stream": "~1.0.0"
}
},
"component-bind": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
"integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
},
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
@ -541,11 +536,11 @@
}
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"decamelize": {
@ -686,9 +681,9 @@
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"engine.io": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.0.6.tgz",
"integrity": "sha512-rf7HAVZpcRrcKEKddgIzYUnwg0g5HE1RvJaTLwkcfJmce4g+po8aMuE6vxzp6JwlK8FEq/vi0KWN6tA585DjaA==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz",
"integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==",
"requires": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
@ -697,27 +692,12 @@
"debug": "~4.3.1",
"engine.io-parser": "~4.0.0",
"ws": "~7.4.2"
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"engine.io-client": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.6.tgz",
"integrity": "sha512-5lPh8rrhxIruo5ZlgFt31KM626o5OCXrCHBweieWWuVicDtnYdz/iR93k6N9k0Xs61WrYxZKIWXzeSaJF6fpNA==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.1.1.tgz",
"integrity": "sha512-iYasV/EttP/2pLrdowe9G3zwlNIFhwny8VSIh+vPlMnYZqSzLsTzSLa9hFy015OrH1s4fzoYxeHjVkO8hSFKwg==",
"requires": {
"base64-arraybuffer": "0.1.4",
"component-emitter": "~1.3.0",
@ -729,21 +709,6 @@
"ws": "~7.4.2",
"xmlhttprequest-ssl": "~1.5.4",
"yeast": "0.1.2"
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"engine.io-parser": {
@ -1330,9 +1295,9 @@
}
},
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"next-line": {
"version": "1.1.0",
@ -1368,9 +1333,9 @@
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
},
"object-assign": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
"integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A="
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"on-finished": {
"version": "2.3.0",
@ -1760,49 +1725,48 @@
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"socket.io": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.0.4.tgz",
"integrity": "sha512-Vj1jUoO75WGc9txWd311ZJJqS9Dr8QtNJJ7gk2r7dcM/yGe9sit7qOijQl3GAwhpBOz/W8CwkD7R6yob07nLbA==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.1.tgz",
"integrity": "sha512-7cBWdsDC7bbyEF6WbBqffjizc/H4YF1wLdZoOzuYfo2uMNSFjJKuQ36t0H40o9B20DO6p+mSytEd92oP4S15bA==",
"requires": {
"@types/cookie": "^0.4.0",
"@types/cors": "^2.8.8",
"@types/node": "^14.14.7",
"@types/node": "^14.14.10",
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.1.0",
"engine.io": "~4.0.0",
"socket.io-adapter": "~2.0.3",
"socket.io-parser": "~4.0.1"
"debug": "~4.3.1",
"engine.io": "~4.1.0",
"socket.io-adapter": "~2.1.0",
"socket.io-parser": "~4.0.3"
}
},
"socket.io-adapter": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3.tgz",
"integrity": "sha512-2wo4EXgxOGSFueqvHAdnmi5JLZzWqMArjuP4nqC26AtLh5PoCPsaRbRdah2xhcwTAMooZfjYiNVNkkmmSMaxOQ=="
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz",
"integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg=="
},
"socket.io-client": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.4.tgz",
"integrity": "sha512-qMvBuS+W9JIN2mkfAWDCxuIt+jpIKDf8C0604zEqx1JrPaPSS6cN0F3B2GYWC83TqBeVJXW66GFxWV3KD88n0Q==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.1.1.tgz",
"integrity": "sha512-BLgIuCjI7Sf3mDHunKddX9zKR/pbkP7IACM3sJS3jha+zJ6/pGKRV6Fz5XSBHCfUs9YzT8kYIqNwOOuFNLtnYA==",
"requires": {
"@types/component-emitter": "^1.2.10",
"backo2": "1.0.2",
"component-bind": "1.0.0",
"backo2": "~1.0.2",
"component-emitter": "~1.3.0",
"debug": "~4.1.0",
"engine.io-client": "~4.0.0",
"debug": "~4.3.1",
"engine.io-client": "~4.1.0",
"parseuri": "0.0.6",
"socket.io-parser": "~4.0.1"
"socket.io-parser": "~4.0.4"
}
},
"socket.io-parser": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.2.tgz",
"integrity": "sha512-Bs3IYHDivwf+bAAuW/8xwJgIiBNtlvnjYRc4PbXgniLmcP1BrakBoq/QhO24rgtgW7VZ7uAaswRGxutUnlAK7g==",
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
"integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==",
"requires": {
"@types/component-emitter": "^1.2.10",
"component-emitter": "~1.3.0",
"debug": "~4.1.0"
"debug": "~4.3.1"
}
},
"source-map": {

View file

@ -17,8 +17,8 @@
"psl": "^1.8.0",
"qs": "^6.9.4",
"redis": "^2.8.0",
"socket.io": "^3.0.4",
"socket.io-client": "^3.0.4",
"socket.io": "^3.1.1",
"socket.io-client": "^3.1.1",
"supervisor": "^0.12.0",
"utf-8-validate": "^5.0.4",
"ws": "^7.4.2"

View file

@ -37,7 +37,11 @@
<div class="left-center">
<div class="left-center-content NB-sidebar NB-feedlists">
<div id="NB-feeds-list-loader">Everything is on its way...</div>
<div class="NB-feeds-list-loader">Everything is on its way...</div>
<div class="NB-feeds-list-error">
Something went wrong...
<div class="NB-button NB-feeds-list-retry">Retry</div>
</div>
<div class="NB-feeds-header-wrapper">
<div class="NB-feeds-header-container NB-feeds-header-tryfeed-container">
<div class="NB-feeds-header NB-feeds-header-tryfeed">