When replacing a post with the same file, don't queue a deletion and
don't leave a comment or modaction. There's no need to do these things
when we're restoring a missing or corrupted image with the original file.
* Set parent IDs with `update` instead of `update_column` /
`update_all` when reparenting children. This fixes it so that new post
versions are saved and the has_children flag is set on the new parent.
* Slightly simplify logic of update_children_on_destroy: the single
child case is subsumed by the multi-child case.
Don't silently ignore attempts to remove posts from deleted pools.
Remove the restriction on removing posts from deleted pools instead (ref: #1109).
Fixes failure to remove posts from deleted pools during expungement.
* Only suggest the Danbooru tag with the same name if there is no
matching wiki other name. Example: if we have the Pixiv tag `Fate` and
the Danbooru tag `fate_(series)` with other name `fate`, suggest that,
not the Danbooru tag `fate`.
* Don't suggest tags that are empty or whose wiki is deleted.
* Only split tags on "/" if there are no other matches, and only for Pixiv.
* For Pixiv, only include traditional media tags in tag list, not digital media (Photoshop, SAI).
* Add some tests.
Disallow transitive implications. If a -> b -> c already exists, don't
allow a -> c.
Caveat: if b -> c already exists, and we make a BUR for a -> b and a -> c,
the BUR validates even though a -> c is redundant. It only fails
when the BUR is approved.
* Convert Tumblr commentary to DText.
* Strip extraneous whitespace in links and blockquotes.
* Add newlines after block elements to ensure they're separated from
subsequent blocks.
* Adds a "Tags" field to the post replacement dialog box. The given tags
are added to the post after replacement.
* Prefills the Tags field with certain tags that usually need to be
removed after replacement: replaceme, image_sample, jpeg_artifacts, etc.
* Record "file://#{filename}" as the replacement url when the
replacement comes from an uploaded file.
* Record the actual url downloaded by the upload process otherwise. This
may be different from the url given by the user, since the upload
process may rewrite the url.
Adds a "Final Source" field to the post replacement dialog. If
specified, the post's source field will be changed to this value after
replacement.
This makes fixing the source back to the HTML page after
replacement easier.