Commit Graph

108 Commits

Author SHA1 Message Date
Frederic Guillot
33a6e50c96 Add debug_mode config option and update vendor 2015-01-28 21:57:34 -05:00
Mathias Kresin
cd13efeabf implement frontend autoupdate
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
2015-01-28 05:26:55 +01:00
Mathias Kresin
8241177556 switch config table to key/value store 2015-01-28 05:26:36 +01:00
Mathias Kresin
525048bbb2 code cleanup
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.
2015-01-28 05:24:17 +01:00
Frederic Guillot
d2cfc7fd15 Update vendor 2015-01-27 20:13:16 -05:00
Frederic Guillot
b0c1f57213 Update dependencies, enable temporary PicoFeed debug logs 2015-01-19 20:00:16 -05:00
Mathias Kresin
7c31b9fff0 update picoFeed to f3ed9fe and use icon from atom feeds as favicon 2015-01-18 15:23:11 +01:00
Mathias Kresin
76825cb673 use radio buttons to select the login database
allows one click logins to not default databases using passwordmanagers
like keefox.
2015-01-18 13:25:38 +01:00
Frederic Guillot
cd1a0115c2 Minor cleanups 2015-01-17 18:53:40 -05:00
Mathias Kresin
cfd03efc01 Fix database hijacking
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.
2015-01-17 21:14:44 +01:00
Mathias Kresin
db94d94de3 Improve user notice about failed feeds
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
2015-01-15 02:04:35 +01:00
Mathias Kresin
cfaa25f667 minor improvements
- enable debug logging for image proxy
- show enclosure image only if no article content exists
- do not store empty favicons
- fix typo in get_item_favicons (worked anyway since get_favicons
  returned all known favicons instead)
