Commit Graph

669 Commits

Author SHA1 Message Date
Karina Kwiatek 6cbce2c157 Require authentication on unpin endpoint 2023-02-12 20:19:50 +01:00
Karina Kwiatek 410d9b5d8e Implement unpinning answers 2023-02-12 20:19:50 +01:00
Karina Kwiatek b196909b79 Create frontend endpoint for pinning answers 2023-02-12 20:19:50 +01:00
Andreas Nedbal ed20ad9237 Fix class check for parameter errors 2023-02-12 20:16:36 +01:00
Andreas Nedbal 5a192a3598 Turn `turbo_stream_actions` into a class method
Co-Authored-By: Georg Gadinger <nilsding@nilsding.org>
2023-02-12 20:16:36 +01:00
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
Andreas Nedbal 23dafb5bcb
Merge branch 'main' into feature/privacy-noindex 2022-11-18 23:23:01 +01:00
Andreas Nedbal d3bfbff30a
Merge branch 'main' into feature/input-placeholder-theming 2022-11-18 23:21:08 +01:00
Andreas Nedbal fe9a77cd67 Fix lints 2022-11-18 23:19:24 +01:00
Andreas Nedbal 8699a4ca08 Redirect from follower/following page if social graph is hidden 2022-11-18 23:19:24 +01:00
Andreas Nedbal 9249ef976b Add social graph field to privacy settings view 2022-11-18 23:19:24 +01:00
Andreas Nedbal f8e43a9bb0 Add noindex setting to privacy settings view 2022-11-16 22:32:40 +01:00
Andreas Nedbal 420a25872e Allow input placeholder in theme settings 2022-11-14 23:12:39 +01:00
Andreas Nedbal 3cefc829f8
Merge branch 'main' into feature/privacy-require-user 2022-11-13 17:27:53 +01:00
Andreas Nedbal 18b3ac641b Add user requirement setting to privacy settings 2022-11-13 14:26:03 +01:00
Andreas Nedbal f6c28eefbd Add inbox locking setting to privacy settings 2022-11-06 15:00:28 +01:00
Andreas Nedbal 14199059b4 Filter out selected list from lists dropdown 2022-10-24 23:19:39 +02:00
Andreas Nedbal 62b53d8740 Fix notifications pagination not working 2022-09-08 23:35:41 +02:00
Andreas Nedbal 6ae03dbd7f Refactor questions to use a Turbo Stream-backed pagination 2022-09-08 23:35:41 +02:00
Andreas Nedbal b595910564 Refactor timelines to use a Turbo Stream-backed pagination 2022-09-08 23:18:21 +02:00
Andreas Nedbal c60acebf21 Refactor user relationships to use a Turbo Stream-backed pagination 2022-09-08 22:11:26 +02:00
Andreas Nedbal 688a68e769 Refactor user questions to use a Turbo Stream-backed pagination 2022-09-08 22:11:26 +02:00
Andreas Nedbal 753424f2d2 Refactor user answers to use a Turbo Stream-backed pagination 2022-09-08 22:11:26 +02:00
Andreas Nedbal 3074ce3bbe Set up proper response codes for Turbo Stream responses 2022-09-08 01:00:06 +02:00
Andreas Nedbal 1375293f31 Refactor moderation to use a Turbo Stream-backed pagination 2022-09-08 01:00:06 +02:00
Andreas Nedbal c118dab903 Refactor notifications to use a Turbo Stream-backed pagination 2022-09-08 00:04:27 +02:00
Andreas Nedbal 8c14fb5423 Refactor mod inbox to use a Turbo Stream-backed pagination 2022-09-07 22:31:28 +02:00
Andreas Nedbal 136f7f117d Refactor inbox to use a Turbo Stream-backed pagination 2022-09-04 20:24:32 +02:00
Andreas Nedbal a7e17a07cc Fix deleting 2FA and regenerating codes not working 2022-09-04 18:34:23 +02:00
Andreas Nedbal dc91d91c2e Directly call matching route instead of redirecting for themes 2022-09-04 18:34:23 +02:00
Andreas Nedbal 6a083230dd Fixed wrong call of translation method in ban action 2022-09-03 16:42:17 +02:00
Andreas Nedbal 8ad0cf24b8 Fix bug preventing deletion of freshly created mute rules 2022-09-02 19:59:43 +02:00
Andreas Nedbal b46fae5ebd Rename index action to show action 2022-08-21 13:17:45 +02:00
Andreas Nedbal 778cf90f85 Add `Moderation::QuestionsController` 2022-08-21 13:17:45 +02:00
Andreas Nedbal 3bb91932b5 Appease the robot dog 2022-08-21 01:13:10 +02:00
Andreas Nedbal 3f7a94d56c Move actions from `ModerationController` to `Moderation::ReportsController` 2022-08-21 01:13:10 +02:00
Karina Kwiatek 4814ccdaa5 Use null-safe navigation for destroying inbox entries when blocking 2022-08-20 19:18:28 +02:00
Karina Kwiatek 2d01d9b365 Apply review suggestions
Co-authored-by: Andreas Nedbal <git@pixelde.su>
Co-authored-by: Georg Gadinger <nilsding@nilsding.org>
2022-08-20 19:05:55 +02:00
Karina Kwiatek 92a5095c00 Appease the robot canine 2022-08-20 19:05:55 +02:00
Karina Kwiatek 136eac8bdd Add page for managing site-wide anonymous-blocks 2022-08-20 19:05:55 +02:00
Georg Gadinger b41983a2bf
Disgustingly merge pull request #598 from Retrospring/feature/norway
Add new translations in various places
2022-08-20 17:22:37 +02:00
Andreas Nedbal 6693864fbc Move `belongs_to_current_user?` to UserController 2022-08-20 17:21:47 +02:00
Andreas Nedbal 87c2ed3ab7 List direct questions for current users or mods 2022-08-20 17:21:47 +02:00
Andreas Nedbal 14221aea71 Fix legacy locale references 2022-08-02 19:13:23 +02:00
Karina Kwiatek 9634aeda62 Fix missing translation in webapp manifest 2022-07-31 23:19:42 +02:00
Karina Kwiatek abaa33a664
Merge pull request #591 from Retrospring/translation-cleanup
Translation cleanup
2022-07-30 20:37:04 +02:00
Karina Kwiatek a03fe85b33 Re-word strings used in `ServicesController` 2022-07-30 19:01:49 +02:00
Andreas Nedbal 628959d754 Appease the reviewdog overlords 2022-07-30 18:29:32 +02:00
Andreas Nedbal 54e072c98c Use notification types instead of target types to clear them 2022-07-30 18:14:48 +02:00
Andreas Nedbal 4c67a9b492 Use full locale path for ban flash message 2022-07-30 16:51:07 +02:00
Andreas Nedbal 27eaef45ef Appease the reviewdog overlords 2022-07-30 16:51:07 +02:00