* Add render_views for admin/settings spec
* Add coverage for admin/settings#update
* Add coverage for admin/settings typecasting open_registrations setting
* Simplify how admin/settings finds the value for updating
* Rely on activerecord to not update a value that hasnt changed
* Add coverage for non-existent setting
* Use a constant for boolean settings
* Fix#2108 - Fix gif uploads
Add specs for media attachment gifv conversion
* Add ffmpeg to travis
* Make travis install ffmpeg, not libav
* Switch travis to trusty
* Add meta tags for OGP to following & follow page
* simplify render helper
* Follow up #2133
* og:type is only accounts/show
* revert accounts/{following,followers}
* enable to scroll the setting's page sidebar
add scroll:auto and use margin instead of padding for the bottom
* Update admin.scss
* Update admin.scss
* Update admin.scss
* Add routing specs for accounts followers and following actions
* Use more restful route naming for public account follow pages
Moves two actions:
- accounts#followers to accounts/follower_accounts#index
- accounts#following to accounts/following_accounts#index
Adds routing spec to ensure prior URLs are preserved.
* Extract detect_language to separate class
* Use default locale, not just en
* Add spec to confirm that whatlanguage cant identify empty string
* Allow account locale to override default in language detector
* PostStatusService supplies an account to detect language
* Polish zh-cn js translation
* fixes for problems pointed out by gumblex in #2044
* more effectively differentiate between following/follower
* Fix missing period (zh-cn js)
Maybe squash this commit?
* Fix duplicate word (zh-cn js)
* Add a ReportFilter class
* Add reports and targeted_reports relationships to Account
* Use ReportFilter from admin/reports controller
* Link to admin/reports filtered views from admin account show view
* Add indexes to reports.account_id and reports.target_account_id
* Added oc.yml
* Added `config/locales/oc.yml`.
Translated in General Occitan (Quent-in).
* Added oc.jsx (Occitan translation)
* Written in General Occitan (lengadocian)
* Added `app/assets/javascripts/components/locales/oc.js`
* Added doorkeeper.oc.yml
* Added `config/locales/doorkeeper.oc.yml` (Quent-in)
* Added simple_form.oc.yml
* Added `config/locales/simple_form.oc.yml` (Quent-in).
* Merge en.yml changes into oc.yml
Added new strings for translations
* Fix typo in oc.yml
* Update javascript locale support (oc)
* Update ruby locale list (oc)
* Fix oc.yml
* Remove obsoleted translations
* Moved old translation of `reports` to `admin.reports`
* Remove unused method #set_counters_maps from api controller
* Remove unused method #set_account_counters_maps from api controller
* Remove unused method Account#followers_domains
* Remove unused User.prolific scope
* Add mastodon:users:admins task to list all admin emails
* Use interpolated query style in Account.triadic_closures
* Coverage for Account.triadic_closures
* Add FR locale for the onboarding modal component
* Slightly increase the max-width and max-height of the onboarding modal
This is done so it doesn't break with locales whose strings would be
too long
* Update FR locales for onboarding upon PR comments
This single-file commit, heavily based on the zh-hk version as of
ec9999c, fixes the missing js locale. Intentional, significant
departures from current zh-cn yml localizations have been marked with
rationales given.
* Move site title helper to instance helper (name change only)
* Remove newline in <title> tag
* Add site_hostname helper method to wrap up local_domain value
* Use site_hostname helper in places that need local_domain value
* Fixed some words
* Improved and more consistent
* Fixes and a bit less 'je'
* Improved and more consistent
* Another round of improvements and consistency
* More improvements and less 'je'
* Update
* Updated with admin strings
* More improvements and additions - not complete yet, but most is there
* This is what we call in Dutch 'the English disease' :-)
* fix comma
* admin.reportsi
* not needed
* hopefully now fixed
This change includes:
- Improve the spec coverage for incoming request to the webfinger action
- For requests without an accept header (ie, what a browser might look like),
return a JSON response.
- For requests with an explicit format of xml or json, return that format.
- For requests using an accept header, return that format.
Also adds failing spec showing webfinger does not return xml, which covers the
issue described in: https://github.com/tootsuite/mastodon/issues/1983
Un utiliser mal expérimenté pourrait comprendre "retirer les erreurs".
Ici il s'agit d'une suppression pure et simple, pas une épuration/nettoyage.
clear would be translated "remove" instead of "cleaning" Cleaning can be unterstood "keep but clean"
This introduces a new per-user preference called
"Auto-play animated GIFs", which is enabled by default. When a
user disables this setting, gifs in toots become click-to-play.
Previews of animated gifs were changed to display the video play
button so that users can distinguish them from regular images.
This setting also affects account avatars in the detailed account
view, which was changed to use the same hover-to-play mechanism
that is used for animated avatars in timelines.
Fixes#1652
* Remove overflow because it blocks scrolling on mobile safari.
* Add “-webkit-overflow-scrolling: touch;” to enable smooth scroll on mobile safari and other webkit browsers.
* Use radio buttons in user setting page.
Because select tags with long text are not fit in the width of mobile devices.
* Add flex property to fit labels to devise width.
* Change font size of select.
It causes auto zooming on mobile safari.
* reduce unneed query when post without attachements.
This commit reduce following query:
```
MediaAttachment Load (0.9ms) SELECT "media_attachments".* FROM "media_attachments" WHERE "media_attachments"."status
_id" IS NULL AND 1=0 ORDER BY id asc
```
* fixed for more simple changes.
* Add language detection via WhatLanguage and (de)serialization of it through Atom
* Fix default language in ProcessFeedService
* Re-add newline before 'react-rails' Gem to fix groupings
Fixes Code Climate issue
* Basic onboarding modal that's shown to users once
* Lay out pages 2 through 5, add images, style modals (#1509)
* Lay out pages 2 through 5
Added images and laid out pages 2 through 5 in the jsx file. SCSS will
come, still working on just seeing if this works at all.
* Fix jsx errors, add images to modal pages, style modal pages
* Add animations to onboarding pager changes, improve wording and styling
* Finishing touches on the onboarding
* Add missing propTypes
* Update wording
* Rename admin.domain_block to admin.domain_blocks in prep for i18n improvement
* Use implicit controller/action path for i18n in admin/domain_blocks
* Add DomainBlock#accounts has_many
* Avoid i18n health warning for `en` locale by using symbol scope with :count
* Remove unused i18n key: plaintext_secret_html
* Remove unused i18n key two_factor_auth.warning
* Remove final will_paginate i18n keys
* Remove unused key two_factor_auth.recovery_codes
* Remove unused key: admin.reports.comment.none
* Remove unused reports. i18n namespace (moved to admin.reports)
* Ignore keys from locales which override activemodel and activerecord errors
* Revert "Remove unused key: admin.reports.comment.none"
This reverts commit 350ef2685fadc069e619bb6d1066190de195d942.
* Update i18n key reference to match moved location
* Add missing `en` keys to i18n
* Tell i18n-tasks to ignore missing attributes that dont need overwriting
* Add i18n-tasks unused to travis
The <link rel="mentioned" /> tag refers to accounts by href. So we were
matching the DB by the url attribute, and falling back to HTTP look-up.
However, GS and Mastodon use profile URLs as URIs, too, and the match
for that was missing. This could potentially alleviate some extra network
requests
Create MediaAttachment but without actual file download when domain is blocked with reject_media set to true
Clean up old media files when creating a new domain block with reject_media set to true
Return remote_url in media attachments API if local file is not present
Undo domain block action in admin UI
Ability to enable reject_media from admin UI
* User can create a custom.scss to customize their instance without modifying gitted files.
* Add documentation for customization.
* Forgot the helper file
* Fix Style to pass codeclimate
* Requests from maintainer.
An attempt to open a brand new Mastodon instance configured
as SINGLE_USER_MODE=true will cause an exception.
Enable temporary registration if we have no users in the database
Fixes#1817
* Add eslint-plugin-jsx-a11y.
* Fix npm script.
* Adjust npm scripts so test also runs lint.
* Fix existing lint errors.
* Don't break on a11y issues.
* Add role and tabIndex.
* Add vim and Mac files to .gitignore and .dockerignore.
* Handle htmlFor (partially), a that's actually a button.
* Fix missing tabIndex.
* Add cursor:pointer to load-more
* Revert change to load_more.
* Fixes based on review.
* Update yarn.lock.
* Don't try to install fsevents on Linux (hides warning noise).
* Add recovery code support for two-factor auth
When users enable two-factor auth, the app now generates ten
single-use recovery codes. Users are encouraged to print the codes
and store them in a safe place.
The two-factor prompt during login now accepts both OTP codes and
recovery codes.
The two-factor settings UI allows users to regenerated lost
recovery codes. Users who have set up two-factor auth prior to
this feature being added can use it to generate recovery codes
for the first time.
Fixes#563 and fixes#987
* Set OTP_SECRET in test enviroment
* add missing .html to view file names
* Begin coverage for account search service
* Coverage for hashtag query
* Coverage for calling local vs remote find based on domain presence
* Spec to check that exact matches are not duped
* Coverage of resolve option
* Coverage for account being provided
* Start to refactor account search service
* Isolate query username and domain methods
* Isolate exact_match method
* Extract methods for local and remote results
* Simplify local vs remote and account isoliation
* Extract methods for local and remote results
* Simplify de-dupe of exact match
* Simplify logic to check for non exact remotes
* Cache some methods
* Remove nil from exact_match from results array
* Return exact matches first
* Use find_remote even with no domain
Account.find_local is just an alias for Account.find_remote(user, nil) - so we
can not bother with the conditional here, and call find_remote directly.
* Refresh local info for remote accounts when webfinger returns new values
It only refreshes account info if one of the URLs or the public-key changes,
in which cases it refreshes the full info, re-downloading the feeds from that
user.
Some special handling should probably be done when the public key changes,
but I have been unable to find any use for it in Mastodon yet.
* Re-fetch remote users we aren't subscribed to.
This might induce performance issues, we might want to only do that for users
we explicitly attempted to subscribe but failed to.
* Refactor changes
* Do not refresh existing remote account details more than once a day
* Avoid re-fetching webfinger info in tests unless otherwise specified
* Working translation for Norwegian.
* Fixes to Norwegian translation.
* Further adjustments to Norwegian translation.
* Further adjustments to Norwegian translation.
* Yet more improvements to the Norwegian translation.
* More Norwegian translations. Better terminology.
* Allow running mastodon on a different domain as the one used for identifying users
* Alter documentation of WEB_DOMAIN to make clear it shouldn't be used unless the admin knows what they are doing
* Compare to web_domain instead of local_domain when dealing with feeds/API
* Correctly identify mentions to local accounts
Mentions URLs point to the person's web profile, i.e., the user page served on WEB_DOMAIN.
* Add locale spec with failing locale plus region check
* Use a more accurate locale when supplied by browser headers
Previously we were using a matching option which would use the first locale
available which matched the locale portion, even if a region was specified.
This changes to first try to find an exact match, and then fall back to the
region, and then fall back to the default.
* Clean up default_locale method
* Simplify admin/reports controller filtering for index
* Rename parameter to resolved
* Fix issue where reports view could not access filter_link_to
* Add coverage for admin/reports controller
* DRY up resolution of related reports for target account
* Clean up admin/reports routes
* Add Report#statuses method
* DRY up current account action taken params
* Rubocop styles
When transmitting data in a HTML-encoded element like <content type="html" />,
relying on newlines being preserved is not wise, since HTML by itself
does not care for newlines - it cares for <p> and <br>
Additional fix: reset NSFW toggle after sending toot
* Add translation files and declarations for Bulgarian
* Add a bunch of translations to bg.jsx
* Add rest of translations to bg.jsx
* Add devise translations
* Fix devise translations
* Add request spec for host meta route returning xml
* Add routing spec for xrd routes
* Update well-known routes
* Move webfinger and host-meta actions to their own controllers
* Remove unused account_params method in admin/accounts controller
* Introduce AccountFilter to find accounts
* Use AccountFilter in admin/accounts controller
* Use more restful routes admin silence and suspension area
* Add admin/silences and admin/suspensions controllers
* Reorder javascript English locale file
* Reorder translation string in order of the locale key.
* Add javascript English locale missing language keys
* Search all javascript language keys by command:
`grep -REho '<FormattedMessage .*\/>' ./app/assets/javascripts/.`
* Add all the missing language keys and their values to `en.jsx`.
* Add javascript English locale missing language keys (2)
* Find all `defineMessages` calls with this command:
`grep -Rl 'defineMessages({.*' ./app/assets/javascripts/.`
* Open all these files. Find the language key (`id`) in these
statements.
* Add all the missing language keys and their values to `en.jsx`.
* Remove javascript English locale obsoleted language keys
* Find all language keys that no longer exists in the source code
and remove them. The removed keys include:
* "compose_form.private"
* "compose_form.unlisted"
* "getting_started.about_addressing"
* "getting_started.about_shortcuts"
* "notification.mention"
* "search.account"
* "search.hashtag"
* "tabs_bar.mentions"
* "tabs_bar.public"
* Javascript English locale file add note
* Add notes to contributors about the English translation files.
Hope that will make translation process smoother.
* Update javascript locale defaultValue in code
* Update the defaultValue in code according to the relevant
translation in English locale file.
* Working translation for Norwegian.
* Fixes to Norwegian translation.
* Further adjustments to Norwegian translation.
* Further adjustments to Norwegian translation.
* significant improvement in microformats markup
This is a huge improvement and I believe will close#965.
Had these microformats reviewed by others in the community to help
ensure they are at least correct, if not complete.
I did not want to change the structure of the page, and so there it does
not fully mark up the entire ancestry chain, or reply chain, only the
direct decendants and direct ancestors are correctly associated, but
this is likely fine as the most important bit is to have access to the
urls for those toots which are now correctly fetchable.
* improve code climate
* trying to pass code climate tests
* code climate
* fix p-summary for content warning posts
* fix error introduced when merging via github
* Added missing Spanish translations strings
* fix bad translation
* resolve conflict with tootsuite/master
* agreements from spanish community
* Add some missing strings
* Make Reporting admin section translatable
And translate it into english and french
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
* Make subject of emails translatable and improve french translation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
* Make error pages translatable and translate them in english and french
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
* Translate site setting section
* Insert instance in registration emails and improve them a bit
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
* Added Chinese Traditional Hong Kong (zh-HK) for Ruby
* Added translations for Ruby.
* Added Chinese Traditional Hong Kong (zh-HK) for JS
* Added translations for javascript code.
* Rearrange language references in mastodon.jsx
* Break `addLocaleData` into multiple lines. Make future commit more readable.
* Roughly re-sort the languages in alphabetical orders
(only manually put English on top because it is default).
* Sort application.rb locale with alphabetical order
With exception that English (default language) goes first.
Improve code readability.
* Resort language selection box alphabetically
Sort HUMAN_LOCALES in the alphabetical order of display name
(except English, the default language, come first).
Improve usability.
* Add basic coverage for settings/exports controller
* Remove unused @account variable from settings/exports controller
* Add coverage for download export actions
* Remove deprecated `render :text` in favor of `send_data` for csv downloads
* Add model to handle exports
* Use Export class in settings/exports controller
* Simplify settings/exports controller methods
* Move settings/export to more restful routes
* Update devise.fr.yml fixing minor typos
* add missing strings
* Fix a translation and add translation for devise part
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
- details a background for contrast
- add 5px padding to the top of the `details-counters` children to line them up with the bio to the right (Which has a 5px padding on the top)
* Replace will_paginate with kaminari
* Use #page instead of #paginate in controllers
* Replace will_paginate.page_gap with pagination.truncate in i18n
* Customize kaminari views to match prior styles
* Set kaminari options to match prior behavior
* Replace will_paginate with paginate in views
* When avatar/header are GIF, generate static versions.
Account API returns "avatar"/"avatar_static", "header"/"header_static"
Static version is the same as original for other cases
Web UI de-animates avatars in toots, lists of users
Fix#441, fix#596, prerequisite for #1064
* Fix JS test
* Add rake task to generate static avatars/headers from GIF ones, add test
The `Status` class has a default order on it, so when this query gets built and
gets all the way to `find_in_batches` there is an order already there.
When `find_in_batches` is run it discards any existing order on the query, and
emits a warning to the logs if there is one there.
This change removes the order prior calling `find_in_batches`, which will stop
the logged warning from occurring as well.
This patch stops disabling the toot text field when an image is uploading. Instead, you can type to your heart's content and when the image uploads it'll append the image URL, and restore the position of your cursor to wherever it was in the toot text just prior. Effectively, the image URL is appended to the toot, and typing is not interrupted at all! ✨
* Add Admin::BaseController to wrap admin area
Extracts the setting of the `admin` layout and verifying that users are admins
to a common base class for the admin/ controllers.
* Add basic coverage for admin/reports and admin/settings controllers
Addresses #1451 which notes the emoji picker is too light. I agree, so I submit this adjustment.
Changes:
Changed the background to a darkened version of another system color
* Replace column margin with padding
This improves horizontal scrolling behaviour significantly; scrolled flex elements are... a little weird.
* Move clear column button styling to css
Sign-in redirects you back to last visited URL, but in case of API requests,
this sometimes redirected users to an API URL that, of course, greeted them
with an {"error":"The access token is invalid"}