Commit Graph

6732 Commits

Author SHA1 Message Date
evazion
d4a243c8d1 footer: abbreviate git hash. 2019-08-19 00:46:31 -05:00
evazion
13f4dee59f footer: only show keyboard shortcuts link on desktop. 2019-08-19 00:46:31 -05:00
evazion
dab43d96c9 jobs: migrate mass updates to ActiveJob.
Also fixes a bug where mod actions weren't logged on mass updates.
Creating the mod action silently failed because it was called when
CurrentUser wasn' set.
2019-08-19 00:46:31 -05:00
evazion
48488d04db jobs: migrate bulk reverts to ActiveJob. 2019-08-19 00:46:30 -05:00
evazion
ddcc7eddfb jobs: migrate fixing post counts to ActiveJob. 2019-08-19 00:46:30 -05:00
evazion
a586916cb3 /wiki_page_versions: various usability improvements.
Changes to the /wiki_page_versions global listing:

* Add "diff" links that show you what changed in the given edit.
* Add "?" links that take you to the current version of the wiki.
* Add "»" links next to wiki page titles that take you to the wiki's full edit history.
* Add "»" links next to usernames that take you to the user's full edit history.
* Add a "Status" column that shows whether the wiki page was created,
  deleted, undeleted, or renamed.
* Link to /wiki_page_versions in sidebar, not /wiki_pages?order=time.
2019-08-18 17:08:35 -05:00
evazion
5b27726635 views: fixup regressions in new dmail, new feedback forms.
Fixup regression in 59b277ead. Simpleform expected `to_name`,
`user_name` methods to exist on these models.
2019-08-18 13:33:05 -05:00
evazion
576b4feb3b views: convert mod dashboard + admin user edit page to simple form.
Fixes bug with the user level select dropdown on the mod dashboard page
missing the builder level.
2019-08-18 11:24:42 -05:00
evazion
d7d4a63e69 js: fixup bug in note hiding.
Fixup regression in e000bdb86.
2019-08-18 11:24:42 -05:00
evazion
6019a9fdc4 js: fix eslint warnings. 2019-08-18 11:24:42 -05:00
evazion
f2937e3d27 js: update yarn packages. 2019-08-18 11:24:42 -05:00
evazion
59b277ead1 users: drop id_to_name, name_to_id caching.
Changes:

* Drop Users.id_to_name.
* Don't cache Users.name_to_id.
* Replace calls to name_to_id with find_by_name when possible.
* Don't autodefine creator_name in belongs_to_creator.
* Don't autodefine updater_name in belongs_to_updater.
* Instead manually define creator_name / updater_name only on models that need
  to return these fields in the api.

id_to_name was cached to reduce the impact of N+1 query patterns in
certain places, especially in api responses that return creator_name /
updater_name fields. But it still meant we were doing N calls to
memcache. Using `includes` to prefetch users avoids this N+1 pattern.

name_to_id had no need be cached, it was never used in any performance-
sensitive contexts.

Avoiding caching also avoids the need to keep these caches consistent.
2019-08-18 11:24:42 -05:00
evazion
7871dced00 users: fix find_by_name, name_to_id to strip whitespace.
Fix find_by_name and name_to_id to use normalize_name properly, so that
they ignore leading/trailing whitespace. This fixes various search forms
failing to return results when the username field contains trailing
whitespace (inserted by autocomplete).
2019-08-18 11:24:42 -05:00
evazion
82fbb19e0f users: drop unused code. 2019-08-18 11:24:42 -05:00
evazion
17b2cd38cd dmails: drop unneeded methods. 2019-08-18 11:24:42 -05:00
lllusion3469
b15fd6d017 Fix Ugoiras when image cropping is disabled
since file is nil and has no #close! when Danbooru.config.enable_image_cropping is false
2019-08-17 19:52:23 -05:00
evazion
51ca31ef8d Drop unused tag subscription model. 2019-08-17 02:47:49 -05:00
evazion
868a2256d1 jobs: migrate file deletion jobs to ActiveJob. 2019-08-16 20:49:35 -05:00
evazion
2b6361369e jobs: migrate aliases/implications to ActiveJob. 2019-08-16 20:49:35 -05:00
evazion
2bbdc5d143 jobs: migrate saved searches to ActiveJob.
* Fix tests to run the searches for real instead of mocking everything out.

* Fix SavedSearch.populate to only use the read only database in
  production because in breaks things in tests. Specifically:
  the posts get created in one db connection but searched for in
  another, but the second transaction doesn't see the uncommitted posts
  in the first transaction, so the search doesn't work.
