A bit ago, I accidentally broke (in reddit/reddit@dbbc16e) the random sort
method for comment threads: we started filtering the `sort` GET parameter to
only "visible" options (those we display in the menu), when it should be *all*
sort options, visible or hidden.
If a comment is unspammed, put a notification back in the inbox
of all possible recipients (parent, username notifications, etc).
Keep track of the `new` status when the comment has been marked as spam.
When it is unspammed, try to get the previous `new` status so that it
isn't marked as unread if it's already been read.
With a little bit of testing, we decided 320px-wide Open Graph images are ideal
for Facebook. Specifically, they seem to crop down to 160px squares, except
when presenting images to retina devices, in which case you'll see 320x320.
So, if we can produce a 320px-wide image, let's provide it, and if not, we'll
fall back to a smaller size before trying other sources.
We don't want to suggest Q&A sort to responders, because the user
is answering questions, and Q&A sort focuses on already-answered
questions. This resets the suggested sort for responders.
We've had a number of minor data leaks where we'd expose information from
deleted links in metadata information. While we can patch them as they come
up, getting rid of the data at the source makes it harder to make these
mistakes.
Specifically, this was motivated by Open Graph image metadata being pulled from
the preview image for deleted self-posts.
We're using them in mobileweb, and are getting ready to announce them to the
developer community, so we don't really need them gated behind a feature flag
any more.
A pass at cleaning up some frontend code by removing unused functions. All of
these functions are either 1. not referenced anywhere or 2. referenced
somewhere, but don't actually _do_ anything. In the latter case, the reference
is removed as well.
The list of functions removed:
- hover_open_menu
- update_user
- emptyInput
- clear_all_langs
- check_some_langs
- show_unfriend
- pure_domain
- parse_domain
- save_usertext
- save_thing
- unsave_thing
- $.fn.same_author
- tool_cover
- fire_success
- check_name
- too_big
Additionally, the 'success_field' template in utils.html is removed, as it is
imported several places but never rendered (and was the only place the
fire_success function was being called).
Previously selfpost only subreddits got a limit of 40,000 characters
and other subreddits had a limit of 15,000 characters. Now all subreddits
have a limit of 40,000 characters.
Simplify the css a bit by making all links the same link color and adding a
purple link color for :visited and .visited links. Also adds posts clicked on
from the new search results page to the 'Recently Viewed Links' widget.
Moves the subreddit link to the end of the meta line to keep the score and
number of comments more consistently positioned.
Also adds the 'ambivote' icon before score, and linkifies the comment count.
When screens get narrow, the 'Share with:' label starts to wrap to two lines.
Since this is a translated string, we can't really just set a minimum width on
it and expect it to always work, but we can handle the wrapping case better.
This reduces the line-height to look less terrible, and keeps the labels
centered with the rest of the content when they need to wrap.
As part of our efforts to move to full-site HTTPS, the reddit toolbar
will be discontinued on June 26, 2015. The toolbar is not supported
when using HTTPS.
https://www.reddit.com/wiki/toolbar
http://redd.it/392zol
Expandos added by extensions can be mistaken for the ExpandoLink's own button, resulting in opening parallel expandos (reddit's and the add-on) or closing an expando by clicking a nested expando. This is avoided by verifying the clicked button is owned by the ExpandoLink.
Extensions can avoid this by stopping propagation on clicks to their expando buttons.
Since the search filter and sort menus have moved into the header, hiding it
after the first page means that users can only change the sort/filtering options
on page 1.
The js that controls the showing/hiding of the menus expect each dropdown
element to be the only instance amongst its siblings. In other words, each
dropdown button and list must be wrapped in a container element for it to work
correctly.
Additionally, this moves the filter menus to the right side of the header for
better visibility.