Commit Graph

2496 Commits (a855956185630742ad670f971337a3ff76fd8b32)

Author SHA1 Message Date
ThibG 05cd37097c 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
8 years ago
Eugen Rochko 8c45cd0e36 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
8 years ago
Eugen Rochko 3fbf1bf35a Fix #3773 - Pin favourites column (#4201) 8 years ago
Eugen Rochko cd9b2ab2f7 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
8 years ago
Eugen Rochko de397f3bc1 Fix subsequent replies to unresolved status not being filtered from home (#4190)
Resolves #4177 - smaller changeset
8 years ago
Sorin Davidoi 72bd73f605 Small style fixes (#4206)
* fix(components/media_modal): Center horizontally in Firefox

* fix(components/status_list): Do not remove load more button
8 years ago
unarist 1896a154f5 Fix response of unreblog/unfavourite APIs (#4204)
Both APIs process asynchronously, so reblogged/favourited fields in the response should be set to `false` manually.
8 years ago
Eugen Rochko 1618b68bfa 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)
8 years ago
Sorin Davidoi c1f201c49a 🎄🔨 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
8 years ago
Eugen Rochko e2685ccc81 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
8 years ago
Eugen Rochko c42092ba7a Add option to opt out of search engines on public profile/status pages (#4199) 8 years ago
Albert ARIBAUD 489d162477 fr.json: replace "silencer" with "masquer" (#4196)
"Silencer" as a verb does not exist in French. A good and valid replacement is "masquer".
8 years ago
Yamagishi Kazutoshi 9008ab3407 Do not load unnecessary script files (#4193) 8 years ago
Yamagishi Kazutoshi 87b96f8d33 Add Japanese translations for #3243 (#4192) 8 years ago
masarakki a49be27145 add validation to tag name (#4194) 8 years ago
unarist eeb5923e89 Add object-fit polyfill for Edge (#4182) 8 years ago
Sorin Davidoi a9067167bb 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
8 years ago
Sorin Davidoi a9a0c854e1 fix(components/media_modal): Style issues (#4187) 8 years ago
Sorin Davidoi 0c7c188c45 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
8 years ago
unarist c2753fdfb4 Make tag search case insensitive again (#4184) 8 years ago
unarist c29c20ab3c Add background color for spoiler input, like toot textarea (#4181) 8 years ago
Eugen Rochko 880a5eb25c 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
8 years ago
Eugen Rochko e48d3bfd01 Fix #1010 - When spoiler text is set, enforce sensitivity too (#4176) 8 years ago
unarist 5abb3d8150 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.
8 years ago
m4sk1n 3567ac3d3e i18n: @e19eefe, @056b5ed + consistency improvement (pl) (#4171)
* i18n: @e19eefe (pl)

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

* i18n: @056b5ed (pl)

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

* i18n: Improve consistency (pl)

Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
8 years ago
Eugen Rochko 056b5ed72f Improve UI of admin site settings (#4163) 8 years ago
Eugen Rochko 1764c32b9e Fix #4067 - Do not make HTTP round-trip when resolving local URL (#4160) 8 years ago
Naoki Kosaka b21ab498f8 Fix media modal prev button behavior. (#4158) 8 years ago
nightpool 1c6c6b271c Revert "Wrap methods of ProcessFeedService::ProcessEntry in classes (#4151)" (#4157)
This reverts commit 425acecfdb.
8 years ago
Eugen Rochko e6c81a635b Fix #2848 - Rake task to redownload avatars/headers (#4156)
Can be filtered by a specific domain
Resolves #2292
8 years ago
Eugen Rochko f93de3a516 Fix #3462 - Require authentication for search API (#4155)
This makes it consistent with /api/v1/accounts/search and
previous behaviour has been an oversight.
8 years ago
Eugen Rochko e19eefe219 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
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 8784bd79d0 Require stylesheets in common.js (#4152)
Require stylesheets in common.js because stylesheets are shared by the
entry points.
8 years ago
Yamagishi Kazutoshi 31366334cb Drawer tab according to column (#4135)
* Add notifications link to drawer

* Remove local and public timeline tab in drawer

* Add home
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 425acecfdb Wrap methods of ProcessFeedService::ProcessEntry in classes (#4151)
ProcessFeedService::ProcessEntry had many methods, so wrap them in classes
representing activities.
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 29f314a502 Remove redundant inclusion (#4150) 8 years ago
Sorin Davidoi cc68d1945b refactor: Rewrite immutablejs import statements using destructuring (#4147) 8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 7bacdd718a Fix PrecomputeFeedService for filtered statuses (#4148) 8 years ago
STJrInuyasha 7a889a8e12 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)
8 years ago
Eugen Rochko 34ccc058fa 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
8 years ago
m4sk1n 7f9a353b94 i18n: @63baab0 (pl) (#4141) 8 years ago
Yamagishi Kazutoshi 31490e0d6c Add Japanese translations (#4140)
* Add Japanese translations for #3879

* Add Japanese translations for #4033

* Add Japanese translations for #4136
8 years ago
のら ca45bd0361 Add Japanese translation of terms and flash (#4137) 8 years ago
Yamagishi Kazutoshi 63baab088d Fix regular expression for RFC 5646 (regression from #3604) (#4133) 8 years ago
Yamagishi Kazutoshi 2b9721d1b3 Add setting a always mark media as sensitive (#4136) 8 years ago
abcang 617208053c Rescue exceptions related to Goldfinger at FetchRemoteStatusService (#4138) 8 years ago
Lynx Kotoura 1c6cbdd4e4 Fix duplication of tag in columns_area.js (#4131)
Deleted ">" just a typo.
8 years ago
Yamagishi Kazutoshi f8212da329 Add attribute for default privacy to verify credentials (#4075)
* Add attribute for default privacy to verify credentials

* add raw_note

* source
8 years ago
Sorin Davidoi 4122a837fa fix(components/media_modal): Aspect ratio (#4128)
* fix(components/media_modal): Aspect ratio

* fix: Remove useless style
8 years ago
abcang 307f3e0dd7 Rescue exceptions related to Goldfinger (#4044)
* Rescue exceptions related to Goldfinger

* Exclude Goldfinger::SSLError
8 years ago
Sorin Davidoi fc4c74660b Swipeable views (#4105)
* feat: Replace react-swipeable with react-swipeable-views

* fix: iOS 9
8 years ago
unarist caf938562e Avoid async import if the component is previously loaded (#4127) 8 years ago
unarist ce3a371eee Fix initial loading of pinned Notifications column (#4126) 8 years ago
Sorin Davidoi 37c832cdf7 refactor: Make all reducers sync (#4125) 8 years ago
nullkal 007ab330e6 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
8 years ago
abcang 794781d121 Change account link to admin account link on report page (#4119) 8 years ago
Sorin Davidoi 91cacb1e8f fix: Rerender Bundle on route change (#4120) 8 years ago
unarist 46f5d3a2e9 Fix first loading of notifications when the column is pinned (#4114) 8 years ago
Yamagishi Kazutoshi 76318f8830 Don't use preview when image size is unknown (#4113) 8 years ago
Yamagishi Kazutoshi 852bda3d32 Use srcSet only when know width (#4112) 8 years ago
Jeroen 0324f807f4 Update and improvement Dutch language strings (#4117)
* Update

* Update
8 years ago
Eugen Rochko 864e3f8d9c Replace OEmbed and initial state Rabl templates with serializers (#4110)
* Replace OEmbed Rabl template with serializer

* Replace initial state rabl with serializer
8 years ago
unarist 102466ac58 Fix JSON serialization of media_attachment (#4111) 8 years ago
Nolan Lawson 63b77f2320 Avoid using getBoundingClientRect to calculate height (#4001) 8 years ago
Sylvhem 8fecd80108 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).
8 years ago
Sorin Davidoi 348d6f5e75 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
8 years ago
Eugen Rochko 00df69bc89 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
8 years ago
Eugen Rochko 6e1261f277 Fix notifications including wrong status in JSON (#4097) 8 years ago
Eugen Rochko 1c1819a78a 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.
8 years ago
Eugen Rochko 8b2cad5637 Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl (#4090) 8 years ago
のら 2d6128672f Togglable filter links (#4021)
* Togglable filter links

* Rename is_selected to selected?
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 2083000027 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.
8 years ago
Damien Erambert 18d3fa953b 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
8 years ago
abcang f76e71825d Improve Activity stream spoiler (#4088) 8 years ago
STJrInuyasha 6bf6d35637 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
8 years ago
unarist 9c03fd9cae 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.
8 years ago
Mantas 34c8a46d7d Remove ugly blue highlight on Android browsers (#4031) 8 years ago
Quent-in 26949607d2 l10n Occitan locale (#4089)
* Small adjustments

About the report part.

* Update time format
8 years ago
Shin Kojima e7c0d87d98 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
8 years ago
m4sk1n 6d106d3943 i18n: minor changes in Polish translation (#4087)
* i18n: minor changes in Polish translation

* Update pl.json
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) a37cf9548c Explicitly require MIME::Types (#4083) 8 years ago
abcang 5e6acf9601 Fix Nokogiri::HTML at FetchLinkCardService (#4072) 8 years ago
unarist b52a5e6bd6 Show LoadMore button on Notifications even if all items are filtered (#4077) 8 years ago
Yamagishi Kazutoshi bb194ddb3c Format datetime of subscriptions on admin UI (#4078) 8 years ago
Minori Hiraoka 976c18aa5f 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
8 years ago
Gyuhwan Park 4cddef1cea 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
8 years ago
Yamagishi Kazutoshi 275c5b51ed Customizable privacy policy from admin interface (#4062) 8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) f85dbe83c8 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.
8 years ago
Yamagishi Kazutoshi 92f1c474f3 Add fa-fw class to user agent icon (#4047) 8 years ago
abcang a6d02cff36 Rescue exceptions caused by FetchLinkCardService (#4045) 8 years ago
Nolan Lawson e282580101 Faster emojify() by avoiding str.replace() entirely (#4049) 8 years ago
Damien Erambert 133b892e0d 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
8 years ago
Sorin Davidoi 60da49f856 fix(components/columns_area): Increase delta for swipe detection (#4037) 8 years ago
Eugen Rochko bf50e3e5ae Fix height issue in report modal 8 years ago
Nolan Lawson a978b88997 Faster emojify() algorithm, avoid regex replace (#4019)
* Faster emojify() algorithm, avoid regex replace

* add semicolon
8 years ago
Yamagishi Kazutoshi 3a7106f05a Fix that AdminMailer does not send (#4012) 8 years ago
Yamagishi Kazutoshi 0e09048537 Fix broken style in media gallery (regression from #3963) (#4014) 8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 7362469d89 Do not raise an error if PrecomputeFeed could not find any status (#4015) 8 years ago
abcang 1273fbf86e Rescue Addressable::URI::InvalidURIError at Remotable (#4017) 8 years ago
Yamagishi Kazutoshi a27879c0cf Replace state to /web when root path (#4009) 8 years ago
Naoki Kosaka 049cea30b0 Fix media-gallery, overflow is hidden. (#4008) 8 years ago
abcang b342c81c17 rescue HTTP::ConnectionError (#3992) 8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) f79c10162e Use multiple pairs for zadd in PrecomputeFeedService (#3990) 8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 60b2b56d38 Reduce number of commands in FeedManager#trim (#3989) 8 years ago
Eugen Rochko 71bc75e6ac Do not fail to create access token if superapp was never created (#3986) 8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 7d8e3721ae Overwrite old statuses with reblogs in PrecomputeFeedService (#3984) 8 years ago
m4sk1n 126f929c39 i18n: Use instance name in email notifications instead of Mastodon (pl) (#3976)
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
8 years ago
m4sk1n 6ad72728f6 i18n: Turn report screen into a modal (pl) (#3974) 8 years ago
Sorin Davidoi 64d9c016bd fix(components/status): Up & down jump due to content being added to the DOM (#3972) 8 years ago
Eugen Rochko 12e7c81dd8 Turn report screen into a modal (#3965) 8 years ago
Midgard 16d0aed403 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".
8 years ago
Sorin Davidoi be92babd00 Responsive images in media gallery (#3963)
* feat(components/media_gallery): Responsive images

* fix(components/media_gallery): Link to image URL
8 years ago
Yamagishi Kazutoshi 8f2c91568c Maintain aspect ratio for preview image (#3966) 8 years ago
Eugen Rochko 42b8220632 Fix #1624 - Send e-mail notifications to admins about new reports (#3949) 8 years ago
ThibG a91d968cab Raise an error if salmon request response is unsatisfactory (#3960) 8 years ago
Alda Marteau-Hardi f53ed108b0 Translate pin/unpin and fix some inconsistencies in gender neutral strings (#3952) 8 years ago
Eugen Rochko 5e8d037e27 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
8 years ago
Eugen Rochko ed7dc1704d 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
8 years ago
Sorin Davidoi 4ce1540094 fix(features/compose): Handle external changes to the textarea (#3632) 8 years ago
Eugen Rochko f7301bd5b9 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
8 years ago
PFM 099a3b4eac Fix "undefined" in className (#3939) 8 years ago
unarist 1fc096ec75 Fix elephant in onboarding modal being very small sized on small devices (#3932) 8 years ago
unarist 21c2bc119c Clean column collapsible (#3931)
* Remove unused column_collapsable.js
* Remove old styles
* Extract `> div`  style to independent class
8 years ago
Sorin Davidoi d23293c762 feat(components/onboarding_modal): Swipe between pages (#3934) 8 years ago
Yamagishi Kazutoshi 79dacea962 Fix #3924 (regression from #3906) (#3925) 8 years ago
unarist 4e6b5e7879 Use debounce for dispatch scrollTopNotification and expandNotifications (#3700) 8 years ago
Daniel Hunsaker c0979381a4 Fix a typo and give CW'd statuses the right cursor (#3918) 8 years ago
Yamagishi Kazutoshi c1a8e3d1eb Use Class and Property Decorators (#3730)
ref https://tc39.github.io/proposal-decorators/
8 years ago
Sorin Davidoi 2211e8d1cd Revocable sessions (#3616)
* feat: Revocable sessions

* fix: Tests using sign_in

* feat: Configuration entry for the maximum number of session activations
8 years ago
Eugen Rochko 281f07244b Merge branch 'swipe-gestures' of git://github.com/sorin-davidoi/mastodon into sorin-davidoi-swipe-gestures 8 years ago
Yamagishi Kazutoshi eff9416469 Remove unused variables (#3906) 8 years ago
Yamagishi Kazutoshi 6fbb3841a6 Add prefix to setting toggle ID (#3907) 8 years ago
Sorin Davidoi d8c4781377 fix: Apply :hover, :focus and :active only when multiple columns 8 years ago
Sorin Davidoi bc6e958229 feat: Swipeable media 8 years ago
Sorin Davidoi a6d8d1036a feat: Swipeable columns 8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) e27f792c24 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
8 years ago
Eugen Rochko 0190aac240 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
8 years ago
unarist cc382c5006 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.
8 years ago
Eugen Rochko 946a166791 Revert #3851 (#3878) 8 years ago
Eugen Rochko 31cd649041 Revert "Don't attach IntersectionObserver for wrapped statuses" (#3877)
* Revert "Bump version to 1.4.4"

This reverts commit 1585b0c6cc.

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

This reverts commit 15b43f555d.

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

This reverts commit d8ec832806.

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

This reverts commit bab5a18232.

* Revert "Fix RemoteFollow behavior (#3868)"

This reverts commit a20cf3b64e.

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

This reverts commit 356df7ae6b.

* Revert "Upgrade React Router (#3677)"

This reverts commit 8f03fdce7f.

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

This reverts commit 1fc6cb4997.

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

This reverts commit eb832e88f4.

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

This reverts commit b16b69350e.

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

This reverts commit da6fa029f6.

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

This reverts commit 94ad0706f5.
8 years ago
ThibG 15b43f555d 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
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) bab5a18232 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.
8 years ago
unarist a20cf3b64e Fix RemoteFollow behavior (#3868)
* Invalid acct is an error. not "2 errors".
* Empty input should be different error from invalid acct
8 years ago
Sorin Davidoi 8f03fdce7f 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
8 years ago
alpaca-tc 1fc6cb4997 Do not call setState from unmounted component (#3853)
Stop an executing task if the component already unmounted.
8 years ago
Yamagishi Kazutoshi eb832e88f4 Replace TextIconButton for SensitiveButton to IconButton (#3759)
* Replace TextIconButton for SensitiveButton to IconButton

* line-height
8 years ago
unarist b16b69350e Fix RTL detection on Ruby side (#3867)
This fixes below bugs:

* pipe characters being counted as RTL character
* only first word being checked
8 years ago
unarist 94ad0706f5 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.
8 years ago
unarist bf8c2c4348 Clicking on the CW text should expand the status (#3855) 8 years ago
unarist aa58cca040 Set cursor:pointer only when necessary (#3857) 8 years ago
masarakki ff142eb64d setting-for-account-deletable (#3852) 8 years ago
Daigo 3 Dango 5bd3715a4c 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.
8 years ago
Gô Shoemake 29a22691d2 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
8 years ago
alpaca-tc cf6fe4f8cb Unobserve status on unmount (#3851) 8 years ago
alpaca-tc 8d2b3ada80 Fixes streaming callbacks of HashtagTimeline (#3849) 8 years ago
Eugen Rochko f3be605286 Rename FollowRemoteAccountService to ResolveRemoteAccountService (#3847)
Rename Activitypub to ActivityPub
8 years ago
Eugen Rochko aebebdc5d1 Debounce autosuggestions (#3836)
* Debounce autosuggestions

* Remove duplicate import
8 years ago
Nolan Lawson 1f2abd8d67 Fix jittery scrolling for Chromium browsers (#3776) (#3832) 8 years ago
Nolan Lawson 1d9f9352a6 handle resize in a debounce() (#3834) 8 years ago
nightpool 94d0e012de 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
8 years ago
abcang 1840a352f5 Fix ogp url (#3802) 8 years ago
Yamagishi Kazutoshi df4f4e94b3 Add alt attribute to ImageLoader (#3765) 8 years ago
ThibG 51b2f789bd Fix #3633 by not spawning RemoteProfileUpdateWorker from FetchRemoteAccountService (#3642) 8 years ago
Eugen Rochko 8518d005fd Fix regression from #3490 - filter out hidden statuses from ancestors/descendants even if the viewer is anonymous (#3752) 8 years ago
Eugen Rochko bb911043de Fix regression from #3748 - properly set defaultColumns (#3750) 8 years ago
unarist d8a0ee1956 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.
8 years ago
Eugen Rochko 91c71471ab Fix account delete form not accepting password, update suspended (#3745)
account before removing content for quicker feedback to end-users
8 years ago
Eugen Rochko 80c13bf0ef Save settings when they are changed (#3743) 8 years ago
Eugen Rochko e17c2e5da5 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
8 years ago
Eugen Rochko 4a618908e8 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
8 years ago
Eugen Rochko dc8a6244fc 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!
8 years ago
Sorin Davidoi 0f52e42c2d fix(status): Content jump due to height changes (#3734) 8 years ago
Eugen Rochko 47ace633dc Simplify getting started links localization. Link "powered by Mastodon" to joinmastodon.org (#3725) 8 years ago
Eugen Rochko 85d5518b6b Fix #3675 - Adjust quality settings of converted GIFs to reduce filesize (#3723) 8 years ago
Eugen Rochko 5104bd7988 Fix unclickable onboardin modal regression (#3724) 8 years ago
m4sk1n 3e425b51fd i18n: minor fix in Polish translation (#3726)
* i18n: minor fix in Polish translation

* i18n
8 years ago
Eugen Rochko 37dbfa4cd7 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
8 years ago
Ratmir Karabut 0d23c81662 Update Russian translation (pin) (#3712)
* Update Russian translation (pin)
8 years ago
Yamagishi Kazutoshi b436b31d5a Regenerate defaultMessages.json (#3709)
follow up #3564
8 years ago
Yamagishi Kazutoshi 72133fbed6 Re-add clear notifications button (#3708)
* Re-add clear notifications button

* remove connect() in column_settings

* one line

* remove unused props
8 years ago
Eugen Rochko 605e2a417c Fix regression from #3672 - Do not use pipeline around zscore (#3704) 8 years ago
ThibG f8fe394e7a 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.
8 years ago
Eugen Rochko ce812466c7 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
8 years ago
Eugen Rochko 47bf7a8047 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
8 years ago
René Klačan 85d405c810 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
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) f596a413ef Localize date in digest and cover NotificationMailer more (#3694)
* Localize date in digest

* Cover NotificationMailer more
8 years ago
Yamagishi Kazutoshi 3690f04e4a Remove comments for eslint-disable (#3691) 8 years ago
Yamagishi Kazutoshi f3e8bc9f8f Refactor UpdateRemoteProfileService (#3690) 8 years ago
René Klačan dcf0530218 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
8 years ago
Jeroen 6fb9726b99 Update NL for 1.4.2 (#3685) 8 years ago
Eugen Rochko 8015fd7600 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
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 4919b89ab8 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
8 years ago
Matt Jankowski 2925372ff4 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
8 years ago
m4sk1n 778430b54a i18n: Minor fixes in Polish translation (#3674)
* i18n

* i18n

* i18n

* i18n

* i18n
8 years ago
Matt Jankowski 5282ba862a 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
8 years ago
Eugen Rochko 9b03cf0ddd Fix #3658 - Update RTL styles (#3669) 8 years ago
Eugen Rochko cdff1da901 Correct validators so that existing error messages would look correct (#3668) 8 years ago
Matt Jankowski 022008a2a6 Language detection defaults to nil (#3666)
* Default to nil for statuses.language

* Language detection defaults to nil instead of instance UI default
8 years ago
Clworld a3715598cc adjust the size of 'column-header__back-button' (retry) (#3662) 8 years ago
Yamagishi Kazutoshi 1be48dd805 Refactor views/admin/reports/show.html.haml (#3656) 8 years ago
Yamagishi Kazutoshi 6384041d17 Add includes to Report#statuses (#3655) 8 years ago
Yamagishi Kazutoshi 140e73bc82 Check ready state of document in public pages (#3652)
* Check ready state of document in public pages

* add check interactive
8 years ago
ふぁぼ原 e3fae6f52c adjust the size of column-header__back-button (#3654) 8 years ago
Eugen Rochko 177dd8bb53 Fix regression from #3592 - validation condition nesting (#3644) 8 years ago
Eugen Rochko c207b4bb33 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
8 years ago
Eugen Rochko b87eb8ea14 Fix #3378 - If favourite/reblog already exists, return it instead of failing (#3641) 8 years ago
Eugen Rochko 8902e265b4 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
8 years ago
ThibG f741673638 Fixes #3605 by returning account from database in case of race condition (#3606) 8 years ago
Yamagishi Kazutoshi 0a0b9a271a 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.
8 years ago
Sorin Davidoi 8acadeea76 fix: Warn if JavaScript is disabled (#3634) 8 years ago
Matt Jankowski 73540ffe6b 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
8 years ago
Sorin Davidoi 8cf8ce4ac0 fix(components/autosuggest_textarea): Race condition regarding onBlur (#3631) 8 years ago
Matt Jankowski f0634ba876 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
8 years ago
Yamagishi Kazutoshi 1d68fe1a60 Fix Code Climate failed (regression from #3622) (#3624) 8 years ago
unarist 6bd6dcf6df Allow "class" attribute on the "a" tag in sanitization (#3623)
This preserves `<a ... class="u-url mention">` from other Mastodon instances.
8 years ago
ThibG 28d2920472 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.
8 years ago
Yamagishi Kazutoshi 34bfea8bbf Small changes to japanese translation (#3620) 8 years ago
STJrInuyasha 2d91944285 Don't show business e-mail if it's blank (#3619) 8 years ago
Eugen Rochko b623dd12c1 Use preview image in <ImageLoader /> to provide immediate visual feedback (#3595)
before the full-size image is loaded
8 years ago
Eugen Rochko 722d152082 Fix #3063 - Add dynamic app manifest (#3563)
* Fix #3063 - Add dynamic app manifest

* Added short_name

* Add background_color
8 years ago
ふぁぼ原 7623766241 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
8 years ago
unarist e34c5a3503 Fix 500 errors on searching invalid URLs (#3613) 8 years ago
unarist 004672aa6c 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.
8 years ago
Yamagishi Kazutoshi d8ae3efec3 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
8 years ago
Yamagishi Kazutoshi cd81a1c52a Add missing key attribute to .search-results__hashtag (#3607) 8 years ago
May Kittens Devour Your Soul dcf73ddeff Update hr.json (#3609) 8 years ago
Yamagishi Kazutoshi 7a7bfa5170 Add quotes ESLint rules (#3602)
* Add quotes ESLint rule

* Add jsx-quotes ESlint rule

* Sort ESLint rules
8 years ago
Yamagishi Kazutoshi e969c78645 Disable ESLint rule jsx/anchor-has-content (#3601) 8 years ago
ThibG 7adac1bc51 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
8 years ago
Naoki Kosaka e859d6f259 Fix LoadMore in Notifications. (#3590) 8 years ago
Naoki Kosaka a0880edc6e Fix (PR #3585) Add hasMore to propTypes and cover handleScroll. (#3589) 8 years ago
unarist 61fcdbbf7e Add back button to hashtag timeline again (#3587) 8 years ago
Shunsuke Michii 43af695ba1 Add th.json. (#3588) 8 years ago
IkUrA facd90e7a6 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
8 years ago
Matt Jankowski 6201f96b8a 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
8 years ago
unarist c26cea262b Prevent pinned columns from scroll to top on URL changing (#3586) 8 years ago
Naoki Kosaka 1f1d6bf2a0 Fix LoadMore in following and followers. (#3585) 8 years ago
Daigo 3 Dango 2985d08951 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
8 years ago
Yamagishi Kazutoshi 66ca7157db Add support key shortcut to Onboarding Modal (#3517)
* Add support key shortcut to Onboarding Modal

* this.state.pages -> this.pages
8 years ago
Yamagishi Kazutoshi 4addf051d4 Fix broken embed page (#3577) 8 years ago
René Klačan 037f96c5ae Don't follow account if it's already followed (#3575)
Closes https://github.com/tootsuite/mastodon/issues/3102
8 years ago
Quent-in 370fa70924 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
8 years ago
Eugen Rochko f7a30e2fae 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
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) e07b57852e Remove some code in TagManager and spec (#3547)
* Do not fall back to StreamEntry if object_type is unavailable in TagManager

Since 6d6a429af8, 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
8 years ago
m4sk1n 7c7c18fdea i18n: Updated Polish translation (#3555) 8 years ago
lindwurm a84664026e 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>
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) e674608d10 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
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) c7af8cbc90 Remove some arguments of Formatter.instance.format and spec (#3541)
* Remove some arguments of Formatter.instance.format

* Improve spec for Formatter
8 years ago
Akihiko Odaki (@fn_aki@pawoo.net) 19084d3c6c Remove Targetable (#3548) 8 years ago
Naoki Kosaka e014bf8ed0 Fix limit_param in favourites_controller.rb (#3553) 8 years ago