Commit graph

539 commits

Author SHA1 Message Date
Claire
99734ac936
Remove preview cards from fav and boost notifications ()
Fixes 
2022-11-10 19:36:12 +01:00
Eugen Rochko
7bdb2433f1
Change larger reblogs/favourites numbers to be shortened in web UI () 2022-11-10 08:49:59 +01:00
Eugen Rochko
ef582dc4f2
Add option to open original page in dropdowns of remote content in web UI ()
Change profile picture click to open profile picture in modal in web UI
2022-11-10 08:49:35 +01:00
Sasha Sorokin
d055d75172
Remove aria-pressed where it's redundant ()
This commit removes aria-pressed attribute from all elements which
contents or other descriptive attributes change in active state,
effectively replacing the meaning of the button, in which case
aria-pressed, an attribute specified whether the button is currently
pressed, would create a confusion. (Spoiler: it's everywhere).

See https://github.com/mastodon/mastodon/issues/13545#issuecomment-1304886969
2022-11-08 17:31:32 +01:00
Claire
622f603ac7
Add aria-expanded to content warning toggle button ()
Fixes 
2022-11-07 15:48:46 +01:00
Sunny Ripert
ffe735344b
Fix JavaScript console error on Getting Started column ()
* Fix JavaScript console error on Getting Started column

* Update app/javascript/mastodon/components/column_header.js

Co-authored-by: Ilias Tsangaris <iliastsangaris@gmail.com>

Co-authored-by: Ilias Tsangaris <iliastsangaris@gmail.com>
2022-11-07 03:40:04 +01:00
Eugen Rochko
ca8d52c2a4
Change design of new list form in web UI () 2022-11-05 23:06:32 +01:00
Eugen Rochko
d1de7fb7fa
Fix rendering empty avatar in web UI () 2022-11-05 21:18:57 +01:00
Claire
9616f5bb22
Fix compose form submission reloading web interface ()
* Fix compose form submission reloading web interface

Fix regression introduced by 

* Fix various compose form buttons being handled like submit buttons

* Fix coding style issue

* Fix missing onClick prop check
2022-11-05 13:43:37 +01:00
Sunny Ripert
0165449e3a
A11y: Explicit <form> element around compose area () 2022-11-04 17:08:08 +01:00
Eugen Rochko
bfafb114a2
Fix showing profile's featured tags on individual statuses () 2022-11-04 02:28:25 +01:00
Eugen Rochko
2d9a85db6e
Change design of link footer () 2022-10-31 13:06:17 +01:00
Eugen Rochko
923f06a07c
Fix number of uses being shown again on trending hashtags in web UI () 2022-10-28 12:56:51 +02:00
Eugen Rochko
8dfe5179ee
Fix avatars not using image tags in web UI ()
Fix 
2022-10-28 00:48:45 +02:00
Eugen Rochko
8ebff0efcb
Change post editing to be enabled in web UI () 2022-10-26 15:23:00 +02:00
Eugen Rochko
f8ca3bb2a1
Add ability to view previous edits of a status in admin UI ()
* Add ability to view previous edits of a status in admin UI

* Change moderator access to posts to be controlled by a separate policy
2022-10-26 13:42:29 +02:00
Eugen Rochko
0ca29eaa3f
Change layout of posts in web UI () 2022-10-25 19:02:21 +02:00
Eugen Rochko
fcca781aae
Change design of translations in web UI () 2022-10-25 18:47:21 +02:00
Eugen Rochko
9757c917da
Fix nofollow rel being removed in web UI () 2022-10-25 18:47:04 +02:00
Claire
30453fab80
Add mention of the translation provider when translating a post () 2022-10-24 18:37:57 +02:00
Claire
8046cf34d6
Change “Translate” button to only show up when a translation backend is configured ()
* Change “Translate” button to only show up when a translation backend is configured

Fixes 

* Add `translation` attribute to /api/v2/instance to expose whether the translation feature is enabled

Fixes 
2022-10-24 18:30:58 +02:00
Eugen Rochko
73a48318a1
Fix error when rendering limited account in web UI () 2022-10-22 18:30:20 +02:00
Eugen Rochko
839f893168
Change public accounts pages to mount the web UI ()
* 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
2022-10-20 14:35:29 +02:00
Eugen Rochko
aefa9253d6
Change featured hashtags to be displayed in navigation panel () 2022-10-19 11:30:59 +02:00
Eugen Rochko
4adb267f91
Fix showing translate button when status has no language in web UI () 2022-10-18 21:21:20 +02:00
Eugen Rochko
1bd00036c2
Change about page to be mounted in the web UI () 2022-10-13 14:42:37 +02:00
Eugen Rochko
0765324622
Fix intermediary responsive layout, accessibility on navigation in web UI ()
* Fix intermediary responsive layout, accessibility on navigation in web UI

* `yarn test:jest -u`

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-10-09 15:55:32 +02:00
Eugen Rochko
f41ec9af05
Add dismissable hints to various timelines in web UI ()
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2022-10-09 06:08:37 +02:00
Yamagishi Kazutoshi
e82467ca41
Remove timeline preview link from nav panel when not signed-in ()
* Remove timeline preview link from nav panel when not signed-in

* Always enable server stats
2022-10-09 03:49:51 +02:00
Eugen Rochko
7fb738c837
Add interaction modal to logged-out web UI () 2022-10-07 10:14:31 +02:00
Eugen Rochko
d2528b26b6
Add server banner to web app, add GET /api/v2/instance to REST API () 2022-10-05 03:47:56 +02:00
Eugen Rochko
e2b561e3a5
Fix logged-out web UI on smaller screens () 2022-10-04 20:13:23 +02:00
Eugen Rochko
c55219efa8
Remove volume number from hashtags in web UI () 2022-09-30 01:14:37 +02:00
Eugen Rochko
e623c302d5
Add sign-up button to logged-out web UI () 2022-09-29 06:21:51 +02:00
Eugen Rochko
43b5d5e38d
Add logged-out access to the web UI () 2022-09-29 04:39:33 +02:00
Eugen Rochko
55a2e9b5be
Fix translations not being formatted, other issues in web UI ()
Fix 
2022-09-28 01:02:01 +02:00
Eugen Rochko
0d6b878808
Add user content translations with configurable backends () 2022-09-23 23:00:12 +02:00
dependabot[bot]
4793950136
Bump jest from 28.1.3 to 29.0.3 ()
* Bump babel-jest from 28.1.3 to 29.0.3

Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 28.1.3 to 29.0.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.0.3/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump jest-environment-jsdom from 28.1.3 to 29.0.3

Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.1.3 to 29.0.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.0.3/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump jest from 28.1.3 to 29.0.3

Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.1.3 to 29.0.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.0.3/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-11 23:11:10 +09:00
Shlee
1fac99e842
Add rel="noopener" to links to remote profiles ()
* Update timeline_hint.js

* Update timeline_hint.js
2022-08-26 02:12:46 +02:00
Takeshi Umeda
66b8abf218
Fix case where boolean was passed to onFilter on StatusActionBar () 2022-08-25 04:37:40 +02:00
Claire
ba745ca99a
Fix media modal link button ()
Fixes regression from 
2022-08-25 04:30:53 +02:00
Claire
50487db122
Add ability to filter individual posts ()
* 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
2022-08-25 04:27:47 +02:00
Rens Groothuijsen
e6979aa6d4
Add warning for sensitive audio posts () 2022-08-13 15:39:05 +02:00
Eugen Rochko
f5d8501138
Change hashtag numbers to have clearer labels in web UI () 2022-07-22 03:17:41 +02:00
Eugen Rochko
44b2ee3485
Add customizable user roles ()
* Add customizable user roles

* Various fixes and improvements

* Add migration for old settings and fix tootctl role management
2022-07-05 02:41:40 +02:00
Claire
3c24f19afe
Fix reblogged statuses being erroneously shown as filtered () 2022-06-30 09:51:55 +02:00
Claire
02851848e9
Revamp post filtering system ()
* 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.
2022-06-28 09:42:13 +02:00
Eugen Rochko
2936f42a14
Add notifications for new reports () 2022-06-27 09:30:15 +02:00
Claire
2f6416db53
Remove unnused otherAccounts property ()
Leftover from before 
2022-05-30 17:10:13 +02:00
Jeong Arm
dc7e2985e6
Add lang html attr to each posts () 2022-05-28 15:50:36 +02:00