{"push_id":666341080,"size":50,"distinct_size":48,"ref":"refs/heads/keyboard-shortcuts","head":"fb2650ed672500c85fbf5619ffe83eb8b734e970","before":"3850ea6916900dd28d34f1a7c3af6fa41d38b284","commits":[{"sha":"baac52a263c2e1f67f9c5cfa7988fdcd5b3ea9e3","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"Alfredo Amatriain"},"message":"Refined handling of encodings different from utf-8:\n\n- when fetching a feed, an attempt is made to detect the encoding from the content-type HTTP header. If it's not possible, or the reported encoding is not valid, the response XML is parsed to attempt to detect the encoding from the <xml encoding=\"xxx\"> attribute.\n\n- once the feed encoding has been detected, force_encoding is invoked to set it in the string. The internal representation of the string is not changed, only the encoding attribute is changed to make Ruby aware of the actual string encoding.\n\n- the string in its original encoding is parsed with Feedjira. Attempting to convert it to utf-8 before passing it to Feedjira causes issues if the charset reported in the xml is not utf-8, so it's better to pass it in the original encoding.\n\n- When entries and feed attributes are saved in the database, they are converted to utf-8 just before saving. This guarantees that all texts saved in the database are utf-8 regardless of their source, for homogeneity.","distinct":false,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/baac52a263c2e1f67f9c5cfa7988fdcd5b3ea9e3"},{"sha":"600dd2b78d14a89b196c44f9a51d701655ab0114","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"Alfredo Amatriain"},"message":"Change the way in which a feed response is checked to see if it's blank.\n\nIt seems the rails .blank? method has issues with some feeds related to charsets, perhaps when there is a character invalid for the reported charset. The new way is more verbose but has no such issues.","distinct":false,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/600dd2b78d14a89b196c44f9a51d701655ab0114"},{"sha":"2678d194278aa052d281e9fdcef05a4349b08403","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Show a small caret to the right of the entry currently being hovered.\n\nThis is a WIP to implement keyboard shortcuts. The caret will visually indicate the user which entry currently has the focus.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/2678d194278aa052d281e9fdcef05a4349b08403"},{"sha":"61be5fad12a0322c78ec2a9560e29cf0fceb039b","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"WIP: keyboard shortcuts","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/61be5fad12a0322c78ec2a9560e29cf0fceb039b"},{"sha":"a7aba467b7225ff76f0349ccdb53fb996deb8731","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"WIP: keyboard shortcuts.\n\nMoving the small caret that indicates the currently highlighted entry is done with jquery. AngularJS ng-show is too slow, it performs for each entry and the delay feels very unresponsive to the user. The state (which entry is highlighted) is still kept with angularjs, but the hiding-showing of the carets is done with jquery. This also forces me to add a CSS rule to show the caret of the first entry when loading the first page of entries; I cannot trust jquery to show the first caret in this case because often the jquery code runs before angularjs has had time to actually display entries. This is a case in which having jquery and angularjs code each living at its own pace is a bit of a problem, but I see no better way. As stated above angularjs is just too slow in this case.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/a7aba467b7225ff76f0349ccdb53fb996deb8731"},{"sha":"e4476c46f807ec9588b12311b2a71c2ff2d3d256","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"The highlighted entry can be changed both by hovering the mouse and by using the j/k keyboard shortcuts.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/e4476c46f807ec9588b12311b2a71c2ff2d3d256"},{"sha":"0399d25b8a9bffc310980ff7449ad7b544cd4b8d","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"When using keyboard shortcuts to change the highlighted entry, the entries list autoscrolls to show the entry in the viewport if necessary.\n\nAlso while autoscrolling, highlighting entries by hovering the mouse over them is disabled. This is necessary because otherwise, if autoscrolling entries is triggered while the mouse is on the entries list, this would trigger a hover event and at the end of the animation the highlighted entry would be the one that happens to be under the mouse pointer. To prevent this, the handler of mouseover event is disabled temporarily while the autoscroll animation runs.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/0399d25b8a9bffc310980ff7449ad7b544cd4b8d"},{"sha":"296ad723c48b5f415ea278d78ff65bb95b72f3fd","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Spacebar key toggles the open/close state of the currently highlighted entry.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/296ad723c48b5f415ea278d78ff65bb95b72f3fd"},{"sha":"0d1dd79140ba004da646c5bd9ee85f583bac164f","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Temporarily disable highlighting entries by mouseover after using keyboard shortcuts to open or close an entry.\n\nThis is to prevent the scrolling animation triggering a mouseover event that ends up highlighting the entry that happens to be under the mouse pointer, which is not the expected behavior.\n\nI'm not too happy this this yet. Opening an entry with the spacebar currently starts a 1-second interval during which moving the mouse does not highlight entries. This prevent a user from moving the mouse and opening entries with the spacebar at the same time, which could be surprising for the poor user.\n\nPerhaps it would be better to reenable the \"highlight on mouseover\" behavior not after a timeout, but if the user moves the mouse. This would prevent mouseover events triggered by autoscrolls, while at the same time still allowing the user to immediately use the mouse to highlight entries.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/0d1dd79140ba004da646c5bd9ee85f583bac164f"},{"sha":"c9100d55f3f52fd5837721586e6e4b99f270fe06","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"Alfredo Amatriain"},"message":"When a keyboard shortcut is used, the \"highlight on mouseover\" feature is disabled.\n\nThis prevents accidental mouseover events when an autoscroll animation is triggered (e.g. by opening an entry).\n\nWhen the user moves the mouse, the \"highlight on mouseover\" feature is immediately enabled again. This allows switching from keyboard to mouse without a hitch.\n\nThis replaces the old implementation, in which mouseovers were temporarily disabled for a few milliseconds. This was hard to get right, and could end up having a user moving the mouse while mouseovers were still disabled. Also this implementation is much cleaner.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/c9100d55f3f52fd5837721586e6e4b99f270fe06"},{"sha":"5d84796511cc22999155364c7daeab0a0b501cb1","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"Alfredo Amatriain"},"message":"Minor perfomance improvement in jquery selectors.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/5d84796511cc22999155364c7daeab0a0b501cb1"},{"sha":"4be0c2efc1c535a9b2c02daabd5676eaa59205f3","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"Alfredo Amatriain"},"message":"Show/hide the caret for the highlighted entry with CSS instead of javascript.\n\nA bit faster, I think.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/4be0c2efc1c535a9b2c02daabd5676eaa59205f3"},{"sha":"fc27126c2f6ec224f5c1cff6d2520460c0bfe590","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"Alfredo Amatriain"},"message":"Small performance improvement in jquery selectors.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/fc27126c2f6ec224f5c1cff6d2520460c0bfe590"},{"sha":"6fedf618081c2c426e000974d89854e464495f53","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Added acceptance tests for keyboard shortcuts feature.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/6fedf618081c2c426e000974d89854e464495f53"},{"sha":"304732fcddfad550ce463bf288d07bca5d81b29d","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Added method to stop the app responding to keyboard shortcuts.\n\nThis will be used when a form with a text field is displayed, so that the user can e.g. write a folder name that includes characters normally used for shortcuts.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/304732fcddfad550ce463bf288d07bca5d81b29d"},{"sha":"9dae171ec9b91ed48f1d91fefb6256ab835f5c2b","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Converted JS file that handles giving focus to form fields to an AngularJS service.\n\nThis is necessary to give this piece of code access to the keyboardShortcutsSvc AngularJS service; this will be necessary to stop the application from responding to keyboard shortcuts while a form with a text field is displayed (otherwise the user could not write characters assigned to shortcuts in text fields).","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/9dae171ec9b91ed48f1d91fefb6256ab835f5c2b"},{"sha":"c9fbbc33df1491c73aba85a7a8d80864b3d8c5fb","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Disable keyboard shortcuts when a popup is shown in the read view.\n\nThis is necessary to allow the user to enter characters assigned to shortcuts to e.g. folder names.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/c9fbbc33df1491c73aba85a7a8d80864b3d8c5fb"},{"sha":"de4a615d2cdae794eb72798cf3fd64e246631606","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"WIP: keyboard shortcuts to move up/down the feeds list and select a feed or folder for reading.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/de4a615d2cdae794eb72798cf3fd64e246631606"},{"sha":"176b5f525c64665cea6491e551ad0563d5957f40","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"Alfredo Amatriain"},"message":"WIP: keyboard shortcuts to move up and down the sidebar.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/176b5f525c64665cea6491e551ad0563d5957f40"},{"sha":"27c9ea9640e2a70bad706672634ff69a001088bf","author":{"email":"acea06ab3d237e846232d4929c3ae98fee2dabd6@gmail.com","name":"amatriain"},"message":"Fixed coffeescript function indentation.\n\nI really hate significative indentation.","distinct":true,"url":"https://api.github.com/repos/amatriain/feedbunch/commits/27c9ea9640e2a70bad706672634ff69a001088bf"}]}