Claire
eb24df264f
Fix “Sign up” button with closed registrations not opening modal on mobile ( #22060 )
...
Fixes #20840
2 years ago
Levi Bard
8f32b59570
Make the button that expands the publish form differentiable from the button that publishes a post ( #20864 )
2 years ago
trwnh
1b9ad6fb4b
Change in-app links to keep you in-app ( #20540 )
...
* Change in-app links to keep you in-app
* refactor Permalink into Link
* rewrite link hrefs in status content
* please linter
* please linter again
2 years ago
Cutls
f22910ef4a
Do not show drag&drop dialog when not logined ( #20400 )
...
* Cannot upload until login
* and do not fire upload
* change username props to context
2 years ago
Eugen Rochko
3ff5a02f65
Add option to open original page in dropdowns of remote content in web UI ( #20299 )
...
Change profile picture click to open profile picture in modal in web UI
2 years ago
Sunny Ripert
6dd0521788
Add form element on focal point modal ( #19834 )
...
* Add form element on focal point modal
* Add type="button" for detection button
2 years ago
Eugen Rochko
8742e0000e
Fix missing interpolation of domain in disabled account banner in web UI ( #19788 )
2 years ago
Claire
3d24ef2967
Change sign-in banner to reflect disabled or moved account status ( #19773 )
2 years ago
Eugen Rochko
0b91816814
Change design of link footer ( #19562 )
2 years ago
Claire
d94b1c682a
Add closed registrations modal ( #19437 )
2 years ago
Claire
4a6fb0ea2a
Remove navigation links to /explore when trends are disabled ( #19415 )
...
* Remove navigation links to /explore when trends are disabled
* Do not display trends interface when trends are disabled
2 years ago
Eugen Rochko
7cbab3e7fd
Change layout of posts in web UI ( #19423 )
2 years ago
Eugen Rochko
2e0f4c286f
Fix redirecting to `/publish` when compose form is visible in web UI ( #19427 )
2 years ago
Eugen Rochko
370f2609b8
Change floating action button to be a button in header in web UI ( #19422 )
...
- Fix theme color
- Fix elephant being too big on error page on small screens
- Remove "Follows and Followers" link from navigation panel
2 years ago
Eugen Rochko
daaa66a2c2
Add error boundary around routes in web UI ( #19412 )
...
* Add error boundary around routes in web UI
* Update app/javascript/mastodon/features/ui/util/react_router_helpers.js
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
* Update app/javascript/mastodon/features/ui/util/react_router_helpers.js
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
* Update app/javascript/mastodon/features/ui/components/bundle_column_error.js
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2 years ago
Claire
f272594be6
Change landing page to be /about instead of /explore when trends are disabled ( #19414 )
2 years ago
Eugen Rochko
0fdfbe555e
Change public accounts pages to mount the web UI ( #19319 )
...
* Change public accounts pages to mount the web UI
* Fix handling of remote usernames in routes
- When logged in, serve web app
- When logged out, redirect to permalink
- Fix `app-body` class not being set sometimes due to name conflict
* Fix missing `multiColumn` prop
* Fix failing test
* Use `discoverable` attribute to control indexing directives
* Fix `<ColumnLoading />` not using `multiColumn`
* Add `noindex` to accounts in REST API
* Change noindex directive to not be rendered by default before a route is mounted
* Add loading indicator for detailed status in web UI
* Fix missing indicator appearing while account is loading in web UI
2 years ago
Eugen Rochko
6ab724918b
Change featured hashtags to be displayed in navigation panel ( #19382 )
2 years ago
Takeshi Umeda
3e88e7ba20
Add featured tags selector for WebUI ( #19358 )
...
* Add featured tags selector for WebUI
* Add title to tag count
2 years ago
Eugen Rochko
e376f33207
Change about page to be mounted in the web UI ( #19345 )
2 years ago
Yamagishi Kazutoshi
f84bee7d78
Redirect non-logged-in user to owner statuses on single user mode ( #19333 )
2 years ago
Yamagishi Kazutoshi
bccb0db26b
Hide list panel from nav bar in mobile layout ( #19337 )
2 years ago
Yamagishi Kazutoshi
595d5744ae
Fix `ColumnLink` labels not disappearing in mobile UI ( #19334 )
2 years ago
Yamagishi Kazutoshi
fca4e2c284
Fix fedi/local timeline nav link always hide ( #19329 )
2 years ago
Eugen Rochko
e13d9e178c
Fix intermediary responsive layout, accessibility on navigation in web UI ( #19324 )
...
* Fix intermediary responsive layout, accessibility on navigation in web UI
* `yarn test:jest -u`
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2 years ago
Yamagishi Kazutoshi
9762fe2475
Add title to pages with missing title in Web UI ( #19322 )
2 years ago
Yamagishi Kazutoshi
c312e0180b
Remove timeline preview link from nav panel when not signed-in ( #19320 )
...
* Remove timeline preview link from nav panel when not signed-in
* Always enable server stats
2 years ago
Eugen Rochko
378e00b59c
Change privacy policy to be rendered in web UI, add REST API ( #19310 )
...
Source string no longer localized, Markdown instead of raw HTML
2 years ago
Eugen Rochko
9b05f5b2bb
Add interaction modal to logged-out web UI ( #19306 )
2 years ago
Eugen Rochko
c603978cf6
Add server banner to web app, add `GET /api/v2/instance` to REST API ( #19294 )
2 years ago
Eugen Rochko
2d634b669b
Fix logged-out web UI on smaller screens ( #19263 )
2 years ago
Eugen Rochko
c04359a63b
Change path of privacy policy page ( #19249 )
2 years ago
Eugen Rochko
cd9a0f136d
Add sign-up button to logged-out web UI ( #19250 )
2 years ago
Eugen Rochko
babebc4e8a
Add logged-out access to the web UI ( #18961 )
2 years ago
Eugen Rochko
f4e91041b2
Add ability to filter followed accounts' posts by language ( #19095 )
2 years ago
Claire
522fbf9d13
Add ability to filter individual posts ( #18945 )
...
* Add database table for status-specific filters
* Add REST endpoints, entities and attributes
* Show status filters in /filters interface
* Perform server-side filtering for individual posts filters
* Fix filtering on context mismatch
* Refactor `toServerSideType` by moving it to its own module
* Move loupe and delete icons to their own module
* Add ability to filter individual posts from WebUI
* Replace keyword list by warnings (expired, context mismatch)
* Refactor server-side filtering code
* Add tests
2 years ago
Yamagishi Kazutoshi
a3eda85ff9
Bump react-redux-loading-bar from 4.0.8 to 5.0.4 ( #18562 )
2 years ago
Eugen Rochko
e164d6a687
Add customizable user roles ( #18641 )
...
* Add customizable user roles
* Various fixes and improvements
* Add migration for old settings and fix tootctl role management
2 years ago
Claire
90e5a9bd98
Revamp post filtering system ( #18058 )
...
* Add model for custom filter keywords
* Use CustomFilterKeyword internally
Does not change the API
* Fix /filters/edit and /filters/new
* Add migration tests
* Remove whole_word column from custom_filters (covered by custom_filter_keywords)
* Redesign /filters
Instead of a list, present a card that displays more information and handles
multiple keywords per filter.
* Redesign /filters/new and /filters/edit to add and remove keywords
This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.
* Add /api/v2/filters to edit filter with multiple keywords
Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
`keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`
API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
`keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
`keywords_attributes` can also be passed to edit, delete or add keywords in
one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword
* Change from `irreversible` boolean to `action` enum
* Remove irrelevent `irreversible_must_be_within_context` check
* Fix /filters/new and /filters/edit with update for filter_action
* Fix Rubocop/Codeclimate complaining about task names
* Refactor FeedManager#phrase_filtered?
This moves regexp building and filter caching to the `CustomFilter` class.
This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.
* Perform server-side filtering and output result in REST API
* Fix numerous filters_changed events being sent when editing multiple keywords at once
* Add some tests
* Use the new API in the WebUI
- use client-side logic for filters we have fetched rules for.
This is so that filter changes can be retroactively applied without
reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
(e.g. network error, or initial timeline loading)
* Minor optimizations and refactoring
* Perform server-side filtering on the streaming server
* Change the wording of filter action labels
* Fix issues pointed out by linter
* Change design of “Show anyway” link in accordence to review comments
* Drop “irreversible” filtering behavior
* Move /api/v2/filter_keywords to /api/v1/filters/keywords
* Rename `filter_results` attribute to `filtered`
* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer
* Fix systemChannelId value in streaming server
* Simplify code by removing client-side filtering code
The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
2 years ago
Eugen Rochko
157bf44409
New Crowdin updates ( #18561 )
...
* New translations en.yml (Portuguese)
* New translations en.yml (Lithuanian)
* New translations en.yml (Serbian (Cyrillic))
* New translations en.yml (Turkish)
* New translations en.yml (Ukrainian)
* New translations en.yml (Chinese Traditional)
* New translations en.yml (Urdu (Pakistan))
* New translations en.yml (Icelandic)
* New translations en.yml (Portuguese, Brazilian)
* New translations en.yml (Indonesian)
* New translations en.yml (Tamil)
* New translations en.yml (Macedonian)
* New translations en.yml (Korean)
* New translations en.yml (Georgian)
* New translations en.yml (Slovak)
* New translations en.yml (Chinese Simplified)
* New translations en.yml (Swedish)
* New translations en.yml (Hebrew)
* New translations en.yml (Italian)
* New translations en.yml (Japanese)
* New translations en.yml (Russian)
* New translations en.yml (Slovenian)
* New translations en.yml (Armenian)
* New translations en.yml (Vietnamese)
* New translations en.yml (Scottish Gaelic)
* New translations en.yml (Occitan)
* New translations en.yml (Persian)
* New translations en.yml (Galician)
* New translations en.yml (Hungarian)
* New translations en.yml (Spanish, Argentina)
* New translations en.yml (Irish)
* New translations en.json (Arabic)
* New translations en.json (Irish)
* New translations en.json (German)
* New translations en.yml (Spanish, Mexico)
* New translations en.json (Turkish)
* New translations en.yml (Kabyle)
* New translations en.yml (Ido)
* New translations en.yml (Taigi)
* New translations en.yml (Silesian)
* New translations en.yml (Standard Moroccan Tamazight)
* New translations en.json (Japanese)
* New translations en.json (Korean)
* New translations en.json (Vietnamese)
* New translations en.json (Chinese Simplified)
* New translations en.yml (Sardinian)
* New translations en.json (Portuguese, Brazilian)
* New translations en.json (Asturian)
* New translations en.json (Scottish Gaelic)
* New translations en.json (Welsh)
* New translations en.json (Galician)
* New translations en.json (Slovak)
* New translations en.json (Icelandic)
* New translations en.yml (Sanskrit)
* New translations en.yml (Corsican)
* New translations en.yml (Bengali)
* New translations en.yml (Esperanto)
* New translations en.yml (Marathi)
* New translations en.yml (Croatian)
* New translations en.yml (Norwegian Nynorsk)
* New translations en.yml (Kazakh)
* New translations en.yml (Estonian)
* New translations en.yml (Latvian)
* New translations en.yml (Hindi)
* New translations en.yml (Malay)
* New translations en.yml (Telugu)
* New translations en.yml (Welsh)
* New translations en.yml (Uyghur)
* New translations en.yml (Sorani (Kurdish))
* New translations en.yml (Chinese Traditional, Hong Kong)
* New translations en.yml (Tatar)
* New translations en.yml (Malayalam)
* New translations en.yml (Breton)
* New translations en.yml (Sinhala)
* New translations en.yml (Cornish)
* New translations en.yml (Kannada)
* New translations en.yml (Asturian)
* New translations en.yml (Serbian (Latin))
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.json (Sorani (Kurdish))
* New translations en.json (Greek)
* New translations en.json (Romanian)
* New translations en.json (French)
* New translations en.json (Spanish)
* New translations en.json (Afrikaans)
* New translations en.json (Bulgarian)
* New translations en.json (Czech)
* New translations en.json (Danish)
* New translations en.json (Basque)
* New translations en.json (Finnish)
* New translations en.json (Hebrew)
* New translations en.json (Spanish, Mexico)
* New translations en.json (Marathi)
* New translations en.json (Bengali)
* New translations en.json (English, United Kingdom)
* New translations en.json (Spanish, Argentina)
* New translations en.json (Tamil)
* New translations en.json (Croatian)
* New translations en.json (Persian)
* New translations en.json (Thai)
* New translations en.json (Malay)
* New translations en.json (Norwegian Nynorsk)
* New translations en.json (Kazakh)
* New translations en.json (Estonian)
* New translations en.json (Latvian)
* New translations en.json (Hindi)
* New translations en.json (Urdu (Pakistan))
* New translations en.json (Telugu)
* New translations en.json (Esperanto)
* New translations en.json (Indonesian)
* New translations en.json (Slovenian)
* New translations en.json (Chinese Traditional)
* New translations en.json (Dutch)
* New translations en.json (Norwegian)
* New translations en.json (Hungarian)
* New translations en.json (Armenian)
* New translations en.json (Italian)
* New translations en.json (Georgian)
* New translations en.json (Lithuanian)
* New translations en.json (Macedonian)
* New translations en.json (Punjabi)
* New translations en.json (Ukrainian)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Russian)
* New translations en.yml (English, United Kingdom)
* New translations en.json (Albanian)
* New translations en.json (Serbian (Cyrillic))
* New translations en.json (Swedish)
* New translations en.json (Uyghur)
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.json (Corsican)
* New translations en.json (Silesian)
* New translations en.json (Taigi)
* New translations en.json (Ido)
* New translations en.json (Kabyle)
* New translations en.json (Sanskrit)
* New translations en.json (Sardinian)
* New translations en.json (Kurmanji (Kurdish))
* New translations en.json (Tatar)
* New translations en.json (Serbian (Latin))
* New translations en.json (Occitan)
* New translations en.json (Kannada)
* New translations en.json (Cornish)
* New translations en.json (Sinhala)
* New translations en.json (Breton)
* New translations en.json (Malayalam)
* New translations en.json (Standard Moroccan Tamazight)
* New translations en.json (Spanish, Argentina)
* New translations en.json (Galician)
* New translations en.json (Chinese Traditional)
* New translations en.json (Greek)
* New translations en.json (Swedish)
* New translations en.json (Russian)
* New translations en.json (Chinese Simplified)
* New translations en.json (Catalan)
* New translations en.json (Polish)
* New translations en.json (Latvian)
* New translations en.yml (Turkish)
* New translations en.json (Turkish)
* New translations en.json (Czech)
* New translations en.json (Slovenian)
* New translations en.json (Icelandic)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Vietnamese)
* New translations en.yml (Russian)
* New translations doorkeeper.en.yml (Russian)
* New translations en.yml (Japanese)
* New translations en.json (Japanese)
* New translations en.json (Danish)
* New translations en.json (Dutch)
* New translations en.json (Portuguese)
* New translations en.json (Frisian)
* New translations en.yml (Frisian)
* New translations simple_form.en.yml (Frisian)
* New translations activerecord.en.yml (Frisian)
* New translations devise.en.yml (Frisian)
* New translations doorkeeper.en.yml (Frisian)
* New translations en.json (Frisian)
* New translations en.yml (Breton)
* New translations en.json (Breton)
* New translations en.yml (Polish)
* New translations en.yml (Russian)
* New translations en.yml (Catalan)
* New translations en.yml (Korean)
* New translations en.yml (Spanish, Argentina)
* New translations en.json (Korean)
* New translations en.yml (Greek)
* New translations en.yml (Kurmanji (Kurdish))
* New translations en.yml (Ukrainian)
* New translations en.yml (Czech)
* New translations en.json (Ukrainian)
* New translations en.yml (Icelandic)
* New translations en.yml (Portuguese)
* New translations en.yml (Latvian)
* New translations en.yml (Hungarian)
* New translations en.json (Irish)
* New translations en.json (Irish)
* New translations en.json (Irish)
* New translations en.yml (Czech)
* New translations en.yml (Danish)
* New translations en.yml (Chinese Traditional)
* New translations en.yml (Galician)
* New translations en.yml (Galician)
* New translations simple_form.en.yml (Galician)
* New translations en.json (Frisian)
* New translations en.json (Frisian)
* New translations en.json (Frisian)
* New translations en.json (Frisian)
* New translations en.yml (Frisian)
* New translations en.json (Frisian)
* New translations en.yml (Frisian)
* New translations activerecord.en.yml (Frisian)
* New translations activerecord.en.yml (Frisian)
* New translations en.json (Frisian)
* New translations devise.en.yml (Frisian)
* New translations doorkeeper.en.yml (Frisian)
* New translations en.json (Frisian)
* New translations en.yml (Frisian)
* New translations en.yml (Slovenian)
* New translations en.json (Frisian)
* New translations en.yml (Frisian)
* New translations doorkeeper.en.yml (Frisian)
* New translations en.json (Frisian)
* New translations en.yml (Frisian)
* New translations simple_form.en.yml (Frisian)
* New translations en.json (Frisian)
* New translations en.yml (Frisian)
* New translations en.json (Frisian)
* New translations en.json (Frisian)
* New translations en.json (Frisian)
* New translations en.json (Frisian)
* New translations en.yml (Indonesian)
* New translations en.json (Indonesian)
* New translations en.json (Spanish)
* New translations en.yml (Spanish)
* New translations en.yml (Italian)
* New translations en.yml (Ido)
* New translations en.json (Ido)
* New translations en.json (French)
* New translations en.yml (Korean)
* New translations simple_form.en.yml (Korean)
* New translations simple_form.en.yml (Korean)
* New translations en.yml (Russian)
* New translations en.yml (Russian)
* Run `yarn manage:translations`
* Run `bundle exec i18n-tasks normalize`
* Fix default message
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2 years ago
Claire
82dcdc12f1
Fix floating action button obscuring last element ( #18332 )
...
Fixes #18331
Add some padding below the last element of scrollable lists when the FAB is
shown in order for users to always be able to fully see the last element.
3 years ago
Stefano Pigozzi
02987b1191
Replace leftover `envelope` icons with `at` icons ( #18305 )
3 years ago
Eugen Rochko
c33a26ed38
Change "Conversations" back to "Direct messages" and add warning in web UI ( #18289 )
...
Partially reverts #18146
3 years ago
Eugen Rochko
07737bb6d1
Change "Direct" status visibility to "Only people I mention" in web UI ( #18146 )
...
- Change name of conversations column in web UI
- Change hotkey for opening conversations column from `g d` to `g c` in web UI
- Remove shortcuts for creating direct-visibility statuses from web UI
3 years ago
Claire
ff9d647aa6
Fix empty “Server rules violation” report option ( #18165 )
3 years ago
Eugen Rochko
95ea5b2f7d
Fix public timelines being inaccessible on one stage of responsive layout in web UI ( #17760 )
...
Fix #17756
3 years ago
mayaeh
24f375d79e
Change the "Explore" icon from fa-globe to fa-hashtag ( #17757 )
3 years ago
Eugen Rochko
f5346541fd
Add polls and media attachments to edit comparison modal in web UI ( #17727 )
3 years ago
Eugen Rochko
97eaac87fa
Remove profile directory link from main navigation panel ( #17688 )
3 years ago
Claire
cbf951569e
Fix reply button on media modal not giving focus to compose form ( #17626 )
...
* Avoid compose form and modal management fighting for focus
* Fix reply button on media modal footer not giving focus to compose form
3 years ago