2019-08-16 20:49:35 -05:00
evazion
a68db501c2 jobs: migrate related tag updates to ActiveJob. 2019-08-16 20:49:35 -05:00
evazion
24eb1b155f jobs: migrate pool category updates to ActiveJob. 2019-08-16 20:49:34 -05:00
evazion
4e8b3d9310 jobs: migrate user deletions to ActiveJob. 2019-08-16 20:49:34 -05:00
evazion
822dce20ed jobs: add base ApplicationJob. 2019-08-16 20:49:34 -05:00
evazion
817f5ecf9c jobs: drop favgroup expunge job.
Make `Post#expunge!` remove favgroups synchronously.
2019-08-16 20:49:34 -05:00
evazion
798d524e60 Post#tag_match: clean up read_only param.
* Drop /posts?ro=true param (broken).
* Clean up tag_match (rescuing PG::ConnectionBad didn't do anything, we
  just build the query here, we don't run it).
2019-08-16 00:26:00 -05:00
evazion
bb157f5d5b models: drop various unused #named methods. 2019-08-15 19:18:19 -05:00
evazion
0d7d2cac80 Drop unused AmazonBackup model. 2019-08-15 18:41:57 -05:00
evazion
b9d35eaf2c Fix #3272: Unicode tags are still being allowed.
* Don't allow adding tags with invalid names when they already exist in
  the tags table.
* If an invalid tag is added, show an warning and ignore the tag instead
  of failing with a hard error.
* Move the _(cosplay) tag validation into the tag name validator.
2019-08-15 16:42:23 -05:00
evazion
e85c6c3250 artists.js: replace 'check name' code with tag autocomplete.
Instead of having custom code check whether the artist name is already
in use, just enable autocomplete on the artist name field. This is an
easier and more robust way to indicate tag name conflicts.
2019-08-15 12:51:51 -05:00
evazion
df8391aec0 Make /artists_versions and /artist_commentaries/search visible to all. 2019-08-15 12:51:51 -05:00
evazion
a64cd50be4 profiles: add account upgrade link. 2019-08-15 12:51:51 -05:00
evazion
01c4395105 profiles: add 'refresh' link next to post changes count.
Remove the 'Refresh counts' link from the site map. Put it in the user's
profile instead.
2019-08-15 12:51:51 -05:00
evazion
5ceb71da8d sitemap: split 'users' section into 'profile' + 'users'.
Move everything related to the current user into it's own 'Profile'
section.
2019-08-15 12:51:51 -05:00
evazion
f4db4b2eea sitemap: add missing pages to site map. 2019-08-15 12:51:51 -05:00
evazion
5f1226ca92 Rename maintenance.rb -> danbooru_maintenance.rb.
Fixes random test failures caused by ambiguous constant lookup issues
(the `Maintenance` module name was used in multiple conflicting places).
2019-08-15 00:36:25 -05:00
evazion
38ab13f0b7 Remove unused sign up banner.
No longer used, probably broken in 98b31aafa6.
2019-08-14 01:46:44 -05:00
evazion
90fa67d4c1 Remove unused terms of service banner.
No longer used, inadvertently hidden in a6233f297e.
2019-08-14 01:46:44 -05:00
evazion
8d07ad7390 js: clean up notice/error messaging. 2019-08-14 01:46:44 -05:00
evazion
e000bdb861 js: drop jquery-timeout plugin.
Replace with `Danbooru.Utility.delay`.
2019-08-14 01:46:44 -05:00
evazion
d812020030 js: migrate stupidtable and jquery-hotkeys to yarn. 2019-08-14 01:46:43 -05:00
evazion
fccb6cda27 js: migrate dropzone to yarn.
Also fixes a bug where sometimes the dropzone widget didn't work because
of late loading caused by the `<script async>` tag.
2019-08-14 01:46:43 -05:00
evazion
5e78e36537 fixup! application controller: clean up exception handling. 2019-08-14 01:46:43 -05:00
evazion
d657624a80 Revert "application controller: fix errors in normalize_search."
This reverts commit 28a88cfa85.
2019-08-14 01:46:43 -05:00
evazion
dbfd6185f1 posts: fix error on /posts?md5=<does_not_exist>. 2019-08-13 21:30:21 -05:00
evazion
0f98631908 wiki pages: fix error in /wiki_pages/does_not_exist.json 2019-08-13 21:30:21 -05:00
evazion
f6b737103a post votes: fix error handling.
* Clean up javascript.
* Return HTTP 422 instead of HTTP 500 on "you have already voted for
  this post" errors.
* In json/xml error responses, return the error message in the `message`
  field, not `reason`.
* In json/xml success responses, return the post itself instead of a
  plain `{ success: true }` object.
2019-08-13 21:30:20 -05:00
evazion
00239c4901 favorites: fix error handling.
* Return HTTP 422 instead of HTTP 500 on "You have already favorited
  this post" errors.

* Log unexpected errors in Ajax requests to the console.
2019-08-13 21:30:20 -05:00
evazion
ca2e2c92b9 artist versions: fix uninitialized constant error.
Error appears intermittently depending on module load order.
2019-08-13 21:30:20 -05:00
evazion
0a5e04f015 dmail filters: fix uninitialized constant error. 2019-08-13 21:30:20 -05:00