* Automatically fix all tags with incorrect counts during daily
maintenance (previously only tags with negative counts were fixed).
* Log fixed tags to NewRelic.
* Remove the ability to manually fix tag counts with the "Fix" button on
the /tags listing. This is no longer necessary now that tags are
fixed automatically.
* Remove `list-style-type: none` rules (this is the default).
* Add `list-bulleted` and `list-inline` utility classes.
* Wrap terms of service and user deletion pages in dtext `.prose` class
so we don't have to redefine basic list styles on these pages.
DEPRECATION WARNING: Dangerous query method (method whose arguments
are used as raw SQL) called with non-attribute argument(s): "trunc(3
* similarity(name, 'two')) DESC". Non-attribute arguments will be
disallowed in Rails 6.1. This method should not be called with
user-provided values, such as request parameters or model
attributes. Known-safe values can be passed by wrapping them in
Arel.sql(). (called from order_similarity at
/home/admin/src/danbooru/app/models/tag.rb:817)
Fixup for 9c34d5cc3. Default to member level in the database because
setting it in `customize_new_user` clobbered user levels set by factory
bot in tests, which broke the test suite.
`User.find_by_name` used `where_ilike` to do a case-insensitve name
search, but it didn't escape `*` or `\` characters first, so it didn't
handle names containing these characters properly.
* Always display 'Saved searches' link in subnav bar, even if the user
hasn't created any saved searches yet.
* Eliminate use of `has_saved_searches` bitpref on users.
* Remove .ui-corner-all, .ui-state-highlight, .ui-state-error classes
from notice boxes.
* Use .notice, .notice-info, .notice-error classes instead.
* Replace <p> elements in notices with <div>'s so that we don't have to
work around the `margin-bottom: 1em` from <p> elements.
* Replace <h1> elements in notices with <h2>.
* Standardize info notices to use the same shade of light yellow in the
light theme.
* On the posts show page, make the "»" link next to the source visible
to all users, not just builders.
* Make "»" link to the raw unnormalized source, instead of a `source:` search.
* Remove the special case for displaying old pixiv sources as `pixiv/moniker`.
* Switch from flat greys to cool blue greys.
* Define colors with HSLuv (https://www.hsluv.org) so that each band of
colors is perceptually uniform (has the same brightness and contrast).
* Fix commentary box not having a gap between it and the search navbar
when the search navbar is beneath the post (the default setting).
* Reduce border radius of commentary box.
Fixes the search button wrapping to the next line in Firefox. Also fixes
the search box to be full width with no gap between the search box and
the search button.
* Adjust platinum user color.
* Change alert notices to grey with blue border.
* Add padding to text <input> elements so that the text isn't right next
to the edge.
* Style <button> and <input> elements explicitly instead of relying on browser defaults.
* Style jquery ui buttons the same way as regular buttons.
* Add color variables so we can restyle form inputs in dark mode.
Bug: in the test environment, new users defaulted to the Anonymous level
instead of the Member level. This broke signing up as a new user with
Capybara during system tests.
* Only check for conflicts with existing aliases/implications when
requests are created or approved, not when requests are rejected.
* Use `update!(status: "deleted")` instead of `update(status: "deleted")`
so that if rejecting the request fails we fail immediately instead of
continuing on and updating the forum topic.
* Wrap `reject!` and `TagChangeRequestPruner.reject_expired` in
transactions so that if updating either the request or the forum
fails, they both get rolled back.
* Standardize the upload widget background colors (light green for success,
light red for error).
* Move the progress bar to the bottom of the upload widget.
* Change the progress bar color to blue.
* Hide the "drag and drop a file here" message after a file has
already been uploaded.
Standardize background colors to light green or light red in several places:
* Modqueue positive/negative score backgrounds.
* Modqueue quality/sample warning backgrounds.
* User feedback positive/negative backgrounds.
* Ban expired/unexpired backgrounds.
* Flag resolved/unresolved backgrounds (removed; resolved flags no
longer have a grey background because of inconsistencies in what
resolved means).
Fineprint text was variously styled with `.info`, `.tn`, `.hint`, or
`.cost-footnote` css classes. Standardize on `.fineprint` instead. Use
`.hint` only for form hints and `.tn` only for <tn> tags in translation
notes.
Incidentally changes the font size of form hints to 0.8em (was 0.7em)
and the color of fineprint to #888 (was #AAA or #666).
The "Danbooru" link in the header had a 5px top margin, which created a
small gap above the page that caused mode menu backgrounds to show
through in an ugly way.
Don't remove the bottom margin from all <p> elements in tables. Instead
remove it only from the last element in dtext blocks. This way we don't
have to also kludge <blockquote> padding to work with zero-margin paragraphs.
Better fix for #1655.
Ensure dtext is always wrapped in a `<div class="prose">` or
`<span class="prose">` (for inline dtext) container so that dtext css is
properly applied.
Position <span class="hint"> elements to the right of normal <input>
elements and underneath <textarea> elements. Fixes form hints being
badly positioned on some pages.
Use git clean to delete stale files from an earlier checkout. These
files interfered with various things (specifically, a comment vote test
failed because there was an old comment_votes/create.json.erb template
hanging around that changed the behavior of the POST /comment_votes endpoint).
Stop maintaining pool category pseudo tags (pool:series, pool:collection)
in pool strings. They're no longer used and the changes to the
`Post#pools` method in dc4d2e54b caused issues with this.
Also allow Members to change the category of large pools again. This was
only restricted because maintaining these pseudotags forced us to update
every post in the pool whenever a pool's category was changed.
Replace the `method_attributes` and `hidden_attributes` methods with
`api_attributes`. `api_attributes` can be used as a class macro:
# include only the given attributes.
api_attributes :id, :created_at, :creator_name, ...
# include all default attributes plus the `creator_name` method.
api_attributes including: [:creator_name]
or as an instance method:
def api_attributes
[:id, :created_at, :creator_name, ...]
end
By default, all attributes are included except for IP addresses and
tsvector columns.
In xml responses, if the result is an empty array we want the response
to look like this:
<posts type="array"/>
not like this (the default):
<nil-classes type="array"/>
This refactors controllers so that this is done automatically instead of
having to manually call `@things.to_xml(root: "things")` everywhere. We
do this by overriding the behavior of `respond_with` in `ApplicationResponder`
to set the `root` option by default in xml responses.