2015-01-13 20:27:33 +01:00
Mathias Kresin
e349921322 remove orphaned functions
the functions are unused since f4efaad.
2015-01-03 23:17:13 +01:00
Frédéric Guillot
800026484c Revert commit (Do not disable feed if download failed) 2014-12-29 18:49:49 -05:00
Frédéric Guillot
75601d173c Disable invalid feeds on refresh (not found, domain inexistent...) 2014-12-26 10:50:58 -05:00
Frédéric Guillot
feb25c7552 Add favicons on the feeds page 2014-12-24 18:12:41 -05:00
Frédéric Guillot
c1d74b8332 Add favicon support 2014-12-24 17:54:27 -05:00
Frédéric Guillot
7d4d4e0193 Add image proxy to avoid https mixed content warnings 2014-12-24 15:58:24 -05:00
Frédéric Guillot
b2e3116350 Add Instapaper support 2014-12-24 13:50:20 -05:00
Frédéric Guillot
635e3bb813 Add Pinboard bookmark sync 2014-12-24 10:47:24 -05:00
Frédéric Guillot
c6ed11c116 Move to Composer and update to the last version of PicoFeed 2014-12-23 21:28:26 -05:00
Frédéric Guillot
4313909052 Add option to flush all unread items after X days, default 45 days (avoid very large database) 2014-12-15 20:38:35 -05:00
Mathias Kresin
b62fb332b5 Translations: Remove unused, dedup and add missing entries 2014-11-20 18:49:23 +01:00
Frédéric Guillot
e9685cf6d5 Check if the session username and database username are the same 2014-11-18 19:00:53 -05:00
Frédéric Guillot
906f99cf1c Fix php notice 2014-11-08 17:14:18 -05:00
Frédéric Guillot
e5947db7f1 Add CSRF protections 2014-11-07 21:44:20 -05:00
Frédéric Guillot
f4efaadad1 Remove Google auth (openid is deprecated) and Persona auth (useless) 2014-11-07 20:53:50 -05:00
Frédéric Guillot
5801258ace Add Fever API support 2014-10-29 21:28:23 -04:00
Frédéric Guillot
53b94d8f7b Add option to force RTL mode per feed and improve feed modification 2014-10-19 19:14:33 -04:00
Frédéric Guillot
e2280f1b7b Update PicoFeed and PicoDb 2014-10-19 14:42:31 -04:00
Frédéric Guillot
77f3c7c57a Update PicoDb 2014-09-16 11:50:39 +02:00
silvus
655e8fda68 Add option to select display mode on lists (summaries or full contents) 2014-05-29 16:57:23 +02:00
Frédéric Guillot
3e1229a4d1 Add token for the bookmarklet 2014-05-28 16:44:25 -04:00
Frédéric Guillot
da8351ec5c Fix #208 and #209 2014-05-28 16:10:41 -04:00
Frédéric Guillot
7e553f72fd Add RememberMe authentication 2014-05-26 20:47:40 -04:00
Frédéric Guillot
3840a87128 Update to the last version of PicoFeed 2014-05-20 14:20:27 -04:00
Frédéric Guillot
64875e19cc Update enclosure during a feed update (merge pull-request #199) 2014-05-17 09:58:56 -04:00
Frédéric Guillot
04d0e76d8a Improve behaviour when multiple databases are disabled 2014-04-15 18:31:59 -04:00
Frédéric Guillot
675001ed6f Do not remove .htaccess during auto-update sync 2014-04-05 22:10:10 -04:00
Frédéric Guillot
eab942537f Add support for multiple users/databases 2014-04-05 20:24:13 -04:00
Frédéric Guillot
c1221de62c Add Miniflux auto-update feature 2014-03-30 15:59:26 -04:00
Frédéric Guillot
400b4272b0 Items can be bookmarked only if they have the status read or unread 2014-03-29 21:03:05 -04:00
Frédéric Guillot
b74b8dd784 Remove PicoTools 2014-03-16 21:56:43 -04:00
Frédéric Guillot
e6e6db71f8 Add RTL language support 2014-03-16 21:35:57 -04:00
Frédéric Guillot
39aa6ad8e2 Improve token generation by using openssl by default, then /dev/urandom and fallback to uniqid() 2014-03-14 21:26:14 -04:00
Frédéric Guillot
3bc7f019c5 Add timezone configuration option 2014-02-25 19:03:46 -05:00
Frédéric Guillot
754dcdd274 Improve pull-request for unread count for each feed 2014-02-22 19:45:02 -05:00
Philip Walden
8422e62abc Fulfills enhnacement request fguillot/miniflux #155
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.
2014-02-22 11:00:49 -08:00
Frédéric Guillot
74d8d361ee Improve enclosure support 2014-02-17 22:04:49 -05:00
Philip Walden
2874d16a5d Provides enahncement fguillot/miniflux #162 "Provide original link to any audio/video enclosures".
Essentially, if an enclosure tag exists in the item, then the item menu will contain
a link 'multimedia [speaker symbol]' to the media url. Otherwise, if there is no
enclosure tag, there is no menu item shown.

This feature required adding an enclosure column to the items table (models/schema.php)
and bumping the DB version to 21 (models/config.php). I also added enclosure tag logic
to the Rss20 parser, the model/item.php and template/item.php files.
2014-02-17 10:41:22 -08:00
Frédéric Guillot
33ab9d7fb6 Add new methods to the api item.get_all, item.get_all_since and item.get_all_status 2014-02-15 14:09:50 -05:00
Frédéric Guillot
7346686e9a Fix bug: Handle the case when there is a huge number of items to remove (sqlite limitation) 2014-02-11 21:26:55 -05:00
Frédéric Guillot
49583f381f Improve files organization 2014-02-08 14:13:14 -05:00
Frédéric Guillot
cc2fbee172 Ignore items without url 2014-02-01 15:23:41 -05:00
Frédéric Guillot
9a021ba43e Add an option to choose where to be redirected when there is nothing to read 2013-12-23 13:33:16 -05:00
Frédéric Guillot
eb9f307da8 Fix error after refactoring 2013-12-22 22:30:49 -05:00
Frédéric Guillot
387600ca10 Add autoflush value 'immediately' and improve gitignore 2013-12-22 21:25:54 -05:00
Frédéric Guillot
4fb68b9b80 Split models and controllers in different files 2013-12-22 20:55:53 -05:00