Only the unread counter is updated right know.
The AutoUpdate Feature is designed on the premise of don't wasting resources. A
distinction is made between updates when Miniflux is visible or hidden.
To determine the visibility status, the Page Visibility API is used. The API is
available starting with Chrome 33, Firefox 18 and IE10. [https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API]
As IE9 returns an undefined, it doesn't break the compatibility at least.
If Miniflux is visible, the unread counter on the web page is updated as soon as
a mismatch between the counter and the number of unread articles in the database
is found.
If Miniflux is hidden, the timestamp of the most recent article from each feed
is compared with the value from the last run. We have an update If the timestamp
of the latest article is greater than the stored one and the latest article is
unread. The web page title is updated with a ? symbol to notify the user and the
update check pauses till Miniflux gets visible again. If Miniflux gets visible
again, the number of unread articles is queried from the database, the unread
counter on the web page is updated and finally the ? symbol is removed from the
web page title.
This way I can use my fever API client to read new articles (or at least the
latest article) while Miniflux is hidden and as I've seen the new articles
already a new articles notification is prevented.
It's intentionally that the page does not reload automatically as long as
articles are visible. If I'm in hurry, I only scroll through the articles to
spot something interesting. Most of the time I don't reach the last article.
If the page is reloaded while I'm away, I would have to scan from the top again.
If we're on a nothing_to_read page and have unread articles in the database, a
redirect to the unread page will be done.
The default update check interval is 10 minutes and can be changed on the
settings page. A zero value disables the update check entirely.
fixes#213
Add feeds only once to the feed_ids array (feed model), drop now unused select-db action.
Use $_SESSION['loggedin'] in favour of $_SESSION['user'] to reflect which information we do
expect from this session variable. Add nothing else than a flag, which indicates a logged in
user, to $_SESSION['loggedin'].
It's not necessary to know the current user name, since we do only have one user
per database. Same for the language setting. The database defines the front-end language.
Resolves bug where the password gets stored in the $_SESSION['user'] after a remember_me
login.
Check if a requested database can be selected. Error out if not.
This prevents automatic fallbacks to the default database.
Remove the authorized information from the session if a new database
gets selected.
Factor out logout function to reuse existing code.
Show feeds with errors always at the top and highlight them
Changes the feed order to:
1. failed
2. enabled
3. disabled
Order alphabetical within each group.
Show a warning message with a hin to the console if feeds have issues
Fixes#300, #303
Don't hide the active element, it annoying to use the navigation if the
menu items changing there position with every click. Indicate the active
menu item instead, similar to the header navigation.
May I've worked to long with windows systems, but help and about have to
be the last menu items :-). I've reorderd the menu items to what I think
user need more often.
A sub-navigation should not change its parent heading. Changed that as
well.
Inserts a (unread/total)" items count in front of each subcription
on the feeds page.
models/feed.php adds two functions: get_feed_unread_counts(), get_all_w_counts().
get_feed_unread_counts - returns either an array of (unread/total) counts indexed
by feed id or a singl (unread/total) for a specific id.
get_all_w_counts() returns the same as get_all() but appends items_unread and
items_total columns.
controller/feed.php modifies Router\post_action('refresh-feed',function() to
retrun the (unread/total) count in the retruned ajax json array.
Router\get_action('feeds',function() was modified to call get_all_w_counts().
templates/feeds.php was modified to insert the (unread/total) count into the
span id="loading-feed-" such that is can be updated after a refresh.
assets/js/feed.js was modified to to have the Update and hideRefreshIcon
update the returned (unread/total) amounts in the "loading-feed" span.