about summary refs log tree commit diff
path: root/app
AgeCommit message (Collapse)Author
2021-11-25Merge branch 'main' into glitch-soc/merge-upstreamClaire
Conflicts: - `app/views/admin/tags/index.html.haml`: Removed upstream while it had changes in glitch-soc to accomodate for the theming system. Additional changes to accomodate for the theming system: - `app/views/admin/trends/links/preview_card_providers/index.html.haml` - `app/views/admin/trends/links/index.html.haml` - `app/views/admin/trends/tags/index.html.haml` - `app/views/admin/tags/show.html.haml`
2021-11-25Fix handling of recursive toots in WebUI (#17041)Claire
2021-11-25Fix filtering DMs from non-followed users (#17042)Claire
2021-11-25Merge branch 'main' into glitch-soc/merge-upstreamClaire
2021-11-25Add trending links (#16917)Eugen Rochko
* Add trending links * Add overriding specific links trendability * Add link type to preview cards and only trend articles Change trends review notifications from being sent every 5 minutes to being sent every 2 hours Change threshold from 5 unique accounts to 15 unique accounts * Fix tests
2021-11-24Fix error when suspending user with an already-existing canonical email ↵Claire
block (#17036) * Fix error when suspending user with an already-existing canonical email block Fixes #17033 While attempting to create a `CanonicalEmailBlock` with an existing hash would raise an `ActiveRecord::RecordNotUnique` error, this being done within a transaction would cancel the whole transaction. For this reason, checking for uniqueness in Rails would query the database within the transaction and avoid invalidating the whole transaction for this reason. A race condition is still possible, where multiple accounts sharing a canonical email would be blocked in concurrent transactions, in which only one would succeed, but that is way less likely to happen that the current issue, and can always be retried after the first failure, unlike the current situation. * Add tests
2021-11-19[Glitch] Fix overflow of long profile fields in admin viewClaire
Port db32835338e113f23a474d323e398916a999619f to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2021-11-19Merge branch 'main' into glitch-soc/merge-upstreamClaire
2021-11-19Fix overflow of long profile fields in admin view (#17010)Claire
2021-11-19Fix background-color of emoji-mart selector (#17011)Claire
Reverts part of #16907 to fix hardcoded color
2021-11-18Bump chewy from 5.2.0 to 7.2.3 (supports Elasticsearch 7.x) (#16915)Takeshi Umeda
* Bump chewy from 5.2.0 to 7.2.2 * fix style (codeclimate) * fix style * fix style * Bump chewy from 7.2.2 to 7.2.3
2021-11-18Add lazy load to emoji-mart (#16907)Mashiro
* perf: lazyload emoji-mart! * Bump lazyload
2021-11-14Fix confusing error when webfinger request returns empty document (#16986)Claire
For some reason, some misconfigured servers return an empty document when queried over webfinger. Since an empty document does not lead to a parse error, the error is not caught properly and triggers uncaught exceptions later on. This PR fixes that by immediately erroring out with `Webfinger::Error` on getting an empty response.
2021-11-13Fix no link previews being generated for pages with invalid structured data ↵Eugen Rochko
(#16979) Fix #16955
2021-11-13Merge branch 'main' into glitch-soc/merge-upstreamClaire
2021-11-13Fix OpenGraph/LinkedData embeds having incorrectly-generated iframes (#16978)Claire
2021-11-12Rename, move, fix codeJeong Arm
2021-11-12Fix admin sidebar on Mobile layoutJeong Arm
2021-11-12Fix some glitch-soc styling issues due to different class namesClaire
Partial fix to #1629
2021-11-06Merge branch 'main' into glitch-soc/merge-upstreamClaire
2021-11-06Fix reviving revoked sessions and invalidating login (#16943)Claire
Up until now, we have used Devise's Rememberable mechanism to re-log users after the end of their browser sessions. This mechanism relies on a signed cookie containing a token. That token was stored on the user's record, meaning it was shared across all logged in browsers, meaning truly revoking a browser's ability to auto-log-in involves revoking the token itself, and revoking access from *all* logged-in browsers. We had a session mechanism that dynamically checks whether a user's session has been disabled, and would log out the user if so. However, this would only clear a session being actively used, and a new one could be respawned with the `remember_user_token` cookie. In practice, this caused two issues: - sessions could be revived after being closed from /auth/edit (security issue) - auto-log-in would be disabled for *all* browsers after logging out from one of them This PR removes the `remember_token` mechanism and treats the `_session_id` cookie/token as a browser-specific `remember_token`, fixing both issues.
2021-11-06Fix AccountNote not having a maximum length (#16942)Claire
2021-11-05Add support for structured data and more OpenGraph tags to link cards (#16938)Eugen Rochko
Save preview cards under their canonical URL Increase max redirects to follow from 2 to 3
2021-11-05Fix handling announcements with links (#16941)Claire
Broken since #15827
2021-11-04Fix statuses order in account's statuses admin page (#16937)Jeong Arm
2021-10-28ran `yarn manage:translations en` (#16912)mayaeh
2021-10-25[Glitch] Split context for filter bar and unread markersSasha Sorokin
Port 11d4f9eefc7b40df84baceff9b2e0747887b23ec to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2021-10-25[Glitch] Enhance dashboard stylesMashiro
Port b58d32cfe259d95ef28a61cbd863336350f2a3d9 to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2021-10-25Merge branch 'main' into glitch-soc/merge-upstreamClaire
Conflicts: - `.env.production.sample`: Upstream added new configuration options, uncommented by default. Commented them. - `Gemfile.lock`: Upstream updated dependencies textually close to glitch-soc-specific dependencies. Updated those upstream dependencies.
2021-10-25Split context for filter bar and unread markers (#16865)Sasha Sorokin
On notifications page, in settings, "Show" for quick filter bar and unread notifications markers use the same string, while being placed in the separate contexts - under different settings categories. This commit splits the contexts, creating new strings: - "Show filter bar" in place of "Show" for filter bar; - "Highlight unread notifications" in place of "Show" for unread notification markers, which are now simply called "Highlighting"; - There's also "Unread notifications" in place of "Unread notification markers" string to accompany the changes to "Show" string under that category. All new strings have new IDs, which will cause previous strings to invalidate on the next translation update and new strings to be created. This will help Mastodon translators to know that there are changes and improve translation in accordance to the source string update.
2021-10-24translation glitch's web interface [ja]atsu1125
Squashed commit of the following: commit f8c339b4dafd7347c5e824191dbf28d770d6583d Author: atsuchan <83960488+atsu1125@users.noreply.github.com> Date: Sat Oct 23 20:24:28 2021 +0900 translation glitch's web interface [ja] commit a9520d5c5fb21490fa66c51bf1063f1edb9150ff Author: atsu1125 <mastodon@atsuchan.page> Date: Sat Oct 23 15:21:55 2021 +0900 translation glitch's web interface [ja] commit 699848f2abff24be149c4a1c623df8b920ef2ed9 Author: atsu1125 <mastodon@atsuchan.page> Date: Sat Oct 23 13:23:39 2021 +0900 translation glitch's web interface [ja]
2021-10-21Fix some link previews being incorrectly generated from other prior links ↵Claire
(#16885) * Add tests * Fix some link previews being incorrectly generated from different prior links PR #12403 added a cache to avoid redundant queries when the OEmbed endpoint can be guessed from the URL. This caching mechanism is not perfectly correct as there is no guarantee that all pages from a given domain share the same OEmbed provider endpoint. This PR prevents the FetchOEmbedService from caching OEmbed endpoint that cannot be generalized by replacing a fully-qualified URL from the endpoint's parameters, greatly reducing the number of incorrect cached generalizations.
2021-10-21Enhance dashboard styles (#16884)Mashiro
* Display sparkline graph on Chrome * Heatmap auto overflow * Change grid columns number on small screen * Please codeclimate bot * Remove graph height
2021-10-21Add support for fetching Create and Announce activities by URI (#16383)Claire
* Add support for fetching Create and Announce activities by URI This should improve compatibility with ZAP and offer a way to fetch boosts, which is currently not possible. * Add tests
2021-10-20translation glitch's client setting interface [ja]atsu1125
2021-10-18Add remove from followers api (#16864)Takeshi Umeda
* Add followed_by? to account_interactions * Add RemoveFromFollowersService * Fix AccountBatch to use RemoveFromFollowersService * Add remove from followers API
2021-10-17New Crowdin updates (#16354)Eugen Rochko
* New translations en.json (Latvian) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations simple_form.en.yml (Breton) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.json (Icelandic) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations devise.en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations devise.en.yml (Chinese Simplified) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations activerecord.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations doorkeeper.en.yml (Latvian) [ci skip] * New translations devise.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations simple_form.en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Armenian) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Sinhala) [ci skip] * New translations en.yml (Sardinian) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Vietnamese) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations en.yml (Spanish, Argentina) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Norwegian Nynorsk) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.json (Norwegian Nynorsk) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations en.yml (Asturian) [ci skip] * New translations en.yml (Scottish Gaelic) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.json (Kurmanji (Kurdish)) [ci skip] * New translations en.yml (Kurmanji (Kurdish)) [ci skip] * New translations en.json (Sorani (Kurdish)) [ci skip] * New translations en.yml (Breton) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Tatar) [ci skip] * New translations en.yml (Malayalam) [ci skip] * New translations en.yml (Sorani (Kurdish)) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Kabyle) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Kurmanji (Kurdish)) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Kurmanji (Kurdish)) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Kurmanji (Kurdish)) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Kurmanji (Kurdish)) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations devise.en.yml (French) [ci skip] * Run `i18n-tasks normalize` * Run `yarn manage:translations` * Trim unnecessary line breaks Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2021-10-14Merge branch 'main' into glitch-soc/merge-upstreamClaire
2021-10-14Fix retention rate computation (#16854)Claire
2021-10-14Merge branch 'main' into glitch-soc/merge-upstreamClaire
Conflicts: - `README.md`: Upstream added some documentation in the README, but our README is pretty different and barebone. Kept our README.
2021-10-14[Glitch] Add graphs and retention metrics to admin dashboard (#16829)Eugen Rochko
Port 07341e7aa60fe7c7d4f298136af99276820940e7 to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2021-10-14Merge branch 'main' into glitch-soc/merge-upstreamClaire
Conflicts: - `app/controllers/admin/dashboard_controller.rb`: Upstream completely redesigned the admin dashboard. glitch-soc tracked extra features, but that list is gone. Followed upstram. - `app/views/admin/dashboard/index.html.haml` Upstream completely redesigned the admin dashboard. glitch-soc tracked extra features, but that list is gone. Followed upstram.
2021-10-14Allow keeping only 1 boosts/favs on auto deleting posts (#16653)Jeong Arm
* Allow keeping 1 boosts/favs on auto deleting posts * Fix tests
2021-10-14Minor memory optimizations (#16507)Claire
Reduce constant memory usage by ~100kB and further reduce boot-up memory allocations and temporary memory use by a further ~200kB.
2021-10-14Add font-display to display text before loading (#16330)Jeong Arm
2021-10-14Add Northern Kurdish locale as requested by translator. It already has a ↵gunchleoc
project started on Crowdin. (#16548)
2021-10-14Fix 404 error when filtering admin action logs by non-existent target ↵Claire
account (#16643) Currently, there is no way for an admin to delete an account record. However, should that happen in the future, or should an admin mistype an account id, `/admin/action_logs?target_account_id=<non-existent-account-id>` currently returns a 404 instead of an empty list. With this commit, the aforementioned page returns a correct list instead (potentially non-empty if the account has been manually deleted)
2021-10-14Add graphs and retention metrics to admin dashboard (#16829)Eugen Rochko
2021-10-14Fix scheduled statuses decreasing statuses counts (#16791)Claire
* Add tests * Fix scheduled statuses decreasing statuses counts Fixes #16774
2021-10-13[Glitch] Add single option votes tooltip in pollsSasha Sorokin
Port 89b5071fde2f111eaa53ce404712423de25a593d to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>