Commit graph

4207 commits

Author SHA1 Message Date
Eugen Rochko
91e5b0dfdb Send streaming API delete to people mentioned in status (#5103)
- Previously they wouldn't receive it unless they were author's
  followers
- Skip unpush from public/hashtag timelines if status wasn't
  public in the first place
2017-09-26 00:29:29 +02:00
Eugen Rochko
3b60832214 New error page graphic. Other error page improvements (#5099)
- 500.html generated with admin-set default locale if set
- Error page `<title>` includes Mastodon site title
- 500 title changed to "This page is not
  correct" (ref: <https://www.youtube.com/watch?v=2VCAP_seh1A>)
- 500 content appended with "on our end" to make clear it's
  not user's fault
2017-09-25 23:05:54 +02:00
Lynx Kotoura
259181c41a Fix size of single media in media-gallery (#5098) 2017-09-25 20:26:50 +02:00
Eugen Rochko
510df0ac55 Fix emojify() by generating a mapping to existing Twemoji files (#5080)
A new rake task emojis:generate downloads a full list of valid
unicode sequences from unicode.org and checks it against existing
Twemoji files, finally generating a map from each sequence to the
existing file (e.g. when there's multiple ways an emoji can be
expressed). The map is dumped into app/javascript/mastodon/emoji_map.json

That file is loaded by emojione_light.js (now a misnomer) which
decorates it further with shortcodes taken from emoji-mart's index.
2017-09-25 18:36:33 +02:00
Akihiko Odaki
98936bfcdf Add missing validations in ActivityPub::Activity::Create (#5096) 2017-09-25 18:33:11 +02:00
unarist
5c82c2b75f Increase max height of preview card image (#5092)
We added horizontal layout to preview card for wide image. However, max height of the thumbnail is still limited to 120px and it makes nearly square images to too small for that layout.

This PR increases max height as well as max width.
2017-09-25 17:10:49 +02:00
Yamagishi Kazutoshi
0fea700c7b Refresh manifest before generate 500.html (#5090) 2017-09-25 16:58:12 +02:00
Eugen Rochko
2c8e3fbbfb Generate 500.html with assets:precompile, remove loading from Google Fonts (#5067) 2017-09-25 04:04:04 +02:00
Eugen Rochko
b982d549f4 Add strong_migrations gem to warn when creating unsafe migrations (#5078) 2017-09-25 02:11:14 +02:00
Eugen Rochko
909a6d4661 Fix streaming API double-JSON-encoding status IDs for deletes (#5069) 2017-09-24 15:31:03 +02:00
JeanGauthier
3f3de38075 OC update: different emoji picker (#5046) (#5077) 2017-09-24 12:17:47 +02:00
ThibG
c267acfcf7 Thread toot notification mails by conversation (#5061)
* Thread toot notification mails by conversation

* Make codeclimate happy and avoid potential mis-threading
2017-09-24 11:19:42 +02:00
Daigo 3 Dango
ab625c57ce Compact status_ids in StatusRelationshipsPresenter (#5073) 2017-09-24 11:18:32 +02:00
abcang
e756c4f5ec Fix media spoiler of DetailedStatus (#5071) 2017-09-24 11:15:11 +02:00
Daigo 3 Dango
a0bbeafb04 Suppress backtrace when failed to communicate with a remote instance (#5076) 2017-09-24 11:14:06 +02:00
Eugen Rochko
2f079573ed In detail status view, display attachment uncropped if there's only one (#5054)
* In detail status view, display attachment uncropped if there's only one

* Make media spoiler the size of the media it hides, enable on static
2017-09-24 05:58:30 +02:00
Eugen Rochko
b2820c3913 Forgotten in #5039, change statuses_tags tag_id to bigint (#5070) 2017-09-24 05:58:07 +02:00
Eugen Rochko
adc38078dd Make sure nil IDs to not get cast to empty string in REST API (#5068) 2017-09-24 04:09:32 +02:00
Eugen Rochko
dae0af1fd2 Change mobile layout breakpoint from 1024px to 630px (#5063)
630px = Drawer + 1 Column
2017-09-24 01:25:07 +02:00
Eugen Rochko
5b8d0ad71b Dropdown triangles a bit nicer, smoother scrolling on touch (#5062) 2017-09-24 00:40:10 +02:00
Eugen Rochko
233258c61b Fix media gallery CSS (#5064) 2017-09-24 00:33:26 +02:00
Eugen Rochko
9c8aad612e Require at least 2 characters before showing autosuggestions (#5065) 2017-09-24 00:33:17 +02:00
Mingye Wang
6dfeb64326 jsx/zh-*: Fix "pin column" for Chinese (#5060) 2017-09-23 22:47:15 +02:00
m4sk1n
427beb4177 i18n: Update Polish translation (#5058) 2017-09-23 22:14:39 +02:00
Lynx Kotoura
838f255fc2 Fix overflowing tabs in account__action-bar (#5056)
* Fix numbers in accounts columns

* Support edge compact-header
2017-09-23 21:06:16 +02:00
Eugen Rochko
1e02ba111a Add emoji autosuggest (#5053)
* Add emoji autosuggest

Some credit goes to glitch-soc/mastodon#149

* Remove server-side shortcode->unicode conversion

* Insert shortcode when suggestion is custom emoji

* Remove remnant of server-side emojis

* Update style of autosuggestions

* Fix wrong emoji filenames generated in autosuggest item

* Do not lazy load emoji picker, as that no longer works

* Fix custom emoji autosuggest

* Fix multiple "Custom" categories getting added to emoji index, only add once
2017-09-23 14:47:32 +02:00
Eugen Rochko
66126f3021 Add custom emojis to the emoji picker (#5052) 2017-09-23 05:40:28 +02:00
Eugen Rochko
293972f716 New API: GET /api/v1/custom_emojis to get a server's custom emojis (#5051) 2017-09-23 01:57:23 +02:00
Eugen Rochko
9c8e602163 Fix custom emojis not detected when used in content warning (#5049) 2017-09-23 01:50:17 +02:00
Eugen Rochko
846cd4e838 Switch from EmojiOne to Twemoji, different emoji picker (#5046)
* Switch from EmojiOne to Twemoji, different emoji picker

* Make emoji-mart use a local spritesheet

* Fix emojify test

* yarn manage:translations
2017-09-23 01:41:00 +02:00
Akihiko Odaki
0de82dd316 Do not filter statuses with unknown languages (#5045) 2017-09-22 19:33:17 +02:00
nullkal
dcfc9b2204 Fix the migration error when deprecated_preview_cards has been deleted (#5043)
* Fix the migration error when deprecated_preview_cards has deleted

* Re-run Travis CI
2017-09-22 19:32:57 +02:00
Nolan Lawson
b01ab55ed8 Fix PropTypes.oneOfType() warning (#5041) 2017-09-22 17:50:29 +02:00
aschmitz
dd4ef69839 Hardcode IdToBigints migration columns (#5039)
This addresses a comment during review:
https://github.com/tootsuite/mastodon/pull/4801#discussion_r139337452

This means we'll need to make sure that all _id columns going forward
are bigints, but that should happen automatically in most cases.
2017-09-22 13:20:04 +02:00
Nolan Lawson
d4f80824f7 Document REDIS_NAMESPACE (#5038) 2017-09-22 06:44:39 +02:00
Eugen Rochko
034fab39ab Make dropdowns render into portal, expand animation (#5018)
* Make dropdowns render into portal, expand animation

* Improve actions modal style
2017-09-22 04:59:17 +02:00
Nolan Lawson
0df6442636 Use passive listener in privacy_dropdown.js (#5037) 2017-09-22 04:59:01 +02:00
Nolan Lawson
245816ab27 Eliminate re-renders for intersection_observer_article.js (#5036) 2017-09-22 04:58:33 +02:00
syui
63819c848d fix : mobile style of /about/more (#5034) 2017-09-21 14:30:21 +02:00
MIYAGI Hikaru
a9abe89093 Fix shortname problem in emojify() (regression from #5016) (#5032)
When colon appears end of line, skiped all character containing unicode emojis. Fixed.
https://github.com/tootsuite/mastodon/pull/5016#issuecomment-331012008
2017-09-21 03:47:16 +02:00
Nolan Lawson
798b0fc5af Reduce wasted renders for column_loading.js (#5021)
* Reduce wasted renders for column_loading.js

* Use defaultProps
2017-09-20 19:58:44 +02:00
Lynx Kotoura
8fcfcddc8f Fix theme translations alphabetically (#5031) 2017-09-20 19:41:35 +02:00
Eugen Rochko
d68df88d4e Disable private status federation over OStatus (#5027) 2017-09-20 19:08:20 +02:00
unarist
c8580eb806 Use file extensions in addition to MIME types for file picker (#5029)
Currently we're using a list of MIME types for `accept` attribute on `input[type="file"]` for filter options of file picker, and actual file extensions will be infered by browsers. However, infered extensions may not include our expected items. For example, "image/jpeg" seems to be infered to
only ".jfif" extension in Firefox.

To ensure common file extensions are in the list, this PR adds file extensions in addition to MIME types. Also having items in both format is encouraged by HTML5 spec.

https://www.w3.org/TR/html5/forms.html#file-upload-state-(type=file)
2017-09-20 19:07:23 +02:00
Lynx Kotoura
f41e70ca38 Better Japanese translations (#5030) 2017-09-21 01:56:28 +09:00
mayaeh
7b8ecde32d Add Japanese translations for multiple themes, custom emoji (#5026)
* Add Japanese translations for multiple themes

* Change Japanese translation for custom emoji's created_msg.
2017-09-20 16:09:57 +02:00
TomoyaShibata
8cb4561145 Remove unnecessary css property (#5025) 2017-09-20 15:26:22 +02:00
JeanGauthier
1607bb445a l10n Occitan: theme site, custom emoji, Oauth, newcomers follow admins, ... (#5023)
* Oauto code string

* Theme, custom emoji and more

* Site theme

* added two spaces wierdly gone away

* Update oc.yml

Changes adviced
2017-09-20 15:00:54 +02:00
mayaeh
33c39784e4 Add japanese translations for custom emoji. (#5007)
* Add japanese translations for custom emoji.

* Remove spaces.

* Change destroyed_msg.

* Revert "Change destroyed_msg."
2017-09-20 14:57:59 +02:00
aschmitz
669fe9ee06 Change IDs to strings rather than numbers in API JSON output (#5019)
* Fix JavaScript interface with long IDs

Somewhat predictably, the JS interface handled IDs as numbers, which in
JS are IEEE double-precision floats. This loses some precision when
working with numbers as large as those generated by the new ID scheme,
so we instead handle them here as strings. This is relatively simple,
and doesn't appear to have caused any problems, but should definitely
be tested more thoroughly than the built-in tests. Several days of use
appear to support this working properly.

BREAKING CHANGE:

The major(!) change here is that IDs are now returned as strings by the
REST endpoints, rather than as integers. In practice, relatively few
changes were required to make the existing JS UI work with this change,
but it will likely hit API clients pretty hard: it's an entirely
different type to consume. (The one API client I tested, Tusky, handles
this with no problems, however.)

Twitter ran into this issue when introducing Snowflake IDs, and decided
to instead introduce an `id_str` field in JSON responses. I have opted
to *not* do that, and instead force all IDs to 64-bit integers
represented by strings in one go. (I believe Twitter exacerbated their
problem by rolling out the changes three times: once for statuses, once
for DMs, and once for user IDs, as well as by leaving an integer ID
value in JSON. As they said, "If you’re using the `id` field with JSON
in a Javascript-related language, there is a very high likelihood that
the integers will be silently munged by Javascript interpreters. In most
cases, this will result in behavior such as being unable to load or
delete a specific direct message, because the ID you're sending to the
API is different than the actual identifier associated with the
message." [1]) However, given that this is a significant change for API
users, alternatives or a transition time may be appropriate.

1: https://blog.twitter.com/developer/en_us/a/2011/direct-messages-going-snowflake-on-sep-30-2011.html

* Additional fixes for stringified IDs in JSON

These should be the last two. These were identified using eslint to try
to identify any plain casts to JavaScript numbers. (Some such casts are
legitimate, but these were not.)

Adding the following to .eslintrc.yml will identify casts to numbers:

~~~
  no-restricted-syntax:
  - warn
  - selector: UnaryExpression[operator='+'] > :not(Literal)
    message: Avoid the use of unary +
  - selector: CallExpression[callee.name='Number']
    message: Casting with Number() may coerce string IDs to numbers
~~~

The remaining three casts appear legitimate: two casts to array indices,
one in a server to turn an environment variable into a number.

* Back out RelationshipsController Change

This was made to make a test a bit less flakey, but has nothing to
do with this branch.

* Change internal streaming payloads to stringified IDs as well

Per
https://github.com/tootsuite/mastodon/pull/5019#issuecomment-330736452
we need these changes to send deleted status IDs as strings, not
integers.
2017-09-20 14:53:48 +02:00