Commit Graph

614 Commits

Author SHA1 Message Date
Andreas Nedbal c880fade4e Add TurboStreamable concern to Settings::MutesController 2023-02-12 20:16:36 +01:00
Andreas Nedbal f2024a990e Add TurboStreamable concern to AnonymousBlock controller 2023-02-12 20:16:36 +01:00
Andreas Nedbal 5cb96a7907 Fix anonymous blocks causing exceptions without inboxes 2023-02-12 20:16:36 +01:00
Andreas Nedbal b38a048e92 Added TurboStreamable concern 2023-02-12 20:16:36 +01:00
Georg Gadinger 065d35c288 well_known/node_info: remove twitter as outbound service 2023-02-12 19:04:01 +01:00
Georg Gadinger 606629577a make URI.parse part of the validation for the sharing URL
the regexp alone and web browsers allows URLs to contain non-ASCII
characters, which `URI.parse` does not like -- resulting in the inbox
page to suddenly break.

also changed the `redirect_to` in the controller to a `render :edit` so
that validation errors are shown properly
2023-02-10 20:48:15 +01:00
Georg Gadinger 9a77b89cda use remote_ip 2: electric boogaloo 2023-02-07 07:38:59 +01:00
Andreas Nedbal 8f0ae5171d Appease the dog overlords 2023-02-05 21:54:51 +01:00
Andreas Nedbal 7589d66686 Remove service reference in question generation 2023-02-05 21:54:51 +01:00
Andreas Nedbal a56db2256b Return sharing options when answering a question 2023-02-05 21:54:51 +01:00
Andreas Nedbal 926be13fa6 Add `Settings::SharingController` 2023-02-05 21:54:51 +01:00
Andreas Nedbal 52ae7fbb81 Remove service-related views 2023-02-05 21:54:51 +01:00
Andreas Nedbal c327eee38e Remove services controller 2023-02-05 21:54:51 +01:00
Georg Gadinger f1a545aea5 use remote_ip 2023-02-04 22:31:53 +01:00
Karina Kwiatek c40a1a4997
Merge pull request #1040 from Retrospring/fix/n+1-notification-type-counters
Prevent 𝑛+1 for notification type counters
2023-02-02 12:09:06 +01:00
Karina Kwiatek 05a90987cd
Merge pull request #1037 from Retrospring/fix/pre-load-mutes
Pre-load own mute relationships in follow lists
2023-02-02 12:07:58 +01:00
Karina Kwiatek 80e312eb3b Appease the dog overlords 2023-02-02 10:38:41 +01:00
Karina Kwiatek 81a6c6ac55 Prevent 𝑛+1 for notification type counters 2023-02-02 00:55:31 +01:00
Andreas Nedbal 7d91c0349a Eagerly load services in action to prevent n+1 query 2023-02-02 00:44:42 +01:00
Karina Kwiatek 825454bbae Fix incorrect type local in followers endpoint 2023-02-01 23:34:33 +01:00
Karina Kwiatek 603e9c501e Pre-load own mute relationships in follow lists 2023-02-01 23:21:09 +01:00
Karina Kwiatek d08198668b Pass user services for question generate turbo frame 2023-01-31 23:10:51 +01:00
Karina Kwiatek 279ed82d6a
Merge pull request #1029 from Retrospring/fix/relationship-list-n+1
Prevent 𝑛+1 on follower/following lists
2023-01-31 22:15:32 +01:00
Karina Kwiatek 8520dbc4b9 De-duplicate relationship pagination logic 2023-01-31 13:59:05 +01:00
Karina Kwiatek 83eeabb525 Use locals for own relationships 2023-01-31 13:46:09 +01:00
Karina Kwiatek 2517b1330a
Merge pull request #1017 from Retrospring/feature/raised-texts
Add new raised text and raised accent text theme fields
2023-01-31 12:57:15 +01:00
Karina Kwiatek 1b6eafd2d1 Prevent 𝑛+1 on follower/following lists 2023-01-31 12:25:55 +01:00
Karina Kwiatek 4dc5a65f74
Merge pull request #1014 from Retrospring/fix/inbox-services-query
Move fetching of services to controller to avoid n+1 queries
2023-01-29 23:07:46 +01:00
Andreas Nedbal 61a31f97b0 Move theme attributes into their own method 2023-01-29 21:12:33 +01:00
Andreas Nedbal ab6e8270df Allow new fields in ThemeController 2023-01-29 20:44:09 +01:00
Karina Kwiatek 87894d1e95 Move empty filter check back into show action 2023-01-28 22:42:14 +01:00
Karina Kwiatek 367e2f4b92 Use a local instead of an ivar for passing services into views 2023-01-28 22:24:05 +01:00
Karina Kwiatek 3e2b65d7b8 Move fetching of services to controller to avoid n+1 queries 2023-01-28 21:42:55 +01:00
Karina Kwiatek e9c397a013 Replace `@title` and `@type` ivars 2023-01-28 19:08:28 +01:00
Karina Kwiatek 6e3bc40c57 Move marking follow notifications as read to an after action 2023-01-28 18:48:14 +01:00
Karina Kwiatek 1c74061c1b
Merge pull request #1004 from Retrospring/cache-headers-on-manifest
Cache headers for web app manifest based on user theme
2023-01-28 11:13:08 +01:00
Karina Kwiatek 999f599029
Merge pull request #1005 from Retrospring/skip-announcements-in-ajax 2023-01-27 23:53:20 +01:00
Karina Kwiatek a34a30349e Use `skip_before_action` instead of redefining action in `AjaxController` 2023-01-27 23:16:41 +01:00
Karina Kwiatek b8b86b069d Cache headers for web app manifest based on user theme 2023-01-27 23:09:09 +01:00
Georg Gadinger 3e3501d201 inbox: update inbox entries in controller 2023-01-27 20:36:22 +01:00
Georg Gadinger 8cd0d481c8 bruh 2023-01-24 15:57:34 +01:00
Georg Gadinger 58705fffba mark notifications as "read" in the controller and when you see them
this makes it behave a bit more like the inbox
2023-01-24 15:54:41 +01:00
Karina Kwiatek 529bf40dbe
Merge pull request #979 from Retrospring/fix/pwa-issues
Fix various PWA issues
2023-01-22 12:47:12 +01:00
Karina Kwiatek 95984cfdab Correct app description in web app manifest 2023-01-21 18:26:08 +01:00
Karina Kwiatek d2076c35b5 Remove `?source=pwa`
We can use `@media (display-mode: standalone)` to detect this instead
2023-01-21 18:23:40 +01:00
Karina Kwiatek 3f41d339de Add icons at 144x144
For some reason Chromium requires an icon at this size, however the error in Lighthouse states that the size must be *at least* 144x144 but in fact must be exactly this size.
2023-01-21 18:18:14 +01:00
Karina Kwiatek b9269f0693 Add maskable icons 2023-01-21 18:16:24 +01:00
Karina Kwiatek 73082975c4 Fix web app icon sizes property name 2023-01-21 18:15:18 +01:00
Karina Kwiatek 27318f302c Rename current icons to icon_ 2023-01-21 12:30:52 +01:00
Georg Gadinger c4724b8c62 inbox: refactor a bit further so the cyber dog shuts up 2023-01-19 16:21:21 +01:00
Georg Gadinger e5d8506a13 inbox: redirect away if there's no questions filtered by author 2023-01-19 11:57:56 +01:00
Georg Gadinger 30dec68e1b inbox: refactor show method, fix #959 2023-01-19 11:57:56 +01:00
Karina Kwiatek ba7b19faee Add allow long questions option to profile settings 2023-01-08 13:14:21 +01:00
Georg Gadinger 5b8e34aa1d add integration specs for changing locales 2023-01-06 13:37:22 +01:00
Georg Gadinger ebcf9d7676 obey the dog 2023-01-06 10:04:31 +01:00
Georg Gadinger 8323f39ecd re-add locale switching logic
based on https://guides.rubyonrails.org/i18n.html\#managing-the-locale-across-requests
2023-01-05 15:20:33 +01:00
Karina Kwiatek 39ec2836f6
Merge pull request #918 from Retrospring/feature/nodeinfo
Implement NodeInfo
2023-01-04 17:55:05 +00:00
Karina Kwiatek b35108e9d0 Implement NodeInfo
Closes #902
2023-01-04 17:08:05 +01:00
Karina Kwiatek ea4e9e2205 Don't require an endpoint for unsubscribe
This was added by mistake earlier. Unsubscribing without an `endpoint` parameter is supposed to remove all subscriptions.
2023-01-04 16:38:48 +01:00
Karina Kwiatek 3105cb74b4 Make `endpoint` and `subscription` parameters required on web push endpoints 2023-01-04 16:34:38 +01:00
Karina Kwiatek cc1c262256
Merge pull request #678 from Retrospring/feature/webpush
WebPush support
2023-01-02 11:57:34 +00:00
Karina Kwiatek 04bc1da8cf Use Mute Rule use cases in mutes controller 2023-01-02 12:45:35 +01:00
Karina Kwiatek 48c7beb54e Only allow checking of own subscriptions 2023-01-02 11:52:02 +01:00
Karina Kwiatek efad76855e Add endpoint for checking subscription status 2023-01-02 11:52:02 +01:00
Karina Kwiatek 1cfd3250c0 Track failures on Web Push subscriptions 2023-01-02 11:51:46 +01:00
Karina Kwiatek 10c224b2fe Address review comments from @nilsding
Co-authored-by: nilsding <nilsding@nilsding.org>
2023-01-02 11:50:48 +01:00
Karina Kwiatek 3eafa5e335 Add tests for subscription management 2023-01-02 11:50:48 +01:00
Karina Kwiatek 66b1dac3b9 Improve UX for push subscription management 2023-01-02 11:50:48 +01:00
Karina Kwiatek 8ff213af4e Add the ability to unsubscribe from push notifications 2023-01-02 11:50:48 +01:00
Karina Kwiatek 752cf1506b Add settings page for push notifications 2023-01-02 11:50:47 +01:00
Karina Kwiatek bae227be76 Add endpoints for getting webpush public key and subscribing 2023-01-02 11:50:47 +01:00
Karina Kwiatek d320a74045 Mark notification as read when visiting service settings 2023-01-02 00:01:42 +01:00
Andreas Nedbal 0e172bb179 Add UI to manage muted users 2023-01-01 22:42:50 +01:00
Georg Gadinger fb07eda972 remove errors 2022-12-29 20:57:28 +01:00
Georg Gadinger 9413d23a02 let Zeitwerk autoload the `lib/` directory
this also allows the UseCase classes to be hot reloaded in dev 🎉

