Commit graph

762 commits

Author SHA1 Message Date
Karina Kwiatek
dd3f86988a Localise strings for question visibility 2023-02-12 18:21:14 +01:00
Karina Kwiatek
42a78cd286 Provide a way of using Redis for Rails cache 2023-02-12 18:18:38 +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
c5b442c529
Merge pull request #1043 from Retrospring/configurable-log-levels
allow log level, site_name, and hostname to be configured via ENV
2023-02-06 15:25:44 +01:00
Andreas Nedbal
2ba2367e7e Apply suggestions from @raccube
Co-authored-by: Karina Kwiatek <6197148+raccube@users.noreply.github.com>
2023-02-05 21:54:51 +01:00
Andreas Nedbal
a564bd740b Apply review suggestion from @nilsding
Co-authored-by: Georg Gadinger <nilsding@nilsding.org>
2023-02-05 21:54:51 +01:00
Andreas Nedbal
247604f48f Remove Twitter API key config values 2023-02-05 21:54:51 +01:00
Andreas Nedbal
83aa4ed1bc Implement new sharing layout 2023-02-05 21:54:51 +01:00
Andreas Nedbal
926be13fa6 Add Settings::SharingController 2023-02-05 21:54:51 +01:00
Andreas Nedbal
a86dcde30a Remove omniauth and twitter (sharing) related gems
`twitter-text` is still required to generate the shared post bodies
2023-02-05 21:54:51 +01:00
Andreas Nedbal
d520755bc2 Remove service model 2023-02-05 21:54:51 +01:00
Andreas Nedbal
c327eee38e Remove services controller 2023-02-05 21:54:51 +01:00
Georg Gadinger
b0644b26c7 allow to set some configuration options via ENV 2023-02-04 07:24:14 +01:00
Georg Gadinger
1f4a92b6d4 allow log levels to be configurable via ENV 2023-02-04 07:07:43 +01:00
Georg Gadinger
3f0e690f28 provide our own default questions file independent from the questiongenerator gem 2023-01-31 23:22:21 +01:00
Andreas Nedbal
6b3342036f Merge branch 'main' into feature/raised-texts 2023-01-29 19:38:32 +01:00
Karina Kwiatek
452266b77a
Merge pull request #1015 from Retrospring/sentry-filtering
Add filtering for events reported to Sentry
2023-01-29 00:46:22 +01:00
Karina Kwiatek
9ef6e8fdc1 Use class instead of class name for matching exception types 2023-01-28 22:30:03 +01:00
Karina Kwiatek
354407cd79 Use next to return out of before_send 2023-01-28 22:29:41 +01:00
Karina Kwiatek
272b98c954 before_send should be assigned a lambda 2023-01-28 22:18:43 +01:00
Karina Kwiatek
da9a170e67 Set event fingerprint for exceptions relating to external services 2023-01-28 22:14:02 +01:00
Karina Kwiatek
7d5104d09d Filter out user-facing errors from Sentry 2023-01-28 22:10:14 +01:00
Karina Kwiatek
e9c397a013 Replace @title and @type ivars 2023-01-28 19:08:28 +01:00
Karina Kwiatek
d45c6af853 Remove page parameter from user/friends redirects 2023-01-28 11:08:16 +01:00
Andreas Nedbal
a0a7f4e124 Add raised-text and raised-accent-text theme variables 2023-01-23 23:36:38 +01:00
Georg Gadinger
3b81dc33db routes: remove unused :page param and all :via options 2023-01-22 00:04:33 +01:00
Georg Gadinger
eb7abb33be user: only provide #questions as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
14f32aa3c0 question: only provide #show as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
b019f24aaa user: only provide #followers and #followings as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
989873ba62 user: only provide #show as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
d572734b96 notifications: only provide #index as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
77529c2217 moderation/reports: only provide #index as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
144db471d6 moderation/inbox: only provide #index as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
59d94d7ba0 timeline: only provide #index, #public and #list as GET 2023-01-22 00:04:33 +01:00
Georg Gadinger
9d7c99fe9b
Merge pull request #974 from Retrospring/refactor/inbox
refactor inbox
2023-01-21 13:59:39 +01:00
Andreas Nedbal
fc30bf8cac Add more explicit message for format validation errors 2023-01-21 13:20:52 +01:00
Andreas Nedbal
7222f36ef3 Add format hint for screen_name input 2023-01-21 13:20:52 +01:00
Georg Gadinger
2f82e3be31 inbox: only provide #show as GET 2023-01-19 11:57:55 +01:00
Andreas Nedbal
3258ea4f0b Implement shared collapse partial 2023-01-12 21:03:44 +01:00
Karina Kwiatek
c919b4913f
Merge branch 'main' into feature/long-questions 2023-01-11 22:24:58 +01:00
Andreas Nedbal
53bc270e08
Apply review suggestions from @nilsding
Co-authored-by: Georg Gadinger <nilsding@nilsding.org>
2023-01-10 20:49:37 +01:00
Andreas Nedbal
eccb51eab0 Add formatting help markup/translations 2023-01-10 15:48:56 +01:00
Karina Kwiatek
2e7fca67fa Update long question warning to be more descriptive 2023-01-08 17:20:12 +01:00
Karina Kwiatek
7cdb0e4976 Respect long question setting in frontend 2023-01-08 17:12:46 +01:00
Karina Kwiatek
122be928bf
Merge pull request #934 from Retrospring/more-obvious-sharing-options
Make sharing options more obvious
2023-01-08 11:24:50 +00:00
Andreas Nedbal
8b5271df69 Remove Webpacker 2023-01-08 12:19:45 +01:00
Karina Kwiatek
4ac3483f1a Make sharing options more obvious 2023-01-06 17:38:27 +01:00
Georg Gadinger
fc62e2ddb2 fix english 2023-01-05 15:42:56 +01:00
Georg Gadinger
b728c494d7 remove flag leftovers 2023-01-05 10:37:44 +01:00
Andreas Nedbal
7450143311 Remove legacy entrypoint and packages 2023-01-05 10:35:52 +01:00
Georg Gadinger
931fe4a8ed disable some built-in Rails features
this commit gets rid of the following routes:

                                      Prefix Verb     URI Pattern                                                                                       Controller#Action
               rails_postmark_inbound_emails POST     /rails/action_mailbox/postmark/inbound_emails(.:format)                                           action_mailbox/ingresses/postmark/inbound_emails#create
                  rails_relay_inbound_emails POST     /rails/action_mailbox/relay/inbound_emails(.:format)                                              action_mailbox/ingresses/relay/inbound_emails#create
               rails_sendgrid_inbound_emails POST     /rails/action_mailbox/sendgrid/inbound_emails(.:format)                                           action_mailbox/ingresses/sendgrid/inbound_emails#create
         rails_mandrill_inbound_health_check GET      /rails/action_mailbox/mandrill/inbound_emails(.:format)                                           action_mailbox/ingresses/mandrill/inbound_emails#health_check
               rails_mandrill_inbound_emails POST     /rails/action_mailbox/mandrill/inbound_emails(.:format)                                           action_mailbox/ingresses/mandrill/inbound_emails#create
                rails_mailgun_inbound_emails POST     /rails/action_mailbox/mailgun/inbound_emails/mime(.:format)                                       action_mailbox/ingresses/mailgun/inbound_emails#create
              rails_conductor_inbound_emails GET      /rails/conductor/action_mailbox/inbound_emails(.:format)                                          rails/conductor/action_mailbox/inbound_emails#index
                                             POST     /rails/conductor/action_mailbox/inbound_emails(.:format)                                          rails/conductor/action_mailbox/inbound_emails#create
           new_rails_conductor_inbound_email GET      /rails/conductor/action_mailbox/inbound_emails/new(.:format)                                      rails/conductor/action_mailbox/inbound_emails#new
          edit_rails_conductor_inbound_email GET      /rails/conductor/action_mailbox/inbound_emails/:id/edit(.:format)                                 rails/conductor/action_mailbox/inbound_emails#edit
               rails_conductor_inbound_email GET      /rails/conductor/action_mailbox/inbound_emails/:id(.:format)                                      rails/conductor/action_mailbox/inbound_emails#show
                                             PATCH    /rails/conductor/action_mailbox/inbound_emails/:id(.:format)                                      rails/conductor/action_mailbox/inbound_emails#update
                                             PUT      /rails/conductor/action_mailbox/inbound_emails/:id(.:format)                                      rails/conductor/action_mailbox/inbound_emails#update
                                             DELETE   /rails/conductor/action_mailbox/inbound_emails/:id(.:format)                                      rails/conductor/action_mailbox/inbound_emails#destroy
    new_rails_conductor_inbound_email_source GET      /rails/conductor/action_mailbox/inbound_emails/sources/new(.:format)                              rails/conductor/action_mailbox/inbound_emails/sources#new
       rails_conductor_inbound_email_sources POST     /rails/conductor/action_mailbox/inbound_emails/sources(.:format)                                  rails/conductor/action_mailbox/inbound_emails/sources#create
       rails_conductor_inbound_email_reroute POST     /rails/conductor/action_mailbox/:inbound_email_id/reroute(.:format)                               rails/conductor/action_mailbox/reroutes#create
                          rails_service_blob GET      /rails/active_storage/blobs/redirect/:signed_id/*filename(.:format)                               active_storage/blobs/redirect#show
                    rails_service_blob_proxy GET      /rails/active_storage/blobs/proxy/:signed_id/*filename(.:format)                                  active_storage/blobs/proxy#show
                                             GET      /rails/active_storage/blobs/:signed_id/*filename(.:format)                                        active_storage/blobs/redirect#show
                   rails_blob_representation GET      /rails/active_storage/representations/redirect/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations/redirect#show
             rails_blob_representation_proxy GET      /rails/active_storage/representations/proxy/:signed_blob_id/:variation_key/*filename(.:format)    active_storage/representations/proxy#show
                                             GET      /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format)          active_storage/representations/redirect#show
                          rails_disk_service GET      /rails/active_storage/disk/:encoded_key/*filename(.:format)                                       active_storage/disk#show
                   update_rails_disk_service PUT      /rails/active_storage/disk/:encoded_token(.:format)                                               active_storage/disk#update
                        rails_direct_uploads POST     /rails/active_storage/direct_uploads(.:format)                                                    active_storage/direct_uploads#create
2023-01-05 06:38:58 +01:00
Karina Kwiatek
ffb849047f Categorise Web Push Subscriptions in Rails Admin 2023-01-05 00:00:57 +01:00
Karina Kwiatek
b35108e9d0 Implement NodeInfo
Closes #902
2023-01-04 17:08:05 +01:00
Georg Gadinger
ea94e83e11 views/settings: change text of save profile pic button to something less generic 2023-01-04 15:39:27 +01:00
Karina Kwiatek
ae52810aae Add WebPushSubscription to Rails Admin 2023-01-03 18:12:13 +01:00
Andreas Nedbal
077958bc5c Install Font Awesome 6 2023-01-03 17:21:09 +01:00
Andreas Nedbal
3799640538 Make RailsAdmin use Sprockets again 2023-01-03 14:14:23 +01:00
Andreas Nedbal
219a4fbbbc Configure Sprockets to work with cssbundling-rails 2023-01-03 14:14:23 +01:00
Karina Kwiatek
efad76855e Add endpoint for checking subscription status 2023-01-02 11:52:02 +01:00
Karina Kwiatek
e0195654b5 Send notification on 3 push failures 2023-01-02 11:52:00 +01:00
Karina Kwiatek
1cfd3250c0 Track failures on Web Push subscriptions 2023-01-02 11:51:46 +01:00
Karina Kwiatek
91d3db4034 Move rpush init/exit logic into Sidekiq initializer
Co-authored-by: nilsding <nilsding@nilsding.org>
2023-01-02 11:50:48 +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
89008364d9 Handle push notifications in Sidekiq job 2023-01-02 11:50:48 +01:00
Karina Kwiatek
3619f46360 Add unsubscribe messages 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
93d4af3f0d Deduplicate notification sending logic and replace placeholder string 2023-01-02 11:50:47 +01:00
Karina Kwiatek
2da4767623 Add JS for subscribing to and receiving push notifications 2023-01-02 11:50:47 +01:00
Karina Kwiatek
8b98c278da Send push notifications on question create 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
92ba2d7c9b Add rpush 2023-01-02 11:50:47 +01:00
Karina Kwiatek
9d1e77aeba Revoke Twitter connection when the token is revoked 2023-01-01 23:46:10 +01:00
Andreas Nedbal
0d34037dc7 Add mute relationships to Rails Admin 2023-01-01 22:42:50 +01:00
Andreas Nedbal
744724bc3a Add locale for self-muting error 2023-01-01 22:42:50 +01:00
Andreas Nedbal
a6b3c51013 Rename "Muted Terms" settings tab to "Mutes" 2023-01-01 22:42:50 +01:00
Andreas Nedbal
0e172bb179 Add UI to manage muted users 2023-01-01 22:42:50 +01:00
Andreas Nedbal
409c8372ba Add mute action support in user action handler 2023-01-01 22:42:50 +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
Andreas Nedbal
7cc57968bc Localize Sidekiq dashboard panel 2022-12-25 00:29:24 +01:00
Andreas Nedbal
61c4033dfa add support for custom footer links 2022-12-24 19:10:05 +01:00
Georg Gadinger
312fadff2a fix images when not using S3/radosgw
"das system ist das problem, ja?"

fixes #822
2022-12-22 17:29:38 +01:00
Georg Gadinger
e1bdb1324f make the export worker create a *real* notification and add specs for it 2022-12-10 04:25:08 +01:00
Georg Gadinger
17783fbf38 update example config for use with radosgw 2022-12-10 03:28:37 +01:00
Georg Gadinger
4229c7f579 first draft of the new data exporter 2022-12-10 00:39:50 +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
0c9bb05f29 Return 403 by default for Pundit errors 2022-11-21 20:26:19 +01:00
Andreas Nedbal
9a96010530 Move action locales to vocabulary 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
0dee066e9f Move announcement locales to proper namespace 2022-11-21 20:26:01 +01:00
Andreas Nedbal
54e157ec76 AnnouncementController -> Admin::AnnouncementController 2022-11-21 20:26:01 +01:00
Andreas Nedbal
23dc8a17f9 Move locales to proper namespaces 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
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
aced806d02 Apply review suggestion from @nilsding
Co-authored-by: Georg Gadinger <nilsding@nilsding.org>
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
3cefc829f8
Merge branch 'main' into feature/privacy-require-user 2022-11-13 17:27:53 +01:00
Andreas Nedbal
9393374eab LoginRequired -> NotAuthorized 2022-11-13 14:38:11 +01:00
Andreas Nedbal
a705543d89 Add locales for user requirement setting and views 2022-11-13 14:28:03 +01:00
Andreas Nedbal
8bdf00e0e8 Add locales for inbox locking 2022-11-06 15:01:39 +01:00
Georg Gadinger
87ec3093a9 allow for using SVG logos in the navbar
this uses our new and improved logo by default, but can be easily
changed by modifying `/public/logo.svg`.  the svg is loaded only once
when the application starts, so any modifications to it after a
deployment are visible immediately.

thanks to the power of CSS and SVG being able to make use of it, custom
colour schemes still work too.
2022-10-24 23:19:51 +02:00
Andreas Nedbal
c5efbee938 Remove sidebar from timeline layout 2022-10-24 23:19:39 +02:00
Andreas Nedbal
70d5f932fc Adjust locales as requested in review 2022-10-24 13:58:54 +02:00
Andreas Nedbal
02721fc22d Move sidebar locale namespace to actions 2022-10-24 13:58:54 +02:00
Andreas Nedbal
591a912666 Make i18n-js configuration compatible with 4.x 2022-10-10 21:40: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
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
4ba954a3cf Add (un)subscribing to vocabulary 2022-08-21 16:55:09 +02:00
Andreas Nedbal
fa1bfd7bb9 Adjust locale paths 2022-08-21 15:05:16 +02:00
Andreas Nedbal
b46fae5ebd Rename index action to show action 2022-08-21 13:17:45 +02:00
Andreas Nedbal
f521b5f160 Implement moderation question view layout 2022-08-21 13:17:45 +02:00
Andreas Nedbal
778cf90f85 Add Moderation::QuestionsController 2022-08-21 13:17:45 +02:00
Andreas Nedbal
922799f123 Adjust route and alias naming 2022-08-21 01:13:10 +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
136eac8bdd Add page for managing site-wide anonymous-blocks 2022-08-20 19:05:55 +02:00
Karina Kwiatek
ae5d8931af Implement frontend for blocking users site-wide 2022-08-20 19:03:05 +02:00
Georg Gadinger
ccbd42666d locales: rewrite it in European (and the rest of the world) 2022-08-20 17:37:33 +02:00
Andreas Nedbal
2a8711e7db Fix asked header in question and answerbox 2022-08-17 22:18:37 +02:00
Andreas Nedbal
842d9faa3f
Update config/locales/voc.en.yml
Co-authored-by: Karina Kwiatek <6197148+raccube@users.noreply.github.com>
2022-08-03 11:56:05 +02:00
Andreas Nedbal
7a6c5cab3f
Apply review suggestion from @raccube
Co-authored-by: Karina Kwiatek <6197148+raccube@users.noreply.github.com>
2022-08-02 22:31:16 +02:00
Andreas Nedbal
f526dd86b0 Add final newline to views.en.yml 2022-08-02 19:37:50 +02:00
Andreas Nedbal
b4d380e57e Add missing badges 2022-08-02 19:13:23 +02:00
Andreas Nedbal
1ac4049007 Remove legacy locale file 2022-08-02 19:13:23 +02:00
Andreas Nedbal
77685d4229 Add new translations for navigation 2022-08-02 19:13:23 +02:00
Andreas Nedbal
bf2c97184a Add new translations for feedback pages 2022-08-02 19:13:23 +02:00
Andreas Nedbal
569f2e3458 Remove legacy translations 2022-08-02 19:13:23 +02:00
Andreas Nedbal
c9c0a8e296 Add new translations for sidebar 2022-08-02 19:13:23 +02:00
Andreas Nedbal
196433052b Add new translations for feed tabs 2022-08-02 19:13:23 +02:00
Andreas Nedbal
0575bb8ee3 Add new translations for profile tabs 2022-08-02 19:13:23 +02:00
Andreas Nedbal
f22c69cfe8 Add new translations for profile badges 2022-08-02 19:13:23 +02:00
Andreas Nedbal
77abb202d7 Add new translation for questionbox title 2022-08-02 19:13:23 +02:00
Andreas Nedbal
318ad270eb Add new translation for noscript message 2022-08-02 19:13:23 +02:00
Andreas Nedbal
437e72a322 Translate share alt title in answerbox actions 2022-07-31 15:14:02 +02:00
Andreas Nedbal
8314d0740d Remove legacy locales 2022-07-31 15:14:02 +02:00
Andreas Nedbal
f4f581d12f Add new translations for answerbox 2022-07-31 15:14:02 +02:00
Karina Kwiatek
961d7b752e Quote boolean string keys 2022-07-31 02:37:56 +02:00
Karina Kwiatek
8972ce8da5 Quote Yes/No vocab strings 2022-07-31 02:30:23 +02:00