about summary refs log tree commit diff
path: root/app
AgeCommit message (Collapse)Author
2022-12-15Fix typos in source documentation (#21046)luzpaz
Fixed 2 source comment/documentation typos
2022-12-15Fix profile avatar being slightly offset into left border (fixes #20822) ↵Riedler
(#20994) * hotfix for #20822 I don't know why it was shifted in the first place or why the width is specified twice, but this fixes the problem, so it looks fine to me. * realigned pfp with content below * fixed formatting my bad * added comment to explain the negative margin before I forget - comments are *important* ! Co-authored-by: Riedler <riedler@gelse.eu>
2022-12-15Fix crash in elasticsearch_check.rb (#21006)s0
Nil unwrap causes the admin dashboard to crash/500 when the Chewy client info version number value is nil. This occurs when running another ES-compatible backend such as MeiliSearch. Obviously it would be good for chewy to recognise upstream but at least avoiding the crash would be fine.
2022-12-15Allow adding relays while secure mode & limited federation mode are enabled ↵Effy Elden
(#22324)
2022-12-15Fix invalid CSS for links in warning and strike cards (#22302)Claire
2022-12-15Don't delivery a reply to domains which are blocked by author (#22117)Jeong Arm
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2022-12-15Fix missing Javascript in domain block import confirmation page (#21471)Claire
Follow-up to #20597
2022-12-15Revoke all authorized applications on password reset (#21325)Francis Murillo
* Clear sessions on password change * Rename User::clear_sessions to revoke_access for a clearer meaning * Add reset paassword controller test * Use User.find instead of User.find_for_authentication for reset password test * Use redirect and render for better test meaning in reset password Co-authored-by: Effy Elden <effy@effy.space>
2022-12-15Change dropdown menu to contain “Copy link to post” even for non-public ↵Claire
posts (#21316) Fixes #21244
2022-12-15Allow admins to refresh remotely-suspended accounts (#22327)Claire
* Change suspension text to mention that a remotely suspended account is not locally-suspended * Add ability to refresh profile of remotely suspended accounts
2022-12-15Fix wasteful request to /api/v1/custom_emojis when not logged in (#22326)Claire
2022-12-14Fix invalid CSS for links in warning and strike cardsClaire
2022-12-14[Glitch] fix missing style in warning and strike cardsRin
Port 42e16ea52dcafef7737368b05537670cc49d3f91 to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-12-14[Glitch] Make handle more easily selectable on profile pagecadars
Port 52a50c5e43a78f21a1054869352db31b4fa3aba0 to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-12-14[Glitch] Change default reply language to be default language when replying ↵Claire
to a translated reply Port f70bdba9264bd7c572cee3c45421733919b7d03c to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-12-14Merge branch 'main' into glitch-soc/merge-upstreamClaire
2022-12-13Add single splat to callback method definitions to avoid ArgumentError (#22246)zunda
It looks like a [bug](https://bugs.ruby-lang.org/issues/18633) around autosplat is [fixed](https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/fbaadd1cfe7fbfd1b904f193f99d7c845a6ed804) on ruby-3.2.0-rc1 and breaks a test (but not on ruby <= 3.1.3): ``` $ bundle exec rspec ./spec/controllers/api/v1/emails/confirmations_controller_spec.rb:41 : 1) Api::V1::Emails::ConfirmationsController#create with an oauth token from an app that created the account when the account is already confirmed but user changed e-mail and has not confirmed it returns http success Failure/Error: def email_changed(user, **) @resource = user @instance = Rails.configuration.x.local_domain return unless @resource.active_for_authentication? I18n.with_locale(locale) do mail to: @resource.email, subject: I18n.t('devise.mailer.email_changed.subject') end end ArgumentError: wrong number of arguments (given 2, expected 1) # ./app/mailers/user_mailer.rb:51:in `email_changed' # ./app/models/user.rb:444:in `render_and_send_devise_message' # ./app/models/user.rb:430:in `block in send_pending_devise_notifications' # ./app/models/user.rb:429:in `each' # ./app/models/user.rb:429:in `send_pending_devise_notifications' # ./spec/controllers/api/v1/emails/confirmations_controller_spec.rb:38:in `block (7 levels) in <top (required)>' ```
2022-12-13fix missing style in warning and strike cards (#22177)Rin
2022-12-13Make handle more easily selectable on profile page (#21479)cadars
* Make handle more easily selectable on profile page * Wrap handle in a span * Add `user-select: all` to span * remove whitespace
2022-12-13Change default reply language to be default language when replying to a ↵Claire
translated reply (#22272) Fixes #22250
2022-12-11Merge branch 'main' into glitch-soc/merge-upstreamClaire
2022-12-11Add noindex setting to Admin settings Discovery page (#22205)prplecake
* Add noindex setting to Admin settings Discovery page * Replace default_noindex i18n
2022-12-09[Glitch] Fix potential duplicate statuses in Explore tabClaire
Port c8a1faa86b2eb2e0350b384fe66431bec663fdae to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-12-09Merge branch 'main' into glitch-soc/mainClaire
2022-12-10New Crowdin updates (#21954)Eugen Rochko
* New translations en.json (Serbian (Cyrillic)) * New translations en.json (Serbian (Latin)) * New translations en.yml (Serbian (Latin)) * New translations simple_form.en.yml (Serbian (Latin)) * New translations activerecord.en.yml (Serbian (Latin)) * New translations doorkeeper.en.yml (Serbian (Latin)) * New translations devise.en.yml (Serbian (Latin)) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Chinese Traditional) * New translations en.json (Serbian (Latin)) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Icelandic) * New translations en.json (Serbian (Latin)) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Serbian (Latin)) * New translations en.json (Malay) * New translations en.json (Malay) * New translations activerecord.en.yml (Malay) * New translations devise.en.yml (Malay) * New translations en.yml (Malay) * New translations en.yml (Arabic) * New translations en.yml (Greek) * New translations en.yml (Galician) * New translations simple_form.en.yml (Malay) * New translations en.yml (Greek) * New translations en.yml (Russian) * New translations en.yml (Belarusian) * New translations en.yml (Greek) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Greek) * New translations en.json (Greek) * New translations en.yml (Greek) * New translations en.yml (Belarusian) * New translations doorkeeper.en.yml (Greek) * New translations en.yml (Greek) * New translations en.yml (Malay) * New translations simple_form.en.yml (Malay) * New translations en.json (Esperanto) * New translations en.yml (Malay) * New translations en.yml (Esperanto) * New translations devise.en.yml (Esperanto) * New translations en.yml (Vietnamese) * New translations simple_form.en.yml (Vietnamese) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Serbian (Latin)) * New translations en.yml (Belarusian) * New translations en.yml (Vietnamese) * New translations en.yml (Belarusian) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Serbian (Latin)) * New translations en.json (Occitan) * New translations en.json (Czech) * New translations en.yml (Hebrew) * New translations doorkeeper.en.yml (Spanish, Argentina) * New translations en.json (German) * New translations en.yml (Spanish, Argentina) * New translations en.json (German) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations en.json (German) * New translations en.json (Esperanto) * New translations en.yml (Esperanto) * New translations en.yml (Esperanto) * New translations en.yml (Thai) * New translations activerecord.en.yml (Scots) * New translations en.json (Scottish Gaelic) * New translations en.yml (Belarusian) * New translations en.yml (Belarusian) * New translations en.json (Latvian) * New translations en.json (Latvian) * New translations activerecord.en.yml (Latvian) * New translations devise.en.yml (Latvian) * New translations en.yml (Turkish) * New translations en.yml (Scottish Gaelic) * New translations en.yml (Danish) * New translations en.yml (Thai) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Thai) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.yml (German) * New translations en.yml (German) * New translations simple_form.en.yml (German) * New translations en.json (Kurmanji (Kurdish)) * New translations en.json (Kurmanji (Kurdish)) * New translations en.yml (Belarusian) * New translations en.yml (Kurmanji (Kurdish)) * New translations en.json (Latvian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations en.yml (Belarusian) * New translations en.yml (German) * New translations en.json (German) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations simple_form.en.yml (Spanish, Argentina) * New translations en.yml (German) * New translations en.json (German) * New translations en.yml (Spanish, Argentina) * New translations en.yml (Persian) * New translations en.json (Spanish, Mexico) * New translations en.yml (Belarusian) * New translations en.yml (German) * New translations en.json (Danish) * New translations en.yml (Danish) * New translations simple_form.en.yml (Scots) * New translations en.yml (Belarusian) * New translations en.yml (Danish) * New translations en.yml (Scots) * New translations simple_form.en.yml (Scots) * New translations en.json (Scots) * New translations devise.en.yml (Scots) * New translations doorkeeper.en.yml (Scots) * New translations en.yml (Greek) * New translations en.yml (Greek) * New translations en.yml (Belarusian) * New translations en.json (German) * New translations en.yml (Belarusian) * New translations en.yml (Spanish, Argentina) * New translations en.json (Spanish, Argentina) * New translations en.json (German) * New translations en.json (Esperanto) * New translations en.json (French) * New translations en.yml (Esperanto) * New translations en.yml (Belarusian) * New translations en.json (Esperanto) * New translations en.yml (Esperanto) * New translations en.yml (Belarusian) * New translations devise.en.yml (Esperanto) * New translations en.json (Slovak) * New translations en.yml (Slovak) * New translations activerecord.en.yml (Slovak) * New translations devise.en.yml (Slovak) * New translations doorkeeper.en.yml (Slovak) * New translations en.yml (Belarusian) * New translations en.yml (Slovak) * New translations en.yml (Belarusian) * New translations en.yml (Belarusian) * New translations en.json (Lithuanian) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations en.json (Esperanto) * New translations en.json (Vietnamese) * New translations en.yml (Belarusian) * New translations en.yml (Belarusian) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Belarusian) * New translations en.yml (Belarusian) * New translations en.yml (Latvian) * New translations en.yml (Belarusian) * New translations en.json (Welsh) * New translations en.yml (Welsh) * New translations simple_form.en.yml (Welsh) * New translations activerecord.en.yml (Welsh) * New translations devise.en.yml (Welsh) * New translations doorkeeper.en.yml (Welsh) * New translations en.json (Welsh) * New translations en.json (Welsh) * New translations en.yml (Welsh) * New translations en.yml (Hebrew) * New translations en.yml (Welsh) * New translations en.yml (Hebrew) * New translations en.yml (Russian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations simple_form.en.yml (Belarusian) * New translations en.yml (Ukrainian) * New translations en.json (Ukrainian) * New translations en.json (Chinese Simplified) * New translations en.json (Slovak) * New translations en.json (Slovak) * New translations en.yml (Slovak) * New translations en.yml (Belarusian) * normalize * New translations en.yml (Belarusian) * normalize Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-12-08initial translation of Glitch-specific texts into Czech (#1997)Michal Dvorak
2022-12-07Fix failure when “Require a reason to join” is set with open ↵Claire
registrations (#22127)
2022-12-07Fix potential duplicate statuses in Explore tab (#22121)Claire
2022-12-07[Glitch] Fix hidden overflow on interaction modalJuan Xavier Gomez
Port 21b208afcbb5b1a6f2f49eb6db478fc9a99ad272 to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-12-07[Glitch] Fix UI header overflow on mobileClaire
Port 76454cc63803f3619c6c2352abac9646004e32c4 to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-12-07[Glitch] Fix “Sign up” button with closed registrations not opening ↵Claire
modal on mobile Port 51098035ed2f42d949d6ec3f8ecdd5e68e73874d to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2022-12-07Merge branch 'main' into glitch-soc/merge-upstreamClaire
Conflicts: - `app/models/concerns/domain_materializable.rb`: Fixed a code style issue upstream in a PR that got merged in glitch-soc earlier. Changed the code to match upstream's.
2022-12-07Fix 500 error when trying to migrate to an invalid address (#21462)Claire
* Fix 500 error when trying to migrate to an invalid address * Add tests
2022-12-07Fix hidden overflow on interaction modal (#21763)Juan Xavier Gomez
* Fix hidden overflow on interaction modal * only update overflow y
2022-12-07Fix UI header overflow on mobile (#21783)Claire
2022-12-07Fix “Sign up” button with closed registrations not opening modal on ↵Claire
mobile (#22060) Fixes #20840
2022-12-07Log admin approve and reject account (#22088)Francis Murillo
* Log admin approve and reject account * Add unit tests for approve and reject logging
2022-12-07Fix unbounded recursion in account discovery (#22025)Claire
* Fix trying to fetch posts from other users when fetching featured posts * Rate-limit discovery of new subdomains * Put a limit on recursively discovering new accounts
2022-12-07Fix irreversible and whole_word parameters handling in /api/v1/filters (#21988)Claire
Fixes #21965
2022-12-06Fix the top border of verified account fields (#22006)Jed Fox
2022-12-04Fix unbounded recursion in account discovery (#1994)Claire
* Fix trying to fetch posts from other users when fetching featured posts * Rate-limit discovery of new subdomains * Put a limit on recursively discovering new accounts
2022-12-04Fix content-type being reset when editing toots (#1993)Claire
Fixes #1990
2022-12-04Merge branch 'main' into glitch-soc/merge-upstreamClaire
2022-12-04Fix spacing warning from ESLint (#22005)Nick Schonning
2022-12-02New Crowdin updates (#21599)Eugen Rochko
* New translations doorkeeper.en.yml (Esperanto) * New translations activerecord.en.yml (Spanish) * New translations activerecord.en.yml (Esperanto) * New translations doorkeeper.en.yml (Spanish) * New translations devise.en.yml (Spanish) * New translations devise.en.yml (Esperanto) * New translations en.json (Spanish) * New translations en.yml (Danish) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Faroese) * New translations en.yml (Faroese) * New translations en.json (German) * New translations en.yml (Faroese) * New translations simple_form.en.yml (Faroese) * New translations en.yml (Belarusian) * New translations en.yml (German) * New translations en.json (German) * New translations simple_form.en.yml (Faroese) * New translations en.yml (Belarusian) * New translations doorkeeper.en.yml (Belarusian) * New translations en.yml (German) * New translations en.json (Bulgarian) * New translations en.json (German) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Bulgarian) * New translations en.json (Belarusian) * New translations simple_form.en.yml (Belarusian) * New translations en.json (Czech) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Serbian (Cyrillic)) * New translations simple_form.en.yml (Faroese) * New translations devise.en.yml (Catalan) * New translations en.yml (German) * New translations en.json (Bulgarian) * New translations en.json (German) * New translations en.json (Catalan) * New translations en.yml (Catalan) * New translations en.json (Danish) * New translations en.json (Ukrainian) * New translations en.json (Galician) * New translations doorkeeper.en.yml (Catalan) * New translations simple_form.en.yml (German) * New translations en.json (Danish) * New translations en.yml (English, United Kingdom) * New translations simple_form.en.yml (Faroese) * New translations en.json (Danish) * New translations en.yml (Japanese) * New translations en.yml (German) * New translations en.json (Urdu (Pakistan)) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Faroese) * New translations en.yml (German) * New translations en.json (Urdu (Pakistan)) * New translations simple_form.en.yml (Faroese) * New translations simple_form.en.yml (Faroese) * New translations en.json (Scots) * New translations activerecord.en.yml (Scots) * New translations en.json (Finnish) * New translations en.json (Finnish) * New translations en.json (Asturian) * New translations en.yml (Asturian) * New translations simple_form.en.yml (Asturian) * New translations activerecord.en.yml (Asturian) * New translations devise.en.yml (Asturian) * New translations doorkeeper.en.yml (Asturian) * New translations en.yml (Belarusian) * New translations en.json (Romanian) * New translations en.json (Galician) * New translations en.yml (Galician) * New translations doorkeeper.en.yml (Romanian) * New translations doorkeeper.en.yml (Galician) * New translations activerecord.en.yml (Romanian) * New translations en.yml (Russian) * New translations en.yml (Estonian) * New translations en.yml (Estonian) * New translations devise.en.yml (Estonian) * New translations en.json (Czech) * New translations en.yml (Bulgarian) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Serbian (Cyrillic)) * New translations en.json (Galician) * New translations en.yml (Galician) * New translations en.json (Breton) * New translations simple_form.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Bulgarian) * New translations simple_form.en.yml (Galician) * New translations devise.en.yml (Italian) * New translations en.json (Bulgarian) * New translations en.yml (Bulgarian) * New translations simple_form.en.yml (Bulgarian) * New translations doorkeeper.en.yml (Bulgarian) * New translations devise.en.yml (Italian) * New translations en.json (Serbian (Cyrillic)) * New translations doorkeeper.en.yml (Italian) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Chinese Traditional, Hong Kong) * New translations en.yml (Chinese Traditional, Hong Kong) * New translations en.json (Serbian (Latin)) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations doorkeeper.en.yml (Italian) * New translations en.yml (Belarusian) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations en.yml (Belarusian) * New translations simple_form.en.yml (Serbian (Cyrillic)) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations simple_form.en.yml (Asturian) * New translations en.yml (Asturian) * New translations simple_form.en.yml (Asturian) * New translations en.json (Thai) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.yml (Thai) * New translations en.yml (Czech) * New translations en.json (Czech) * New translations simple_form.en.yml (Czech) * New translations doorkeeper.en.yml (Czech) * New translations en.yml (Belarusian) * New translations en.yml (Thai) * New translations en.json (English, United Kingdom) * New translations en.yml (Belarusian) * New translations en.yml (Thai) * New translations en.yml (Estonian) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.yml (German) * New translations en.json (Russian) * New translations en.yml (Icelandic) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations en.yml (Belarusian) * New translations en.yml (Thai) * New translations en.json (Esperanto) * New translations en.yml (Esperanto) * New translations simple_form.en.yml (Esperanto) * New translations en.yml (Thai) * New translations en.json (Esperanto) * New translations en.yml (Thai) * New translations en.yml (Belarusian) * New translations en.yml (Thai) * New translations en.json (Icelandic) * New translations en.yml (Icelandic) * New translations simple_form.en.yml (Icelandic) * New translations doorkeeper.en.yml (Icelandic) * New translations en.yml (Belarusian) * New translations activerecord.en.yml (Icelandic) * New translations devise.en.yml (Icelandic) * New translations en.yml (Thai) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.yml (Belarusian) * New translations en.yml (Thai) * New translations en.yml (Belarusian) * New translations en.json (Bulgarian) * New translations en.yml (Bulgarian) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Bulgarian) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Estonian) * New translations en.json (Ukrainian) * New translations en.yml (Estonian) * New translations en.json (Esperanto) * New translations en.yml (Estonian) * New translations en.yml (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Belarusian) * New translations en.yml (Belarusian) * New translations en.json (Persian) * New translations en.yml (Belarusian) * New translations en.json (Esperanto) * New translations en.json (Greek) * New translations en.json (Persian) * New translations en.json (Scots) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Thai) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.yml (German) * New translations en.json (German) * New translations en.json (Finnish) * New translations en.yml (Estonian) * New translations en.yml (German) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (German) * New translations simple_form.en.yml (Estonian) * New translations devise.en.yml (German) * New translations simple_form.en.yml (German) * New translations en.yml (Finnish) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations doorkeeper.en.yml (Estonian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.json (Spanish) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.yml (Thai) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations simple_form.en.yml (Icelandic) * New translations en.yml (German) * New translations en.yml (Ukrainian) * New translations en.json (Spanish, Mexico) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Spanish, Mexico) * New translations activerecord.en.yml (Spanish, Mexico) * New translations en.json (German) * New translations en.yml (Thai) * New translations en.json (Thai) * New translations en.json (Korean) * New translations en.json (Scottish Gaelic) * New translations en.yml (Scottish Gaelic) * New translations en.yml (Thai) * New translations en.yml (Japanese) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Belarusian) * New translations en.json (Estonian) * New translations en.yml (Estonian) * New translations simple_form.en.yml (Estonian) * New translations en.json (Serbian (Cyrillic)) * New translations en.json (Estonian) * New translations en.json (Serbian (Cyrillic)) * New translations en.yml (Italian) * New translations en.yml (Italian) * New translations en.json (Kurmanji (Kurdish)) * New translations en.yml (Spanish) * New translations en.yml (Spanish, Mexico) * New translations en.yml (Latvian) * New translations simple_form.en.yml (Latvian) * New translations en.yml (Belarusian) * New translations en.json (Serbian (Cyrillic)) * New translations simple_form.en.yml (Serbian (Cyrillic)) * normalize * New translations en.json (German) * New translations en.json (Serbian (Cyrillic)) Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-12-02Use a tree‐based approach for advanced text formatting (#1907)kibigo!
* Use a tree‐based approach for adv. text formatting Sanitizing HTML/Markdown means parsing the content into an HTML tree under‐the‐hood anyway, and it is more accurate to do mention/hashtag replacement on the text nodes in that tree than it is to try to hack it in with regexes et cetera. This undoes the overrides of `#entities` and `#rewrite` on `AdvancedTextFormatter` but also stops using them, instead keeping track of the parsed Nokogiri tree itself and using that in the `#to_s` method. Internally, this tree uses `<mastodon-entity>` nodes to keep track of hashtags, links, and mentions. Sanitization is moved to the beginning, so it should be known that these do not appear in the input. * Also disallow entities inside of `<code>` I think this is generally expected behaviour, and people are annoyed when their code gets turned into links/hashtags/mentions. * Minor cleanup to AdvancedTextFormatter * Change AdvancedTextFormatter to rewrite entities in one pass and sanitize at the end Also, minor refactoring to better match how other formatters are organized. * Add some tests Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2022-12-01Port navigation bar from upstream (#1986)Claire
Fixes #1977
2022-12-01Merge branch 'main' into glitch-soc/merge-upstreamClaire
2022-12-01Fix some performance issues with /admin/instances (#21907)Claire
/admin/instances?availability=failing remains wholly unefficient
2022-11-30Move translate button above media attachments/preview cardsClaire