- remove use_case requires (except for the exporter as Zeitwerk
  doesn't know about the subclasses)
- move version.rb to lib/retrospring so that Zeitwerk knows where
  to find Retrospring::Version
2022-12-29 20:57:28 +01:00
Georg Gadinger 447d1f7e6d
Merge pull request #886 from Retrospring/bugfix/questionable-user-questions
fix display conditions of profile questions
2022-12-27 23:15:58 +00:00
Andreas Nedbal 97736a956d Track question users in anonymous blocks 2022-12-28 00:10:59 +01:00
Georg Gadinger 3524809e21 fix display conditions of profile questions 2022-12-27 22:07:21 +00:00
Georg Gadinger cf88da111c admin/dashboard: add basic sidekiq stats and warn if sidekiq is not running 2022-12-24 22:44:42 +00:00
Andreas Nedbal 5a0e42fe66 use `has_cached_role?` instead of `has_role?` 2022-12-18 21:47:03 +01:00
Georg Gadinger d52529c840 mark dataexported notifications as read when visiting export page 2022-12-10 15:56:07 +01:00
Karina Kwiatek cb61db02eb
Merge pull request #824 from Retrospring/feature/anonymous-block-tuuuuuuurbo
Migrate anonymous blocks to Turbo Streams
2022-12-04 23:23:19 +01:00
Georg Gadinger a2ae98eee8 inbox_controller: update all inbox entries when requesting turbo stream
since there's no layout rendered which updates all inbox entries the
inbox entries would still be shown as unread

fixes #827
2022-11-25 00:10:36 +01:00
Andreas Nedbal 1c4993df3f Fix lints 2022-11-21 23:07:18 +01:00
Andreas Nedbal d9991f5fa7 Add tests 2022-11-21 23:05:04 +01:00
Andreas Nedbal d000ddaae4 Add `AnonymousBlockController` 2022-11-21 22:29:47 +01:00
Andreas Nedbal ddded27757 Remove anonymous block AJAX implementation 2022-11-21 22:28:38 +01:00
Andreas Nedbal efef85b7c6 Split mute rule form into seperate partial and replace on create 2022-11-21 20:26:19 +01:00
Andreas Nedbal 94c9fa12fb Add policy for mute rules 2022-11-21 20:26:19 +01:00
Andreas Nedbal c8f990e319 Set up Pundit 2022-11-21 20:26:19 +01:00
Andreas Nedbal 9048a3e7d8 Remove AJAX Mute Rules code 2022-11-21 20:26:19 +01:00
Andreas Nedbal c08ff04738 Destroy Mute Rules using Turbo Streams 2022-11-21 20:26:19 +01:00
Andreas Nedbal 589b753df3 Create Mute Rules using Turbo Streams 2022-11-21 20:26:19 +01:00
Andreas Nedbal c464e80e45 Fix lints 2022-11-21 20:26:01 +01:00
Andreas Nedbal d42f1ba0c5 Fix tests 2022-11-21 20:26:01 +01:00
Andreas Nedbal 54e157ec76 `AnnouncementController` -> `Admin::AnnouncementController` 2022-11-21 20:26:01 +01:00
Andreas Nedbal c61ccfa5c1 Add admin dashboard controller 2022-11-21 20:26:01 +01:00
Andreas Nedbal f91246986c Update generated entries to not be new after rendering 2022-11-18 23:35:38 +01:00
Andreas Nedbal 44c0136c9e Remove AJAX question generation code 2022-11-18 23:35:38 +01:00
Andreas Nedbal d3eae22f13 Generate inbox entries using Turbo Streams 2022-11-18 23:35:38 +01:00