Commit Graph

624 Commits (4453c9a9f59f818a746dd6aa3cdf06566d8c0d32)

Author SHA1 Message Date
Eugen Rochko 4453c9a9f5 Search popout (#5170) 2017-10-02 18:24:05 +02:00
Nolan Lawson b9c612b561 Code-split emoji-mart picker and data (#5175) 2017-10-02 07:22:24 +02:00
Nolan Lawson c567c87453 Toggle contain:strict on fullscreen (#5159)
* Toggle contain:strict on fullscreen

* Fix scss lint issue

* fix scss whitespace lint issue
2017-10-02 03:01:01 +02:00
Eugen Rochko cdad7977fc Improve privacy dropdown, remove react-simple-dropdown dependency (#5140)
* Improve privacy dropdown, remove react-simple-dropdown dependency

* Animate privacy warning

* Fix react-router-scroll
2017-10-01 12:20:00 +02:00
Eugen Rochko 0b3f1ec62a Reorganize preferences page (#5161) 2017-10-01 10:52:39 +02:00
Daggertooth b110cc542f Add image descriptions to title attribute to view on mouse hover/long-press. (#5137)
* Add image descriptions to `title` attribute to view on mouse hover/long-press.

* Too many title properties may spoil the broth.
2017-10-01 00:35:49 +02:00
MIYAGI Hikaru 7481ae1bcb trivial refactoring for emojify() (#5075)
* unite loop process
* add hint for original emojifier
2017-09-30 15:57:32 +02:00
Nolan Lawson ca0e8be20c Improve IntersectionObserverArticle perf (#5152) 2017-09-30 14:28:49 +02:00
Eugen Rochko d6fe0954e3 Make emoji autosuggestions immediate, usernames appear sooner (#5149)
* Do not debounce emoji search

* Make autosuggestions appear sooner
2017-09-30 05:11:44 +02:00
Eugen Rochko ebb8c89207 Upgrade to React 16 (#5119)
* Upgrade to React 16.0.0

* Disable some uncritical tests while chai-enzyme remains incompatible
2017-09-30 04:29:56 +02:00
Nolan Lawson 0060f98847 Remove react-sizeme (#5143)
* Remove react-sizeme

* Fix aspect ratio in "sensitive" mode
2017-09-29 22:46:43 +02:00
Jakob Kramer 1a72813b53 Updated German translation (#5151)
Translate "about" page, several settings pages, data export/import,
sessions overview, authorized followers page, account deletion page.

More consistent use of words:
- A toot is a Beitrag.
- An account is a Konto.

Some small improvements.
2017-09-29 21:11:28 +02:00
Eugen Rochko 887cd94e96 Increase attachment descriptions to 420 characters (#5139)
Blaze it
2017-09-29 02:30:00 +02:00
Jakob Kramer d0b4709b2a Update German translation (#5133)
Create activerecord.de.yml (50%)
Update devise.de.yml
Update doorkeeper.de.yml (100%)
Update simple_form.de.yml (100%)
2017-09-28 20:45:09 +02:00
Nolan Lawson 6e0659c838 Improve performance of modal and swipe animations (#5135)
* Improve performance of modal and swipe animations

* Fix eslint issues
2017-09-28 20:43:18 +02:00
Jakob Kramer a3202f61af Updated German translation (#5132) 2017-09-28 17:38:39 +02:00
Eugen Rochko 4ec1771165 Add ability to specify alternative text for media attachments (#5123)
* Fix #117 - Add ability to specify alternative text for media attachments

- POST /api/v1/media accepts `description` straight away
- PUT /api/v1/media/:id to update `description` (only for unattached ones)
- Serialized as `name` of Document object in ActivityPub
- Uploads form adjusted for better performance and description input

* Add tests

* Change undo button blend mode to difference
2017-09-28 15:31:31 +02:00
Eugen Rochko e648ef0bfb Remove web UI warnings about OStatus privacy (#5102)
* Remove web UI warnings about OStatus privacy

* yarn run manage:translations
2017-09-28 00:26:33 +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
Eugen Rochko 2c8e3fbbfb Generate 500.html with assets:precompile, remove loading from Google Fonts (#5067) 2017-09-25 04:04:04 +02:00
JeanGauthier 3f3de38075 OC update: different emoji picker (#5046) (#5077) 2017-09-24 12:17:47 +02:00
abcang e756c4f5ec Fix media spoiler of DetailedStatus (#5071) 2017-09-24 11:15:11 +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 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 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
Nolan Lawson b01ab55ed8 Fix PropTypes.oneOfType() warning (#5041) 2017-09-22 17:50:29 +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
TomoyaShibata 8cb4561145 Remove unnecessary css property (#5025) 2017-09-20 15:26:22 +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
Eugen Rochko b35406b700 Fix custom emojis with non-1:1 aspect ratio being stretched (#5017) 2017-09-20 03:38:38 +02:00
MIYAGI Hikaru 8e33fc29d7 redo #4500 with customEmojis (#5016) 2017-09-19 23:27:29 +02:00
Nolan Lawson e5c65b3067 Set touchstart listener to 'passive', remove 'once' (#5011) 2017-09-19 17:00:29 +02:00
Andrew 0401a24558 Add support for multiple themes (#4959)
* Add support for selecting a theme

* Fix codeclimate issues

* Look up site default style if current user is not available due to e.g. not being logged in

* Remove outdated comment in common.js

* Address requested changes in themes PR

* Fix codeclimate issues

* Explicitly check current_account in application controller and only check theme availability if non-nil

* codeclimate

* explicit precedence with &&

* Fix code style in application_controller according to @nightpool's suggestion, use default style in embedded.html.haml

* codeclimate: indentation + return
2017-09-19 16:36:23 +02:00
unarist 4aea3f88a6 Hide sensitive image in default on the public pages (#5009)
Additionally, this restores previous background / text color for media spoiler.
2017-09-19 16:03:45 +02:00
Eugen Rochko 81cec35dbf Custom emoji (#4988)
* Custom emoji

- In OStatus: `<link rel="emoji" name="coolcat" href="http://..." />`
- In ActivityPub: `{ type: "Emoji", name: ":coolcat:", href: "http://..." }`
- In REST API: Status object includes `emojis` array (`shortcode`, `url`)
- Domain blocks with reject media stop emojis
- Emoji file up to 50KB
- Web UI handles custom emojis
- Static pages render custom emojis as `<img />` tags

Side effects:

- Undo #4500 optimization, as I needed to modify it to restore
  shortcode handling in emojify()
- Formatter#plaintext should now make sure stripped out line-breaks
  and paragraphs are replaced with newlines

* Fix emoji at the start not being converted
2017-09-19 02:42:40 +02:00