This is a follow up to #1. The onclick event is triggered by different
mouse buttons across browsers:
Firefox
- all mouse buttons trigger document.onclick (https://bugzilla.mozilla.org/show_bug.cgi?id=430310)
- only left mouse button triggers document.body.onclick
Internet Explorer
- only left mouse button and without any modifier key triggers
document.onclick
Chrome
- left & middle mouse button trigger document.onclick
Safari
- left mouse button triggers document.onclick
- middle click via mac os?
By switching to the onmouseup event this can be unified for all
mentioned browsers to:
- (CTRL+) left click triggers event
- middle click triggers event
- right click does nothing
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
I've dropped it accidentally with my last commit. Furthermore I moved
the data-feed-id definition to the article element and dropped multiple
references of the feed id. That's similar to what I've done before with
the data-item-id in 3dae99ac.
The article element holds the information whether a feed is disabled now.
Now it is shown if a feed had errors while updating.
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.
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.
When using the previous shortcut with the first article selected, the selection
is removed and no article is the current-item. Using the shortcut again, the
last article is the current-item (as expected on a new loaded page).
The same applies to the combination of last article and next shortcut.
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.
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.
I had particular problems with Ctrl-N (open new window/tab)
interfering with N (go to next unread item). This change
disregards keyboard shortcuts if Alt, Shift, or Ctrl are used.
It also tries to disregard Win/Super/Meta, though this didn't
work for me in Firefox. Still, just the Ctrl is an improvement
for me.
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.
Pressing the question-mark key (?) produces a pop-up listing the
keyboard shortcuts. Pressing q whilst this window has focus closes it.
I've provided crude translations for the additional ? and q shortcuts,
obtained from Google Translate, but they should be checked by native
speakers.