* package.json: Add "build:*" targets
* Improve react-intl-translations-manager workflow.
* Added "build:production" to build production bundle.
* Added "build:development" to build development bundle.
* Fix json translation files
* Run `yarn manage:translations` to fix translation files.
* Fix `pl.json` for syntax error.
* translationRunner: auto detect existing languages
* Auto detect existing rfc5646 language tag in *.json filenames
in `app/javascript/mastodon/locale` folder. No need to manually
define every new language in the languages array here.
* translationRunner: add more functionality
* Allow script user to specify language code to check.
* Added available language check.
* Added --force flag to force creation of unexists language.
* Added --help flag and help messages.
* gitignore: ignore npm-debug.log
* Fix webpack error if NODE_ENV is not defined
Default to use 'development' in config/webpack/configuration.js
* Dont use raise_error by itself (avoids warning)
* Add coverage for AccountFilter
* Improve coverage and refactor for Subscription#lease_seconds
* Improve coverage and refactor for NotificationMailer
* Simplify assignment of min/max threshold on subscription
* Fix#2473 - Use sidekiq scheduler to refresh PuSH subscriptions instead of cron
Fix an issue where / in domain would raise exception in TagManager#normalize_domain
PuSH subscriptions refresh done in a round-robin way to avoid hammering a single
server's hub in sequence. Correct handling of failures/retries through Sidekiq (see
also #2613). Optimize Account#with_followers scope. Also, since subscriptions
are now delegated to Sidekiq jobs, an uncaught exception will not stop the entire
refreshing operation halfway through
Fix#2702 - Correct user agent header on outgoing http requests
* Add test for SubscribeService
* Extract #expiring_accounts into method
* Make mastodon:push:refresh no-op
* Queues are now defined in sidekiq.yml
* Queues are now in sidekiq.yml
* ui: check spoiler_text against regex filter (#1635)
When filtering by regex, also check the spoiler_text if
present.
* ui: concatenate spoiler and content in reducer
Simplifies aa5b03c, clarifies intent of the field
* When streaming API is disconnected, poll home/notifications
Display slightly different empty home timeline message if user is following others
Cull notifications to 20 items when over 40 get added in real-time
Run manage:translations
* Optimize <HomeTimeline /> a little
* Likely fix#2458, fix#2031 - handle out-of-order deletes for statuses
If a delete arrives before the original status, cache that information
for 6h, and if the original status arrives in that window, ignore it
* Add test case
Fix#2196 - Respond with 201 when Salmon accepted, 400 when unverified
Fix#2629 - Correctly handle confirm_domain? for local accounts
Unify rules for extracting author acct from XML, prefer <email>, fall back
to <name> + <uri> (see also #2017, #2172)
* Update zh-CN translations.
* Update doorkeeper.zh-CN.yml
* Follow @Artoria2e5 's change advices.
* forget mail for text format ......
* fix some changes
* mail's html version ......
* https://github.com/tootsuite/mastodon/pull/2699#pullrequestreview-35982283
* a space.....
* delete some unused keys
* Replace browserify with webpack
* Add react-intl-translations-manager
* Do not minify in development, add offline-plugin for ServiceWorker background cache updates
* Adjust tests and dependencies
* Fix production deployments
* Fix tests
* More optimizations
* Improve travis cache for npm stuff
* Re-run travis
* Add back support for custom.scss as before
* Remove offline-plugin and babili
* Fix issue with Immutable.List().unshift(...values) not working as expected
* Make travis load schema instead of running all migrations in sequence
* Fix missing React import in WarningContainer. Optimize rendering performance by using ImmutablePureComponent instead of
React.PureComponent. ImmutablePureComponent uses Immutable.is() to compare props. Replace dynamic callback bindings in
<UI />
* Add react definitions to places that use JSX
* Add Procfile.dev for running rails, webpack and streaming API at the same time
* follow the instructions for registering the language as stated on the Tootsuite's docs.
* Added translation strings from latest master
Adding ‏ characters to many strings that are misdirected in the interface.
A tiny grammar fix
Updates of Hebrew strings to v1.3.1
Hebrew translation of the mailer templates.
Fix strings and a missing comma.
Just discovered two string keys were updated. this should lay Travis' mind to rest at last.
Remove mentions before counting characters to decide RTL ratio
Fixes for PR #2573
updated strings for latest master
Undo RTL counting, moved out to another branch for future consideration...
* add annotate to Gemfile
* rails g annotate:install
* configure annotate_models
* add schema info to models
* fix rubocop to add frozen_string_literal
* Add coverage for create with empty acct value
* Add coverage for create with webfinger failure
* Add coverage for create with webfinger providing bad values
* Add coverage for create when webfinger is good
* Add coverage for session[:remote_follow] having data
* Simplify how remote follow pulls acct from session
* Remote follow behaves more like model
* Move the discovery portions of remote follow out of controller
* Check for suspended accounts
* Added Italian Translation of the following files:
Changes to be committed:
new file: app/views/user_mailer/confirmation_instructions.it.html.erb
new file: app/views/user_mailer/confirmation_instructions.it.text.erb
new file: app/views/user_mailer/password_change.it.html.erb
new file: app/views/user_mailer/password_change.it.text.erb
new file: app/views/user_mailer/reset_password_instructions.it.html.erb
new file: app/views/user_mailer/reset_password_instructions.it.text.erb
* Added italian translation
Changes to be committed:
new file: config/locales/activerecord.it.yml
* fix(dropdowns): Allow for dropdowns to fill full column
When the text inside a dropdown is longer than it is for English, the text is truncated which can result in a less-than-usable experience for languages such as German with longer words. This commit addresses the following:
* Allow the dropdown to expand to the entire width of the column based on the length of the text in the dropdown
* Align active dropdown arrow in relation to the trigger rather than the dropdown
* Show the right hand side of the dropdown which was previously hidden (could not see border radius)
* Ensure the three places dropdowns of status, account, and emoji appear well in Chrome, Firefox, Safari
* fix(emoji-dropdown): Restore emoji dropdown caret
* Naive approached to timeline filtering
* Convert allowed_languages into a db column
* Allow users to choose languages to see statuses in
* Style list items as two columns
* Add a hint to explain language filtering preference
* update id.jsx file
* update id.yml for new strings and improvements
* add activerecord.id.yml
* improve translation that out of context
* fix another ooc string
* fix main key
* Changement de « muets » en « silencés »
Utiliser le mot « muet » donne la fausse impression que ces comptes ne diffusent juste rien. Utiliser le mot « silencé » met l’accent sur le fait que ceci résulte d’une action de l’utilisateur·rice.
By using tho word "muet" (mute), we give the false impression that this accounts don't publish anything. Using the "silencé" (muted) put emphasis on the fact that this is the result of one of the user's action.
* Remplacement de « ' » par « ’ »
En français, l’apostrophe utilisée est une apostrophe courbe « ’ » (U+2019) et non pas une apostrophe droite « ' » (U+0027). La plupart des chaînes utilisaient une apostrophe droite. Ce commit harmonise le type d’apostrophe utilisé en remplaçant toutes les apostrophes droites par des apostrophes courbes.
In French, the apostrophe used is the curly one (U+2019) and not the vertical one (U+0027). Almost all the strings used a vertical apostrophe. This commit harmonize the kind of apostrophe used in the French localization by replacing all the vertical apostrophes by curly apostrophes.
* Remplacement de « ... » par « … »
Certaines chaînes utilisaient trois points d’affilié afin de représenter les points de suspension au lieu d’utiliser le caractère dédié « … » (U+2026). Ce commit harmonise la façon de représenter des points en remplaçant toutes les séries de trois points par le caractère dédié.
Some chains used a series of three dots to show the ellipsis instead of using the dedicated character "…" (U+2026). This commit harmonize how the ellipsis is shown in the French localization by replacing all the series of three dots by the dedicated character.
* Ajout d’un point final
Il manque un point à la fin de la dernière phrase de la chaîne « compose_form.privacy_disclaimer ». Ce commit le rajoute.
The last sentence of the "compose_form.privacy_disclaimer" string is missing a final dot. This commit will add it.
* Retrait d’un « s » final à « Mastodon »
Suite à la remarque de @wxcafe, retrait du « s » final à « Mastodon ».
Following @wxcafe comment, this commit remove the final "s" in the word "Mastodon".
* Add coverage for admin/confirmations controller
* Coverage for statuses controller show action
* Add coverage for admin/domain_blocks controller
* Add coverage for settings/profiles#update
* fix(video): Position of play icon
#2601
* fix(overlay-button): Positioning
* fix(expand): Bottom align expand icon
* feat(video): Fit landscape videos into preview area
Follow-up to #2599. When a domain block with `reject_media` is
added or `rake mastodon:media:remove_remote` is invoked, mastodon
deletes the locally cached attachments and avatars but does not
reflect that change in the database, causing the `file` fields to
still have values. This change persists the deletion in the
database and sets the attachment type to unknown.
This also introduces a one-off rake task that sets all attachments
without a local file to the "unknown" type. The upgrade notes for
the next release should contain a post-upgrade step with
`rake mastodon:media:set_unknown`.
In #2110, a new attachment type "unknown" was introduced for
attachments that were rejected due to a domain being blocked using
reject_media. However, the "type" field was never set to "unknown"
because a default value of "0" (image) is set for that column,
causing the `type.blank?` expression to always equal false.
This version uses type_changed? instead, causing the type to be set
to "unknown" unless a type has been explicitly set. This introduces
a small change in behaviour causing the type to be set to unknown
before paperclip calls `before_post_process`. Presumably this
behaviour is more appropriate than the current one because the
attachment type has not been determined by that point.
Included are new tests for `ProcessFeedService` and
`UpdateRemoteProfileService` which now check that remote media is
downloaded for non-blocked domains and is rejected for others.
* Minor updates to zh-CN JS translation
* removed "!" from "toot" per #2549 (it's a privacy indicator)
* ellipsis work (from ... to some U+2026 horizontal ellipsis unicode stuff)
* Spillcheck for zh-CN js translations (squash this)
部 [份→分]
* Add render_views in more places
* Delegate methods from account to user with allow nil true, so that admin accounts show view renders when missing a user
* Use actual account instances in authorize follow controller spec
* Add rough outline of coverage needed for public timeline
* Specs for visibility, replies, boosts
* Specs for silenced account
* Specs for local_only option
* Specs for blocks and mutes
* Add tentative spec around including other silenced account statuses
* Add with_public_visibility scope
* Add simple coverage for tag_timeline
* Tag timeline includes replies
* Replace tag.statuses with a tagged_with scope in tag timeline method
* Use with_public_visibility in tag timeline
* Extract common scope between public and tag timelines to method
* Extract local domain check to local_only scope
* Extract local_only check to starting scope method
* Move list of excluded from timeline account ids to account model
* Simplify excluded accounts list on account model
* Only join accounts when needed
* Rename method for account specific filtering
* Extract method for account exclusions
* Fix bug where silenced accounts were not including statuses from other silenced accounts
* DRY up filter application from account or no account
* timeline_scope can be private
* Add spec showing that account can find its excluded accounts ids
* Add spec which fails if local_only does not have a left outer join
* rubocop
In #2505, the authorize_follow views were renamed to
authorize_follows. This change was not applied in the show view
of admin/reports, which causes a 500 when reports are viewed.
* Instead of parsing shared status contents verbatim, make roundtrip
to purported original URL. Confirm that the "original" URL is from the
same domain as the author it claims to be from.
* Fix obvious typo, add comment
* Use URI look-up first
* Add test, update Goldfinger dependency to make less useless HTTP requests per Webfinger lookup
* OEmbed support for PreviewCard
* Improve ProviderDiscovery code failure treatment
* Do not crawl links if there is a content warning, since those
don't display a link card anyway
* Reset db schema
* Fresh migrate
* Fix rubocop style issues
Fix#1681 - return existing access token when applicable instead of creating new
* Fix test
* Extract http client to helper
* Improve oembed controller
* 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
* Update Russian translation
* Fix merge conflicts
Redid Works by @rkarabut
* Add coverage for domain block service with silence
* Get rid of warning about find_each and order
* Move domain_block to attr_reader
* Move optional clear_media into silence_accounts method
* Use blocked_domain method to reduce passed vars
* Extract blocked_domain_accounts method to find accounts on the domain
* Extract media_from_blocked_domain method to find relevant attachments
* Separate destruction of account images and account attachments
* Fixes#1985
- add migration AddMediaAttachmentMeta, which add meta field to media_attachments
- before saving attachment, set file meta if needed
- add meta in api
* add spec
* align the “size” format for image and video
* fix code climate
* fixes media_attachment_spec.rb
Closestootsuite/mastodon#1349
This is my first PR and I’m only checking in the source JSX file.
Please let me know if it should be checked in after being built also.
* Stricter whitelist rules
* Linting
* Added spec for blacklisting
* Test subdomain blacklist on domain whitelist
* No need to split
* Change spec name
Set status action bar to have display flex and center align items so dropdown icon appears center aligned with other icons. Make styles alpha organized.
Add hover state to boost icon - lighten color on hover.
This PR fixes I18n.locale for rake middlewares. Mastodon uses Devise that depends on Warden.
Warden::Manager can be found in rake middleware. It is outside of the controller.
In the case of authentication failed, warden calls throw(:warden). At the time Warden::Manager
delegates request to failure_app to generate response and flash[:alert] after catching it.
Unfortunately, I18n.locale is already reset then because I18n.with_locale is enabled only
inside the controller. If we used I18n.locale=, Devise::FailureApp could get the current locale.
* Change ActivityPub paging to match spec. Clean up ActivityPub outbox changes.
* Fix code style and test failures for OutboxController.
* Attempt to fix CI errors.
duplicates. Web UI regenerates UUID for that header every time the compose
form is changed or successfully submitted
Also, fix Farsi i18n overwriting the English one
* Fix#2119 - Whenever about to send a HTTP request, normalize the URI
* Add test for IDN request in FetchLinkCardService
* Perform IDN normalization on domains before they are stored in the DB
* fix(upload): Only show upload modal when drag even contains files
* fix(firefox): Close drag window ondragend also
Do not only end drag styles on drag leave, but also on drag end. Fixes firefox bug. #687
* fix(drag-modal): Remove drag modal trigger cruft
* fix(upload-modal): Allow close with escape button
* Add failing spec for oauth/authorized_applications controller
* Use explicit reference to flashes partial from admin layout
Because some of the controllers which use the admin layout do not inherit from
application controller, this partial is not in their view path.