Commit graph

6897 commits

Author SHA1 Message Date
Thibaut Girka
93e6984be8 Make active bookmarks red (fixes #493) 2018-05-31 14:39:48 +02:00
Thibaut Girka
37dc96b71b Use history.state to decide whether we should goBack() or go to / (fixes #247)
So far, glitch-soc used history.length to decide whether to call `goBack()` or
go to / in order to not leave the webUI. This made clicking the “Back” button
go to the “Getting started” column instead of going back in the browser's
history when such an action would leave the web UI, but also when:
- The WebUI is refreshed (F5)
- A tab is restored
- The history length reaches its maximum (e.g., 50 in Firefox)

This commit fixes these shortcomings by checking `window.history.state`.
Indeed, we only want to go back in the browser's history when the current
location has been reached from within the WebUI, which only happens via
`pushState` as far as I know. Since browser store the serialized state in
the browser history, this also survives page reload and session restoration.
2018-05-31 14:39:02 +02:00
Thibaut Girka
fa980f2c95 Use props.router instead of context.router, as we are using withRouter 2018-05-31 14:39:02 +02:00
Thibaut Girka
574e74bbdd Hardcode default skin/theme in error layout (fixes #373)
This is a bit hackish. The best way would simply to somehow
use Mastodon's ApplicationController with `use_pack 'error'` from
the Rake task, but I'm not sure how to do that.
2018-05-31 14:38:48 +02:00
Thibaut Girka
0174ca8679 Prevent a rare crash when a status' root node is undefined 2018-05-31 14:38:29 +02:00
Thibaut Girka
663c9dcf36 Fix direct timeline 2018-05-31 14:37:13 +02:00
Yamagishi Kazutoshi
4c11c429ce Weblate translations (2018-05-31) (#7681)
* Translated using Weblate (Basque)

Currently translated at 100.0% (2 of 2 strings)

Translation: Mastodon/Activerecord
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/activerecord/eu/

* Translated using Weblate (Corsican)

Currently translated at 100.0% (76 of 76 strings)

Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/co/

* Translated using Weblate (Italian)

Currently translated at 100.0% (66 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/it/

* Translated using Weblate (Galician)

Currently translated at 100.0% (621 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/gl/

* Translated using Weblate (Basque)

Currently translated at 99.3% (297 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/

* Translated using Weblate (Basque)

Currently translated at 55.2% (42 of 76 strings)

Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/

* Translated using Weblate (Basque)

Currently translated at 8.5% (53 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Basque)

Currently translated at 9.0% (56 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Finnish)

Currently translated at 98.9% (296 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/

* Translated using Weblate (Finnish)

Currently translated at 98.9% (296 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/

* Translated using Weblate (Finnish)

Currently translated at 98.9% (296 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/

* Translated using Weblate (Corsican)

Currently translated at 100.0% (66 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/co/

* Translated using Weblate (Corsican)

Currently translated at 99.6% (619 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/co/

* Translated using Weblate (Corsican)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/co/

* Translated using Weblate (Corsican)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/co/

* Translated using Weblate (Basque)

Currently translated at 41.3% (257 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (66 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (62 of 62 strings)

Translation: Mastodon/Devise
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/eu/

* Translated using Weblate (Basque)

Currently translated at 56.5% (43 of 76 strings)

Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/

* Translated using Weblate (Arabic)

Currently translated at 90.8% (564 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/

* Translated using Weblate (German)

Currently translated at 96.9% (64 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/de/

* Translated using Weblate (German)

Currently translated at 98.4% (65 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/de/

* Translated using Weblate (Basque)

Currently translated at 42.9% (267 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Italian)

Currently translated at 100.0% (66 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/it/

* Translated using Weblate (Italian)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/it/

* Translated using Weblate (Basque)

Currently translated at 71.0% (54 of 76 strings)

Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/

* Translated using Weblate (Slovak)

Currently translated at 95.3% (592 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/

* Translated using Weblate (Basque)

Currently translated at 43.8% (272 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ja/

* Translated using Weblate (Basque)

Currently translated at 100.0% (76 of 76 strings)

Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (76 of 76 strings)

Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (66 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (62 of 62 strings)

Translation: Mastodon/Devise
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (621 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (621 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Basque)

Currently translated at 100.0% (621 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (66 of 66 strings)

Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/sk/

* Translated using Weblate (Slovak)

Currently translated at 95.3% (592 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.5% (618 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/pt_BR/

* Translated using Weblate (Portuguese)

Currently translated at 83.7% (520 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/pt/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ja/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sk/

* Translated using Weblate (Arabic)

Currently translated at 91.9% (571 of 621 strings)

Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/

* yarn manage:translations && i18n-tasks noramlize && i18n-tasks remove-unused

* remove body_html: ''

* Translated using Weblate (Galician)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/gl/

* Translated using Weblate (Basque)

Currently translated at 100.0% (299 of 299 strings)

Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/

* yarn manage:translations
2018-05-31 13:00:40 +02:00
Marcin Mikołajczak
069bb3eeeb 🌍: 🇵🇱⬆️ (#7679)
* 🌍: 🇵🇱⬆️

Signed-off-by: Marcin Mikołajczak <me@m4sk.in>

* yarn manage:translations
2018-05-31 11:15:38 +09:00
Jenkins
a76f40890e Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master 2018-05-31 01:17:25 +00:00
Eugen Rochko
40ed681914 Fix nil error in migration (#7680)
Under rare circumstances the user record could have already been deleted before...
2018-05-31 02:30:37 +02:00
Eugen Rochko
49a0a3a8a2 Speed up some rake tasks by moving execution to Sidekiq (#7678)
* Speed up some rake tasks by moving execution to Sidekiq

mastodon:media:remove_silenced
mastodon:media:remove_remote
mastodon:media:redownload_avatars
mastodon:feeds:build

* Fix code style issue
2018-05-30 21:09:30 +02:00
Eugen Rochko
eebe7fb2d5 Bump version to 2.4.1rc1 2018-05-30 19:16:41 +02:00
Eugen Rochko
d60a87d3d2 Redirect / to home on mobile layout, to getting started on desktop (#7677) 2018-05-30 18:42:06 +02:00
Eugen Rochko
931c88b0aa Improve getting started column (#7676)
* Adjust footer of getting started column

- Improved style
- Moved hotkeys, about this instance and logout to footer
- Removed FAQ, User Guide, Apps links
- Use hamburger icon for the column

* Add edit profile action button to profile and more to dropdown

* Add "Trending now" to getting started column

* Add preferences/security links on mobile layout
2018-05-30 18:41:47 +02:00
Yamagishi Kazutoshi
abda29af50 Fix broken migrate (regression from #7658) (#7674) 2018-05-30 09:39:52 +02:00
Eugen Rochko
2ba4e0bf1a Deduplicate accounts and make unique username/domain index case-insensitive (#7658)
Fix #6937
Fix #6837
Fix #6667
2018-05-30 02:51:26 +02:00
Eugen Rochko
9e3f9b8250 Improve counter caches on Status and Account (#7644)
Do not touch statuses_count on accounts table when mass-destroying
statuses to reduce load when removing accounts, same for
reblogs_count and favourites_count

Do not count statuses with direct visibility in statuses_count

Fix #828
2018-05-30 02:50:23 +02:00
Eugen Rochko
dc7bf28635 Reduce wasted work in RemoveStatusService due to inactive followers (#7672) 2018-05-29 22:55:33 +02:00
Thibaut Girka
06a6f1759e [Glitch] Fix low-contrasted cancel button of reply indicator
Port 63f6da9a9d to glitch-soc
2018-05-29 21:25:47 +02:00
Thibaut Girka
febaae28f4 [Glitch] Improve load gap styling in web UI
Port 93a1afb66c to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
14961cc8ee [Glitch] Use randomized setTimeout when fallback-polling and re-add since_id
Port 4b5cde3f2d to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
44e534c1a5 [Glitch] Do not crash in getStatusIds when there is a gap in the timeline
Port 8ccc863ae8 to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
d73c0e14b0 [Glitch] Fix gap insertion for timeline disconnection
Port 575c5753e4 to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
d7aac92316 [Glitch] Fix ID duplication in timelines
Port 33a8c3ab6c to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
27cf820859 [Glitch] Fix comparing id
Port 9dff61a5ba to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
54c32199af [Glitch] Fix LoadMore on account media gallery
Port 2111defbbf to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
f4a929a74a [Glitch] Add missing null handling in notification reducer
Port 9487e8a4c0 to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
7096611df6 [Glitch] Allow clients to fetch notifications made while they were offline
Port 9eaa47845c to glitch-soc
2018-05-29 21:25:28 +02:00
Thibaut Girka
7a953db0b6 [Glitch] Allow clients to fetch statuses made while they were offline
Port 34cb1a5461 to glitch-soc
2018-05-29 21:25:28 +02:00
unarist
a5c740ba41 Fix context building in the reducer (#7671)
This fixes below bugs:

* addReply() had used native compare operator for string ids
  => descendants may appears at wrong position
* CONTEXT_FETCH_SUCCESS had added the focused status as the reply of the *first* status in ancestors, not last status.
  => descendants may also appears wrong position as well as correct position
* TIMELINE_UPDATE had added the status to replies of *itself* instead of replied status
  => browser will hangs if you open the status due to a circular reference
2018-05-29 17:42:29 +02:00
Thibaut Girka
6a0f32b359 Fix error when unmuting a domain without listing muted domains first 2018-05-29 16:26:39 +02:00
ThibG
a7415de00d Fix error when unmuting a domain without listing muted domains first (#7670) 2018-05-29 16:25:05 +02:00
David Yip
88d1061b85 Merge pull request #525 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
2018-05-29 09:06:00 -05:00
Thibaut Girka
c822ecfa01 Merge branch 'master' into glitch-soc/merge-upstream 2018-05-29 13:52:26 +02:00
abcang
f0ee3f8f8a Fix N+1 on AtomSerializer (#7669) 2018-05-29 13:34:02 +02:00
Yamagishi Kazutoshi
7e042c97d1 Use URL polyfill (#7664) 2018-05-29 13:33:20 +02:00
Eugen Rochko
744d47dee2 Add GET /api/v2/search which returns rich tag objects, adjust web UI (#7661) 2018-05-29 02:01:24 +02:00
Eugen Rochko
bc464619f3 Always display tab navigation on local/federated timeline even when empty (#7663)
Fix #7659
2018-05-29 02:01:04 +02:00
Eugen Rochko
776b996964 Rescue Mastodon::DimensionsValidationError in Remoteable (#7662)
Fix #7660
2018-05-29 08:39:02 +09:00
Akihiko Odaki
0cb1524dc1 Cache attachments on external host with service worker (#7493) 2018-05-29 00:43:47 +02:00
takayamaki
5a242be7ec fix: Don't validate MX record in development (#7654) 2018-05-28 19:14:24 +02:00
Lynx Kotoura
49ee254971 Fix embed, error and onboarding modals in light theme (#7656) 2018-05-28 19:13:20 +02:00
Eugen Rochko
bc64ef560e Fix incomplete flex style on trends items (#7655) 2018-05-28 19:12:53 +02:00
Shuhei Kitagawa
8bf3eb0571 Add a test for emojis_controller (#7652) 2018-05-28 22:56:58 +09:00
tateisu
9a4bed4837 optimize direct timeline (#7614)
* optimize direct timeline

* fix typo in class name

* change filter condition for direct timeline

* fix codestyle issue

* revoke index_accounts_not_silenced because direct timeline does not use it.

* revoke index_accounts_not_silenced because direct timeline does not use it.

* fix rspec test condition.

* fix rspec test condition.

* fix rspec test condition.

* revoke adding column and partial index

* (direct timeline) move merging logic to model

* fix pagination parameter

* add method arguments that switches return array of status or cache_ids

* fix order by

* returns ActiveRecord.Relation in default behavor

* fix codestyle issue
2018-05-28 11:04:06 +02:00
Eugen Rochko
adeb99bc8c Record trending tags from ActivityPub, too (#7647) 2018-05-28 12:21:04 +09:00
Eugen Rochko
20a23c7d08 Replace recursion in status mapStateToProps (#7645) 2018-05-28 02:42:06 +02:00
Eugen Rochko
8a3b9d26fb Track trending tags (#7638)
* Track trending tags

- Half-life of 1 day
- Historical usage in daily buckets (last 7 days stored)
- GET /api/v1/trends

Fix #271

* Add trends to web UI

* Don't render compose form on search route, adjust search results header

* Disqualify tag from trends if it's in disallowed hashtags setting

* Count distinct accounts using tag, ignore silenced accounts
2018-05-27 21:45:30 +02:00
Thibaut Girka
5ad747727f [Glitch] Replace onScrollToBottom with onLoadMore
Port 01d10b0bd8 to glitch-soc
2018-05-27 20:40:58 +02:00
Thibaut Girka
c7e5a0af57 Do not needlessly refresh pinned toots
Port missing part of b29feb5c67 to glitch-soc
2018-05-27 20:40:58 +02:00