about summary refs log tree commit diff
path: root/app/helpers
AgeCommit message (Collapse)Author
2020-10-12Add IP-based rules (#14963)Eugen Rochko
2020-10-08Remove dependency on goldfinger gem (#14919)Eugen Rochko
There are edge cases where requests to certain hosts timeout when using the vanilla HTTP.rb gem, which the goldfinger gem uses. Now that we no longer need to support OStatus servers, webfinger logic is so simple that there is no point encapsulating it in a gem, so we can just use our own Request class. With that, we benefit from more robust timeout code and IPv4/IPv6 resolution. Fix #14091
2020-09-01Bump rubocop from 0.86.0 to 0.88.0 (#14412)dependabot[bot]
* Bump rubocop from 0.86.0 to 0.88.0 Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.86.0 to 0.88.0. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.86.0...v0.88.0) Signed-off-by: dependabot[bot] <support@github.com> * Fix for latest RuboCop Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-06-25Add a visibility icon to status (#14123)Takeshi Umeda
* Add a visibility icon to status * Change to using the icon element * Fix RTL * Add a public globe
2020-06-25Fix various issues around OpenGraph representation of media (#14133)Eugen Rochko
- Fix audio attachments not being represented in OpenGraph tags - Fix audio being represented as "1 image" in OpenGraph descriptions - Fix video metadata being overwritten by paperclip-av-transcoder - Fix embedded player not using Mastodon's UI - Fix audio/video progress bars not moving smoothly - Fix audio/video buffered bars not displaying correctly
2020-06-09Fix performance of follow import (#13836)Takeshi Umeda
2020-06-09Add visibility parameter in share page (#13023)Takeshi Umeda
* Add visibility parameter in share page * Restrict to default privacy
2020-05-10Refactor monkey-patching of Goldfinger (#12561)Eugen Rochko
2020-05-10Add `vi` to available locales (#13542)taicv
* Enable selecting Vietnamese language in Admin Dashboard * Update settings_helper.rb Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2020-05-03Fix use of inline CSS in public pages (#13576)ThibG
Change `account_link_to` to use an image tag rather than some inline CSS. Dropped the `size` parameter in the process, but it wasn't used for anything except the default value of 36px. Dropped CSS rules that were always overriden, and defaulted to 36px width and height instead.
2020-04-20Allow users to delete their header and avatar (#13234)sternenseemann
This is achieved by sending a DELETE request to /settings/profile/pictures/{avatar,header} via a link that is part of the upload form's hint of the respective picture.
2020-04-17Fix admin actions log crash when displaying updates of deleted announcements ↵ThibG
(#13489) Fixes #13487
2020-04-03Add ability to filter audit log in admin UI (#13381)Eugen Rochko
2020-03-08Add ability to delete files uploaded for settings in admin UI (#13192)ThibG
* Allow deleting site uploads * Refactor and move links into hints * Fix i18n tests * Fix HTML output of site_upload_delete_hint
2020-02-03Fix punycode being rendered instead of unicode in some places (#13030)Eugen Rochko
2020-01-26Add kabyle language to Mastodon (#12962)ButterflyOfFire
* Add kabyle language to settings_helper * Adding kabyle language to application.rb
2020-01-23Add announcements (#12662)Eugen Rochko
* Add announcements Fix #11006 * Add reactions to announcements * Add admin UI for announcements * Add unit tests * Fix issues - Add `with_dismissed` param to announcements API - Fix end date not being formatted when time range is given - Fix announcement delete causing reactions to send streaming updates - Fix announcements container growing too wide and mascot too small - Fix `all_day` being settable when no time range is given - Change text "Update" to "Announcement" * Fix scheduler unpublishing announcements before they are due * Fix filter params not being passed to announcements filter
2020-01-20Various fixes and improvements (#12878)Eugen Rochko
* Fix unused role routes being generated * Remove unused JavaScript code * Refactor filters code to be DRYer * Fix `.count == 0` comparisons to `.empty?` in views * Fix filters in views
2020-01-18Add is to available locales (#12882)Eugen Rochko
Fix #12869
2020-01-11Fix ruby 2.7 warnings about keyword parameters (#12824)ThibG
2020-01-11Clarify keyword arguments with ** (#12769)Daigo 3 Dango
This change is to suppress the warning below on on ruby-2.7.0: - warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
2019-12-30Fix IDN mentions not being processed, IDN domains not being rendered (#12715)Eugen Rochko
This changes the REST API to return unicode domains in the `acct` attribute instead of punycode, and to render unicode instead of punycode on public HTML pages as well. Fix #7812, fix #12246
2019-12-05Remove some duplicate methods from StatusHelper and reflect changes to ↵Takeshi Umeda
AccountHelper (#12545)
2019-12-04Add basic support for group actors (#12071)Takeshi Umeda
* Show badge on group actor in WebUI * Do not notify in case of by following group actor * If you mention group actor, also mention group actor followers * Relax characters that can be used in username (same as Application) * Revert "Relax characters that can be used in username (same as Application)" This reverts commit 7e10a137b878d0db1b5252c52106faef5e09ca4b. * Delete display_name method
2019-11-30Add ability to filter reports by target account domain (#12154)ThibG
* Add ability to filter reports by target account domain * Reword by_target_domain label
2019-11-21Fix whitelist federation for subdomains (#12435)noiob
2019-11-13Add kn, mr, ur to available locales (#12379)Eugen Rochko
2019-11-11Fix broken admin audit log in whitelist mode (#12303)ThibG
2019-10-24Split AccountsHelper from StatusesHelper (#12078)Takeshi Umeda
2019-10-03Add br, es-AR, et, mk, nn to available locales (#12062)Eugen Rochko
2019-09-19Add account migration UI (#11846)Eugen Rochko
Fix #10736 - Change data export to be available for non-functional accounts - Change non-functional accounts to include redirecting accounts
2019-09-16New Crowdin translations (#11799)Eugen Rochko
* New translations doorkeeper.en.yml (Hungarian) [ci skip] * New translations doorkeeper.en.yml (Ido) [ci skip] * New translations doorkeeper.en.yml (Indonesian) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Kazakh) [ci skip] * New translations simple_form.en.yml (Asturian) [ci skip] * New translations simple_form.en.yml (Arabic) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Kazakh) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations en.json (Lithuanian) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.json (Ido) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.json (Hungarian) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (Georgian) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations simple_form.en.yml (Albanian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Croatian) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Ido) [ci skip] * New translations doorkeeper.en.yml (Estonian) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations simple_form.en.yml (Norwegian Nynorsk) [ci skip] * New translations activerecord.en.yml (Norwegian Nynorsk) [ci skip] * New translations devise.en.yml (Norwegian Nynorsk) [ci skip] * New translations doorkeeper.en.yml (Norwegian Nynorsk) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.json (Breton) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations doorkeeper.en.yml (Breton) [ci skip] * New translations devise.en.yml (Breton) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations en.yml (Breton) [ci skip] * New translations activerecord.en.yml (Breton) [ci skip] * New translations devise.en.yml (Asturian) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations activerecord.en.yml (Asturian) [ci skip] * New translations devise.en.yml (Russian) [ci skip] * New translations activerecord.en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations devise.en.yml (Norwegian) [ci skip] * New translations activerecord.en.yml (Norwegian) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations devise.en.yml (Serbian (Latin)) [ci skip] * New translations devise.en.yml (Ukrainian) [ci skip] * New translations activerecord.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations devise.en.yml (Slovak) [ci skip] * New translations activerecord.en.yml (Slovak) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations activerecord.en.yml (Serbian (Latin)) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations devise.en.yml (Serbian (Cyrillic)) [ci skip] * New translations activerecord.en.yml (Serbian (Cyrillic)) [ci skip] * New translations activerecord.en.yml (Indonesian) [ci skip] * New translations devise.en.yml (Georgian) [ci skip] * New translations activerecord.en.yml (Georgian) [ci skip] * New translations en.json (Georgian) [ci skip] * New translations devise.en.yml (Croatian) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations devise.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations activerecord.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations devise.en.yml (Bulgarian) [ci skip] * New translations activerecord.en.yml (Bulgarian) [ci skip] * New translations en.json (Lithuanian) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations devise.en.yml (Indonesian) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations devise.en.yml (Ido) [ci skip] * New translations en.json (Ido) [ci skip] * New translations devise.en.yml (Hebrew) [ci skip] * New translations activerecord.en.yml (Hebrew) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Danish) [ci skip] * i18n-tasks normalize * yarn manage:translations
2019-09-16Add search and sort functions to hashtag admin UI (#11829)mayaeh
* Add search and sort functions to hashtag admin UI * Move scope processing from tags_controller to tag_filter * Fix based on method naming conventions * Fixed not to get 500 errors for invalid requests
2019-09-13Fix name of Portuguese language not including Portugal (#11820)Eugen Rochko
Fix #11602
2019-09-10Change /admin/custom_emoji to honor the auto_play_gif setting (#11801)ThibG
Fixes #9535
2019-09-03Change OpenGraph description on sign-up page to reflect invite (#11744)Eugen Rochko
2019-08-30Change layout of public profile directory to be the same as in web UI (#11705)Eugen Rochko
2019-08-16Fix blurhash and autoplay not working on public pages (#11585)Eugen Rochko
2019-08-05Change admin UI for hashtags and add back whitelisted trends (#11490)Eugen Rochko
Fix #271 Add back the `GET /api/v1/trends` API with the caveat that it does not return tags that have not been allowed to trend by the staff. When a hashtag begins to trend (internally) and that hashtag has not been previously reviewed by the staff, the staff is notified. The new admin UI for hashtags allows filtering hashtags by where they are used (e.g. in the profile directory), whether they have been reviewed or are pending reviewal, they show by how many people the hashtag is used in the directory, how many people used it today, how many statuses with it have been created today, and it allows fixing the name of the hashtag to make it more readable. The disallowed hashtags feature has been reworked. It is now controlled from the admin UI for hashtags instead of from the file `config/settings.yml`
2019-07-30Add whitelist mode (#11291)Eugen Rochko
2019-07-28Bump json-ld-preloaded from 3.0.2 to 3.0.3 (#11316)dependabot-preview[bot]
* Bump json-ld-preloaded from 3.0.2 to 3.0.3 Bumps [json-ld-preloaded](https://github.com/ruby-rdf/json-ld-preloaded) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/ruby-rdf/json-ld-preloaded/releases) - [Commits](https://github.com/ruby-rdf/json-ld-preloaded/compare/3.0.2...3.0.3) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> * use json-ld edge
2019-07-11Add HTTP signatures to all outgoing ActivityPub GET requests (#11284)Eugen Rochko
2019-07-10Refactor fetching of remote resources (#11251)Eugen Rochko
2019-07-09Refactor domain block checks (#11268)Eugen Rochko
2019-07-07Remove Atom feeds and old URLs in the form of `GET /:username/updates/:id` ↵Eugen Rochko
(#11247)
2019-06-08Change full logo to use primary text color of the given theme (#10994)Eugen Rochko
* Change full logo to use primary text color of the given theme * Fix colors of public layout header in light theme
2019-05-27Use `<use />` to render transparent SVG logo instead of inserting it (#10845)Eugen Rochko
2019-04-10Add invite request to pending account notification e-mail (#10528)Eugen Rochko
Fix sorting of the pending accounts page
2019-04-07Improve blocked view of profiles (#10491)Eugen Rochko
* Revert "Fix filtering of favourited_by, reblogged_by, followers and following (#10447)" This reverts commit 120544067fcca4bf6e71ba1ffb276c451c17c656. * Revert "Hide blocking accounts from blocked users (#10442)" This reverts commit 62bafa20a112ccdddaedb25723fc819dbbcd8e9a. * Improve blocked view of profiles - Change "You are blocked" to "Profile unavailable" - Hide following/followers in API when blocked - Disable follow button and show "Profile unavailable" on public profile as well
2019-03-28Rename :poll to :preloadable_poll and :owned_poll to :poll on Status (#10401)Eugen Rochko
Also, fix some n+1 queries Resolve #10365