Voting should not be available when a page is in read only or heavy load mode.
This prevents a blank modal from appearing when voting on a post or comment.
This helps with some cache poisoning where we'd end up with www.
links on beta. and vice versa. This also retains existing behaviour
where something like "en.www." == "en.", "en.en." == "en.", and
"json." == ""
Thanks to Nathanael A. Hoyle for the report! Some of these may have
been exploitable due to pointer arithmetic before reads / writes.
Just bail out if we can't allocate.
When the new promo form went from being a normal ajax call to a multipart form, it
stopped using the 'post_pseudo_form' method. That method ignored inputs with the
'gray' class applied, which was being used for displaying the 'optional' placeholder
string. This was probably created before there was widespread support for the
placeholder html attribute.
+ Add horizontal padding to gold-highlighted comments
+ Restore blockquote indent
+ Darken blockquote and del element text
+ Darken blockquote border and hr element
+ Increase font size of reply textarea to match comment font size
+ Fix alignment of messages
+ Restore green text to sent modmail
+ Fix code elements having a much smaller font size in Chrome
+ Increase left spacing on lists to prevent ol list numbers from being cropped.
+ Make code blocks have white background when on non-white backgrounds.
Conflicts:
r2/r2/public/static/css/markdown.less
Add the POST_create_promo endpoint and validator for posting a multipart form. The
form is posted to a hidden iframe on the page, which then relays the jquery response
back to the parent frame.
Currently, if you navigate to the second page of links then change the sort type, you'll
get no results back. This is because it is carrying over the 'after' query param. This
drops the query params for all of the sort options _except_ the one you are currently
on, so that changing it will always kick you back to page 1.
from Dylan:
We haven't used "bids" for 18 months or so, can probably substitute "Spend History" and
"Spend" in place of the two instances of bid. Doesn't really matter for people that are
familiar with the system, but as we bring new people on it may be confusing.
es5-shim only adds polyfills for es5 methods whose behavior can be faithfully
emulated in legacy javascript engines. es5-sham adds stubs and partial support
for additional es5 methods (e.g. Object.freeze) with the goal of preventing
runtime errors.
react-with-addons.js uses some of these methods, and as such breaks on old IE.
The 'shams' work perfectly fine for it.
This is the final step in the saga of the pg vote rel destruction. We've
been dual-writing to PG and C* while gaining confidence in the pure-C*
model being able to survive full load. This kills the pgvote databases
and moves forward in a pure-cassandra world for votes which should save
us considerable operational headaches. After rolling this out, we can
not switch back without considerable effort.
When he reached the New World, Cortez burned his relational databases.
As a result his queue processors were well motivated.
If a user has a Stripe subscription, we can delete the customer when the
account is deleted. If there's a paypal subscription, a link to paypal will
be shown to remind the user to cancel the subscription.
Previously sponsors had to go to the edit_promo page for each link
they were reviewing. Adding the summary table to the link listing
shows them all the information they need to accept or reject the ad.
This cuts primary reads over to VoteDetailsBy{Link,Comment} instead of
Postgres for determining if the vote being processed is overwriting a
previous vote or not.
Postgres is kept up to date in case we need to fall back.
A user will only be sent a ban notification if either of the following
is true:
1. they are subscribed to the subreddit
2. they have ever gained or lost karma (of any type) in the subreddit
Because of these conditions, there is some confusion in cases where
moderators ban someone that has made a post that didn't yet receive any
votes, where they still expect the user to receive a ban message and be
able to see the reason for the ban that they requested to include in it.
This commit makes it so that including a custom reason is not possible
in a case where the message won't actually be sent, to prevent that
confusion.
Currently all subscriptions (new or recurring) have a secret (autorenew-).
To make it easier to find which type of payment it is, this will clear the
secret if this is a recurring subscription (which is the same structure
paypal takes).