Eugen Rochko
9bbcd2e8a0
Add ability to follow hashtags in web UI ( #18862 )
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
e6eb0a29b9
Add notifications for new reports ( #18697 )
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
Eugen Rochko
8ec66981da
Change label of publish button to be "Publish" again ( #18583 )
2 years ago
Eugen Rochko
c460fd0250
Remove unused assets ( #18541 )
2 years ago
Eugen Rochko
e4a9aa1ab4
Add language dropdown to compose in web UI ( #18420 )
3 years ago
Eugen Rochko
ac3d6f9a35
Add `limited` attribute to accounts in REST API and a warning in web UI ( #18344 )
3 years ago
Claire
917567567a
Fix block/mute lists showing a follow button when unblocking a user ( #18364 )
...
Fixes #601
3 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
Claire
1d7e3d18a0
Change “Only people I mention” to “Mentioned people only” ( #18291 )
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
cea2cd9a56
Add pagination for trending statuses in web UI ( #17976 )
3 years ago
CommanderRoot
07f1888854
Replace deprecated String.prototype.substr() ( #17949 )
...
* Replace deprecated String.prototype.substr()
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated
* Change String.prototype.substring() to String.prototype.slice()
.substring() and .slice() work very similary but .slice() is a bit faster and stricter
* Add ESLint rule to forbid usage of .substr and .substring
.substr() is deprecated and .substring() is very similar to .slice() so better to use .slice() at all times
Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
3 years ago
Eugen Rochko
1c1c2ce0a1
Fix crash when search fails in web UI ( #17853 )
3 years ago
Eugen Rochko
354415e7ce
Add hint about missing media attachment description in web UI ( #17845 )
3 years ago
mayaeh
500a3e1d3a
Changed to display the "Explore" in "Getting-Started" at all resolutions ( #17762 )
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
mayaeh
0a9273ffb2
Add menu column of explore to getting-started ( #17755 )
3 years ago
Eugen Rochko
f5346541fd
Add polls and media attachments to edit comparison modal in web UI ( #17727 )
3 years ago
Eugen Rochko
380aef66ae
Fix being able to add more than 4 hashtags to hashtag column in web UI ( #17729 )
3 years ago
Eugen Rochko
563964dd80
Change appearance of account cards in web UI ( #17689 )
...
* Change appearance of account cards in web UI
* Various fixes and improvements
* Various fixes and improvements
3 years ago
Josh Soref
1c070bd94c
Spelling ( #17705 )
...
* spelling: account
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: affiliated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: appearance
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: autosuggest
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: cacheable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: component
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: conversations
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: domain.example
Clarify what's distinct and use RFC friendly domain space.
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: environment
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: exceeds
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: functional
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: inefficiency
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: not
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: notifications
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: occurring
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: position
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: progress
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: promotable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: reblogging
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: repetitive
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: resolve
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: saturated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: similar
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: strategies
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: success
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: targeting
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: thumbnails
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unauthorized
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unsensitizes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: validations
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: various
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
3 years ago
Eugen Rochko
97eaac87fa
Remove profile directory link from main navigation panel ( #17688 )
3 years ago
Eugen Rochko
45341c5287
Fix not showing loading indicator when searching in web UI ( #17655 )
3 years ago
Eugen Rochko
c49b23819b
Fix report submit button not being disabled during submission in web UI ( #17654 )
...
Add loading indicator for status selection step in report dialog in web UI
3 years ago
Claire
f75cd229f3
Fix media modal footer's “external link” not being a link ( #17561 )
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
Eugen Rochko
19b4c36e40
Add explore page to web UI ( #17123 )
...
* Add explore page to web UI
* Fix not removing loaded statuses from trends on mute/block action
3 years ago
Eugen Rochko
7e91581be0
Change report modal to include category selection in web UI ( #17565 )
...
* Change report modal to include category selection in web UI
* Various fixes and improvements
- Change thank you text to be different based on category
- Change starting headline to be different for account and status reports
- Change toggle components to have a checkmark when checked
- Fix report dialog being cut off on small screens
- Fix thank you screen offering mute or block if already muted or blocked
- Refactor toggle components in report dialog into one component
* Change wording on final screen
* Change checkboxes to be square when multiple options are possible
3 years ago
Eugen Rochko
eef9eec5d3
Add notifications for new sign-ups ( #16953 )
3 years ago
luzpaz
b97e7364f3
Fix various typos ( #17621 )
...
Found via `codespell -q 3 -S ./CHANGELOG.md,./AUTHORS.md,./config/locales,./app/javascript/mastodon/locales -L ba,keypair,medias,ro`
3 years ago
Claire
5b5b9deebd
Fix opening the emoji picker scrolling the single-column view to the top ( #17579 )
...
Fixes #17577
3 years ago
Claire
d10eb06cb4
Fix controls for unchangeable properties on status edit not being disabled ( #17531 )
...
Fixes #17520
3 years ago
Eugen Rochko
8ffc48ebfa
Add notifications when a reblogged status has been updated ( #17404 )
...
* Add notifications when a reblogged status has been updated
* Change wording to say "edit" instead of "update" and add missing controls
* Replace previous update notifications with the most up-to-date one
3 years ago
Eugen Rochko
64a94a889b
Chore: Disable menu items for editing statuses in web UI ( #17497 )
...
Feature must be unlocked in a separate release for max. compatibility
3 years ago
Eugen Rochko
cb76142d9e
Add editing for published statuses ( #17320 )
...
* Add editing for published statuses
* Fix change of multiple-choice boolean in poll not resetting votes
* Remove the ability to update existing media attachments for now
3 years ago
Eugen Rochko
948da1a958
Add edit history to web UI ( #17390 )
...
* Add edit history to web UI
* Change history reducer to store items per status
* Fix missing loading prop
3 years ago
Claire
335049cc33
Fix text being incorrectly pre-selected in composer textarea on /share ( #17339 )
...
Fixes #17295
3 years ago
Eugen Rochko
06b698a723
Add support for editing for published statuses ( #16697 )
...
* Add support for editing for published statuses
* Fix references to stripped-out code
* Various fixes and improvements
* Further fixes and improvements
* Fix updates being potentially sent to unauthorized recipients
* Various fixes and improvements
* Fix wrong words in test
* Fix notifying accounts that were tagged but were not in the audience
* Fix mistake
3 years ago
Eugen Rochko
2fb76550a9
Add notifications for statuses deleted by moderators ( #17204 )
3 years ago
Claire
5aade2baac
Add support for private pinned posts ( #16954 )
...
* Add support for private pinned toots
* Allow local user to pin private toots
* Change wording to avoid "direct message"
3 years ago
Rens Groothuijsen
9d43863426
Fix tag rendering error in hashtag column settings ( #17184 )
...
* Flatten tags in configuration to regular array before converting to JSON
* Render filter tags using toJS instead of toJSON
3 years ago
Claire
5305dada6c
Fix searching for additional hashtags in hashtag column ( #17054 )
3 years ago