Commit graph

760 commits

Author SHA1 Message Date
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
Karina Kwiatek
cce7a8da8f Remove string copy for frontend strings 2022-07-31 02:28:50 +02:00
Andreas Nedbal
be20b64e43 Fix vocabulary export to i18n-js 2022-07-30 23:47:03 +02:00