Commit Graph

24 Commits

Author SHA1 Message Date
Mathias Kresin
4809f736dc implement mark-feed-as-read in javascript 2015-03-01 19:56:28 +01:00
Mathias Kresin
a2686ae21d add option to disable mark as read for original link
fixes #196
2015-01-30 00:14:01 +01:00
Frederic Guillot
fa9dc3ab8f Change label for frontend update check and minor changes 2015-01-28 20:17:02 -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
e0fd734c64 use javascript advanced optimizations, improve make-js script
Major benefit, beside a smaller file size, is the possibility to remove debug informations from the minified javascript.

make-js script:
- take care of any warnings and errors
- raise warning level to verbose

js/*
- switch to Array-Access Property Notation for external data (prevents renaming by the closure compiler)
2015-01-28 05:26:55 +01:00
Mathias Kresin
71275eac2c display & update the number of unread items on every page with an "unread items" menu 2015-01-04 18:48:01 +01:00
Mathias Kresin
1e1e35e38c IE: 'open original' doesn't open article
The 'open original' link marks the item as read but doesn't open the
article.

After double clicking one 'open original' link, all other
'open original' links open the article as expected. Sounds like the IE
blocks the 'popup' silenty here.

The following in #196 reported issues are fixed by the change as well:
- a middle click on an 'open original' link triggers the popup blocker
- original link opened via middle click is always a foreground tab
2015-01-03 23:02:59 +01:00
Mathias Kresin
3fe424999f fix RTL toggling
H2 within an item preview was toggled to rtl and back to ltr
immediately.
2014-12-27 10:21:22 +01:00
Mathias Kresin
0aa5252c85 remove multiple definition of data-item-page 2014-12-26 23:01:05 +01:00
Mathias Kresin
a4d8abb631 Move update icon and update icon blinking to css
Use CSS3 Animation for the "loading icon" blinking and move the definition of
the loading icon to CSS as well.

CSS3 Animations are supported by IE10, Firefox and using the -webkit prefix by
Chrome and Safari.

I've dropped the usage of element.classList in favour of supporting refreshing/
article downloading in IE9 (again). The classList stuff isn't necessarily
needed, as the elements in question only get one or no class assigned.

I've dropped no longer supported css options like:

the appearance option isn't supported by any browser, the -webkit-appearance
doesn't change anything visible.

-webkit-font-smoothing support was dropped in chrome 22 and font-smoothing
isn't specified anywhere.
2014-12-26 23:01:05 +01:00
Frédéric Guillot
5690f91fb7 Add keyboard shortcut to toggle RTL mode 2014-12-23 22:13:23 -05:00
Mathias Kresin
0455d14d73 Update Bookmark Icon title within the article view when toggling bookmark status 2014-12-10 17:08:07 +01:00
Mathias Kresin
c3b3d51365 Bookmark page: hide article if bookmark is removed
As i can't imagine any other site than the bookmarks page where an article needs
to be hidden based on the bookmark status, I've hardwired it into the javascript
function.
2014-11-20 18:49:16 +01:00
Mathias Kresin
3dae99ac27 remove multiple definition of item id
The item id exists as data attribute or as element.id postfix on multiple
elements in an article.

The basic idea is to traverse the DOM tree - starting from the event firing
element - in reverse order till an article element is found.

This article element is passed to the JavaScript functions. These JavaScript
functions are getting the elements which they want to manipulate starting from
the article utilizing the JavaScript querySelector function.

The bootstrap themes had a conflicting and unused class style definied, which is
removed by now.
2014-11-20 10:43:29 +01:00
Mathias Kresin
e9762e7ea0 Move bookmark/read/unread display style completely to CSS 2014-11-19 20:19:45 +01:00
Mathias Kresin
8424b9bfb1 add brackets to unread, page and feed items counter via CSS
Unified the page-counters before.

This makes processing of counters in javascript way more easier. The minimum
required browser versions for the needed CSS3 selectors are IE9, Firefox 3.5
and Chrome 5. Confirmed working with IE9, Firefox 24.6, Chrome 36, Mobile Safari
on iOS6.

An unintended side effect of CSS brackets is that theme designers are able to
implement there idea of brackets.
2014-11-19 20:19:45 +01:00
Frédéric Guillot
9b2eaa2602 Various bugfixes (merge pull-request #235) 2014-08-10 15:03:48 -07:00
Frédéric Guillot
8d93fbc48c Remove items via ajax requests (merge pull-request #227) 2014-07-26 08:01:25 -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
6ed3ec788a Change loading icon to use an utf8 symbol 2014-02-22 21:50:54 -05:00
Frédéric Guillot
2d2afcd786 Do not select next item for mouse events only for keyboard shortcuts 2014-02-14 21:37:07 -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
b3b1e8bef7 Code refactoring (JS and templates) 2013-10-14 22:38:07 -04:00