{"push_id":908946319,"size":37,"distinct_size":8,"ref":"refs/heads/t158-truncated_annot_design","head":"b45b1ab4db16448cb27f611ff1030f83b0904f52","before":"363c779eb1d69517d057f4f1960621f17c4c9a99","commits":[{"sha":"23115de74d0259bb72466353d8a32ceb891d9b57","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Small tweaks to the header for re-use in the blog\n\n * Add notes in the header and footer about updating the blog's\n   navigation when updating the navigation on the main site.\n\n * Increase the Z-index for dropdown menus in the header\n   to avoid a problem where the search box on the blog\n   appeared over the top of the dropdown.\n\n   Add a central place for a Z-Index scale in variables.scss\n   to avoid such problems in future.\n\n * Set the horizontal padding explicitly for the nav dropdown\n   menus. Previously the site relied on padding set by\n   a compass reset which was not present on the blog which\n   uses a much more minimal reset.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/23115de74d0259bb72466353d8a32ceb891d9b57"},{"sha":"41b86245a838a41c51c216bc3eae7f34fa83a8c0","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@seanh.cc","name":"Sean Hammond"},"message":"Don't update annotations with contents of others\n\nWhen listening to the 'annotationUpdated' event, AnnotationController\nneeds to check that it's this annotation that the event refers to before\nacting on it.\n\nFixes #2799.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/41b86245a838a41c51c216bc3eae7f34fa83a8c0"},{"sha":"b5493bc585adc1f6692e6d15d28f12afb64419f4","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Merge pull request #2800 from hypothesis/2799-dont-update-wrong-annotations\n\nDon't update annotations with contents of others","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/b5493bc585adc1f6692e6d15d28f12afb64419f4"},{"sha":"f01247796531c6342c66cf09536cdd55a4fb1787","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@whiteink.com","name":"Nick Stenning"},"message":"Merge pull request #2796 from hypothesis/t187-nav_blog_tweaks\n\nSmall tweaks to the header for re-use in the blog","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/f01247796531c6342c66cf09536cdd55a4fb1787"},{"sha":"e81ce9e3224d552a48873c48f6e546078b3fd2d0","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@seanh.cc","name":"Sean Hammond"},"message":"Enable showdown's literalMidWordUnderscores\n\nThis stops showdown from interpreting underscores in the middle of words\nas <em> and <strong>, instead it treats them as literal underscores.\n\nExample:\n\nsome text with__underscores__in middle\n\nwill be parsed as\n\n<p>some text with__underscores__in middle</p>\n\nFixes #2598 (URLs with _'s in them were getting <em> tags inserted into\nthem, breaking the links).\n\nAlso see <https://github.com/showdownjs/showdown/issues/211>.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/e81ce9e3224d552a48873c48f6e546078b3fd2d0"},{"sha":"dfc28579cd2600277bf13358408db2c51c146e78","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Merge pull request #2801 from hypothesis/2598-enable-literal-mid-word-underscores\n\nEnable showdown's literalMidWordUnderscores","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/dfc28579cd2600277bf13358408db2c51c146e78"},{"sha":"f9a36eafbc36aa9bd3cba2d8136fd8f42726a32d","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@seanh.cc","name":"Sean Hammond"},"message":"Fix some login validation crashes\n\nDon't crash if someone makes an application/json POST request to\n/app?__formid__=login that:\n\n- doesn't have a valid JSON body\n- has a body that contains JSON without a top-level object\n- or contains non-string username or password\n- or is missing username or password","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/f9a36eafbc36aa9bd3cba2d8136fd8f42726a32d"},{"sha":"e0559d4dfe05470cc232ef784f6a4ea4f2be90cf","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@seanh.cc","name":"Sean Hammond"},"message":"Use exception view for validation failures","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/e0559d4dfe05470cc232ef784f6a4ea4f2be90cf"},{"sha":"1ceb5fcefd7fa057bdbcf1f73df57d007289531f","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@whiteink.com","name":"Nick Stenning"},"message":"Merge pull request #2793 from hypothesis/fix-crash-on-login-with-non-json-body\n\nDon't crash on non-JSON body","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/1ceb5fcefd7fa057bdbcf1f73df57d007289531f"},{"sha":"c8ae3914d9861480d780f8c1e9213ad3ac161e3b","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@seanh.cc","name":"Sean Hammond"},"message":"jscs: Require `function () {}`\n\nChange jscs's required style from `function()` to `function ()`.\n\nWe always require a space after the `function` keyword, and before {}\nbraces, but we do not allow a space between a function name and its ()\nbraces:\n\n    var foo1 = function () {};  // Right.\n    var foo2 = function() {};  // Wrong.\n    var foo3 = function (){};  // Wrong.\n\n    var foo4 = function foo4() {};  // Right.\n    var foo5 = function foo5 () {};  // Wrong.\n    var foo6 = function foo6(){};  // Wrong.\n\n    function foo7() {}  // Right.\n    function foo8 () {}  // Wrong.\n    function foo9(){}  // Wrong.\n\nThis deviates from the Google style guide and jscs presets that we use.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/c8ae3914d9861480d780f8c1e9213ad3ac161e3b"},{"sha":"645d8332382b4f4167f7bd3c6642846e025f0f7f","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Merge pull request #2804 from hypothesis/jscs-require-spaces-after-function\n\njscs: Require `function () {}`","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/645d8332382b4f4167f7bd3c6642846e025f0f7f"},{"sha":"d602e54d27a7a53b733ab27dcc43ce73b7c23830","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Remove Moment.js\n\nMoment.js is only used in a single place, for converting ISO8601 date-time strings\nfrom the annotation's 'updated' field to user-friendly\ndate strings (eg. 'Wednesday 17 Dec, 18:59') for the tooltips\nfor the last-updated link in the annotation card.\n\nReplacing this with functions from the built-in Date object saves\n167KB from the generated bundle size (see\nmoment/min/moment-with-locales.min.js) and also speeds up the digest\ncycle. For 20 annotation cards in the /stream view, generating the\ndate string used to take 6-7ms with Moment. It takes <2ms with\nthe built in functions in a current build of Chrome.\n\nThis still shows up as the most expensive watch expression, so\nwe might want to add caching as well.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/d602e54d27a7a53b733ab27dcc43ce73b7c23830"},{"sha":"40957a68620db61f0147f0a04c07e8f8148103b4","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@seanh.cc","name":"Sean Hammond"},"message":"Render YouTube and Vimeo links as video embeds\n\nClient-side, replace any links to YouTube or Vimeo videos in annotation\nbody texts with <iframe> video embeds for those same videos.\n\nBehind a new feature flag.\n\nmarkdown.coffee: after rendering the user's markdown text to HTML and\nsanitizing it, compile the HTML string into a DOM element and insert it into\nthe DOM using innerHTML from JavaScript, instead of using Angular's\nng-bind-html to insert the HTML string into the DOM.\n\nThis means that our CoffeeScript code in markdown.coffee has the rendered\nannotation body as a DOM element, and can use the DOM API to modify it before\ninserting it into the DOM.\n\nTake advantage of this to find video links in the HTML and replace them with\nembeds. This is done by a standalone media-embedder.js module that\nmarkdown.coffee calls.\n\nThis module is designed to allow functions for generating embeds for different\nkinds of URLs to be plugged in. So far functions for a few different kinds of\nYouTube and Vimeo URLs are implemented, but further functions for more\nmedia types can be added.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/40957a68620db61f0147f0a04c07e8f8148103b4"},{"sha":"a77ab602edd3fedeeac9d3ea100f4dfd47bd89f0","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Merge pull request #2805 from hypothesis/TPUsXCk4-add-media-embeds-feature\n\nAdd media embeds feature","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/a77ab602edd3fedeeac9d3ea100f4dfd47bd89f0"},{"sha":"ab743601367cceefbd74b94ae9899d299e88b0e6","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Enable video embeds to be shown fullscreen\n\nThe 'allowfullscreen' attribute must be set on both\nthe embed's <iframe> and the parent sidebar <iframe>\nwhen the embed's main script is loaded to enable\nfullscreen support.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/ab743601367cceefbd74b94ae9899d299e88b0e6"},{"sha":"5f28ea229a8f98ce908b2cdd8895e2cd3a6a612f","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Use Date.toLocaleString()'s options arg for more control over date formatting\n\nA downside of using the browser intl APIs to avoid the overhead\nof Moment.js is that the output is implementation dependent.\n\nUse toLocaleString()'s options argument where supported\n(Firefox, Chrome, Edge, IE 11) for more control over formatting\nof dates in annotation last-updated tooltips.\n\nSafari is the only modern browser currently lacking support\nfor this option. For Safari, use toDateString() and toLocaleDateString()\nwhich generates the most similar format.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/5f28ea229a8f98ce908b2cdd8895e2cd3a6a612f"},{"sha":"43a8c02aa2e2c701b427cc8cef9da0631f292f1a","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Consolidate /app and /app/features endpoints\n\nExperience has taught us that the client needs the session\ndata (current user, list of groups) and set of enabled feature\nflags at the same time, and also needs to invalidate them\nin the same scenarios (eg. account switching).\n\nFetching this data via two separate requests made it more complicated\nto ensure the client had a consistent view of session and feature-flag\ndata. To simplify things and also same a network request:\n\n * On the server, put the feature flag data into the session data payload.\n\n * On the client, use the existing central storage and cache management\n   for the session data payload to manage feature flags as well.\n\n   The features service now becomes a thin wrapper around part of\n   the session state.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/43a8c02aa2e2c701b427cc8cef9da0631f292f1a"},{"sha":"30bb47be12c3ada55503738e3708b09e753acac5","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@whiteink.com","name":"Nick Stenning"},"message":"Release version 0.8.7","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/30bb47be12c3ada55503738e3708b09e753acac5"},{"sha":"72d8291bec4681ef932a0944d9b8f960de904163","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@seanh.cc","name":"Sean Hammond"},"message":"Improve a code comment","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/72d8291bec4681ef932a0944d9b8f960de904163"},{"sha":"d1dd9116cf082acc14271a74459acf9177c19f9b","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Merge pull request #2815 from hypothesis/fix-a-comment\n\nImprove a code comment","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/d1dd9116cf082acc14271a74459acf9177c19f9b"}]}