Compare commits

...

988 Commits

Author SHA1 Message Date
Tykayn c2a61801c1 fix admin elixir 2022-10-12 15:23:22 +02:00
Tykayn a89aaf9d09 up vars 2022-09-20 10:27:49 +02:00
Tykayn 0ea9cc416f config tweaks to allow rss feeds 2022-06-28 15:33:44 +02:00
Tykayn d21ec65cc6 ignore .yarn folder 2022-06-28 14:49:11 +02:00
Tykayn e827c0face hop 2022-06-28 14:41:41 +02:00
Tykayn 6198507117 Merge branch 'chapril' of ssh://forge.april.org:222/Chapril/mobilizon.chapril.org-mobilizon into chapril 2022-06-02 11:42:19 +02:00
Tykayn b0b5251211 - Added an event category field. Administrators can extend the pre-configured list of categories through configuration.
- Added possibility for administrators to have analytics (Matomo, Plausible supported) and error handling (Sentry supported) on front-end.
 - Redesigned federation admin section with dedicated instance pages
 - Allow to filter moderation reports by domain
 - Added a button to go to past events of a group if it has no upcoming events
 - Add Überauth CAS Strategy
 - Add a CLI command to delete actors
 
 - Changed mailer library from Bamboo to Swoosh, should fix emails being considered spam. **Some configuration changes are required, see below.**
 - Expose some fields to ActivityStreams event representation: `isOnline`, `remainingAttendeeCapacity` and `participantCount`
 - Expose a new field to ActivityStreams group representation: `memberCount`
 - Improve group creation errors feedback
 - Only display locality in event card
 - Stale groups are now excluded from group search
 - Event default visibility is now set according to group privacy setting
 - Remove Koena Connect button
 - Hide the whole metadata block if group has no description
 - Increase task timeout in Refresher to 60 seconds
 - Allow webfinger to be fetched over http (not https) in dev mode
 - Improve reactions when approving/rejecting an instance follow
 - Improve instance admin view for mobile
 - Allow to reject instance following
 - Allow instance to have non-standard ports
 - Add pagination to the instances list
 - Eventually fetch actors in mentions
 - Improve IdentityPicker, JoinGroupWithAccount and ActorInline components
 - Various group and posts improvements
 - Update schema.graphql file
 - Add "Accept-Language" header to sentry request metadata
 - Hide address blocks when address has no real data
 - Remove obsolete attribute type="text/css" from <style> tags
 - Improve actor cards integration
 - Use upstream dependencies for Ueberauth providers
 - Include ongoing events in search
 - Send push notification into own task
 - Add appropriate timeouts for Repo.transactions
 - Add a proper error message when adding an instance follow that doesn't respond
 - Allow the instance to be followed from Mastodon (through relays)
 - Remove unused fragment from FETCH_PERSON GraphQL query
 
 - Fixed actor refreshment being impossible
 - Fixed ical export for undefined datetimes
 - Fixed parsing links with hashtag characters
 - Fixed fetching link details from Twitter
 - Fixed Thunderbird accessing ICS feed endpoint with special `Accept` HTTP header
 - Make sure every ICS/Feed caches are emptied when modifying entities
 - Fixed time issues with DST changes
 - Fixed group preview card not truncating description
 - Fixed redirection after login
 - Fixed user admin section showing button to confirm user when the user is already confirmed
 - Fixed creating event from group view not always setting the group as organizer
 - Fixed invalid addresses blocking event metadata preview rendering
 - Fixed group deletion with comments that caused foreign key issues
 - Fixed incoming Accept activities from participations we don't already have
 - Fixed resources that didn't have metadata size limits
 - Properly fallback to UTC when sending notifications and the user doesn't have a timezone setting set
 - Fix posts creation
 - Fix rejecting instance follow
 - Fix pagination of group events
 - Add proper fallback for when a TZ isn't registered
 - Hide side of report modal on low width screens
 - Fix Telegram Logo being replaced with Mastodon logo in ShareGroupModal
 - Change URL for Mastodon Share Manager
 - Fix receiving Flag activities on federated events
 - Fix activity notifications by preloading user.activity_settings
 - Fix text overflow on group card description
 - Exclude tags with more than 40 characters from being extracted
 - Avoid duplicate tags with different casing
 - Fix invalid HTML (<div> inside <label>)
 - Fix latest group not refreshing in admin section
 - Add missing "relay@" part of federated address to follow
 - Fix Ueberauth use of CSRF with session
 - Fix being an administrator when using 3rd-party auth provider
 - Make sure activity recipient can't be nil
 - Make sure users can't create profiles or groups with non-valid patterns
 - Add description field to address representation
 - Make sure prompt show the correct message and not just "Continue?" in mix mode
 - Make sure activity notification recaps can't be sent multiple times
 - Fix group notification of new event being sent multiple times
 - Fix links to group page in group membership emails and participation
 - Fix clicking on map crashing the app
 
 - Arabic
 - Basque
 - Belarusian
 - Bengali
 - Catalan
 - Chinese (Traditional)
 - Croatian
 - Czech
 - Danish
 - Dutch
 - Esperanto
 - Finnish
 - French
 - Gaelic
 - Galician
 - German
 - Hebrew
 - Hungarian
 - Indonesian
 - Italian
 - Japanese
 - Kabyle
 - Kannada
 - Norwegian Nynorsk
 - Occitan
 - Persian
 - Polish
 - Portuguese
 - Portuguese (Brazil)
 - Russian
 - Slovenian
 - Spanish
 - Swedish
 - Welsh
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEExMITpfxOHHCvHn8FoGG53eDKB3MFAmKCI7kACgkQoGG53eDK
 B3M0cg//U3F1oCzg8piPaIAUGgXTx7yOZ+rRO8tHX63+whg6Yu7vu09G8Hm7iyVD
 t2CuzEwKNKdgwUV4XG6CJfban20p/lBhGupQvCpIUOBZ6gKn6m2j7KAHj2/GbEot
 um+Dqu/ktIZN+2vc48nH7HGgcO1c/oCzUE3nH0HYWA9GCVGIAIz+alHszOl9CtL/
 TFpgrF5ygRtk4Z4W/hg6j94PP4IpdCybob8/mgN8eZeF4VbaiCGBdsxl5jai+nqE
 wgebLqyyDAmnE/aW1E64TTLlRP8eZwmNkfxuyI5bjMX8sgvML/ZEcKmcIHPh7tby
 5+pEDnRPg8vnqI5SnkaNH2/77WWY0zPQRFsIV4NFnbMuqZ8fumIC9ke/RXEDGMfS
 ZQi0mWpTT6xZC/XyrjfcaGrV3JY/mrkEXUxFlEwMNm3dGnHKSGCgHIz4gPoQw5U+
 wxPyi+wcnmeHTbic7A89aGH3a4H2BF+f2iZeTrA+XyyopU/7Pr9xgzEHL/3Y/9wA
 +d/hJffLjOM5stg1Zqcndv9LxEFcTtjYBfIeV5kPLVc35s7IbmvoJizFBDrAWisj
 qLsmk9Tg2ODXCN9jIGto1YqQwBWUSYAfYgMzLyvLG1yb8mSBlhWUp/a3uZcekCUL
 qDOLNiiFKdD4TIjV/8Nst0YIHR3g4K2NtftjO92NWx2XeRBcS+w=
 =aZJM
 -----END PGP SIGNATURE-----

Merge tag '2.1.0' into chapril

- Added an event category field. Administrators can extend the pre-configured list of categories through configuration.
- Added possibility for administrators to have analytics (Matomo, Plausible supported) and error handling (Sentry supported) on front-end.
- Redesigned federation admin section with dedicated instance pages
- Allow to filter moderation reports by domain
- Added a button to go to past events of a group if it has no upcoming events
- Add Überauth CAS Strategy
- Add a CLI command to delete actors

- Changed mailer library from Bamboo to Swoosh, should fix emails being considered spam. **Some configuration changes are required, see below.**
- Expose some fields to ActivityStreams event representation: `isOnline`, `remainingAttendeeCapacity` and `participantCount`
- Expose a new field to ActivityStreams group representation: `memberCount`
- Improve group creation errors feedback
- Only display locality in event card
- Stale groups are now excluded from group search
- Event default visibility is now set according to group privacy setting
- Remove Koena Connect button
- Hide the whole metadata block if group has no description
- Increase task timeout in Refresher to 60 seconds
- Allow webfinger to be fetched over http (not https) in dev mode
- Improve reactions when approving/rejecting an instance follow
- Improve instance admin view for mobile
- Allow to reject instance following
- Allow instance to have non-standard ports
- Add pagination to the instances list
- Eventually fetch actors in mentions
- Improve IdentityPicker, JoinGroupWithAccount and ActorInline components
- Various group and posts improvements
- Update schema.graphql file
- Add "Accept-Language" header to sentry request metadata
- Hide address blocks when address has no real data
- Remove obsolete attribute type="text/css" from <style> tags
- Improve actor cards integration
- Use upstream dependencies for Ueberauth providers
- Include ongoing events in search
- Send push notification into own task
- Add appropriate timeouts for Repo.transactions
- Add a proper error message when adding an instance follow that doesn't respond
- Allow the instance to be followed from Mastodon (through relays)
- Remove unused fragment from FETCH_PERSON GraphQL query

- Fixed actor refreshment being impossible
- Fixed ical export for undefined datetimes
- Fixed parsing links with hashtag characters
- Fixed fetching link details from Twitter
- Fixed Thunderbird accessing ICS feed endpoint with special `Accept` HTTP header
- Make sure every ICS/Feed caches are emptied when modifying entities
- Fixed time issues with DST changes
- Fixed group preview card not truncating description
- Fixed redirection after login
- Fixed user admin section showing button to confirm user when the user is already confirmed
- Fixed creating event from group view not always setting the group as organizer
- Fixed invalid addresses blocking event metadata preview rendering
- Fixed group deletion with comments that caused foreign key issues
- Fixed incoming Accept activities from participations we don't already have
- Fixed resources that didn't have metadata size limits
- Properly fallback to UTC when sending notifications and the user doesn't have a timezone setting set
- Fix posts creation
- Fix rejecting instance follow
- Fix pagination of group events
- Add proper fallback for when a TZ isn't registered
- Hide side of report modal on low width screens
- Fix Telegram Logo being replaced with Mastodon logo in ShareGroupModal
- Change URL for Mastodon Share Manager
- Fix receiving Flag activities on federated events
- Fix activity notifications by preloading user.activity_settings
- Fix text overflow on group card description
- Exclude tags with more than 40 characters from being extracted
- Avoid duplicate tags with different casing
- Fix invalid HTML (<div> inside <label>)
- Fix latest group not refreshing in admin section
- Add missing "relay@" part of federated address to follow
- Fix Ueberauth use of CSRF with session
- Fix being an administrator when using 3rd-party auth provider
- Make sure activity recipient can't be nil
- Make sure users can't create profiles or groups with non-valid patterns
- Add description field to address representation
- Make sure prompt show the correct message and not just "Continue?" in mix mode
- Make sure activity notification recaps can't be sent multiple times
- Fix group notification of new event being sent multiple times
- Fix links to group page in group membership emails and participation
- Fix clicking on map crashing the app

- Arabic
- Basque
- Belarusian
- Bengali
- Catalan
- Chinese (Traditional)
- Croatian
- Czech
- Danish
- Dutch
- Esperanto
- Finnish
- French
- Gaelic
- Galician
- German
- Hebrew
- Hungarian
- Indonesian
- Italian
- Japanese
- Kabyle
- Kannada
- Norwegian Nynorsk
- Occitan
- Persian
- Polish
- Portuguese
- Portuguese (Brazil)
- Russian
- Slovenian
- Spanish
- Swedish
- Welsh
2022-05-24 15:48:39 +02:00
Thomas Citharel 98229e8165
Release 2.1.0
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-16 12:12:53 +02:00
Thomas Citharel 5c39fd2852
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-16 12:12:23 +02:00
Thomas Citharel 6ea060291c Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1243
2022-05-13 08:53:22 +00:00
DignifiedSilence f82e96a5fe Translated using Weblate (Japanese)
Currently translated at 46.0% (614 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/
2022-05-12 22:19:08 +02:00
Thomas Citharel 79a51e5237
Release 2.1.0-rc.6
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-11 12:23:35 +02:00
Thomas Citharel f86b82f0d5 Merge branch 'cleanup-fetch-person' into 'main'
Remove unused Profile.vue component

See merge request framasoft/mobilizon!1242
2022-05-11 10:23:01 +00:00
Thomas Citharel 63e56b5b24
Remove unused Profile.vue component
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-11 12:05:01 +02:00
setop 57d4abae68
this fragment is never used and put pressure on the DB 2022-05-11 12:04:46 +02:00
Thomas Citharel 2b852c622e Merge branch 'deps' into 'main'
Update deps

See merge request framasoft/mobilizon!1241
2022-05-11 09:58:55 +00:00
Thomas Citharel 4213e1f1ec
Send activity recap emails outside of the transaction
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-11 11:24:20 +02:00
Thomas Citharel c05243f839
Add more logging to send_activity_recap_worker
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-11 09:47:18 +02:00
Thomas Citharel ab622cb424
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-11 09:24:27 +02:00
Thomas Citharel 90980bc2c5 Merge branch 'fix-clicking-on-map' into 'main'
Fix clicking on map crashing

See merge request framasoft/mobilizon!1239
2022-05-10 16:57:28 +00:00
Thomas Citharel ef26f1a684
Fix clicking on map crashing
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-10 15:31:36 +02:00
Thomas Citharel 18ceeb450a Merge branch 'notification-fixes' into 'main'
Notification fixes

Closes #1077

See merge request framasoft/mobilizon!1238
2022-05-10 12:14:35 +00:00
Thomas Citharel 123eee675a
Fix links to group page in group membership emails and participation
card

Closes #1077

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-10 13:41:02 +02:00
Thomas Citharel 46236dbe1d
Fix group notification of new event being sent multiple times
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-10 13:15:12 +02:00
Thomas Citharel 1eb111f52f
Make sure activity notification recaps can't be sent multiple times
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-10 13:15:11 +02:00
Thomas Citharel 3fea2d0395
Allow is_delay_ok_since_last_notification_sent? to have the delay as
param

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-10 13:15:11 +02:00
Thomas Citharel 44b2ca26bd Merge branch 'fixes' into 'main'
Add a CLI command to delete actors

See merge request framasoft/mobilizon!1237
2022-05-09 16:57:27 +00:00
Thomas Citharel 5bc63185fd
Add a CLI command to delete actors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-09 18:27:51 +02:00
Thomas Citharel 071185204e
Fix a comment
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-09 18:27:29 +02:00
Thomas Citharel 5bc9245dce
Make sure prompt show the correct message and not just "Continue?" in
mix mode

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-09 18:27:05 +02:00
Thomas Citharel 4fc5554142 Merge branch 'henrif/1096-add-desc-to-add-rep' into 'main'
Add description field to address representation

Closes #1096

See merge request framasoft/mobilizon!1234
2022-05-09 07:36:27 +00:00
Thomas Citharel f07d6d63de Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1235
2022-05-09 07:33:40 +00:00
Berto Te f6cd91ad1f Translated using Weblate (Spanish)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/es/
2022-05-07 19:02:06 +02:00
Henri Febleux 5b4e6ed473 Add description field to address representation
Fixes: #1096
2022-05-07 18:28:32 +02:00
Thomas Citharel 9be4ed84da Merge branch 'fixes' into 'main'
Various fixes

Closes #1068

See merge request framasoft/mobilizon!1233
2022-05-06 18:48:32 +00:00
Thomas Citharel 7a6a013d93
Make sure users can't create profiles or groups with non-valid patterns
Closes #1068

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 20:01:05 +02:00
Thomas Citharel 3b8b150d48
Make sure activity recipient can't be nil
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 17:51:54 +02:00
Thomas Citharel 888d2ef4b8
Expose correct relay address in federation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 17:21:11 +02:00
Thomas Citharel 3982977121
Allow to get Mastodon instance relays
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 16:59:28 +02:00
Thomas Citharel aff1959030
Only prevent following non-Mobilizon instances, but allow being followed
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 16:40:32 +02:00
Thomas Citharel 0b49021f8b
Fix admin notification e-mails from instance follow for Mastodon
instances

Show an appropriate name in the body of the mail

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 16:36:04 +02:00
Thomas Citharel f58d6829da
Bump version to 2.1.0-rc.5
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 14:56:38 +02:00
Thomas Citharel d3bc76afbf
Add changelog for 2.1.0-rc.5
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 14:56:19 +02:00
Thomas Citharel 578bd99be2
Format CHANGELOG.md
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 14:56:19 +02:00
Thomas Citharel c9ebd76cc9 Merge branch 'fixes' into 'main'
CI changes

See merge request framasoft/mobilizon!1232
2022-05-06 12:52:36 +00:00
Thomas Citharel 05724476aa
Remove unused addRelay mutation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 14:23:16 +02:00
Thomas Citharel 6eb2b6d31a
Better display of the errors when adding an instance
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 14:23:16 +02:00
Thomas Citharel cd3d0c5fc4
Add a proper error message when adding an instance that doesn't respond
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 14:23:16 +02:00
Thomas Citharel 6a937d6ede
Remove refresh instance triggers
There are not needed anymore, instances are always refreshed when adding
a new one, and we refresh periodically

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 12:52:39 +02:00
Thomas Citharel 2651f4cf40
Remove OS-specific packages from UPGRADE.md
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 12:42:16 +02:00
Thomas Citharel 8549a16ade
Only build on Debian Buster
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-06 12:41:34 +02:00
Thomas Citharel 3fcb44642a Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1231
2022-05-05 17:28:42 +00:00
Berto Te 41dfc2bc1c Translated using Weblate (Spanish)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-05-05 19:05:53 +02:00
Thomas Citharel a84ec21aba Merge branch 'fix-db-trigger' into 'main'
Only trigger refresh_instances when the actor being changed is a relay

Closes #1103

See merge request framasoft/mobilizon!1230
2022-05-05 10:50:46 +00:00
Thomas Citharel 61e6200b02
Only trigger refresh_instances when the actor being changed is a relay
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-05 12:19:53 +02:00
Thomas Citharel b1205b6912 Merge branch 'revert-d85f708c' into 'main'
Revert "Merge branch 'external-events' into 'main'"

See merge request framasoft/mobilizon!1228
2022-05-04 07:02:44 +00:00
Thomas Citharel 26cf892758 Revert "Merge branch 'external-events' into 'main'"
This reverts merge request !1223
2022-05-04 07:02:16 +00:00
Thomas Citharel d85f708c37 Merge branch 'external-events' into 'main'
Add option to link an external registration provider for events

See merge request framasoft/mobilizon!1223
2022-05-04 07:01:53 +00:00
Thomas Citharel a400499a57 Merge branch 'db-fixes' into 'main'
Add appropriate timeouts for Repo.transactions

See merge request framasoft/mobilizon!1227
2022-05-04 06:58:17 +00:00
Thomas Citharel 87214b038f
Add appropriate timeouts for Repo.transactions
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-04 08:21:15 +02:00
Thomas Citharel 90158f1112 Merge branch 'fixes' into 'main'
Remove unused indirect dependency

See merge request framasoft/mobilizon!1226
2022-05-03 14:23:32 +00:00
Luca Eichler 75502e2a4b
Add option to link an external registration provider for events 2022-05-03 15:33:32 +02:00
Thomas Citharel ec849b1488
Release 2.1.0-rc.4
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-03 15:15:52 +02:00
Thomas Citharel 1e9a7c2cbb
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-03 15:12:56 +02:00
Thomas Citharel 63a23748ac
Improve test coverage
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-03 12:58:07 +02:00
Thomas Citharel 999a33c7c3
Typespec fixes and refactoring
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-03 12:23:09 +02:00
Thomas Citharel f6a17d8b3a
Improve a guard
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-03 11:41:17 +02:00
Thomas Citharel a18c4daf4c
Avoid using actor id from config cache
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-03 11:40:16 +02:00
Thomas Citharel c0d8b2d39a
Remove unused indirect dependency
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-03 11:30:06 +02:00
Thomas Citharel b3e7f23604 Merge branch 'cas-fies' into 'main'
CAS Auth Fixes

See merge request framasoft/mobilizon!1225
2022-05-02 13:15:08 +00:00
Thomas Citharel 20542d3b68
Show provider name instead of ID in auth error message
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 14:40:17 +02:00
Thomas Citharel 1299b3baf1
CAS Auth Fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 14:40:17 +02:00
Thomas Citharel d7887ccb83 Merge branch 'fixes' into 'main'
Various fixes

See merge request framasoft/mobilizon!1224
2022-05-02 11:52:57 +00:00
Thomas Citharel 62248b2f81
Add Überauth CAS Strategy
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 13:15:15 +02:00
Thomas Citharel ada22e24ef
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 13:15:14 +02:00
Thomas Citharel bf7ebfd989
Test refreshing instances does not update self relay actor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 13:15:14 +02:00
Thomas Citharel a4cc566ee7
Fix some typespecs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 12:08:00 +02:00
Thomas Citharel cd61a98f4d
Use Github version of WebPushEncryption
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 12:07:39 +02:00
Thomas Citharel 926dd01272
Send push notification into own task
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 12:07:21 +02:00
Thomas Citharel d87261a6fb
Fix lint after merge
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-02 09:04:57 +02:00
Thomas Citharel 93805dca11 Merge branch 'setop-main-patch-92671' into 'main'
include ongoing events in search

Closes #729

See merge request framasoft/mobilizon!1171
2022-05-02 06:48:16 +00:00
setop f071f70d1f include ongoing events in search 2022-05-02 06:48:15 +00:00
Thomas Citharel 6596e2d6bd Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1222
2022-05-01 20:25:46 +00:00
אנטולי מהגבעות האדומות 7e71399065 Translated using Weblate (Hebrew)
Currently translated at 25.4% (339 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/he/
2022-05-01 21:00:48 +02:00
Thomas Citharel d2ebe86c9f Merge branch 'auth-modernize' into 'main'
Various 3rd-party auth providers improvements

Closes #506 et #989

See merge request framasoft/mobilizon!1221
2022-04-28 10:35:23 +00:00
Thomas Citharel c91e8f6bf3
Fix being an administrator when using 3rd-party auth provider
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-28 11:59:24 +02:00
Thomas Citharel f997f573ba
Use a session for state parameter in Ueberauth callback controller
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-28 11:59:24 +02:00
Thomas Citharel 82255b46eb
Use upstream dependencies for Ueberauth providers
Allows to work properly with state_param

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-28 11:41:28 +02:00
Thomas Citharel 9ab0768684 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1220
2022-04-28 07:34:01 +00:00
GunChleoc 303a6f8bd8 Translated using Weblate (Gaelic)
Currently translated at 99.7% (1329 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2022-04-28 04:48:56 +02:00
Thomas Citharel da80fa6235 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1219
2022-04-27 13:20:06 +00:00
GunChleoc 2aedf3027e Translated using Weblate (Gaelic)
Currently translated at 3.3% (12 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/gd/
2022-04-27 14:10:50 +02:00
GunChleoc d308752f25 Translated using Weblate (Gaelic)
Currently translated at 99.7% (1329 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2022-04-27 14:10:50 +02:00
Thomas Citharel ead459d79b Merge branch 'release-2.1.0-rc.3' into 'main'
Release 2.1.0-rc.3

See merge request framasoft/mobilizon!1218
2022-04-24 16:51:07 +00:00
Thomas Citharel 1323c20162
Release 2.1.0-rc.3
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-24 18:33:09 +02:00
Thomas Citharel 33e26466a6
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-24 18:33:09 +02:00
Thomas Citharel 4b8cfffede Merge branch 'fix-following-instances' into 'main'
Add missing "relay@" part of federated address to follow

See merge request framasoft/mobilizon!1217
2022-04-24 16:32:36 +00:00
Thomas Citharel ce6a25048c
Add missing "relay@" part of federated address to follow
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-24 17:52:46 +02:00
Thomas Citharel 030a149a61 Merge branch 'fixes' into 'main'
Improve actor cards integration

See merge request framasoft/mobilizon!1216
2022-04-22 10:38:42 +00:00
Thomas Citharel e4a22bdb83
Fix latest group not refreshing in admin section
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-22 12:04:05 +02:00
Thomas Citharel 3ce8c142b8
Improve actor cards integration
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-22 12:00:47 +02:00
Thomas Citharel 3ff9ee59cc Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1215
2022-04-22 07:35:13 +00:00
Berto Te 76eeceecbd Translated using Weblate (Spanish)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-04-22 01:34:12 +02:00
Thomas Citharel e26364f973 Merge branch 'hashtag-fixes' into 'main'
Exclude tags with more than 40 characters from being extracted.

Closes #939 et #562

See merge request framasoft/mobilizon!1214
2022-04-21 16:07:54 +00:00
Thomas Citharel 279badb2bf
Refactor Mobilizon.Federation.ActivityPub.Types.Events tags handling
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 17:31:47 +02:00
Thomas Citharel d05eb96ac6
Remove attribute type="text/css" from <style> tags
Closes #939

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 17:13:21 +02:00
Thomas Citharel 2749491467
Fix invalid HTML (<div> inside <label>)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 17:13:21 +02:00
Thomas Citharel f23f438763
Add test for the hashtag special cases
- Test that same hashtags with different casing are taken only once into
  account
- Test that too long hashtags are not extracted from description

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 17:13:21 +02:00
Thomas Citharel 7b3ce8d812
Avoid duplicate tags with different casing
Closes #562

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 17:13:21 +02:00
Thomas Citharel ca860273a0
Exclude tags with more than 40 characters from being extracted.
They are still in the HTML produced

Closes #562

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 17:13:20 +02:00
Thomas Citharel 95062df343 Merge branch 'enhancements' into 'main'
Various enhancements

Closes #1085

See merge request framasoft/mobilizon!1213
2022-04-21 11:06:56 +00:00
Thomas Citharel adfe7b2af2
Fix text overflow on group card description
Closes #1085

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 11:54:30 +02:00
Thomas Citharel e36f8f53ab
Hide address blocks when address has no real data
Closes #1085

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 11:54:20 +02:00
Thomas Citharel dc75a9beb3
[Front-end] Address model refactoring
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 11:43:41 +02:00
Thomas Citharel 0c49ddc65b
Add "Accept-Language" header to sentry request metadata
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 10:33:42 +02:00
Thomas Citharel 74cece5796
Preload user.activity_settings to as it's being used after
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-21 10:21:05 +02:00
Thomas Citharel 99dacb6038
Release 2.1.0-rc.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 20:17:23 +02:00
Thomas Citharel 04ec8fe2d3 Merge branch 'fixes' into 'main'
Update schema.graphql file

Closes #1088

See merge request framasoft/mobilizon!1212
2022-04-20 17:55:03 +00:00
Thomas Citharel b79f918d51
Correct a @moduledoc
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 19:15:33 +02:00
Thomas Citharel 0bc7864cb3
Hide the whole metadata block if group has no description
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 19:15:06 +02:00
Thomas Citharel 3f32b3409f
Increase task timeout in Refresher to 60 seconds
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 18:47:31 +02:00
Thomas Citharel 74eeaccdc6
Allow webfinger to be fetched over http (not https) in dev mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 18:38:03 +02:00
Thomas Citharel 7c8de2b87f
Fix rejecting instance follow
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 18:35:38 +02:00
Thomas Citharel f6ac72f08d
Allow instance to have non-standard ports
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 18:35:18 +02:00
Thomas Citharel 19052ba48b
Improve reactions when approving/rejecting an instance follow
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 18:30:16 +02:00
Thomas Citharel 10b92705e8
Improve instance admin view for mobile
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:12 +02:00
Thomas Citharel 46c0693829
Allow to reject instance following
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:12 +02:00
Thomas Citharel 993f4a7dcb
Update snapshots after front-end changes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:12 +02:00
Thomas Citharel 79872b47df
Make sure we can call displayName with eventually undefined actor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:11 +02:00
Thomas Citharel c216172d44
Fix pagination of group events
Closes #1088

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:11 +02:00
Thomas Citharel 409439a916
Make sure we can't refresh the local instance
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:11 +02:00
Thomas Citharel 28f5cdd03a
Handle webfinger JSON data being invalid format
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:10 +02:00
Thomas Citharel 0ebb797740
Directly delete an object if the actor is itself
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:10 +02:00
Thomas Citharel 00f4c0b02c
Make sure remote Update activities can't affect local actors other than
Groups

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:10 +02:00
Thomas Citharel 4b869a6015
Make some functions private in Mobilizon.Federation.ActivityPub.Utils
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:09 +02:00
Thomas Citharel df8721670a
Add a comment about why we don't sign object fetches when refetching actor keys
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:09 +02:00
Thomas Citharel 11bde88a02
Add pagination to the instances list
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:09 +02:00
Thomas Citharel 69b88c9238
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:08 +02:00
Thomas Citharel 15418bfb8d
Fix an issue in the french translation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:08 +02:00
Thomas Citharel 852be15a3e
Eventually fetch actors in mentions
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:08 +02:00
Thomas Citharel 14545fd983
Add proper fallback for when a TZ isn't registered
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 16:18:08 +02:00
Thomas Citharel f5791d1413
Debug log mentions in text to be processed
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:15 +02:00
Thomas Citharel eebcd48447
Improve IdentityPicker
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:15 +02:00
Thomas Citharel 48f1d3efc6
Hide side of report modal on low width screens
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:15 +02:00
Thomas Citharel 62f4f2bd24
Improve JoinGroupWithAccount component
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:15 +02:00
Thomas Citharel 5bbb9713d4
Various group and posts improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:15 +02:00
Thomas Citharel 74e8dd1eb2
Fix Telegram Logo being replaced with Mastodon logo in ShareGroupModal
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:15 +02:00
Thomas Citharel 54afbd395f
Change URL to Mastodon Share Manager
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:14 +02:00
Thomas Citharel 7275a530a2
Improve ActorInline component
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:14 +02:00
Thomas Citharel 4ee1efd4b9
Avoid assuming we're on Debian-based in release build
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:14 +02:00
Thomas Citharel 48d17c122d
Fix an issue with no default timezone
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:14 +02:00
Thomas Citharel d7aa432cca
Fix receiving Flag activities on federated events
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:03:14 +02:00
Thomas Citharel 24331d75b0
Update schema.graphql file
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-20 09:02:59 +02:00
Thomas Citharel b1a4f1b581 Merge branch 'fixes' into 'main'
Various fixes

See merge request framasoft/mobilizon!1211
2022-04-18 14:23:11 +00:00
Thomas Citharel f389b060c8
Release 2.1.0-rc.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-18 15:01:32 +02:00
Thomas Citharel a731a96b58
Remove HEX_MIRROR uses
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-18 15:01:32 +02:00
Thomas Citharel 0b04980332
Remove Koena Connect button
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-18 15:01:32 +02:00
Thomas Citharel 2eac639200
Fix front-end post creation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-18 14:47:44 +02:00
Thomas Citharel 83f2880dd9
Fix some typespecs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-18 14:47:44 +02:00
Thomas Citharel 714e9216c1
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-18 14:17:04 +02:00
Thomas Citharel cc8a115974
[CI] Fix docker buildpack image name
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-09 22:03:30 +02:00
Thomas Citharel 75f549170d Merge branch '2.1.0-beta.3' into 'main'
Add fedora and alpine release builds

See merge request framasoft/mobilizon!1210
2022-04-09 15:49:03 +00:00
Thomas Citharel 7d5581bf73
Release 2.1.0-beta.3
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-09 17:48:03 +02:00
Thomas Citharel 2917eea50f
Add fedora and alpine release builds
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-09 17:46:48 +02:00
Thomas Citharel 086aa0df8b
Release 2.1.0-beta.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-08 14:08:34 +02:00
Thomas Citharel c49200f82b Merge branch 'test-build-multiple-os' into 'main'
Test multi-os building

Closes #1081

See merge request framasoft/mobilizon!1209
2022-04-08 11:27:35 +00:00
Thomas Citharel e8c4382901
Test multi-os building
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-08 12:37:36 +02:00
Thomas Citharel c5edc1a0c3
Add a section in UPGRADE.md for 2.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-08 09:00:40 +02:00
Thomas Citharel 58c05d57f2 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1208
2022-04-07 21:38:10 +00:00
Berto Te 55071c71cb Translated using Weblate (Spanish)
Currently translated at 100.0% (1323 of 1323 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-04-07 22:11:19 +02:00
Thomas Citharel 64efd47cdc Merge branch 'clean-docs' into 'main'
Reorganize docs

See merge request framasoft/mobilizon!1207
2022-04-07 17:27:37 +00:00
Thomas Citharel 7a18d0b2bb
Fix ex_docs warnings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 18:51:10 +02:00
Thomas Citharel 698f78ee9a
Reorganize docs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 18:51:10 +02:00
Thomas Citharel 5bb1247f37
Put env directly when building docker images
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 14:46:34 +02:00
Thomas Citharel d01bbcad98
Use JSDeliver mirror when building Docker images as well
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 13:59:15 +02:00
Thomas Citharel d11929d231
Release 2.1.0-beta.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 12:19:45 +02:00
Thomas Citharel 837aec4de7
Update CHANGELOG for 2.1.0-beta.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 12:19:02 +02:00
Thomas Citharel f788839665 Merge branch 'setop/mobilizon-fix-search-perf' into 'main'
Add spatial indexes on address table

Closes #1047

See merge request framasoft/mobilizon!1206
2022-04-07 10:01:45 +00:00
Thomas Citharel de8231858a
Use JSDeliver mirror
Until https://github.com/hexpm/hexpm/issues/1130 is solved or understood

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 11:20:52 +02:00
Thomas Citharel 70cb96dc96
Add spatial indexes on address table
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 10:51:31 +02:00
setop febb68e702
add haversine dependency 2022-04-07 10:51:30 +02:00
setop 38579d9dc2
add search box to filter addresses quickly 2022-04-07 10:51:30 +02:00
Thomas Citharel 4f92add78d
Format LiveView templates after adding the LiveView formatter plugin
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 10:33:11 +02:00
Thomas Citharel bde831299d
Add LiveView plugin to formatter
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 10:31:44 +02:00
Thomas Citharel c77b979a97
Upgrade Phoenix LiveView
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-07 10:31:29 +02:00
Thomas Citharel d45c8b194b Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1205
2022-04-06 21:22:19 +00:00
Berto Te c9427a77f2 Translated using Weblate (Spanish)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-04-06 20:31:55 +02:00
Thomas Citharel ca6db74a73 Merge branch 'analytics' into 'main'
Provide analytics on Front-end

Closes #690

See merge request framasoft/mobilizon!1200
2022-04-06 18:31:49 +00:00
Thomas Citharel 257050eabc
Pin ex_cldr version until ex_cldr_dates_times is updated
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:11 +02:00
Thomas Citharel 68c24e2425
Update tests Dockerfile
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:11 +02:00
Thomas Citharel 822a16fc53
Update Postgis image used in tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:10 +02:00
Thomas Citharel e2682c570d
Only display locality in event card address section and truncate
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:10 +02:00
Thomas Citharel 8b3278b60f
Fix display of contacts on event view
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:10 +02:00
Thomas Citharel 0abb9a13e5
Various group events improvements
Adds a button to show pasts events of a group if no upcoming events are
displayed
q
Closes #690

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:10 +02:00
Thomas Citharel 927d2296eb
Improve event metadata links display
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:09 +02:00
Thomas Citharel 2ed69f9484
Actor card improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:09 +02:00
Thomas Citharel 999f2f8e14
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:09 +02:00
Thomas Citharel e3adc0684f
Make FrontEndAnalytics provide CSP configuration
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 19:56:09 +02:00
Thomas Citharel da2254089c
Make sure suspended actors are not in the AP cache anymore
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 16:54:00 +02:00
Thomas Citharel 501e0d12e4
Properly fallback to MEETING category if category is not in the
allowlist

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 14:42:01 +02:00
Thomas Citharel 2978ae5d1e
Fix some warnings in js unit tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 14:25:38 +02:00
Thomas Citharel bcf936d103
Set initial analytics configuration
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 14:25:38 +02:00
Thomas Citharel 3f538ccf95
Avoid NavigationDuplicated error after Login
Only redirect on mounted if already logged-in

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 14:25:38 +02:00
Thomas Citharel 709d26735b
Provide analytics on Front-end
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 12:31:46 +02:00
Thomas Citharel c1a59f5536
Use better default for SMTP mailer
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-06 10:24:14 +02:00
Thomas Citharel 990a442c87 Merge branch 'update-translations' into 'main'
Remove unused variable

See merge request framasoft/mobilizon!1204
2022-04-05 12:13:55 +00:00
Thomas Citharel 46c38fad28
Update translations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 14:13:20 +02:00
Thomas Citharel cb1e41d90d
Remove unused variable
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 14:10:21 +02:00
Thomas Citharel e1009f76e9 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1202
2022-04-05 12:08:39 +00:00
Norwin 505e45d87d Translated using Weblate (German)
Currently translated at 99.8% (1309 of 1311 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-04-05 13:21:30 +02:00
Norwin 24cd0a23a5 Translated using Weblate (German)
Currently translated at 96.6% (342 of 354 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-04-05 13:21:30 +02:00
Norwin 4cde0c058e Translated using Weblate (German)
Currently translated at 99.8% (1309 of 1311 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-04-05 13:21:30 +02:00
Thomas Citharel 4b9a38b2a7 Merge branch 'email-spam' into 'main'
Move mailer from Bamboo to Swoosh

Closes #491

See merge request framasoft/mobilizon!1203
2022-04-05 11:21:24 +00:00
Thomas Citharel e49a8e3905
Fix issue in function signature
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 12:38:03 +02:00
Thomas Citharel 8ebcba998b
Upgrade erlang version
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 12:38:02 +02:00
Thomas Citharel e841fb6fbb
Move mailer from Bamboo to Swoosh
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-05 12:38:02 +02:00
Thomas Citharel 8e16c64989 Merge branch 'redirect-after-login' into 'main'
Fix redirection after login

Closes #1067

See merge request framasoft/mobilizon!1201
2022-04-04 14:30:48 +00:00
Thomas Citharel ee69ce1972 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1198
2022-04-04 14:27:52 +00:00
Norwin e30af9adbe Translated using Weblate (German)
Currently translated at 99.7% (1308 of 1311 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-04-04 16:27:26 +02:00
Jiri Podhorecky cd0d74f832 Translated using Weblate (Czech)
Currently translated at 100.0% (209 of 209 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-04-04 16:27:26 +02:00
Jiri Podhorecky a5e9ab3273 Translated using Weblate (Czech)
Currently translated at 100.0% (354 of 354 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-04-04 16:27:26 +02:00
Jiri Podhorecky 29ad4dbddf Translated using Weblate (Czech)
Currently translated at 99.9% (1310 of 1311 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-04-04 16:27:26 +02:00
Marco Ciampa 5e8bec0263 Translated using Weblate (Italian)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/it/
2022-04-04 16:27:26 +02:00
Marco Ciampa b769738f08 Translated using Weblate (Italian)
Currently translated at 86.7% (307 of 354 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/it/
2022-04-04 16:27:26 +02:00
Berto Te f38f3acf9b Translated using Weblate (Spanish)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-04-04 16:27:26 +02:00
Thomas Citharel 0fac23cc4b Merge branch 'fixes' into 'main'
Various fixes

Closes #997

See merge request framasoft/mobilizon!1199
2022-04-04 14:27:16 +00:00
Thomas Citharel 05648fc1f4
Fix redirection after login
Closes #1067

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:57:44 +02:00
Thomas Citharel e5ccdccbc7
Allow to get a group by it's ID
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:17 +02:00
Thomas Citharel 84a5c6f893
Directly load the group in OrganizerPickerWrapper if we have the group ID
Fixes #997

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:17 +02:00
Thomas Citharel a2bb0c0a4d
Debounce contact filter
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:17 +02:00
Thomas Citharel 59c39efb80
Redesign organizer picker with tailwind
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:17 +02:00
Thomas Citharel 4e3eb33d01
Don't offer to confirm already confirmed user
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:16 +02:00
Thomas Citharel 7fcaa4a151
[GraphQL] Allow to get group by ID in person memberships
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:16 +02:00
Thomas Citharel d2864a22d9
Allow to exclude stale actors from group search (one week without refreshment)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-04 15:42:16 +02:00
Thomas Citharel 2e1c284565 Merge branch 'fixes' into 'main'
Make sure every relation of actor is loaded when operating on it

Closes #1049, #1016 et #996

See merge request framasoft/mobilizon!1196
2022-04-01 13:42:33 +00:00
Thomas Citharel 7c770dd59c Merge branch 'allilengyi/mobilizon-issue912' into 'main'
Set default event visibility from group privacy setting

Closes #912

See merge request framasoft/mobilizon!1197
2022-04-01 13:13:23 +00:00
Thomas Citharel 2bdce8b2fc
Handle address is invalid while rendering event preview
Closes #996

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 15:01:57 +02:00
allilengyi a407a56051
Set default event visibility from group privacy setting
Closes #912
2022-04-01 14:41:29 +02:00
Thomas Citharel a99d66b68f
Fix group deletion caused by foreign keys issue with comments &
discussions

Closes #1016

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 12:09:23 +02:00
Thomas Citharel 7e7eed290f
Handle errors when loading group pictures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 12:08:53 +02:00
Thomas Citharel c0ef41cb71
Fix accessing explore page without config
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 10:04:22 +02:00
Thomas Citharel b1ac997f8a
Make sure every relation of actor is loaded when operating on it
Closes #1049

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-01 10:03:43 +02:00
Thomas Citharel 9b7cd5831a
Add g++ to the Docker image
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 16:08:53 +02:00
Thomas Citharel 34432f9521 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1194
2022-03-31 10:52:05 +00:00
Berto Te 44bc441f1b Translated using Weblate (Spanish)
Currently translated at 100.0% (354 of 354 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-03-31 12:21:04 +02:00
Berto Te d4ce53646d Translated using Weblate (Spanish)
Currently translated at 100.0% (1311 of 1311 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-03-31 12:21:04 +02:00
Thomas Citharel b8d40a90ab Merge branch 'sentry-feedback-fixes' into 'main'
Various issues reported by sentry

See merge request framasoft/mobilizon!1195
2022-03-31 10:20:59 +00:00
Thomas Citharel 1578fd093b
Update sobelow ignores
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:38:33 +02:00
Thomas Citharel 1109ca1bc5
Use a specific version of dind
Follow-up to 7a82fed92a

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:23 +02:00
Thomas Citharel 458ab8ef3f
Add a missing french translation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:23 +02:00
Thomas Citharel 3f4d007f0e
Only focus focusable HTMLElements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel de5a5345b6
Don't return error 500 when issue with media proxy
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel a49bda5e4c
Handle error from converting from AP to note when having error with
actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel c56b898379
Fix incoming Accept activities from participations we don't already have
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel 4c9065ce68
Resource fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 11:24:22 +02:00
Thomas Citharel 9ab95efb08
Fix an email template and rename a translated string
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Thomas Citharel dd97565dd5
Give extra content to Sentry when creating a signature
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Thomas Citharel 4a8064f24f
Move Sentry request context to new module and load it everytime
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Thomas Citharel 3c8a2a1313
Add details of object in exception when AP object as no
actor/attributedTo

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-31 10:49:15 +02:00
Norwin ee037e57fa Translated using Weblate (German)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-03-29 13:58:58 +02:00
Thebigal Wisi 66055e706a Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 13:58:58 +02:00
Norwin 9bc8342a32 Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 13:58:58 +02:00
fluxx 2e9bb1e1fd Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:58 +02:00
Thorsten Panknin d81e584e24 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:58 +02:00
Thebigal Wisi a5c684b050 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:58 +02:00
tunda faee93fe43 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:58 +02:00
Norwin 8ec2cfe17f Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:58 +02:00
Thebigal Wisi f4bfc8e5f3 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:58 +02:00
Norwin 874ec0fa49 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:58 +02:00
Kira Sinn e1e0cb5030 Translated using Weblate (German)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-03-29 13:58:58 +02:00
Thomas Citharel 2b3be8a5d2 Add CHANGELOG entry for 2.1.0
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 81a9c5011b Fix tests after category changes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 0ee7e649a7 Allow to register custom categories
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 00c3212950 Introduce event categories
Closes #1056

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 762d20213a Fix first-day-of-week prop in event edition
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 13fbc9667d Debounce tag input autocomplete
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 4830750a1d Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel bfc25b115a Use specific version of Docker dind
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Berto Te 27ea14f8f2 Translated using Weblate (Spanish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/es/
2022-03-29 13:58:58 +02:00
Thomas Citharel 5f64eff8d3 Follow-up to 969cfc78be
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 774e4a514c Show error messages contextually when creating a group
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 16fd012e9b Update translations after adding translatable string
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel c2f0ee7928 Return a proper error directly when a group name conflicts
And translate the error

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 29062ff883 Allow GraphQL Error handler return custom Mobilizon.GraphQL.Error
directly

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel d075522f75 Attribute errors with field property to the correct property
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 96b93ac841 Provide group creation changeset errors as well to absinthe
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 2a2e5808f5 Show only 3 lines of description on group card
Closes #1021

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel bd074cf9fc Translated using Weblate (French (France) (fr_FR))
Currently translated at 99.9% (1307 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-03-29 13:58:58 +02:00
Marco Ciampa 11ac1631f0 Translated using Weblate (Italian)
Currently translated at 94.1% (305 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/it/
2022-03-29 13:58:58 +02:00
Thomas Citharel d5e8330c7f Expose member count in AP data
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 48af135fd6 Clear all ics/feed caches when modifying events/posts/actors
Closes #1059

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 0994a8bbae Pass the date to getTimezoneOffset() so that the DST is accounted for
See https://github.com/marnusw/date-fns-tz#gettimezoneoffset

Closes #1069

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 25ac2ab5e5 Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 97989f8de1 Fix wrong prop initialization
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel e3b4d29a43 Remove the oc locale
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel ef4be72b7f Format GraphQL block in test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 9c53888c30 Fix timeouts in tests by removing async: true for DB tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel c1ed270aa6 Upgrade buildx version in CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 8d85c3ed8f Fix embed of actor card
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 680463a5f9 Fix loading list of languages after ex_cldr update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel aa56724bef Add fallbackRootWithEmptyString when languages have empty strings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 5c65a4b892 Fix invalid GraphQL request for event creation/update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel b849a63cc6 Make GraphQL parameters strict following Absinthe 1.7 validating
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 379e97107f Update pattern matching for Oban.drain_queue following update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 2d99fe877c Refactor to avoid calling Mobilizon.Cldr.known_locale_name with a string
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 47f188a277 Fix duplicate field in schema
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel 6db5a0e801 Migrations after Oban 2.11
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
Thomas Citharel ea991cd8f8 Upgrade dependencies
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:58 +02:00
jim@killock.org.uk 0e2d279de1 Translated using Weblate (Welsh)
Currently translated at 15.7% (206 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2022-03-29 13:58:57 +02:00
Thomas Citharel 84b5bf339e Thunderbird 91+ seems to send Accept: XML when doing any query
We only accept ICS, so it didn't work.

Closes #1019

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Marco Ciampa 8620f2ff4a Translated using Weblate (Italian)
Currently translated at 80.5% (1053 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/it/
2022-03-29 13:58:57 +02:00
Eivind Ødegård 02032f5ec0 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/nn/
2022-03-29 13:58:57 +02:00
Philip Bernhart c7e713048f Translated using Weblate (Esperanto)
Currently translated at 2.5% (34 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eo/
2022-03-29 13:58:57 +02:00
Kenneth Aalberg 242dff05d0 Translated using Weblate (Norwegian Bokmål)
Currently translated at 4.9% (16 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/nb_NO/
2022-03-29 13:58:57 +02:00
Amanda Graven 6211b183f6 Translated using Weblate (Danish)
Currently translated at 16.3% (214 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/da/
2022-03-29 13:58:57 +02:00
Kenneth Aalberg e2e6e58900 Added translation using Weblate (Norwegian Bokmål) 2022-03-29 13:58:57 +02:00
Amanda Graven b864f4ddbb Translated using Weblate (Danish)
Currently translated at 16.2% (213 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/da/
2022-03-29 13:58:57 +02:00
Amanda Graven 90389bbac8 Translated using Weblate (Danish)
Currently translated at 3.1% (41 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/da/
2022-03-29 13:58:57 +02:00
Amanda Graven f2cf046733 Added translation using Weblate (Danish) 2022-03-29 13:58:57 +02:00
Thebigal Wisi 7a229f9525 Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 13:58:57 +02:00
Thebigal Wisi 852f730734 Translated using Weblate (German)
Currently translated at 99.6% (1304 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:57 +02:00
Mark 2bc23747f0 Translated using Weblate (Dutch)
Currently translated at 74.6% (976 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:58:57 +02:00
Eivind Ødegård 4ad209c115 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/nn/
2022-03-29 13:58:57 +02:00
Eivind Ødegård 1895e19fa1 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nn/
2022-03-29 13:58:57 +02:00
Thebigal Wisi 3d1f1fbcc6 Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 13:58:57 +02:00
Mark db95bdb5fe Translated using Weblate (Dutch)
Currently translated at 73.7% (964 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:58:57 +02:00
Mark 0d006c76f2 Translated using Weblate (Dutch)
Currently translated at 68.1% (892 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky f3b33e1b4a Translated using Weblate (Czech)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky df0ad6b633 Translated using Weblate (Czech)
Currently translated at 99.9% (1307 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:58:57 +02:00
אנטולי מהגבעות האדומות fa6846d2a3 Translated using Weblate (Hebrew)
Currently translated at 23.3% (306 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/he/
2022-03-29 13:58:57 +02:00
אנטולי מהגבעות האדומות dc740f6380 Translated using Weblate (Hebrew)
Currently translated at 19.1% (251 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/he/
2022-03-29 13:58:57 +02:00
אנטולי מהגבעות האדומות 8e46a70baf Added translation using Weblate (Hebrew) 2022-03-29 13:58:57 +02:00
Thomas Citharel 976503cd29 Expose remainingAttendeeCapacity and participantCount through AP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel 32ec220372 Expose isOnline through AP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
deadmorose 72061d9fe2 Translated using Weblate (Russian)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/ru/
2022-03-29 13:58:57 +02:00
deadmorose 3962a7cf1e Translated using Weblate (Russian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/ru/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky df42cfa537 Translated using Weblate (Czech)
Currently translated at 100.0% (208 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky ff56b77fa6 Translated using Weblate (Czech)
Currently translated at 99.6% (323 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky 5dffceebad Translated using Weblate (Czech)
Currently translated at 99.9% (1307 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky 5c2f60561c Translated using Weblate (Czech)
Currently translated at 99.3% (322 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky 792435da91 Translated using Weblate (Czech)
Currently translated at 98.0% (1282 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:58:57 +02:00
Mark 6894f678c7 Translated using Weblate (Dutch)
Currently translated at 63.5% (831 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:58:57 +02:00
Mark 2fa3285aca Translated using Weblate (Dutch)
Currently translated at 58.4% (765 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:58:57 +02:00
GunChleoc c59487a34c Translated using Weblate (Gaelic)
Currently translated at 99.7% (1305 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2022-03-29 13:58:57 +02:00
Mark fa60c6c904 Translated using Weblate (Dutch)
Currently translated at 56.4% (739 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:58:57 +02:00
Novel Martin Harianto b0cbfc52d3 Translated using Weblate (Indonesian)
Currently translated at 55.9% (732 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/id/
2022-03-29 13:58:57 +02:00
Al Wisi 9f60802a15 Translated using Weblate (German)
Currently translated at 99.6% (1304 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:57 +02:00
Weblate 16f880e56b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-03-29 13:58:57 +02:00
setop 96f405eb43 remove Text when instance is closed to registrations 2022-03-29 13:58:57 +02:00
Al Wisi 748ff7f8e4 Translated using Weblate (German)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-03-29 13:58:57 +02:00
Al Wisi 37599d416f Translated using Weblate (German)
Currently translated at 98.5% (205 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-03-29 13:58:57 +02:00
Al Wisi b2b8356033 Translated using Weblate (German)
Currently translated at 99.6% (323 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 13:58:57 +02:00
Al Wisi 89fab03d26 Translated using Weblate (German)
Currently translated at 99.6% (1305 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:57 +02:00
Jiri Podhorecky 56338a4cfb Translated using Weblate (Czech)
Currently translated at 96.5% (1264 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:58:57 +02:00
Al Wisi 60586e454a Translated using Weblate (German)
Currently translated at 92.1% (70 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-03-29 13:58:57 +02:00
Al Wisi 8eedf93090 Translated using Weblate (German)
Currently translated at 96.6% (201 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-03-29 13:58:57 +02:00
Al Wisi 3dd1667ac1 Translated using Weblate (German)
Currently translated at 87.3% (283 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 13:58:57 +02:00
Al Wisi 95186c5fe6 Translated using Weblate (German)
Currently translated at 99.5% (1303 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:57 +02:00
setop 16999ce19b add requirements for export 2022-03-29 13:58:57 +02:00
Berto Te 4ed400910f Translated using Weblate (Spanish)
Currently translated at 100.0% (326 of 326 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-03-29 13:58:57 +02:00
Berto Te 6bfb1cc861 Translated using Weblate (Spanish)
Currently translated at 99.0% (323 of 326 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-03-29 13:58:57 +02:00
Thomas Citharel 01e159d5e1 Show credo diff in CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Berto Te 1d31518d38 Translated using Weblate (Spanish)
Currently translated at 100.0% (208 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/es/
2022-03-29 13:58:57 +02:00
Berto Te 3822275ac0 Translated using Weblate (Spanish)
Currently translated at 100.0% (320 of 320 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-03-29 13:58:57 +02:00
Berto Te cd026e0edb Translated using Weblate (Spanish)
Currently translated at 100.0% (1309 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-03-29 13:58:57 +02:00
Thomas Citharel 40785d7f26 Remove duplicate entries in sv gettext translation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel c35cfc8181 Improve rich media parsers
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel 77945c8236 Fix fetching details from Twitter
Due to 429 error. Details: e6dc2ca5f2

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel cb1e348665 Fix actor auto-complete
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel f3215190c5 Detect and convert html body in the correct charset before parsing it
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel 644647fa38 Fix parsing links with hashtag characters
Closes #1008

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel 95c355d586 Disable follow of non-instances for now
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel 9cc0acdaeb Fix link on instance follow email
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel 54afcbee06 Update front-end deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:57 +02:00
Thomas Citharel 254d29558a Bump ueberauth version because of a CRSF security issue
ueberauth_discord is dropped because it's abandonned

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:56 +02:00
Thomas Citharel 2a6ddb4958 Translated using Weblate (Swedish)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/sv/
2022-03-29 13:58:56 +02:00
Weblate 0842ecbc79 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-03-29 13:58:56 +02:00
Anonymous 5bc430f47f Translated using Weblate (Croatian)
Currently translated at 75.2% (950 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:58:56 +02:00
Anonymous 6e10b024ef Translated using Weblate (Welsh)
Currently translated at 16.2% (205 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2022-03-29 13:58:56 +02:00
Anonymous 1e420d5448 Translated using Weblate (Indonesian)
Currently translated at 57.0% (720 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/id/
2022-03-29 13:58:56 +02:00
Anonymous 348199ba8f Translated using Weblate (Persian)
Currently translated at 12.8% (162 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fa/
2022-03-29 13:58:56 +02:00
Anonymous dc5e64593a Translated using Weblate (Gaelic)
Currently translated at 99.2% (1253 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2022-03-29 13:58:56 +02:00
Anonymous 1431e362c9 Translated using Weblate (Chinese (Traditional))
Currently translated at 0.8% (11 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/zh_Hant/
2022-03-29 13:58:56 +02:00
Anonymous 7695393a74 Translated using Weblate (Slovenian)
Currently translated at 77.8% (982 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sl/
2022-03-29 13:58:56 +02:00
Anonymous e3db9d24ef Translated using Weblate (Bengali)
Currently translated at 2.3% (30 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/bn/
2022-03-29 13:58:56 +02:00
Anonymous fbeb4e4553 Translated using Weblate (Kabyle)
Currently translated at 14.2% (180 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/kab/
2022-03-29 13:58:56 +02:00
Anonymous 2230afc2af Translated using Weblate (Basque)
Currently translated at 2.2% (29 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eu/
2022-03-29 13:58:56 +02:00
Anonymous 9a049302b1 Translated using Weblate (Hungarian)
Currently translated at 99.4% (1255 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hu/
2022-03-29 13:58:56 +02:00
Anonymous c7d16ecdcf Translated using Weblate (Kannada)
Currently translated at 0.5% (7 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/kn/
2022-03-29 13:58:56 +02:00
Anonymous f80b604f39 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 95.1% (1201 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nn/
2022-03-29 13:58:56 +02:00
Anonymous 1dddf901b0 Translated using Weblate (Esperanto)
Currently translated at 1.8% (23 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eo/
2022-03-29 13:58:56 +02:00
Anonymous 59e62a9bdb Translated using Weblate (Galician)
Currently translated at 83.9% (1059 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gl/
2022-03-29 13:58:56 +02:00
Anonymous 6e3ce82dcf Translated using Weblate (Portuguese (Brazil))
Currently translated at 61.8% (781 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/pt_BR/
2022-03-29 13:58:56 +02:00
Anonymous 24fe461043 Translated using Weblate (Belarusian)
Currently translated at 15.2% (192 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/be/
2022-03-29 13:58:56 +02:00
Anonymous 9e851e4a57 Translated using Weblate (Finnish)
Currently translated at 89.3% (1128 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fi/
2022-03-29 13:58:56 +02:00
Anonymous 776164e7d9 Translated using Weblate (Catalan)
Currently translated at 82.8% (1046 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ca/
2022-03-29 13:58:56 +02:00
Anonymous 8060171753 Translated using Weblate (Arabic)
Currently translated at 22.8% (288 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ar/
2022-03-29 13:58:56 +02:00
Anonymous 17df07188e Translated using Weblate (Swedish)
Currently translated at 37.5% (474 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-03-29 13:58:56 +02:00
Anonymous 329b7498f8 Translated using Weblate (Russian)
Currently translated at 95.1% (1201 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ru/
2022-03-29 13:58:56 +02:00
Anonymous 9da434308e Translated using Weblate (Portuguese)
Currently translated at 4.9% (63 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/pt/
2022-03-29 13:58:56 +02:00
Anonymous 720295b64f Translated using Weblate (Polish)
Currently translated at 60.3% (762 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/pl/
2022-03-29 13:58:56 +02:00
Anonymous f72c5d8673 Translated using Weblate (Occitan)
Currently translated at 72.2% (912 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-03-29 13:58:56 +02:00
Anonymous 5084422c85 Translated using Weblate (Dutch)
Currently translated at 56.6% (715 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:58:56 +02:00
Anonymous b58a6b1a1a Translated using Weblate (Japanese)
Currently translated at 5.8% (74 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/
2022-03-29 13:58:56 +02:00
Anonymous 6f1625a55c Translated using Weblate (Italian)
Currently translated at 73.0% (922 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/it/
2022-03-29 13:58:56 +02:00
Anonymous e0b9bc1539 Translated using Weblate (German)
Currently translated at 94.8% (1197 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:58:56 +02:00
Thomas Citharel b45b703143 Improve admin views (2)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:56 +02:00
Thomas Citharel 0b2dde0bff Improve admin views
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:58:56 +02:00
Thomas Citharel 93e6831403 Add @tailwindcss/line-clamp
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel 17d910ea88 Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel 759ebe2298 Add a breadcrumbs component
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel deda6da6f5 Add .devcontainer files
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel d47094ecad Add .tool-versions file for ASDF
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel 012c2ad344 Allow custom focus target for a11y
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel b098ae202d Fix ical export for undefined datetimes
Closes #973

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel 23864deffe Allow to filter reports by domain
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel d5545e01b0 Fix various issues reported by Dializer
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel 19005d3199 Rename Mobilizon.Actors.is_following/2 to check_follow/2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel d8574e0d15 Improve logging in module and handle more Webfinger errors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel b47dad5659 Introduce instances admin page
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel cb7e4bddf5 Add TailwindCSS
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:57:27 +02:00
Thomas Citharel 2d57ac6466 Handle actor refreshment being impossible
If we can't refresh the actor, just return the stale actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:45 +02:00
Thomas Citharel 22d9d716ee Revert "Translated using Weblate (French (France) (fr_FR))"
This reverts commit 2e6d80295b.
2022-03-29 13:55:45 +02:00
setop 9364331a1d Translated using Weblate (French (France) (fr_FR))
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-03-29 13:55:45 +02:00
Mark 0e4440a9e8 Translated using Weblate (Dutch)
Currently translated at 18.9% (56 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/nl/
2022-03-29 13:55:45 +02:00
Mark 7610fe3fa7 Translated using Weblate (Dutch)
Currently translated at 56.6% (715 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:55:45 +02:00
Mark d150e45fce Translated using Weblate (Dutch)
Currently translated at 20.7% (262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-03-29 13:55:45 +02:00
Kristoffer Grundström 21b9b1ab9d Translated using Weblate (Swedish)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/sv/
2022-03-29 13:55:45 +02:00
Anders Trobäck a8db378010 Translated using Weblate (Swedish)
Currently translated at 37.5% (474 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-03-29 13:55:45 +02:00
Kristoffer Grundström a98d4fee4b Translated using Weblate (Swedish)
Currently translated at 37.5% (474 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-03-29 13:55:45 +02:00
Kristoffer Grundström ea6e80f056 Translated using Weblate (Swedish)
Currently translated at 47.3% (36 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/sv/
2022-03-29 13:55:45 +02:00
Kristoffer Grundström 0bc59325fb Translated using Weblate (Swedish)
Currently translated at 29.8% (377 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-03-29 13:55:45 +02:00
Quentin PAGÈS 080b3f9a50 Translated using Weblate (Occitan)
Currently translated at 72.2% (912 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-03-29 13:55:45 +02:00
Quentin PAGÈS d36b664c6b Translated using Weblate (Occitan)
Currently translated at 72.1% (910 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-03-29 13:55:45 +02:00
Quentin PAGÈS fe9aa78feb Translated using Weblate (Occitan)
Currently translated at 71.4% (902 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 56a2f0da49 Translated using Weblate (Czech)
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 43e0502c57 Translated using Weblate (Czech)
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Thomas Citharel 5b886ec767 Bump version to 2.0.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel f2c1770459 Add CHANGELOG entry for 2.0.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 7334e6b5b8 Remove gancio fixture picture as the server is down
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 73c5429058 Fix admin editing instance language
Closes #976

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel c279511ffe Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 546da074d1 Restore langs.json
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 5cea3f3cf0 Translated using Weblate (French)
Currently translated at 100.0% (296 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/fr/
2022-03-29 13:55:44 +02:00
Weblate becf688d8d Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-03-29 13:55:44 +02:00
Weblate 0eef3a5e4a Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-03-29 13:55:44 +02:00
Weblate a8a8890117 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-03-29 13:55:44 +02:00
Thomas Citharel d59077edca Update upload package image
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 3fc1a723ac Use Elixir 1.13 in Docker builds
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 44de57fffa Refresh CI image
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel f083dcb687 Improve handling of media file deletion
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel b02580d654 Improve compilation dependency in endpoint and context
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 09b61af22f Fix test to know whether we should perform unused accounts cleanup
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 003a8fe4e4 Simplify response for user not found
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
fr33domlover 07dc83c9dd Translated using Weblate (Hebrew)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/he/
2022-03-29 13:55:44 +02:00
fr33domlover e149be864d Added translation using Weblate (Hebrew) 2022-03-29 13:55:44 +02:00
Berto Te b5cd09d91a Translated using Weblate (Spanish)
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-03-29 13:55:44 +02:00
Thomas Citharel ce443ce708 Reduce package expiration to two days
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 0136bb7f87 Update translations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 36f19916b5 Fix group members pagination on admin group profile view
Closes #965

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel ddadf4c3d4 Handle groups/profiles/users not found in admin
Closes #966

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 53ab9ac7b2 Fix first day of week not depending on locale
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 124a9cb6a6 Allow to filter user memberships and group memberships (contacts=) on
backend side

Closes #981 #969

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 9f8bd5c87a Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 7f2aa2a9f9 Fix text overflow when a link is too long in event mobile view
Closes #941

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Jiri Podhorecky c6de89e145 Translated using Weblate (Czech)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 747ce883ce Translated using Weblate (Czech)
Currently translated at 100.0% (204 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 4370e2e406 Translated using Weblate (Czech)
Currently translated at 100.0% (1255 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky fb7c78eadb Translated using Weblate (Czech)
Currently translated at 97.6% (1226 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 66dfd54632 Translated using Weblate (Czech)
Currently translated at 95.3% (1197 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 0f2c4b6897 Translated using Weblate (Czech)
Currently translated at 95.2% (1195 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 6385e29cc3 Translated using Weblate (Czech)
Currently translated at 93.7% (1176 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky f89105d49d Translated using Weblate (Czech)
Currently translated at 90.0% (1130 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Thomas Frenzel 3a925afeea Translated using Weblate (German)
Currently translated at 95.3% (1197 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 594ee50a1f Translated using Weblate (Czech)
Currently translated at 87.4% (1097 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 594dbfbaab Translated using Weblate (Czech)
Currently translated at 100.0% (296 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Thomas Frenzel 3c763c953a Translated using Weblate (German)
Currently translated at 94.9% (1191 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 4e1165da23 Translated using Weblate (Czech)
Currently translated at 84.3% (1058 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky b608ba9444 Translated using Weblate (Czech)
Currently translated at 90.2% (267 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Thomas Frenzel 6000625985 Translated using Weblate (German)
Currently translated at 94.8% (1190 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky b1197cbefa Translated using Weblate (Czech)
Currently translated at 85.4% (253 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 05ac4a679c Translated using Weblate (Czech)
Currently translated at 85.1% (252 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky a2cee5314e Translated using Weblate (Czech)
Currently translated at 83.5% (1048 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky d1e4069451 Translated using Weblate (Czech)
Currently translated at 80.4% (238 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 718cb0ca6a Translated using Weblate (Czech)
Currently translated at 79.1% (993 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky c09c92df2d Translated using Weblate (Czech)
Currently translated at 77.2% (969 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 4a93104c62 Translated using Weblate (Czech)
Currently translated at 53.3% (669 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Luka Filipović 3a2160dd4c Translated using Weblate (Croatian)
Currently translated at 75.6% (950 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 383acdb052 Translated using Weblate (Czech)
Currently translated at 52.9% (665 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky be7bc3a437 Translated using Weblate (Czech)
Currently translated at 26.6% (334 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Luka Filipović 13ca024dc6 Translated using Weblate (Croatian)
Currently translated at 71.7% (900 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 75ed8b93e1 Translated using Weblate (Czech)
Currently translated at 97.3% (74 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky f62ad4a3fb Translated using Weblate (Czech)
Currently translated at 97.0% (198 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 6666539554 Translated using Weblate (Czech)
Currently translated at 66.5% (197 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 923d3ca994 Translated using Weblate (Czech)
Currently translated at 19.7% (15 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2022-03-29 13:55:44 +02:00
Marco Ciampa 8230c35d49 Translated using Weblate (Esperanto)
Currently translated at 1.8% (23 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eo/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky e140d86846 Translated using Weblate (Czech)
Currently translated at 16.1% (33 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-03-29 13:55:44 +02:00
deadmorose d87be1f4f0 Translated using Weblate (Russian)
Currently translated at 100.0% (296 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/ru/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 6fa3dcd339 Translated using Weblate (Czech)
Currently translated at 25.3% (75 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Thomas Frenzel 32684bd350 Translated using Weblate (German)
Currently translated at 94.4% (1185 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Luka Filipović b02456cb6a Translated using Weblate (Croatian)
Currently translated at 61.8% (776 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky a739e9d887 Translated using Weblate (Czech)
Currently translated at 10.5% (8 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 34400156b8 Translated using Weblate (Czech)
Currently translated at 16.8% (50 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-03-29 13:55:44 +02:00
Thomas Frenzel 35e4760942 Translated using Weblate (German)
Currently translated at 93.7% (1176 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 7b13cd9aef Translated using Weblate (Czech)
Currently translated at 2.6% (2 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 18b455e45b Translated using Weblate (Czech)
Currently translated at 7.8% (16 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 152d5f47e5 Translated using Weblate (Czech)
Currently translated at 24.3% (306 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Luka Filipović b39fe54faa Translated using Weblate (Croatian)
Currently translated at 52.5% (659 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:55:44 +02:00
Luka Filipović d6660b2a9a Translated using Weblate (Croatian)
Currently translated at 43.9% (552 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:55:44 +02:00
Quentin PAGÈS 9b64de803d Translated using Weblate (Occitan)
Currently translated at 71.1% (893 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-03-29 13:55:44 +02:00
Thorsten Panknin a1f73c951a Translated using Weblate (German)
Currently translated at 92.9% (1166 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Thomas Citharel c6fe85458b Fix position of tentative tag on EventCard
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Luka Filipović 5db44c9b6b Translated using Weblate (Croatian)
Currently translated at 25.9% (326 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:55:44 +02:00
Mostafa Ahangarha 4fec053546 Translated using Weblate (Persian)
Currently translated at 12.9% (162 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fa/
2022-03-29 13:55:44 +02:00
Quentin PAGÈS 2c62d5ac87 Translated using Weblate (Occitan)
Currently translated at 70.5% (885 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-03-29 13:55:44 +02:00
Luca E 1fb47cda4c Translated using Weblate (German)
Currently translated at 92.8% (1165 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Thorsten Panknin 081f8082d1 Translated using Weblate (German)
Currently translated at 92.8% (1165 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 13:55:44 +02:00
Thomas Citharel b91b0fdc6f Update CHANGELOG.md
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 97285e4f1a Fix docker build scheduled job
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 9665b15f96 Don't sign fetches to instance actor when refreshing their keys
Closes #963

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel e9ca950067 Fix reject of already following instances
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 30f220f73f Download tz_world data for Docker image directly
Closes #960

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 4568a4f4c2 Refresh loggeduser information before the final step of onboarding
Otherwise we endup in a loop

Closes #964

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 7ef481dad3 Handle tzinfo being absent
Closes #962

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
David Clubb 6e3d8157d0 Translated using Weblate (Welsh)
Currently translated at 16.3% (205 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2022-03-29 13:55:44 +02:00
Luka Filipović 8dcd3043ad Translated using Weblate (Croatian)
Currently translated at 2.0% (26 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-03-29 13:55:44 +02:00
Luka Filipović ab17b9a829 Translated using Weblate (Croatian)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/hr/
2022-03-29 13:55:44 +02:00
Thomas Citharel 06ae4a5436 Bump version to 2.0.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 5f39d8fb26 Update CHANGELOG.md for 2.0.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 21fb9c9f1c Always show the cancelled status of an event
Closes #959

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 6980bbfea4 Fix new credo warnings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 605868c13f Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel e45eae178a Update list of languages
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
David Clubb 6fecdb1e23 Translated using Weblate (Welsh)
Currently translated at 11.1% (140 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2022-03-29 13:55:44 +02:00
Jiri Podhorecky 72f52f7bcf Translated using Weblate (Czech)
Currently translated at 16.3% (205 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-03-29 13:55:44 +02:00
Luc Didry d55565f54d Added translation using Weblate (Croatian) 2022-03-29 13:55:44 +02:00
Luc Didry 4f4083f9f8 Added translation using Weblate (Croatian) 2022-03-29 13:55:44 +02:00
Luc Didry da5be99197 Added translation using Weblate (Croatian) 2022-03-29 13:55:44 +02:00
Luc Didry c112a98773 Added translation using Weblate (Croatian) 2022-03-29 13:55:44 +02:00
David Clubb ec77dbcfa0 Added translation using Weblate (Welsh) 2022-03-29 13:55:44 +02:00
Thomas Citharel a6abb22cfc Always focus the search field after results have been fetched
Close #948

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 328068155b Put latest docker tag directly from CI
Also only do amd64 architecture for tags, not main

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel 796f03f8fa Add tzworld to the Docker image
Closes #947

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:44 +02:00
Thomas Citharel e03a09da45 Remove litepub context
Closes #954

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel 72877423c5 Improve phrasing of UPGRADE.md for timezones location path
Closes #949

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel d96923d29a Fix prettier config
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel 6fdb01308b Remove cypress
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel f618318d8d Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel 33c7c5247e Update tiptap styles
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel ba4752dee6 Replace @tiptap/starter-kit with indidual extensions
So that @tiptap/extension-code-block is removed

Closes #956

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
TA 6ca9cfc144 Translated using Weblate (Indonesian)
Currently translated at 57.3% (720 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/id/
2022-03-29 13:55:43 +02:00
Balázs Úr 7f252a5866 Translated using Weblate (Hungarian)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/hu/
2022-03-29 13:55:43 +02:00
GunChleoc 22941101af Translated using Weblate (Gaelic)
Currently translated at 99.8% (1253 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2022-03-29 13:55:43 +02:00
Balázs Úr d3d76e9d4e Translated using Weblate (Hungarian)
Currently translated at 45.6% (135 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hu/
2022-03-29 13:55:43 +02:00
Balázs Úr ea42f63cc8 Translated using Weblate (Hungarian)
Currently translated at 100.0% (204 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/hu/
2022-03-29 13:55:43 +02:00
Balázs Úr 64f9a54c1c Translated using Weblate (Hungarian)
Currently translated at 100.0% (1255 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hu/
2022-03-29 13:55:43 +02:00
Thomas Citharel 9f3a2e1801 Refactor and test Mobilizon.Federation.ActivityPub.Utils.get_actor/1
Raise exception when object contains no actor. Friendica seems to send an Update activity with no actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel 8e7bb4f3fc Fix event participants pagination
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel 9c60d5c670 Order my group upcoming events by begins_on
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 13:55:43 +02:00
Thomas Citharel bd64e19af4
Move a logging warning for HTTP issue to an info
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 11:51:07 +02:00
Thomas Citharel 9ddcd6dff6
Make sure timezone as an UTC fallback in case it's nil
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 11:51:07 +02:00
Thomas Citharel 0bc931fef0 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1192
2022-03-29 08:44:16 +00:00
Norwin 5bbf288053 Translated using Weblate (German)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-03-29 10:09:52 +02:00
Thebigal Wisi fc2a2ddef5 Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 10:09:52 +02:00
Norwin 2158017994 Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-03-29 10:09:51 +02:00
fluxx f0627cbc31 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 10:09:51 +02:00
Thorsten Panknin 1ff003f917 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 10:09:51 +02:00
Thebigal Wisi aefb2e2dee Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 10:09:51 +02:00
tunda 3d6971b08c Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 10:09:51 +02:00
Norwin 7ab055af70 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 10:09:51 +02:00
Thebigal Wisi f181ee9158 Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 10:09:51 +02:00
Norwin 436baa148f Translated using Weblate (German)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-03-29 10:09:51 +02:00
Kira Sinn d6ec612393 Translated using Weblate (German)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-03-29 10:09:51 +02:00
Thomas Citharel bccbfb1624 Merge branch 'categories' into 'main'
Categories

Closes #1056

See merge request framasoft/mobilizon!1193
2022-03-29 08:09:44 +00:00
Thomas Citharel 3a3d14fddc
Add CHANGELOG entry for 2.1.0
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 09:29:15 +02:00
Thomas Citharel 4983f2d695
Fix tests after category changes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-29 09:29:15 +02:00
Thomas Citharel 368911b58e
Allow to register custom categories
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 20:02:43 +02:00
Thomas Citharel f5bdedf789
Introduce event categories
Closes #1056

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 17:42:59 +02:00
Thomas Citharel 91ed13d5c2
Fix first-day-of-week prop in event edition
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 13:56:37 +02:00
Thomas Citharel 85f8450a85
Debounce tag input autocomplete
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 11:22:40 +02:00
Thomas Citharel b47e46cef5
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 10:48:40 +02:00
Thomas Citharel 7a82fed92a
Use specific version of Docker dind
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-28 10:43:06 +02:00
Thomas Citharel 771348e6e0 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1191
2022-03-26 18:17:11 +00:00
Berto Te 49bacc4ea1 Translated using Weblate (Spanish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/es/
2022-03-26 09:51:47 +01:00
Thomas Citharel 786987c969 Merge branch 'truncate-description-in-group-card' into 'main'
Show only 3 lines of description on group card

Closes #1021

See merge request framasoft/mobilizon!1190
2022-03-24 16:24:42 +00:00
Thomas Citharel e50f3b1967
Follow-up to 969cfc78be
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:43:36 +01:00
Thomas Citharel e528984a3a
Show error messages contextually when creating a group
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:43:36 +01:00
Thomas Citharel befc9aa86e
Update translations after adding translatable string
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:43:36 +01:00
Thomas Citharel cd3c316881
Return a proper error directly when a group name conflicts
And translate the error

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:44 +01:00
Thomas Citharel 93425108c5
Allow GraphQL Error handler return custom Mobilizon.GraphQL.Error
directly

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:44 +01:00
Thomas Citharel 45ce7d52b0
Attribute errors with field property to the correct property
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:44 +01:00
Thomas Citharel 3c294b33a8
Provide group creation changeset errors as well to absinthe
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:44 +01:00
Thomas Citharel 1b0f59937d
Show only 3 lines of description on group card
Closes #1021

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 16:39:43 +01:00
Thomas Citharel f33a9bf2ae Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1189
2022-03-24 14:30:06 +00:00
Thomas Citharel 355173fd6f Translated using Weblate (French (France) (fr_FR))
Currently translated at 99.9% (1307 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-03-24 14:57:05 +01:00
Marco Ciampa 73098498b1 Translated using Weblate (Italian)
Currently translated at 94.1% (305 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/it/
2022-03-24 14:57:05 +01:00
Thomas Citharel 884a69aef9 Merge branch 'expose-memberCount-in-ap' into 'main'
Expose member count in AP data

Closes #1057

See merge request framasoft/mobilizon!1188
2022-03-24 13:57:00 +00:00
Thomas Citharel a71c51a174
Expose member count in AP data
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 14:19:24 +01:00
Thomas Citharel b4eb6e9893 Merge branch 'cler-feed-cache' into 'main'
Clear all ics/feed caches when modifying events/posts/actors

Closes #1059

See merge request framasoft/mobilizon!1187
2022-03-24 12:27:18 +00:00
Thomas Citharel 019d694d2a
Clear all ics/feed caches when modifying events/posts/actors
Closes #1059

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 12:51:23 +01:00
Thomas Citharel 117052fb91 Merge branch 'fixes' into 'main'
Various fixes

Closes #1069

See merge request framasoft/mobilizon!1186
2022-03-24 09:43:16 +00:00
Thomas Citharel 35fb06c345
Pass the date to getTimezoneOffset() so that the DST is accounted for
See https://github.com/marnusw/date-fns-tz#gettimezoneoffset

Closes #1069

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 10:01:04 +01:00
Thomas Citharel 72ed766f26
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 09:45:54 +01:00
Thomas Citharel 63356b5994
Fix wrong prop initialization
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-24 09:43:59 +01:00
Thomas Citharel c30944dede Merge branch 'upgrade-deps' into 'main'
Upgrade dependencies

See merge request framasoft/mobilizon!1184
2022-03-23 15:51:15 +00:00
Thomas Citharel 9daf031928
Remove the oc locale
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 16:10:15 +01:00
Thomas Citharel 91f2b2bd6d
Format GraphQL block in test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 15:22:56 +01:00
Thomas Citharel e4467ec4ad
Fix timeouts in tests by removing async: true for DB tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 15:22:14 +01:00
Thomas Citharel 969cfc78be
Upgrade buildx version in CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 14:51:26 +01:00
Thomas Citharel 9d3cd05e33
Fix embed of actor card
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 12:35:27 +01:00
Thomas Citharel e7ce24966b
Fix loading list of languages after ex_cldr update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 12:35:27 +01:00
Thomas Citharel ed4a55b4b6
Add fallbackRootWithEmptyString when languages have empty strings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 12:35:26 +01:00
Thomas Citharel f5e6e51817
Fix invalid GraphQL request for event creation/update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 12:35:26 +01:00
Thomas Citharel a461674f9d
Make GraphQL parameters strict following Absinthe 1.7 validating
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 12:35:26 +01:00
Thomas Citharel 3d50f2d90d
Update pattern matching for Oban.drain_queue following update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-23 12:35:26 +01:00
Thomas Citharel 4c5cb34b5b Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1185
2022-03-22 11:48:48 +00:00
jim@killock.org.uk f50b2b51b8 Translated using Weblate (Welsh)
Currently translated at 15.7% (206 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2022-03-22 12:15:00 +01:00
Thomas Citharel 7067173a5a
Refactor to avoid calling Mobilizon.Cldr.known_locale_name with a string
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 17:50:38 +01:00
Thomas Citharel 3dd0b60606
Fix duplicate field in schema
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 16:55:01 +01:00
Thomas Citharel 4b7498c67e
Migrations after Oban 2.11
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 16:55:01 +01:00
Thomas Citharel edbe6ee21a
Upgrade dependencies
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 16:55:01 +01:00
Thomas Citharel 27b7138c58 Merge branch 'allow-xml-accept-header' into 'main'
Thunderbird 91+ seems to send Accept: XML when doing any query

Closes #1019

See merge request framasoft/mobilizon!1183
2022-03-21 12:42:35 +00:00
Thomas Citharel f043ec32d1
Thunderbird 91+ seems to send Accept: XML when doing any query
We only accept ICS, so it didn't work.

Closes #1019

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-03-21 12:46:56 +01:00
Thomas Citharel 0fe6d54eb3 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1182
2022-03-21 11:00:56 +00:00
Marco Ciampa 74694a423b Translated using Weblate (Italian)
Currently translated at 80.5% (1053 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/it/
2022-03-21 10:36:45 +01:00
Eivind Ødegård 9804743747 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/nn/
2022-03-17 21:28:16 +01:00
Philip Bernhart 67d791c925 Translated using Weblate (Esperanto)
Currently translated at 2.5% (34 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eo/
2022-03-10 07:24:03 +01:00
Kenneth Aalberg 0ee35c3505 Translated using Weblate (Norwegian Bokmål)
Currently translated at 4.9% (16 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/nb_NO/
2022-03-07 16:08:07 +01:00
Amanda Graven 53dd1935e0 Translated using Weblate (Danish)
Currently translated at 16.3% (214 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/da/
2022-03-07 16:08:07 +01:00
Kenneth Aalberg f9249ebce2 Added translation using Weblate (Norwegian Bokmål) 2022-03-06 23:54:31 +01:00
Amanda Graven c72c1f4080 Translated using Weblate (Danish)
Currently translated at 16.2% (213 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/da/
2022-03-04 15:02:01 +01:00
Amanda Graven b5804d517f Translated using Weblate (Danish)
Currently translated at 3.1% (41 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/da/
2022-03-04 09:41:27 +01:00
Amanda Graven 83ecdc0142 Added translation using Weblate (Danish) 2022-03-04 08:05:17 +01:00
Thomas Citharel 532949526f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1181
2022-02-24 14:14:45 +00:00
Thebigal Wisi 3233a7e258 Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-02-24 13:36:24 +01:00
Thebigal Wisi a32b6dd03e Translated using Weblate (German)
Currently translated at 99.6% (1304 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-02-24 13:36:24 +01:00
Thomas Citharel b81326b7fb Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1179
2022-02-18 09:03:08 +00:00
Mark 215306e08a Translated using Weblate (Dutch)
Currently translated at 74.6% (976 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-02-18 10:02:17 +01:00
Thomas Citharel a165b654f1 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1178
2022-02-17 08:10:56 +00:00
Eivind Ødegård cb06f2cd6c Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/nn/
2022-02-17 01:07:15 +01:00
Eivind Ødegård 684e77d54b Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (1308 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nn/
2022-02-17 01:07:14 +01:00
Thomas Citharel 073f8dfebf Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1177
2022-02-15 14:43:03 +00:00
Thebigal Wisi 67fdefbf3c Translated using Weblate (German)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-02-15 15:42:07 +01:00
Thomas Citharel 283282f834 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1176
2022-02-15 08:15:07 +00:00
Mark f01eba136f Translated using Weblate (Dutch)
Currently translated at 73.7% (964 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-02-15 05:13:24 +01:00
Thomas Citharel 7afa2d129b Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1175
2022-02-14 13:25:20 +00:00
Mark 7dad52f2e2 Translated using Weblate (Dutch)
Currently translated at 68.1% (892 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-02-14 14:24:47 +01:00
Thomas Citharel 4e218746a8 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1174
2022-02-11 08:00:38 +00:00
Jiri Podhorecky 4669430b05 Translated using Weblate (Czech)
Currently translated at 100.0% (324 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-02-11 06:38:04 +01:00
Jiri Podhorecky e09f25a304 Translated using Weblate (Czech)
Currently translated at 99.9% (1307 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-02-11 06:38:04 +01:00
אנטולי מהגבעות האדומות 1a5679970b Translated using Weblate (Hebrew)
Currently translated at 23.3% (306 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/he/
2022-02-10 20:20:18 +01:00
Thomas Citharel 6c17906eaf Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1173
2022-02-10 08:45:03 +00:00
אנטולי מהגבעות האדומות 79d804a331 Translated using Weblate (Hebrew)
Currently translated at 19.1% (251 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/he/
2022-02-09 19:28:12 +01:00
אנטולי מהגבעות האדומות 99abdb007c Added translation using Weblate (Hebrew) 2022-02-09 12:07:53 +01:00
Thomas Citharel a0c5ddbc2e Merge branch 'expose-needed-ap-data-for-search' into 'main'
Expose isOnline through AP

Closes #1044

See merge request framasoft/mobilizon!1172
2022-02-08 15:34:48 +00:00
Thomas Citharel 11ac2dcceb
Expose remainingAttendeeCapacity and participantCount through AP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-02-08 15:41:42 +01:00
Thomas Citharel 87b37a4153
Expose isOnline through AP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-02-08 15:27:17 +01:00
Thomas Citharel b012be0541 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1169
2022-02-01 08:02:54 +00:00
deadmorose 494c173001 Translated using Weblate (Russian)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/ru/
2022-01-28 13:48:03 +01:00
deadmorose 95be4d0436 Translated using Weblate (Russian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/ru/
2022-01-28 13:48:03 +01:00
Jiri Podhorecky 8cca22abc4 Translated using Weblate (Czech)
Currently translated at 100.0% (208 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-01-28 01:12:47 +01:00
Jiri Podhorecky 7d8060ab71 Translated using Weblate (Czech)
Currently translated at 99.6% (323 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-01-28 01:12:47 +01:00
Jiri Podhorecky d8c307eef4 Translated using Weblate (Czech)
Currently translated at 99.9% (1307 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-01-28 01:12:46 +01:00
Jiri Podhorecky 3917f616a9 Translated using Weblate (Czech)
Currently translated at 99.3% (322 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-01-27 23:05:49 +01:00
Jiri Podhorecky be10044186 Translated using Weblate (Czech)
Currently translated at 98.0% (1282 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-01-27 23:05:49 +01:00
Thomas Citharel 99b2e9b9e7 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1168
2022-01-27 21:36:03 +00:00
Mark e796e4dcb7 Translated using Weblate (Dutch)
Currently translated at 63.5% (831 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-01-27 18:34:06 +01:00
Thomas Citharel ba931ec55b Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1167
2022-01-27 11:57:06 +00:00
Mark 541e9b515f Translated using Weblate (Dutch)
Currently translated at 58.4% (765 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-01-27 12:55:55 +01:00
Thomas Citharel fddc818572 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1166
2022-01-27 07:39:55 +00:00
GunChleoc 7a83eac12a Translated using Weblate (Gaelic)
Currently translated at 99.7% (1305 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2022-01-26 23:51:53 +01:00
Thomas Citharel 89f22d785f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1165
2022-01-25 15:17:50 +00:00
Mark 81fcfd68b4 Translated using Weblate (Dutch)
Currently translated at 56.4% (739 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-01-25 14:39:38 +01:00
Thomas Citharel 3df2102f78 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1164
2022-01-25 09:08:51 +00:00
Novel Martin Harianto 9888c01a9e Translated using Weblate (Indonesian)
Currently translated at 55.9% (732 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/id/
2022-01-25 00:18:56 +01:00
Al Wisi 981f94296e Translated using Weblate (German)
Currently translated at 99.6% (1304 of 1308 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-01-25 00:18:55 +01:00
Thomas Citharel 425420439b Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1163
2022-01-24 15:50:01 +00:00
Weblate 3b606cddb8 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-01-24 16:13:39 +01:00
Thomas Citharel d1fb2e2f32 Merge branch 'remove-Text-when-instance-is-closed-to-registrations' into 'main'
remove Text when instance is closed to registrations

Closes #918

See merge request framasoft/mobilizon!1161
2022-01-24 15:13:32 +00:00
setop ed2c5aaeca remove Text when instance is closed to registrations 2022-01-24 15:13:31 +00:00
Thomas Citharel 749746b8b5 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1160
2022-01-24 15:07:09 +00:00
Al Wisi b55328ec30 Translated using Weblate (German)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-01-24 13:23:47 +01:00
Al Wisi 4e41fc584a Translated using Weblate (German)
Currently translated at 98.5% (205 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-01-24 13:23:47 +01:00
Al Wisi feb5e039ae Translated using Weblate (German)
Currently translated at 99.6% (323 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-01-24 13:23:47 +01:00
Al Wisi da85c20112 Translated using Weblate (German)
Currently translated at 99.6% (1305 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-01-24 13:23:47 +01:00
Jiri Podhorecky 3ee68bb2ed Translated using Weblate (Czech)
Currently translated at 96.5% (1264 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-01-24 13:23:47 +01:00
Al Wisi f5fae3cf95 Translated using Weblate (German)
Currently translated at 92.1% (70 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/de/
2022-01-24 13:23:47 +01:00
Al Wisi 7a71306ebc Translated using Weblate (German)
Currently translated at 96.6% (201 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-01-24 13:23:47 +01:00
Al Wisi 9ed953a3ed Translated using Weblate (German)
Currently translated at 87.3% (283 of 324 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-01-24 13:23:47 +01:00
Al Wisi aa49b221fe Translated using Weblate (German)
Currently translated at 99.5% (1303 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-01-24 13:23:47 +01:00
Thomas Citharel 97eb25340c Merge branch 'setop-main-patch-01351' into 'main'
add requirements for export

See merge request framasoft/mobilizon!1162
2022-01-24 12:23:37 +00:00
setop e401050ca6 add requirements for export 2022-01-24 12:01:47 +00:00
Thomas Citharel 83b07fa348 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1159
2022-01-20 12:22:08 +00:00
Berto Te 99ce4942fb Translated using Weblate (Spanish)
Currently translated at 100.0% (326 of 326 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-01-20 12:28:14 +01:00
Thomas Citharel 10ca260fc5 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1158
2022-01-19 08:00:18 +00:00
Berto Te ce672a4aeb Translated using Weblate (Spanish)
Currently translated at 99.0% (323 of 326 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-01-19 06:44:17 +01:00
Thomas Citharel 1be3ab1b55 Merge branch 'ci-show-credo-diff' into 'main'
Show credo diff in CI

See merge request framasoft/mobilizon!1157
2022-01-18 13:32:06 +00:00
Thomas Citharel b70ed5a76e
Show credo diff in CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 14:17:48 +01:00
Thomas Citharel 880c4fdf6b Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1156
2022-01-18 12:55:29 +00:00
Berto Te 1968c87a69 Translated using Weblate (Spanish)
Currently translated at 100.0% (208 of 208 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/es/
2022-01-18 13:35:21 +01:00
Berto Te 26e110fd03 Translated using Weblate (Spanish)
Currently translated at 100.0% (320 of 320 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-01-18 13:35:21 +01:00
Berto Te 3dcd9d1b2c Translated using Weblate (Spanish)
Currently translated at 100.0% (1309 of 1309 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-01-18 13:35:20 +01:00
Thomas Citharel 769d164159 Merge branch 'fix-link-to-instance-on-follow' into 'main'
Fix link on instance follow email

Closes #1008

See merge request framasoft/mobilizon!1155
2022-01-18 12:35:09 +00:00
Thomas Citharel fe05a2563d
Remove duplicate entries in sv gettext translation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:53:01 +01:00
Thomas Citharel 2134e7b152
Improve rich media parsers
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:52:45 +01:00
Thomas Citharel a66f19cc5d
Fix fetching details from Twitter
Due to 429 error. Details: e6dc2ca5f2

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:52:01 +01:00
Thomas Citharel c57d192abe
Fix actor auto-complete
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:51:37 +01:00
Thomas Citharel fbe5a8d0c4
Detect and convert html body in the correct charset before parsing it
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:47:45 +01:00
Thomas Citharel c8735e5837
Fix parsing links with hashtag characters
Closes #1008

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-18 12:46:33 +01:00
Thomas Citharel bda18a2150
Disable follow of non-instances for now
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 17:50:00 +01:00
Thomas Citharel 2a629759fa
Fix link on instance follow email
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 17:45:12 +01:00
Thomas Citharel bba76c7ab6 Merge branch 'update-deps' into 'main'
Deps update

See merge request framasoft/mobilizon!1154
2022-01-17 16:02:41 +00:00
Thomas Citharel 5b639f10f8
Update front-end deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 17:02:01 +01:00
Thomas Citharel 24ddb6e2bf
Bump ueberauth version because of a CRSF security issue
ueberauth_discord is dropped because it's abandonned

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 16:50:58 +01:00
Thomas Citharel e8e3d9ef1c Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1153
2022-01-17 15:44:25 +00:00
Thomas Citharel b9fba5650d Translated using Weblate (Swedish)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/sv/
2022-01-17 16:44:00 +01:00
Weblate 4f6bc0cd7a Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-01-17 16:42:17 +01:00
Anonymous 175d3d49e0 Translated using Weblate (Croatian)
Currently translated at 75.2% (950 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-01-17 16:42:15 +01:00
Anonymous 648c4d28e4 Translated using Weblate (Welsh)
Currently translated at 16.2% (205 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2022-01-17 16:42:15 +01:00
Anonymous 9f07e48be4 Translated using Weblate (Indonesian)
Currently translated at 57.0% (720 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/id/
2022-01-17 16:42:15 +01:00
Anonymous 2d5df1d5f1 Translated using Weblate (Persian)
Currently translated at 12.8% (162 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fa/
2022-01-17 16:42:14 +01:00
Anonymous 9cc0419417 Translated using Weblate (Gaelic)
Currently translated at 99.2% (1253 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2022-01-17 16:42:14 +01:00
Anonymous 0adbfc60cb Translated using Weblate (Chinese (Traditional))
Currently translated at 0.8% (11 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/zh_Hant/
2022-01-17 16:42:14 +01:00
Anonymous 7d404433fc Translated using Weblate (Slovenian)
Currently translated at 77.8% (982 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sl/
2022-01-17 16:42:14 +01:00
Anonymous b726970448 Translated using Weblate (Bengali)
Currently translated at 2.3% (30 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/bn/
2022-01-17 16:42:14 +01:00
Anonymous 91e17b37e5 Translated using Weblate (Kabyle)
Currently translated at 14.2% (180 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/kab/
2022-01-17 16:42:14 +01:00
Anonymous 82cac08642 Translated using Weblate (Basque)
Currently translated at 2.2% (29 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eu/
2022-01-17 16:42:14 +01:00
Anonymous 1fa44dea70 Translated using Weblate (Hungarian)
Currently translated at 99.4% (1255 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hu/
2022-01-17 16:42:14 +01:00
Anonymous 3d14b72eee Translated using Weblate (Kannada)
Currently translated at 0.5% (7 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/kn/
2022-01-17 16:42:14 +01:00
Anonymous 8bfca857fc Translated using Weblate (Norwegian Nynorsk)
Currently translated at 95.1% (1201 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nn/
2022-01-17 16:42:14 +01:00
Anonymous 7f60fe2faa Translated using Weblate (Esperanto)
Currently translated at 1.8% (23 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eo/
2022-01-17 16:42:14 +01:00
Anonymous a5b0f26f46 Translated using Weblate (Galician)
Currently translated at 83.9% (1059 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gl/
2022-01-17 16:42:14 +01:00
Anonymous 6bcccc91b9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 61.8% (781 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/pt_BR/
2022-01-17 16:42:14 +01:00
Anonymous c351587783 Translated using Weblate (Belarusian)
Currently translated at 15.2% (192 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/be/
2022-01-17 16:42:14 +01:00
Anonymous 50a54e0610 Translated using Weblate (Finnish)
Currently translated at 89.3% (1128 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fi/
2022-01-17 16:42:14 +01:00
Anonymous cd08c0db4f Translated using Weblate (Catalan)
Currently translated at 82.8% (1046 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ca/
2022-01-17 16:42:14 +01:00
Anonymous e713f28fe6 Translated using Weblate (Arabic)
Currently translated at 22.8% (288 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ar/
2022-01-17 16:42:14 +01:00
Anonymous 9e928cf9c5 Translated using Weblate (Swedish)
Currently translated at 37.5% (474 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-01-17 16:42:14 +01:00
Anonymous 86b488a07d Translated using Weblate (Russian)
Currently translated at 95.1% (1201 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ru/
2022-01-17 16:42:14 +01:00
Anonymous 93bb3b89be Translated using Weblate (Portuguese)
Currently translated at 4.9% (63 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/pt/
2022-01-17 16:42:14 +01:00
Anonymous 41e5daacdf Translated using Weblate (Polish)
Currently translated at 60.3% (762 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/pl/
2022-01-17 16:42:14 +01:00
Anonymous ecc3264ac1 Translated using Weblate (Occitan)
Currently translated at 72.2% (912 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-01-17 16:42:14 +01:00
Anonymous d78fbcd670 Translated using Weblate (Dutch)
Currently translated at 56.6% (715 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-01-17 16:42:14 +01:00
Anonymous 6cf7512933 Translated using Weblate (Japanese)
Currently translated at 5.8% (74 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/
2022-01-17 16:42:14 +01:00
Anonymous d400347a3e Translated using Weblate (Italian)
Currently translated at 73.0% (922 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/it/
2022-01-17 16:42:14 +01:00
Anonymous a1df30f4a7 Translated using Weblate (German)
Currently translated at 94.8% (1197 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-01-17 16:42:14 +01:00
Thomas Citharel e6b95a43d1 Merge branch 'tailwind2' into 'main'
Various admin improvements

Closes #973

See merge request framasoft/mobilizon!1152
2022-01-17 15:42:02 +00:00
Thomas Citharel 6e5061250c
Improve admin views (2)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 15:53:24 +01:00
Thomas Citharel ca6ef9b06b
Improve admin views
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:48 +01:00
Thomas Citharel d428d1ddf7
Add @tailwindcss/line-clamp
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:48 +01:00
Thomas Citharel 260fa83c3f
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:48 +01:00
Thomas Citharel 1daa8c5f5a
Add a breadcrumbs component
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:47 +01:00
Thomas Citharel 40758a83d5
Add .devcontainer files
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:47 +01:00
Thomas Citharel 6c8ecc6dbb
Add .tool-versions file for ASDF
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:47 +01:00
Thomas Citharel 411d7eca6c
Allow custom focus target for a11y
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:47 +01:00
Thomas Citharel 2ac3755120
Fix ical export for undefined datetimes
Closes #973

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:46 +01:00
Thomas Citharel 193fcde123
Allow to filter reports by domain
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:46 +01:00
Thomas Citharel 26b1ea401a
Fix various issues reported by Dializer
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:49:46 +01:00
Thomas Citharel 1319985047
Rename Mobilizon.Actors.is_following/2 to check_follow/2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel bc6cec45fa
Improve logging in module and handle more Webfinger errors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel e717312de7
Introduce instances admin page
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel 65249b60f2
Add TailwindCSS
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel 7f665daaf3
Handle actor refreshment being impossible
If we can't refresh the actor, just return the stale actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-01-17 14:41:03 +01:00
Thomas Citharel 722bb67fb9
Revert "Translated using Weblate (French (France) (fr_FR))"
This reverts commit 2e6d80295b.
2022-01-17 13:12:28 +01:00
Thomas Citharel 8581ecc106
Merge branch 'weblate/mobilizon-weblate-mobilizon-frontend' 2022-01-17 13:12:11 +01:00
setop 2e6d80295b Translated using Weblate (French (France) (fr_FR))
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-01-15 22:22:41 +01:00
Mark f41a27f331 Translated using Weblate (Dutch)
Currently translated at 18.9% (56 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/nl/
2022-01-15 22:22:41 +01:00
Mark d228805c6d Translated using Weblate (Dutch)
Currently translated at 56.6% (715 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-01-15 22:22:41 +01:00
Mark 397ce507d6 Translated using Weblate (Dutch)
Currently translated at 20.7% (262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-01-14 18:00:03 +01:00
Kristoffer Grundström 35e12cf056 Translated using Weblate (Swedish)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/sv/
2022-01-14 09:50:43 +01:00
Anders Trobäck 5db3123ef0 Translated using Weblate (Swedish)
Currently translated at 37.5% (474 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-01-14 09:50:42 +01:00
Kristoffer Grundström ef9ebeb80c Translated using Weblate (Swedish)
Currently translated at 37.5% (474 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-01-14 09:50:42 +01:00
Kristoffer Grundström 48dcbe6c3a Translated using Weblate (Swedish)
Currently translated at 47.3% (36 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/sv/
2022-01-13 10:06:26 +01:00
Kristoffer Grundström f051419c2f Translated using Weblate (Swedish)
Currently translated at 29.8% (377 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-01-13 10:06:25 +01:00
Quentin PAGÈS eeb40b15b0 Translated using Weblate (Occitan)
Currently translated at 72.2% (912 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-01-09 20:49:59 +01:00
Quentin PAGÈS c58b1f5219 Translated using Weblate (Occitan)
Currently translated at 72.1% (910 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-01-08 23:42:12 +01:00
Quentin PAGÈS 968d2ce051 Translated using Weblate (Occitan)
Currently translated at 71.4% (902 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-01-08 18:22:10 +01:00
Jiri Podhorecky b564817962 Translated using Weblate (Czech)
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-30 00:58:01 +01:00
Thomas Citharel 5d75452c8e Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1150
2021-12-29 10:09:48 +00:00
Jiri Podhorecky 1e2273e4f0 Translated using Weblate (Czech)
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-29 10:45:53 +01:00
Thomas Citharel e9ece4893b
Bump version to 2.0.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-22 14:34:41 +01:00
Thomas Citharel 4dd7f73456
Add CHANGELOG entry for 2.0.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-22 14:34:27 +01:00
Thomas Citharel 7d1e8cbfa2 Merge branch 'fix-instance-language' into 'main'
Update deps

Closes #976

See merge request framasoft/mobilizon!1149
2021-12-22 09:22:05 +00:00
Thomas Citharel e9601fac72
Remove gancio fixture picture as the server is down
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-22 09:51:14 +01:00
Thomas Citharel 15d186cc25
Fix admin editing instance language
Closes #976

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-21 19:47:54 +01:00
Thomas Citharel 19bf587dc9
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-21 19:47:38 +01:00
Thomas Citharel 943643c7f1
Restore langs.json
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-19 15:29:28 +01:00
Thomas Citharel e2bab6268c Translated using Weblate (French)
Currently translated at 100.0% (296 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/fr/
2021-12-17 22:15:29 +01:00
Weblate dee8c90bb3 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2021-12-17 10:43:37 +01:00
Thomas Citharel 9e2060c1bc Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1147
2021-12-17 09:43:25 +00:00
Weblate 23071f2cc5 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2021-12-17 10:08:23 +01:00
Thomas Citharel 4beab2b1fd Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1146
2021-12-17 09:08:09 +00:00
Weblate 72b4f8e869 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2021-12-17 09:22:11 +01:00
Thomas Citharel 2d69e85340 Merge branch 'update-upload-package-image' into 'main'
Update upload package image

See merge request framasoft/mobilizon!1145
2021-12-16 15:50:04 +00:00
Thomas Citharel 79901e85ee
Update upload package image
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-16 16:49:37 +01:00
Thomas Citharel 815eec071e Merge branch 'bugs' into 'main'
Various backend improvements

See merge request framasoft/mobilizon!1144
2021-12-15 14:26:44 +00:00
Thomas Citharel bd6f8206a7
Use Elixir 1.13 in Docker builds
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 14:55:47 +01:00
Thomas Citharel 79b58012cb
Refresh CI image
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 14:54:48 +01:00
Thomas Citharel ba097c736e
Improve handling of media file deletion
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:56 +01:00
Thomas Citharel c174e18b39
Improve compilation dependency in endpoint and context
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:56 +01:00
Thomas Citharel b484629010
Fix test to know whether we should perform unused accounts cleanup
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:55 +01:00
Thomas Citharel 3ad5f8977e
Simplify response for user not found
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-15 12:59:55 +01:00
Thomas Citharel dddcd4f2be Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1143
2021-12-14 13:00:26 +00:00
fr33domlover 462e76c93d Translated using Weblate (Hebrew)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/he/
2021-12-14 13:35:51 +01:00
Thomas Citharel 49b0a0778e Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1142
2021-12-14 08:37:27 +00:00
fr33domlover cd25002bdf Added translation using Weblate (Hebrew) 2021-12-14 09:13:40 +01:00
Berto Te 68bc0c44ce Translated using Weblate (Spanish)
Currently translated at 100.0% (1262 of 1262 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2021-12-14 09:05:59 +01:00
Thomas Citharel 308f3a6d60 Merge branch 'bugs' into 'main'
Various fixes

Closes #941, #969, #981, #966 et #965

See merge request framasoft/mobilizon!1141
2021-12-13 17:32:09 +00:00
Thomas Citharel 9e3b6ec419
Reduce package expiration to two days
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:59:54 +01:00
Thomas Citharel 44cd4129bb
Update translations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:45:29 +01:00
Thomas Citharel 9e8e2a97d1
Fix group members pagination on admin group profile view
Closes #965

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:39:02 +01:00
Thomas Citharel a481413153
Handle groups/profiles/users not found in admin
Closes #966

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:33:38 +01:00
Thomas Citharel eb9b9d8f69
Fix first day of week not depending on locale
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:33:37 +01:00
Thomas Citharel 7771b27b55
Allow to filter user memberships and group memberships (contacts=) on
backend side

Closes #981 #969

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:33:36 +01:00
Thomas Citharel daca9d71e7
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 17:33:36 +01:00
Thomas Citharel 305f53cb03
Fix text overflow when a link is too long in event mobile view
Closes #941

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-12-13 10:43:32 +01:00
Thomas Citharel e624671da1 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1140
2021-12-10 12:23:54 +00:00
Tykayn b579379582 upgrade yarn 2021-12-10 11:30:36 +01:00
Tykayn 780971f19c config export 2021-12-10 11:22:27 +01:00
Jiri Podhorecky 8a36999121 Translated using Weblate (Czech)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2021-12-10 02:26:28 +01:00
Jiri Podhorecky eb9268be49 Translated using Weblate (Czech)
Currently translated at 100.0% (204 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2021-12-10 02:26:28 +01:00
Jiri Podhorecky 2a2124a251 Translated using Weblate (Czech)
Currently translated at 100.0% (1255 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-10 02:26:28 +01:00
Jiri Podhorecky c9f0907d59 Translated using Weblate (Czech)
Currently translated at 97.6% (1226 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-10 01:26:10 +01:00
Jiri Podhorecky 9984daee1f Translated using Weblate (Czech)
Currently translated at 95.3% (1197 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-10 00:35:51 +01:00
Jiri Podhorecky 50176ba5c3 Translated using Weblate (Czech)
Currently translated at 95.2% (1195 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-10 00:02:37 +01:00
Jiri Podhorecky f27cf520d3 Translated using Weblate (Czech)
Currently translated at 93.7% (1176 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-09 23:38:57 +01:00
Jiri Podhorecky 3a35ce8668 Translated using Weblate (Czech)
Currently translated at 90.0% (1130 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-09 22:45:00 +01:00
Thomas Frenzel bfac39f954 Translated using Weblate (German)
Currently translated at 95.3% (1197 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-12-09 21:27:19 +01:00
Jiri Podhorecky f7e07e366f Translated using Weblate (Czech)
Currently translated at 87.4% (1097 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-09 21:27:18 +01:00
Jiri Podhorecky c1571e11e6 Translated using Weblate (Czech)
Currently translated at 100.0% (296 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-09 20:12:09 +01:00
Thomas Frenzel 1c619a309e Translated using Weblate (German)
Currently translated at 94.9% (1191 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-12-09 20:12:09 +01:00
Jiri Podhorecky 626974595b Translated using Weblate (Czech)
Currently translated at 84.3% (1058 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-09 20:12:08 +01:00
Jiri Podhorecky dae0bd54a0 Translated using Weblate (Czech)
Currently translated at 90.2% (267 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-09 19:44:10 +01:00
Thomas Frenzel e27390f289 Translated using Weblate (German)
Currently translated at 94.8% (1190 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-12-09 19:44:10 +01:00
Jiri Podhorecky 00ed9c2f3e Translated using Weblate (Czech)
Currently translated at 85.4% (253 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-09 19:17:43 +01:00
Jiri Podhorecky de7375a970 Translated using Weblate (Czech)
Currently translated at 85.1% (252 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-09 18:58:13 +01:00
Thomas Citharel d7bad319ab Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1139
2021-12-09 16:20:29 +00:00
Jiri Podhorecky 5398d61561 Translated using Weblate (Czech)
Currently translated at 83.5% (1048 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-09 16:58:16 +01:00
Tykayn 8b9b1f7acc Merge branch 'chapril' of https://forge.april.org/Chapril/mobilizon.chapril.org-mobilizon into chapril 2021-12-09 16:02:54 +01:00
Tykayn fa372387aa Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md#upgrading-from-13-to-20) file as well.
- Added possibility to follow groups and be notified from new upcoming events
 - Export list of participants to CSV, `PDF` and `ODS`
 - Allow to set timezone for an event. The timezone is automatically defined from the address if one is defined. If the event timezone is different than the user's current one, a toggle is shown to switch between the two.
 - Added initial support for Right To Left languages (such as arabic) and [BiDi](https://en.wikipedia.org/wiki/Bidirectional_text)
 - Group followers and members get an notification email by default when a group publishes a new event (subject to activity notification settings)
 - Group admins can now approve or deny new memberships
 - Build releases in `arm` and `arm64` format in addition to `amd64`
 - Build Docker images in `arm` and `arm64` format in addition to `amd64`
 - Added possibility to indicate the event is fully online
 - Added possibility to search only for online events
 - Added possibility to search only in past events
 - Detect event, comments and posts languages automatically. Allows setting language
 - Allow to change an user's password through the users.modify mix task
 - Add instance setting so that only the admin can create groups
 - Add instance setting so that only groups can create events
 - Added JSON-LD metadata about the event in emails
 - Added a quick link to email notification settings at the bottom of emails
 - Allow to access Mobilizon with a specific language directly by using `https://instance.tld/lang` where `lang` is a language supported by Mobilizon
 - Added organizer actor name (profile or group) in the icalendar export
 - Add initial support for federation with Gancio
 
 - Multiple UI improvements, including post, event and participation cards, discussions and emails. The « My Events » page was also redesigned to allow showing events from your groups.
 - Various accessibility improvements
 - Event update notification is send to participants ~30 minutes after the event update, so that successive edits are throttled.
 - Event, post and comments titles and content now have expose their detected language in HTML, for improved screen reader experience
 - Delete current actor ID as well from local storage when unlogging
 - Show a default text for instance contact in default terms text when no instance contact is set
 - Only show locatecontrol button in leaflet map when we can do geolocation
 - Disable push column in notification settings when push is not available
 - Show actual language instead of language code in Users admin view
 - Empty old & new passwords fields when successful password change
 - Don't link to the group page from admin when actor is suspended
 - Warn participants when the event organizer is suspended (and therefore the event cancelled)
 - Improve metadata on public page
 - Make sure some event action pages (participate remotely or without an account) don't get indexed by search engines
 - Only send `Tombstone` element in `Delete` activities, not the whole previous deleted element.
 - Make sure `Delete` activity are send correctly to everyone
 - Only add address and tags to event icalendar export if they exist
 - `master` branch has been renamed to `main`
 - Mention following groups on the registration page
 - Add missing group name to activity notifications
 - Warn while registering and logging when the email contains uppercase characters
 - Improve json-ld metadata on event live streams
 - Add "eventAttendanceMode" to JSON-ld schema.org event representation
 - Improve sending pending participation notifications
 - Add "formerType" and "delete" attributes on Tombstones ActivityPub objects representation
 - Improve MyEvents page description text
 
 - Support for Elixir < 1.12 and OTP < 22
 
 - Fix tags autocomplete
 - Fix config onboarding after LDAP initial connexion
 - Fix events pagination on tags page
 - Fixed deduplicated files from orphan media being deleted as well
 - Fix deleting own account
 - Fix search returning user profiles instead of only groups
 - Fix federating geo coordinates
 - Fix an issue with group activity items when moving resources
 - Fix an issue with Identity Picker
 - Fix an issue with TagInput
 - Fix an issue when leaving a group
 - Fix admin settings edition
 - Fix an issue when showing public page of suspended group
 - Removed non existing page (`/about/mobilizon`) from sitemap
 - Fix action logs containing group suspension events
 - Fixed group physical address not exposed to ActivityPub
 - Release front-end files are no longer in duplicate
 - Only show datetime timezone toggle on event if the timezone offset is different from our own
 - Fix error when determining audience for Discussion when deleting a comment
 - Fix a couple of accessibility issues
 - Limit to acceptable tags when pasting raw HTML into comment fields on front-end
 - Fixed group map display
 - Fixed updating group physical address
 - Allow group members to access group drafts
 - Improve group refreshment workflow
 - Fixed date signature generation for federation
 - Fixed an issue when duplicating a group event from another profile
 - Fixed event metadata not saved on eventcreation
 - Use a different pagination parameter for searched events and featured events on search page
 - Fixed creating group activities when creating events with some fields
 - Move release package at correct path for CI upload
 - Fixed event contacts that were not exposed and fetched over federation
 - Don't sign fetch when fetching actor for a given signature
 - Some various HTTP signatures issues
 - Fixed actor AP representation of avatar
 - Handle errors when fetching actor pictures
 - Fixed sending group events to followers on Mastodon
 - Fixed actors avatars and banners being deleted if the same file was also an orphan media
 - Fix spacing in organizer picker
 - Increase number of close events and follow group events
 - Fix accessing user profile in admin section
 - Set initial values for some EventMetadata elements, fixing submitting them right away with no value
 - Avoid giving an error page if the apollo futureParticipations query is undefined
 - Fixed path to exports in production
 - Fixed padding below truncated title of event cards
 - Fixed exports that weren't enabled in Docker
 - Fixed error page when event end date is null
 - Fixed event language not being allowed to be null
 
 - Fixed private messages sent as event replies from Mastodon that were shown publically as public comments. They are now discarded.
 
 - Czech
 - Gaelic
 - German
 - Hungarian
 - Indonesian
 - Norwegian Nynorsk
 - Occitan
 - Persian
 - Portuguese (Brazil)
 - Russian
 - Slovenian
 - Spanish
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEExMITpfxOHHCvHn8FoGG53eDKB3MFAmGcqEMACgkQoGG53eDK
 B3NlaA/8DoAi7WtC+//xJn8tRSP04PuTRDi2+9/D9a6gjTsiPXDZdb7LtEHuCg1H
 PXsHNQOTafUM/T7b7XTGmKOST3Sz2kw4eKJArCyF+NuvCwiO/Iw/v1wev2Mo8vvC
 eDBbMkfiCnMHcytqheeM9gvGuRyIOfgQ9uPk54snfa9a+SGELR5XDRKhwBlGAs6i
 nkUPbOB72oCou79HZ6CjyLTG6CoWUVsheuvAEhYw52e5JlWSJb9yOUdnOYUV1sr6
 OzLct996Z3IOQX4ToaQ+Re99tOaEyqO98aHsv+Wbz128sku0WrfseKn9zi3PL6cF
 LYjtZ9+0dwdNi3MfgKoEoWJaMlN3+6WUw/blcVP+6b6Ibn5YV/HkVacke/rGoAry
 oiEjP4HFKnvT83dTBn+LRcU6MY3MrZsarjUACjcKIwpTiylw9gaqA0i7dPBdW35p
 Q4c1gIh1Q/aE5OKCxXGLrg6s1SNZ754cAyEVo85UnF8Iu4wiaY++ImvyG8xIoOWf
 vQuya3LcDT8Gj9KY/LWMrVT8LJ2ij5t8oRMFLIHLlfiWbq05m6QaBIWr5sLjLO/N
 w2N1//ZHNM3sJNl0bZgc9g4lhcdj52VhOcHLot4fdcg5RTektCK0ky5uTD4WJ3GP
 keihAR8ZtFLaiAQ+XN6ng3IhrgQcpIdJBLlHzgFBx2rTBy8a0Tw=
 =jyrf
 -----END PGP SIGNATURE-----

Merge tag '2.0.0' into chapril

Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md#upgrading-from-13-to-20) file as well.

- Added possibility to follow groups and be notified from new upcoming events
- Export list of participants to CSV, `PDF` and `ODS`
- Allow to set timezone for an event. The timezone is automatically defined from the address if one is defined. If the event timezone is different than the user's current one, a toggle is shown to switch between the two.
- Added initial support for Right To Left languages (such as arabic) and [BiDi](https://en.wikipedia.org/wiki/Bidirectional_text)
- Group followers and members get an notification email by default when a group publishes a new event (subject to activity notification settings)
- Group admins can now approve or deny new memberships
- Build releases in `arm` and `arm64` format in addition to `amd64`
- Build Docker images in `arm` and `arm64` format in addition to `amd64`
- Added possibility to indicate the event is fully online
- Added possibility to search only for online events
- Added possibility to search only in past events
- Detect event, comments and posts languages automatically. Allows setting language
- Allow to change an user's password through the users.modify mix task
- Add instance setting so that only the admin can create groups
- Add instance setting so that only groups can create events
- Added JSON-LD metadata about the event in emails
- Added a quick link to email notification settings at the bottom of emails
- Allow to access Mobilizon with a specific language directly by using `https://instance.tld/lang` where `lang` is a language supported by Mobilizon
- Added organizer actor name (profile or group) in the icalendar export
- Add initial support for federation with Gancio

- Multiple UI improvements, including post, event and participation cards, discussions and emails. The « My Events » page was also redesigned to allow showing events from your groups.
- Various accessibility improvements
- Event update notification is send to participants ~30 minutes after the event update, so that successive edits are throttled.
- Event, post and comments titles and content now have expose their detected language in HTML, for improved screen reader experience
- Delete current actor ID as well from local storage when unlogging
- Show a default text for instance contact in default terms text when no instance contact is set
- Only show locatecontrol button in leaflet map when we can do geolocation
- Disable push column in notification settings when push is not available
- Show actual language instead of language code in Users admin view
- Empty old & new passwords fields when successful password change
- Don't link to the group page from admin when actor is suspended
- Warn participants when the event organizer is suspended (and therefore the event cancelled)
- Improve metadata on public page
- Make sure some event action pages (participate remotely or without an account) don't get indexed by search engines
- Only send `Tombstone` element in `Delete` activities, not the whole previous deleted element.
- Make sure `Delete` activity are send correctly to everyone
- Only add address and tags to event icalendar export if they exist
- `master` branch has been renamed to `main`
- Mention following groups on the registration page
- Add missing group name to activity notifications
- Warn while registering and logging when the email contains uppercase characters
- Improve json-ld metadata on event live streams
- Add "eventAttendanceMode" to JSON-ld schema.org event representation
- Improve sending pending participation notifications
- Add "formerType" and "delete" attributes on Tombstones ActivityPub objects representation
- Improve MyEvents page description text

- Support for Elixir < 1.12 and OTP < 22

- Fix tags autocomplete
- Fix config onboarding after LDAP initial connexion
- Fix events pagination on tags page
- Fixed deduplicated files from orphan media being deleted as well
- Fix deleting own account
- Fix search returning user profiles instead of only groups
- Fix federating geo coordinates
- Fix an issue with group activity items when moving resources
- Fix an issue with Identity Picker
- Fix an issue with TagInput
- Fix an issue when leaving a group
- Fix admin settings edition
- Fix an issue when showing public page of suspended group
- Removed non existing page (`/about/mobilizon`) from sitemap
- Fix action logs containing group suspension events
- Fixed group physical address not exposed to ActivityPub
- Release front-end files are no longer in duplicate
- Only show datetime timezone toggle on event if the timezone offset is different from our own
- Fix error when determining audience for Discussion when deleting a comment
- Fix a couple of accessibility issues
- Limit to acceptable tags when pasting raw HTML into comment fields on front-end
- Fixed group map display
- Fixed updating group physical address
- Allow group members to access group drafts
- Improve group refreshment workflow
- Fixed date signature generation for federation
- Fixed an issue when duplicating a group event from another profile
- Fixed event metadata not saved on eventcreation
- Use a different pagination parameter for searched events and featured events on search page
- Fixed creating group activities when creating events with some fields
- Move release package at correct path for CI upload
- Fixed event contacts that were not exposed and fetched over federation
- Don't sign fetch when fetching actor for a given signature
- Some various HTTP signatures issues
- Fixed actor AP representation of avatar
- Handle errors when fetching actor pictures
- Fixed sending group events to followers on Mastodon
- Fixed actors avatars and banners being deleted if the same file was also an orphan media
- Fix spacing in organizer picker
- Increase number of close events and follow group events
- Fix accessing user profile in admin section
- Set initial values for some EventMetadata elements, fixing submitting them right away with no value
- Avoid giving an error page if the apollo futureParticipations query is undefined
- Fixed path to exports in production
- Fixed padding below truncated title of event cards
- Fixed exports that weren't enabled in Docker
- Fixed error page when event end date is null
- Fixed event language not being allowed to be null

- Fixed private messages sent as event replies from Mastodon that were shown publically as public comments. They are now discarded.

- Czech
- Gaelic
- German
- Hungarian
- Indonesian
- Norwegian Nynorsk
- Occitan
- Persian
- Portuguese (Brazil)
- Russian
- Slovenian
- Spanish
2021-12-09 15:51:26 +01:00
Jiri Podhorecky d315c75926 Translated using Weblate (Czech)
Currently translated at 80.4% (238 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-09 02:11:32 +01:00
Jiri Podhorecky fa0885b8dd Translated using Weblate (Czech)
Currently translated at 79.1% (993 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-09 02:11:31 +01:00
Jiri Podhorecky d8fdd3aaf9 Translated using Weblate (Czech)
Currently translated at 77.2% (969 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-09 00:45:22 +01:00
Jiri Podhorecky aeecc4b140 Translated using Weblate (Czech)
Currently translated at 53.3% (669 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-08 18:40:05 +01:00
Luka Filipović eb540dfaa3 Translated using Weblate (Croatian)
Currently translated at 75.6% (950 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2021-12-08 18:10:01 +01:00
Jiri Podhorecky 4fd1ebefa6 Translated using Weblate (Czech)
Currently translated at 52.9% (665 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-08 18:09:59 +01:00
Thomas Citharel 1d912568ac Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1138
2021-12-08 12:46:20 +00:00
Jiri Podhorecky 266055ff48 Translated using Weblate (Czech)
Currently translated at 26.6% (334 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-08 12:18:56 +01:00
Thomas Citharel d32cc1e0d9 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1137
2021-12-08 07:55:52 +00:00
Luka Filipović 2067422f3c Translated using Weblate (Croatian)
Currently translated at 71.7% (900 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2021-12-08 05:59:52 +01:00
Jiri Podhorecky 2abab8d25f Translated using Weblate (Czech)
Currently translated at 97.3% (74 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2021-12-08 05:59:47 +01:00
Jiri Podhorecky b7d4885ce6 Translated using Weblate (Czech)
Currently translated at 97.0% (198 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2021-12-08 05:59:46 +01:00
Jiri Podhorecky e47c6da569 Translated using Weblate (Czech)
Currently translated at 66.5% (197 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-08 05:59:46 +01:00
Thomas Citharel 9c657ac571 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1136
2021-12-07 14:49:56 +00:00
Jiri Podhorecky f0fbf20f5b Translated using Weblate (Czech)
Currently translated at 19.7% (15 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2021-12-07 15:27:11 +01:00
Marco Ciampa a41919774c Translated using Weblate (Esperanto)
Currently translated at 1.8% (23 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/eo/
2021-12-07 15:27:10 +01:00
Jiri Podhorecky 611750f44c Translated using Weblate (Czech)
Currently translated at 16.1% (33 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2021-12-07 15:27:10 +01:00
deadmorose 8c1c79ad6c Translated using Weblate (Russian)
Currently translated at 100.0% (296 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/ru/
2021-12-07 15:27:09 +01:00
Jiri Podhorecky 27edb05d5e Translated using Weblate (Czech)
Currently translated at 25.3% (75 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-07 15:27:09 +01:00
Thomas Frenzel 25bd0a1ad5 Translated using Weblate (German)
Currently translated at 94.4% (1185 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-12-07 15:27:09 +01:00
Thomas Citharel cfb2226e6c Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1135
2021-12-06 08:33:28 +00:00
Luka Filipović 331269778b Translated using Weblate (Croatian)
Currently translated at 61.8% (776 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2021-12-06 03:36:51 +01:00
Jiri Podhorecky a977d7f6d6 Translated using Weblate (Czech)
Currently translated at 10.5% (8 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2021-12-05 05:32:01 +01:00
Jiri Podhorecky af6e71d8e6 Translated using Weblate (Czech)
Currently translated at 16.8% (50 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2021-12-05 05:32:01 +01:00
Thomas Frenzel 2b0d5d0ef5 Translated using Weblate (German)
Currently translated at 93.7% (1176 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-12-05 05:20:18 +01:00
Jiri Podhorecky 422d380a6d Translated using Weblate (Czech)
Currently translated at 2.6% (2 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2021-12-04 02:43:28 +01:00
Jiri Podhorecky a4ffddd30b Translated using Weblate (Czech)
Currently translated at 7.8% (16 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2021-12-04 02:43:28 +01:00
Jiri Podhorecky 55f6a57c81 Translated using Weblate (Czech)
Currently translated at 24.3% (306 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-12-04 02:43:27 +01:00
Thomas Citharel 935a4bb34f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1134
2021-12-03 08:30:43 +00:00
Luka Filipović d86830bb1c Translated using Weblate (Croatian)
Currently translated at 52.5% (659 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2021-12-03 02:07:22 +01:00
Thomas Citharel 821fd3cdf0 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1133
2021-12-01 17:36:45 +00:00
Luka Filipović 80e3e354d8 Translated using Weblate (Croatian)
Currently translated at 43.9% (552 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2021-12-01 17:58:47 +01:00
Quentin PAGÈS aed259e901 Translated using Weblate (Occitan)
Currently translated at 71.1% (893 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2021-12-01 17:58:37 +01:00
Thorsten Panknin 5e97361045 Translated using Weblate (German)
Currently translated at 92.9% (1166 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-12-01 17:58:37 +01:00
Thomas Citharel 41e99aa82f Merge branch 'bugs' into 'main'
Fix position of tentative tag on EventCard

See merge request framasoft/mobilizon!1132
2021-11-30 11:14:47 +00:00
Thomas Citharel 67ee95f81e
Fix position of tentative tag on EventCard
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-30 11:30:38 +01:00
Thomas Citharel 52343ea5cf Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1131
2021-11-30 07:09:33 +00:00
Luka Filipović 798ee0b6c9 Translated using Weblate (Croatian)
Currently translated at 25.9% (326 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2021-11-30 05:39:20 +01:00
Mostafa Ahangarha 24ab288e45 Translated using Weblate (Persian)
Currently translated at 12.9% (162 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fa/
2021-11-30 05:39:08 +01:00
Quentin PAGÈS 11c9831159 Translated using Weblate (Occitan)
Currently translated at 70.5% (885 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2021-11-30 05:39:06 +01:00
Luca E e597c21aea Translated using Weblate (German)
Currently translated at 92.8% (1165 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-11-30 05:39:03 +01:00
Thorsten Panknin 6662ef35de Translated using Weblate (German)
Currently translated at 92.8% (1165 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2021-11-30 05:39:03 +01:00
Thomas Citharel 1e1a145847 Merge branch 'bugs' into 'main'
Various bugs

Closes #962, #964, #960 et #963

See merge request framasoft/mobilizon!1130
2021-11-29 10:34:46 +00:00
Thomas Citharel 4f0ba30076
Update CHANGELOG.md
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 11:07:44 +01:00
Thomas Citharel 822a5604e0
Fix docker build scheduled job
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 11:07:44 +01:00
Thomas Citharel 1bfff235f3
Don't sign fetches to instance actor when refreshing their keys
Closes #963

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 11:07:44 +01:00
Thomas Citharel 07d679c4ab
Fix reject of already following instances
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 10:39:22 +01:00
Thomas Citharel f437eb842c
Download tz_world data for Docker image directly
Closes #960

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 10:39:21 +01:00
Thomas Citharel 3fb0265d2d
Refresh loggeduser information before the final step of onboarding
Otherwise we endup in a loop

Closes #964

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 10:39:20 +01:00
Thomas Citharel 21325a014d
Handle tzinfo being absent
Closes #962

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-29 10:39:19 +01:00
Thomas Citharel 402e3d97ea Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1129
2021-11-29 08:29:34 +00:00
David Clubb 2a02ae0a03 Translated using Weblate (Welsh)
Currently translated at 16.3% (205 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2021-11-27 19:25:20 +01:00
Luka Filipović 99e4f612b2 Translated using Weblate (Croatian)
Currently translated at 2.0% (26 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2021-11-27 06:31:01 +01:00
Luka Filipović 861a7afc95 Translated using Weblate (Croatian)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/hr/
2021-11-27 06:30:59 +01:00
Thomas Citharel 79252c4a5d Merge branch '2.0.1' into 'main'
2.0.1

Closes #959

See merge request framasoft/mobilizon!1128
2021-11-26 14:15:25 +00:00
Thomas Citharel e1216befa9
Bump version to 2.0.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 14:47:58 +01:00
Thomas Citharel 77207342a2
Update CHANGELOG.md for 2.0.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 14:47:58 +01:00
Thomas Citharel 3da846cdf9
Always show the cancelled status of an event
Closes #959

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 14:47:10 +01:00
Thomas Citharel 51afec1856
Fix new credo warnings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 14:47:10 +01:00
Thomas Citharel 52e624bb88
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 12:52:44 +01:00
Thomas Citharel f39d760cef
Update list of languages
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 12:43:43 +01:00
Thomas Citharel 0beea8e6c6 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1126
2021-11-26 10:18:51 +00:00
David Clubb 1f58915eb6 Translated using Weblate (Welsh)
Currently translated at 11.1% (140 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cy/
2021-11-26 10:13:12 +01:00
Jiri Podhorecky 22724f2446 Translated using Weblate (Czech)
Currently translated at 16.3% (205 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2021-11-26 10:13:12 +01:00
Luc Didry c9c1aa1452 Added translation using Weblate (Croatian) 2021-11-26 10:13:12 +01:00
Luc Didry a44bb963d2 Added translation using Weblate (Croatian) 2021-11-26 10:13:12 +01:00
Luc Didry dd925fd0f3 Added translation using Weblate (Croatian) 2021-11-26 10:13:12 +01:00
Luc Didry adc508e734 Added translation using Weblate (Croatian) 2021-11-26 10:13:12 +01:00
David Clubb 36ebb1b59d Added translation using Weblate (Welsh) 2021-11-26 10:13:12 +01:00
Thomas Citharel 50e9f463ed Merge branch 'bugs' into 'main'
Various bugs

Closes #956, #949, #954, #947 et #948

See merge request framasoft/mobilizon!1127
2021-11-26 09:12:57 +00:00
Thomas Citharel 566d84b957
Always focus the search field after results have been fetched
Close #948

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 09:45:55 +01:00
Thomas Citharel 22550a60e9
Put latest docker tag directly from CI
Also only do amd64 architecture for tags, not main

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 09:45:55 +01:00
Thomas Citharel 541d2f49c8
Add tzworld to the Docker image
Closes #947

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 09:45:55 +01:00
Thomas Citharel e81db2e643
Remove litepub context
Closes #954

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 09:45:54 +01:00
Thomas Citharel 3aa67dcc0b
Improve phrasing of UPGRADE.md for timezones location path
Closes #949

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 09:45:54 +01:00
Thomas Citharel 7b6ad312c0
Fix prettier config
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-26 09:45:54 +01:00
Thomas Citharel bfe833af7f
Remove cypress
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-25 16:46:21 +01:00
Thomas Citharel 477e8a5778
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-25 16:45:20 +01:00
Thomas Citharel be7905cebf
Update tiptap styles
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-25 16:32:10 +01:00
Thomas Citharel df364371a1
Replace @tiptap/starter-kit with indidual extensions
So that @tiptap/extension-code-block is removed

Closes #956

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-25 16:31:09 +01:00
Thomas Citharel 31d297172c Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1125
2021-11-25 07:17:52 +00:00
TA f5a777004c Translated using Weblate (Indonesian)
Currently translated at 57.3% (720 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/id/
2021-11-25 02:22:19 +01:00
Balázs Úr 6316fdb4a7 Translated using Weblate (Hungarian)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/hu/
2021-11-25 02:22:18 +01:00
GunChleoc 694e6dbe6b Translated using Weblate (Gaelic)
Currently translated at 99.8% (1253 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gd/
2021-11-25 02:22:18 +01:00
Balázs Úr 260bae4a93 Translated using Weblate (Hungarian)
Currently translated at 45.6% (135 of 296 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hu/
2021-11-25 02:22:17 +01:00
Balázs Úr d748e246cd Translated using Weblate (Hungarian)
Currently translated at 100.0% (204 of 204 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/hu/
2021-11-25 02:22:17 +01:00
Balázs Úr 4bebc8a7a2 Translated using Weblate (Hungarian)
Currently translated at 100.0% (1255 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hu/
2021-11-25 02:22:17 +01:00
Thomas Citharel eacdcee812 Merge branch 'activity-no-actor' into 'main'
Raise exception when object contains no actor

See merge request framasoft/mobilizon!1124
2021-11-24 17:19:45 +00:00
Thomas Citharel 4a2fe900cd
Refactor and test Mobilizon.Federation.ActivityPub.Utils.get_actor/1
Raise exception when object contains no actor. Friendica seems to send an Update activity with no actor

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-24 17:31:47 +01:00
Thomas Citharel bebc112148 Merge branch 'participant-pagination' into 'main'
Fix event participants pagination

See merge request framasoft/mobilizon!1123
2021-11-24 15:43:02 +00:00
Thomas Citharel baa8582df7
Fix event participants pagination
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-24 16:05:52 +01:00
Thomas Citharel ef954569f4 Merge branch 'order-upcoming-my-group-events' into 'main'
Order my group upcoming events by begins_on

See merge request framasoft/mobilizon!1122
2021-11-24 08:59:47 +00:00
Thomas Citharel 9aaea50f59
Order my group upcoming events by begins_on
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-24 09:28:59 +01:00
Thomas Citharel 147ea64483
Fix event language not allowed to be null
If the event language wasn't previously defined, it's not "und"

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-23 09:36:19 +01:00
Thomas Citharel 2b399ac1df
Bump version to 2.0.0
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-23 09:19:18 +01:00
Thomas Citharel c89ce87541
Add CHANGELOG entry for 2.0.0
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-23 09:19:18 +01:00
Thomas Citharel 921f4b577d Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1121
2021-11-23 07:55:55 +00:00
Jiri Podhorecky b3353dd4dc Translated using Weblate (Czech)
Currently translated at 1.3% (1 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/cs/
2021-11-23 08:54:39 +01:00
lu pa d66787aa66 Translated using Weblate (Spanish)
Currently translated at 100.0% (1255 of 1255 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2021-11-23 08:54:39 +01:00
Thomas Citharel 2d6fa93906 Merge branch 'bugs' into 'main'
Mobilizon 2.0.0-rc.3

Closes #936

See merge request framasoft/mobilizon!1120
2021-11-22 19:28:08 +00:00
Thomas Citharel 20eea58ac9
Bump version to 2.0.0-rc.3
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 20:01:41 +01:00
Thomas Citharel 0ec4218636
Update CHANGELOG.md for 2.0.0-rc.3
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 20:01:41 +01:00
Thomas Citharel d4dfba48d8
Fix error page when ends_on date is null
Closes #936

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 20:00:57 +01:00
Thomas Citharel a54b879c2d
Enable exports on Docker
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 19:38:53 +01:00
Thomas Citharel 233cf1026a
Improve the UPGRADE.md file
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 19:38:36 +01:00
Thomas Citharel 377b83e02d
Fix export being outputted in the wrong directory in release mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 18:43:59 +01:00
Thomas Citharel ed7e6e4d4b
Fix extra padding on event truncated title
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-22 18:31:13 +01:00
tykayn 716dba7998 - Fixed deduplicated files from orphan media being cleanup as well
- Fixed config onboarding after initial connection
 - Fixed current actor ID not being deleted from localstorage after logout
 - Fixed missing pagination on tag exploring page
 - Fixed deleting own account
 - Fixed user profiles that could show up in group search
 - Fixed accessibility issues on the account settings page
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEExMITpfxOHHCvHn8FoGG53eDKB3MFAmEjiCQACgkQoGG53eDK
 B3Nulg/+NEnJ6b7VO8AkJw7kOIhprOMX+5+lYVpE32tHy/VD+vtYVLNHiFO7OC8n
 Cr6PK5/BKfMxaH9akyUSP8CDDYqBhNOEDWOA9FRJ3LToYIxGoiIvc1Z7/8MUYdtj
 EXBBLrVFZURPvXQA/8dECou48ihig7hWEuX/1bmRCB263bTlFRzsfYEz2NwNKvok
 80AwUPjvu91q41k2ylIo3ZoDDHZ93xcj96oBYqdm/B/YBxj+1KbEdkPiBwENKDOi
 E1GTU4seF74JWloxrvqxnJr6tTkQqpJf8pC4A8reao9ymKDzPav36Cj/ZF7k4PgK
 NfWpEU9UbzYDuehfCGWDUT0SIwwbdE0OSQg1CeadRcWbGperXLsBlqrUezvymKY5
 +Xko4ABKmexKa8KxhqUTnGKfv6Jj3dSv8fRE5BAUivHwqbEgrk5xEg+y0IrHG1Ta
 bs9f2kaaO1t6OiOsB2y0KYd+kJF8VB+zIIj5nyc8t2mG3ga/ugVAsH46SG8EZ7pe
 04ZhZEUYbdxmm/osd2Qr8E/FRLN5jf+iUiKoLglOwwQphsEHUwukGYC9yvR+rnuh
 C8TDf0/TWXx2n+pARwNYPQrF9XLPWUkXaZj/9IW+QDnzx0o5QzBId7Lnx6YqeR9M
 YMCnMnzC6txEqe6N1P3ks6obUmbu9O7Y4eqFKOVi4xWZDP3QvsA=
 =6yrT
 -----END PGP SIGNATURE-----

Merge tag '1.3.2' into chapril

- Fixed deduplicated files from orphan media being cleanup as well
- Fixed config onboarding after initial connection
- Fixed current actor ID not being deleted from localstorage after logout
- Fixed missing pagination on tag exploring page
- Fixed deleting own account
- Fixed user profiles that could show up in group search
- Fixed accessibility issues on the account settings page
2021-09-03 10:29:15 +02:00
Tykayn faa0e2fd3e add more things 2021-09-01 12:54:11 +02:00
Tykayn 19863fc6bf lint all 2021-08-18 18:17:16 +02:00
Tykayn f66845efa4 - **Allow remote group moderators to edit group events and posts**
- **Allow events to hold metadata information, either preconfigured (live video URL, price details, accessibility informations,…), either through a free key/value form.** Metadata concerning live video feeds linking to PeerTube, YouTube & Twitch will benefit from iframe integration.
 - Add the possibility to create profiles and groups from CLI
 - Add the possibility to create a profile at the same time when creating an user from CLI
 - Add the possibility to create users with LDAP provider from CLI
 - Added back support for Docker-compose based development
 - Added rel=canonical and meta robots noindex tags to public pages from remote groups, in order to avoid them being indexed by Google
 - Allow members-restricted posts to be viewable by instance moderators (for moderation purposes)
 - Added a filter to resize pictures bigger than 1920x1080
 - Allow to deny registration by email or email domain
 - Added missing index on participants url
 - Added a loading wheel to show that events are loading on some views
 
 - Made server only listen on IPv4 in the install template
 - Improve identity picker to have a fixed height and allow filtering between your identities and group contacts
 - Leaflet map controls (zoom/locate) are now translatable
 - Show exactly 12 events on the Explore page
 
 - Fixed links contained in event & post description that didn't open in new tabs
 - Add back missing RSS/ical links on public group pages
 - Fixed links to Framacolibri forum
 - Fixed drafts and restricted visibility events & posts listed on group page
 - Fixed notification page on Safari
 - Fixed profile edition
 - Fixed Feed Token recreation
 - Fixed media cleaner job
 - Fixed english being always used as a language instead of the default one set when the request has no `Accept-Language` header (such as Google index bots)
 - Fixed Ecto validation errors not being translated and interpolated
 - Fixed <html> `lang` attribute not being properly set with the language currently used
 - Fixed federated posts having wrong visibility setting
 - Fixed unused CSS filter on homepage rendering wrong on Webkit
 - Fixed handling SSL being already started in LDAP connection
 - Fixed an Apollo cache issue when registrering your first profile
 - Fixed the Docker image missing ca-certificates
 - Fixed missing pagination on Explore page featured events
 - Fixed broken popup warning when editing an event
 - Fixed GraphQL Playground (again)
 - Fixed Coordinates mixmatch between latitude and longitude in iCalendar export and federation
 - Fixed token refreshment issues
 - Fixed search from 404 page
 
 - Catalan
 - Chinese (Traditional)
 - Finnish
 - French
 - Gaelic
 - Galician
 - German
 - Indonesian
 - Russian
 - Spanish
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEExMITpfxOHHCvHn8FoGG53eDKB3MFAmEbjvoACgkQoGG53eDK
 B3NOlhAAsAg9L5KFrbsxGtUDL0tCZWtOZXub9YBdeXThykCGcvJleXYDi4FenQN7
 WYSi5gBGZTHJCbEy3AatkaraYV+w7oExB9dKj882iToLj7M16X4c+pWeZNgBt5zb
 oEf4CG/BvV0ICKn48khmsAQVbAPkm8k3Um7fELwfZ2pA5CKvHLyrD5VUnXaz5abV
 in46GDERPFUZ0cSXoozK0PwEP473KGlGWM8vXRkudLCm0aZzx9UwxdJFcvmDMMuK
 etVLiH/XlPyoE89LA0Vq0gUEozQrbAjaXAQCkiaftyKMpw0hda64rz80L4Hy/FS8
 RqNWVDvznrcRe7FmsKDzkgkBfk4ecero60MAE1N2rfJbwwYFVGSD1G2B/PckN0ss
 /4G2Dn61tn/zhBDNVerWRbaHg7cyIbxb92GVOmAJK5yvOG5qo6h8gwN2OzSLSjWG
 jTbIFgJ7KY9XVcFwdZ4VL95CglzM32irFbFh7kpx3MWVAYoeBDPcevE+q8zRyUCY
 jYbWLeTGWlNyEe+C5mXT9IrGt51yFIbsT6alst28H9pOyHZQnsjGzXRIYCn5nNne
 TTbkNG0fE5Pl1Xo40WaLcYJIWjU/2rwS9tyrWmcN5Ws5qg33mRdGKlU6AaSuGfkG
 QpGcclyrvsYl9bVX/XHWbJnAZUdm+qB59IHELY37dLYM2ASUk6w=
 =SXZE
 -----END PGP SIGNATURE-----

Merge tag '1.3.0' into chapril

- **Allow remote group moderators to edit group events and posts**
- **Allow events to hold metadata information, either preconfigured (live video URL, price details, accessibility informations,…), either through a free key/value form.** Metadata concerning live video feeds linking to PeerTube, YouTube & Twitch will benefit from iframe integration.
- Add the possibility to create profiles and groups from CLI
- Add the possibility to create a profile at the same time when creating an user from CLI
- Add the possibility to create users with LDAP provider from CLI
- Added back support for Docker-compose based development
- Added rel=canonical and meta robots noindex tags to public pages from remote groups, in order to avoid them being indexed by Google
- Allow members-restricted posts to be viewable by instance moderators (for moderation purposes)
- Added a filter to resize pictures bigger than 1920x1080
- Allow to deny registration by email or email domain
- Added missing index on participants url
- Added a loading wheel to show that events are loading on some views

- Made server only listen on IPv4 in the install template
- Improve identity picker to have a fixed height and allow filtering between your identities and group contacts
- Leaflet map controls (zoom/locate) are now translatable
- Show exactly 12 events on the Explore page

- Fixed links contained in event & post description that didn't open in new tabs
- Add back missing RSS/ical links on public group pages
- Fixed links to Framacolibri forum
- Fixed drafts and restricted visibility events & posts listed on group page
- Fixed notification page on Safari
- Fixed profile edition
- Fixed Feed Token recreation
- Fixed media cleaner job
- Fixed english being always used as a language instead of the default one set when the request has no `Accept-Language` header (such as Google index bots)
- Fixed Ecto validation errors not being translated and interpolated
- Fixed <html> `lang` attribute not being properly set with the language currently used
- Fixed federated posts having wrong visibility setting
- Fixed unused CSS filter on homepage rendering wrong on Webkit
- Fixed handling SSL being already started in LDAP connection
- Fixed an Apollo cache issue when registrering your first profile
- Fixed the Docker image missing ca-certificates
- Fixed missing pagination on Explore page featured events
- Fixed broken popup warning when editing an event
- Fixed GraphQL Playground (again)
- Fixed Coordinates mixmatch between latitude and longitude in iCalendar export and federation
- Fixed token refreshment issues
- Fixed search from 404 page

- Catalan
- Chinese (Traditional)
- Finnish
- French
- Gaelic
- Galician
- German
- Indonesian
- Russian
- Spanish
2021-08-18 15:48:10 +02:00
Tykayn 973ae96f1a - Improved list discussion items UI on the group panel
- Fixed 'unsafe-inline' being in CSP
 - Fixed group discussions with deleted comments
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEExMITpfxOHHCvHn8FoGG53eDKB3MFAmDfELkACgkQoGG53eDK
 B3N88BAAjJrjwqoR4L25n0waHxITI7fIn4cJokZlMs5n+kb4KhngakzU9bJ8p++H
 jZb5YCC6zLe4KKRwMvPeLpH1MD6NGya9xYtZr2ub40PxaNAIFiV/9/GJ/PS91ipS
 RaWGA67TtJN9oMWeOWnozRR5+gs831/t5wmxJxJmiMh5QXL9kGV1FQf/WIE9iU4u
 dvajcHAJBTyKJjXmoUtdifsJVc2QLH513l6/EX+9NggaJTRiSgRtJGLpOqZ9i5ax
 Bq9OmWhAGetwK/RGzbrmEn+mJ2XmtQ9Dk+LJ6dIaRhEZt1vPXia5AnfiOvovgVhi
 +RqRta2wT3YWSOIfRr7WnwNVsf9ygufSTa7idVZEx/4tiBSgE0R4+9nQLvhd9q1v
 +DQo+V9PIKUn0RIVVR2fa6I/W7viy6TuC2D1Faegf4GubeQNDqC6UuQwZkik0B2z
 Js9Lwpll/HHQk5fjBBzdH8ri6pLAtmSAmADTBqXmYhHhPxlYl7Mb68DlTp9Y7KBB
 GoG8JpIRMH1Z601VrDN2gu49BLd+v5gJrCxqClMwfT4iK09sudJS8Fl5CV3o7Xv1
 4XyYc+1k2vPjW9RXg6a+sbNndXESWF4fDCFM+5qwbLvasanW4uijDSDgD8er/pKd
 2IU3nneRcaZg1mwPwrIOciiafrxxNSOFUFOiCkJjb5EDY4cjAlQ=
 =AdSP
 -----END PGP SIGNATURE-----

Merge tag '1.2.3' into chapril

- Improved list discussion items UI on the group panel

- Fixed 'unsafe-inline' being in CSP
- Fixed group discussions with deleted comments
2021-07-16 22:45:10 +02:00
Tykayn 98bfe24fe3 lint all 2021-06-14 12:23:05 +02:00
Tykayn 4dafbca54b prettify 2021-06-14 12:19:24 +02:00
Tykayn 2b6233c283 Merge branch 'chapril' of ssh://forge.april.org:222/Chapril/mobilizon.chapril.org-mobilizon into chapril 2021-06-02 21:26:46 +02:00
Tykayn c82f8c5161 Merge tag '1.1.4' into chapril
19-05-2021

Fixes
-----

- Fixes rich media parsers, so that some resource links work again
- Fixes some depreciated calls that were removed in OTP24
- Fixes groups not being refreshed after joining a group
- Fixes the notice that is shown when joining a group that the content may not be available right away - because the group is remote - being shown everytime, even when the group is local
- Fixes OGP image not being defined for posts

Translations
------------

- French
- Galician
- Italian
2021-05-25 11:46:09 +02:00
tykayn 55adf7b5a0 hop 2021-05-24 11:23:05 +02:00
tykayn 8e06e853b8 Merge branch 'chapril' of ssh://forge.april.org:222/Chapril/mobilizon.chapril.org-mobilizon into chapril 2021-05-24 10:36:17 +02:00
Tykayn 8a259c4c62 Merge tag '1.1.3' into chapril 2021-05-04 12:41:01 +02:00
Tykayn 78934c9234 Merge tag '1.1.2' into chapril 2021-04-29 16:02:14 +02:00
Tykayn 12045b7b21 Merge tag '1.1.1' into chapril 2021-04-29 16:02:08 +02:00
Tykayn 6d26952307 merge to version 1.1.0 2021-04-09 14:40:15 +02:00
Tykayn 74a3757e1e Merge tag '1.0.7' into chapril 2021-03-01 21:29:45 +01:00
Thomas Citharel c6590415a3 Fix accessing group event unlogged
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-02-19 17:12:36 +01:00
Tykayn 73bfac679a fix license 2021-02-19 15:50:01 +01:00
Tykayn 61b1235c97 Merge tag '1.0.6' into chapril 2021-02-19 15:33:36 +01:00
Tykayn 7eb95a1641 Merge tag '1.0.5' into chapril 2021-02-19 15:33:34 +01:00
Tykayn adbe90bc87 Merge tag '1.0.4' into chapril 2021-02-19 15:33:03 +01:00
tykayn 5bb6f21060 Merge tag '1.0.6' into chapril 2021-02-08 16:00:32 +01:00
tykayn 27331eb7db Merge tag '1.0.5' into chapril 2021-02-01 10:39:22 +01:00
tykayn fad649c8eb up homepage and footer 2021-01-21 11:24:58 +01:00
tykayn 247c76e038 Merge branch 'upstream_1.0.3' into chapril 2021-01-10 10:36:16 +01:00
tykayn 88ad804268 link in home and footer 2021-01-05 15:00:05 +01:00
Tykayn fa89c90c28 Merge branch 'chapril' of ssh://forge.april.org:222/Chapril/mobilizon.chapril.org-mobilizon into chapril 2020-12-17 12:43:11 +01:00
tykayn d3860eb81e change chapril link 2020-12-17 12:41:16 +01:00
tykayn 1f35ea213a add chapril link aside search bar
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2020-12-16 18:53:06 +01:00
tykayn 4e7d3aa157 hop img
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2020-12-16 18:51:24 +01:00
tykayn b9cfcfcfb5 long logo charil et lien chapril a coté de la recherche
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2020-12-16 18:32:37 +01:00
Tykayn 987add5308 Merge branch 'chapril' of ssh://forge.april.org:222/Chapril/mobilizon.chapril.org-mobilizon into chapril 2020-12-16 17:20:03 +01:00
Tykayn 0ded17fee2 picture for custom logo large 2020-12-16 15:31:32 +01:00
tykayn d9ec8da925 link to chapril in NavBar.vue 2020-12-15 19:19:33 +01:00
tykayn c9fc73ddbf favicon and bg color on main column 2020-12-06 15:54:47 +01:00
tykayn 529b7d48de style on my event list title 2020-12-06 11:07:41 +01:00
tykayn 12e327552d custom pictures 2020-12-06 10:50:37 +01:00
tykayn 229c16df3b clean all titles colors 2020-12-06 10:26:56 +01:00
tykayn f80bf34605 light background on subscription pages steps 2020-12-06 10:12:52 +01:00
tykayn 47ce4803f5 set custom logo chapril 2020-12-05 15:05:22 +01:00
tykayn b0bf280ee8 color set for chapril mobilizon 2020-12-05 15:04:26 +01:00
607 changed files with 97363 additions and 44289 deletions

66
.devcontainer/Dockerfile Normal file
View File

@ -0,0 +1,66 @@
# Update the VARIANT arg in docker-compose.yml to pick an Elixir version: 1.9, 1.10, 1.10.4
ARG VARIANT="1.12.3"
FROM elixir:${VARIANT}
# This Dockerfile adds a non-root user with sudo access. Update the “remoteUser” property in
# devcontainer.json to use it. More info: https://aka.ms/vscode-remote/containers/non-root-user.
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID
# Options for common package install script
ARG INSTALL_ZSH="true"
ARG UPGRADE_PACKAGES="true"
ARG COMMON_SCRIPT_SOURCE="https://raw.githubusercontent.com/microsoft/vscode-dev-containers/v0.209.6/script-library/common-debian.sh"
ARG COMMON_SCRIPT_SHA="d35dd1711454156c9a59cc41ebe04fbff681ca0bd304f10fd5b13285d0de13b2"
# Optional Settings for Phoenix
ARG PHOENIX_VERSION="1.6.2"
# [Optional] Setup nodejs
ARG NODE_SCRIPT_SOURCE="https://raw.githubusercontent.com/microsoft/vscode-dev-containers/main/script-library/node-debian.sh"
ARG NODE_SCRIPT_SHA="dev-mode"
ARG NODE_VERSION="none"
ENV NVM_DIR=/usr/local/share/nvm
ENV NVM_SYMLINK_CURRENT=true
ENV PATH=${NVM_DIR}/current/bin:${PATH}
# [Optional, Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none"
# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends curl ca-certificates 2>&1 \
&& curl -sSL ${COMMON_SCRIPT_SOURCE} -o /tmp/common-setup.sh \
&& ([ "${COMMON_SCRIPT_SHA}" = "dev-mode" ] || (echo "${COMMON_SCRIPT_SHA} */tmp/common-setup.sh" | sha256sum -c -)) \
&& /bin/bash /tmp/common-setup.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" \
#
# [Optional] Install Node.js for use with web applications
&& if [ "$NODE_VERSION" != "none" ]; then \
curl -sSL ${NODE_SCRIPT_SOURCE} -o /tmp/node-setup.sh \
&& ([ "${NODE_SCRIPT_SHA}" = "dev-mode" ] || (echo "${NODE_SCRIPT_SHA} */tmp/node-setup.sh" | sha256sum -c -)) \
&& /bin/bash /tmp/node-setup.sh "${NVM_DIR}" "${NODE_VERSION}" "${USERNAME}"; \
fi \
#
# Install dependencies
&& apt-get install -y build-essential \
#
# Clean up
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/* /tmp/common-setup.sh /tmp/node-setup.sh
RUN su ${USERNAME} -c "mix local.hex --force \
&& mix local.rebar --force \
&& mix archive.install --force hex phx_new ${PHOENIX_VERSION}"
RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends cmake webp bash libncurses6 git python3 inotify-tools \
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
# [Optional] Uncomment this line to install additional package.
# RUN mix ...

View File

@ -0,0 +1,44 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.209.6/containers/elixir-phoenix-postgres
{
"name": "Elixir, Phoenix, Node.js & PostgresSQL (Community)",
"dockerComposeFile": "docker-compose.yml",
"service": "elixir",
"workspaceFolder": "/workspace",
// Set *default* container specific settings.json values on container create.
"settings": {
"sqltools.connections": [{
"name": "Container database",
"driver": "PostgreSQL",
"previewLimit": 50,
"server": "localhost",
"port": 5432,
"database": "postgres",
"username": "postgres",
"password": "postgres"
}]
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"jakebecker.elixir-ls",
"mtxr.sqltools",
"mtxr.sqltools-driver-pg"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [4000, 4001, 5432],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "mix deps.get",
// "runArgs": ["--userns=keep-id", "--privileged"],
// "containerUser": "vscode",
// "containerEnv": {
// "HOME": "/home/vscode",
// },
// "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,Z",
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}

View File

@ -0,0 +1,46 @@
version: "3.8"
services:
elixir:
build:
context: .
dockerfile: Dockerfile
args:
# Elixir Version: 1.9, 1.10, 1.10.4, ...
VARIANT: "1.13.1"
# Phoenix Version: 1.4.17, 1.5.4, ...
PHOENIX_VERSION: "1.6.6"
# Node Version: 10, 11, ...
NODE_VERSION: "16"
volumes:
- ..:/workspace:z
# Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
network_mode: service:db
# Overrides default command so things don't shut down after the process ends.
command: sleep infinity
environment:
MOBILIZON_INSTANCE_NAME: My Mobilizon Instance
MOBILIZON_INSTANCE_HOST: localhost
MOBILIZON_INSTANCE_HOST_PORT: 4000
MOBILIZON_INSTANCE_PORT: 4000
MOBILIZON_INSTANCE_EMAIL: noreply@mobilizon.me
MOBILIZON_INSTANCE_REGISTRATIONS_OPEN: "true"
MOBILIZON_DATABASE_PASSWORD: postgres
MOBILIZON_DATABASE_USERNAME: postgres
MOBILIZON_DATABASE_DBNAME: mobilizon
MOBILIZON_DATABASE_HOST: db
db:
image: postgis/postgis:latest
restart: unless-stopped
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: app
volumes:
postgres-data: null

View File

@ -19,7 +19,6 @@ MOBILIZON_REPLY_EMAIL=contact@mobilizon.lan
# Email settings
MOBILIZON_SMTP_SERVER=localhost
MOBILIZON_SMTP_PORT=25
MOBILIZON_SMTP_HOSTNAME=localhost
MOBILIZON_SMTP_USERNAME=noreply@mobilizon.lan
MOBILIZON_SMTP_PASSWORD=password
MOBILIZON_SMTP_SSL=false

View File

@ -1,3 +1,4 @@
[
inputs: ["{mix,.formatter}.exs", "{config,lib,test,priv}/**/*.{ex,exs}"]
plugins: [Phoenix.LiveView.HTMLFormatter],
inputs: ["{mix,.formatter}.exs", "{config,lib,test,priv}/**/*.{ex,exs,heex}"]
]

View File

@ -59,8 +59,11 @@ lint-elixir:
- mix deps.get
script:
- export EXITVALUE=0
- git fetch origin ${CI_DEFAULT_BRANCH}
- TARGET_SHA1=$(git show-ref -s ${CI_DEFAULT_BRANCH})
- echo "$TARGET_SHA1"
- mix format --check-formatted --dry-run || export EXITVALUE=1
- mix credo --strict -a || export EXITVALUE=1
- mix credo diff --from-git-merge-base $TARGET_SHA1 --strict -a || export EXITVALUE=1
- mix sobelow --config || export EXITVALUE=1
- exit $EXITVALUE
@ -107,7 +110,7 @@ deps:
exunit:
stage: test
services:
- name: postgis/postgis:13-3.1
- name: postgis/postgis:14-3.2
alias: postgres
variables:
MIX_ENV: test
@ -180,7 +183,7 @@ pages:
.docker: &docker
stage: docker
image: docker:stable
image: docker:20.10.12
variables:
DOCKER_TLS_CERTDIR: "/certs"
DOCKER_HOST: tcp://docker:2376
@ -188,13 +191,13 @@ pages:
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
DOCKER_DRIVER: overlay2
services:
- docker:stable-dind
- docker:20.10.12-dind
cache: {}
before_script:
# Install buildx
- wget https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64
- wget https://github.com/docker/buildx/releases/download/v0.8.1/buildx-v0.8.1.linux-amd64
- mkdir -p ~/.docker/cli-plugins/
- mv buildx-v0.6.3.linux-amd64 ~/.docker/cli-plugins/docker-buildx
- mv buildx-v0.8.1.linux-amd64 ~/.docker/cli-plugins/docker-buildx
- chmod a+x ~/.docker/cli-plugins/docker-buildx
# Create env
- docker context create tls-environment
@ -205,16 +208,8 @@ pages:
# Login to DockerHub
- mkdir -p ~/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$CI_REGISTRY_AUTH\",\"email\":\"$CI_REGISTRY_EMAIL\"}}}" > ~/.docker/config.json
script:
- >
docker buildx build
--push
--platform linux/amd64,linux/arm64,linux/arm
-t $DOCKER_IMAGE_NAME
-f docker/production/Dockerfile .
tags:
- "privileged"
timeout: 3 hours
build-docker-main:
<<: *docker
@ -222,8 +217,8 @@ build-docker-main:
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
- if: '$CI_PIPELINE_SOURCE == "schedule"'
variables:
DOCKER_IMAGE_NAME: framasoft/mobilizon:main
script:
- docker buildx build --push --platform linux/amd64 -t framasoft/mobilizon:main -f docker/production/Dockerfile .
build-docker-tag:
<<: *docker
@ -231,14 +226,25 @@ build-docker-tag:
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
- if: $CI_COMMIT_TAG
variables:
DOCKER_IMAGE_NAME: framasoft/mobilizon:$CI_COMMIT_TAG
timeout: 3 hours
script:
- >
docker buildx build
--push
--platform linux/amd64,linux/arm64,linux/arm
-t framasoft/mobilizon:$CI_COMMIT_TAG
-t framasoft/mobilizon:latest
-f docker/production/Dockerfile .
# Packaging app for amd64
package-app:
image: mobilizon/buildpack:1.13.4-erlang-24.3.3-debian-buster
stage: package
variables: &release-variables
MIX_ENV: "prod"
DEBIAN_FRONTEND: noninteractive
TZ: Etc/UTC
APP_ASSET: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_${ARCH}.tar.gz"
script: &release-script
- mix local.hex --force
- mix local.rebar --force
@ -254,7 +260,7 @@ package-app:
only:
- tags@framasoft/mobilizon
artifacts:
expire_in: 30 days
expire_in: 2 days
paths:
- ${APP_ASSET}
@ -272,7 +278,7 @@ package-app-dev:
# Packaging app for multi-arch
multi-arch-release:
stage: package
image: docker:stable
image: docker:20.10.12
variables:
DOCKER_TLS_CERTDIR: "/certs"
DOCKER_HOST: tcp://docker:2376
@ -280,14 +286,15 @@ multi-arch-release:
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
DOCKER_DRIVER: overlay2
APP_ASSET: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_${ARCH}.tar.gz"
OS: debian-buster
services:
- docker:stable-dind
- docker:20.10.12-dind
cache: {}
before_script:
# Install buildx
- wget https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64
- wget https://github.com/docker/buildx/releases/download/v0.8.1/buildx-v0.8.1.linux-amd64
- mkdir -p ~/.docker/cli-plugins/
- mv buildx-v0.6.3.linux-amd64 ~/.docker/cli-plugins/docker-buildx
- mv buildx-v0.8.1.linux-amd64 ~/.docker/cli-plugins/docker-buildx
- chmod a+x ~/.docker/cli-plugins/docker-buildx
# Create env
- docker context create tls-environment
@ -303,7 +310,7 @@ multi-arch-release:
tags:
- "privileged"
artifacts:
expire_in: 30 days
expire_in: 2 days
paths:
- ${APP_ASSET}
parallel:
@ -319,7 +326,7 @@ multi-arch-release:
# Release
release-upload:
stage: upload
image: framasoft/yakforms-assets-deploy:latest
image: framasoft/upload-packages:latest
variables:
APP_ASSET: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_${ARCH}.tar.gz"
rules: *tag-rules

1
.ncignore Normal file
View File

@ -0,0 +1 @@
deps

View File

@ -8,5 +8,5 @@
out: "",
threshold: "medium",
ignore: ["Config.HTTPS", "Config.CSP"],
ignore_files: ["config/dev.1.secret.exs", "config/dev.2.secret.exs", "config/dev.3.secret.exs", "config/dev.secret.exs", "config/e2e.secret.exs", "config/prod.secret.exs", "config/test.secret.exs", "config/runtime.1.secret.exs", "config/runtime.2.secret.exs", "config/runtime.3.secret.exs", "config/runtime.exs"]
ignore_files: ["config/runtime.exs"]
]

View File

@ -1,12 +1,16 @@
5048AE33D6269B15E21CF28C6F545AB6
752C0E897CA81ACD81F4BB215FA5F8E4
23412CF16549E4E88366DC9DECF39071
81C1F600C5809C7029EE32DE4818CD7D
02CE4963DFD1B0D6D5C567357CAFFE97
155A1FB53DE39EC8EFCFD7FB94EA823D
73B351E4CB3AF715AD450A085F5E6304
BBACD7F0BACD4A6D3010C26604671692
6D4D4A4821B93BCFAC9CDBB367B34C4B
5674F0D127852889ED0132DC2F442AAB
1600B7206E47F630D94AB54C360906F0
2262742E5C8944D5BF6698EC61F5DE50
25BEE162A99754480967216281E9EF33
2A6F71CD6F1246F0B152C2376E2E398A
30552A09D485A6AA73401C1D54F63C21
52900CE4EE3598F6F178A651FB256770
6151F44368FC19F2394274F513C29151
765526195D4C6D770EAF4DC944A8CBF4
B2FF1A12F13B873507C85091688C1D6D
B9AF8A342CD7FF39E10CC10A408C28E1
C042E87389F7BDCFF4E076E95731AE69
C42BFAEF7100F57BED75998B217C857A
D11958E86F1B6D37EF656B63405CA8A4
F16F054F2628609A726B9FF2F089D484

2
.tool-versions Normal file
View File

@ -0,0 +1,2 @@
elixir 1.13.4-otp-24
erlang 24.3.3

View File

@ -1,9 +1,514 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 2.1.0 - 2022-05-16
### Added
- Added an event category field. Administrators can extend the pre-configured list of categories through configuration.
- Added possibility for administrators to have analytics (Matomo, Plausible supported) and error handling (Sentry supported) on front-end.
- Redesigned federation admin section with dedicated instance pages
- Allow to filter moderation reports by domain
- Added a button to go to past events of a group if it has no upcoming events
- Add Überauth CAS Strategy
- Add a CLI command to delete actors
### Changed
- Changed mailer library from Bamboo to Swoosh, should fix emails being considered spam. **Some configuration changes are required, see below.**
- Expose some fields to ActivityStreams event representation: `isOnline`, `remainingAttendeeCapacity` and `participantCount`
- Expose a new field to ActivityStreams group representation: `memberCount`
- Improve group creation errors feedback
- Only display locality in event card
- Stale groups are now excluded from group search
- Event default visibility is now set according to group privacy setting
- Remove Koena Connect button
- Hide the whole metadata block if group has no description
- Increase task timeout in Refresher to 60 seconds
- Allow webfinger to be fetched over http (not https) in dev mode
- Improve reactions when approving/rejecting an instance follow
- Improve instance admin view for mobile
- Allow to reject instance following
- Allow instance to have non-standard ports
- Add pagination to the instances list
- Eventually fetch actors in mentions
- Improve IdentityPicker, JoinGroupWithAccount and ActorInline components
- Various group and posts improvements
- Update schema.graphql file
- Add "Accept-Language" header to sentry request metadata
- Hide address blocks when address has no real data
- Remove obsolete attribute type="text/css" from <style> tags
- Improve actor cards integration
- Use upstream dependencies for Ueberauth providers
- Include ongoing events in search
- Send push notification into own task
- Add appropriate timeouts for Repo.transactions
- Add a proper error message when adding an instance follow that doesn't respond
- Allow the instance to be followed from Mastodon (through relays)
- Remove unused fragment from FETCH_PERSON GraphQL query
### Fixed
- Fixed actor refreshment being impossible
- Fixed ical export for undefined datetimes
- Fixed parsing links with hashtag characters
- Fixed fetching link details from Twitter
- Fixed Thunderbird accessing ICS feed endpoint with special `Accept` HTTP header
- Make sure every ICS/Feed caches are emptied when modifying entities
- Fixed time issues with DST changes
- Fixed group preview card not truncating description
- Fixed redirection after login
- Fixed user admin section showing button to confirm user when the user is already confirmed
- Fixed creating event from group view not always setting the group as organizer
- Fixed invalid addresses blocking event metadata preview rendering
- Fixed group deletion with comments that caused foreign key issues
- Fixed incoming Accept activities from participations we don't already have
- Fixed resources that didn't have metadata size limits
- Properly fallback to UTC when sending notifications and the user doesn't have a timezone setting set
- Fix posts creation
- Fix rejecting instance follow
- Fix pagination of group events
- Add proper fallback for when a TZ isn't registered
- Hide side of report modal on low width screens
- Fix Telegram Logo being replaced with Mastodon logo in ShareGroupModal
- Change URL for Mastodon Share Manager
- Fix receiving Flag activities on federated events
- Fix activity notifications by preloading user.activity_settings
- Fix text overflow on group card description
- Exclude tags with more than 40 characters from being extracted
- Avoid duplicate tags with different casing
- Fix invalid HTML (<div> inside <label>)
- Fix latest group not refreshing in admin section
- Add missing "relay@" part of federated address to follow
- Fix Ueberauth use of CSRF with session
- Fix being an administrator when using 3rd-party auth provider
- Make sure activity recipient can't be nil
- Make sure users can't create profiles or groups with non-valid patterns
- Add description field to address representation
- Make sure prompt show the correct message and not just "Continue?" in mix mode
- Make sure activity notification recaps can't be sent multiple times
- Fix group notification of new event being sent multiple times
- Fix links to group page in group membership emails and participation
- Fix clicking on map crashing the app
### Translations
- Arabic
- Basque
- Belarusian
- Bengali
- Catalan
- Chinese (Traditional)
- Croatian
- Czech
- Danish
- Dutch
- Esperanto
- Finnish
- French
- Gaelic
- Galician
- German
- Hebrew
- Hungarian
- Indonesian
- Italian
- Japanese
- Kabyle
- Kannada
- Norwegian Nynorsk
- Occitan
- Persian
- Polish
- Portuguese
- Portuguese (Brazil)
- Russian
- Slovenian
- Spanish
- Swedish
- Welsh
## 2.1.0-rc.6 - 2022-05-11
Changes since rc.5:
- Allow the instance to be followed from Mastodon (through relays)
- Make sure activity recipient can't be nil
- Make sure users can't create profiles or groups with non-valid patterns
- Add description field to address representation
- Make sure prompt show the correct message and not just "Continue?" in mix mode
- Add a CLI command to delete actors
- Make sure activity notification recaps can't be sent multiple times
- Fix group notification of new event being sent multiple times
- Fix links to group page in group membership emails and participation
- Fix clicking on map crashing the app
- Remove unused fragment from FETCH_PERSON GraphQL query
## 2.1.0-rc.5 - 2022-05-06
Changes since rc.4:
- Add appropriate timeouts for Repo.transactions
- Remove OS-specific packages
- Remove refresh instance triggers
- Add a proper error message when adding an instance follow that doesn't respond
## 2.1.0-rc.4 - 2022-05-03
Changes since rc.3:
- Use upstream dependencies for Ueberauth providers
- Fix Ueberauth use of CSRF with session
- Fix being an administrator when using 3rd-party auth provider
- Include ongoing events in search
- Send push notification into own task
- Add Überauth CAS Strategy
## 2.1.0-rc.3 - 2022-04-24
Changes since rc.2:
- Fix activity notifications by preloading user.activity_settings
- Add "Accept-Language" header to sentry request metadata
- Hide address blocks when address has no real data
- Fix text overflow on group card description
- Exclude tags with more than 40 characters from being extracted
- Avoid duplicate tags with different casing
- Fix invalid HTML (<div> inside <label>)
- Remove attribute type="text/css" from <style> tags
- Improve actor cards integration
- Fix latest group not refreshing in admin section
- Add missing "relay@" part of federated address to follow
## 2.1.0-rc.2 - 2022-04-20
Changes since rc.1:
- Hide the whole metadata block if group has no description
- Increase task timeout in Refresher to 60 seconds
- Allow webfinger to be fetched over http (not https) in dev mode
- Fix rejecting instance follow
- Allow instance to have non-standard ports
- Improve reactions when approving/rejecting an instance follow
- Improve instance admin view for mobile
- Allow to reject instance following
- Fix pagination of group events
- Add pagination to the instances list
- Upgrade deps
- Eventually fetch actors in mentions
- Add proper fallback for when a TZ isn't registered
- Improve IdentityPicker
- Hide side of report modal on low width screens
- Improve JoinGroupWithAccount component
- Various group and posts improvements
- Fix Telegram Logo being replaced with Mastodon logo in ShareGroupModal
- Change URL to Mastodon Share Manager
- Improve ActorInline component
- Avoid assuming we're on Debian-based in release build
- Fix receiving Flag activities on federated events
- Update schema.graphql file
## 2.1.0-rc.1 - 2022-04-18
Changes since beta.3:
- Fix posts creation
- Fix some typespecs
- Remove Koena Connect button
- Update dependencies
## 2.1.0-beta.3 - 2022-04-09
Changes since beta.2:
- Add Fedora and Alpine builds
## 2.1.0-beta.2 - 2022-04-08
Changes since beta.1 :
- Build release packages for several distributions (Debian Bullseye, Debian Buster, Ubuntu Focal, Ubuntu Bionic) because of libc version changes
## 2.1.0-beta.1 - 2022-04-07
### Added
- Added an event category field. Administrators can extend the pre-configured list of categories through configuration.
- Added possibility for administrators to have analytics (Matomo, Plausible supported) and error handling (Sentry supported) on front-end.
- Redesigned federation admin section with dedicated instance pages
- Allow to filter moderation reports by domain
- Added a button to go to past events of a group if it has no upcoming events
### Changed
- Changed mailer library from Bamboo to Swoosh, should fix emails being considered spam. **Some configuration changes are required, see below.**
- Expose some fields to ActivityStreams event representation: `isOnline`, `remainingAttendeeCapacity` and `participantCount`
- Expose a new field to ActivityStreams group representation: `memberCount`
- Improve group creation errors feedback
- Only display locality in event card
- Stale groups are now excluded from group search
- Event default visibility is now set according to group privacy setting
### Fixed
- Fixed actor refreshment being impossible
- Fixed ical export for undefined datetimes
- Fixed parsing links with hashtag characters
- Fixed fetching link details from Twitter
- Fixed Thunderbird accessing ICS feed endpoint with special `Accept` HTTP header
- Make sure every ICS/Feed caches are emptied when modifying entities
- Fixed time issues with DST changes
- Fixed group preview card not truncating description
- Fixed redirection after login
- Fixed user admin section showing button to confirm user when the user is already confirmed
- Fixed creating event from group view not always setting the group as organizer
- Fixed invalid addresses blocking event metadata preview rendering
- Fixed group deletion with comments that caused foreign key issues
- Fixed incoming Accept activities from participations we don't already have
- Fixed resources that didn't have metadata size limits
- Properly fallback to UTC when sending notifications and the user doesn't have a timezone setting set
### Translations
- Arabic
- Basque
- Belarusian
- Bengali
- Catalan
- Chinese (Traditional)
- Croatian
- Czech
- Danish
- Dutch
- Esperanto
- Finnish
- French
- Gaelic
- Galician
- German
- Hebrew
- Hungarian
- Indonesian
- Italian
- Japanese
- Kabyle
- Kannada
- Norwegian Nynorsk
- Occitan
- Persian
- Polish
- Portuguese
- Portuguese (Brazil)
- Russian
- Slovenian
- Spanish
- Swedish
- Welsh
## 2.0.2 - 2021-12-22
### Changed
- Improved handling of media file deletion
- Releases and Docker image are now using Elixir 1.13
### Fixed
- Fixed position of tentative tag on event cards
- Fixed text overflow when a link is too long in event mobile view
- Fixed filtering user own memberships and group members in event organizer & contacts picker
- Fixed first day of week not depending on locale in the datetime picker
- Fixed the admin page when a group/profile/user was not found
- Fixed group members pagination on admin group profile view
- Fixed admin edition of the instance's language
### Translations
- Croatian
- Czech
- Esperanto
- German
- Hebrew
- Occitan
- Persian
- Russian
- Spanish
## 2.0.1 - 2021-11-26
### Changed
- Remove litepub context
### Fixed
- Make sure my group upcoming events are ordered by their start date
- Fix event participants pagination
- Always focus the search field after results have been fetched
- Don't sign fetches to instance actor when refreshing their keys
- Fix reject of already following instances
- Added missing timezone data to the Docker image
- Replace @tiptap/starter-kit with indidual extensions, removing unneeded extensions that caused issues on old Firefox versions
- Better handling of Friendica Update activities without actor information
- Always show pending/cancelled status on event cards
- Fixed nightly docker build
- Refresh loggeduser information before the final step of onboarding, avoiding loop when finishing onboarding
- Handle tz_world data being absent
### Translations
- Croatian (New !)
- Czech
- Gaelic
- Hungarian
- Indonesian
- Welsh (New !)
## 2.0.0 - 2021-11-23
Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md#upgrading-from-13-to-20) file as well.
### Added
- Added possibility to follow groups and be notified from new upcoming events
- Export list of participants to CSV, `PDF` and `ODS`
- Allow to set timezone for an event. The timezone is automatically defined from the address if one is defined. If the event timezone is different than the user's current one, a toggle is shown to switch between the two.
- Added initial support for Right To Left languages (such as arabic) and [BiDi](https://en.wikipedia.org/wiki/Bidirectional_text)
- Group followers and members get an notification email by default when a group publishes a new event (subject to activity notification settings)
- Group admins can now approve or deny new memberships
- Build releases in `arm` and `arm64` format in addition to `amd64`
- Build Docker images in `arm` and `arm64` format in addition to `amd64`
- Added possibility to indicate the event is fully online
- Added possibility to search only for online events
- Added possibility to search only in past events
- Detect event, comments and posts languages automatically. Allows setting language
- Allow to change an user's password through the users.modify mix task
- Add instance setting so that only the admin can create groups
- Add instance setting so that only groups can create events
- Added JSON-LD metadata about the event in emails
- Added a quick link to email notification settings at the bottom of emails
- Allow to access Mobilizon with a specific language directly by using `https://instance.tld/lang` where `lang` is a language supported by Mobilizon
- Added organizer actor name (profile or group) in the icalendar export
- Add initial support for federation with Gancio
### Changed
- Multiple UI improvements, including post, event and participation cards, discussions and emails. The « My Events » page was also redesigned to allow showing events from your groups.
- Various accessibility improvements
- Event update notification is send to participants ~30 minutes after the event update, so that successive edits are throttled.
- Event, post and comments titles and content now have expose their detected language in HTML, for improved screen reader experience
- Delete current actor ID as well from local storage when unlogging
- Show a default text for instance contact in default terms text when no instance contact is set
- Only show locatecontrol button in leaflet map when we can do geolocation
- Disable push column in notification settings when push is not available
- Show actual language instead of language code in Users admin view
- Empty old & new passwords fields when successful password change
- Don't link to the group page from admin when actor is suspended
- Warn participants when the event organizer is suspended (and therefore the event cancelled)
- Improve metadata on public page
- Make sure some event action pages (participate remotely or without an account) don't get indexed by search engines
- Only send `Tombstone` element in `Delete` activities, not the whole previous deleted element.
- Make sure `Delete` activity are send correctly to everyone
- Only add address and tags to event icalendar export if they exist
- `master` branch has been renamed to `main`
- Mention following groups on the registration page
- Add missing group name to activity notifications
- Warn while registering and logging when the email contains uppercase characters
- Improve json-ld metadata on event live streams
- Add "eventAttendanceMode" to JSON-ld schema.org event representation
- Improve sending pending participation notifications
- Add "formerType" and "delete" attributes on Tombstones ActivityPub objects representation
- Improve MyEvents page description text
### Removed
- Support for Elixir < 1.12 and OTP < 22
### Fixed
- Fix tags autocomplete
- Fix config onboarding after LDAP initial connexion
- Fix events pagination on tags page
- Fixed deduplicated files from orphan media being deleted as well
- Fix deleting own account
- Fix search returning user profiles instead of only groups
- Fix federating geo coordinates
- Fix an issue with group activity items when moving resources
- Fix an issue with Identity Picker
- Fix an issue with TagInput
- Fix an issue when leaving a group
- Fix admin settings edition
- Fix an issue when showing public page of suspended group
- Removed non existing page (`/about/mobilizon`) from sitemap
- Fix action logs containing group suspension events
- Fixed group physical address not exposed to ActivityPub
- Release front-end files are no longer in duplicate
- Only show datetime timezone toggle on event if the timezone offset is different from our own
- Fix error when determining audience for Discussion when deleting a comment
- Fix a couple of accessibility issues
- Limit to acceptable tags when pasting raw HTML into comment fields on front-end
- Fixed group map display
- Fixed updating group physical address
- Allow group members to access group drafts
- Improve group refreshment workflow
- Fixed date signature generation for federation
- Fixed an issue when duplicating a group event from another profile
- Fixed event metadata not saved on eventcreation
- Use a different pagination parameter for searched events and featured events on search page
- Fixed creating group activities when creating events with some fields
- Move release package at correct path for CI upload
- Fixed event contacts that were not exposed and fetched over federation
- Don't sign fetch when fetching actor for a given signature
- Some various HTTP signatures issues
- Fixed actor AP representation of avatar
- Handle errors when fetching actor pictures
- Fixed sending group events to followers on Mastodon
- Fixed actors avatars and banners being deleted if the same file was also an orphan media
- Fix spacing in organizer picker
- Increase number of close events and follow group events
- Fix accessing user profile in admin section
- Set initial values for some EventMetadata elements, fixing submitting them right away with no value
- Avoid giving an error page if the apollo futureParticipations query is undefined
- Fixed path to exports in production
- Fixed padding below truncated title of event cards
- Fixed exports that weren't enabled in Docker
- Fixed error page when event end date is null
- Fixed event language not being allowed to be null
### Security
- Fixed private messages sent as event replies from Mastodon that were shown publically as public comments. They are now discarded.
### Translations
- Czech
- Gaelic
- German
- Hungarian
- Indonesian
- Norwegian Nynorsk
- Occitan
- Persian
- Portuguese (Brazil)
- Russian
- Slovenian
- Spanish
## 2.0.0-rc.3 - 2021-11-22
This lists changes since 2.0.0-rc.3. Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md#upgrading-from-13-to-20) file as well.
### Fixed
- Fixed path to exports in production
- Fixed padding below truncated title of event cards
- Fixed exports that weren't enabled in Docker
- Fixed error page when event end date is null
## 2.0.0-rc.2 - 2021-11-22
This lists changes since 2.0.0-rc.1. Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md#upgrading-from-13-to-20) file as well.
@ -13,11 +518,13 @@ This lists changes since 2.0.0-rc.1. Please read the [UPGRADE.md](https://framag
- Improve MyEvents page description text
### Fixed
- Fix spacing in organizer picker
- Increase number of close events and follow group events
- Fix accessing user profile in admin section
- Set initial values for some EventMetadata elements, fixing submitting them right away with no value
- Avoid giving an error page if the apollo futureParticipations query is undefined
### Translations
- German
@ -38,6 +545,7 @@ This lists changes since 2.0.0-beta.2. Please read the [UPGRADE.md](https://fram
- Add "formerType" and "delete" attributes on Tombstones ActivityPub objects representation
### Fixed
- Fixed creating group activities when creating events with some fields
- Move release package at correct path for CI upload
- Fixed event contacts that were not exposed and fetched over federation
@ -56,6 +564,7 @@ This lists changes since 2.0.0-beta.2. Please read the [UPGRADE.md](https://fram
## 2.0.0-beta.2 - 2021-11-15
This lists changes since 2.0.0-beta.1. Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md#upgrading-from-13-to-20) file as well.
### Added
- Group followers and members get an notification email by default when a group publishes a new event (subject to activity notification settings)
@ -92,6 +601,7 @@ This lists changes since 2.0.0-beta.1. Please read the [UPGRADE.md](https://fram
## 2.0.0-beta.1 - 2021-11-09
Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md#upgrading-from-13-to-20) file as well.
### Added
- Added possibility to follow groups and be notified from new upcoming events
@ -156,6 +666,7 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
### Security
- Fixed private messages sent as event replies from Mastodon that were shown publically as public comments. They are now discarded.
### Translations
- Czech
@ -223,7 +734,7 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
### Fixed
- Fixed links contained in event & post description that didn't open in new tabs
- Add back missing RSS/ical links on public group pages
- Add back missing RSS/ical links on public group pages
- Fixed links to Framacolibri forum
- Fixed drafts and restricted visibility events & posts listed on group page
- Fixed notification page on Safari
@ -245,7 +756,6 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
- Fixed token refreshment issues
- Fixed search from 404 page
### Translations
- Catalan
@ -271,9 +781,10 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
- Fixed group discussions with deleted comments
## 1.2.2 - 2021-07-01
### Changed
- Improved UI for participations when message is too long
- Improved UI for participations when message is too long
### Fixed
@ -281,7 +792,7 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
- Fixed crash when trying to notify activities not from groups
- Fixed imagemagick missing from Dockerfile
- Fixed push notifications for group, members & post activities
- Fixed ellipsis in DiscussionListView
- Fixed ellipsis in DiscussionListView
- Fixed submission button for posts not visible on mobile
- Fixed remote profile suspension
@ -297,6 +808,7 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
- Fixed compatibility check in Notification section for service workers
## 1.2.0 - 2021-06-29
### Added
- **Notifications for various group and event activity, both by email and browser push notifications. Daily and weekly digests are also available.**
@ -311,7 +823,7 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
- **Various improvements to mobile views**
- Make JWT access tokens short-lived
- Disabled Cldr warning that the `Cldr.Plug.AcceptLanguage` plug didn't many any known locale
- Replaced GraphiQL web interface with graphql-playground
- Replaced GraphiQL web interface with graphql-playground
### Removed
@ -471,7 +983,7 @@ Please read the [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/mai
### Changed
- Added an unique index on the addresses url
- Added org.opencontainers.image.source annotation to the Docker image
- Added org.opencontainers.image.source annotation to the Docker image
- Improved the moderation action logs interface
### Fixes
@ -592,7 +1104,7 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
- Fixed getting metadata from tweets when creating a resource
- Fixed bad handling of duplicate usernames
- Fixed handling of bad URIs to proxify
- Fixed creating discussion with title containing only spaces
- Fixed creating discussion with title containing only spaces
- Fixed registering new user account with same email as unconfirmed
- Fixed handling changing default actor unlogged
- Fixed handling getting organized events from an actor when not authorized
@ -664,6 +1176,7 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
- Hungarian
- Russian
- Spanish
## 1.1.0-rc.1 - 2021-03-29
### Added
@ -689,7 +1202,7 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
- Fixed getting metadata from tweets when creating a resource
- Fixed bad handling of duplicate usernames
- Fixed handling of bad URIs to proxify
- Fixed creating discussion with title containing only spaces
- Fixed creating discussion with title containing only spaces
- Fixed registering new user account with same email as unconfirmed
- Fixed handling changing default actor unlogged
- Fixed handling getting organized events from an actor when not authorized
@ -711,11 +1224,13 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
## 1.1.0-beta.6 - 2021-03-17
### Fixed
- Fixed a typo in range/radius showing the wrong radius for close events on homepage
## 1.1.0-beta.5 - 2021-03-17
### Fixed
- Fixed a typo in range/radius preventing close events from showing up
## 1.1.0-beta.4 - 2021-03-17
@ -729,15 +1244,18 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
## 1.1.0-beta.3 - 2021-03-16
### Fixed
- Handle ActivityPub Fetcher returning text that's not JSON
- Fix accessing a group profile when not a member
## 1.1.0-beta.2 - 2021-03-16
### Fixed
- Fixed geospatial configuration only being evaluated at compile-time, not at runtime
### Translations
- Slovenian
## 1.1.0-beta.1 - 2021-03-10
@ -879,23 +1397,23 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
### Special operations
* **Reattach media files to their entity.**
- **Reattach media files to their entity.**
When media files were uploaded and added in events and posts bodies, they were only attached to the profile that uploaded them, not to the event or post. This task attaches them back to their entity so that the command to clean orphan media files doesn't remove them.
* Source install
- Source install
`MIX_ENV=prod mix mobilizon.maintenance.fix_unattached_media_in_body`
* Docker
- Docker
`docker-compose exec mobilizon mobilizon_ctl maintenance.fix_unattached_media_in_body`
* **Refresh remote profiles to save avatars locally**
- **Refresh remote profiles to save avatars locally**
Profile avatars and banners were previously only proxified and cached. Now we save them locally. Refreshing all remote actors will save profile media locally instead.
* Source install
- Source install
`MIX_ENV=prod mix mobilizon.actors.refresh --all`
* Docker
- Docker
`docker-compose exec mobilizon mobilizon_ctl actors.refresh --all`
* **imagemagick and webp are now a required dependency** to build Mobilizon.
- **imagemagick and webp are now a required dependency** to build Mobilizon.
Optimized versions of Mobilizon's pictures are now produced during front-end build.
See [the documentation](https://docs.joinmobilizon.org/administration/dependencies/#misc) to make sure these dependencies are installed.
@ -938,7 +1456,7 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
- Fixed error message not showing up when you are already an anonymous participant for an event
- Fixed error message not showing up when you pick an username already in user for a new profile or a group
- Fixed translations not fallbacking properly to english when not found
-
-
### Security
@ -947,6 +1465,7 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
### Translations
Updated translations:
- Catalan
- Dutch
- English
@ -1119,20 +1638,21 @@ Updated translations:
### Special operations
* We added `application/ld+json` as acceptable MIME type for ActivityPub requests, so you'll need to recompile the `mime` library we use before recompiling Mobilizon:
```
MIX_ENV=prod mix deps.clean mime --build
```
- We added `application/ld+json` as acceptable MIME type for ActivityPub requests, so you'll need to recompile the `mime` library we use before recompiling Mobilizon:
* The [nginx configuration](https://framagit.org/framasoft/mobilizon/-/blob/main/support/nginx/mobilizon.conf) has been changed with improvements and support for custom error pages.
```
MIX_ENV=prod mix deps.clean mime --build
```
* The cmake dependency has been added (see [our documentation](https://docs.joinmobilizon.org/administration/dependencies/#basic-tools))
- The [nginx configuration](https://framagit.org/framasoft/mobilizon/-/blob/main/support/nginx/mobilizon.conf) has been changed with improvements and support for custom error pages.
- The cmake dependency has been added (see [our documentation](https://docs.joinmobilizon.org/administration/dependencies/#basic-tools))
### Added
- Possibility to login using LDAP
- Possibility to login using OAuth providers
- Enabled group features in production mode
- Enabled group features in production mode
- including posts (that can be public, unlisted, or restricted to your group members)
- resources (collections of links, with folders, accessible to your group members)
- discussions (group private and organized chats)
@ -1156,11 +1676,12 @@ Updated translations:
### Security
- Fix group settings being accessible and editable by non-group-admins (thx @pigpig for reporting this responsibly)
- Fix events being editable by profiles without permissions (thx @pigpig for reporting this responsibly)
- Fix events being editable by profiles without permissions (thx @pigpig for reporting this responsibly)
## [1.0.0-beta.3] - 2020-06-24
### Special operations
Config has moved from `.env` files to a more traditional way to handle things in the Elixir world, with `.exs` files.
To migrate existing configuration, you can simply run `mix mobilizon.instance gen` and fill in the adequate values previously in `.env` files (you don't need to perform the operations to create the database).
@ -1170,6 +1691,7 @@ A minimal file template [is available](https://framagit.org/framasoft/mobilizon/
Also make sure to remove the `EnvironmentFile=` line from the systemd service and set `Environment=MIX_ENV=prod` instead. See [the updated file](https://framagit.org/framasoft/mobilizon/blob/main/support/systemd/mobilizon.service).
### Added
- Possibility to participate to an event without an account (confirmation through email required)
- Possibility to participate to a remote event (being redirected by providing federated identity)
- Possibility to add a note as a participant when event participation is manually validated (required when participating without an account)
@ -1186,6 +1708,7 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an
- Allow user to change language
### Changed
- Configuration handling (see above)
- Improved a bit color theme
- Signature validation also now checks if `Date` header has acceptable values
@ -1196,6 +1719,7 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an
- Improved public event page
### Fixed
- Fixed URL search
- Fixed content accessed through URL search being public
- Fix event links in some emails
@ -1203,17 +1727,21 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an
## [1.0.0-beta.2] - 2019-12-18
### Special operations
These two operations couldn't be handled during migrations.
They are optional, but you won't be able to search or get participant stats on existing events if they are not executed.
These commands will be removed in Mobilizon 1.0.0-beta.3.
In order to populate search index for existing events, you need to run the following command (with prod environment):
* `mix mobilizon.setup_search`
- `mix mobilizon.setup_search`
In order to move participant stats to the event table for existing events, you need to run the following command (with prod environment):
* `mix mobilizon.move_participant_stats`
- `mix mobilizon.move_participant_stats`
### Added
- Federation is active
- Added an interface for admins to view and manage instance followers and followings
- Ability to comment below events
@ -1238,6 +1766,7 @@ In order to move participant stats to the event table for existing events, you n
- Upgraded frontend and backend dependencies
### Changed
- Move participant stats to event table **(read special instructions above)**
- Limit length (20 characters) and number (10) of tags allowed
- Added some backend changes and validation for field length
@ -1251,6 +1780,7 @@ In order to move participant stats to the event table for existing events, you n
- Also consider the PeerTube `CommentsEnabled` property to know if you can reply to an event
### Fixed
- Fix event URL validation and check if hostname is correct before showing it
- Fix participations stats on the MyEvents page
- Fix event description lists margin
@ -1280,8 +1810,11 @@ In order to move participant stats to the event table for existing events, you n
- Fixed event HTML representation when `GET` request has no `Accept` header
### Security
- Sanitize event title to avoid XSS
## [1.0.0-beta.1] - 2019-10-15
### Added
- Initial release

View File

@ -20,7 +20,7 @@ Mobilizon is your federated organization and mobilization platform. Gather peopl
Mobilizon is a tool designed to create platforms for managing communities and events. Its purpose is to help as many people as possible to free themselves from Facebook groups and events, from Meetup, etc.
The Mobilizon software is under a Free licence, so anyone can host a Mobilizon server, called an instance. These instances may federate with each other, so any person with an account on *ExampleMeet* will be able to register to an event created on *SpecimenEvent*.
The Mobilizon software is under a Free licence, so anyone can host a Mobilizon server, called an instance. These instances may federate with each other, so any person with an account on _ExampleMeet_ will be able to register to an event created on _SpecimenEvent_.
## ✨ Features
@ -33,7 +33,7 @@ You will have the power to create multiple identities from the same account, lik
### 📅 Events and groups
Create your events and make sure they will appeal to everybody.
Create your events and make sure they will appeal to everybody.
Privacy settings and participants roles are supported.
There's no lock-in, you can interact with the event without registration.
@ -46,23 +46,26 @@ We appreciate any contribution to Mobilizon. Check our [CONTRIBUTING](CONTRIBUTI
## Links
### Learn more
* 🌐 Official website: [https://joinmobilizon.org](https://joinmobilizon.org)
* 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org)
* 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon)
* 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org)
- 🌐 Official website: [https://joinmobilizon.org](https://joinmobilizon.org)
- 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org)
- 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon)
- 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org)
### Discuss
* 💬 Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org)
* 🗣️ Forum: [https://framacolibri.org/c/mobilizon](https://framacolibri.org/c/mobilizon)
- 💬 Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org)
- 🗣️ Forum: [https://framacolibri.org/c/mobilizon](https://framacolibri.org/c/mobilizon)
### Follow
* 🐘 Mastodon: [https://framapiaf.org/@mobilizon](https://framapiaf.org/@mobilizon)
* 🐦 Twitter [https://twitter.com/@joinmobilizon](https://twitter.com/@joinmobilizon)
- 🐘 Mastodon: [https://framapiaf.org/@mobilizon](https://framapiaf.org/@mobilizon)
- 🐦 Twitter [https://twitter.com/@joinmobilizon](https://twitter.com/@joinmobilizon)
Note: Most federation code comes from [Pleroma](https://pleroma.social), which is `Copyright © 2017-2018 Pleroma Authors - AGPL-3.0`.
## ❤️ Supports of our crowdfunding
---
We have run [a crowdfunding campaign](https://framablog.org/2019/05/14/mobilizon-lets-finance-a-software-to-free-our-events-from-facebook/) to pave the road to the version 1.0.0 of Mobilizon. Thanks to everyone who pitched in and shared the news around! The list of [everyone who donated is available here](https://joinmobilizon.org/hall-of-fame).

View File

@ -5,15 +5,15 @@ Framasoft, the Mobilizon maintainer team and community take all security bugs in
### Goals
* Mobilizon users can understand the distinctions between public data and private data/metadata on Mobilizon.
- Mobilizon users can understand the distinctions between public data and private data/metadata on Mobilizon.
* Users always know where their private data/metadata resides, who has access to it, and are able to access, export, and delete it.
- Users always know where their private data/metadata resides, who has access to it, and are able to access, export, and delete it.
* Protect private user data/metadata, not just from hackers but also (as much as is possible) from other users, instance admins, community moderators, and external applications.
- Protect private user data/metadata, not just from hackers but also (as much as is possible) from other users, instance admins, community moderators, and external applications.
* Secure from malicious creation, alteration or deletion of public data.
- Secure from malicious creation, alteration or deletion of public data.
* GDPR compliance.
- GDPR compliance.
Framasoft is both a developer of open-source/free/libre self-hosted software, and a service provider with users in the European Union. As a result, we are putting user privacy, data sovereignty, and GDPR compliance into our security plans, including asking both the Framasoft community and outside hackers to review our approaches and implementations.
@ -21,11 +21,11 @@ Framasoft is both a developer of open-source/free/libre self-hosted software, an
[Mobilizon](https://joinmobilizon.org) will be challenging to keep secure, as it is:
* open source, both back-end and front-end
- open source, both back-end and front-end
* self-hosted by diverse organisations and individuals
- self-hosted by diverse organisations and individuals
* federated (data is transmitted between different hosted instances)
- federated (data is transmitted between different hosted instances)
This means there are more attack surfaces compared to typical proprietary, centralised platforms, but also means that hackers and even users can review every part of Mobilizon and make sure that it works as expected. This should result in more secure software, and higher trust in the application and its ecosystem.
@ -33,14 +33,14 @@ This means there are more attack surfaces compared to typical proprietary, centr
We are committed to working with security researchers to verify, reproduce, and respond to legitimate reported vulnerabilities. You can help us by following these simple guidelines:
* Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer at tcit+mobilizon@framasoft.org.
* Provide details needed to reproduce and validate the vulnerability and a Proof of Concept (PoC) as soon as possible
* Act in good faith to avoid privacy violations, destruction of data, and interruption or degradation of services
* Do not access or modify users private data, without explicit permission of the owner. Only interact with your own accounts or test accounts for security research purposes;
* Contact Framasoft or a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability;
* The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
* Give us time to confirm, determine the affected versions and prepare fixes to correct the issue before disclosing it to other parties (if after waiting a reasonable amount of time, we are clearly unable or unwilling to do anything about it, please do hold us accountable!)
* Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against Framasoft's (and our partners') infrastructure
- Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer at tcit+mobilizon@framasoft.org.
- Provide details needed to reproduce and validate the vulnerability and a Proof of Concept (PoC) as soon as possible
- Act in good faith to avoid privacy violations, destruction of data, and interruption or degradation of services
- Do not access or modify users private data, without explicit permission of the owner. Only interact with your own accounts or test accounts for security research purposes;
- Contact Framasoft or a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability;
- The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
- Give us time to confirm, determine the affected versions and prepare fixes to correct the issue before disclosing it to other parties (if after waiting a reasonable amount of time, we are clearly unable or unwilling to do anything about it, please do hold us accountable!)
- Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against Framasoft's (and our partners') infrastructure
Note : Please report security bugs in third-party modules to the person or team maintaining the module.

View File

@ -1,14 +1,56 @@
# Upgrading from 2.0 to 2.1
## Mailer library change
### Docker
The change is already applied. You may remove the `MOBILIZON_SMTP_HOSTNAME` environment key which is not used anymore.
### Release and source mode
In your configuration file under `config :mobilizon, Mobilizon.Web.Email.Mailer`,
- Change `Bamboo.SMTPAdapter` to `Swoosh.Adapters.SMTP`,
- rename the `server` key to `relay`
- remove the `hostname` key,
- the default value of the username and password fields is an empty string and no longer `nil`.
```diff
config :mobilizon, Mobilizon.Web.Email.Mailer,
- adapter: Bamboo.SMTPAdapter,
+ adapter: Swoosh.Adapters.SMTP,
- server: "localhost",
+ relay: "localhost",
- hostname: "localhost",
# usually 25, 465 or 587
port: 25,
- username: nil,
+ username: "",
- password: nil,
+ password: "",
# can be `:always` or `:never`
tls: :if_available,
allowed_tls_versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"],
retries: 1,
# can be `true`
no_mx_lookups: false,
# can be `:always`. If your smtp relay requires authentication set it to `:always`.
auth: :if_available
```
# Upgrading from 1.3 to 2.0
Requirements dependencies depend on the way Mobilizon is installed.
## New Elixir version requirement
### Docker and Release install
You are already using latest Elixir version in the release tarball and Docker images.
### Source install
**Elixir 1.12 and Erlang OTP 22 are now required**. If your distribution doesn't provide these versions (which is likely), you must uninstall them and install [Elixir](https://github.com/asdf-vm/asdf-elixir) through the [ASDF tool](https://asdf-vm.com/).
**Elixir 1.12 and Erlang OTP 22 are now required**. If your distribution or the repositories from Erlang Solutions don't provide these versions, you need to uninstall the current versions and install [Elixir](https://github.com/asdf-vm/asdf-elixir) through the [ASDF tool](https://asdf-vm.com/).
## Geographic timezone data
@ -17,24 +59,27 @@ Mobilizon 2.0 uses data based on [timezone-boundary-builder](https://github.com/
### Docker install
The geographic timezone data is already bundled into the image, you have nothing to do.
### Release install
In order to keep the release tarballs light, the geographic timezone data is not bundled directly. You need to download the data :
* either raw from Github, but **requires an extra ~1Gio of memory** to process the data
- either raw from Github, but **requires an extra ~1Gio of memory** to process the data
```sh
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones
sudo -u mobilizon ./bin/mobilizon_ctl tz_world.update
```
* either already processed from our own distribution server
- either already processed from our own distribution server
```sh
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones
sudo -u mobilizon curl -L 'https://packages.joinmobilizon.org/tz_world/timezones-geodata.dets' -o /var/lib/mobilizon/timezones/timezones-geodata.dets
```
In both cases, ~700Mio of disk will be used. You may use the following configuration to specify where the data is expected:
In both cases, ~700Mio of disk will be used. You may use the following configuration to specify where the data is expected if you decide to change it from the default location (`/var/lib/mobilizon/timezones`) :
```elixir
config :tz_world, data_dir: "/some/place"
```
@ -42,14 +87,15 @@ config :tz_world, data_dir: "/some/place"
### Source install
You need to download the data :
* either raw from Github, but **requires an extra ~1Gio of memory** to process the data
- either raw from Github, but **requires an extra ~1Gio of memory** to process the data
```sh
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones
sudo -u mobilizon mix mobilizon.tz_world.update
```
* either already processed from our own distribution server
- either already processed from our own distribution server
```sh
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones
@ -57,58 +103,80 @@ You need to download the data :
```
In both cases, ~700Mio of disk will be used. You may use the following configuration to specify where the data is expected:
```elixir
config :tz_world, data_dir: "/some/place"
```
## Exports folder
Create the folder for default CSV export:
```sh
sudo -u mobilizon mkdir -p /var/lib/mobilizon/uploads/exports/csv
```
This path can be configured, see [the dedicated docs page about this](https://docs.joinmobilizon.org/administration/configure/exports/).
Files in this folder are temporary and are cleaned once an hour.
## New optional dependencies
These are optional, installing them will allow Mobilizon to export to PDF and ODS as well. Mobilizon 2.0 allows to export the participant list, but more is planned.
### Docker
Everything is included in our Docker image.
### Release and source install
New optional Python dependencies:
* `Python` >= 3.6
* `weasyprint` for PDF export (with [a few extra dependencies](https://doc.courtbouillon.org/weasyprint/stable/first_steps.html))
* `pyexcel-ods3` for ODS export (no extra dependencies)
Both can be installed through pip. You need to enable exports for PDF and ODS in the configuration afterwards. Read [the dedicated docs page about this]() (*upcoming*).
- `Python` >= 3.6
- `weasyprint` for PDF export (with [a few extra dependencies](https://doc.courtbouillon.org/weasyprint/stable/first_steps.html))
- `pyexcel-ods3` for ODS export (no extra dependencies)
Both can be installed through pip. You need to enable and configure exports for PDF and ODS in the configuration afterwards. Read [the dedicated docs page about this](https://docs.joinmobilizon.org/administration/configure/exports/).
# Upgrading from 1.0 to 1.1
The 1.1 version of Mobilizon brings Elixir releases support. An Elixir release is a self-contained directory that contains all of Mobilizon's code (front-end and backend), it's dependencies, as well as the Erlang Virtual Machine and runtime (only the parts you need). As long as the release has been assembled on the same OS and architecture, it can be deploy and run straight away. [Read more about releases](https://elixir-lang.org/getting-started/mix-otp/config-and-releases.html#releases).
## Comparison
Migrating to releases means:
* You only get a precompiled binary, so you avoid compilation times when updating
* No need to have Elixir/NodeJS installed on the system
* Code/data/config location is more common (/opt, /var/lib, /etc)
* More efficient, as only what you need from the Elixir/Erlang standard libraries is included and all of the code is directly preloaded
* You can't hardcode modifications in Mobilizon's code
- You only get a precompiled binary, so you avoid compilation times when updating
- No need to have Elixir/NodeJS installed on the system
- Code/data/config location is more common (/opt, /var/lib, /etc)
- More efficient, as only what you need from the Elixir/Erlang standard libraries is included and all of the code is directly preloaded
- You can't hardcode modifications in Mobilizon's code
Staying on source releases means:
* You need to recompile everything with each update
* Compiling frontend and backend has higher system requirements than just running Mobilizon
* You can change things in Mobilizon's code and recompile right away to test changes
- You need to recompile everything with each update
- Compiling frontend and backend has higher system requirements than just running Mobilizon
- You can change things in Mobilizon's code and recompile right away to test changes
## Releases
If you want to migrate to releases, [we provide a full guide](https://docs.joinmobilizon.org/administration/upgrading/source_to_release/). You may do this at any time.
## Source install
To stay on a source release, you just need to check the following things:
* Rename your configuration file `config/prod.secret.exs` to `config/runtime.exs`.
* If your config file includes `server: true` under `Mobilizon.Web.Endpoint`, remove it.
```diff
config :mobilizon, Mobilizon.Web.Endpoint,
- server: true,
```
* The uploads default directory is now `/var/lib/mobilizon/uploads`. To keep it in the previous `uploads/` directory, just add the following line to `config/runtime.exs`:
- Rename your configuration file `config/prod.secret.exs` to `config/runtime.exs`.
- If your config file includes `server: true` under `Mobilizon.Web.Endpoint`, remove it.
```diff
config :mobilizon, Mobilizon.Web.Endpoint,
- server: true,
```
- The uploads default directory is now `/var/lib/mobilizon/uploads`. To keep it in the previous `uploads/` directory, just add the following line to `config/runtime.exs`:
```elixir
config :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "uploads"
```
Or you may use any other directory where the `mobilizon` user has write permissions.
* The GeoIP database default directory is now `/var/lib/mobilizon/geo/GeoLite2-City.mmdb`. To keep it in the previous `priv/data/GeoLite2-City.mmdb` directory, just add the following line to `config/runtime.exs`:
- The GeoIP database default directory is now `/var/lib/mobilizon/geo/GeoLite2-City.mmdb`. To keep it in the previous `priv/data/GeoLite2-City.mmdb` directory, just add the following line to `config/runtime.exs`:
```elixir
config :geolix, databases: [
%{
@ -118,4 +186,4 @@ To stay on a source release, you just need to check the following things:
}
]
```
Or you may use any other directory where the `mobilizon` user has read permissions.
Or you may use any other directory where the `mobilizon` user has read permissions.

View File

@ -13,14 +13,14 @@ config :mobilizon,
config :mobilizon, Mobilizon.Storage.Repo, types: Mobilizon.Storage.PostgresTypes
config :mobilizon, :instance,
name: "My Mobilizon Instance",
description: "Change this to a proper description of your instance",
name: "Mobilizon du Chapril",
description: "Instance du Chapril",
hostname: "localhost",
registrations_open: false,
registrations_open: true,
registration_email_allowlist: [],
registration_email_denylist: [],
languages: [],
default_language: "en",
default_language: "fr",
demo: false,
repository: Mix.Project.config()[:source_url],
allow_relay: true,
@ -35,9 +35,9 @@ config :mobilizon, :instance,
unconfirmed_user_grace_period_hours: 48,
activity_expire_days: 365,
activity_keep_number: 100,
enable_instance_feeds: false,
email_from: "noreply@localhost",
email_reply_to: "noreply@localhost"
enable_instance_feeds: true,
email_from: "noreply@mobilizon.chapril.org",
email_reply_to: "noreply@mobilizon.chapril.org"
config :mobilizon, :groups, enabled: true
config :mobilizon, :events, creation: true
@ -90,7 +90,7 @@ config :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "/var/lib/mobil
config :tz_world, data_dir: "/var/lib/mobilizon/timezones"
config :mobilizon, Timex.Gettext, default_locale: "en"
config :mobilizon, Timex.Gettext, default_locale: "fr"
config :mobilizon, :media_proxy,
enabled: true,
@ -106,13 +106,16 @@ config :mobilizon, :media_proxy,
]
config :mobilizon, Mobilizon.Web.Email.Mailer,
adapter: Bamboo.SMTPAdapter,
server: "localhost",
hostname: "localhost",
adapter: Swoosh.Adapters.SMTP,
relay: "localhost",
# usually 25, 465 or 587
port: 25,
username: nil,
password: nil,
username: "",
password: "",
# can be `:always` or `:never`
auth: :if_available,
# can be `true`
ssl: false,
# can be `:always` or `:never`
tls: :if_available,
allowed_tls_versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"],
@ -185,7 +188,13 @@ config :phoenix, :filter_parameters, ["password", "token"]
config :absinthe, schema: Mobilizon.GraphQL.Schema
config :absinthe, Absinthe.Logger, filter_variables: ["token", "password", "secret"]
config :mobilizon, Mobilizon.Web.Gettext, one_module_per_locale: true
config :codepagex, :encodings, [
:ascii,
~r[iso8859]i,
:"VENDORS/MICSFT/WINDOWS/CP1252"
]
config :mobilizon, Mobilizon.Web.Gettext, split_module_by: [:locale, :domain]
config :ex_cldr,
default_locale: "en",
@ -206,7 +215,8 @@ config :mobilizon, :activitypub,
# One day
actor_stale_period: 3_600 * 48,
actor_key_rotation_delay: 3_600 * 48,
sign_object_fetches: true
sign_object_fetches: true,
stale_actor_search_exclusion_after: 3_600 * 24 * 7
config :mobilizon, Mobilizon.Service.Geospatial, service: Mobilizon.Service.Geospatial.Nominatim
@ -290,6 +300,7 @@ config :mobilizon, Oban,
crontab: [
{"@hourly", Mobilizon.Service.Workers.BuildSiteMap, queue: :background},
{"17 4 * * *", Mobilizon.Service.Workers.RefreshGroups, queue: :background},
{"36 * * * *", Mobilizon.Service.Workers.RefreshInstances, queue: :background},
{"@hourly", Mobilizon.Service.Workers.CleanOrphanMediaWorker, queue: :background},
{"@hourly", Mobilizon.Service.Workers.CleanUnconfirmedUsersWorker, queue: :background},
{"@hourly", Mobilizon.Service.Workers.ExportCleanerWorker, queue: :background},
@ -329,10 +340,15 @@ config :mobilizon, Mobilizon.Service.Notifier.Email, enabled: true
config :mobilizon, Mobilizon.Service.Notifier.Push, enabled: true
config :mobilizon, :exports,
path: "/var/lib/mobilizon/uploads/exports",
formats: [
Mobilizon.Service.Export.Participants.CSV
Mobilizon.Service.Export.Participants.CSV,
Mobilizon.Service.Export.Participants.PDF,
Mobilizon.Service.Export.Participants.ODS
]
config :mobilizon, :analytics, providers: []
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{config_env()}.exs"

View File

@ -67,7 +67,7 @@ config :phoenix, :stacktrace_depth, 20
# Initialize plugs at runtime for faster development compilation
config :phoenix, :plug_init_mode, :runtime
config :mobilizon, Mobilizon.Web.Email.Mailer, adapter: Bamboo.LocalAdapter
config :mobilizon, Mobilizon.Web.Email.Mailer, adapter: Swoosh.Adapters.Local
# Configure your database
config :mobilizon, Mobilizon.Storage.Repo,
@ -94,6 +94,8 @@ config :mobilizon, Mobilizon.Web.Auth.Guardian,
config :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "uploads"
config :mobilizon, :exports, path: "uploads/exports"
config :tz_world, data_dir: "_build/dev/lib/tz_world/priv"
config :mobilizon, :anonymous,

View File

@ -43,9 +43,8 @@ config :mobilizon, Mobilizon.Storage.Repo,
pool_size: 10
config :mobilizon, Mobilizon.Web.Email.Mailer,
adapter: Bamboo.SMTPAdapter,
server: System.get_env("MOBILIZON_SMTP_SERVER", "localhost"),
hostname: System.get_env("MOBILIZON_SMTP_HOSTNAME", "localhost"),
adapter: Swoosh.Adapters.SMTP,
relay: System.get_env("MOBILIZON_SMTP_SERVER", "localhost"),
port: System.get_env("MOBILIZON_SMTP_PORT", "25"),
username: System.get_env("MOBILIZON_SMTP_USERNAME", nil),
password: System.get_env("MOBILIZON_SMTP_PASSWORD", nil),
@ -68,5 +67,13 @@ config :geolix,
config :mobilizon, Mobilizon.Web.Upload.Uploader.Local,
uploads: System.get_env("MOBILIZON_UPLOADS", "/var/lib/mobilizon/uploads")
config :mobilizon, :exports,
path: System.get_env("MOBILIZON_UPLOADS_EXPORTS", "/var/lib/mobilizon/uploads/exports"),
formats: [
Mobilizon.Service.Export.Participants.CSV,
Mobilizon.Service.Export.Participants.PDF,
Mobilizon.Service.Export.Participants.ODS
]
config :tz_world,
data_dir: System.get_env("MOBILIZON_TIMEZONES_DIR", "/var/lib/mobilizon/timezones")

View File

@ -16,24 +16,29 @@ config :logger, level: :info
# Load all locales in production
config :mobilizon, :cldr,
locales: [
"ar",
"be",
"ca",
"cs",
"de",
# "ar",
# "be",
# "bn",
# "ca",
# "cs",
# "cy",
# "de",
"en",
"es",
"fi",
# "es",
# "fa",
# "fi",
"fr",
"gl",
"hu",
"it",
"ja",
"nl",
"nn",
"oc",
"pl",
"pt",
"ru",
"sv"
# "gd",
# "gl",
# "hu",
# "id",
# "it",
# "ja",
# "nl",
# "nn",
# "pl",
# "pt",
# "ru",
# "sv",
# "zh_Hant"
]

View File

@ -54,12 +54,14 @@ config :mobilizon, :ldap,
bind_uid: System.get_env("LDAP_BIND_UID"),
bind_password: System.get_env("LDAP_BIND_PASSWORD")
config :mobilizon, Mobilizon.Web.Email.Mailer, adapter: Bamboo.TestAdapter
config :mobilizon, Mobilizon.Web.Email.Mailer, adapter: Swoosh.Adapters.Test
config :mobilizon, Mobilizon.Web.Upload, filters: [], link_name: false
config :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "test/uploads"
config :mobilizon, :exports, path: "test/uploads/exports"
config :tz_world, data_dir: "_build/test/lib/tz_world/priv"
config :tesla, Mobilizon.Service.HTTP.ActivityPub,

View File

@ -12,7 +12,7 @@ RUN yarn install --network-timeout 100000 \
&& yarn run build
# Then, build the application binary
FROM elixir:1.12-alpine AS builder
FROM elixir:1.13-alpine AS builder
RUN apk add --no-cache build-base git cmake
@ -49,11 +49,14 @@ LABEL org.opencontainers.image.title="mobilizon" \
org.opencontainers.image.revision=$VCS_REF \
org.opencontainers.image.created=$BUILD_DATE
RUN apk add --no-cache openssl ca-certificates ncurses-libs file postgresql-client libgcc libstdc++ imagemagick python3 py3-pip py3-pillow py3-cffi py3-brotli gcc musl-dev python3-dev pango libxslt-dev
RUN apk add --no-cache curl openssl ca-certificates ncurses-libs file postgresql-client libgcc libstdc++ imagemagick python3 py3-pip py3-pillow py3-cffi py3-brotli gcc g++ musl-dev python3-dev pango libxslt-dev ttf-cantarell
RUN pip install weasyprint pyexcel-ods3
RUN mkdir -p /var/lib/mobilizon/uploads && chown nobody:nobody /var/lib/mobilizon/uploads
RUN mkdir -p /var/lib/mobilizon/timezones && chown nobody:nobody /var/lib/mobilizon/timezones
RUN mkdir -p /var/lib/mobilizon/uploads/exports/{csv,pdf,ods} && chown -R nobody:nobody /var/lib/mobilizon/uploads/exports
RUN mkdir -p /var/lib/mobilizon/timezones
RUN curl -L 'https://packages.joinmobilizon.org/tz_world/timezones-geodata.dets' -o /var/lib/mobilizon/timezones/timezones-geodata.dets
RUN chown nobody:nobody /var/lib/mobilizon/timezones
RUN mkdir -p /etc/mobilizon && chown nobody:nobody /etc/mobilizon
USER nobody

View File

@ -1,15 +1,11 @@
FROM elixir:latest
LABEL maintainer="Thomas Citharel <tcit@tcit.fr>"
ENV REFRESHED_AT=2021-10-04
ENV REFRESHED_AT=2022-04-06
RUN apt-get update -yq && apt-get install -yq build-essential inotify-tools postgresql-client git curl gnupg xvfb libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 cmake exiftool python3-pip python3-setuptools
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash && apt-get install nodejs -yq
RUN npm install -g yarn wait-on
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN mix local.hex --force && mix local.rebar --force
# Weasyprint 53 requires pango >= 1.44.0, which is not available in Stretch.
# TODO: Remove the version requirement when elixir:latest is based on Bullseye
# https://github.com/erlang/docker-erlang-otp/issues/362
# https://github.com/Kozea/WeasyPrint/issues/1384
RUN pip3 install -Iv weasyprint==52 pyexcel_ods3
RUN pip3 install -Iv weasyprint pyexcel_ods3
RUN curl https://dbip.mirror.framasoft.org/files/dbip-city-lite-latest.mmdb --output GeoLite2-City.mmdb -s && mkdir -p /usr/share/GeoIP && mv GeoLite2-City.mmdb /usr/share/GeoIP/

View File

@ -29,7 +29,6 @@ module.exports = {
},
],
"@typescript-eslint/no-explicit-any": "off",
"cypress/no-unnecessary-waiting": "off",
"vue/max-len": [
"off",
{

1
js/.gitignore vendored
View File

@ -23,3 +23,4 @@ yarn-error.log*
*.njsproj
*.sln
*.sw?
.yarn

View File

@ -1 +1,6 @@
{}
{
"trailingComma": "es5",
"semi": true,
"singleQuote": false,
"bracketSpacing": true
}

3
js/.yarnrc.yml Normal file
View File

@ -0,0 +1,3 @@
nodeLinker: node-modules
#yarnPath: .yarn/releases/yarn-3.1.1.cjs

View File

@ -1,6 +1,6 @@
{
"name": "mobilizon",
"version": "2.0.0-rc.2",
"version": "2.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
@ -8,7 +8,7 @@
"test:unit": "LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 TZ=UTC vue-cli-service test:unit",
"test:e2e": "vue-cli-service test:e2e",
"lint": "vue-cli-service lint",
"build:assets": "vue-cli-service build",
"build:assets": "vue-cli-service build --report",
"build:pictures": "bash ./scripts/build/pictures.sh"
},
"dependencies": {
@ -16,23 +16,35 @@
"@absinthe/socket-apollo-link": "^0.2.1",
"@apollo/client": "^3.3.16",
"@mdi/font": "^6.1.95",
"@sentry/tracing": "^6.16.1",
"@sentry/vue": "^6.16.1",
"@tailwindcss/line-clamp": "^0.4.0",
"@tiptap/core": "^2.0.0-beta.41",
"@tiptap/extension-blockquote": "^2.0.0-beta.6",
"@tiptap/extension-blockquote": "^2.0.0-beta.25",
"@tiptap/extension-bold": "^2.0.0-beta.24",
"@tiptap/extension-bubble-menu": "^2.0.0-beta.9",
"@tiptap/extension-character-count": "^2.0.0-beta.5",
"@tiptap/extension-history": "^2.0.0-beta.5",
"@tiptap/extension-bullet-list": "^2.0.0-beta.23",
"@tiptap/extension-document": "^2.0.0-beta.15",
"@tiptap/extension-dropcursor": "^2.0.0-beta.25",
"@tiptap/extension-gapcursor": "^2.0.0-beta.33",
"@tiptap/extension-heading": "^2.0.0-beta.23",
"@tiptap/extension-history": "^2.0.0-beta.21",
"@tiptap/extension-image": "^2.0.0-beta.6",
"@tiptap/extension-italic": "^2.0.0-beta.24",
"@tiptap/extension-link": "^2.0.0-beta.8",
"@tiptap/extension-list-item": "^2.0.0-beta.6",
"@tiptap/extension-list-item": "^2.0.0-beta.19",
"@tiptap/extension-mention": "^2.0.0-beta.42",
"@tiptap/extension-ordered-list": "^2.0.0-beta.6",
"@tiptap/extension-ordered-list": "^2.0.0-beta.24",
"@tiptap/extension-paragraph": "^2.0.0-beta.22",
"@tiptap/extension-strike": "^2.0.0-beta.26",
"@tiptap/extension-text": "^2.0.0-beta.15",
"@tiptap/extension-underline": "^2.0.0-beta.7",
"@tiptap/starter-kit": "^2.0.0-beta.37",
"@tiptap/vue-2": "^2.0.0-beta.21",
"@vue-a11y/announcer": "^2.1.0",
"@vue-a11y/skip-to": "^2.1.2",
"@vue/apollo-option": "4.0.0-alpha.11",
"apollo-absinthe-upload-link": "^1.5.0",
"autoprefixer": "^10",
"blurhash": "^1.1.3",
"buefy": "^0.9.0",
"bulma-divider": "^0.2.0",
@ -44,20 +56,24 @@
"intersection-observer": "^0.12.0",
"jwt-decode": "^3.1.2",
"leaflet": "^1.4.0",
"leaflet.locatecontrol": "^0.74.0",
"leaflet.locatecontrol": "^0.76.0",
"lodash": "^4.17.11",
"ngeohash": "^0.6.3",
"p-debounce": "^4.0.0",
"phoenix": "^1.6",
"postcss": "^8",
"register-service-worker": "^1.7.2",
"sanitize-html": "^2.5.3",
"tailwindcss": "^3",
"tippy.js": "^6.2.3",
"unfetch": "^4.2.0",
"v-tooltip": "^2.1.3",
"vue": "^2.6.11",
"vue-class-component": "^7.2.3",
"vue-i18n": "^8.14.0",
"vue-matomo": "^4.1.0",
"vue-meta": "^2.3.1",
"vue-plausible": "^1.3.1",
"vue-property-decorator": "^9.0.0",
"vue-router": "^3.1.6",
"vue-scrollto": "^2.17.1",
@ -65,9 +81,10 @@
"vuedraggable": "^2.24.3"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.1.0",
"@types/jest": "^27.0.2",
"@types/leaflet": "^1.5.2",
"@types/leaflet.locatecontrol": "^0.60.7",
"@types/leaflet.locatecontrol": "^0.74",
"@types/lodash": "^4.14.141",
"@types/ngeohash": "^0.6.2",
"@types/phoenix": "^1.5.2",
@ -78,22 +95,19 @@
"@types/sanitize-html": "^2.5.0",
"@typescript-eslint/eslint-plugin": "^5.3.0",
"@typescript-eslint/parser": "^5.3.0",
"@vue/cli-plugin-babel": "~5.0.0-rc.0",
"@vue/cli-plugin-e2e-cypress": "~5.0.0-rc.0",
"@vue/cli-plugin-eslint": "~5.0.0-rc.0",
"@vue/cli-plugin-pwa": "~5.0.0-rc.0",
"@vue/cli-plugin-router": "~5.0.0-rc.0",
"@vue/cli-plugin-typescript": "~5.0.0-rc.0",
"@vue/cli-plugin-unit-jest": "~5.0.0-rc.0",
"@vue/cli-service": "~5.0.0-rc.0",
"@vue/eslint-config-typescript": "^9.0.0",
"@vue/cli-plugin-babel": "~5.0.4",
"@vue/cli-plugin-eslint": "~5.0.4",
"@vue/cli-plugin-pwa": "~5.0.4",
"@vue/cli-plugin-router": "~5.0.4",
"@vue/cli-plugin-typescript": "~5.0.4",
"@vue/cli-plugin-unit-jest": "~5.0.4",
"@vue/cli-service": "~5.0.4",
"@vue/eslint-config-typescript": "^10.0.0",
"@vue/test-utils": "^1.1.0",
"@vue/vue2-jest": "^27.0.0-alpha.3",
"@vue/vue3-jest": "^27.0.0-alpha.1",
"cypress": "^8.3.0",
"eslint": "^8.2.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-cypress": "^2.10.3",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^8.0.3",
@ -102,13 +116,15 @@
"jest-junit": "^13.0.0",
"mock-apollo-client": "^1.1.0",
"prettier": "^2.2.1",
"prettier-eslint": "^13.0.0",
"prettier-eslint": "^14.0.0",
"sass": "^1.34.1",
"sass-loader": "^12.0.0",
"ts-jest": "27",
"typescript": "~4.4.3",
"typescript": "~4.5.5",
"vue-cli-plugin-tailwind": "~3.0.0",
"vue-i18n-extract": "^2.0.4",
"vue-template-compiler": "^2.6.11",
"webpack-cli": "^4.7.0"
}
},
"packageManager": "yarn@3.1.1"
}

6
js/postcss.config.js Normal file
View File

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
js/public/img/mobilizon_default_card.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
js/public/img/mobilizon_logo.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 248.16 46.78">
<title>Mobilizon Logo</title>
<g data-name="header">
<path d="M0 45.82l3.18-40.8a29.88 29.88 0 015.07-.36 27.74 27.74 0 014.95.36l4.86 17.16a92.19 92.19 0 012.34 10.08h.36a92.19 92.19 0 012.34-10.08L28 5.02a29.23 29.23 0 015-.36 29.23 29.23 0 015 .36l3.18 40.8a13.61 13.61 0 01-3.63.42 23.41 23.41 0 01-3.63-.24l-1.2-19.92q-.36-5.52-.48-12.84h-.44l-7.32 26.51a25.62 25.62 0 01-4 .3 23.36 23.36 0 01-3.84-.3L9.36 13.24H9q-.3 8.94-.48 12.84L7.26 46a22.47 22.47 0 01-3.6.24A13.75 13.75 0 010 45.82zM74 31.06q0 8-4.26 12.3a12.21 12.21 0 01-9 3.42 12.21 12.21 0 01-9-3.42q-4.26-4.26-4.26-12.3t4.24-12.31a12.21 12.21 0 019-3.42 12.21 12.21 0 019 3.42Q74 23.02 74 31.06zM60.75 20.98q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM103.2 19.75q2.7 4.11 2.7 11.28T102 42.31a13.18 13.18 0 01-10 4.11 31.41 31.41 0 01-11.34-2V2.2l.4-.45h2.76A4 4 0 0187 2.83a5.38 5.38 0 01.93 3.57v11.94a12.08 12.08 0 017.56-2.7 8.71 8.71 0 017.71 4.11zm-9.72 2a7.28 7.28 0 00-5.58 2.82v16a15 15 0 004.08.54 5.25 5.25 0 004.68-2.67q1.68-2.67 1.68-7.59 0-9.03-4.86-9.1zM121 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014 1.62A6.27 6.27 0 01121 22z" />
<path d="M119.82.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
<path d="M139.08 40.42h2a10.23 10.23 0 01.6 3.18 9.24 9.24 0 01-.18 2.1 38.47 38.47 0 01-5.64.54q-6.48 0-6.48-7v-37l.36-.42h2.88a3.94 3.94 0 013.12 1.05 5.52 5.52 0 01.9 3.57v31.31q-.02 2.67 2.44 2.67zM155.94 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014.05 1.62 6.27 6.27 0 011.43 4.39z" />
<path d="M154.8 2.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
<path d="M163.08 39.22l8.76-11.82q1.32-1.8 4.8-5.7l-.18-.3a63.09 63.09 0 01-7.74.42H163a9.79 9.79 0 01-.24-2.34 15.8 15.8 0 01.42-3.3h20.4a16.31 16.31 0 011 4.26 4.1 4.1 0 01-.78 2.34L175 34.66a64.65 64.65 0 01-4.56 5.7l.18.24q3.12-.3 5.22-.3h2.58a15.35 15.35 0 006.12-.9 9.4 9.4 0 01.72 3.12q0 3.42-4.32 3.42h-18a14.27 14.27 0 01-.9-3.93 5.08 5.08 0 011.04-2.79zM215.88 31.06q0 8-4.26 12.3a13.63 13.63 0 01-18.06 0q-4.26-4.26-4.26-12.3t4.26-12.31a13.63 13.63 0 0118.06 0q4.26 4.27 4.26 12.31zm-13.29-10.08q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM247 25.84v13.32a11 11 0 001.2 5.64 7 7 0 01-4.41 1.56q-2.43 0-3.33-1.14a5.69 5.69 0 01-.9-3.54V27.4a7.74 7.74 0 00-.72-3.87 2.78 2.78 0 00-2.58-1.17 8.62 8.62 0 00-6.3 3v20.58a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3v-29.7l.42-.36h2.76q3.42 0 4.08 3.6 4.38-3.84 8.73-3.84t6.42 2.82a12.17 12.17 0 012.07 7.38z" />
<path d="M57.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84zM198.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84z" fill="#fff" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -203,6 +203,16 @@ export default class App extends Vue {
this.interval = undefined;
}
@Watch("config")
async initializeStatistics(config: IConfig) {
if (config) {
const { statistics } = (await import("./services/statistics")) as {
statistics: (config: IConfig, environment: Record<string, any>) => void;
};
statistics(config, { router: this.$router, version: config.version });
}
}
@Watch("$route", { immediate: true })
updateAnnouncement(route: Route): void {
const pageTitle = this.extractPageTitleFromRoute(route);
@ -216,8 +226,12 @@ export default class App extends Vue {
// Set the focus to the router view
// https://marcus.io/blog/accessible-routing-vuejs
setTimeout(() => {
const focusTarget = this.routerView?.$el as HTMLElement;
if (focusTarget) {
const focusTarget = (
this.routerView?.$refs?.componentFocusTarget !== undefined
? this.routerView?.$refs?.componentFocusTarget
: this.routerView?.$el
) as HTMLElement;
if (focusTarget && focusTarget instanceof Element) {
// Make focustarget programmatically focussable
focusTarget.setAttribute("tabindex", "-1");

View File

@ -70,6 +70,9 @@ export const typePolicies: TypePolicies = {
participantStats: { merge: replaceMergePolicy },
},
},
Instance: {
keyFields: ["domain"],
},
RootQueryType: {
fields: {
relayFollowers: paginatedLimitPagination<IFollower>(),

Binary file not shown.

9
js/src/assets/logo.svg Normal file
View File

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60">
<path style="opacity:0;fill:#fea72b;fill-opacity:1;stroke:none;stroke-opacity:0" d="M-5.801-6.164h72.69v72.871h-72.69z" />
<g data-name="Calque 2">
<g data-name="header">
<path d="M26.58 27.06q0 8-4.26 12.3a12.21 12.21 0 0 1-9 3.42 12.21 12.21 0 0 1-9-3.42Q0 35.1 0 27.06q0-8.04 4.26-12.3a12.21 12.21 0 0 1 9-3.42 12.21 12.21 0 0 1 9 3.42q4.32 4.24 4.32 12.3zM13.29 17q-5.67 0-5.67 10.06t5.67 10.08q5.71 0 5.71-10.08T13.29 17z" style="fill:#3a384c;fill-opacity:1" transform="translate(14.627 5.256) scale(1.15671)" />
<path d="M9 6.78a7.37 7.37 0 0 1-.6-3 7.37 7.37 0 0 1 .6-3A8.09 8.09 0 0 1 12.83 0a7.05 7.05 0 0 1 3.69.84 7.37 7.37 0 0 1 .6 3 7.37 7.37 0 0 1-.6 3 7.46 7.46 0 0 1-3.87.84A6.49 6.49 0 0 1 9 6.78z" style="fill:#fff" transform="translate(14.627 5.256) scale(1.15671)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 248.16 46.78">
<title>Mobilizon Logo</title>
<g data-name="header">
<path d="M0 45.82l3.18-40.8a29.88 29.88 0 015.07-.36 27.74 27.74 0 014.95.36l4.86 17.16a92.19 92.19 0 012.34 10.08h.36a92.19 92.19 0 012.34-10.08L28 5.02a29.23 29.23 0 015-.36 29.23 29.23 0 015 .36l3.18 40.8a13.61 13.61 0 01-3.63.42 23.41 23.41 0 01-3.63-.24l-1.2-19.92q-.36-5.52-.48-12.84h-.44l-7.32 26.51a25.62 25.62 0 01-4 .3 23.36 23.36 0 01-3.84-.3L9.36 13.24H9q-.3 8.94-.48 12.84L7.26 46a22.47 22.47 0 01-3.6.24A13.75 13.75 0 010 45.82zM74 31.06q0 8-4.26 12.3a12.21 12.21 0 01-9 3.42 12.21 12.21 0 01-9-3.42q-4.26-4.26-4.26-12.3t4.24-12.31a12.21 12.21 0 019-3.42 12.21 12.21 0 019 3.42Q74 23.02 74 31.06zM60.75 20.98q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM103.2 19.75q2.7 4.11 2.7 11.28T102 42.31a13.18 13.18 0 01-10 4.11 31.41 31.41 0 01-11.34-2V2.2l.4-.45h2.76A4 4 0 0187 2.83a5.38 5.38 0 01.93 3.57v11.94a12.08 12.08 0 017.56-2.7 8.71 8.71 0 017.71 4.11zm-9.72 2a7.28 7.28 0 00-5.58 2.82v16a15 15 0 004.08.54 5.25 5.25 0 004.68-2.67q1.68-2.67 1.68-7.59 0-9.03-4.86-9.1zM121 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014 1.62A6.27 6.27 0 01121 22z" />
<path d="M119.82.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
<path d="M139.08 40.42h2a10.23 10.23 0 01.6 3.18 9.24 9.24 0 01-.18 2.1 38.47 38.47 0 01-5.64.54q-6.48 0-6.48-7v-37l.36-.42h2.88a3.94 3.94 0 013.12 1.05 5.52 5.52 0 01.9 3.57v31.31q-.02 2.67 2.44 2.67zM155.94 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014.05 1.62 6.27 6.27 0 011.43 4.39z" />
<path d="M154.8 2.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
<path d="M163.08 39.22l8.76-11.82q1.32-1.8 4.8-5.7l-.18-.3a63.09 63.09 0 01-7.74.42H163a9.79 9.79 0 01-.24-2.34 15.8 15.8 0 01.42-3.3h20.4a16.31 16.31 0 011 4.26 4.1 4.1 0 01-.78 2.34L175 34.66a64.65 64.65 0 01-4.56 5.7l.18.24q3.12-.3 5.22-.3h2.58a15.35 15.35 0 006.12-.9 9.4 9.4 0 01.72 3.12q0 3.42-4.32 3.42h-18a14.27 14.27 0 01-.9-3.93 5.08 5.08 0 011.04-2.79zM215.88 31.06q0 8-4.26 12.3a13.63 13.63 0 01-18.06 0q-4.26-4.26-4.26-12.3t4.26-12.31a13.63 13.63 0 0118.06 0q4.26 4.27 4.26 12.31zm-13.29-10.08q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM247 25.84v13.32a11 11 0 001.2 5.64 7 7 0 01-4.41 1.56q-2.43 0-3.33-1.14a5.69 5.69 0 01-.9-3.54V27.4a7.74 7.74 0 00-.72-3.87 2.78 2.78 0 00-2.58-1.17 8.62 8.62 0 00-6.3 3v20.58a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3v-29.7l.42-.36h2.76q3.42 0 4.08 3.6 4.38-3.84 8.73-3.84t6.42 2.82a12.17 12.17 0 012.07 7.38z" />
<path d="M57.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84zM198.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84z" fill="#fff" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,5 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

View File

@ -7,10 +7,6 @@
@import "styles/vue-announcer.scss";
@import "styles/vue-skip-to.scss";
// a {
// color: $violet-2;
// }
a.out,
.content a,
.ProseMirror a {
@ -19,18 +15,10 @@ a.out,
text-decoration-thickness: 2px;
}
// input.input {
// border-color: $input-border-color !important;
// }
.section {
padding: 1rem 1% 4rem;
}
figure img.is-rounded {
border: 1px solid #cdcaea;
}
$color-black: #000;
.mention {

View File

@ -1,118 +0,0 @@
<template>
<b-autocomplete
:data="baseData"
:placeholder="$t('Actor')"
v-model="name"
field="preferredUsername"
:loading="$apollo.loading"
check-infinite-scroll
@typing="getAsyncData"
@select="handleSelect"
@infinite-scroll="getAsyncData"
>
<template #default="props">
<div class="media">
<div class="media-left">
<img
width="32"
:src="props.option.avatar.url"
v-if="props.option.avatar"
alt=""
/>
<b-icon v-else icon="account-circle" />
</div>
<div class="media-content">
<span v-if="props.option.name">
{{ props.option.name }}
<br />
<small>{{ `@${props.option.preferredUsername}` }}</small>
<small v-if="props.option.domain">{{
`@${props.option.domain}`
}}</small>
</span>
<span v-else>
{{ `@${props.option.preferredUsername}` }}
</span>
</div>
</div>
</template>
<template slot="footer">
<span class="has-text-grey" v-show="page > totalPages">
Thats it! No more movies found.
</span>
</template>
</b-autocomplete>
</template>
<script lang="ts">
import { Component, Model, Vue, Watch } from "vue-property-decorator";
import debounce from "lodash/debounce";
import { IPerson } from "@/types/actor";
import { SEARCH_PERSONS } from "@/graphql/search";
import { Paginate } from "@/types/paginate";
const SEARCH_PERSON_LIMIT = 10;
@Component
export default class ActorAutoComplete extends Vue {
@Model("change", { type: Object }) readonly defaultSelected!: IPerson | null;
baseData: IPerson[] = [];
selected: IPerson | null = this.defaultSelected;
name: string = this.defaultSelected
? this.defaultSelected.preferredUsername
: "";
page = 1;
totalPages = 1;
mounted(): void {
this.selected = this.defaultSelected;
}
data(): Record<string, unknown> {
return {
getAsyncData: debounce(this.doGetAsyncData, 500),
};
}
@Watch("defaultSelected")
updateDefaultSelected(defaultSelected: IPerson): void {
console.log("update defaultSelected", defaultSelected);
this.selected = defaultSelected;
this.name = defaultSelected.preferredUsername;
}
handleSelect(selected: IPerson): void {
this.selected = selected;
this.$emit("change", selected);
}
async doGetAsyncData(name: string): Promise<void> {
this.baseData = [];
if (this.name !== name) {
this.name = name;
this.page = 1;
}
if (!name.length) {
this.page = 1;
this.totalPages = 1;
return;
}
const {
data: { searchPersons },
} = await this.$apollo.query<{ searchPersons: Paginate<IPerson> }>({
query: SEARCH_PERSONS,
variables: {
searchText: this.name,
page: this.page,
limit: SEARCH_PERSON_LIMIT,
},
});
this.totalPages = Math.ceil(searchPersons.total / SEARCH_PERSON_LIMIT);
this.baseData.push(...searchPersons.elements);
}
}
</script>

View File

@ -1,31 +1,86 @@
<template>
<div class="media" style="align-items: top" dir="auto">
<div class="media-left">
<figure class="image is-32x32" v-if="actor.avatar">
<img class="is-rounded" :src="actor.avatar.url" alt="" />
<div
class="bg-white rounded-lg flex space-x-4 items-center"
:class="{ 'flex-col p-4 shadow-md sm:p-8 pb-10 w-80': !inline }"
>
<div>
<figure class="w-12 h-12" v-if="actor.avatar">
<img
class="rounded-lg"
:src="actor.avatar.url"
alt=""
width="48"
height="48"
/>
</figure>
<b-icon v-else size="is-medium" icon="account-circle" />
<b-icon
v-else
:size="inline ? 'is-medium' : 'is-large'"
icon="account-circle"
class="ltr:-mr-0.5 rtl:-ml-0.5"
/>
</div>
<div class="media-content">
<p>
{{ actor.name || `@${usernameWithDomain(actor)}` }}
</p>
<p class="has-text-grey-dark" v-if="actor.name">
<div :class="{ 'text-center': !inline }" class="overflow-hidden w-full">
<h5
class="text-xl font-medium violet-title tracking-tight text-gray-900 whitespace-pre-line line-clamp-2"
>
{{ displayName(actor) }}
</h5>
<p class="text-gray-500 truncate" v-if="actor.name">
<span dir="ltr">@{{ usernameWithDomain(actor) }}</span>
</p>
<div
v-if="full"
class="summary"
:class="{ limit: limit }"
class="only-first-child"
:class="{
'line-clamp-3': limit,
'line-clamp-10': !limit,
}"
v-html="actor.summary"
/>
</div>
</div>
<!-- <div
class="p-4 bg-white rounded-lg shadow-md sm:p-8 flex items-center space-x-4"
dir="auto"
>
<div class="flex-shrink-0">
<figure class="w-12 h-12" v-if="actor.avatar">
<img
class="rounded-lg"
:src="actor.avatar.url"
alt=""
width="48"
height="48"
/>
</figure>
<b-icon
v-else
size="is-large"
icon="account-circle"
class="ltr:-mr-0.5 rtl:-ml-0.5"
/>
</div>
<div class="flex-1 min-w-0">
<h5 class="text-xl font-medium violet-title tracking-tight text-gray-900">
{{ displayName(actor) }}
</h5>
<p class="text-gray-500 truncate" v-if="actor.name">
<span dir="ltr">@{{ usernameWithDomain(actor) }}</span>
</p>
<div
v-if="full"
class="line-clamp-3"
:class="{ limit: limit }"
v-html="actor.summary"
/>
</div>
</div> -->
</template>
<script lang="ts">
import { Component, Vue, Prop } from "vue-property-decorator";
import { IActor, usernameWithDomain } from "../../types/actor";
import { displayName, IActor, usernameWithDomain } from "../../types/actor";
@Component
export default class ActorCard extends Vue {
@ -33,140 +88,19 @@ export default class ActorCard extends Vue {
@Prop({ required: false, type: Boolean, default: false }) full!: boolean;
@Prop({ required: false, type: Boolean, default: false }) inline!: boolean;
@Prop({ required: false, type: Boolean, default: false }) popover!: boolean;
@Prop({ required: false, type: Boolean, default: true }) limit!: boolean;
usernameWithDomain = usernameWithDomain;
displayName = displayName;
}
</script>
<style lang="scss" scoped>
.summary.limit {
max-width: 25rem;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
</style>
<style lang="scss">
@use "@/styles/_mixins" as *;
.media {
.media-left {
margin-right: initial;
@include margin-right(1rem);
}
}
.tooltip {
display: block !important;
z-index: 10000;
.tooltip-inner {
background: black;
color: white;
border-radius: 16px;
padding: 5px 10px 4px;
}
.tooltip-arrow {
width: 0;
height: 0;
border-style: solid;
position: absolute;
margin: 5px;
border-color: black;
z-index: 1;
}
&[x-placement^="top"] {
margin-bottom: 5px;
.tooltip-arrow {
border-width: 5px 5px 0 5px;
border-left-color: transparent !important;
border-right-color: transparent !important;
border-bottom-color: transparent !important;
bottom: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
}
&[x-placement^="bottom"] {
margin-top: 5px;
.tooltip-arrow {
border-width: 0 5px 5px 5px;
border-left-color: transparent !important;
border-right-color: transparent !important;
border-top-color: transparent !important;
top: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
}
&[x-placement^="right"] {
@include margin-left(5px);
.tooltip-arrow {
border-width: 5px 5px 5px 0;
border-left-color: transparent !important;
border-top-color: transparent !important;
border-bottom-color: transparent !important;
left: -5px;
top: calc(50% - 5px);
@include margin-left(0);
@include margin-right(0);
}
}
&[x-placement^="left"] {
@include margin-right(5px);
.tooltip-arrow {
border-width: 5px 0 5px 5px;
border-top-color: transparent !important;
border-right-color: transparent !important;
border-bottom-color: transparent !important;
right: -5px;
top: calc(50% - 5px);
@include margin-left(0);
@include margin-right(0);
}
}
&.popover {
$color: #f9f9f9;
.popover-inner {
background: lighten($background-color, 65%);
color: black;
padding: 24px;
border-radius: 5px;
box-shadow: 0 5px 30px rgba(black, 0.1);
}
.popover-arrow {
border-color: $color;
}
}
&[aria-hidden="true"] {
visibility: hidden;
opacity: 0;
transition: opacity 0.15s, visibility 0.15s;
}
&[aria-hidden="false"] {
visibility: visible;
opacity: 1;
transition: opacity 0.15s;
}
<style scoped>
.only-first-child ::v-deep :not(:first-child) {
display: none;
}
</style>

View File

@ -1,28 +1,33 @@
<template>
<div class="actor-inline">
<div class="actor-avatar">
<figure class="image is-24x24" v-if="actor.avatar">
<div class="inline-flex items-start">
<div class="flex-none mr-2">
<figure class="image is-48x48" v-if="actor.avatar">
<img class="is-rounded" :src="actor.avatar.url" alt="" />
</figure>
<b-icon v-else size="is-medium" icon="account-circle" />
<b-icon v-else size="is-large" icon="account-circle" />
</div>
<div class="actor-name">
<p>
{{ actor.name || `@${usernameWithDomain(actor)}` }}
<div class="flex-auto">
<p class="text-base line-clamp-3 md:line-clamp-2 max-w-xl">
{{ displayName(actor) }}
</p>
<p class="text-sm text-gray-500 truncate">
@{{ usernameWithDomain(actor) }}
</p>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop } from "vue-property-decorator";
import { IActor, usernameWithDomain } from "../../types/actor";
import { displayName, IActor, usernameWithDomain } from "../../types/actor";
@Component
export default class ActorInline extends Vue {
@Prop({ required: true, type: Object }) actor!: IActor;
usernameWithDomain = usernameWithDomain;
displayName = displayName;
}
</script>
<style lang="scss" scoped>

View File

@ -41,8 +41,8 @@
)
}}
</p>
<div class="has-text-centered">
<code>{{ `${currentActor.preferredUsername}@${domain}` }}</code>
<div class="has-text-centered has-text-primary has-background-success">
<pre>{{ `${currentActor.preferredUsername}@${domain}` }}</pre>
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<template>
<div
class="ellipsis"
class="truncate"
:title="
isDescriptionDifferentFromLocality
? `${physicalAddress.description}, ${physicalAddress.locality}`
@ -8,8 +8,7 @@
"
>
<b-icon icon="map-marker" />
<span v-if="isDescriptionDifferentFromLocality">
{{ physicalAddress.description }},
<span v-if="physicalAddress.locality">
{{ physicalAddress.locality }}
</span>
<span v-else>
@ -35,11 +34,3 @@ export default class InlineAddress extends Vue {
}
}
</script>
<style lang="scss" scoped>
.ellipsis {
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
</style>

View File

@ -1,262 +0,0 @@
<template>
<div>
<b-table
v-show="relayFollowers.elements.length > 0"
:data="relayFollowers.elements"
:loading="$apollo.queries.relayFollowers.loading"
ref="table"
:checked-rows.sync="checkedRows"
detailed
:show-detail-icon="false"
paginated
backend-pagination
:current-page.sync="page"
:aria-next-label="$t('Next page')"
:aria-previous-label="$t('Previous page')"
:aria-page-label="$t('Page')"
:aria-current-label="$t('Current page')"
:total="relayFollowers.total"
:per-page="FOLLOWERS_PER_PAGE"
@page-change="onFollowersPageChange"
checkable
checkbox-position="left"
>
<b-table-column
field="actor.id"
label="ID"
width="40"
numeric
v-slot="props"
>{{ props.row.actor.id }}</b-table-column
>
<b-table-column
field="actor.type"
:label="$t('Type')"
width="80"
v-slot="props"
>
<b-icon icon="lan" v-if="RelayMixin.isInstance(props.row.actor)" />
<b-icon icon="account-circle" v-else />
</b-table-column>
<b-table-column
field="approved"
:label="$t('Status')"
width="100"
sortable
centered
v-slot="props"
>
<span
:class="`tag ${props.row.approved ? 'is-success' : 'is-danger'}`"
>{{ props.row.approved ? $t("Accepted") : $t("Pending") }}</span
>
</b-table-column>
<b-table-column field="actor.domain" :label="$t('Domain')" sortable>
<template v-slot:default="props">
<a
@click="toggle(props.row)"
v-if="RelayMixin.isInstance(props.row.actor)"
>{{ props.row.actor.domain }}</a
>
<a @click="toggle(props.row)" v-else>{{
`${props.row.actor.preferredUsername}@${props.row.actor.domain}`
}}</a>
</template>
</b-table-column>
<b-table-column
field="targetActor.updatedAt"
:label="$t('Date')"
sortable
v-slot="props"
>
<span
:title="$options.filters.formatDateTimeString(props.row.updatedAt)"
>{{
formatDistanceToNow(new Date(props.row.updatedAt), {
locale: $dateFnsLocale,
})
}}</span
></b-table-column
>
<template #detail="props">
<article>
<div class="content">
<strong>{{ props.row.actor.name }}</strong>
<small v-if="props.row.actor.preferredUsername !== 'relay'"
>@{{ props.row.actor.preferredUsername }}</small
>
<p v-html="props.row.actor.summary" />
</div>
</article>
</template>
<template slot="bottom-left" v-if="checkedRows.length > 0">
<div class="buttons">
<b-button
@click="acceptRelays"
type="is-success"
v-if="checkedRowsHaveAtLeastOneToApprove"
>
{{
$tc(
"No instance to approve|Approve instance|Approve {number} instances",
checkedRows.length,
{ number: checkedRows.length }
)
}}
</b-button>
<b-button @click="rejectRelays" type="is-danger">
{{
$tc(
"No instance to reject|Reject instance|Reject {number} instances",
checkedRows.length,
{ number: checkedRows.length }
)
}}
</b-button>
</div>
</template>
</b-table>
<b-message type="is-danger" v-if="relayFollowers.elements.length === 0">{{
$t("No instance follows your instance yet.")
}}</b-message>
</div>
</template>
<script lang="ts">
import { Component, Mixins } from "vue-property-decorator";
import { SnackbarProgrammatic as Snackbar } from "buefy";
import { formatDistanceToNow } from "date-fns";
import {
ACCEPT_RELAY,
REJECT_RELAY,
RELAY_FOLLOWERS,
} from "../../graphql/admin";
import { IFollower } from "../../types/actor/follower.model";
import RelayMixin from "../../mixins/relay";
import RouteName from "@/router/name";
import { Paginate } from "@/types/paginate";
const FOLLOWERS_PER_PAGE = 10;
@Component({
apollo: {
relayFollowers: {
query: RELAY_FOLLOWERS,
variables() {
return {
page: this.page,
limit: FOLLOWERS_PER_PAGE,
};
},
},
},
metaInfo() {
return {
title: this.$t("Followers") as string,
titleTemplate: "%s | Mobilizon",
};
},
})
export default class Followers extends Mixins(RelayMixin) {
RelayMixin = RelayMixin;
formatDistanceToNow = formatDistanceToNow;
relayFollowers: Paginate<IFollower> = { elements: [], total: 0 };
checkedRows: IFollower[] = [];
FOLLOWERS_PER_PAGE = FOLLOWERS_PER_PAGE;
toggle(row: Record<string, unknown>): void {
this.table.toggleDetails(row);
}
get page(): number {
return parseInt((this.$route.query.page as string) || "1", 10);
}
set page(page: number) {
this.pushRouter(RouteName.RELAY_FOLLOWERS, {
page: page.toString(),
});
}
acceptRelays(): void {
this.checkedRows.forEach((row: IFollower) => {
this.acceptRelay(`${row.actor.preferredUsername}@${row.actor.domain}`);
});
}
rejectRelays(): void {
this.checkedRows.forEach((row: IFollower) => {
this.rejectRelay(`${row.actor.preferredUsername}@${row.actor.domain}`);
});
}
async acceptRelay(address: string): Promise<void> {
try {
await this.$apollo.mutate({
mutation: ACCEPT_RELAY,
variables: {
address,
},
});
await this.$apollo.queries.relayFollowers.refetch();
this.checkedRows = [];
} catch (e: any) {
if (e.message) {
Snackbar.open({
message: e.message,
type: "is-danger",
position: "is-bottom",
});
}
}
}
async rejectRelay(address: string): Promise<void> {
try {
await this.$apollo.mutate({
mutation: REJECT_RELAY,
variables: {
address,
},
});
await this.$apollo.queries.relayFollowers.refetch();
this.checkedRows = [];
} catch (e: any) {
if (e.message) {
Snackbar.open({
message: e.message,
type: "is-danger",
position: "is-bottom",
});
}
}
}
get checkedRowsHaveAtLeastOneToApprove(): boolean {
return this.checkedRows.some((checkedRow) => !checkedRow.approved);
}
async onFollowersPageChange(page: number): Promise<void> {
this.page = page;
try {
await this.$apollo.queries.relayFollowers.fetchMore({
variables: {
page: this.page,
limit: FOLLOWERS_PER_PAGE,
},
});
} catch (err: any) {
console.error(err);
}
}
}
</script>

View File

@ -1,311 +0,0 @@
<template>
<div>
<form @submit="followRelay">
<b-field
:label="$t('Add an instance')"
custom-class="add-relay"
horizontal
>
<b-field grouped expanded size="is-large">
<p class="control">
<b-input
v-model="newRelayAddress"
:placeholder="$t('Ex: mobilizon.fr')"
/>
</p>
<p class="control">
<b-button type="is-primary" native-type="submit">{{
$t("Add an instance")
}}</b-button>
</p>
</b-field>
</b-field>
</form>
<b-table
v-show="relayFollowings.elements.length > 0"
:data="relayFollowings.elements"
:loading="$apollo.queries.relayFollowings.loading"
ref="table"
:checked-rows.sync="checkedRows"
:is-row-checkable="(row) => row.id !== 3"
detailed
:show-detail-icon="false"
paginated
backend-pagination
:current-page.sync="page"
:aria-next-label="$t('Next page')"
:aria-previous-label="$t('Previous page')"
:aria-page-label="$t('Page')"
:aria-current-label="$t('Current page')"
:total="relayFollowings.total"
:per-page="FOLLOWINGS_PER_PAGE"
@page-change="onFollowingsPageChange"
checkable
checkbox-position="left"
>
<b-table-column
field="targetActor.id"
label="ID"
width="40"
numeric
v-slot="props"
>{{ props.row.targetActor.id }}</b-table-column
>
<b-table-column
field="targetActor.type"
:label="$t('Type')"
width="80"
v-slot="props"
>
<b-icon
icon="lan"
v-if="RelayMixin.isInstance(props.row.targetActor)"
/>
<b-icon icon="account-circle" v-else />
</b-table-column>
<b-table-column
field="approved"
:label="$t('Status')"
width="100"
sortable
centered
v-slot="props"
>
<span
:class="`tag ${props.row.approved ? 'is-success' : 'is-danger'}`"
>{{ props.row.approved ? $t("Accepted") : $t("Pending") }}</span
>
</b-table-column>
<b-table-column field="targetActor.domain" :label="$t('Domain')" sortable>
<template v-slot:default="props">
<a
@click="toggle(props.row)"
v-if="RelayMixin.isInstance(props.row.targetActor)"
>{{ props.row.targetActor.domain }}</a
>
<a @click="toggle(props.row)" v-else>{{
`${props.row.targetActor.preferredUsername}@${props.row.targetActor.domain}`
}}</a>
</template>
</b-table-column>
<b-table-column
field="targetActor.updatedAt"
:label="$t('Date')"
sortable
v-slot="props"
>
<span
:title="$options.filters.formatDateTimeString(props.row.updatedAt)"
>{{
formatDistanceToNow(new Date(props.row.updatedAt), {
locale: $dateFnsLocale,
})
}}</span
></b-table-column
>
<template #detail="props">
<article>
<div class="content">
<strong>{{ props.row.targetActor.name }}</strong>
<small v-if="props.row.actor.preferredUsername !== 'relay'"
>@{{ props.row.targetActor.preferredUsername }}</small
>
<p v-html="props.row.targetActor.summary" />
</div>
</article>
</template>
<template slot="bottom-left" v-if="checkedRows.length > 0">
<b-button @click="removeRelays" type="is-danger">
{{
$tc(
"No instance to remove|Remove instance|Remove {number} instances",
checkedRows.length,
{ number: checkedRows.length }
)
}}
</b-button>
</template>
</b-table>
<b-message type="is-danger" v-if="relayFollowings.total === 0">{{
$t("You don't follow any instances yet.")
}}</b-message>
</div>
</template>
<script lang="ts">
import { Component, Mixins } from "vue-property-decorator";
import { SnackbarProgrammatic as Snackbar } from "buefy";
import { formatDistanceToNow } from "date-fns";
import { ADD_RELAY, REMOVE_RELAY } from "../../graphql/admin";
import { IFollower } from "../../types/actor/follower.model";
import RelayMixin from "../../mixins/relay";
import { RELAY_FOLLOWINGS } from "@/graphql/admin";
import { Paginate } from "@/types/paginate";
import RouteName from "@/router/name";
import { ApolloCache, FetchResult, Reference } from "@apollo/client/core";
import gql from "graphql-tag";
const FOLLOWINGS_PER_PAGE = 10;
@Component({
apollo: {
relayFollowings: {
query: RELAY_FOLLOWINGS,
variables() {
return {
page: this.page,
limit: FOLLOWINGS_PER_PAGE,
};
},
},
},
metaInfo() {
return {
title: this.$t("Followings") as string,
titleTemplate: "%s | Mobilizon",
};
},
})
export default class Followings extends Mixins(RelayMixin) {
newRelayAddress = "";
RelayMixin = RelayMixin;
formatDistanceToNow = formatDistanceToNow;
relayFollowings: Paginate<IFollower> = { elements: [], total: 0 };
FOLLOWINGS_PER_PAGE = FOLLOWINGS_PER_PAGE;
checkedRows: IFollower[] = [];
get page(): number {
return parseInt((this.$route.query.page as string) || "1", 10);
}
set page(page: number) {
this.pushRouter(RouteName.RELAY_FOLLOWINGS, {
page: page.toString(),
});
}
async onFollowingsPageChange(page: number): Promise<void> {
this.page = page;
try {
await this.$apollo.queries.relayFollowings.fetchMore({
variables: {
page: this.page,
limit: FOLLOWINGS_PER_PAGE,
},
});
} catch (err: any) {
console.error(err);
}
}
async followRelay(e: Event): Promise<void> {
e.preventDefault();
try {
await this.$apollo.mutate<{ relayFollowings: Paginate<IFollower> }>({
mutation: ADD_RELAY,
variables: {
address: this.newRelayAddress.trim(), // trim to fix copy and paste domain name spaces and tabs
},
update(
cache: ApolloCache<{ relayFollowings: Paginate<IFollower> }>,
{ data }: FetchResult
) {
cache.modify({
fields: {
relayFollowings(
existingFollowings = { elements: [], total: 0 },
{ readField }
) {
const newFollowingRef = cache.writeFragment({
id: `${data?.addRelay.__typename}:${data?.addRelay.id}`,
data: data?.addRelay,
fragment: gql`
fragment NewFollowing on Follower {
id
}
`,
});
if (
existingFollowings.elements.some(
(ref: Reference) =>
readField("id", ref) === data?.addRelay.id
)
) {
return existingFollowings;
}
return {
total: existingFollowings.total + 1,
elements: [newFollowingRef, ...existingFollowings.elements],
};
},
},
broadcast: false,
});
},
});
this.newRelayAddress = "";
} catch (err: any) {
if (err.message) {
Snackbar.open({
message: err.message,
type: "is-danger",
position: "is-bottom",
});
}
}
}
removeRelays(): void {
this.checkedRows.forEach((row: IFollower) => {
this.removeRelay(row);
});
}
async removeRelay(follower: IFollower): Promise<void> {
const address = `${follower.targetActor.preferredUsername}@${follower.targetActor.domain}`;
try {
await this.$apollo.mutate<{ removeRelay: IFollower }>({
mutation: REMOVE_RELAY,
variables: {
address,
},
update(cache: ApolloCache<{ removeRelay: IFollower }>) {
cache.modify({
fields: {
relayFollowings(existingFollowingRefs, { readField }) {
return {
total: existingFollowingRefs.total - 1,
elements: existingFollowingRefs.elements.filter(
(followingRef: Reference) =>
follower.id !== readField("id", followingRef)
),
};
},
},
});
},
});
await this.$apollo.queries.relayFollowings.refetch();
this.checkedRows = [];
} catch (e: any) {
if (e.message) {
Snackbar.open({
message: e.message,
type: "is-danger",
position: "is-bottom",
});
}
}
}
}
</script>

View File

@ -195,10 +195,18 @@
<script lang="ts">
import { Component, Prop, Vue, Watch } from "vue-property-decorator";
import { Editor, EditorContent, BubbleMenu } from "@tiptap/vue-2";
import StarterKit from "@tiptap/starter-kit";
import Blockquote from "@tiptap/extension-blockquote";
import BulletList from "@tiptap/extension-bullet-list";
import Heading from "@tiptap/extension-heading";
import Document from "@tiptap/extension-document";
import Paragraph from "@tiptap/extension-paragraph";
import Bold from "@tiptap/extension-bold";
import Italic from "@tiptap/extension-italic";
import Strike from "@tiptap/extension-strike";
import Text from "@tiptap/extension-text";
import Dropcursor from "@tiptap/extension-dropcursor";
import Gapcursor from "@tiptap/extension-gapcursor";
import History from "@tiptap/extension-history";
import { IActor, IPerson, usernameWithDomain } from "../types/actor";
import CustomImage from "./Editor/Image";
import { UPLOAD_MEDIA } from "../graphql/upload";
@ -210,7 +218,6 @@ import OrderedList from "@tiptap/extension-ordered-list";
import ListItem from "@tiptap/extension-list-item";
import Underline from "@tiptap/extension-underline";
import Link from "@tiptap/extension-link";
import CharacterCount from "@tiptap/extension-character-count";
import { AutoDir } from "./Editor/Autodir";
import sanitizeHtml from "sanitize-html";
@ -269,7 +276,9 @@ export default class EditorComponent extends Vue {
transformPastedHTML: this.transformPastedHTML,
},
extensions: [
StarterKit,
Blockquote,
BulletList,
Heading,
Document,
Paragraph,
Text,
@ -279,12 +288,15 @@ export default class EditorComponent extends Vue {
CustomImage,
AutoDir,
Underline,
Bold,
Italic,
Strike,
Dropcursor,
Gapcursor,
History,
Link.configure({
HTMLAttributes: { target: "_blank", rel: "noopener noreferrer ugc" },
}),
CharacterCount.configure({
limit: this.maxSize,
}),
],
injectCSS: false,
content: this.value,
@ -554,7 +566,7 @@ $color-white: #eee;
}
&.is-selected,
&:hover {
background-color: rgba($color-white, 0.2);
background-color: rgba(#eee, 0.2);
}
&.is-empty {
opacity: 0.5;
@ -571,7 +583,7 @@ $color-white: #eee;
padding: 0;
font-size: 1rem;
text-align: inherit;
color: $color-white;
color: #eee;
border-radius: 5px;
}

View File

@ -7,6 +7,8 @@ import apolloProvider from "@/vue-apollo";
import { IPerson } from "@/types/actor";
import pDebounce from "p-debounce";
import { NormalizedCacheObject } from "@apollo/client/cache/inmemory/types";
import { MentionOptions } from "@tiptap/extension-mention";
import { Editor } from "@tiptap/core";
const client =
apolloProvider.defaultClient as ApolloClient<NormalizedCacheObject>;
@ -24,13 +26,21 @@ const fetchItems = async (query: string): Promise<IPerson[]> => {
const debouncedFetchItems = pDebounce(fetchItems, 200);
const mentionOptions: Partial<any> = {
const mentionOptions: MentionOptions = {
HTMLAttributes: {
class: "mention",
dir: "ltr",
},
renderLabel({ options, node }) {
return `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`;
},
suggestion: {
items: async (query: string): Promise<IPerson[]> => {
items: async ({
query,
}: {
query: string;
editor: Editor;
}): Promise<IPerson[]> => {
if (query === "") {
return [];
}
@ -70,8 +80,12 @@ const mentionOptions: Partial<any> = {
return component.ref?.onKeyDown(props);
},
onExit() {
popup[0].destroy();
component.destroy();
if (popup && popup[0]) {
popup[0].destroy();
}
if (component) {
component.destroy();
}
},
};
},

View File

@ -7,7 +7,7 @@
:key="index"
@click="selectItem(index)"
>
<actor-card :actor="item" />
<actor-inline :actor="item" />
</button>
</div>
</template>
@ -16,11 +16,11 @@
import { Vue, Component, Prop, Watch } from "vue-property-decorator";
import { displayName, usernameWithDomain } from "@/types/actor/actor.model";
import { IPerson } from "@/types/actor";
import ActorCard from "../../components/Account/ActorCard.vue";
import ActorInline from "../../components/Account/ActorInline.vue";
@Component({
components: {
ActorCard,
ActorInline,
},
})
export default class MentionList extends Vue {

View File

@ -5,10 +5,14 @@
.ProseMirror {
position: relative;
}
.ProseMirror {
word-wrap: break-word;
white-space: pre-wrap;
white-space: break-spaces;
-webkit-font-variant-ligatures: none;
font-variant-ligatures: none;
font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
& [contenteditable="false"] {
white-space: normal;
@ -16,14 +20,22 @@
& [contenteditable="false"] [contenteditable="true"] {
white-space: pre-wrap;
}
pre {
& pre {
white-space: pre-wrap;
}
}
img.ProseMirror-separator {
display: inline !important;
border: none !important;
margin: 0 !important;
width: 1px !important;
height: 1px !important;
}
.ProseMirror-gapcursor {
display: none;
pointer-events: none;
position: absolute;
margin: 0;
&:after {
content: "";
@ -40,16 +52,17 @@
visibility: hidden;
}
}
.ProseMirror-hideselection * {
&::selection {
.ProseMirror-hideselection {
*::selection {
background: transparent;
}
&::-moz-selection {
*::-moz-selection {
background: transparent;
}
caret-color: transparent;
* {
caret-color: transparent;
}
}
.ProseMirror-focused .ProseMirror-gapcursor {
display: block;
}

View File

@ -48,13 +48,75 @@
$t("Mobilizon")
}}</a>
</i18n>
{{
$t(
"We improve this software thanks to your feedback. To let us know about this issue, two possibilities (both unfortunately require user account creation):"
)
}}
<span v-if="sentryEnabled && sentryReady">
{{
$t(
"We collect your feedback and the error information in order to improve this service."
)
}}</span
>
<span v-else>
{{
$t(
"We improve this software thanks to your feedback. To let us know about this issue, two possibilities (both unfortunately require user account creation):"
)
}}
</span>
</p>
<div class="content">
<form
v-if="sentryEnabled && sentryReady && !submittedFeedback"
@submit.prevent="sendErrorToSentry"
>
<b-field :label="$t('What happened?')" label-for="what-happened">
<b-input
v-model="feedback"
type="textarea"
id="what-happened"
:placeholder="$t(`I've clicked on X, then on Y`)"
/>
</b-field>
<b-button icon-left="send" native-type="submit" type="is-primary">{{
$t("Send feedback")
}}</b-button>
<p class="content">
{{
$t(
"Please add as many details as possible to help identify the problem."
)
}}
</p>
</form>
<b-message type="is-danger" v-else-if="feedbackError">
<p>
{{
$t(
"Sorry, we wen't able to save your feedback. Don't worry, we'll try to fix this issue anyway."
)
}}
</p>
<i18n path="You may now close this page or {return_to_the_homepage}.">
<template #return_to_the_homepage>
<router-link :to="{ name: RouteName.HOME }">{{
$t("return to the homepage")
}}</router-link>
</template>
</i18n>
</b-message>
<b-message type="is-success" v-else-if="submittedFeedback">
<p>{{ $t("Thanks a lot, your feedback was submitted!") }}</p>
<i18n path="You may now close this page or {return_to_the_homepage}.">
<template #return_to_the_homepage>
<router-link :to="{ name: RouteName.HOME }">{{
$t("return to the homepage")
}}</router-link>
</template>
</i18n>
</b-message>
<div
class="content"
v-if="!(sentryEnabled && sentryReady) || submittedFeedback"
>
<p v-if="submittedFeedback">{{ $t("You may also:") }}</p>
<ul>
<li>
<a
@ -65,7 +127,7 @@
</li>
<li>
<a
href="https://framagit.org/framasoft/mobilizon/-/issues/new?issuable_template=Bug"
href="https://framagit.org/framasoft/mobilizon/-/issues/"
target="_blank"
>{{
$t("Open an issue on our bug tracker (advanced users)")
@ -74,7 +136,7 @@
</li>
</ul>
</div>
<p class="content">
<p class="content" v-if="!sentryEnabled">
{{
$t(
"Please add as many details as possible to help identify the problem."
@ -89,14 +151,14 @@
<p>{{ $t("Error stacktrace") }}</p>
<pre>{{ error.stack }}</pre>
</details>
<p>
<p v-if="!sentryEnabled">
{{
$t(
"The technical details of the error can help developers solve the problem more easily. Please add them to your feedback."
)
}}
</p>
<div class="buttons">
<div class="buttons" v-if="!sentryEnabled">
<b-tooltip
:label="tooltipConfig.label"
:type="tooltipConfig.type"
@ -115,14 +177,20 @@
</div>
</template>
<script lang="ts">
import { CONTACT } from "@/graphql/config";
import { CONFIG } from "@/graphql/config";
import { checkProviderConfig, convertConfig } from "@/services/statistics";
import { IAnalyticsConfig, IConfig } from "@/types/config.model";
import { Component, Prop, Vue } from "vue-property-decorator";
import { LOGGED_USER } from "@/graphql/user";
import { IUser } from "@/types/current-user.model";
import { ISentryConfiguration } from "@/types/analytics/sentry.model";
import { submitFeedback } from "@/services/statistics/sentry";
import RouteName from "@/router/name";
@Component({
apollo: {
config: {
query: CONTACT,
},
config: CONFIG,
loggedUser: LOGGED_USER,
},
metaInfo() {
return {
@ -138,7 +206,17 @@ export default class ErrorComponent extends Vue {
copied: "success" | "error" | false = false;
config!: { contact: string | null; name: string };
config!: IConfig;
feedback = "";
submittedFeedback = false;
feedbackError = false;
loggedUser!: IUser;
RouteName = RouteName;
async copyErrorToClipboard(): Promise<void> {
try {
@ -193,6 +271,56 @@ export default class ErrorComponent extends Vue {
document.body.removeChild(textArea);
}
get sentryEnabled(): boolean {
return this.sentryProvider?.enabled === true;
}
get sentryProvider(): IAnalyticsConfig | undefined {
return this.config && checkProviderConfig(this.config, "sentry");
}
get sentryConfig(): ISentryConfiguration | undefined {
if (this.sentryProvider?.configuration) {
return convertConfig(
this.sentryProvider?.configuration
) as ISentryConfiguration;
}
return undefined;
}
get sentryReady() {
const eventId = window.sessionStorage.getItem("lastEventId");
const dsn = this.sentryConfig?.dsn;
const organization = this.sentryConfig?.organization;
const project = this.sentryConfig?.project;
const host = this.sentryConfig?.host;
return eventId && dsn && organization && project && host;
}
async sendErrorToSentry() {
try {
const eventId = window.sessionStorage.getItem("lastEventId");
const dsn = this.sentryConfig?.dsn;
const organization = this.sentryConfig?.organization;
const project = this.sentryConfig?.project;
const host = this.sentryConfig?.host;
const endpoint = `https://${host}/api/0/projects/${organization}/${project}/user-feedback/`;
if (eventId && dsn && this.sentryReady) {
await submitFeedback(endpoint, dsn, {
event_id: eventId,
name:
this.loggedUser?.defaultActor?.preferredUsername || "Unknown user",
email: this.loggedUser?.email || "unknown@email.org",
comments: this.feedback,
});
this.submittedFeedback = true;
}
} catch (error) {
console.error(error);
this.feedbackError = true;
}
}
}
</script>
<style lang="scss" scoped>

View File

@ -54,10 +54,13 @@ export default class DateCalendarIcon extends Vue {
<style lang="scss" scoped>
div.datetime-container {
background: #fff;
border: 1px solid $borders;
border-radius: 8px;
display: flex;
flex-direction: column;
justify-content: center;
padding: 8px;
text-align: center;
overflow-y: hidden;
overflow-x: hidden;

View File

@ -67,7 +67,6 @@
<inline-address
dir="auto"
v-if="event.physicalAddress"
class="event-subtitle"
:physical-address="event.physicalAddress"
/>
<div
@ -188,16 +187,22 @@ a.card {
a {
text-decoration: none;
}
span.tag {
margin: 5px auto;
text-overflow: ellipsis;
overflow: hidden;
display: block;
font-size: 0.9em;
line-height: 1.75em;
span.tag {
margin: 5px auto;
text-overflow: ellipsis;
overflow: hidden;
display: block;
font-size: 0.9em;
line-height: 1.75em;
&:not(.is-info, .is-danger) {
background-color: #e6e4f4;
color: #3c376e;
color: $violet-3;
}
&.is-info {
color: $violet-3;
}
}
}
@ -248,10 +253,13 @@ a.card {
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
padding-bottom: 8px;
font-weight: bold;
}
.content-end {
padding-top: 8px;
}
.event-subtitle {
font-size: 0.85rem;
}

View File

@ -169,17 +169,20 @@ export default class EventFullDate extends Vue {
isSameDay(): boolean {
const sameDay =
new Date(this.beginsOn).toDateString() ===
new Date(this.endsOn).toDateString();
this.beginsOnDate.toDateString() === new Date(this.endsOn).toDateString();
return this.endsOn !== undefined && sameDay;
}
get beginsOnDate(): Date {
return new Date(this.beginsOn);
}
get differentFromUserTimezone(): boolean {
return (
!!this.timezone &&
!!this.userActualTimezone &&
getTimezoneOffset(this.timezone) !==
getTimezoneOffset(this.userActualTimezone) &&
getTimezoneOffset(this.timezone, this.beginsOnDate) !==
getTimezoneOffset(this.userActualTimezone, this.beginsOnDate) &&
this.timezone !== this.userActualTimezone
);
}

View File

@ -45,6 +45,7 @@ div.eventMetadataBlock {
.content-wrapper {
overflow: hidden;
width: 100%;
max-width: calc(100vw - 32px - 20px);
&.padding-left {
padding: 0 20px;

View File

@ -34,14 +34,9 @@
class="metadata-organized-by"
:title="$t('Organized by')"
>
<popover-actor-card
:actor="event.organizerActor"
v-if="!event.attributedTo"
>
<actor-card :actor="event.organizerActor" />
</popover-actor-card>
<router-link
v-if="event.attributedTo"
class="hover:underline"
:to="{
name: RouteName.GROUP,
params: {
@ -49,23 +44,21 @@
},
}"
>
<popover-actor-card
:actor="event.attributedTo"
<actor-card
v-if="
!event.attributedTo || !event.options.hideOrganizerWhenGroupEvent
"
>
<actor-card :actor="event.attributedTo" />
</popover-actor-card>
:actor="event.attributedTo"
:inline="true"
/>
</router-link>
<popover-actor-card
<actor-card v-else :actor="event.organizerActor" :inline="true" />
<actor-card
:inline="true"
:actor="contact"
v-for="contact in event.contacts"
:key="contact.id"
>
<actor-card :actor="contact" />
</popover-actor-card>
/>
</event-metadata-block>
<event-metadata-block
v-if="event.onlineAddress && urlToHostname(event.onlineAddress)"
@ -74,6 +67,7 @@
>
<a
target="_blank"
class="hover:underline"
rel="noopener noreferrer ugc"
:href="event.onlineAddress"
:title="

View File

@ -1,6 +1,6 @@
<template>
<router-link
class="event-minimalist-card-wrapper"
class="event-minimalist-card-wrapper bg-white rounded-lg shadow-md"
dir="auto"
:to="{ name: RouteName.EVENT, params: { uuid: event.uuid } }"
>
@ -18,6 +18,20 @@
</div>
<div class="title-info-wrapper has-text-grey-dark">
<h3 class="event-minimalist-title" :lang="event.language" dir="auto">
<b-tag
type="is-info"
class="mr-1"
v-if="event.status === EventStatus.TENTATIVE"
>
{{ $t("Tentative") }}
</b-tag>
<b-tag
type="is-danger"
class="mr-1"
v-if="event.status === EventStatus.CANCELLED"
>
{{ $t("Cancelled") }}
</b-tag>
<b-tag
class="mr-2"
type="is-warning"
@ -105,7 +119,7 @@
import { Component, Prop, Vue } from "vue-property-decorator";
import { IEvent, organizer, organizerDisplayName } from "@/types/event.model";
import DateCalendarIcon from "@/components/Event/DateCalendarIcon.vue";
import { ParticipantRole } from "@/types/enums";
import { EventStatus, ParticipantRole } from "@/types/enums";
import RouteName from "../../router/name";
import LazyImageWrapper from "@/components/Image/LazyImageWrapper.vue";
import InlineAddress from "@/components/Address/InlineAddress.vue";
@ -129,6 +143,8 @@ export default class EventMinimalistCard extends Vue {
organizerDisplayName = organizerDisplayName;
organizer = organizer;
EventStatus = EventStatus;
}
</script>
<style lang="scss" scoped>

View File

@ -45,6 +45,22 @@
</div>
<div class="list-card-content">
<div class="title-wrapper" dir="auto">
<b-tag
type="is-info"
class="mr-1 mb-1"
size="is-medium"
v-if="participation.event.status === EventStatus.TENTATIVE"
>
{{ $t("Tentative") }}
</b-tag>
<b-tag
type="is-danger"
class="mr-1 mb-1"
size="is-medium"
v-if="participation.event.status === EventStatus.CANCELLED"
>
{{ $t("Cancelled") }}
</b-tag>
<router-link
:to="{
name: RouteName.EVENT,
@ -257,7 +273,7 @@ import { Component, Prop } from "vue-property-decorator";
import DateCalendarIcon from "@/components/Event/DateCalendarIcon.vue";
import { mixins } from "vue-class-component";
import { RawLocation, Route } from "vue-router";
import { EventVisibility, ParticipantRole } from "@/types/enums";
import { EventStatus, EventVisibility, ParticipantRole } from "@/types/enums";
import { IParticipant } from "../../types/participant.model";
import {
IEventCardOptions,
@ -326,6 +342,8 @@ export default class EventParticipationCard extends mixins(
RouteName = RouteName;
EventStatus = EventStatus;
get mergedOptions(): IEventCardOptions {
return { ...defaultOptions, ...this.options };
}
@ -528,4 +546,11 @@ article.box {
}
padding: 0;
}
.content h3.event-title-card {
line-height: 1em;
margin-top: 0.5em;
}
.participation-actor {
margin-top: 1em;
}
</style>

View File

@ -5,33 +5,48 @@
:placeholder="$t('Filter by profile or group name')"
v-model="actorFilter"
/>
<b-radio-button
v-model="selectedActor"
:native-value="availableActor"
class="list-item"
v-for="availableActor in actualFilteredAvailableActors"
:key="availableActor.id"
<transition-group
tag="ul"
class="grid grid-cols-1 gap-y-3 m-5 max-w-md mx-auto"
enter-active-class="duration-300 ease-out"
enter-from-class="transform opacity-0"
enter-to-class="opacity-100"
leave-active-class="duration-200 ease-in"
leave-from-class="opacity-100"
leave-to-class="transform opacity-0"
>
<div class="media" dir="auto">
<figure class="image is-48x48" v-if="availableActor.avatar">
<img
class="image is-rounded"
:src="availableActor.avatar.url"
alt=""
/>
</figure>
<b-icon
class="media-left"
v-else
size="is-large"
icon="account-circle"
<li
class="relative focus-within:shadow-lg"
v-for="availableActor in actualFilteredAvailableActors"
:key="availableActor.id"
>
<input
class="sr-only peer"
type="radio"
:value="availableActor"
name="availableActors"
v-model="selectedActor"
:id="`availableActor-${availableActor.id}`"
/>
<div class="media-content">
<h3>{{ availableActor.name }}</h3>
<small>{{ `@${availableActor.preferredUsername}` }}</small>
</div>
</div>
</b-radio-button>
<label
class="flex flex-wrap p-3 bg-white border border-gray-300 rounded-lg cursor-pointer hover:bg-gray-50 peer-checked:ring-primary peer-checked:ring-2 peer-checked:border-transparent"
:for="`availableActor-${availableActor.id}`"
>
<figure class="image is-48x48" v-if="availableActor.avatar">
<img
class="image is-rounded"
:src="availableActor.avatar.url"
alt=""
/>
</figure>
<b-icon v-else size="is-large" icon="account-circle" />
<div>
<h3>{{ availableActor.name }}</h3>
<small>{{ `@${availableActor.preferredUsername}` }}</small>
</div>
</label>
</li>
</transition-group>
</div>
</template>
<script lang="ts">
@ -51,6 +66,13 @@ import { MemberRole } from "@/types/enums";
groupMemberships: {
query: LOGGED_USER_MEMBERSHIPS,
update: (data) => data.loggedUser.memberships,
variables() {
return {
page: 1,
limit: 10,
membershipName: this.actorFilter,
};
},
},
identities: IDENTITIES,
currentActor: CURRENT_ACTOR_CLIENT,

View File

@ -1,5 +1,8 @@
<template>
<div class="organizer-picker" v-if="selectedActor">
<div
class="bg-white border border-gray-300 rounded-lg cursor-pointer"
v-if="selectedActor"
>
<!-- If we have a current actor (inline) -->
<div
v-if="inline && selectedActor.id"
@ -65,42 +68,61 @@
/>
</div>
<div class="column contact-picker">
<div v-if="isSelectedActorAGroup && actorMembers.length > 0">
<div v-if="isSelectedActorAGroup">
<p>{{ $t("Add a contact") }}</p>
<b-input
:placeholder="$t('Filter by name')"
v-model="contactFilter"
:value="contactFilter"
@input="debounceSetFilterByName"
dir="auto"
/>
<p
class="field"
v-for="actor in filteredActorMembers"
:key="actor.id"
>
<b-checkbox v-model="actualContacts" :native-value="actor.id">
<div class="media">
<div class="media-left">
<figure class="image is-48x48" v-if="actor.avatar">
<img
class="image is-rounded"
:src="actor.avatar.url"
:alt="actor.avatar.alt"
<div v-if="actorMembers.length > 0">
<p
class="field"
v-for="actor in filteredActorMembers"
:key="actor.id"
>
<b-checkbox
v-model="actualContacts"
:native-value="actor.id"
>
<div class="media">
<div class="media-left">
<figure class="image is-48x48" v-if="actor.avatar">
<img
class="image is-rounded"
:src="actor.avatar.url"
:alt="actor.avatar.alt"
/>
</figure>
<b-icon
v-else
size="is-large"
icon="account-circle"
/>
</figure>
<b-icon v-else size="is-large" icon="account-circle" />
</div>
<div class="media-content" v-if="actor.name">
<p class="is-4">{{ actor.name }}</p>
<p class="is-6 has-text-grey-dark">
</div>
<div class="media-content" v-if="actor.name">
<p class="is-4">{{ actor.name }}</p>
<p class="is-6 has-text-grey-dark">
{{ `@${usernameWithDomain(actor)}` }}
</p>
</div>
<div class="media-content" v-else>
{{ `@${usernameWithDomain(actor)}` }}
</p>
</div>
</div>
<div class="media-content" v-else>
{{ `@${usernameWithDomain(actor)}` }}
</div>
</div>
</b-checkbox>
</p>
</b-checkbox>
</p>
</div>
<div
v-else-if="
actorMembers.length === 0 && contactFilter.length > 0
"
>
<empty-content icon="account-multiple" :inline="true">
{{ $t("No group member found") }}
</empty-content>
</div>
</div>
<div v-else class="content has-text-grey-dark has-text-centered">
<p>{{ $t("Your profile will be shown as contact.") }}</p>
@ -122,14 +144,16 @@ import { Component, Prop, Vue, Watch } from "vue-property-decorator";
import { IMember } from "@/types/actor/member.model";
import { IActor, IGroup, IPerson, usernameWithDomain } from "../../types/actor";
import OrganizerPicker from "./OrganizerPicker.vue";
import EmptyContent from "../Utils/EmptyContent.vue";
import {
CURRENT_ACTOR_CLIENT,
IDENTITIES,
LOGGED_USER_MEMBERSHIPS,
PERSON_GROUP_MEMBERSHIPS,
} from "../../graphql/actor";
import { Paginate } from "../../types/paginate";
import { GROUP_MEMBERS } from "@/graphql/member";
import { ActorType, MemberRole } from "@/types/enums";
import debounce from "lodash/debounce";
const MEMBER_ROLES = [
MemberRole.CREATOR,
@ -139,16 +163,17 @@ const MEMBER_ROLES = [
];
@Component({
components: { OrganizerPicker },
components: { OrganizerPicker, EmptyContent },
apollo: {
members: {
query: GROUP_MEMBERS,
variables() {
return {
name: usernameWithDomain(this.selectedActor),
groupName: usernameWithDomain(this.selectedActor),
page: this.membersPage,
limit: 10,
roles: MEMBER_ROLES.join(","),
name: this.contactFilter,
};
},
update: (data) => data.group.members,
@ -159,13 +184,17 @@ const MEMBER_ROLES = [
},
},
currentActor: CURRENT_ACTOR_CLIENT,
userMemberships: {
query: LOGGED_USER_MEMBERSHIPS,
variables: {
page: 1,
limit: 100,
personMemberships: {
query: PERSON_GROUP_MEMBERSHIPS,
variables() {
return {
id: this.currentActor?.id,
page: 1,
limit: 10,
groupId: this.$route.query?.actorId,
};
},
update: (data) => data.loggedUser.memberships,
update: (data) => data.person.memberships,
},
identities: IDENTITIES,
},
@ -175,6 +204,9 @@ export default class OrganizerPickerWrapper extends Vue {
@Prop({ default: true, type: Boolean }) inline!: boolean;
@Prop({ type: Array, required: false, default: () => [] })
contacts!: IActor[];
currentActor!: IPerson;
identities!: IPerson[];
@ -185,13 +217,17 @@ export default class OrganizerPickerWrapper extends Vue {
usernameWithDomain = usernameWithDomain;
@Prop({ type: Array, required: false, default: () => [] })
contacts!: IActor[];
members: Paginate<IMember> = { elements: [], total: 0 };
membersPage = 1;
userMemberships: Paginate<IMember> = { elements: [], total: 0 };
personMemberships: Paginate<IMember> = { elements: [], total: 0 };
data(): Record<string, unknown> {
return {
debounceSetFilterByName: debounce(this.setContactFilter, 1000),
};
}
get actualContacts(): (string | undefined)[] {
return this.contacts.map(({ id }) => id);
@ -204,15 +240,17 @@ export default class OrganizerPickerWrapper extends Vue {
);
}
@Watch("userMemberships")
setContactFilter(contactFilter: string) {
this.contactFilter = contactFilter;
}
@Watch("personMemberships")
setInitialActor(): void {
if (this.$route.query?.actorId) {
const actorId = this.$route.query?.actorId as string;
const actor = this.userMemberships.elements.find(
({ parent: { id }, role }) =>
actorId === id && MEMBER_ROLES.includes(role)
)?.parent as IActor;
this.selectedActor = actor;
if (
this.personMemberships?.elements[0]?.parent?.id ===
this.$route.query?.actorId
) {
this.selectedActor = this.personMemberships?.elements[0]?.parent;
}
}
@ -254,7 +292,7 @@ export default class OrganizerPickerWrapper extends Vue {
actor.preferredUsername.toLowerCase(),
actor.name?.toLowerCase(),
actor.domain?.toLowerCase(),
].some((match) => match?.includes(this.contactFilter.toLowerCase()));
];
});
}

View File

@ -190,7 +190,7 @@ export default class ShareEventModal extends Vue {
}
get mastodonShareUrl(): string {
return `https://toot.karamoff.dev/?text=${encodeURIComponent(
return `https://toot.kytta.dev/?text=${encodeURIComponent(
this.basicTextToEncode
)}`;
}

View File

@ -21,7 +21,7 @@
maxlength="20"
maxtags="10"
:placeholder="$t('Eg: Stockholm, Dance, Chess…')"
@typing="getFilteredTags"
@typing="debouncedGetFilteredTags"
:id="id"
dir="auto"
>
@ -33,6 +33,7 @@ import { Component, Prop, Vue } from "vue-property-decorator";
import differenceBy from "lodash/differenceBy";
import { ITag } from "../../types/tag.model";
import { FILTER_TAGS } from "@/graphql/tags";
import debounce from "lodash/debounce";
@Component({
apollo: {
@ -63,6 +64,12 @@ export default class TagInput extends Vue {
return `tag-input-${TagInput.componentId}`;
}
data(): Record<string, unknown> {
return {
debouncedGetFilteredTags: debounce(this.getFilteredTags, 200),
};
}
async getFilteredTags(text: string): Promise<void> {
this.text = text;
await this.$apollo.queries.tags.refetch();

View File

@ -40,6 +40,11 @@
$t("About")
}}</router-link>
</li>
<li>
<a href="https://www.chapril.org/Mentions-legales.html">
Mentions légales
</a>
</li>
<li>
<router-link :to="{ name: RouteName.TERMS }">{{
$t("Terms")
@ -49,11 +54,14 @@
<a
rel="external"
hreflang="en"
href="https://framagit.org/framasoft/mobilizon/blob/main/LICENSE"
href="https://forge.april.org/Chapril/mobilizon.chapril.org-mobilizon/src/branch/chapril/LICENSE"
>
{{ $t("License") }}
</a>
</li>
<li>
<a href="mailto:mobilizon-support@chapril.org">{{ $t("Contact") }}</a>
</li>
<li>
<a href="#navbar">{{ $t("Back to top") }}</a>
</li>

View File

@ -31,11 +31,11 @@
</span>
</div>
</div>
<div class="content mb-2" dir="auto" v-html="group.summary" />
<div class="card-custom-footer">
<div class="mb-2 line-clamp-3" dir="auto" v-html="group.summary" />
<div>
<inline-address
class="has-text-grey-dark"
v-if="group.physicalAddress"
v-if="group.physicalAddress && addressFullName(group.physicalAddress)"
:physicalAddress="group.physicalAddress"
/>
<p class="has-text-grey-dark">
@ -61,6 +61,7 @@ import { displayName, IGroup, usernameWithDomain } from "@/types/actor";
import LazyImageWrapper from "@/components/Image/LazyImageWrapper.vue";
import RouteName from "../../router/name";
import InlineAddress from "@/components/Address/InlineAddress.vue";
import { addressFullName } from "@/types/address.model";
@Component({
components: {
@ -76,6 +77,8 @@ export default class GroupCard extends Vue {
usernameWithDomain = usernameWithDomain;
displayName = displayName;
addressFullName = addressFullName;
}
</script>
<style lang="scss" scoped>

View File

@ -10,7 +10,7 @@
import { Component, Prop, Vue } from "vue-property-decorator";
import RedirectWithAccount from "@/components/Utils/RedirectWithAccount.vue";
import { FETCH_GROUP } from "@/graphql/group";
import { IGroup } from "@/types/actor";
import { displayName, IGroup } from "@/types/actor";
@Component({
components: { RedirectWithAccount },
@ -52,7 +52,7 @@ export default class JoinGroupWithAccount extends Vue {
}
get groupTitle(): undefined | string {
return this.group?.name || this.group?.preferredUsername;
return this.group && displayName(this.group);
}
sentence = this.$t(

View File

@ -117,7 +117,7 @@ import { Component, Prop, Vue, Ref } from "vue-property-decorator";
import { GroupVisibility } from "@/types/enums";
import DiasporaLogo from "../Share/DiasporaLogo.vue";
import MastodonLogo from "../Share/MastodonLogo.vue";
import TelegramLogo from "../Share/MastodonLogo.vue";
import TelegramLogo from "../Share/TelegramLogo.vue";
import { displayName, IGroup } from "@/types/actor";
@Component({
@ -177,7 +177,7 @@ export default class ShareGroupModal extends Vue {
}
get mastodonShareUrl(): string {
return `https://toot.karamoff.dev/?text=${encodeURIComponent(
return `https://toot.kytta.dev/?text=${encodeURIComponent(
this.basicTextToEncode
)}`;
}

View File

@ -1,34 +1,12 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 248.16 46.78">
<title>Mobilizon Logo</title>
<g data-name="header">
<path
d="M0 45.82l3.18-40.8a29.88 29.88 0 015.07-.36 27.74 27.74 0 014.95.36l4.86 17.16a92.19 92.19 0 012.34 10.08h.36a92.19 92.19 0 012.34-10.08L28 5.02a29.23 29.23 0 015-.36 29.23 29.23 0 015 .36l3.18 40.8a13.61 13.61 0 01-3.63.42 23.41 23.41 0 01-3.63-.24l-1.2-19.92q-.36-5.52-.48-12.84h-.44l-7.32 26.51a25.62 25.62 0 01-4 .3 23.36 23.36 0 01-3.84-.3L9.36 13.24H9q-.3 8.94-.48 12.84L7.26 46a22.47 22.47 0 01-3.6.24A13.75 13.75 0 010 45.82zM74 31.06q0 8-4.26 12.3a12.21 12.21 0 01-9 3.42 12.21 12.21 0 01-9-3.42q-4.26-4.26-4.26-12.3t4.24-12.31a12.21 12.21 0 019-3.42 12.21 12.21 0 019 3.42Q74 23.02 74 31.06zM60.75 20.98q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM103.2 19.75q2.7 4.11 2.7 11.28T102 42.31a13.18 13.18 0 01-10 4.11 31.41 31.41 0 01-11.34-2V2.2l.4-.45h2.76A4 4 0 0187 2.83a5.38 5.38 0 01.93 3.57v11.94a12.08 12.08 0 017.56-2.7 8.71 8.71 0 017.71 4.11zm-9.72 2a7.28 7.28 0 00-5.58 2.82v16a15 15 0 004.08.54 5.25 5.25 0 004.68-2.67q1.68-2.67 1.68-7.59 0-9.03-4.86-9.1zM121 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014 1.62A6.27 6.27 0 01121 22z"
/>
<path
d="M119.82.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z"
fill="#fff"
/>
<path
d="M139.08 40.42h2a10.23 10.23 0 01.6 3.18 9.24 9.24 0 01-.18 2.1 38.47 38.47 0 01-5.64.54q-6.48 0-6.48-7v-37l.36-.42h2.88a3.94 3.94 0 013.12 1.05 5.52 5.52 0 01.9 3.57v31.31q-.02 2.67 2.44 2.67zM155.94 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014.05 1.62 6.27 6.27 0 011.43 4.39z"
/>
<path
d="M154.8 2.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z"
fill="#fff"
/>
<path
d="M163.08 39.22l8.76-11.82q1.32-1.8 4.8-5.7l-.18-.3a63.09 63.09 0 01-7.74.42H163a9.79 9.79 0 01-.24-2.34 15.8 15.8 0 01.42-3.3h20.4a16.31 16.31 0 011 4.26 4.1 4.1 0 01-.78 2.34L175 34.66a64.65 64.65 0 01-4.56 5.7l.18.24q3.12-.3 5.22-.3h2.58a15.35 15.35 0 006.12-.9 9.4 9.4 0 01.72 3.12q0 3.42-4.32 3.42h-18a14.27 14.27 0 01-.9-3.93 5.08 5.08 0 011.04-2.79zM215.88 31.06q0 8-4.26 12.3a13.63 13.63 0 01-18.06 0q-4.26-4.26-4.26-12.3t4.26-12.31a13.63 13.63 0 0118.06 0q4.26 4.27 4.26 12.31zm-13.29-10.08q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM247 25.84v13.32a11 11 0 001.2 5.64 7 7 0 01-4.41 1.56q-2.43 0-3.33-1.14a5.69 5.69 0 01-.9-3.54V27.4a7.74 7.74 0 00-.72-3.87 2.78 2.78 0 00-2.58-1.17 8.62 8.62 0 00-6.3 3v20.58a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3v-29.7l.42-.36h2.76q3.42 0 4.08 3.6 4.38-3.84 8.73-3.84t6.42 2.82a12.17 12.17 0 012.07 7.38z"
/>
<path
d="M57.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84zM198.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84z"
fill="#fff"
/>
</g>
</svg>
<img src="img/pics/logo_chapril_mobilizon.png" alt="logo chapril" />
</template>
<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
// import MobilizonLogo from "../assets/logo_chapril_mobilizon.png";
@Component
export default class Logo extends Vue {

View File

@ -142,7 +142,9 @@ export default class Map extends Vue {
}
updateDraggableMarkerPosition(e: LatLng): void {
this.updateDraggableMarkerCallback(e, this.zoom);
if (this.updateDraggableMarkerCallback) {
this.updateDraggableMarkerCallback(e, this.zoom);
}
}
updateZoom(zoom: number): void {

View File

@ -28,7 +28,7 @@ export default class Vue2LeafletLocateControl extends Vue {
unknown
>;
@Prop({ type: Boolean, default: true }) visible = true;
@Prop({ type: Boolean, default: true }) visible!: boolean;
ready = false;

48
js/src/components/NavBar.vue Normal file → Executable file
View File

@ -11,7 +11,11 @@
:to="{ name: RouteName.HOME }"
:aria-label="$t('Home')"
>
<logo />
<img
src="/img/long_logo_chapril_mobilizon.png"
alt="logo mobilizon"
style="width: 5em"
/>
</b-navbar-item>
</template>
<template slot="start">
@ -52,23 +56,17 @@
>{{ $t("Create") }}</b-button
>
</b-navbar-item>
<b-navbar-item
v-if="config && config.features.koenaConnect"
class="koena"
tag="a"
href="https://mediation.koena.net/framasoft/mobilizon/"
target="_blank"
rel="noopener external"
hreflang="fr"
>
<img
src="/img/koena-a11y.svg"
width="150"
alt="Contact accessibilité"
/>
</b-navbar-item>
</template>
<template slot="end">
<b-navbar-item
href="https://www.chapril.org"
:aria-label="'www.chapril.org'"
>
<img
src="/img/pics/logo_chapril_mobilizon.png"
alt="logo chapril mobilizon"
/>
</b-navbar-item>
<b-navbar-item tag="div">
<search-field @navbar-search="mobileNavbarActive = false" />
</b-navbar-item>
@ -148,8 +146,8 @@
v-if="currentUser.role === ICurrentUserRole.ADMINISTRATOR"
tag="router-link"
:to="{ name: RouteName.ADMIN_DASHBOARD }"
>{{ $t("Administration") }}</b-navbar-item
>
>{{ $t("Administration") }}
</b-navbar-item>
<b-navbar-item
tag="span"
@ -272,6 +270,11 @@ export default class NavBar extends Vue {
// If we don't have any identities, the user has validated their account,
// is logging for the first time but didn't create an identity somehow
if (this.identities.length === 0) {
console.debug(
"We have no identities listed for current user",
this.identities
);
console.debug("Pushing route to REGISTER_PROFILE");
try {
await this.$router.push({
name: RouteName.REGISTER_PROFILE,
@ -376,15 +379,6 @@ nav {
background-color: inherit;
}
.koena {
padding-top: 0;
padding-bottom: 0;
& > img {
max-height: 4rem;
padding-top: 0.2rem;
}
}
.identity-wrapper {
display: flex;

View File

@ -9,7 +9,7 @@
:rounded="true"
style="height: 120px"
/>
<div class="title-info-wrapper has-text-grey-dark">
<div class="title-info-wrapper has-text-grey-dark px-1">
<h3 class="post-minimalist-title" :lang="post.language">
{{ post.title }}
</h3>

View File

@ -179,7 +179,7 @@ export default class SharePostModal extends Vue {
}
get mastodonShareUrl(): string {
return `https://toot.karamoff.dev/?text=${encodeURIComponent(
return `https://toot.kytta.dev/?text=${encodeURIComponent(
this.basicTextToEncode
)}`;
}

View File

@ -9,7 +9,7 @@
:class="{ 'is-titleless': !title }"
>
<div class="media">
<div class="media-left">
<div class="media-left hidden md:block">
<b-icon icon="alert" type="is-warning" size="is-large" />
</div>
<div class="media-content">

View File

@ -45,7 +45,7 @@
</a>
<resource-dropdown
class="actions"
v-if="!inline || !preview"
v-if="!inline && !preview"
@delete="$emit('delete', resource.id)"
@move="$emit('move', resource)"
@rename="$emit('rename', resource)"

View File

@ -1,7 +1,7 @@
<template>
<div v-if="resource">
<article class="panel is-primary">
<p class="panel-heading">
<p class="panel-heading truncate">
{{
$t('Move "{resourceName}"', { resourceName: initialResource.title })
}}
@ -28,7 +28,7 @@
</a>
<template v-if="resource.children">
<a
class="panel-block"
class="panel-block flex-wrap"
v-for="element in resource.children.elements"
:class="{
clickable:
@ -37,15 +37,17 @@
:key="element.id"
@click="goDown(element)"
>
<span class="panel-icon">
<b-icon
icon="folder"
size="is-small"
v-if="element.type === 'folder'"
/>
<b-icon icon="link" size="is-small" v-else />
</span>
{{ element.title }}
<p class="truncate">
<span class="panel-icon">
<b-icon
icon="folder"
size="is-small"
v-if="element.type === 'folder'"
/>
<b-icon icon="link" size="is-small" v-else />
</span>
<span>{{ element.title }}</span>
</p>
<span v-if="element.id === initialResource.id">
<em v-if="element.type === 'folder'"> {{ $t("(this folder)") }}</em>
<em v-else> {{ $t("(this link)") }}</em>
@ -89,7 +91,7 @@
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop } from "vue-property-decorator";
import { Component, Vue, Prop, Watch } from "vue-property-decorator";
import { GET_RESOURCE } from "../../graphql/resources";
import { IResource } from "../../types/resource";
@ -119,7 +121,7 @@ export default class ResourceSelector extends Vue {
@Prop({ required: true }) username!: string;
resource: IResource | undefined = this.initialResource.parent;
resource: IResource | undefined = undefined;
RESOURCES_PER_PAGE = 10;
@ -131,6 +133,20 @@ export default class ResourceSelector extends Vue {
}
}
data() {
return {
resource: this.initialResource?.parent,
};
}
@Watch("initialResource")
updateResourceFromProp() {
if (this.initialResource) {
this.resource = this.initialResource?.parent;
this.$apollo.queries.resource.refetch();
}
}
updateResource(): void {
this.$emit(
"update-resource",

View File

@ -1,18 +1,22 @@
<template>
<label for="navSearchField">
<span class="visually-hidden">{{ defaultPlaceHolder }}</span>
<b-field label-for="navSearchField" class="-mt-2">
<b-input
custom-class="searchField"
:placeholder="defaultPlaceHolder"
type="search"
id="navSearchField"
icon="magnify"
type="search"
icon-clickable
rounded
custom-class="searchField"
dir="auto"
:placeholder="defaultPlaceHolder"
v-model="search"
@keyup.native.enter="enter"
/>
</label>
>
</b-input>
<template #label>
<span class="sr-only">{{ defaultPlaceHolder }}</span>
</template>
</b-field>
</template>
<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";
@ -47,6 +51,7 @@ label span.visually-hidden {
input.searchField {
box-shadow: none;
border-color: #b5b5b5;
border-radius: 9999px !important;
&::placeholder {
color: gray;

View File

@ -78,7 +78,7 @@
/>
<SettingMenuItem
:title="$t('Federation')"
:to="{ name: RouteName.RELAYS }"
:to="{ name: RouteName.INSTANCES }"
/>
</SettingMenuSection>
</ul>

View File

@ -17,7 +17,8 @@ span.tag {
background: $purple-3;
color: $violet-2;
text-transform: uppercase;
&::before {
&:not(.category)::before {
content: "#";
}
}

View File

@ -7,29 +7,23 @@
<b-field :label="$t('Title')">
<b-input v-model="title" />
</b-field>
<b-field :label="$t('Assigned to')">
<actor-auto-complete v-model="assignedTo" />
</b-field>
<b-field :label="$t('Assigned to')"> </b-field>
<b-field :label="$t('Due on')">
<b-datepicker v-model="dueDate" />
<b-datepicker v-model="dueDate" :first-day-of-week="firstDayOfWeek" />
</b-field>
</div>
</div>
</template>
<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";
import { Prop, Vue } from "vue-property-decorator";
import debounce from "lodash/debounce";
import { DebouncedFunc } from "lodash";
import { SnackbarProgrammatic as Snackbar } from "buefy";
import { ITodo } from "../../types/todos";
import RouteName from "../../router/name";
import { UPDATE_TODO } from "../../graphql/todos";
import ActorAutoComplete from "../Account/ActorAutoComplete.vue";
import { IPerson } from "../../types/actor";
@Component({
components: { ActorAutoComplete },
})
export default class Todo extends Vue {
@Prop({ required: true, type: Object }) todo!: ITodo;
@ -99,5 +93,9 @@ export default class Todo extends Vue {
});
}
}
get firstDayOfWeek(): number {
return this.$dateFnsLocale?.options?.weekStartsOn || 0;
}
}
</script>

View File

@ -0,0 +1,69 @@
<template>
<nav class="flex mb-3" :aria-label="$t('Breadcrumbs')">
<ol class="inline-flex items-center space-x-1 md:space-x-3 flex-wrap">
<li
class="inline-flex items-center"
v-for="(element, index) in links"
:key="index"
:aria-current="index > 0 ? 'page' : undefined"
>
<router-link
v-if="index === 0"
:to="element"
class="inline-flex items-center text-gray-800 hover:text-gray-900"
>
{{ element.text }}
</router-link>
<div class="flex items-center" v-else-if="index === links.length - 1">
<svg
class="w-6 h-6 text-gray-400 rtl:rotate-180"
fill="currentColor"
viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"
></path>
</svg>
<span
class="ltr:ml-1 rtl:mr-1 font-medium text-gray-600 md:ltr:ml-2 md:rtl:mr-2"
>{{ element.text }}</span
>
</div>
<div class="flex items-center" v-else>
<svg
class="w-6 h-6 text-gray-400 rtl:rotate-180"
fill="currentColor"
viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"
></path>
</svg>
<router-link
:to="element"
class="ltr:ml-1 rtl:mr-1 font-medium text-gray-800 hover:text-gray-900 md:ltr:ml-2 md:rtl:mr-2"
>{{ element.text }}</router-link
>
</div>
</li>
<slot></slot>
</ol>
</nav>
</template>
<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";
import { Location } from "vue-router";
type LinkElement = Location & { text: string };
@Component
export default class Breadcrumbs extends Vue {
@Prop({ type: Array, required: true }) links!: LinkElement[];
}
</script>

View File

@ -1,11 +1,15 @@
<template>
<div class="empty-content" :class="{ inline }" role="note">
<div
class="empty-content"
:class="{ inline, 'text-center': center }"
role="note"
>
<b-icon :icon="icon" size="is-large" />
<h2 class="empty-content__title">
<!-- @slot Mandatory title -->
<slot />
</h2>
<p v-show="$slots.desc">
<p v-show="$slots.desc" :class="descriptionClasses">
<!-- @slot Optional description -->
<slot name="desc" />
</p>
@ -17,7 +21,10 @@ import { Component, Prop, Vue } from "vue-property-decorator";
@Component
export default class EmptyContent extends Vue {
@Prop({ type: String, required: true }) icon!: string;
@Prop({ type: String, required: false, default: "" })
descriptionClasses!: string;
@Prop({ type: Boolean, required: false, default: false }) inline!: boolean;
@Prop({ type: Boolean, required: false, default: false }) center!: boolean;
}
</script>

View File

@ -17,10 +17,8 @@ h2 {
margin: 15px 0 30px;
span {
background: $secondary;
display: inline;
padding: 3px 8px;
color: #3a384c;
font-family: "Liberation Sans", "Helvetica Neue", Roboto, Helvetica, Arial,
serif;
font-weight: 400;

View File

@ -56,7 +56,7 @@ const SHORT_TIME_FORMAT_OPTIONS: DateTimeFormatOptions = {
function formatDateTimeString(
value: string,
timeZone: string | undefined = undefined,
timeZone: string | null | undefined = undefined,
showTime = true,
dateFormat = "long"
): string {
@ -68,7 +68,7 @@ function formatDateTimeString(
options = {
...options,
...(isLongFormat ? LONG_TIME_FORMAT_OPTIONS : SHORT_TIME_FORMAT_OPTIONS),
timeZone,
timeZone: timeZone || undefined,
};
}
const format = new Intl.DateTimeFormat(locale(), options);

View File

@ -34,15 +34,6 @@ export const FETCH_PERSON = gql`
feedTokens {
token
}
organizedEvents {
total
elements {
id
uuid
title
beginsOn
}
}
}
}
${ACTOR_FRAGMENT}
@ -84,6 +75,7 @@ export const GET_PERSON = gql`
uuid
title
beginsOn
status
}
}
participations(page: $participationPage, limit: $participationLimit) {
@ -95,6 +87,7 @@ export const GET_PERSON = gql`
uuid
title
beginsOn
status
}
}
}
@ -213,6 +206,7 @@ export const LOGGED_USER_DRAFTS = gql`
alt
}
beginsOn
status
visibility
attributedTo {
...ActorFragment
@ -235,10 +229,14 @@ export const LOGGED_USER_DRAFTS = gql`
`;
export const LOGGED_USER_MEMBERSHIPS = gql`
query LoggedUserMemberships($page: Int, $limit: Int) {
query LoggedUserMemberships(
$membershipName: String
$page: Int
$limit: Int
) {
loggedUser {
id
memberships(page: $page, limit: $limit) {
memberships(name: $membershipName, page: $page, limit: $limit) {
total
elements {
id
@ -343,6 +341,30 @@ export const PERSON_STATUS_GROUP = gql`
${ACTOR_FRAGMENT}
`;
export const PERSON_GROUP_MEMBERSHIPS = gql`
query PersonGroupMemberships($id: ID!, $groupId: ID!) {
person(id: $id) {
id
memberships(groupId: $groupId) {
total
elements {
id
role
parent {
...ActorFragment
}
invitedBy {
...ActorFragment
}
insertedAt
updatedAt
}
}
}
}
${ACTOR_FRAGMENT}
`;
export const GROUP_MEMBERSHIP_SUBSCRIPTION_CHANGED = gql`
subscription GroupMembershipSubscriptionChanged(
$actorId: ID!

View File

@ -70,13 +70,66 @@ export const RELAY_FOLLOWINGS = gql`
${RELAY_FRAGMENT}
`;
export const ADD_RELAY = gql`
mutation addRelay($address: String!) {
addRelay(address: $address) {
...relayFragment
export const INSTANCE_FRAGMENT = gql`
fragment InstanceFragment on Instance {
domain
hasRelay
relayAddress
followerStatus
followedStatus
eventCount
personCount
groupCount
followersCount
followingsCount
reportsCount
mediaSize
}
`;
export const INSTANCE = gql`
query instance($domain: ID!) {
instance(domain: $domain) {
...InstanceFragment
}
}
${RELAY_FRAGMENT}
${INSTANCE_FRAGMENT}
`;
export const INSTANCES = gql`
query Instances(
$page: Int
$limit: Int
$orderBy: InstancesSortFields
$direction: String
$filterDomain: String
$filterFollowStatus: InstanceFilterFollowStatus
$filterSuspendStatus: InstanceFilterSuspendStatus
) {
instances(
page: $page
limit: $limit
orderBy: $orderBy
direction: $direction
filterDomain: $filterDomain
filterFollowStatus: $filterFollowStatus
filterSuspendStatus: $filterSuspendStatus
) {
total
elements {
...InstanceFragment
}
}
}
${INSTANCE_FRAGMENT}
`;
export const ADD_INSTANCE = gql`
mutation addInstance($domain: String!) {
addInstance(domain: $domain) {
...InstanceFragment
}
}
${INSTANCE_FRAGMENT}
`;
export const REMOVE_RELAY = gql`
@ -190,3 +243,26 @@ export const SAVE_ADMIN_SETTINGS = gql`
}
${ADMIN_SETTINGS_FRAGMENT}
`;
export const ADMIN_UPDATE_USER = gql`
mutation AdminUpdateUser(
$id: ID!
$email: String
$role: UserRole
$confirmed: Boolean
$notify: Boolean
) {
adminUpdateUser(
id: $id
email: $email
role: $role
confirmed: $confirmed
notify: $notify
) {
id
email
role
confirmedAt
}
}
`;

View File

@ -11,6 +11,10 @@ export const CONFIG = gql`
demoMode
countryCode
languages
eventCategories {
id
label
}
anonymous {
participation {
allowed
@ -67,7 +71,6 @@ export const CONFIG = gql`
features {
groups
eventCreation
koenaConnect
}
restrictions {
onlyAdminCanCreateGroups
@ -92,6 +95,15 @@ export const CONFIG = gql`
enabled
publicKey
}
analytics {
id
enabled
configuration {
key
value
type
}
}
}
}
`;
@ -103,6 +115,10 @@ export const CONFIG_EDIT_EVENT = gql`
features {
groups
}
eventCategories {
id
label
}
anonymous {
participation {
allowed

View File

@ -23,6 +23,7 @@ const FULL_EVENT_FRAGMENT = gql`
joinOptions
draft
language
category
picture {
id
url
@ -61,6 +62,7 @@ const FULL_EVENT_FRAGMENT = gql`
uuid
title
beginsOn
status
language
picture {
id
@ -202,11 +204,11 @@ export const CREATE_EVENT = gql`
$picture: MediaInput
$onlineAddress: String
$phoneAddress: String
$category: String
$category: EventCategory
$physicalAddress: AddressInput
$options: EventOptionsInput
$contacts: [Contact]
$metadata: EventMetadataInput
$metadata: [EventMetadataInput]
) {
createEvent(
organizerActorId: $organizerActorId
@ -252,11 +254,11 @@ export const EDIT_EVENT = gql`
$phoneAddress: String
$organizerActorId: ID
$attributedToId: ID
$category: String
$category: EventCategory
$physicalAddress: AddressInput
$options: EventOptionsInput
$contacts: [Contact]
$metadata: EventMetadataInput
$metadata: [EventMetadataInput]
) {
updateEvent(
eventId: $id
@ -438,6 +440,7 @@ export const FETCH_GROUP_EVENTS = gql`
uuid
title
beginsOn
status
draft
options {
...EventOptions

View File

@ -42,6 +42,7 @@ export const LIST_GROUPS = gql`
id
uuid
title
status
beginsOn
}
total
@ -104,6 +105,7 @@ export const GROUP_FIELDS_FRAGMENTS = gql`
uuid
title
beginsOn
status
draft
language
options {
@ -224,6 +226,15 @@ export const FETCH_GROUP = gql`
${RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT}
`;
export const FETCH_GROUP_BY_ID = gql`
query FetchGroupById($id: ID!) {
groupById(id: $name) {
...GroupFullFields
}
}
${GROUP_FIELDS_FRAGMENTS}
`;
export const GET_GROUP = gql`
query GetGroup(
$id: ID!

View File

@ -36,6 +36,7 @@ export const HOME_USER_QUERIES = gql`
alt
}
beginsOn
status
visibility
language
organizerActor {
@ -77,6 +78,7 @@ export const HOME_USER_QUERIES = gql`
uuid
title
beginsOn
status
picture {
url
}
@ -127,6 +129,7 @@ export const CLOSE_CONTENT = gql`
title
uuid
beginsOn
status
picture {
id
url

View File

@ -44,10 +44,16 @@ export const REJECT_INVITATION = gql`
`;
export const GROUP_MEMBERS = gql`
query ($name: String!, $roles: String, $page: Int, $limit: Int) {
group(preferredUsername: $name) {
query (
$groupName: String!
$name: String
$roles: String
$page: Int
$limit: Int
) {
group(preferredUsername: $groupName) {
...ActorFragment
members(page: $page, limit: $limit, roles: $roles) {
members(name: $name, page: $page, limit: $limit, roles: $roles) {
elements {
id
role

View File

@ -32,6 +32,7 @@ export const LOGGED_USER_PARTICIPATIONS = gql`
alt
}
beginsOn
status
visibility
organizerActor {
...ActorFragment
@ -98,6 +99,7 @@ export const LOGGED_USER_UPCOMING_EVENTS = gql`
alt
}
beginsOn
status
visibility
organizerActor {
...ActorFragment
@ -144,6 +146,7 @@ export const LOGGED_USER_UPCOMING_EVENTS = gql`
uuid
title
beginsOn
status
picture {
url
}

View File

@ -98,7 +98,7 @@ export const FETCH_POST = gql`
export const CREATE_POST = gql`
mutation CreatePost(
$title: String!
$body: String
$body: String!
$attributedToId: ID!
$visibility: PostVisibility
$draft: Boolean

View File

@ -2,8 +2,13 @@ import gql from "graphql-tag";
import { ACTOR_FRAGMENT } from "./actor";
export const REPORTS = gql`
query Reports($status: ReportStatus, $page: Int, $limit: Int) {
reports(status: $status, page: $page, limit: $limit) {
query Reports(
$status: ReportStatus
$domain: String
$page: Int
$limit: Int
) {
reports(status: $status, domain: $domain, page: $page, limit: $limit) {
total
elements {
id

Some files were not shown because too many files have changed in this diff Show More