Commit Graph

3099 Commits (f54ca825c5f3da0081db20f7c4a2550d4c9bd80b)

Author SHA1 Message Date
Eugen Rochko 23c149c5b9 Add ActivityPub handler for Delete->Actor activities (#4761) 2017-09-01 21:54:42 +02:00
Eugen Rochko 9ed764519b Finish up embed modal feature (#4759)
* Add embed button to dropdowns of in-timeline statuses

* yarn run manage:translations
2017-09-01 21:30:13 +02:00
Eugen Rochko 60ec86be49 Avoid sending some ActivityPub payloads if the receiver will get them through distribution (#4739) 2017-09-01 21:26:01 +02:00
Eugen Rochko e1a781476f Do not rely on activity arriving exactly once after delete arrived (#4754) 2017-09-01 21:12:59 +02:00
Cygnan b4c5d3e0bf Adjust padding on the public profile page (#4757)
* Fix a style issue on the public profile page for some mobile browsers

Signed-off-by: Cygnan <email@cygnan.com>

* Set padding-bottom to 20px

Signed-off-by: Cygnan <email@cygnan.com>
2017-09-01 21:01:23 +02:00
unarist 4c0dbcadfe Deduplicate with local status on Create activity (#4763) 2017-09-01 21:00:43 +02:00
Eugen Rochko 966e05ced2 Fix NoMethodError (#4762) 2017-09-01 20:50:42 +02:00
Eugen Rochko e9e271878e Make PreviewCard records reuseable between statuses (#4642)
* Make PreviewCard records reuseable between statuses

**Warning!** Migration truncates preview_cards tablec

* Allow a wider thumbnail for link preview, display it in horizontal layout (#4648)

* Delete preview cards files before truncating

* Rename old table instead of truncating it

* Add mastodon:maintenance:remove_deprecated_preview_cards

* Ignore deprecated_preview_cards in schema definition

* Fix null behaviour
2017-09-01 16:20:16 +02:00
Yamagishi Kazutoshi 8d4e705cb0 Use system's default font on non web UI pages (#4553)
* Use system's default font on non web UI pages

* Remove import for Redirect
2017-09-01 16:13:31 +02:00
Eugen Rochko c3b7e7529a Make first use less overwhelming with browser permissions (#4760)
- Ask for desktop notifications after 1 minute of use instead of
  instantly
- Ask for protocol handler permission after 5 minutes of use
  instead of instantly
2017-09-01 16:07:08 +02:00
Damien Erambert ce91ed1322 Update FR locales (#4714)
* Make the fr locales up-to-date with the last changes (new profile view, applications)

* Use the same wording for toots in fr.yml and fr.json

* Translate the pin related strings

* Translate pin-related locales on the front-end

* Add missing locales in doorkeeper.fr.yml and remove un-used ones

* Change "posts" back to "status" in the /about/more page in fr.yml

* Fix typos for "status" in fr.yml

* fix typo for "status" in fr.json

* Remove duplicate string

* Non-breaking space before punctuation

* 'Better' translation for "unpin"

* Put back 'pouet' where it was already

* Fix

* Fix
2017-09-01 14:09:01 +02:00
Eugen Rochko 2bbb10a186 Refactor Web::PushSubscription, remove welcome message (#4524)
* Refactor Web::PushSubscription, remove welcome message

* Add missing helper

* Use locale of the receiver on push notifications (#4519)

* Remove unused translations

* Fix dir on notifications
2017-09-01 13:35:23 +02:00
unarist 5765b930d6 Convert OStatus tag to ActivityPub id on in_reply_to resolution (#4756) 2017-09-01 13:34:04 +02:00
unarist ee591d23b5 Fallback from perform_via_activitypub on private posts (#4758)
Currently, private / direct posts via OStatus from AP compatible instance will be dropped due to failing to fetch AP version.

So this fallbacks to OStatus handling:

* when failed to fetch ActivityPub version
* when status is neither :public nor :unlisted
2017-09-01 12:33:02 +02:00
Eugen Rochko 02bd661d76 Remove identity context from output of LinkedDataSignature (#4753) 2017-08-31 21:32:09 +02:00
unarist 5a6b15f014 Don't process ActivityPub payload if signature is invalid (#4752)
* Don't process ActivityPub payload if signature is invalid

* Fix style issue
2017-08-31 17:18:49 +02:00
James 2fbae21f05 Guarantee Subscription service first account has proper URL details (#4732)
* Guarantee Subscription service first account has proper URL details

Subscription Service potentially could break if the first user suspended
themselves, creating a situation where the urls that populate throughout
subscription service's PuSH request would cause the remote API to throw 503 errors.

Guaranteeing that the first account picked is not suspended prevents this problem.

* Fix style issue
2017-08-31 15:44:00 +02:00
Akihiko Odaki 3b8a64e94e Fix the usages of Detect Passive Events (#4749) 2017-08-31 11:20:54 +02:00
Eugen Rochko ad769409f7 Embed modal (#4748)
* Embed modal

* Proxy OEmbed requests from web UI
2017-08-31 03:38:35 +02:00
Eugen Rochko 1b20fe79b4 Add sharedInbox to actors (#4737) 2017-08-31 00:02:59 +02:00
MitarashiDango a7400f8016 error fixed (when loading pages in single column mode.) (#4746) 2017-08-30 17:30:25 +02:00
Eugen Rochko ca76d11434 Forward ActivityPub creates that reply to local statuses (#4709)
* Forward ActivityPub creates that reply to local statuses

* Fix test

* Fix wrong signers
2017-08-30 15:37:02 +02:00
Yamagishi Kazutoshi 9545ab8371 Add close tag of iframe for oEmbed response (#4745)
* Add close tag of iframe for oEmbed response

* add comma
2017-08-30 14:03:17 +02:00
nullkal fe417663d9 Use request.remote_ip instead of request.ip (#4744) 2017-08-30 10:24:30 +02:00
Eugen Rochko 651c659fd6 Update status embeds (#4742)
- Use statuses controller for embeds instead of stream entries controller
- Prefer /@:username/:id/embed URL for embeds
- Use /@:username as author_url in OEmbed
- Add follow link to embeds which opens web intent in new window
- Use redis cache in development
- Cache entire embed
2017-08-30 10:23:43 +02:00
abcang e8e6bb5437 Scroll smoothly to the right (#4735) 2017-08-29 17:06:19 +02:00
MitarashiDango 5a1614ce9b fix error when single columns mode. (#4734) 2017-08-29 16:11:28 +02:00
Eugen Rochko 3135d20283 Serialize ActivityPub alternate link into OStatus deletes, handle it (#4730)
Requires moving Atom rendering from DistributionWorker (where
`stream_entry.status` is already nil) to inline (where
`stream_entry.status.destroyed?` is true) and distributing that.

Unfortunately, such XML renderings can no longer be easily chained
together into one payload of n items.
2017-08-29 16:11:05 +02:00
Akihiko Odaki 46142a58d2 Do not scroll the columns area due to redirection (#4541)
Commit c4a21aa352 scrolls the columns area
when the route changes since the user is likely to want to see the
rightmost column in such cases.

However, redirection is automatic and does not indicate users' intension.
Do not scroll the columns area due to one.
2017-08-29 14:16:21 +02:00
abcang 4ce06cc0c9 Generalized the infinite scrollable list (#4697) 2017-08-28 22:23:44 +02:00
unarist 9edbeec86c Fix Delete activity handling when the status has been reblogged (#4729) 2017-08-28 22:08:11 +02:00
unarist e17945907a Fix deletion of status which has been reblogged (#4728) 2017-08-28 21:38:59 +02:00
abcang 4fb007764b rescue HTTP::ConnectionError in RemoteFollowController#create (#4726) 2017-08-28 19:12:09 +02:00
Lynx Kotoura 5c10e23880 Adjust "signed in as" pages (#4720)
* Adjust "signed in as" pages


Fix min-width


Set width of .account-header .name

To apply text-overflow and overflow settings
Set overflow for detailed-status__display-name

* Remove trailing whitespace
2017-08-28 00:01:07 +02:00
Lynx Kotoura ce5055cbe2 Adjust public profile pages (#4713)
* Adjust account-grid in public profiles

Full-width card on mobile UI. Set break-word for long name and ID. Fix margin.

* Reduce padding-bottom of public profiles

* Revive next prev buttons in mobile public profiles

In followers followees pages.

* Revert break-word for username

* Fix overflow of display_name

Need re-setting text-overflow and overflow in display: block;
2017-08-27 23:59:51 +02:00
Eugen Rochko 007d26852d Shorten display of large numbers on public profiles (#4711) 2017-08-27 17:04:45 +02:00
mayaeh 9b75d0e730 Add japanese translations for Pinned statuses based on pawoo. (#4717)
Add japanese translations for pin_errors.
2017-08-28 00:03:27 +09:00
Eugen Rochko 62c8ce278c Adjust RTL styles (#4712) 2017-08-27 13:35:18 +02:00
unarist 8f561fb7bf Allow Symbol keyed Hash in LinkedDataSignature (#4715)
SerializarbleResource#as_json serializes to Symbol keyed Hash, but current
implementation of LinkedDataSignature expects String keyed Hash.

So it generates broken payload.
2017-08-27 13:35:01 +02:00
Eugen Rochko 94ba76455e Add _:inReplyToAtomUri to ActivityPub (#4702) 2017-08-26 19:55:10 +02:00
Eugen Rochko c423a3463b Forward ActivityPub deletes to followers of rebloggers (#4706) 2017-08-26 18:52:53 +02:00
Eugen Rochko b2e1379427 Use Tombstone and _:atomUri in Delete activities as fallback (#4704) 2017-08-26 16:10:35 +02:00
Eugen Rochko 6025762ba2 Add ActivityPub serializer for Undo of Announce (#4703) 2017-08-26 15:32:40 +02:00
Lynx Kotoura 1914a8b8a8 Set margin between character-counter and compose-form__buttons (#4698)
For some languages publish translation is long.
2017-08-26 14:23:20 +02:00
Eugen Rochko 5147147da9 Add handling of Linked Data Signatures in payloads (#4687)
* Add handling of Linked Data Signatures in payloads

* Add a way to sign JSON, fix canonicalization of signature options

* Fix signatureValue encoding, send out signed JSON when distributing

* Add missing security context
2017-08-26 13:47:38 +02:00
Anna e só dd72c55902 Added new translations of error messages, block and mute domains and users, privacy disclaimers, etc (#4700)
* Added new translations of error messages, block and mute domains and users

* Added new translations of error messages, block and mute domains and users
2017-08-26 20:45:35 +09:00
masarakki d8f136cb8b authorize-follow-requests-after-unlocking (#4658) 2017-08-26 12:40:03 +02:00
Yamagishi Kazutoshi dc19078b59 Fix missing at-sign (regression from #4688) (#4705) 2017-08-26 12:39:26 +02:00
Lynx Kotoura e0191a22c0 Fix ar.json (#4699)
Remove ! from compose_form.publish
2017-08-25 20:02:44 +02:00
nullkal f9ebff4b13 Allow multiple pinned statuses to be shown and make them be ordered b… (#4690)
* Allow multiple pinned statuses to be shown and make them be ordered by pinned date

* Set timestamps NOT NULL

* Make single-line pinned_statuses

* Spec for pinned_statuses

* Remove redundant empty line
2017-08-25 18:50:52 +02:00
unarist 4c8594d451 Apply user timezone for the title attribute of .time-ago (#4693) 2017-08-25 17:21:16 +02:00
Yamagishi Kazutoshi 5e3c6f63be Change timezone of the datetime to what browser specifies (#4688) 2017-08-25 17:21:00 +02:00
Lynx Kotoura 6dc5a20f99 Adjust styles of landing pages. (#4682)
* Adjust about.scss

* Delete trailing whitespace.
2017-08-25 17:19:35 +02:00
Quent-in 9e60ec3c7d i18n Updated strings (#4675 - pinned toot) (#4695)
* Added string for pinned toots

* Pinned toot #4675 + missing string

Somehow I deleted it "enabled_success"

* update after advice
2017-08-25 23:04:52 +09:00
Yamagishi Kazutoshi 5482e0d10e Add label for application scopes (#4691)
* Add label for application scopes

* hint
2017-08-25 13:03:26 +02:00
m4sk1n 8728b1b7c1 i18n: Update Polish translation #4675 (#4692)
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2017-08-25 17:58:31 +09:00
Eugen Rochko 3e20cb7025 Pinned statuses (#4675)
* Pinned statuses

* yarn manage:translations
2017-08-25 01:41:18 +02:00
Ratmir Karabut 4850d6bd1e Update Russian translation (#4685)
* Add Russian translation (ru)

* Fix a missing comma

* Fix the wording for better consistency

* Update Russian translation

* Arrange Russian setting alphabetically

* Fix syntax error

* Update Russian translation

* Fix formatting error

* Update Russian translation

* Update Russian translation

* Update ru.jsx

* Fix syntax error

* Remove two_factor_auth.warning (appears obsolete)

* Add missing strings in ru.yml

A lot of new strings translated, especially for the newly added admin section

* Fix translation consistency

* Update Russian translation

* Update Russian translation (pluralizations)

* Update Russian translation

* Update Russian translation

* Update Russian translation (pin)

* Update Russian translation (account deletion)

* Fix extra line

* Update Russian translation (sessions)

* Update Russian translation

* Update Russian translation

* Fix merge conflicts (revert)
2017-08-25 07:11:06 +09:00
Damien Erambert 3fe19725b6 Don't load Roboto webfont when system font is used in the app (#4591)
* Don't load Roboto webfont when system font is used in the app

* remove trailing whitespace
2017-08-24 19:28:49 +02:00
Eugen Rochko cab7fa158a Add configuration to disable private status federation over PuSH (#4582) 2017-08-24 17:51:32 +02:00
unarist bab7127ac9 Fetch reblogs as Announce activity instead of Note object (#4672)
* Process Create / Announce activity in FetchRemoteStatusService

* Use activity URL in ActivityPub for reblogs

* Redirect to the original status on StatusesController#show
2017-08-24 16:21:42 +02:00
Eugen Rochko d44b84bebd Minor performance improvement for test suite (#4678) 2017-08-24 13:31:55 +02:00
Yamagishi Kazutoshi cd9586122d Remove eslint-disable comments (#4681)
Do not reject console.error and console.warn with ESLint rules.
2017-08-24 12:15:36 +02:00
Quent-in 62d93b1215 l18n update OC new strings (#4664) (#4680)
* New strings

* Update

Thin non breaking spaces

* Update

Thin non breaking spaces

* Update

Thin non breaking spaces
2017-08-24 16:16:32 +09:00
HIKARU KOBORI 771060a993 Fix typo in admin/status_controller.rb (#4679) 2017-08-24 04:03:52 +02:00
nullkal da85aff49c Use checkboxes for application scope setting (#4671) 2017-08-23 15:16:20 +02:00
unarist 75ce1235b5 Fix accessing to XML attribute in FetchAtomService (#4668) 2017-08-23 12:25:57 +02:00
Eugen Rochko b13501268f Fix up the applications area (#4664)
- Section it into "Development" area
- Improve UI of application form, index, and details
2017-08-23 00:59:35 +02:00
Daigo 3 Dango fd9d66dfd4 Add Mastodon::Source.url (#4643)
* Add Mastodon::Source.url

* Update spec

* Refactor

Move things frmo Mastodon::Source to Mastodon::Version
2017-08-22 22:54:19 +02:00
unarist 915eda7f88 Ignore empty response in ActivityPub::FetchRemoteStatusService (#4661)
* Ignore empty response in ActivityPub::FetchRemoteStatusService

This fixes `NoMethodError: undefined method `[]' for nil:NilClass` error.

* Check json.nil? in JsonLdHelper#supported_context?
2017-08-22 20:00:49 +02:00
Colin Mitchell 63b98318c5 Application prefs section (#2758)
* Add code for creating/managing apps to settings section

* Add specs for app changes

* Fix controller spec

* Fix view file I pasted over by mistake

* Add locale strings. Add 'my apps' to nav

* Add Client ID/Secret to App page. Add some visual separation

* Fix rubocop warnings

* Fix embarrassing typo

I lost an `end` statement while fixing a merge conflict.

* Add code for creating/managing apps to settings section

- Add specs for app changes
- Add locale strings. Add 'my apps' to nav
- Add Client ID/Secret to App page. Add some visual separation
- Fix some bugs/warnings

* Update to match code standards

* Trigger notification

* Add warning about not sharing API secrets

* Tweak spec a bit

* Cleanup fixture creation by using let!

* Remove unused key

* Add foreign key for application<->user
2017-08-22 18:33:57 +02:00
unarist 1cb7c1a273 Fix bugs which OStatus accounts may detected as ActivityPub ready (#4662)
* Fallback to OStatus in FetchAtomService

* Skip activity+json link if that activity is Person without inbox
* If unsupported activity was detected and all other URLs failed, retry with ActivityPub-less Accept header

* Allow mention to OStatus account in ActivityPub

* Don't update profile with inbox-less Person object
2017-08-22 18:30:15 +02:00
Eugen Rochko dccc1a74ad Support more variations of ActivityPub keyId in signature (#4630)
- Tries to avoid performing HTTP request if the keyId is an actor URI
- Likewise if the URI is a fragment URI on top of actor URI
- Resolves public key, returns owner if the owner links back to the key
2017-08-21 22:57:34 +02:00
Eugen Rochko 0268b334ae Periodically remove expired PuSH subscribers (#4654) 2017-08-21 22:56:33 +02:00
Lynx Kotoura 4730977e1a Increase contrast in landing pages (#4567)
* Increase contrast in about and about/more page

* Lighten em color in landing pages

* Increase contrast in landing pages


Fix about.scss
2017-08-21 21:59:03 +02:00
Eugen Rochko 672ee8219c Fix visual line-break glitch with .invisible parts of links (#4655) 2017-08-21 17:59:34 +02:00
Eugen Rochko d76bd63226 Do not try to re-subscribe to unsubscribed accounts (#4653) 2017-08-21 17:32:41 +02:00
abcang 8a4ac3f71c Refactoring streaming connections (#4645) 2017-08-21 15:04:34 +02:00
Yamagishi Kazutoshi 7503ada9b5 Use URI.join even when S3 enabled (#4652) 2017-08-21 12:42:16 +02:00
Eugen Rochko 1a19358b24 ActivityPub migration procedure (#4617)
* ActivityPub migration procedure

Once one account is detected as going from OStatus to ActivityPub,
invalidate WebFinger cache for other accounts from the same domain

* Unsubscribe from PuSH updates once we receive an ActivityPub payload

* Re-subscribe to PuSH unless already unsubscribed, regardless of protocol
2017-08-21 01:14:40 +02:00
m4sk1n cbc3b13ef6 i18n: Minor changes in Polish translation (#4649)
* i18n: Minor changes in Polish translation

* i18n: pl
2017-08-21 07:57:28 +09:00
Eugen Rochko 39b76d47a5 Fix #4637 - Re-add missing doorkeeper_authorize for /api/v1/verify_credentials (#4650) 2017-08-21 00:41:08 +02:00
Yamagishi Kazutoshi feb63b672e Remove status from favorites list when unfavorited (#4597) 2017-08-20 23:23:05 +02:00
unarist fe3240a160 Fix .information-board style for Safari (#4602)
flex-basis: 0 allows make flexbox smaller than its contents on Safari <10.

https://github.com/philipwalton/flexbugs#1-minimum-content-sizing-of-flex-items-not-honored
2017-08-20 20:45:44 +02:00
abcang 614ba8542c Fix hasUnread on HashtagTimeline (#4644) 2017-08-20 17:12:06 +02:00
Eugen Rochko 44b5084f1d Handle duplicate ActivityPub activities (#4639)
* Handle duplicate ActivityPub activities

Only perform side-effects when record processed for the first time

* Fast-forward repeat follow requests
2017-08-20 16:53:47 +02:00
takayamaki b6acec13d4 Improve about ja translation standalone.public_title (#4641) 2017-08-20 20:27:14 +09:00
Eugen Rochko aee1db8fa1 Improve ActivityPub/OStatus compatibility (#4632)
*Note: OStatus URIs are invalid for ActivityPub. But we have them for
as long as we want to keep old OStatus-sourced content and as long as
we remain OStatus-compatible.*

- In Announce handling, if object URI is not a URL, fallback to object URL
- Do not use specialized ThreadResolveWorker, rely on generalized handling
- When serializing notes, if parent's URI is not a URL, use parent's URL
2017-08-19 18:44:48 +02:00
Eugen Rochko 1bf68ba7dd Revert #4616 (#4638) 2017-08-19 02:23:47 +02:00
Eugen Rochko e96d64397e Parse OStatus tag URIs in ActivityPub handlers when those are local (#4631) 2017-08-18 11:24:44 +02:00
Yamagishi Kazutoshi c0642a0042 Don't send Link header when don't know prev and next links (#4633) 2017-08-18 10:42:59 +02:00
Eugen Rochko 0afaecf61f Make ActivityPub::TagManager#local_uri? recognize local URIs with ports (#4628) 2017-08-18 03:21:59 +02:00
Eugen Rochko 75afe35f09 If url attribute not present in Note, fallback to id attribute (#4629) 2017-08-18 02:29:12 +02:00
Eugen Rochko ce7e12bd72 Put ActivityPub alternate link into Atom, prefer it when processing Atom (#4623) 2017-08-18 01:03:18 +02:00
nightpool 6cce0bb080 use existing inflections instead of custom helper (#4624)
* use existing inflections instead of custom helper

* use ActiveSupport versions
2017-08-17 23:20:50 +02:00
Eugen Rochko bd6f0fba35 Fix #4607 - Accept/reject activities use FollowRequest, which has inverse relations (#4616) 2017-08-17 22:15:37 +02:00
Eugen Rochko c2101d3ad7 Add _:atomUri property for deduplicating OStatus/ActivityPub legacy records (#4593) 2017-08-17 21:35:00 +02:00
nullkal a90b5796a1 Show what protocol is used for accounts in admin/accounts#index (#4622)
* Show what protocol used for in admin/accounts#index

* Add frozen_string_literal
2017-08-17 17:52:40 +02:00
m4sk1n cf1d082be0 i18n: Update Polish translation (#4613)
* i18n: Update Polish translation

* Update pl.json
2017-08-16 22:14:23 +02:00
Eugen Rochko 2dba0368f8 Redesign public profiles (#4608)
* Redesign public profiles

* Responsive design

* Change public profile status filtering defaults and add options

- No longer displays private/direct toots even if you are permitted access
- By default omits replies
- "With replies" option
- "Media only" option

* Redesign account grid cards

* Fix style issues
2017-08-16 17:12:58 +02:00
Clworld 39b3080d51 Make share intent modal to make "signed in as" shown. (#4611)
* Make share intent modal to make "signed in as" shown.

* fix glitch on mobile.
2017-08-16 16:48:44 +02:00
abcang efd907e32e Fix require_user! behavior when not logged in (#4604) 2017-08-15 14:14:12 +02:00
Eugen Rochko 5bd2dcd436 Re-add missing transaction around status-from-OStatus creation (#4603) 2017-08-14 21:37:21 +02:00
unarist 83b48812e4 Fix ActivityPub follow interaction and add more specs (#4601) 2017-08-14 16:57:46 +02:00
unarist 40ec0f45fb Update /admin/accounts/:id view for ActivityPub (#4600)
* Add protocol field
* Switch protocol specific information according to active protocol
* Hide PuSH subscription related buttons if ActivityPub is active
2017-08-14 14:09:00 +02:00
Yamagishi Kazutoshi ac7fb7c820 Add support for searching AP users (#4599)
* Add support for searching AP users

* use JsonLdHelper
2017-08-14 14:08:34 +02:00
Eugen Rochko 5bc37d814f Require "inbox" to be set on actor to be ActivityPub-ready (#4595) 2017-08-14 11:27:25 +02:00
Eugen Rochko 0e5c8372e7 Add protocol handler. Handle follow intents (#4511)
* Add protocol handler. Handle follow intents

* Add share intent

* Improve code in intents controller

* Adjust share form CSS
2017-08-14 04:53:31 +02:00
Yamagishi Kazutoshi ffc125c953 Fix search (regression from #4589) (#4594) 2017-08-14 04:50:56 +02:00
Eugen Rochko 1c7cbbcb8c Set correct content-type for ActivityPub JSON (#4592) 2017-08-14 04:16:43 +02:00
Eugen Rochko 3473aac8d8 Hook up URL-based resource look-up to ActivityPub (#4589) 2017-08-14 02:29:36 +02:00
Eugen Rochko 34962d9f9d Add alternate links to ActivityPub resources from HTML/HEAD variants (#4586) 2017-08-13 00:45:04 +02:00
Eugen Rochko 5516767c75 ActivityPub delivery (#4566)
* Deliver ActivityPub Like

* Deliver ActivityPub Undo-Like

* Deliver ActivityPub Create/Announce activities

* Deliver ActivityPub creates from mentions

* Deliver ActivityPub Block/Undo-Block

* Deliver ActivityPub Accept/Reject-Follow

* Deliver ActivityPub Undo-Follow

* Deliver ActivityPub Follow

* Deliver ActivityPub Delete activities

Incidentally fix #889

* Adjust BatchedRemoveStatusService for ActivityPub

* Add tests for ActivityPub workers

* Add tests for FollowService

* Add tests for FavouriteService, UnfollowService and PostStatusService

* Add tests for ReblogService, BlockService, UnblockService, ProcessMentionsService

* Add tests for AuthorizeFollowService, RejectFollowService, RemoveStatusService

* Add tests for BatchedRemoveStatusService

* Deliver updates to a local account to ActivityPub followers

* Minor adjustments
2017-08-13 00:44:41 +02:00
Eugen Rochko 0e2a3049e7 Add serializing/unserializing of "locked" actor attribute (#4585) 2017-08-12 17:41:03 +02:00
Eugen Rochko b33ac4a307 Only PuSH-resubscribe to OStatus accounts (#4583) 2017-08-12 02:54:54 +02:00
Sylvhem 1263c0a60a Minor fixes in the French translation (#4580)
* Ajout de traductions manquantes

Ajoute des traductions pour les chaînes n’en ayant pas en version 1.5.1.

Add translations for the strings that are missing them in 1.5.1.

* Remplace « ' » par « ’ »

Retire de la traduction les apostrophes droites « ' » (U+0027) au profit des apostrophes typographiques « ’ » (U+2019).
En typographie française, les apostrophes typographiques sont utilisées à la place des apostrophes droites. La traduction était incohérente et utilisait les deux.

Remove from the translation all the vertical apostrophes (U+0027) in favor of the curly ones (U+2019).
In French typography, typographic apostrophes are used instead of vertical ones. The translation was incoherent and used both.

* Ajout d’espaces insécables

Ajoute des espaces insécables suivant les régles nécessaires en typographie française.

Add non-breaking spaces following rules of French typography.

* Remplace « status » par « statut »

Remplace le mot anglais « status » par sa traduction française « statut ».

Replace the English word "status" by its French translation "statut".

* Correction de la politique de confidentialité

Apporte diverses corrections à la traduction de la politique de confidentialité.

Add various fixes to the privacy policy's translation.

* Remplace « mentionné » par « mentionné·e »

Harmonise la traduction en remplaçant « mentionné » par sa forme épicène.

Harmonize the translation by replacing "mentionné" (sure) by its epicene form.

* Remplace « Coup d’œil » par « Jeter un coup d’œil… »

Remplace la première traduction par une forme plus proche de la version originelle.

Replace the first translation by something closer to the original version.

* Remplace « Bon Appétoot ! » par « Bon appouetit ! »

Remplace « Bon Appétoot ! » par « Bon appouetit ! » pour essayer de conserver le jeu de mot.

Replace « Bon Appétoot ! » by « Bon appouetit ! » to keep the pun.

* Remplace « Bon Appétoot ! » par « Bon appouetit ! » (2)

Remplace « Bon Appétoot ! » par « Bon appouetit ! » pour essayer de conserver le jeu de mot.

Replace « Bon Appétoot ! » by « Bon appouetit ! » to keep the pun.f

* Corrections

Corrige des fautes d’orthographe et change « appouetit » pour « appouétit ».

Correct some mistakes and change "appouetit" to "appouétit".
2017-08-12 01:33:30 +02:00
Eugen Rochko 719a5212be Handle ActivityPub follows correctly (#4571)
* Handle ActivityPub follows correctly

ActivityPub follows are follow-requests. Always require an Accept.
If account is not locked, auto-accept.

* Handle ActivityPub Accept/Reject-Follow

* Fix wrong method

* Fix wrong class
2017-08-10 22:33:12 +02:00
Yamagishi Kazutoshi 060a345217 Fix emoji picker scrollbar style (#4572) 2017-08-10 13:41:12 +02:00
Eugen Rochko 1b6ced5887 Add Digest header to requests with body, handle acct and URI keyId (#4565) 2017-08-09 23:54:14 +02:00
Ondřej Hruška 80d6d27270 Add favourited toot to favourites column (#4562)
* Add faved toot to faves column

* renamed append to prepend for clarity
2017-08-09 00:22:26 +02:00
Ondřej Hruška df045a98e1 add scrollTop to ui/components/column (#4563) 2017-08-09 00:21:58 +02:00
Gergely Nagy 8c3f5acf0e api/instances: Include the stats from the /about/more page (#4074)
To be able to pull some basic statistics from a Mastodon instance, include the
user, status and connected domain counters in the `/api/v1/instance` response.

Fixes #3570.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2017-08-08 22:18:12 +02:00
Ondřej Hruška bcab356f3d add missing @ to the onboarding modal (#4560) 2017-08-08 22:13:04 +02:00
Eugen Rochko f18739fd60 Add ActivityPub inbox (#4216)
* Add ActivityPub inbox

* Handle ActivityPub deletes

* Handle ActivityPub creates

* Handle ActivityPub announces

* Stubs for handling all activities that need to be handled

* Add ActivityPub actor resolving

* Handle conversation URI passing in ActivityPub

* Handle content language in ActivityPub

* Send accept header when fetching actor, handle JSON parse errors

* Test for ActivityPub::FetchRemoteAccountService

* Handle public key and icon/image when embedded/as array/as resolvable URI

* Implement ActivityPub::FetchRemoteStatusService

* Add stubs for more interactions

* Undo activities implemented

* Handle out of order activities

* Hook up ActivityPub to ResolveRemoteAccountService, handle
Update Account activities

* Add fragment IDs to all transient activity serializers

* Add tests and fixes

* Add stubs for missing tests

* Add more tests

* Add more tests
2017-08-08 21:52:15 +02:00
Lynx Kotoura cbcac23679 Fix short description in about/more page (#4554) 2017-08-08 15:49:32 +02:00
Yamagishi Kazutoshi 2c729c9376 Add coalesce option to avatar and header convert processor (#4552)
Resolve #3199
2017-08-08 15:49:14 +02:00
雨宮美羽 3962b1f05f improve zh-CN translations (#4557) 2017-08-08 15:48:19 +02:00
TheInventrix f4017cce3f unify short description styling (#4548)
apply same style class to the About description on both the landing page
and the about/more page
2017-08-08 01:50:15 +02:00
Yamagishi Kazutoshi bd6676b176 Revert "Set false to animated options for thumbnail processor" (#4550)
* Revert "Adjust tags and accounts page (#4534)"

This reverts commit bac2a77deb.

* Revert "feat: Cache status height to avoid expensive renders (#4439)"

This reverts commit ed7abec8f5.

* Revert "Refactor Avatar and AvatarOverlay to have 'account' as prop instead of src and staticSrc (#4526)"

This reverts commit 199affb141.

* Revert "Update dependencies for Ruby (#4543)"

This reverts commit 4e7e54ace5.

* Revert "[Docker] Add multicore support to "make" and "bundler" (#4544)"

This reverts commit 672083c50b.

* Revert "It makes no sense to try using invalid or expired link again (#4521)"

This reverts commit f127f72d44.

* Revert "i18n: Update Polish translation (#4545)"

This reverts commit 8e80cea3e4.

* Revert "Set false to animated options for thumbnail processor (#4547)"

This reverts commit 730fa0a06b.
2017-08-08 01:49:56 +02:00
Lynx Kotoura bac2a77deb Adjust tags and accounts page (#4534)
* Adjust tag and accounts page

* Remove units from 0px paddings
2017-08-07 20:33:06 +02:00
Sorin Davidoi ed7abec8f5 feat: Cache status height to avoid expensive renders (#4439)
* feat: Cache status height to avoid expensive renders

* feat: Escape content and emojify in reducers

* fix(css): Remove backface-visibility: hidden from .scrollable

* fix(statuses): Avoid creating DOMParses inside a loop
2017-08-07 20:32:03 +02:00
Ondřej Hruška 199affb141 Refactor Avatar and AvatarOverlay to have 'account' as prop instead of src and staticSrc (#4526)
* Refactored Avatar and AvatarOverlay (DRY) to have 'account' as prop.
Also removed animate attribute from compose navigation bar, which should
have never been there. Added test for avatar overlay.

* fix broken tests

* god dammit another bug in tests! travis please let this pass

* formatting in avatar overlay
2017-08-07 19:44:55 +02:00
Yamagishi Kazutoshi 730fa0a06b Set false to animated options for thumbnail processor (#4547)
Resolve #3199

Fix the aspect ratio of animated GIF whose background is transparent.
2017-08-07 14:41:21 +02:00
Masoud Abkenar 50c089d5ca i18n: update Persian translation (#4540) 2017-08-06 23:50:20 +02:00
MitarashiDango ad1065cbc5 fix columns_area.js (#4528) 2017-08-05 20:33:41 +02:00
Eugen Rochko fd69694749 Add "signed in as" header to some pages (#4523) 2017-08-05 04:24:58 +02:00
Akihiko Odaki c4a21aa352 Scroll columns area to right when children property is changed (#4517)
The feature to pin column could hide the rightmost column, which is
specified with children property of ColumnsArea.

The user is likely to see the column when the property changed, so scroll
the area in such cases.
2017-08-04 18:57:46 +02:00
Krzysztof Jurewicz e55ecdf48f Fix some mistakes in Polish translation (#4495) 2017-08-04 22:43:28 +09:00
nullkal 62b92a4c0a Redirect to PasswordController#new when reset_password_token is invalid (#4506) 2017-08-03 17:45:45 +02:00
MIYAGI Hikaru a1db03b345 make number of comparison in emojify() fewer (#4500)
fix style

"©"削除処理をemojione_lightに移動
2017-08-02 21:05:17 +02:00
TheKinrar a62b6a4f12 Don't normalize invalid domain names (#4499)
Fixes #4496
2017-08-02 14:54:33 +02:00
unarist 465aaedbcf Fix column-back-button style for some browsers (#4484)
Use `text-align: unset` instead of `text-align: start` which Edge doesn't support for now.

Also remove default margin on Safari.
2017-08-02 13:09:37 +02:00
Sorin Davidoi 9fc6c974f6 fix(status_list): Use correct keys for keyboard navigation (#4487) 2017-08-02 13:09:09 +02:00
Komic 0c10b35c11 fr.json update (#4492) 2017-08-02 13:31:49 +09:00
Quent-in b516afc42c l10n #4457 update for Occitan language (#4483)
Previous and Next buttons
2017-08-02 00:12:30 +09:00
Jeroen 765dbd296f Update Dutch (nl) strings (#4480) 2017-08-01 15:00:41 +02:00
Sorin Davidoi d8f78827a4 fix(web_push_notifications): Send message with welcome notifications (#4471)
* fix(web_push_notifications): Send grouping title in welcome notification

* fix(web_push_notifications): Read message from last notification
2017-08-01 06:00:13 +02:00
Yamagishi Kazutoshi 5a5e9d61e3 Re-add outline (#4474)
* Re-add outline

* respect default of web browser
2017-08-01 01:40:31 +02:00
Ondřej Hruška 81142bdf24 do not emojify tm, (R) and (C) (#4472) 2017-08-01 00:16:05 +02:00
Masoud Abkenar 755a7f2646 i18n: update Persian translation (#4470)
* i18n: update Persian translation

* i18n: fix quotes
2017-07-31 19:40:57 +02:00
Yamagishi Kazutoshi 54257c9325 Load extra polyfills when isIntersecting is undefined (#4469) 2017-07-31 19:40:20 +02:00
Eugen Rochko 7ccb3a9d77 Simplify web UI character counter logic (#4463) 2017-07-31 15:19:48 +02:00
unarist 9e2971e899 Fix button overflow on confirmation modal for mobile (#4465) 2017-07-31 15:19:30 +02:00
Yamagishi Kazutoshi f95fca19d4 Change RuboCop rules to loose (#4464) 2017-07-31 15:19:13 +02:00
m4sk1n beeeebb42f i18n: Update Polish translation (#4467) 2017-07-31 19:40:25 +09:00
Yamagishi Kazutoshi 5be327104f Disable sensitive button when with content warnings (#4460) 2017-07-31 05:06:56 +02:00
Eugen Rochko 14004daca4 Fix length validator counting things that look like URIs like URLs (#4462)
URI.extract is too strong, not limited to URLs, matched real text.
Same issue was present in language detector.
2017-07-31 05:06:20 +02:00
unarist 15a8d9b0ca Make salutation of email localizable (#4454) 2017-07-31 00:18:44 +02:00
Sorin Davidoi 2032e2500c Improve accessibility (part 7) (#4457)
* fix(media_modal): Keyboard navigation

* fix(column_back_button): Use native button

* fix(media_gallery): Keyboard navigation

* fix(status_content): Make CW content focusable
2017-07-31 00:18:15 +02:00
Yamagishi Kazutoshi fc9f793f2e Change to sensitive when adding content warning from web UI (#4456) 2017-07-30 16:27:57 +02:00
Yamagishi Kazutoshi 74712bf1c6 Remove outline from focused toot (#4448)
* Remove outline from focused toot

* change style
2017-07-30 16:27:51 +02:00
Yamagishi Kazutoshi 5d364da590 Do not create empty a element when there is no e-mail (#4455)
Empty a element is created when there is no business e-mail input.
2017-07-30 16:24:18 +02:00
unarist a3df68eea8 Update Japanese translations (#4453) 2017-07-30 14:14:41 +02:00
Lynx Kotoura 71bea1cd76 Set contact address in about/more as mailto link (#4450)
* Set contact address as mailto link

To be able to copy long email address

* Set style for mailto link
2017-07-30 12:56:04 +02:00
Damien Erambert e941d689f3 Use a fainted text color for <hr> elements in the landing page (#4443)
* Use a fainted text color for <hr> elements in the landing page

* remove trailing whitespace
2017-07-29 21:20:52 +02:00
Sorin Davidoi a39a909fc1 feat(tabs_bar): Avoid optimization for non-touch devices (#4444)
* fix(tabs_bar): Check if transition is necessary

* feat(tabs_bar): Only apply optimization for touch devices
2017-07-29 21:20:34 +02:00
Jeroen 0fac382422 Dutch: only one (new) string (#4440) 2017-07-29 23:54:27 +09:00
Lynx Kotoura b7482e4a9f Fix autocomplete option in haml files (#4438)
* Fix autocomplete in two_factor.html.haml

* Fix autocomplete in registrations edit.html.haml

* Fix autocomplete in passwords edit.html.haml

* Fix autocomplete in _registration.html.haml

* Fix autocomplete in new.html.haml

* Fix autocomplete in show.html.haml

* Add autocomplete option to sessions new.html.haml

* Add autocomplete option to 2FA new.html.haml

* Add autocomplete option to 2FA show.html.haml
2017-07-29 14:20:31 +02:00
unarist de3a2eaf4d fix(status): Don't add tabIndex to wrapped status (#4437) 2017-07-29 14:20:05 +02:00
みたらしだんご b5d1e48916 fix tabs_bar.js (#4436) 2017-07-29 14:19:49 +02:00
Sorin Davidoi 56e35ab6e7 Improve accessibility (part 6) (#4435)
* fix(status_action_bar): Use aria-pressed for reblog and favourite button

* fix(column_back_button): Keyboard accessible

* fix(status_content): Make focusable and accessible

* fix(dropdown_menu): Use aria-expanded instead of aria-pressed

* fix(emoji_picker_dropdown): Use aria-expanded instead of aria-hidden

* feat(icon_button): Add aria-expanded

* fix(privacy_dropdown): Use aria-expanded instead of aria-hidden
2017-07-29 01:58:53 +02:00
Eugen Rochko 39b0588256 Count all URLs in text as 23 characters flat, do not count domain part of usernames (#4427)
* Count all URLs in text as 23 characters flat, do not count domain part of usernames

* Add new status text counting logic to web UI
2017-07-29 00:06:29 +02:00
Sorin Davidoi aa108f8570 Accessability fixes (#4432)
* fix(modal_root): Read type from props, not from component

* fix(status_list): Do not user event.path
2017-07-28 22:55:19 +02:00
Sorin Davidoi e69bfa140a fix(tabs_bar): Allow animation to end before navigating (#4429)
* fix(tabs_bar): Allow animation to end before navigating

* fix(tabs_bar): Do not use event.path
2017-07-28 22:55:13 +02:00
Eugen Rochko ed3d301791 Fix web push notifications "boost" icon not being loaded (regression from #4426) (#4431) 2017-07-28 20:26:54 +02:00
Eugen Rochko 2e32794a12 Use consistent icons for web push notifications, same as web UI (#4426) 2017-07-28 18:13:42 +02:00
Eugen Rochko 64a6609d3e Fix guard clause in WebPushNotificationWorker (#4421) 2017-07-28 17:21:28 +02:00
Eugen Rochko a8631a9aac When PuSH subscribe attempts are exhausted, unsubscribe (#4422) 2017-07-28 17:21:14 +02:00
Quent-in 321162b983 i18n update of OC version (#4425)
* Correction of misspellings

* Improve the OC version

* Improve of the OC version

* Improvement of OC version
2017-07-29 00:09:38 +09:00
Eugen Rochko be1a5d9ae9 Improve actions modal style (#4423) 2017-07-28 15:30:53 +02:00
Eugen Rochko 043dfdb474 Fix current session not being displayed in sessions list (#4424) 2017-07-28 15:30:06 +02:00
Yamagishi Kazutoshi f24996028d Unify webpackChunkName to lowercase (#4412) 2017-07-28 13:34:55 +02:00
Lynx Kotoura e33c379065 Fix protruded infomation board section in about/more page (#4415)
* Fix protruded infomation board section

Set "flexwrap: wrap" for sections. Set upper and lower padding for each section, and adjust clearances around sections accordingly. Settings for viewport threshold 500px is no more needed.

* Fix mistake of reducing information-board padding

In according with this fix, additional padding setting  for maximum 840px width is no more needed.
2017-07-28 13:34:44 +02:00
Sorin Davidoi c2f18083f2 fix(actions-modal): Inconsistent margins (#4418) 2017-07-28 13:34:06 +02:00
Sorin Davidoi fd6c6cf717 Improve accessibility (part 5) (#4417)
* fix(status): Add tabIndex=0

* fix(status_list): Make keyboard navigable
2017-07-28 13:33:40 +02:00
Yamagishi Kazutoshi 16075fc5ef Fix column header in landing page (regression from #4405) (#4416) 2017-07-28 13:32:41 +02:00
Yamagishi Kazutoshi c196698be5 Fix broken PropTypes (#4413) 2017-07-28 13:32:05 +02:00
m4sk1n 24ec1e69b3 i18n: Update Polish translation (#4414)
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2017-07-28 17:53:44 +09:00
Sorin Davidoi 56c021c349 feat(web_push_notifications): Group notifications (#4388) 2017-07-28 05:06:22 +02:00
Sorin Davidoi b16e20e105 fix(web_push_notification): Do not hard reload tab (#4380)
* fix(web_push_notification): Do not hard reload tab

* fix(web_push_notification_worker): Guard against null subscription

* refactor: Incorporate pull request feedback
2017-07-28 05:06:01 +02:00
Sorin Davidoi 3ddfab69a5 Improve accessibility (part 4) (#4408)
* fix(dropdown_menu): Keyboard navigation

* fix(icon_button): Add aria-pressed attribute

* fix(privacy_dropdown): Make accessible

* fix(emoji_picker_dropdown): Make accessible

* fix(icon_button): Support tabIndex

* fix(actions_modal): Remove icon from tab order

* fix(dropdown_menu): Add role=group

* fix(setting_toggle): Toggle via space key

* fix(dropdown_menu): Remove redundant handling of Space key

* fix(emoji_picker_dropdown): Remove redundant Space key handling

* fix(privacy_dropdown): Remove redundant Space key handling

* fix(status): Switch to article and add aria-posinset, aria-setsize

* fix(status_list): Use role=feed and pass more ARIA props to Status

* chore(eslint): jsx-a11y/role-supports-aria-props
2017-07-28 04:37:30 +02:00
Sorin Davidoi c58bcdeb5d feat: Web Share for detailed status and account (#4402)
* feat: Web Share for detailed status and account

* fix(account/action_bar): Move share under mention
2017-07-28 00:55:15 +02:00
Sorin Davidoi 8a9d376d6a Improve accessibility (part 3) (#4405)
* fix(compose): Add aria-label for the navigation links

* fix(search): Add input label

* fix(navigation_bar): Link description

* fix(autosuggest_textarea): Add input label

* fix(compose_form): Add input label

* fix(upload_button): Add input label

* fix(account/header): Add link content

* fix(column_header): Use h1 tag

* fix(column_header): Labels move buttons moving column

* fix(settings_text): Add label to input

* fix(column_header): Remove role from h1

* fix(modal_root): Use role=dialog

* fix(modal_root): Focus restauration

* fix(modal_root): Apply inert to sibligs

* fix(column_header): Add role=button

* chore(eslint): Disable jsx-a11y/label-has-for
2017-07-28 00:54:48 +02:00
Sorin Davidoi 270039d6df fix(actions_modal): Warning about missing prop (#4406) 2017-07-27 23:01:50 +02:00
Sorin Davidoi 9cb72c6600 fix(dropdown_menu): Open as modal on mobile (#4295)
* fix(dropdown_menu): Open as modal on mobile

* fix(dropdown_menu): Open modal on touch

* fix(dropdown_menu): Show status

* fix(dropdown_menu): Max dimensions and reduce padding

* chore(dropdown_menu): Test new functionality

* refactor: Use DropdownMenuContainer instead of DropdownMenu

* feat(privacy_dropdown): Open as modal on touch devices

* feat(modal_root): Do not load actions-modal async
2017-07-27 22:31:59 +02:00
Yamagishi Kazutoshi fdea9d72bc Update intersection-observer to version 0.4.0 (#4398) 2017-07-27 16:20:48 +02:00
unarist 2c3996193d Fix timeline height on landing page for Safari (#4392)
`height: 100%` in `align-self: stretch` flexboxes doesn't work on Safari < 11.

https://bugs.webkit.org/show_bug.cgi?id=137730

This workaround uses flexbox instead of `height: 100%` to stretch height.
2017-07-27 15:49:56 +02:00
Sorin Davidoi 097fb21522 fix(push_subscription): Use star icon for favourite action (#4396) 2017-07-27 15:46:33 +02:00
Yamagishi Kazutoshi ba1f0b8426 Fallback to site_hostname when site_title is empty (#4394) 2017-07-27 15:13:49 +02:00
nullkal 977140ed3c Fix an error when a user tries to search nonexistent remote user (regression from #4275) (#4400) 2017-07-27 15:11:59 +02:00
Ondřej Hruška 5eb1a1aaca Fix multipoint shortcode bug (#4387)
* Fix multipoint shortcode bug

* Added testcase for composite emoji shortcode
2017-07-27 01:02:15 +02:00
Clworld 0c86b36cac Add callback_url/acct information for Sidekiq PuSH workers Exception. (#4281)
* Add destination informations to exception on SubscribeWorker and DeliveryWorker.

* Simplify delivery error message.

* Prevent changing Exception type...

* fix typo.
2017-07-27 00:38:20 +02:00
Jeroen 3fd358b641 Update Dutch strings (#4389) 2017-07-27 00:37:35 +02:00
Eugen Rochko 84b40ce9a7 Fix #4026 - Accept backup codes for disabling 2FA (#4382) 2017-07-26 23:36:33 +02:00
Eugen Rochko 24ab0958f9 Fix infinite scroll fluidity (#4381) 2017-07-26 23:35:03 +02:00
Sorin Davidoi 7ae272fbb6 fix(columns_area): Manually set tabs style when swiping (#4320) 2017-07-26 19:03:56 +02:00
Sorin Davidoi eb30328beb fix(web_push_notification_worker): Guard against deleted notifications (#4379) 2017-07-26 16:14:39 +02:00
Sorin Davidoi d63950f5b0 fix(column): Crash when heading is undefined (#4378) 2017-07-26 15:03:23 +02:00
mayaeh 4f5d39c879 Update Japanese translations (#4376)
* Update Japanese translations for remote profile, settings toggle button and web share button.

* Update Japanese translation for remote profile.
2017-07-26 21:57:51 +09:00
Sorin Davidoi 8345b4d79a Improve accessibility (part 2) (#4377)
* fix(column_header): Invalid ARIA role

* fix(column): Remove hidden nodes from the DOM

* refactor(column_link): Remove unused property hideOnMobile

* fix(column_header): Use aria-pressed

* fix(column_header): Make collapsed content not focusable, add focusable property

* fix(column_loading): Make header non-focusable

* fix(column_settings): Use role to group the toggles
2017-07-26 13:46:53 +02:00
Lynx Kotoura 0e69833b30 Fix padding in hero container of landing page (#4373)
* Fix padding in hero container, landing page

Erase hero container padding to fit registration form to full width. By this setting, heading padding disappears, so I adjust heading padding.

* Specify attribute strictly for heading padding

To overwrite padding-bottom in superior settings.

* Make padding shorthand more concise
2017-07-26 13:45:49 +02:00
m4sk1n 878a07bf01 i18n: Update Polish translation (#4371) 2017-07-26 16:09:16 +09:00
Sorin Davidoi 9582932d0a Improve accessibility (#4369)
* fix(compose): Use nav and remove redundant aria-label

* fix(tabs_tab): Use nav and add aria-label

* fix(app): Add aria-label for settings toggle button

* chore: Run yarn manage:translations
2017-07-26 02:01:27 +02:00
Ondřej Hruška 74e54cd45b Added external link icons to joinmastodon navbar buttons (#4368) 2017-07-26 02:00:36 +02:00
m4sk1n 107405f0ea i18n: Update Polish translation (#4367) 2017-07-25 23:56:04 +02:00
Lynx Kotoura 2e201ac766 Adjust mobile landing page (#4366)
* Adjust mobile landing page

Change mobile viewport threshold to 840px in consideration of padding. Fix loss of "container hero" padding in about/more under 675px.

* Fix indent
2017-07-25 21:31:56 +02:00
Sorin Davidoi b504cdb82e feat(status_action_bar): Web share button (#4365) 2017-07-25 20:38:39 +02:00
Lynx Kotoura 8a9b89ed72 Fix multiple-gif display in user page (#4364)
Divide media-items to equal width, and hide overlaps.
2017-07-25 19:12:57 +02:00
Clworld c04a271cca Allow longer link text on landing page (reduce padding for Mobile) (#4363)
* Allow longer link text on landing page (reduce padding for Mobile)

* remove empty line
2017-07-25 16:20:26 +02:00
Akihiko Odaki 98ba57efca Merge queries in Api::V1::FavouritesController (#4359) 2017-07-25 16:01:03 +02:00
Yamagishi Kazutoshi 9510179cc1 Send short account URL to remote instance (regression from #3844) (#4355)
* Send short account URL to remote instance (regression from #3844)

Resolve #4347

* remove format: 'json'
2017-07-25 15:59:43 +02:00
m4sk1n 547991156b i18n: Update Polish translation (#4361) 2017-07-25 22:39:49 +09:00
Komic 5c23678037 Small fr.json update (#4354)
* Small fr.json update

• Translation for #4342
• Fixed a couple of typos as well as a few weird phrasings

* insert final newline
2017-07-25 12:01:47 +09:00
Sorin Davidoi 348994c2de fix(status_list): Guard against missing ref (#4353) 2017-07-25 02:13:05 +02:00
Jeroen 1c9aac4878 Update and (almost) completing Dutch strings for 1.5 (#4351)
* Update and expanding Dutch strings for 1.5

Only privacy policy is not translated, but is included. Hopefully I have time to translate this another time (you can set your own privacy policy now anyway).

* Missing file

* A few changes cause of changes in another file

* Fix

* Update Dutch strings for 1.5

* nl

* fix

don't know how that ended up there

* Update nl.yml
2017-07-25 02:12:50 +02:00
Sorin Davidoi 3e17162902 fix(column): Use passive wheel listener (#4348)
* chore(yarn): Install detect-passive-events

* fix(column): Use passive listener
2017-07-25 01:05:51 +02:00
Sorin Davidoi 94ac88ec7f fix(components/bundle): Exit early in load function (#4349) 2017-07-25 01:05:44 +02:00
Sorin Davidoi bbc0ba610b fix(getting_started): No scrollbar if not needed (#4350) 2017-07-25 01:05:35 +02:00
Eugen Rochko 5a7d5c0fd8 Improve remote profile disclaimer (#4342)
* Improve remote profile disclaimer

* yarn run manage:translations
2017-07-24 20:05:29 +02:00
Sorin Davidoi c0925a2cdd fix(compose_from): Do not autofocus on mobile (#4344) 2017-07-24 19:54:39 +02:00
Eugen Rochko 0d0b225136 Fix oddities with public profile CSS (#4341)
* Fix oddities with public profile CSS

* Remove trailing whitespace
2017-07-24 17:56:50 +02:00
Eugen Rochko fae1d9052b Redesign /terms page (#4338)
* Redesign /terms page

* Fix tests

* Remove unused keys
2017-07-24 17:15:15 +02:00
Lynx Kotoura 5bdb375b9e Perfectly center mastodon logo on mobile landing page (#4339)
Setting only padding-left made the logo left-shifted on mobile page. Margin-right was old setting for adjusting clearance between old logo and letter "Mastodon".
2017-07-24 16:52:47 +02:00
Eugen Rochko 97dda48f70 Move clean up of unconfirmed users to sidekiq-scheduler (#4336)
* Move clean up of unconfirmed users to sidekiq-scheduler

* mastodon:daily is now deprecated
2017-07-24 16:17:55 +02:00
Eugen Rochko e43e0e959c Redesign extended information page (#4322)
* Redesign extended information page

* Remove unused keys

* Add $ui-base-lighter-color variable to SCSS
2017-07-24 15:09:08 +02:00
Yamagishi Kazutoshi 6a0cf5945c Change defaultMessage for spoiler placeholder (#4329) 2017-07-24 14:49:06 +02:00
sdukhovni 961f103c35 Allow domain blocks that only reject media without silencing or suspending (#4325)
* Allow domain blocks to reject media without silencing or suspending

* Fix typo

* Hide 'Reject media' button when superfluous, instead of disabling it

* Properly hide 'reject media' checkbox on page load if needed

This may happen when resubmitting the domain block form after an error.

* Don't ask whether undoing a media-only block should be retroactive

* Rename :media_only block to :noop

* Display :noop block as None in frontend, allow blocks that do nothing

* Remove 'coding' line auto-added by emacs
2017-07-24 14:26:55 +02:00
Andrew Zyabin bf06178f16 Update Russian translation for #4313 (#4334) 2017-07-24 13:37:05 +02:00
Yamagishi Kazutoshi 8d6f7d50bd Add space to toot paragraph in landing page (#4331) 2017-07-24 10:43:59 +02:00
m4sk1n 9be9227c38 i18n: Update Polish translation (#4327)
* i18n: Update Polish translation

* i18n: Update Polish translation
2017-07-23 23:57:13 +02:00
Sorin Davidoi 78ff8d3421 feat: Enable push subscription for mobile devices by default (#4321) 2017-07-23 23:27:23 +02:00
Yamagishi Kazutoshi 99dfbbf623 Fix manifest description (regression from #4122) (#4324) 2017-07-23 23:04:44 +02:00
Yamagishi Kazutoshi 0e677c278d Update Japanese translations for #4313 and #4315 (#4323)
* Update Japanese translations for #4313

* Update Japanese translations for #4315
2017-07-23 23:04:25 +02:00
Eugen Rochko eef0a452a0 Add background to media modal (#4317) 2017-07-23 20:28:31 +02:00
Eugen Rochko 0b14f80814 Add loading indicator animation (#4316) 2017-07-23 20:28:18 +02:00
Eugen Rochko cdaf19daeb Improve noscript message and style (#4315) 2017-07-23 20:28:06 +02:00
Sylvhem 55947cddc1 Change "Content Warning" to "Write your warning here" (#4313)
Change the placeholder used in the content warning field from "Content Warning" to "Write your warning here". This change should made it easier to understand what the field is about.

Change le message de substitution utilisé dans le champ d’avertissement de « Avertissement » à « Écrivez ici votre avertissement ». Ce changement devrait rendre plus évidente la fonction du champ.
2017-07-23 16:57:32 +02:00
Sorin Davidoi f1a81063ac fix(getting_started): Scroll on mobile (#4312) 2017-07-23 14:50:26 +02:00
m4sk1n 719eb72650 i18n: Update Polish translation (#4311) 2017-07-23 14:50:10 +02:00
Sorin Davidoi ad33c1e6bc fix(columns_area): Show correct title for preview columns (#4310) 2017-07-23 14:03:35 +02:00
Quent-in f62d565969 i10n Update for Occitan (#4301)
* Update to translate new strings

* Update

* Update

* Indend added

* Update oc.yml
2017-07-23 12:46:40 +02:00
Yamagishi Kazutoshi 2e766841f3 Change logo.png to logo.svg for web UI (#4307) 2017-07-23 11:09:42 +02:00
Eugen Rochko 78c7c9fb0f New logo (#4306)
* Add new logo

* Remove unused images
2017-07-23 02:40:39 +02:00
Eugen Rochko a09a4a5899 Add rake task mastodon:feeds:build to regenerate all active users' feeds (#4303) 2017-07-23 01:15:04 +02:00
Eugen Rochko 9f232204b8 Run yarn run manage:translations and i18n-tasks normalize (#4302) 2017-07-23 01:14:57 +02:00
Ondřej Hruška 72b5bbd1a5 Changed landing page cloud animation to be more relaxed and smoother (#4304) 2017-07-22 22:27:06 +02:00
Damien Erambert 70d4d90813 Update French locales (settings, ToS, & co) (#4261)
* add fr-FR locales to the landing page

* moar french locales

* terms of service/privacy policy

* remove un-used locales in the client (yarn manage:translations)

* update french locales in the client

* remove duplicate locales in fr.yml

* fix typos per PR comments in fr.yml

* put back default messages

* translate untranslated keys on the client

* add "push" after notifications

* correctly ident ToS in fr.yml
2017-07-22 20:28:40 +02:00
Eugen Rochko 6ab3893157 Turn clouds on landing page into SVGs, use SCSS variables to color them (#4299) 2017-07-22 16:36:54 +02:00
Eugen Rochko cf253b725e Fix #4172 - Mutes now block notifications (#4300) 2017-07-22 16:36:36 +02:00
Sorin Davidoi 944d387a03 feat(compose): Change media query for compact mode to max-height: 400px (#4291) 2017-07-21 14:22:29 +02:00
Yamagishi Kazutoshi 5ed05aa5af Dynamicaly change avatar and header bg from account setting (#4289) 2017-07-21 12:47:16 +02:00
Eugen Rochko c35ea3636c Fix #3220 - Show avatar/header on edit profile page (#4288) 2017-07-21 05:28:51 +02:00
Eugen Rochko 65a1c48653 Use the same emoji data on the frontend and backend (#4284)
* Use the same emoji data on the frontend and backend

* Move emoji.json to repository, add tests

This way you don't need to install node dependencies if you only
want to run Ruby code
2017-07-21 04:27:40 +02:00
Sorin Davidoi 324d98b5a8 feat(compose): More space on mobile devices (#4282)
* feat(compose): More space on mobile devices

* feat(compose): Hide navigation when typing on mobile devices

* fix(compose): Make animation faster

* fix(navigation_bar): Remove hardcoded title

* fix(compose): Prevent accidental bluring

* fix(compose): Increase max-height to 600px
2017-07-21 01:38:24 +02:00
Eugen Rochko 9d8d1d90e0 Add button to re-subscribe to all accounts from a domain (#4285) 2017-07-20 23:07:13 +02:00
Eugen Rochko 75ab767791 Fix webfinger retries (#4275)
* Do not raise unretryable exceptions in ResolveRemoteAccountService

* Removed fatal exceptions from ResolveRemoteAccountService

Exceptions that cannot be retried should not be raised. New exception
class for those that can be retried (Mastodon::UnexpectedResponseError)
2017-07-20 01:59:07 +02:00
Sorin Davidoi 2de75ba29d feat(css): Remove border radius from WebKit's scrollbars (#4278) 2017-07-20 00:20:54 +02:00
Sorin Davidoi 707d6fa9c0 fix(status_list): Update scroll position after toots are appended (#4277) 2017-07-19 22:38:26 +02:00
Sorin Davidoi 04ec8a8f38 fix(push_subscription): Guard against malformed favourite notification (#4271) 2017-07-19 22:37:52 +02:00
unarist c44fcfd9e7 Update scroll top state on column mounting (#4276) 2017-07-19 20:26:51 +02:00
Sorin Davidoi e6275b4ade fix: Handle errors without response (#4274) 2017-07-19 19:38:50 +02:00
Eugen Rochko 81ebd4025a Add ActivityPub attributes to accounts (#4273) 2017-07-19 17:06:46 +02:00
Akihiko Odaki b085c55263 Fix logging in ProcessFeedService (#4270) 2017-07-19 16:02:03 +02:00
Eugen Rochko df59dc6639 Refactor ResolveRemoteAccountService (#4258)
* Refactor ResolveRemoteAccountService

* Remove trailing whitespace

* Use redis locks around critical ResolveRemoteAccountService code

* Add test for race condition of lock
2017-07-19 14:44:04 +02:00
Cygnan 77c64924bc Fix a typo in public.js (double semicolons) (#4269)
Signed-off-by: Cygnan <mail@cygnan.com>
2017-07-19 13:35:22 +02:00
m4sk1n 8465019f54 i18n: Update Polish translation (#4268) 2017-07-19 12:25:06 +02:00
Eugen Rochko 7b610bea1b Fix deprecation warning for non-pipeline assets (#4267) 2017-07-19 12:00:05 +02:00
Yamagishi Kazutoshi 9392d10250 Add feature to revoke sessions (#4259) 2017-07-19 04:59:04 +02:00
Eugen Rochko 3852032953 Correct OStatus inflection (Ostatus -> OStatus) (#4255) 2017-07-19 01:37:26 +02:00
Sorin Davidoi fa9c117921 feat(emoji): Add back title attribute (#4253) 2017-07-18 22:49:24 +02:00
lindwurm b8db4f786a Update Japanese translation (chase #4249) (#4251)
Signed-off-by: lindwurm <lindwurm.q@gmail.com>
2017-07-18 20:03:18 +02:00
m4sk1n 03644ac855 i18n: Update Polish translation (#4252)
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2017-07-18 20:03:06 +02:00
lindwurm 9756975884 Add Japanese translation for #4246 (#4249)
Signed-off-by: lindwurm <lindwurm.q@gmail.com>
2017-07-18 18:43:19 +02:00
lindwurm 7c0b509ba9 Update Japanese translations for new landing page (#4159)
Signed-off-by: lindwurm <lindwurm.q@gmail.com>
2017-07-18 18:42:59 +02:00
Yamagishi Kazutoshi 87bb16a236 Add unfollow modal (optional) (#4246)
* Add unfollow modal

* unfollowing someone

* remove unnecessary prop
2017-07-18 17:14:43 +02:00
Akihiko Odaki b0f97d9a87 Introduce Ostatus name space (#4164)
* Wrap methods of ProcessFeedService::ProcessEntry in classes

This is a change same with 002ed7dc62, except
that it has the following changes:

* Revert irrelevant change in find_or_create_conversation
* Fix error handling for RemoteActivity

* Introduce Ostatus name space
2017-07-18 16:39:47 +02:00
abcang e3251e74c1 Improve admin page (#4121)
* Improve admin page

* Fix test

* Add spec

* Improve select style
2017-07-18 16:38:22 +02:00
Sorin Davidoi 3d4ae604b8 fix(push-subscriptions): Refactor how Sidekiq jobs are handled (#4226) 2017-07-18 16:25:40 +02:00
abcang c5cd48bff7 Fixed issue that the NSFW image is not hidden on detail page (#4244) 2017-07-18 15:24:57 +02:00
Yamagishi Kazutoshi fe4429446f Add empty alt attribute to img elements in landing page (#4243) 2017-07-18 15:22:09 +02:00
Yamagishi Kazutoshi af027b6b30 Exclude self toots from regular expression filter (#4245)
* Exclude self toots from regular expression filter

* refactor
2017-07-18 15:20:38 +02:00
Sorin Davidoi 49389c3809 feat(push-notifications): Open link in current tab if possible (#4228)
* fix(push-notification): Open link in current tab if possible

* feat(sw): Skip waiting and claim clients
2017-07-18 00:19:17 +02:00
Akihiko Odaki df2a07d354 Require any modules after loading polyfill in entry points (#4231)
app/javascript/mastodon/main.js delayed the execution of modules,
but other entry points didn't. That leads to failure in executing
modules, which requires those polyfills.

Strictly enforce the rule to require any modules after loading
polyfill in entry points.
2017-07-18 00:19:02 +02:00
Lynx Kotoura 64202d0fcf Quit overwriting style of extended-video-player (#4237)
Though size of extended-video-player is already fixed to 80vw*80vh in components.scss, player size was also set to original video size in extended_video_player.js. Video size is fixed to 80vw*80vh, so video player's size must also be fixed to 80vw*80vh.
2017-07-17 19:05:29 +02:00
Akihiko Odaki 6eff4496e3 Improve a query in WebPushNotificationWorker (#4234) 2017-07-17 11:03:48 +02:00
Akihiko Odaki 71a02eb2d9 Use update method to update session in WebPushNotificationWorker (#4235) 2017-07-17 11:03:42 +02:00
Sorin Davidoi 36d42f83f3 fix(emojis): Handle multipoint emojis (e.g. country flags) (#4221) 2017-07-17 10:57:45 +02:00
Eugen Rochko b4b3bf7c12 Add missing ActivityPub representations (#4230)
- Follow, undo follow
- Accept follow, reject follow
- Like, undo like
- Block, undo block
- Delete (note)
- Update (actor)
2017-07-17 10:57:04 +02:00
Akihiko Odaki 53cb659076 Require images in common.js (#4232) 2017-07-17 10:23:28 +02:00
Eugen Rochko 9aa9548884 Add public key declaration to actors (#4215) 2017-07-17 02:37:27 +02:00
Lynx Kotoura 160d0e1089 Fix style settings for images in media modal (#4220)
* Shrink too wide single image modal

Fix too wide react-swipeable-view-container

Fix 0067f80 shrinking all react-swipeable-view-container

Change to apply max-width of react-swipeable-view-container only under media-modal.

Fix b30b03b just a typo

* Centering contents in image-loader

Centering small img, canvas, and video in image-loader.
2017-07-16 11:52:11 +02:00
Eugen Rochko f3ed02e492 Minor ActivityPub JSON fixes (#4214)
- Objects must have attributedTo instead of actor
- The current attribute belongs to CollectionPage, not Collection
2017-07-16 10:28:55 +02:00
unarist 55313a0102 Fix column swiping (#4211)
This fixes broken behavior and enable animation only on swiping.
2017-07-15 17:25:04 +02:00
ThibG 9c1791c546 Optimize uri normalization (#4212)
* Add dependency on idn-ruby to speed up URI normalization

* Use normalized_host instead of normalize.host when applicable

When we are only interested in the normalized host, calling normalized_host
avoids normalizing the other components of the URI as well as creating a
new object
2017-07-15 17:24:35 +02:00
Eugen Rochko c99f41dc3c Improve ActivityPub representations (#3844)
* Improve webfinger templates and make tests more flexible

* Clean up AS2 representation of actor

* Refactor outbox

* Create activities representation

* Add representations of followers/following collections, do not redirect /users/:username route if format is empty

* Remove unused translations

* ActivityPub endpoint for single statuses, add ActivityPub::TagManager for better
URL/URI generation

* Add ActivityPub::TagManager#to

* Represent all attachments as Document instead of Image/Video specifically
(Because for remote ones we may not know for sure)

Add mentions and hashtags representation to AP notes

* Add AP-resolvable hashtag URIs

* Use ActiveModelSerializers for ActivityPub

* Clean up unused translations

* Separate route for object and activity

* Adjust cc/to matrices

* Add to/cc to activities, ensure announce activity embeds target status and
not the wrapper status, add "id" to all collections
2017-07-15 03:01:39 +02:00
Eugen Rochko c0e596062b Fix #3773 - Pin favourites column (#4201) 2017-07-15 00:49:34 +02:00
Eugen Rochko c6e46f7421 Fix #2672 - Connect signed PuSH subscription requests to instance domain (#4205)
* Fix #2672 - Connect signed PuSH subscription requests to instance domain

Resolves #2739

* Fix return of locate_subscription

* Fix tests
2017-07-14 23:01:20 +02:00
Eugen Rochko c38739d81e Fix subsequent replies to unresolved status not being filtered from home (#4190)
Resolves #4177 - smaller changeset
2017-07-14 22:31:38 +02:00
Sorin Davidoi 20111dd4d5 Small style fixes (#4206)
* fix(components/media_modal): Center horizontally in Firefox

* fix(components/status_list): Do not remove load more button
2017-07-14 22:31:25 +02:00
unarist df81145b7c Fix response of unreblog/unfavourite APIs (#4204)
Both APIs process asynchronously, so reblogged/favourited fields in the response should be set to `false` manually.
2017-07-14 20:44:53 +02:00
Eugen Rochko c5fa4aba91 HTTP signatures (#4146)
* Add Request class with HTTP signature generator

Spec: https://tools.ietf.org/html/draft-cavage-http-signatures-06

* Add HTTP signature verification concern

* Add test for SignatureVerification concern

* Add basic test for Request class

* Make PuSH subscribe/unsubscribe requests use new Request class

Accidentally fix lease_seconds not being set and sent properly, and
change the new minimum subscription duration to 1 day

* Make all PuSH workers use new Request class

* Make Salmon sender use new Request class

* Make FetchLinkService use new Request class

* Make FetchAtomService use the new Request class

* Make Remotable use the new Request class

* Make ResolveRemoteAccountService use the new Request class

* Add more tests

* Allow +-30 seconds window for signed request to remain valid

* Disable time window validation for signed requests, restore 7 days
as PuSH subscription duration (which was previous default due to a bug)
2017-07-14 20:41:49 +02:00
Sorin Davidoi 8207918890 🎄🔨 Force tree shake emojione (#4202)
* chore(yarn): Install babel-plugin-preval as development dependency

* feat(babel): Add preval as a plugin

* feat(emojione_light): Prevaled module what tree-shaked emojione

* refactor(emoji): Use emojione_light

* feat: Preload emojione_picker bundle

* fix(emojione_light): Do not use Object.entries

* fix(emojify): Update tests

* chore(emojione_light): Remove silly ascii art
2017-07-14 20:30:12 +02:00
Eugen Rochko 5138dde794 Fix #4149, fix #1199 - Store emojis as unicode (#4189)
- Use unicode when selecting emoji through picker
- Convert shortcodes to unicode when storing text input server-side
- Do not convert shortcodes in JS anymore
2017-07-14 19:47:53 +02:00
Eugen Rochko 7d8fd050eb Add option to opt out of search engines on public profile/status pages (#4199) 2017-07-14 16:41:02 +02:00
Albert ARIBAUD 2772a256c1 fr.json: replace "silencer" with "masquer" (#4196)
"Silencer" as a verb does not exist in French. A good and valid replacement is "masquer".
2017-07-14 12:12:16 +02:00
Yamagishi Kazutoshi 5b2a54e305 Do not load unnecessary script files (#4193) 2017-07-14 11:08:56 +02:00
Yamagishi Kazutoshi 9669dc86f4 Add Japanese translations for #3243 (#4192) 2017-07-14 11:03:01 +02:00
masarakki d0a037ae79 add validation to tag name (#4194) 2017-07-14 11:02:49 +02:00
unarist e9f905bc87 Add object-fit polyfill for Edge (#4182) 2017-07-14 01:59:34 +02:00
Sorin Davidoi 912ca0fa57 Improve swiping (#4188)
* feat(components/columns_area): Toggle animation settings

* fix(components/media_modal): Center non-visible views

* fix(components/media_modal): Check for null

* refactor(columns_area): Better logic
2017-07-14 00:49:01 +02:00
Sorin Davidoi b047d5c747 fix(components/media_modal): Style issues (#4187) 2017-07-13 22:18:18 +02:00
Sorin Davidoi ecab38fd66 Web Push Notifications (#3243)
* feat: Register push subscription

* feat: Notify when mentioned

* feat: Boost, favourite, reply, follow, follow request

* feat: Notification interaction

* feat: Handle change of public key

* feat: Unsubscribe if things go wrong

* feat: Do not send normal notifications if push is enabled

* feat: Focus client if open

* refactor: Move push logic to WebPushSubscription

* feat: Better title and body

* feat: Localize messages

* chore: Fix lint errors

* feat: Settings

* refactor: Lazy load

* fix: Check if push settings exist

* feat: Device-based preferences

* refactor: Simplify logic

* refactor: Pull request feedback

* refactor: Pull request feedback

* refactor: Create /api/web/push_subscriptions endpoint

* feat: Spec PushSubscriptionController

* refactor: WebPushSubscription => Web::PushSubscription

* feat: Spec Web::PushSubscription

* feat: Display first media attachment

* feat: Support direction

* fix: Stuff broken while rebasing

* refactor: Integration with session activations

* refactor: Cleanup

* refactor: Simplify implementation

* feat: Set VAPID keys via environment

* chore: Comments

* fix: Crash when no alerts

* fix: Set VAPID keys in testing environment

* fix: Follow link

* feat: Notification actions

* fix: Delete previous subscription

* chore: Temporary logs

* refactor: Move migration to a later date

* fix: Fetch the correct session activation and misc bugs

* refactor: Move migration to a later date

* fix: Remove follow request (no notifications)

* feat: Send administrator contact to push service

* feat: Set time-to-live

* fix: Do not show sensitive images

* fix: Reducer crash in error handling

* feat: Add badge

* chore: Fix lint error

* fix: Checkbox label overlap

* fix: Check for payload support

* fix: Rename action "type" (crash in latest Chrome)

* feat: Action to expand notification

* fix: Lint errors

* fix: Unescape notification body

* fix: Do not allow boosting if the status is hidden

* feat: Add VAPID keys to the production sample environment

* fix: Strip HTML tags from status

* refactor: Better error messages

* refactor: Handle browser not implementing the VAPID protocol (Samsung Internet)

* fix: Error when target_status is nil

* fix: Handle lack of image

* fix: Delete reference to invalid subscriptions

* feat: Better error handling

* fix: Unescape HTML characters after tags are striped

* refactor: Simpify code

* fix: Modify to work with #4091

* Sort strings alphabetically

* i18n: Updated Polish translation

it annoys me that it's not fully localized :P

* refactor: Use current_session in PushSubscriptionController

* fix: Rebase mistake

* fix: Set cacheName to mastodon

* refactor: Pull request feedback

* refactor: Remove logging statements

* chore(yarn): Fix conflicts with master

* chore(yarn): Copy latest from master

* chore(yarn): Readd offline-plugin

* refactor: Use save! and update!

* refactor: Send notifications async

* fix: Allow retry when push fails

* fix: Save track for failed pushes

* fix: Minify sw.js

* fix: Remove account_id from fabricator
2017-07-13 22:15:32 +02:00
unarist ae26d7b557 Make tag search case insensitive again (#4184) 2017-07-13 19:31:33 +02:00
unarist 90429d70fd Add background color for spoiler input, like toot textarea (#4181) 2017-07-13 14:49:57 +02:00
Eugen Rochko 4e7288d18a Fix boolean columns sometimes having a null value (#4162)
* Fix boolean columns sometimes having a null value

* Fix wrong value being set instead of null
2017-07-13 03:12:25 +02:00
Eugen Rochko 348de9dbc3 Fix #1010 - When spoiler text is set, enforce sensitivity too (#4176) 2017-07-13 01:47:23 +02:00
unarist c3ec4f2dac Rerender modal on property changes (#4175)
Render function for BundleContainer must not be methods.
React doesn't know dependency of the method, so they won't rerender on property updates.

In this case, when you close modal and open another modal immediately,
old modal will be open instead of new one.
2017-07-12 20:51:44 +02:00
m4sk1n a5ea495c96 i18n: @49026e2, @8abeec1 + consistency improvement (pl) (#4171)
* i18n: @49026e2 (pl)

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

* i18n: @8abeec1 (pl)

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

* i18n: Improve consistency (pl)

Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2017-07-12 15:53:50 +02:00
Eugen Rochko 8abeec1f4f Improve UI of admin site settings (#4163) 2017-07-12 03:24:04 +02:00
Eugen Rochko eb0c9a8831 Fix #4067 - Do not make HTTP round-trip when resolving local URL (#4160) 2017-07-12 00:39:15 +02:00
Naoki Kosaka 6e511ee673 Fix media modal prev button behavior. (#4158) 2017-07-11 19:56:45 +02:00
nightpool 336f1bc5ec Revert "Wrap methods of ProcessFeedService::ProcessEntry in classes (#4151)" (#4157)
This reverts commit 002ed7dc62.
2017-07-11 18:19:16 +02:00
Eugen Rochko 903b34fa94 Fix #2848 - Rake task to redownload avatars/headers (#4156)
Can be filtered by a specific domain
Resolves #2292
2017-07-11 17:25:49 +02:00
Eugen Rochko 9fff81f676 Fix #3462 - Require authentication for search API (#4155)
This makes it consistent with /api/v1/accounts/search and
previous behaviour has been an oversight.
2017-07-11 17:08:26 +02:00
Eugen Rochko 49026e27e8 Redesign the landing page, mount public timeline on it (#4122)
* Redesign the landing page, mount public timeline on it

* Adjust the standalone mounted component to the lacking of router

* Adjust auth layout pages to new design

* Fix tests

* Standalone public timeline polling every 5 seconds

* Remove now obsolete translations

* Add responsive design for new landing page

* Address reviews

* Add floating clouds behind frontpage form

* Use access token from public page when available

* Fix mentions and hashtags links, cursor on status content in standalone mode

* Add footer link to source code

* Fix errors on pages that don't embed the component, use classnames

* Fix tests

* Change anonymous autoPlayGif default to false

* When gif autoplay is disabled, hover to play

* Add option to hide the timeline preview

* Slightly improve alt layout

* Add elephant friend to new frontpage

* Display "back to mastodon" in place of "login" when logged in on frontpage

* Change polling time to 3s
2017-07-11 15:27:59 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) b9e0dbe326 Require stylesheets in common.js (#4152)
Require stylesheets in common.js because stylesheets are shared by the
entry points.
2017-07-11 15:15:42 +02:00
Yamagishi Kazutoshi bf012605a3 Drawer tab according to column (#4135)
* Add notifications link to drawer

* Remove local and public timeline tab in drawer

* Add home
2017-07-11 14:36:27 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 002ed7dc62 Wrap methods of ProcessFeedService::ProcessEntry in classes (#4151)
ProcessFeedService::ProcessEntry had many methods, so wrap them in classes
representing activities.
2017-07-11 13:37:05 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 2e3f13788f Remove redundant inclusion (#4150) 2017-07-11 11:55:48 +02:00
Sorin Davidoi 1a5ae3019d refactor: Rewrite immutablejs import statements using destructuring (#4147) 2017-07-11 01:00:14 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 3db69012fd Fix PrecomputeFeedService for filtered statuses (#4148) 2017-07-11 01:00:01 +02:00
STJrInuyasha 098eef3211 Remote following success page (#4129)
* Added a success page to remote following
Includes follow-through links to web (the old redirect target) and back to the remote user's profile

* Use Account.new in spec instead of a fake with only id
(fixes spec)

* Fabricate(:account) over Account.new

* Remove self from the success text
(and all HTML with it)
2017-07-10 18:05:06 +02:00
Eugen Rochko af4835f176 Limit total subscribe retries to 10, but space them out more (#4142)
Since there is little point in retrying so often when a service is down
or does not exist anymore. Subscriptions are renewed 1 day before they
should expire, so retrying in 30 minutes, then 2 hours, then 12 hours
is fine. If even after that, the remote server does not work, there is
little sense in retrying more often than once a day

Also, uniqueness of the job should ensure that failed retries will
not result in multiple retries for the same endpoint when the next
resubscription cycle comes
2017-07-10 18:04:23 +02:00
m4sk1n f980b0090f i18n: @2cd7d15 (pl) (#4141) 2017-07-10 18:04:06 +02:00
Yamagishi Kazutoshi 1a946c1362 Add Japanese translations (#4140)
* Add Japanese translations for #3879

* Add Japanese translations for #4033

* Add Japanese translations for #4136
2017-07-10 16:32:17 +02:00
のら 682d93a869 Add Japanese translation of terms and flash (#4137) 2017-07-10 14:04:05 +02:00
Yamagishi Kazutoshi 2cd7d15620 Fix regular expression for RFC 5646 (regression from #3604) (#4133) 2017-07-10 14:02:18 +02:00
Yamagishi Kazutoshi 865f5170a8 Add setting a always mark media as sensitive (#4136) 2017-07-10 14:00:32 +02:00
abcang 60df44837e Rescue exceptions related to Goldfinger at FetchRemoteStatusService (#4138) 2017-07-10 13:59:29 +02:00
Lynx Kotoura 5703923989 Fix duplication of tag in columns_area.js (#4131)
Deleted ">" just a typo.
2017-07-10 04:37:10 +02:00
Yamagishi Kazutoshi 2ffd2303ee Add attribute for default privacy to verify credentials (#4075)
* Add attribute for default privacy to verify credentials

* add raw_note

* source
2017-07-10 03:29:34 +02:00
Sorin Davidoi f19f18f47e fix(components/media_modal): Aspect ratio (#4128)
* fix(components/media_modal): Aspect ratio

* fix: Remove useless style
2017-07-09 18:49:07 +02:00
abcang 7ee3ddac47 Rescue exceptions related to Goldfinger (#4044)
* Rescue exceptions related to Goldfinger

* Exclude Goldfinger::SSLError
2017-07-09 17:33:21 +02:00
Sorin Davidoi 420c4d8dc8 Swipeable views (#4105)
* feat: Replace react-swipeable with react-swipeable-views

* fix: iOS 9
2017-07-09 15:02:26 +02:00
unarist 05833fc24a Avoid async import if the component is previously loaded (#4127) 2017-07-09 14:52:03 +02:00
unarist f66270fb73 Fix initial loading of pinned Notifications column (#4126) 2017-07-09 13:04:30 +02:00
Sorin Davidoi 4264c62111 refactor: Make all reducers sync (#4125) 2017-07-09 12:16:08 +02:00
nullkal 07024f56df Use charlock_holmes instead of nkf at FetchLinkCardService (#4080)
* Specs for language detection

* Use CharlockHolmes instead of NKF

* Correct mistakes

* Correct style

* Set hint_enc instead of falling back and strip_tags

* Improve specs

* Add dependencies
2017-07-08 22:44:31 +02:00
abcang 87e607cab2 Change account link to admin account link on report page (#4119) 2017-07-08 18:35:08 +02:00
Sorin Davidoi c202889d8d fix: Rerender Bundle on route change (#4120) 2017-07-08 18:34:55 +02:00
unarist f1827d5070 Fix first loading of notifications when the column is pinned (#4114) 2017-07-08 17:22:24 +02:00
Yamagishi Kazutoshi a45154d725 Don't use preview when image size is unknown (#4113) 2017-07-08 17:21:59 +02:00
Yamagishi Kazutoshi aaa7f3ff41 Use srcSet only when know width (#4112) 2017-07-08 17:20:53 +02:00
Jeroen 01b589522e Update and improvement Dutch language strings (#4117)
* Update

* Update
2017-07-08 17:17:02 +02:00
Eugen Rochko 0d54e620d9 Replace OEmbed and initial state Rabl templates with serializers (#4110)
* Replace OEmbed Rabl template with serializer

* Replace initial state rabl with serializer
2017-07-08 14:51:05 +02:00
unarist 89c8a81ef9 Fix JSON serialization of media_attachment (#4111) 2017-07-08 14:50:45 +02:00
Nolan Lawson 01ee91b725 Avoid using getBoundingClientRect to calculate height (#4001) 2017-07-08 01:57:22 +02:00
Sylvhem 9f5ab101ee Various fixes in the French translation (#4107)
* Changement de « Changement de mot de passe » en « Sécurité »

* Suppression de « (Two-factor auth) »

Change la valeur de la chaîne « two_factor_authentication » de « Identification à deux facteurs (Two-factor auth) » à « Identification à deux facteurs ».
La traduction anglaise entre parathentèse était redondante et gênait la lecture.

Change the value of the "two_factor_authentication" from "Identification à deux facteurs (Two-factor auth)" to "Identification à deux facteurs".
The English translation in brackets was superflous and was getting in the way of the reader.

* Remplace « ' » par « ’ »

Retire de la traduction les apostrophes droites « ' » (U+0027) au profit des apostrophes typographiques « ’ » (U+2019).
En typographie française, les apostrophes typographiques sont utilisées à la place des apostrophes droites. La traduction était jusqu’ici incohérente et utilisait les deux.

Remove from the translation all the vertical apostrophes (U+0027) in favor of the curly ones (U+2019).
In French typography, typographic apostrophes are used instead of vertical ones. The translation was incoherent and used both.

* Remplace « ... » par « … »

Remplace les séries de trois points par le caractère dédié « … » (U+2026).

Replace all the series of three dots by the dedicated character "…" (U+2026).

* Mise à jour

Crée config/locales/activerecord.fr.yml, ajoute de nouvelles chaînes et met à jour certains textes.
Les compteurs de caractères pour le pseudonyme et la biographie devrait maintenant pouvoir fonctionner même quand l’interface est en français.

Create config/locales/activerecord.fr.yml, add new strings et update some textes.
The caracters counters for the username and the biography should now work even when the interface is in French.

* Remplace « A » par « À »

Remplace « A » par « À » aux endroits où le mot est mal orthographié.

Replace "A" by "À" when the wrong word is used.

* Ajout d’espaces insécables

Ajoute des espaces insécables suivant les régles nécessaires en typographie française.

Add non-breaking spaces following rules of French typography.

* Remplace « certain » par « certain·e »

Harmonise la traduction en remplaçant « certain » par sa forme épicène.

Harmonize the translation by replacing "certain" (sure) by its epicene form.

* Corrige un angliscisme

Remplace « adresse e-mail » par « adresse électronique ».

Replace "adresse e-mail" (e-mail address) by "adresse électronique" (electronic address).
2017-07-08 01:27:22 +02:00
Sorin Davidoi 40b32ffb12 Lazy load components (#3879)
* feat: Lazy-load routes

* feat: Lazy-load modals

* feat: Lazy-load columns

* refactor: Simplify Bundle API

* feat: Optimize bundles

* feat: Prevent flashing the waiting state

* feat: Preload commonly used bundles

* feat: Lazy load Compose reducers

* feat: Lazy load Notifications reducer

* refactor: Move all dynamic imports into one file

* fix: Minor bugs

* fix: Manually hydrate the lazy-loaded reducers

* refactor: Move all dynamic imports to async-components

* fix: Loading modal style

* refactor: Avoid converting the raw state for each lazy hydration

* refactor: Remove unused component

* refactor: Maintain modal name

* fix: Add as=script to preload link

* chore: Fix lint error

* fix(components/bundle): Check if timestamp is set when computing elapsed

* fix: Load compose reducers for the onboarding modal
2017-07-08 00:06:02 +02:00
Eugen Rochko 0217e15dd3 Fix #4058 - Use a long-lived cookie to keep track of user-level sessions (#4091)
* Fix #4058 - Use a long-lived cookie to keep track of user-level sessions

* Fix tests, smooth migrate from previous session-based identifier
2017-07-07 23:25:15 +02:00
Eugen Rochko e921680ae5 Fix notifications including wrong status in JSON (#4097) 2017-07-07 16:19:28 +02:00
Eugen Rochko 1b16fa4d2f Fix feed author not being enforced in ProcessFeedService (#4092)
Ensure the only allowed author of top-level entries in feed is the person
the feed belongs to (a verified user). Ensure delete events only apply
if the deleted item belonged to that user.
2017-07-07 04:31:40 +02:00
Eugen Rochko 20e15ecfb3 Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl (#4090) 2017-07-07 04:02:06 +02:00
のら 82e6af199a Togglable filter links (#4021)
* Togglable filter links

* Rename is_selected to selected?
2017-07-07 00:48:09 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 9669f065af Set default From address in config (#3756)
The old implementation sets default From address in mailers. It sets
the address from SMTP_FROM_ADDRESS, or notifications@localhost. The
behavior is occasionally undesired results.

In production environment, notifications@localhost is likely to be
incorrect.
In testing environment, the email address should not be varied by a
environment variable.

After appling this change,

In production environment, it will throw an exception when launching
Mastodon.
In testing environment, the address will be fixed with
notifications@localhost.
2017-07-07 00:12:12 +02:00
Damien Erambert 387de88e2f Add a setting allowing the use of system's default font in Web UI (#4033)
* add a system_font_ui setting on the server

* Plug the system_font_ui on the front-end

* add EN/FR locales for the new setting

* put Roboto after all other fonts

* remove trailing whitespace so CodeClimate is happy

* fix user_spec.rb

* correctly write user_spect this time

* slightly better way of adding the classes

* add comments to the system-font stack for clarification

* use .system-font for the class instead

* don't use multiple lines for comments

* remove trailing whitespace

* use the classnames module for consistency

* use `mastodon-font-sans-serif` instead of Roboto directly
2017-07-06 22:39:56 +02:00
abcang a4615ad12a Improve Activity stream spoiler (#4088) 2017-07-06 21:31:03 +02:00
STJrInuyasha b03812ef19 Parse links in status content on update as well as mount (#4042)
* Update links in status content on update as well as mount
Fixes occasional bugs with mentions and hashtags not being set to open in a new column like they should, and instead opening in a new page

* use classList instead of raw className
2017-07-06 21:30:37 +02:00
unarist 1e71b683bc Unobserve status on unmount (#4013)
This fixes a warning on status unmounting (e.g. deletion).

This also resets IntersectionObserverWrapper on disconnect to avoid `unobserve()` calls
which has bug in Edge.
2017-07-06 21:26:21 +02:00
Mantas e35ae80e22 Remove ugly blue highlight on Android browsers (#4031) 2017-07-06 21:26:07 +02:00
Quent-in 8ea261cc38 l10n Occitan locale (#4089)
* Small adjustments

About the report part.

* Update time format
2017-07-06 21:10:12 +02:00
Shin Kojima ddfadd8710 Fix embedded SVG fill attribute (#4086)
* Fix embedded SVG fill attribute

SCSS darken/lighten functions may not return a color value, but a color
name like "white".  See following example:

https://www.sassmeister.com/gist/c41da93b87d536890ddf30a1f42e7816

This patch will normalize $color argument to FFFFFF style.

I also changed the function name from "url-friendly-colour" to
"hex-color", Because...

1. The name "url-friendly" is not meaningful enough to describe what it
   does.

2. It is familier to me using "color" rather than "colour"

    kojima:kojiMac mastodon[master]$ git grep -l colour
    app/javascript/styles/boost.scss
    spec/fixtures/files/attachment.jpg

    kojima:kojiMac mastodon[master]$ git grep -l color
    .rspec
    .scss-lint.yml
    Gemfile.lock
    app/javascript/mastodon/features/status/components/action_bar.js
    app/javascript/styles/about.scss
    app/javascript/styles/accounts.scss
    app/javascript/styles/admin.scss
    app/javascript/styles/basics.scss
    app/javascript/styles/boost.scss
    app/javascript/styles/compact_header.scss
    app/javascript/styles/components.scss
    app/javascript/styles/containers.scss
    app/javascript/styles/footer.scss
    app/javascript/styles/forms.scss
    app/javascript/styles/landing_strip.scss
    app/javascript/styles/reset.scss
    app/javascript/styles/stream_entries.scss
    app/javascript/styles/tables.scss
    app/javascript/styles/variables.scss
    app/views/admin/subscriptions/_subscription.html.haml
    app/views/layouts/application.html.haml
    app/views/layouts/error.html.haml
    app/views/manifests/show.json.rabl
    bin/webpack-dev-server
    config/initializers/httplog.rb
    public/500.html
    public/emoji/1f1e6-1f1e8.svg
    public/emoji/1f1ec-1f1f8.svg
    public/emoji/1f1f3-1f1ee.svg
    public/emoji/1f1fb-1f1ec.svg
    spec/fixtures/requests/idn.txt
    yarn.lock

* Add semicolon
2017-07-06 15:27:02 +02:00
m4sk1n 2a41e5c9f2 i18n: minor changes in Polish translation (#4087)
* i18n: minor changes in Polish translation

* Update pl.json
2017-07-06 15:25:27 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 4a041cde77 Explicitly require MIME::Types (#4083) 2017-07-05 23:58:03 +02:00
abcang 8041c97d52 Fix Nokogiri::HTML at FetchLinkCardService (#4072) 2017-07-05 14:54:21 +02:00
unarist 90865f242a Show LoadMore button on Notifications even if all items are filtered (#4077) 2017-07-05 14:51:53 +02:00
Yamagishi Kazutoshi 560b6e861c Format datetime of subscriptions on admin UI (#4078) 2017-07-05 14:51:28 +02:00
Minori Hiraoka 1dd11f7f1a Fix Korean translation (#4065)
* Added Korean Translation (based on japanese)

* Update korean translation

* Update korean translation: fix syntax error

* Updated korean translation

* Update korean translation

* Update ko.json

Translate non-translated parts

* Update ko.yml

Translated missed parts - and fixed some typos

* Create simple_form.ko.yml

* Update simple_form.ko.yml

Translation error fix - password change form

* Update simple_form.ko.yml

* Update ko.json

Missing translation
2017-07-04 16:48:22 +02:00
Gyuhwan Park 9296aedfd8 i18n: Add korean translation (#4064)
* Added Korean Translation (based on japanese)

* Update korean translation

* Update korean translation: fix syntax error

* Updated korean translation

* Update korean translation

* Update ko.json

Translate non-translated parts

* Update ko.yml

Translated missed parts - and fixed some typos

* Create simple_form.ko.yml

* Updated korean translation

* i18n: fix test fails
2017-07-04 16:11:23 +02:00
Yamagishi Kazutoshi 68abc90aec Customizable privacy policy from admin interface (#4062) 2017-07-04 15:19:24 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) d5586563c7 Remove sort in Feed (#4050)
In from_redis method, statuses retrieved from the database was mapped to
the IDs retrieved from Redis. It was equivalent to order from high to low
because those IDs are sorted in the same order.
Statuses are ordered with the ID by default, so we do not have to reorder.
Sorting statuses in the database is even faster since the IDs are indexed
with B-tree.
2017-07-03 13:17:27 +02:00
Yamagishi Kazutoshi 5829ad0799 Add fa-fw class to user agent icon (#4047) 2017-07-03 11:04:35 +02:00
abcang 43d97dea48 Rescue exceptions caused by FetchLinkCardService (#4045) 2017-07-03 11:03:34 +02:00
Nolan Lawson 28da1d54d5 Faster emojify() by avoiding str.replace() entirely (#4049) 2017-07-03 11:02:36 +02:00
Damien Erambert 21239abcf4 Update French locales (#4034)
* add missing locales for French translation

* accent "Media" in the front-end locales

* images => médias

* Change 'rapport' to 'signalement' in French locales to be more coherent

* fix typo

* remove duplicate EN locale

* translate missing locales

* update missing locale

* fix typo

* unify with "utilisateur⋅ice⋅s"

* address PR comments
2017-07-02 18:36:35 +02:00
Sorin Davidoi 214090aa4d fix(components/columns_area): Increase delta for swipe detection (#4037) 2017-07-02 15:55:50 +02:00
Eugen Rochko 6bd8a23131 Fix height issue in report modal 2017-07-01 14:50:10 +02:00
Nolan Lawson ef21f8bc7e Faster emojify() algorithm, avoid regex replace (#4019)
* Faster emojify() algorithm, avoid regex replace

* add semicolon
2017-06-30 17:29:22 +02:00
Yamagishi Kazutoshi bf6a184b0c Fix that AdminMailer does not send (#4012) 2017-06-30 13:40:43 +02:00
Yamagishi Kazutoshi c7cefc7556 Fix broken style in media gallery (regression from #3963) (#4014) 2017-06-30 13:40:00 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) aea653f05d Do not raise an error if PrecomputeFeed could not find any status (#4015) 2017-06-30 13:39:42 +02:00
abcang 41856d021b Rescue Addressable::URI::InvalidURIError at Remotable (#4017) 2017-06-30 13:38:36 +02:00
Yamagishi Kazutoshi be5eef7b68 Replace state to /web when root path (#4009) 2017-06-30 05:37:41 +02:00
Naoki Kosaka a48f7bdf28 Fix media-gallery, overflow is hidden. (#4008) 2017-06-30 05:37:17 +02:00
abcang 572513b0b0 rescue HTTP::ConnectionError (#3992) 2017-06-29 13:04:07 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) f2c73de856 Use multiple pairs for zadd in PrecomputeFeedService (#3990) 2017-06-29 01:25:31 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 05f73fbdab Reduce number of commands in FeedManager#trim (#3989) 2017-06-29 01:17:26 +02:00
Eugen Rochko e49dd75db7 Do not fail to create access token if superapp was never created (#3986) 2017-06-28 17:43:48 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) fa7649409b Overwrite old statuses with reblogs in PrecomputeFeedService (#3984) 2017-06-28 14:50:23 +02:00
m4sk1n a7547bd97f i18n: Use instance name in email notifications instead of Mastodon (pl) (#3976)
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
2017-06-27 23:10:43 +02:00
m4sk1n f01327d859 i18n: Turn report screen into a modal (pl) (#3974) 2017-06-27 22:14:31 +02:00
Sorin Davidoi eea5c01a41 fix(components/status): Up & down jump due to content being added to the DOM (#3972) 2017-06-27 18:43:53 +02:00
Eugen Rochko 0d316bcfd2 Turn report screen into a modal (#3965) 2017-06-27 18:07:21 +02:00
Midgard 39b7512782 Use instance name in email notifications instead of "Mastodon" (#3763)
* Use instance name in "password changed" mail

instead of "Mastodon".

Fixes tootsuite#2620.

* Use instance name in password reset mail

instead of "Mastodon".
2017-06-27 14:22:36 +02:00
Sorin Davidoi d6006ecb4b Responsive images in media gallery (#3963)
* feat(components/media_gallery): Responsive images

* fix(components/media_gallery): Link to image URL
2017-06-27 13:46:37 +02:00
Yamagishi Kazutoshi 8a9408b7c3 Maintain aspect ratio for preview image (#3966) 2017-06-27 13:43:53 +02:00
Eugen Rochko d0221b05bc Fix #1624 - Send e-mail notifications to admins about new reports (#3949) 2017-06-27 00:04:00 +02:00
ThibG b9e0e43128 Raise an error if salmon request response is unsatisfactory (#3960) 2017-06-26 19:39:58 +02:00
Alda Marteau-Hardi 103f87f9ae Translate pin/unpin and fix some inconsistencies in gender neutral strings (#3952) 2017-06-26 13:04:36 +02:00
Eugen Rochko b90a44b6d0 Fix #3910 - Require OTP authentication to disable 2FA (#3935)
* Fix #3910 - Require OTP authentication to disable 2FA. Also, remove ability
to generate new OTP backup codes *after* initial backup codes were handed
out during activation

* Restore recovery code re-generation

* Improve display of some 2FA elements
2017-06-25 23:51:46 +02:00
Eugen Rochko ad531f90b1 Bind web UI access tokens to sessions (#3940)
* Add overview of active sessions

* Better display of browser/platform name

* Improve how browser information is stored and displayed for sessions overview

* Fix test

* Fix #2347 - Bind web UI access token to session

When you logout, session also destroys the access token, so it's no longer
valid. If access token is destroyed some other way, the session is also
destroyed, requiring a re-login.

Fix #1681 - Add scheduler to remove revoked access tokens and grants

* Fix test
2017-06-25 23:51:32 +02:00
Sorin Davidoi 2b1ab274fe fix(features/compose): Handle external changes to the textarea (#3632) 2017-06-25 21:43:27 +02:00
Eugen Rochko c465c5b3a8 Add overview of active sessions (#3929)
* Add overview of active sessions

* Better display of browser/platform name

* Improve how browser information is stored and displayed for sessions overview

* Fix test
2017-06-25 16:54:30 +02:00
PFM f4d0f6954e Fix "undefined" in className (#3939) 2017-06-25 16:02:56 +02:00
unarist 9a65f85934 Fix elephant in onboarding modal being very small sized on small devices (#3932) 2017-06-24 23:18:32 +02:00
unarist fdd982a562 Clean column collapsible (#3931)
* Remove unused column_collapsable.js
* Remove old styles
* Extract `> div`  style to independent class
2017-06-24 23:18:11 +02:00
Sorin Davidoi 8180d8bc35 feat(components/onboarding_modal): Swipe between pages (#3934) 2017-06-24 23:17:39 +02:00
Yamagishi Kazutoshi 6779ba5f18 Fix #3924 (regression from #3906) (#3925) 2017-06-24 12:24:02 +02:00
unarist 45058b5fde Use debounce for dispatch scrollTopNotification and expandNotifications (#3700) 2017-06-24 02:43:26 +02:00
Daniel Hunsaker 0c8f23b69f Fix a typo and give CW'd statuses the right cursor (#3918) 2017-06-23 23:13:27 +02:00
Yamagishi Kazutoshi e2027fbe42 Use Class and Property Decorators (#3730)
ref https://tc39.github.io/proposal-decorators/
2017-06-23 19:36:54 +02:00
Sorin Davidoi 1280559503 Revocable sessions (#3616)
* feat: Revocable sessions

* fix: Tests using sign_in

* feat: Configuration entry for the maximum number of session activations
2017-06-23 18:50:53 +02:00
Eugen Rochko 88458a1638 Merge branch 'swipe-gestures' of git://github.com/sorin-davidoi/mastodon into sorin-davidoi-swipe-gestures 2017-06-23 17:52:39 +02:00
Yamagishi Kazutoshi 539dbaa049 Remove unused variables (#3906) 2017-06-23 16:05:04 +02:00
Yamagishi Kazutoshi bc21ffd237 Add prefix to setting toggle ID (#3907) 2017-06-23 13:55:05 +02:00
Sorin Davidoi 9366672d53 fix: Apply :hover, :focus and :active only when multiple columns 2017-06-23 13:48:46 +02:00
Sorin Davidoi 501a3cf944 feat: Swipeable media 2017-06-23 13:48:46 +02:00
Sorin Davidoi 598bb06687 feat: Swipeable columns 2017-06-23 13:48:46 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 561ca10d86 Some minor change and spec for Account (#3813)
* Introduce domains method to Account relation

Account had followers_domains method, which was excessively specific.
Let relation of Account have domains method instead.

* Move follow_mapping in Account to AccountInteractions

* Introduce shared examples for AccountAvatar inclusion

* Cover Account more
2017-06-22 18:34:27 +02:00
Eugen Rochko e7810e4031 Fix regression from #3842 (#3892)
* Fix regression from #3842

Simplify the query by omitting all direct statuses. Private statuses
are allowed because they are from accounts we are following (so
by definition)

Resolves #3887 (alternative)

* Adjust test
2017-06-22 02:38:50 +02:00
unarist 66e14b3d3a Don't attach IntersectionObserver for wrapped statuses (#3883)
(This patch has been merged as bugfix and reverted, but still valuable as
improvement)

Previously, we've attached IntersectionObserver twice for boosted statuses:
wrapper Status and wrapped Status. but wrapped Status don't need to manage
intersection and visibility by itself, because it's a part of wrapper Status.
2017-06-21 06:47:36 +02:00
Eugen Rochko 65b46159ec Revert #3851 (#3878) 2017-06-21 01:37:15 +02:00
Eugen Rochko cbc0fea992 Revert "Don't attach IntersectionObserver for wrapped statuses" (#3877)
* Revert "Bump version to 1.4.4"

This reverts commit bd6bee29de.

* Revert "Fix conversations (fixes #3869) (#3870)"

This reverts commit ee7952c349.

* Revert "Fix streaming server. Redis connection subscribe for each channel. (#3828)"

This reverts commit 8f202bc639.

* Revert "Filter direct statuses in Status.as_home_timeline (#3842)"

This reverts commit 77dcf442e7.

* Revert "Fix RemoteFollow behavior (#3868)"

This reverts commit 1d2eba7a84.

* Revert "Update fabricator for MediaAttachment to attach a file according to type (#3862)"

This reverts commit baa248a801.

* Revert "Upgrade React Router (#3677)"

This reverts commit 9bc32eb267.

* Revert "Do not call setState from unmounted component (#3853)"

This reverts commit 59849b392d.

* Revert "Replace TextIconButton for SensitiveButton to IconButton (#3759)"

This reverts commit 47dceaded6.

* Revert "Fix RTL detection on Ruby side (#3867)"

This reverts commit 55376105f5.

* Revert "i18n: Fixed typo in Polish translation (#3864)"

This reverts commit 3c355ed26b.

* Revert "Don't attach IntersectionObserver for wrapped statuses (#3863)"

This reverts commit 79c04b0a2c.
2017-06-21 01:33:14 +02:00
ThibG ee7952c349 Fix conversations (fixes #3869) (#3870)
* Actually create conversations given explicit URIs

* Try to get the parent toot in before validation, to avoid creating a new conversation
2017-06-20 20:44:32 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 77dcf442e7 Filter direct statuses in Status.as_home_timeline (#3842)
The classes using Status.as_home_timeline, namely Feed and
PrecomputeFeedService are expected to filter direct statuses as
FanOutWriteService does, but their filtering were incomplete or missing.

This commit solves the problem by filtering direct statuses in
as_home_timeline as the other similar methods such as as_public_timeline
does.
2017-06-20 20:41:23 +02:00
unarist 1d2eba7a84 Fix RemoteFollow behavior (#3868)
* Invalid acct is an error. not "2 errors".
* Empty input should be different error from invalid acct
2017-06-20 20:40:56 +02:00
Sorin Davidoi 9bc32eb267 Upgrade React Router (#3677)
* chore(yarn): Remove react-router

* chore(yarn): Remove react-router-scroll

* chore(yarn): Remove history

* chore(yarn): Add react-router-dom

* chore: Remove usages of react-router-scroll

* refactor: Upgrade to react-router-web

* refactor: Use fork of react-router-scroll

This reverts commit 2ddea9a6c8d39fc64b7d0b587f3fbda7a45a7fa2.

* fix: Issues mentions in the PR feedback
2017-06-20 20:40:03 +02:00
alpaca-tc 59849b392d Do not call setState from unmounted component (#3853)
Stop an executing task if the component already unmounted.
2017-06-20 20:37:09 +02:00
Yamagishi Kazutoshi 47dceaded6 Replace TextIconButton for SensitiveButton to IconButton (#3759)
* Replace TextIconButton for SensitiveButton to IconButton

* line-height
2017-06-20 19:43:09 +02:00
unarist 55376105f5 Fix RTL detection on Ruby side (#3867)
This fixes below bugs:

* pipe characters being counted as RTL character
* only first word being checked
2017-06-20 18:45:09 +02:00
unarist 79c04b0a2c Don't attach IntersectionObserver for wrapped statuses (#3863)
This fixes a bug that sometimes boosted statuses being hidden on scrolling.

Previously, we've attached IntersectionObserver twice for boosted statuses:
wrapper Status and wrapped Status. This will call intersection handler twice,
so this may results race condition...probably.
2017-06-20 04:12:51 +02:00
unarist 9e5c733a66 Clicking on the CW text should expand the status (#3855) 2017-06-20 01:34:10 +02:00
unarist 8db07d1187 Set cursor:pointer only when necessary (#3857) 2017-06-19 18:27:07 +02:00
masarakki d947978192 setting-for-account-deletable (#3852) 2017-06-19 15:12:31 +02:00
Daigo 3 Dango 0483235216 Link to /about from public page on a single user instance (#3814)
There was no link for visitors to follow to see the about page.
2017-06-19 11:32:28 +02:00
Gô Shoemake 2d31077bdf Fix character/grapheme count stuff (#3839)
* Bring Toot button in line with counter

Both should use stringz I guess

* Use grapheme_length for character count
2017-06-19 11:31:14 +02:00
alpaca-tc 36049c0096 Unobserve status on unmount (#3851) 2017-06-19 11:29:57 +02:00
alpaca-tc fa14f245f8 Fixes streaming callbacks of HashtagTimeline (#3849) 2017-06-19 10:28:35 +02:00
Eugen Rochko 8bed91d94c Rename FollowRemoteAccountService to ResolveRemoteAccountService (#3847)
Rename Activitypub to ActivityPub
2017-06-19 01:51:04 +02:00
Eugen Rochko 4845069692 Debounce autosuggestions (#3836)
* Debounce autosuggestions

* Remove duplicate import
2017-06-19 01:50:56 +02:00
Nolan Lawson 424cf0a590 Fix jittery scrolling for Chromium browsers (#3776) (#3832) 2017-06-18 02:59:29 +02:00
Nolan Lawson f973d620ca handle resize in a debounce() (#3834) 2017-06-18 02:57:41 +02:00
nightpool 0048f7ac72 Whitelist allowed classes for federated statuses (#3810)
* Whitelist allowed classes for federated statuses

Allowed classes are currently:

 - Any microformats class (h/p/u/dt/e-*)
 - the classes mention, hashtag, ellipses and invisible.

this last one is somewhat suspect, but Mastodon currently uses it to render hidden link text.

resolved #3790

* Fix code style
2017-06-17 20:26:05 +02:00
abcang 3d49aa4bfb Fix ogp url (#3802) 2017-06-16 22:38:26 +02:00
Yamagishi Kazutoshi dd7fb41dbb Add alt attribute to ImageLoader (#3765) 2017-06-15 14:10:41 +02:00
ThibG dd67b9e049 Fix #3633 by not spawning RemoteProfileUpdateWorker from FetchRemoteAccountService (#3642) 2017-06-15 11:04:23 +02:00
Eugen Rochko 7181178007 Fix regression from #3490 - filter out hidden statuses from ancestors/descendants even if the viewer is anonymous (#3752) 2017-06-15 02:00:08 +02:00
Eugen Rochko 86211d3ca6 Fix regression from #3748 - properly set defaultColumns (#3750) 2017-06-14 23:07:06 +02:00
unarist 167ba4c5f7 Fix merge default columns (#3748)
mergeDeep also merges columns, but it should be replaced simply.

So in the new function, first apply mergeDeep except columns, and set default columns if columns unset.
2017-06-14 21:59:52 +02:00
Eugen Rochko c883e96d95 Fix account delete form not accepting password, update suspended (#3745)
account before removing content for quicker feedback to end-users
2017-06-14 20:30:12 +02:00
Eugen Rochko afefb364cb Save settings when they are changed (#3743) 2017-06-14 18:59:02 +02:00
Eugen Rochko 6f8f401ea1 Batched remove status service (#3735)
* Make Pubsubhubbub::DistributionWorker handle both single stream entry
arguments, as well as arrays of stream entries

* Add BatchedRemoveStatusService, make SuspendAccountService use it

* Improve method names

* Add test

* Add more tests

* Use PuSH payloads of 100 to have a clear mapping of
1000 input statuses -> 10 PuSH payloads

It was nice while it lasted
2017-06-14 18:01:35 +02:00
Eugen Rochko 1c7e2ddd65 Account deletion (#3728)
* Add form for account deletion

* If avatar or header are gone from source, remove them

* Add option to have SuspendAccountService remove user record, add tests

* Exclude suspended accounts from search
2017-06-14 18:01:27 +02:00
Eugen Rochko 973d6ef93a Fix #2619 - When redis feed is empty, fall back to database (#3721)
* Fix #2619 - When redis feed is empty, fall back to database

* Use redis value to return feed from database only while RegenerationWorker
hasn't finished running

* Fix specs

* Replace usage of reject!
2017-06-14 13:37:03 +02:00
Sorin Davidoi cf69bdc097 fix(status): Content jump due to height changes (#3734) 2017-06-13 20:46:21 +02:00
Eugen Rochko 9ba171309b Simplify getting started links localization. Link "powered by Mastodon" to joinmastodon.org (#3725) 2017-06-13 03:55:28 +02:00
Eugen Rochko 46af0c66b6 Fix #3675 - Adjust quality settings of converted GIFs to reduce filesize (#3723) 2017-06-13 00:51:48 +02:00
Eugen Rochko 91e13e3cf8 Fix unclickable onboardin modal regression (#3724) 2017-06-13 00:39:31 +02:00
m4sk1n 5b0518ada5 i18n: minor fix in Polish translation (#3726)
* i18n: minor fix in Polish translation

* i18n
2017-06-12 23:55:32 +02:00
Eugen Rochko 2deea77f2e Unread indicator was invisible behind column header, adjusted (#3720)
* Unread indicator was invisible behind column header, adjusted

* Unread indicator now a CSS pseudo-element

* Adjust flex
2017-06-12 20:02:17 +02:00
Ratmir Karabut a7426cd173 Update Russian translation (pin) (#3712)
* Update Russian translation (pin)
2017-06-12 12:53:20 +02:00
Yamagishi Kazutoshi ef29596d2d Regenerate defaultMessages.json (#3709)
follow up #3564
2017-06-12 12:41:19 +02:00
Yamagishi Kazutoshi 5f19b8e900 Re-add clear notifications button (#3708)
* Re-add clear notifications button

* remove connect() in column_settings

* one line

* remove unused props
2017-06-12 12:26:23 +02:00
Eugen Rochko 9cda14bd24 Fix regression from #3672 - Do not use pipeline around zscore (#3704) 2017-06-12 03:11:12 +02:00
ThibG 3af5774a71 Fix an error when TagManager.local_url? is called with a bad URI (#3701)
TagManager.local_url? was sometimes called with an URI with a nil host,
leading to a crash in TagManager.local_url?. This fixes moves the
already-existing uri.host.blank? check in front to avoid this case.
2017-06-11 22:53:12 +02:00
Eugen Rochko 8b893afde7 Fix removal of status sending the original status to mentioned users instead of delete Salmon (#3672)
* Fix removal of status sending the original status to mentioned users instead
of delete Salmon, add test

* Create remove_status_service_spec.rb
2017-06-11 17:13:43 +02:00
Eugen Rochko 1348d63517 Fix #3665 - Refactor timelines reducer (#3686)
* Move ancestors/descendants out of timelines reducer

* Refactor timelines reducer

All types of timelines now have a flat structure and use the same
reducer functions and actions

* Reintroduce some missing behaviours

* Fix wrong import in reports

* Fix includes typo

* Fix issue related to "next" pagination in timelines and notifications

* Fix bug with timeline's initial state, expandNotifications
2017-06-11 17:07:35 +02:00
René Klačan 042d4c1663 Fix Account model deprecation warnings (#3689)
```
DEPRECATION WARNING: The behavior of `attribute_changed?` inside of after callbacks will be changing in the next version of Rails. The new return value will reflect the behavior of calling the method after `save` returned (e.g. the opposite of what it returns now). To maintain the current behavior, use `saved_change_to_attribute?` instead. (called from block in <class:Account> at /Users/rene/Workspace/personal/ruby/mastodon/app/models/account.rb:60)
DEPRECATION WARNING: The behavior of `attribute_changed?` inside of after callbacks will be changing in the next version of Rails. The new return value will reflect the behavior of calling the method after `save` returned (e.g. the opposite of what it returns now). To maintain the current behavior, use `saved_change_to_attribute?` instead. (called from block in <class:Account> at /Users/rene/Workspace/personal/ruby/mastodon/app/models/account.rb:60)
DEPRECATION WARNING: The behavior of `attribute_changed?` inside of after callbacks will be changing in the next version of Rails. The new return value will reflect the behavior of calling the method after `save` returned (e.g. the opposite of what it returns now). To maintain the current behavior, use `saved_change_to_attribute?` instead. (called from block in <class:Account> at /Users/rene/Workspace/personal/ruby/mastodon/app/models/account.rb:60)
DEPRECATION WARNING: The behavior of `attribute_changed?` inside of after callbacks will be changing in the next version of Rails. The new return value will reflect the behavior of calling the method after `save` returned (e.g. the opposite of what it returns now). To maintain the current behavior, use `saved_change_to_attribute?` instead. (called from block in <class:Account> at /Users/rene/Workspace/personal/ruby/mastodon/app/models/account.rb:61)
DEPRECATION WARNING: The behavior of `attribute_changed?` inside of after callbacks will be changing in the next version of Rails. The new return value will reflect the behavior of calling the method after `save` returned (e.g. the opposite of what it returns now). To maintain the current behavior, use `saved_change_to_attribute?` instead. (called from block in <class:Account> at /Users/rene/Workspace/personal/ruby/mastodon/app/models/account.rb:62)
DEPRECATION WARNING: The behavior of `attribute_changed?` inside of after callbacks will be changing in the next version of Rails. The new return value will reflect the behavior of calling the method after `save` returned (e.g. the opposite of what it returns now). To maintain the current behavior, use `saved_change_to_attribute?` instead. (called from block in <class:Account> at /Users/rene/Workspace/personal/ruby/mastodon/app/models/account.rb:63)
```

Here's PR describing changes to Dirty API https://github.com/rails/rails/pull/25337
2017-06-11 17:01:32 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 5c54ae381a Localize date in digest and cover NotificationMailer more (#3694)
* Localize date in digest

* Cover NotificationMailer more
2017-06-11 12:04:35 +02:00
Yamagishi Kazutoshi eb34081815 Remove comments for eslint-disable (#3691) 2017-06-11 10:42:42 +02:00
Yamagishi Kazutoshi d3279a6702 Refactor UpdateRemoteProfileService (#3690) 2017-06-11 10:41:59 +02:00
René Klačan ecdf17a2d7 Make sure email is case insensitive on all places (#3688)
When case insensitivity is enabled via devise's `config.case_insensitive_keys` then `.find_for_authentication` method needs to be used instead of `.find_by` because second mentioned returns `nil` when valid email with different cases is passed.

More info https://github.com/plataformatec/devise/wiki/How-To:-Use-case-insensitive-emails
2017-06-11 02:29:08 +02:00
Jeroen 8309f094df Update NL for 1.4.2 (#3685) 2017-06-10 17:26:01 +02:00
Eugen Rochko b8bc26d60f Improve RTL detection (#3682)
- Use plaintext
- Strip out URLs
- Strip out mentions
- Strip out hashtags
- Strip out whitespace from "overall" count
- Consistent between JS and Ruby
2017-06-10 15:06:50 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) a5729feb11 Improve default language decision and spec (#3351)
* Improve default language decision

This change allows to takes account of accepted language determined by
the user agent even if the custom default locale of the instance is
configured.

* Cover Localized more

* Fix code style
2017-06-10 09:44:02 +02:00
Matt Jankowski e31cd944c2 Move create/destroy actions for api/v1/statuses to namespace (#3678)
Each of mute, favourite, reblog has been updated to:

- Have a separate controller with just a create and destroy action
- Preserve historical route names to not break the API
- Mild refactoring to break up long methods
2017-06-10 09:39:26 +02:00
m4sk1n 8ceff751e2 i18n: Minor fixes in Polish translation (#3674)
* i18n

* i18n

* i18n

* i18n

* i18n
2017-06-09 23:08:09 +02:00
Matt Jankowski dc717cf425 Move reblogged_by and favourited_by actions out of api/v1/statuses and into unique controllers (#3646)
* Add specs for api statuses routes

* Update favourited_by and reblogged_by api routes

* Move methods into new controllers

* Use load_accounts methods to simplify index actions

* Clean up load_accounts methods

* Clean up link header generation

* Check for link headers in specs

* Remove unused actions from api/v1/statuses controller

* Remove specs for moved actions
2017-06-09 14:12:40 -04:00
Eugen Rochko e982b5edac Fix #3658 - Update RTL styles (#3669) 2017-06-09 19:46:25 +02:00
Eugen Rochko 9ea895f05f Correct validators so that existing error messages would look correct (#3668) 2017-06-09 19:46:01 +02:00
Matt Jankowski b439018342 Language detection defaults to nil (#3666)
* Default to nil for statuses.language

* Language detection defaults to nil instead of instance UI default
2017-06-09 18:09:37 +02:00
Clworld 014c11aa38 adjust the size of 'column-header__back-button' (retry) (#3662) 2017-06-09 16:22:28 +02:00
Yamagishi Kazutoshi 7f99456ab0 Refactor views/admin/reports/show.html.haml (#3656) 2017-06-09 15:08:06 +02:00
Yamagishi Kazutoshi 69dc56b5d0 Add includes to Report#statuses (#3655) 2017-06-09 15:07:02 +02:00
Yamagishi Kazutoshi 0e2b04d920 Check ready state of document in public pages (#3652)
* Check ready state of document in public pages

* add check interactive
2017-06-09 15:06:38 +02:00
ふぁぼ原 2eec65d27f adjust the size of column-header__back-button (#3654) 2017-06-09 15:05:26 +02:00
Eugen Rochko 67330ceec7 Fix regression from #3592 - validation condition nesting (#3644) 2017-06-08 19:10:48 +02:00
Eugen Rochko 006594e181 Fix db:seed - only run some validations when the field was changed (#3592)
* Fix db:seed - only run some validations when the field was changed

* Add tests
2017-06-08 09:22:01 -04:00
Eugen Rochko 3fc61534fd Fix #3378 - If favourite/reblog already exists, return it instead of failing (#3641) 2017-06-08 15:07:39 +02:00
Eugen Rochko 9eefd60136 Add explit admin actions to (re)subscribe/unsubscribe remote accounts (#3640)
* Add explit admin actions to (re)subscribe/unsubscribe remote accounts
and re-download avatar/header

* Improve how admin NSFW toggle looks
2017-06-08 14:58:22 +02:00
ThibG 38f03f6da4 Fixes #3605 by returning account from database in case of race condition (#3606) 2017-06-08 13:40:11 +02:00
Yamagishi Kazutoshi 5da41e0cae Improve RuboCop rules (compatibility to Code Climate) (#3636)
08f8de84eb/Gemfile.lock (L38)
Code Climate is using RuboCop v0.46.0.

Change several rules to maintain compatibility.
2017-06-08 13:24:28 +02:00
Sorin Davidoi 4ce6597e3a fix: Warn if JavaScript is disabled (#3634) 2017-06-08 00:52:56 +02:00
Matt Jankowski 76f986d07b Clean up for api/base controller (#3629)
* Move ApiController to Api/BaseController

* API controllers inherit from Api::BaseController

* Add coverage for various error cases in api/base controller
2017-06-07 20:09:25 +02:00
Sorin Davidoi 7300a41678 fix(components/autosuggest_textarea): Race condition regarding onBlur (#3631) 2017-06-07 20:05:53 +02:00
Matt Jankowski 9a43a1051a Coverage improvement and concern extraction for rate limit headers in API controller (#3625)
* Coverage for rate limit headers

* Move rate limit headers methods to concern

* Move throttle check to condition on before_action

* Move match_data variable into method

* Move utc timestamp to separate method

* Move header setting into smaller methods

* specs cleanup
2017-06-07 17:23:26 +02:00
Yamagishi Kazutoshi 1844753bda Fix Code Climate failed (regression from #3622) (#3624) 2017-06-07 15:57:59 +02:00
unarist eebfad1ac8 Allow "class" attribute on the "a" tag in sanitization (#3623)
This preserves `<a ... class="u-url mention">` from other Mastodon instances.
2017-06-07 15:57:30 +02:00
ThibG 13340bdc7a Fixes #3388 by moving re-entrant `shared_status_from_xml` before transaction block (#3622)
Steps to reproduce the original issue:
1. Have two remote accounts, A that you don't follow, and B that you follow.
2. Have A post a toot and reply to it.
3. Boost A's reply from remote account B.

This used to cause the local instance to get A's reply but fail to link it to
the original post.
2017-06-07 12:28:16 +02:00
Yamagishi Kazutoshi 270213c858 Small changes to japanese translation (#3620) 2017-06-07 10:15:35 +02:00
STJrInuyasha 8e32541b74 Don't show business e-mail if it's blank (#3619) 2017-06-07 09:57:47 +02:00
Eugen Rochko 185bcf6fe1 Use preview image in <ImageLoader /> to provide immediate visual feedback (#3595)
before the full-size image is loaded
2017-06-06 19:30:17 +02:00
Eugen Rochko 143ab47410 Fix #3063 - Add dynamic app manifest (#3563)
* Fix #3063 - Add dynamic app manifest

* Added short_name

* Add background_color
2017-06-06 19:29:42 +02:00
ふぁぼ原 f6fddd95d4 Add regex filters on the community timeline and the public timeline. (#3564)
* Add regex filter on the community timeline and the public timeline

* correcting

* Adjust the height of header buttons

* Remove trailing spaces

* Remove trailing spaces

* Solve some code duplication

* reset the state of the locale files in app/javascript/mastodon/locales

* adjust to upstream

* adjust to upstream

* change keys of locale settings
2017-06-06 16:56:10 +02:00
unarist 5ef958b99f Fix 500 errors on searching invalid URLs (#3613) 2017-06-06 16:44:48 +02:00
unarist 117d333a84 Fix tag search order and not to use tsvector (#3611)
* Sort results by the name
* Switch search method to simple `LIKE` matching instead of tsvector/tsquery

Previously we used scores from ts_rank_cd() to sort results, but it didn't work
because the function returns same score for all results. It's not for calculate
similarity of single words. Sometimes this bug even push out exact matching tag
from results.

Additionally, PostgreSQL supports prefix searching with standard btree index.
Using it offers simpler code, but also less index size and some speed.
2017-06-06 16:07:06 +02:00
Yamagishi Kazutoshi d063663125 Improve ESLint rules for JSX (#3608)
* Add react/no-string-refs ESLint rule

* Add react/jsx-boolean-value ESLint rule

* Add react/jsx-closing-bracket-location ESLint rule

* Add react/jsx-indent ESLint rule

* Add react/jsx-curly-spacing ESLint rule

* Add react/jsx-equals-spacing ESLint rule

* Add react/jsx-first-prop-new-line ESLint rule

* Add react/jsx-no-duplicate-props ESLint rule

* Add react/jsx-tag-spacing ESLint rule
2017-06-06 13:20:07 +02:00
Yamagishi Kazutoshi 379120da91 Add missing key attribute to .search-results__hashtag (#3607) 2017-06-06 13:19:29 +02:00
May Kittens Devour Your Soul 32f3af68c0 Update hr.json (#3609) 2017-06-06 13:19:05 +02:00
Yamagishi Kazutoshi 615c580665 Add quotes ESLint rules (#3602)
* Add quotes ESLint rule

* Add jsx-quotes ESlint rule

* Sort ESLint rules
2017-06-06 03:56:36 +02:00
Yamagishi Kazutoshi 253c0ad358 Disable ESLint rule jsx/anchor-has-content (#3601) 2017-06-06 03:55:56 +02:00
ThibG 34e120cd84 Try fixing ThreadResolveWorker calls (#3599)
* Try fixing ThreadResolveWorker calls

From my understanding of ActiveRecord, a transaction is commited as soon as
the exit of the outmost ActiveRecord.transaction block. However, inner
transaction blocks will exit without the transaction being commited.

In this case, ThreadResolveWorker were fired *within* a transaction block,
so moving the call out of it should do the trick. However, this is somewhat
fragile, as this whole codepath could be called within yet another transaction.

* Set status thread within the transaction block if it is immediately available from database
2017-06-06 00:09:14 +02:00
Naoki Kosaka 779aab71d6 Fix LoadMore in Notifications. (#3590) 2017-06-05 19:18:26 +02:00
Naoki Kosaka b68f13ae37 Fix (PR #3585) Add hasMore to propTypes and cover handleScroll. (#3589) 2017-06-05 18:18:56 +02:00
unarist 80c8cd6cad Add back button to hashtag timeline again (#3587) 2017-06-05 17:10:40 +02:00
Shunsuke Michii faf082cb8f Add th.json. (#3588) 2017-06-05 17:02:41 +02:00
IkUrA ade29d417f Add streaming_api_base_url to /api/v1/instance (#3556)
* Add streaming_api_base_url to /api/v1/instance

* Adjust spaces

* nested view

* re-adjust spaces
2017-06-05 16:37:44 +02:00
Matt Jankowski d339ac2c76 Introduce StatusThreadingConcern (#3490)
* Add a StatusFilter class to identify visibility of statuses by accounts

* Extract StatusThreadingConcern from Status

* Clarify purpose of checking for nil account
2017-06-05 16:07:44 +02:00
unarist 11211fe1c0 Prevent pinned columns from scroll to top on URL changing (#3586) 2017-06-05 15:20:46 +02:00
Naoki Kosaka 93168f56d9 Fix LoadMore in following and followers. (#3585) 2017-06-05 14:13:20 +02:00
Daigo 3 Dango e1142e190b Redirect to streaming_api_base_url (#3579)
* Redirect to streaming_api_base_url

When Rails receives a request to streaming API, it most likely
means that there is another host which is configured to respond
to it. This is to redirect clients to that host if
`STREAMING_API_BASE_URL` is set as another host.

* Use the new Ruby 1.9 hash syntax
2017-06-05 12:09:29 +02:00
Yamagishi Kazutoshi bba7df45e9 Add support key shortcut to Onboarding Modal (#3517)
* Add support key shortcut to Onboarding Modal

* this.state.pages -> this.pages
2017-06-05 10:09:14 +02:00
Yamagishi Kazutoshi c55eaa47e0 Fix broken embed page (#3577) 2017-06-05 10:08:31 +02:00
René Klačan b64a43d38f Don't follow account if it's already followed (#3575)
Closes https://github.com/tootsuite/mastodon/issues/3102
2017-06-05 03:24:18 +02:00
Quent-in f4d830d5ec l10n update for occitan language (#3557)
* i18n Update : Add preference setting for delete toot modal

Adding a line for "Add preference setting for delete toot modal"

* i18n update for pin/unpin

Update to add two more translations

* i18n update to have the dates in plain occitan

* Removed the blank line

* %{selft} back in the translation
2017-06-05 01:31:10 +02:00
Eugen Rochko 4a6ceb24c9 Added support for configurable reserved usernames (fix of #1382) (#3566)
* Added support for configurable reserved usernames

* Added reserved usernames from mastodon issue 1355

* Fix reserved usernames
2017-06-05 01:03:45 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 10da1db4e6 Remove some code in TagManager and spec (#3547)
* Do not fall back to StreamEntry if object_type is unavailable in TagManager

Since 24c77e57b2, when Status, the only model
with stream_entry, and StreamEntry got its own logic in uri_for and
url_for, the purpose of the fallbacks to activity_type of StreamEntry
became unclear.

This commit removes the fallbacks. When adding another model with
stream_entry in future, consider to update uri_for and url_for.

* Cover TagManager more
2017-06-04 16:14:25 +02:00
m4sk1n b6063a5e90 i18n: Updated Polish translation (#3555) 2017-06-04 15:18:42 +02:00
lindwurm fdb376a293 l10n: ja: Change about/more link text (#3539)
ref: #3538 ("Extended information" -> "About this instance") and #3519

Signed-off-by: lindwurm <lindwurm.q@gmail.com>
2017-06-04 15:00:15 +02:00
Akihiko Odaki (@fn_aki@pawoo.net) 3dd0d62583 A minor change for ProviderDiscovery and spec (#3543)
* Do not default the format in ProviderDiscovery

The format should be determined when discovering, as it is in the current
implementation, and it is a flaw if it is not determined.

* Spec ProviderDiscovery
2017-06-04 14:59:40 +02:00