Compare commits

..

352 Commits

Author SHA1 Message Date
c2a61801c1 fix admin elixir 2022-10-12 15:23:22 +02:00
a89aaf9d09 up vars 2022-09-20 10:27:49 +02:00
0ea9cc416f config tweaks to allow rss feeds 2022-06-28 15:33:44 +02:00
d21ec65cc6 ignore .yarn folder 2022-06-28 14:49:11 +02:00
e827c0face hop 2022-06-28 14:41:41 +02:00
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
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
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
b579379582 upgrade yarn 2021-12-10 11:30:36 +01:00
780971f19c config export 2021-12-10 11:22:27 +01:00
8b9b1f7acc Merge branch 'chapril' of https://forge.april.org/Chapril/mobilizon.chapril.org-mobilizon into chapril 2021-12-09 16:02:54 +01:00
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
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
faa0e2fd3e add more things 2021-09-01 12:54:11 +02:00
19863fc6bf lint all 2021-08-18 18:17:16 +02:00
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
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
98bfe24fe3 lint all 2021-06-14 12:23:05 +02:00
4dafbca54b prettify 2021-06-14 12:19:24 +02:00
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
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
55adf7b5a0 hop 2021-05-24 11:23:05 +02:00
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
8a259c4c62 Merge tag '1.1.3' into chapril 2021-05-04 12:41:01 +02:00
78934c9234 Merge tag '1.1.2' into chapril 2021-04-29 16:02:14 +02:00
12045b7b21 Merge tag '1.1.1' into chapril 2021-04-29 16:02:08 +02:00
6d26952307 merge to version 1.1.0 2021-04-09 14:40:15 +02:00
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
73bfac679a fix license 2021-02-19 15:50:01 +01:00
61b1235c97 Merge tag '1.0.6' into chapril 2021-02-19 15:33:36 +01:00
7eb95a1641 Merge tag '1.0.5' into chapril 2021-02-19 15:33:34 +01:00
adbe90bc87 Merge tag '1.0.4' into chapril 2021-02-19 15:33:03 +01:00
5bb6f21060 Merge tag '1.0.6' into chapril 2021-02-08 16:00:32 +01:00
27331eb7db Merge tag '1.0.5' into chapril 2021-02-01 10:39:22 +01:00
fad649c8eb up homepage and footer 2021-01-21 11:24:58 +01:00
247c76e038 Merge branch 'upstream_1.0.3' into chapril 2021-01-10 10:36:16 +01:00
88ad804268 link in home and footer 2021-01-05 15:00:05 +01:00
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
1f35ea213a add chapril link aside search bar
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2020-12-16 18:53:06 +01:00
4e7d3aa157 hop img
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2020-12-16 18:51:24 +01:00
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
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
0ded17fee2 picture for custom logo large 2020-12-16 15:31:32 +01:00
d9ec8da925 link to chapril in NavBar.vue 2020-12-15 19:19:33 +01:00
c9fc73ddbf favicon and bg color on main column 2020-12-06 15:54:47 +01:00
529b7d48de style on my event list title 2020-12-06 11:07:41 +01:00
12e327552d custom pictures 2020-12-06 10:50:37 +01:00
229c16df3b clean all titles colors 2020-12-06 10:26:56 +01:00
f80bf34605 light background on subscription pages steps 2020-12-06 10:12:52 +01:00
47ce4803f5 set custom logo chapril 2020-12-05 15:05:22 +01:00
b0bf280ee8 color set for chapril mobilizon 2020-12-05 15:04:26 +01:00
801 changed files with 70812 additions and 70853 deletions

View File

@ -4,7 +4,6 @@ stages:
- install - install
- check - check
- build-js - build-js
- sentry
- test - test
- docker - docker
- package - package
@ -95,21 +94,6 @@ build-frontend:
needs: needs:
- lint-front - lint-front
sentry-commit:
stage: sentry
image: getsentry/sentry-cli
script:
- echo "Create a new release $CI_COMMIT_TAG"
- sentry-cli releases new $CI_COMMIT_TAG
- sentry-cli releases set-commits $CI_COMMIT_TAG --auto
- sentry-cli releases files $CI_COMMIT_TAG upload-sourcemaps priv/static/assets/
- sentry-cli releases finalize $CI_COMMIT_TAG
- echo "Finalized release for $CI_COMMIT_TAG"
needs:
- build-frontend
only:
- tags@framasoft/mobilizon
deps: deps:
stage: check stage: check
before_script: before_script:
@ -143,14 +127,14 @@ exunit:
- test-junit-report.xml - test-junit-report.xml
expire_in: 30 days expire_in: 30 days
vitest: jest:
stage: test stage: test
needs: needs:
- lint-front - lint-front
before_script: before_script:
- yarn --cwd "js" install --frozen-lockfile - yarn --cwd "js" install --frozen-lockfile
script: script:
- yarn --cwd "js" run coverage --reporter=default --reporter=junit --outputFile.junit=./junit.xml - yarn --cwd "js" run test:unit --no-color --ci --reporters=default --reporters=jest-junit
artifacts: artifacts:
when: always when: always
paths: paths:
@ -160,33 +144,26 @@ vitest:
- js/junit.xml - js/junit.xml
expire_in: 30 days expire_in: 30 days
e2e: # cypress:
stage: test # stage: test
services: # services:
- name: postgis/postgis:14-3.2 # - name: postgis/postgis:13.3
alias: postgres # alias: postgres
variables: # variables:
MIX_ENV: "e2e" # MIX_ENV=e2e
before_script: # script:
- mix deps.get # - mix ecto.create
- mix ecto.create # - mix ecto.migrate
- mix ecto.migrate # - mix run priv/repo/e2e.seed.exs
- mix run priv/repo/e2e.seed.exs # - mix phx.server &
- cd js && yarn install && yarn run build && npx playwright install && cd ../ # - cd js
- mix phx.digest # - npx wait-on http://localhost:4000
script: # - if [ -z "$CYPRESS_KEY" ]; then npx cypress run; else npx cypress run --record --parallel --key $CYPRESS_KEY; fi
- mix phx.server & # artifacts:
- cd js # expire_in: 2 day
- npx wait-on http://localhost:4000 # paths:
- npx playwright test --project $BROWSER # - js/tests/e2e/screenshots/**/*.png
parallel: # - js/tests/e2e/videos/**/*.mp4
matrix:
- BROWSER: ['firefox', 'chromium']
artifacts:
expire_in: 2 days
paths:
- js/playwright-report/
- js/test-results/
pages: pages:
stage: deploy stage: deploy
@ -206,7 +183,7 @@ pages:
.docker: &docker .docker: &docker
stage: docker stage: docker
image: docker:20.10.18 image: docker:20.10.12
variables: variables:
DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_CERTDIR: "/certs"
DOCKER_HOST: tcp://docker:2376 DOCKER_HOST: tcp://docker:2376
@ -214,13 +191,13 @@ pages:
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client" DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
DOCKER_DRIVER: overlay2 DOCKER_DRIVER: overlay2
services: services:
- docker:20.10.18-dind - docker:20.10.12-dind
cache: {} cache: {}
before_script: before_script:
# Install buildx # Install buildx
- wget https://github.com/docker/buildx/releases/download/v0.9.1/buildx-v0.9.1.linux-amd64 - wget https://github.com/docker/buildx/releases/download/v0.8.1/buildx-v0.8.1.linux-amd64
- mkdir -p ~/.docker/cli-plugins/ - mkdir -p ~/.docker/cli-plugins/
- mv buildx-v0.9.1.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 - chmod a+x ~/.docker/cli-plugins/docker-buildx
# Create env # Create env
- docker context create tls-environment - docker context create tls-environment
@ -239,47 +216,29 @@ build-docker-main:
rules: rules:
- if: '$CI_PROJECT_NAMESPACE != "framasoft"' - if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never when: never
- if: '$CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_TRIGGERED == "true"' - if: '$CI_PIPELINE_SOURCE == "schedule"'
script: script:
- docker buildx build --push --platform linux/amd64 -t framasoft/mobilizon:main -f docker/production/Dockerfile . - docker buildx build --push --platform linux/amd64 -t framasoft/mobilizon:main -f docker/production/Dockerfile .
# Don't push to latest when building beta/rc tags build-docker-tag:
build-and-push-to-latest-docker-tag:
<<: *docker <<: *docker
rules: &release-tag-rules rules: &tag-rules
- if: '$CI_PROJECT_NAMESPACE != "framasoft"' - if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never when: never
- if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /alpha|beta|rc/ - if: $CI_COMMIT_TAG
when: on_success
timeout: 3 hours timeout: 3 hours
script: script:
- > - >
docker buildx build docker buildx build
--push --push
--platform linux/amd64,linux/arm --platform linux/amd64,linux/arm64,linux/arm
-t framasoft/mobilizon:$CI_COMMIT_TAG -t framasoft/mobilizon:$CI_COMMIT_TAG
-t framasoft/mobilizon:latest -t framasoft/mobilizon:latest
-f docker/production/Dockerfile . -f docker/production/Dockerfile .
build-and-push-docker-tag:
<<: *docker
rules: &pre-release-tag-rules
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
- if: $CI_COMMIT_TAG =~ /alpha|beta|rc/
when: on_success
timeout: 3 hours
script:
- >
docker buildx build
--push
--platform linux/amd64,linux/arm
-t framasoft/mobilizon:$CI_COMMIT_TAG
-f docker/production/Dockerfile .
# Packaging app for amd64 # Packaging app for amd64
package-app: package-app:
image: mobilizon/buildpack:1.14.1-erlang-25.1.1-debian-buster image: mobilizon/buildpack:1.13.4-erlang-24.3.3-debian-buster
stage: package stage: package
variables: &release-variables variables: &release-variables
MIX_ENV: "prod" MIX_ENV: "prod"
@ -291,7 +250,7 @@ package-app:
- mix local.rebar --force - mix local.rebar --force
- mix deps.get --only-prod - mix deps.get --only-prod
- mix compile - mix compile
- mix phx.digest.clean --all && mix phx.digest - mix phx.digest.clean --all && \
- mix release --path release/mobilizon - mix release --path release/mobilizon
- cd release/mobilizon && ln -s lib/mobilizon-*/priv priv && cd ../../ - cd release/mobilizon && ln -s lib/mobilizon-*/priv priv && cd ../../
- du -sh release/ - du -sh release/
@ -319,7 +278,7 @@ package-app-dev:
# Packaging app for multi-arch # Packaging app for multi-arch
multi-arch-release: multi-arch-release:
stage: package stage: package
image: docker:20.10.21 image: docker:20.10.12
variables: variables:
DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_CERTDIR: "/certs"
DOCKER_HOST: tcp://docker:2376 DOCKER_HOST: tcp://docker:2376
@ -329,13 +288,13 @@ multi-arch-release:
APP_ASSET: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_${ARCH}.tar.gz" APP_ASSET: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_${ARCH}.tar.gz"
OS: debian-buster OS: debian-buster
services: services:
- docker:20.10.21-dind - docker:20.10.12-dind
cache: {} cache: {}
before_script: before_script:
# Install buildx # Install buildx
- wget https://github.com/docker/buildx/releases/download/v0.9.1/buildx-v0.9.1.linux-amd64 - wget https://github.com/docker/buildx/releases/download/v0.8.1/buildx-v0.8.1.linux-amd64
- mkdir -p ~/.docker/cli-plugins/ - mkdir -p ~/.docker/cli-plugins/
- mv buildx-v0.9.1.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 - chmod a+x ~/.docker/cli-plugins/docker-buildx
# Create env # Create env
- docker context create tls-environment - docker context create tls-environment
@ -354,14 +313,15 @@ multi-arch-release:
expire_in: 2 days expire_in: 2 days
paths: paths:
- ${APP_ASSET} - ${APP_ASSET}
- erl_crash.dump # if there's a memory issue
parallel: parallel:
matrix: matrix:
- ARCH: ["arm", "arm64"] - ARCH: ["arm", "arm64"]
rules: rules:
- if: '$CI_COMMIT_TAG != null || $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_TRIGGERED == "true"' - if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- if: $CI_COMMIT_TAG
timeout: 3h timeout: 3h
allow_failure: true
# Release # Release
release-upload: release-upload:
@ -369,9 +329,7 @@ release-upload:
image: framasoft/upload-packages:latest image: framasoft/upload-packages:latest
variables: variables:
APP_ASSET: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_${ARCH}.tar.gz" APP_ASSET: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_${ARCH}.tar.gz"
rules: rules: *tag-rules
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
script: script:
- eval `ssh-agent -s` - eval `ssh-agent -s`
- ssh-add <(echo "${DEPLOYEMENT_KEY}" | base64 --decode -i) - ssh-add <(echo "${DEPLOYEMENT_KEY}" | base64 --decode -i)
@ -384,14 +342,11 @@ release-upload:
parallel: parallel:
matrix: matrix:
- ARCH: ["amd64", "arm", "arm64"] - ARCH: ["amd64", "arm", "arm64"]
allow_failure: true
release-create: release-create:
stage: deploy stage: deploy
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
rules: rules: *tag-rules
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
variables: variables:
APP_ASSET_AMD64: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_amd64.tar.gz" APP_ASSET_AMD64: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_amd64.tar.gz"
APP_ASSET_ARM: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_arm.tar.gz" APP_ASSET_ARM: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_arm.tar.gz"
@ -405,6 +360,6 @@ release-create:
release-cli create --name "$CI_COMMIT_TAG" \ release-cli create --name "$CI_COMMIT_TAG" \
--description "$CHANGELOG" \ --description "$CHANGELOG" \
--tag-name "$CI_COMMIT_TAG" \ --tag-name "$CI_COMMIT_TAG" \
--assets-link "{\"name\":\"${APP_ASSET_AMD64}\",\"url\":\"${ENDPOINT}/${CI_COMMIT_REF_NAME}/${APP_ASSET_AMD64}\"}" \ --assets-link "{\"name\":\"${APP_ASSET_AMD64}\",\"url\":\"${ENDPOINT}/${APP_ASSET_AMD64}\"}" \
--assets-link "{\"name\":\"${APP_ASSET_ARM}\",\"url\":\"${ENDPOINT}/${CI_COMMIT_REF_NAME}/${APP_ASSET_ARM}\"}" \ --assets-link "{\"name\":\"${APP_ASSET_ARM}\",\"url\":\"${ENDPOINT}/${APP_ASSET_ARM}\"}" \
--assets-link "{\"name\":\"${APP_ASSET_ARM64}\",\"url\":\"${ENDPOINT}/${CI_COMMIT_REF_NAME}/${APP_ASSET_ARM64}\"}" --assets-link "{\"name\":\"${APP_ASSET_ARM64}\",\"url\":\"${ENDPOINT}/${APP_ASSET_ARM64}\"}"

1
.ncignore Normal file
View File

@ -0,0 +1 @@
deps

View File

@ -1,2 +1,2 @@
elixir 1.14.1-otp-25 elixir 1.13.4-otp-24
erlang 25.1.1 erlang 24.3.3

View File

@ -5,353 +5,6 @@ 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/), 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). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 3.0.3 - 2022-12-22
### Fixed
- Add missing OpenSSL 1.1 in Docker image
## 3.0.2 - 2022-12-22
### Fixed
- Fix unfollowing group
- Limit the size of the IP(v6) field in the user admin view
- Fix terms and privacy view
- Use the correct value of current locale
- Fix editing group events as a group moderator
- Consider timezone for start time also when end date is hidden
- Fix loading group members in organizer picker
- Fix changing email & password
- Add missing icon
- Fix instances filter
- Fix logging from 3rd-party auth provider
## 3.0.1 - 2022-11-22
### Fixed
- Compatibility with Python 3.11 for exports that reply on Python code.
- Formatting of fallback locales
- Allow to specify database port for Docker configuration
- Assets in production environment
- Changing event uuid didn't change event data
- Make sure maximumAttendeeCapacity is a number, not a string
- Prevent AP collection page number being < 1
- Fix approving/rejecting group members and followers
- Fix 3rd-party auth links
- Test Intl.ListFormat availability and add fallback
- Set correct Content-Type on all AP endpoints
- Don't notify group members & followers from new draft event
- Register missing ExitToApp icon
- Fix comment display
## 3.0.0 - 2022-11-08
### Added
- Add global search support, allowing to use https://search.joinmobilizon.org as a centralized event and group database
- Add ability to filter search by categories and language
- Add ability to explore search results on a map view
- Add dark theme support and setting to toggle light/dark mode
- Add categories view
- Allow to disable non-SSO login
- Support CSP report_uri, report_to and the Report-To and Reporting-Endpoints headers
- Support for Elixir 1.14 and Erlang OTP 25.
### Changed
- Homepage has been redesigned
- Search view has been redesigned
- Internal illustration pictures are now only served using WebP.
- Improved the pertinence of related events
- Light front-end performance improvements
- Various UI and A11Y fixes on the event page
- Handle categories page being empty
- UI improvements of comments
- UI improvements of reports
- Various UI improvement in event and group view
- Add breadcrumb trail on Post view
- Always lowercase the emails before trying to reset password
- Make text editor heading level start at h3, h4, h5
- Remove obscure reference to Douglas Adams
- Don't inline phoenix manifest
- Show a proper error message when failure to register to an event
- Order categories by translated label
- Show registration button also if registration allow list is used
- Add logging for when cached iCalendar feed data can't be found
- Add an error log when we try to update the relay actor
- Lower loglevel of error when creating a new person
- Add unique constraint on event URL
- Allow to view more than 10 drafts events on my events view
- Add CSP Policy for pictures
- Don't treat notification for a deleted event as an error
- Truncate resource description preview after 350 characters
- Lower loglevel of resource insertion error
- Resources and discussions views improvements
- Add context to error when removing an upload file following actor suspension
- Allow for resource providers to register a csp policy
- Add loading="lazy" to some images, except categories in viewport
- Add GraphQL operation name, user ID and actor name in logs
- Add empty alt attribute to uploaded pictures (for now)
- Allow release build failures in CI for all non-amd64 architectures
- Increase timeout needed to build page
- Handle nothing found by unsplash for location
### Fixed
- Fixed deleting actor when participations association is not preloaded
- Fixed rendering JSON-LD for an event with a single address (no online location)
- Address selector
- Group location edition
- Reconfigure plug at runtime with env
- Fix global search term
- Fix custom icons in metadata list
- Handle unknown icon
- Only preload svg pictures on homepage
- Don't add empty search parameters to global search engine
- Fix getting categories from global search engine
- Remove unused deps
- Only show one pagination bar when searching in both events & groups
- Run build multiarch release on tags too
- Don't start mobilizon server when running migrations
- Run phx.digest before mix release
- Fix event card background color behind picture
- Fix position of the « no events found » message
- Add distinct clause to search events
- Fix showing past events on group page
- Fix display of group invitations
- Fix leaving a group
- Fix group events order
- Prevent loading group membership status before we get person information
- Prefix setInterval with window
- Fix fetching events with addresses that's not objects
- Fix dashboard view
- Fix anonymous & remote participation pages
- Fix anonymous/remote participation button
- Do not list drafts in upcoming / old events event if instance moderator
- Make sure group is refreshed after action
- Fix deleting person detached from user
- Fix pagination number text color in dark theme
- Fix post sharing URL
- Fix current format status of text not displayed in text editor
- Fix moving resources
- Fix multiselect of resources
- Properly handle un-needed background jobs
- Properly handle replying to an event that has been deleted
- Propertly handle other errors when receiving a comment
- Fix event integrations
- Prevent loading authorized groups when current actor isn't loading in OrganizerPickerWrapper
- Fix building CSP policy
- Fix event map view
- Various front-end fixes
- Handle error when fetching object from tombstone
- Fixed upcoming event groups display on homepage view
- Fixed Ecto Dev warning on compilation
- Adapt white parts in Mobilizon logo to current color
- Register missing BellOutline and BellOffOutline icons
- Don't load group status when unlogged
- Fix order of useHead registration on JoinGroupWithAccount view
- Fix profile@instance translation
- Handle :http_not_found as an error when deleting an object
- Handle suspending actors with special type
- Add fallback handler for can_send_activity?
- Properly log if we can't notify group follower
### Security
- Correctly escape user-defined names in emails
### Internal
- Build on Elixir 1.14.1 and Erlang OTP 25.
- Migrate from Vue 2 and Vue Class Component to Vue 3 and the Composition API
- Migrate from Bulma and Buefy to TailwindCSS and Oruga
### Tests
#### Unit Tests
- Rewrote tests using Vitest
#### E2E Tests
- Renabled E2E tests
- Rewrote tests from Cypress to Playwright
## 3.0.0-rc.6 - 2022-11-07
### Fixed
- Fixed upcoming event groups display on homepage view
- Fixed Ecto Dev warning on compilation
## 3.0.0-rc.5 - 2022-11-06
### Changed
- Allow release build failures in CI for all non-amd64 architectures
## 3.0.0-rc.4 - 2022-11-06
### Changed
- Add loading="lazy" to some images, except categories in viewport
- Add GraphQL operation name, user ID and actor name in logs
- Add empty alt attribute to uploaded pictures (for now)
### Fixed
- Fix building CSP policy
- Fix event map view
- Various front-end fixes
- Handle error when fetching object from tombstone
## 3.0.0-rc.3 - 2022-11-04
### Added
- Support CSP report_uri, report_to and the Report-To and Reporting-Endpoints headers
### Changed
- Add CSP Policy for pictures
- Don't treat notification for a deleted event as an error
- Truncate resource description preview after 350 characters
- Lower loglevel of resource insertion error
- Resources and discussions views improvements
- Add context to error when removing an upload file following actor suspension
- Allow for resource providers to register a csp policy
### Fixed
- Fix moving resources
- Fix multiselect of resources
- Properly handle un-needed background jobs
- Properly handle replying to an event that has been deleted
- Propertly handle other errors when receiving a comment
- Fix event integrations
- Prevent loading authorized groups when current actor isn't loading in OrganizerPickerWrapper
## 3.0.0-rc.2 - 2022-11-02
### Added
- Add setting to toggle light/dark mode
- Allow to disable non-SSO login
### Changed
- UI improvements of comments
- UI improvements of reports
- Various UI improvement in event and group view
- Add breadcrumb trail on Post view
- Always lowercase the emails before trying to reset password
- Make text editor heading level start at h3, h4, h5
- Remove obscure reference to Douglas Adams
- Don't inline phoenix manifest
- Show a proper error message when failure to register to an event
- Order categories by translated label
- Show registration button also if registration allow list is used
- Add logging for when cached iCalendar feed data can't be found
- Add an error log when we try to update the relay actor
- Lower loglevel of error when creating a new person
- Add unique constraint on event URL
- Allow to view more than 10 drafts events on my events view
### Fixed
- Fix event card background color behind picture
- Fix position of the « no events found » message
- Add distinct clause to search events
- Fix showing past events on group page
- Fix display of group invitations
- Fix leaving a group
- Fix group events order
- Prevent loading group membership status before we get person information
- Prefix setInterval with window
- Fix fetching events with addresses that's not objects
- Fix dashboard view
- Fix anonymous & remote participation pages
- Fix anonymous/remote participation button
- Do not list drafts in upcoming / old events event if instance moderator
- Make sure group is refreshed after action
- Fix deleting person detached from user
- Fix pagination number text color in dark theme
- Fix post sharing URL
- Fix current format status of text not displayed in text editor
### Security
- Correctly escape user-defined names in emails
## 3.0.0-rc.1 - 2022-10-18
No changes since beta.3
## 3.0.0-beta.3 - 2022-10-17
### Fixed
- Don't add empty search parameters to global search engine
- Fix getting categories from global search engine
- Remove unused deps
- Only show one pagination bar when searching in both events & groups
- Run build multiarch release on tags too
- Don't start mobilizon server when running migrations
- Run phx.digest before mix release
## 3.0.0-beta.2 - 2022-10-11
### Changed
- Improved the pertinence of related events
- Light front-end performance improvements
- Various UI and A11Y fixes on the event page
- Handle categories page being empty
### Fixed
- Address selector
- Group location edition
- Reconfigure plug at runtime with env
- Fix global search term
- Fix custom icons in metadata list
- Handle unknown icon
- Only preload svg pictures on homepage
## 3.0.0-beta.1 - 2022-09-27
### Added
- Add global search support, allowing to use https://search.joinmobilizon.org as a centralized event and group database
- Add ability to filter search by categories and language
- Add ability to explore search results on a map view
- Add dark theme support
- Add categories view
- Support for Elixir 1.14 and Erlang OTP 25.
### Changed
- Homepage has been redesigned
- Search view has been redesigned
- Internal illustration pictures are now only served using WebP.
### Fixed
- Fixed deleting actor when participations association is not preloaded
- Fixed rendering JSON-LD for an event with a single address (no online location)
### Internal
- Build on Elixir 1.14 and Erlang OTP 25.
- Migrate from Vue 2 and Vue Class Component to Vue 3 and the Composition API
- Migrate from Bulma and Buefy to TailwindCSS and Oruga
### Tests
#### Unit Tests
- Rewrote tests using Vitest
#### E2E Tests
- Renabled E2E tests
- Rewrote tests from Cypress to Playwright
## 2.1.0 - 2022-05-16 ## 2.1.0 - 2022-05-16
### Added ### Added
@ -366,7 +19,7 @@ No changes since beta.3
### Changed ### Changed
- Changed mailer library from Bamboo to Swoosh, should fix emails being considered spam. **Some configuration changes are required, see [UPGRADE.md](https://framagit.org/framasoft/mobilizon/-/blob/main/UPGRADE.md).** - 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 some fields to ActivityStreams event representation: `isOnline`, `remainingAttendeeCapacity` and `participantCount`
- Expose a new field to ActivityStreams group representation: `memberCount` - Expose a new field to ActivityStreams group representation: `memberCount`
- Improve group creation errors feedback - Improve group creation errors feedback
@ -388,7 +41,7 @@ No changes since beta.3
- Update schema.graphql file - Update schema.graphql file
- Add "Accept-Language" header to sentry request metadata - Add "Accept-Language" header to sentry request metadata
- Hide address blocks when address has no real data - Hide address blocks when address has no real data
- Remove obsolete attribute `type="text/css"` from `<style>` tags - Remove obsolete attribute type="text/css" from <style> tags
- Improve actor cards integration - Improve actor cards integration
- Use upstream dependencies for Ueberauth providers - Use upstream dependencies for Ueberauth providers
- Include ongoing events in search - Include ongoing events in search
@ -428,7 +81,7 @@ No changes since beta.3
- Fix text overflow on group card description - Fix text overflow on group card description
- Exclude tags with more than 40 characters from being extracted - Exclude tags with more than 40 characters from being extracted
- Avoid duplicate tags with different casing - Avoid duplicate tags with different casing
- Fix invalid HTML (`<div>` inside `<label>`) - Fix invalid HTML (<div> inside <label>)
- Fix latest group not refreshing in admin section - Fix latest group not refreshing in admin section
- Add missing "relay@" part of federated address to follow - Add missing "relay@" part of federated address to follow
- Fix Ueberauth use of CSRF with session - Fix Ueberauth use of CSRF with session

View File

@ -25,14 +25,3 @@ format:
docker-compose run --rm api bash -c "mix format && mix credo --strict" docker-compose run --rm api bash -c "mix format && mix credo --strict"
@bash docker/message.sh "Code is now ready to commit :)" @bash docker/message.sh "Code is now ready to commit :)"
target: init target: init
RELEASE_TAG=$(shell git tag --list '[0-9]*.[0-9]*.[0-9]*' | tail -n1)
release:
mix local.hex --force
mix local.rebar --force
mix deps.get --only-prod
mix compile
mix phx.digest.clean --all && mix phx.digest
mix release --path release/mobilizon
cd release/mobilizon && ln -s lib/mobilizon-*/priv priv
tar czf mobilizon-$(RELEASE_TAG).tar.gz -C release mobilizon

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. 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 ## ✨ Features
@ -41,28 +41,31 @@ There's no lock-in, you can interact with the event without registration.
## Contributing ## Contributing
We appreciate any contribution to Mobilizon. Check [our contributing page](https://docs.joinmobilizon.org/contribute/) for more information. We appreciate any contribution to Mobilizon. Check our [CONTRIBUTING](CONTRIBUTING.md) file for more information.
## Links ## Links
### Learn more ### Learn more
* 🌐 Official website: [https://joinmobilizon.org](https://joinmobilizon.org)
* 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org) - 🌐 Official website: [https://joinmobilizon.org](https://joinmobilizon.org)
* 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon) - 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org)
* 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org) - 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon)
- 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org)
### Discuss ### 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 ### 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`. Note: Most federation code comes from [Pleroma](https://pleroma.social), which is `Copyright © 2017-2018 Pleroma Authors - AGPL-3.0`.
## ❤️ Supports of our crowdfunding ## ❤️ 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). 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 ### 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. 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: [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. 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: 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. - 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 - 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 - 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; - 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; - 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. - 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!) - 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 - 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. Note : Please report security bugs in third-party modules to the person or team maintaining the module.

View File

@ -13,15 +13,14 @@ config :mobilizon,
config :mobilizon, Mobilizon.Storage.Repo, types: Mobilizon.Storage.PostgresTypes config :mobilizon, Mobilizon.Storage.Repo, types: Mobilizon.Storage.PostgresTypes
config :mobilizon, :instance, config :mobilizon, :instance,
name: "My Mobilizon Instance", name: "Mobilizon du Chapril",
description: "Change this to a proper description of your instance", description: "Instance du Chapril",
hostname: "localhost", hostname: "localhost",
registrations_open: false, registrations_open: true,
registration_email_allowlist: [], registration_email_allowlist: [],
registration_email_denylist: [], registration_email_denylist: [],
disable_database_login: false,
languages: [], languages: [],
default_language: "en", default_language: "fr",
demo: false, demo: false,
repository: Mix.Project.config()[:source_url], repository: Mix.Project.config()[:source_url],
allow_relay: true, allow_relay: true,
@ -36,9 +35,9 @@ config :mobilizon, :instance,
unconfirmed_user_grace_period_hours: 48, unconfirmed_user_grace_period_hours: 48,
activity_expire_days: 365, activity_expire_days: 365,
activity_keep_number: 100, activity_keep_number: 100,
enable_instance_feeds: false, enable_instance_feeds: true,
email_from: "noreply@localhost", email_from: "noreply@mobilizon.chapril.org",
email_reply_to: "noreply@localhost" email_reply_to: "noreply@mobilizon.chapril.org"
config :mobilizon, :groups, enabled: true config :mobilizon, :groups, enabled: true
config :mobilizon, :events, creation: true config :mobilizon, :events, creation: true
@ -55,7 +54,7 @@ config :mobilizon, Mobilizon.Web.Endpoint,
secret_key_base: "1yOazsoE0Wqu4kXk3uC5gu3jDbShOimTCzyFL3OjCdBmOXMyHX87Qmf3+Tu9s0iM", secret_key_base: "1yOazsoE0Wqu4kXk3uC5gu3jDbShOimTCzyFL3OjCdBmOXMyHX87Qmf3+Tu9s0iM",
render_errors: [view: Mobilizon.Web.ErrorView, accepts: ~w(html json)], render_errors: [view: Mobilizon.Web.ErrorView, accepts: ~w(html json)],
pubsub_server: Mobilizon.PubSub, pubsub_server: Mobilizon.PubSub,
cache_static_manifest: "priv/static/cache_manifest.json", cache_static_manifest: "priv/static/manifest.json",
has_reverse_proxy: true has_reverse_proxy: true
config :mime, :types, %{ config :mime, :types, %{
@ -91,7 +90,7 @@ config :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "/var/lib/mobil
config :tz_world, data_dir: "/var/lib/mobilizon/timezones" 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, config :mobilizon, :media_proxy,
enabled: true, enabled: true,
@ -124,21 +123,15 @@ config :mobilizon, Mobilizon.Web.Email.Mailer,
# can be `true` # can be `true`
no_mx_lookups: false no_mx_lookups: false
config :vite_phx,
release_app: :mobilizon,
# to tell prod and dev env appart
environment: config_env(),
# this manifest is different from the Phoenix "cache_manifest.json"!
# optional
vite_manifest: "priv/static/manifest.json",
# optional
dev_server_address: "http://localhost:5173"
# Configures Elixir's Logger # Configures Elixir's Logger
config :logger, :console, config :logger, :console,
backends: [:console], backends: [:console],
format: "$time $metadata[$level] $message\n", format: "$time $metadata[$level] $message\n",
metadata: [:request_id, :graphql_operation_name, :user_id, :actor_name] metadata: [:request_id]
config :logger, Sentry.LoggerBackend,
level: :warn,
capture_log_messages: true
config :mobilizon, Mobilizon.Web.Auth.Guardian, config :mobilizon, Mobilizon.Web.Auth.Guardian,
issuer: "mobilizon", issuer: "mobilizon",
@ -349,28 +342,13 @@ config :mobilizon, Mobilizon.Service.Notifier.Push, enabled: true
config :mobilizon, :exports, config :mobilizon, :exports,
path: "/var/lib/mobilizon/uploads/exports", path: "/var/lib/mobilizon/uploads/exports",
formats: [ 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: [] config :mobilizon, :analytics, providers: []
config :mobilizon, Mobilizon.Service.Pictures, service: Mobilizon.Service.Pictures.Unsplash
config :mobilizon, Mobilizon.Service.Pictures.Unsplash,
app_name: "Mobilizon",
access_key: nil
config :mobilizon, :search, global: [is_default_search: false, is_enabled: true]
config :mobilizon, Mobilizon.Service.GlobalSearch,
service: Mobilizon.Service.GlobalSearch.SearchMobilizon
config :mobilizon, Mobilizon.Service.GlobalSearch.SearchMobilizon,
endpoint: "https://search.joinmobilizon.org",
csp_policy: [
img_src: ["search.joinmobilizon.org"]
]
# Import environment specific config. This must remain at the bottom # Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above. # of this file so it overrides the configuration defined above.
import_config "#{config_env()}.exs" import_config "#{config_env()}.exs"

View File

@ -15,7 +15,13 @@ config :mobilizon, Mobilizon.Web.Endpoint,
check_origin: false, check_origin: false,
watchers: [ watchers: [
node: [ node: [
"node_modules/.bin/vite", "node_modules/webpack/bin/webpack.js",
"--mode",
"development",
"--watch",
"--watch-options-stdin",
"--config",
"node_modules/@vue/cli-service/webpack.config.js",
cd: Path.expand("../js", __DIR__) cd: Path.expand("../js", __DIR__)
] ]
] ]
@ -48,7 +54,7 @@ config :mobilizon, Mobilizon.Web.Endpoint,
] ]
# Do not include metadata nor timestamps in development logs # Do not include metadata nor timestamps in development logs
config :logger, :console, format: "$metadata[$level] $message\n", level: :debug config :logger, :console, format: "[$level] $message\n", level: :debug
config :mobilizon, Mobilizon.Service.Geospatial, service: Mobilizon.Service.Geospatial.Nominatim config :mobilizon, Mobilizon.Service.Geospatial, service: Mobilizon.Service.Geospatial.Nominatim
@ -71,9 +77,7 @@ config :mobilizon, Mobilizon.Storage.Repo,
hostname: System.get_env("MOBILIZON_DATABASE_HOST", "localhost"), hostname: System.get_env("MOBILIZON_DATABASE_HOST", "localhost"),
port: System.get_env("MOBILIZON_DATABASE_PORT", "5432"), port: System.get_env("MOBILIZON_DATABASE_PORT", "5432"),
pool_size: 10, pool_size: 10,
show_sensitive_data_on_connection_error: true, show_sensitive_data_on_connection_error: true
# Logging is handled by Ecto.DevLogger
log: false
config :mobilizon, :instance, config :mobilizon, :instance,
name: System.get_env("MOBILIZON_INSTANCE_NAME", "Mobilizon"), name: System.get_env("MOBILIZON_INSTANCE_NAME", "Mobilizon"),
@ -98,5 +102,3 @@ config :mobilizon, :anonymous,
reports: [ reports: [
allowed: true allowed: true
] ]
config :unplug, :init_mode, :runtime

View File

@ -39,7 +39,7 @@ config :mobilizon, Mobilizon.Storage.Repo,
password: System.get_env("MOBILIZON_DATABASE_PASSWORD", "password"), password: System.get_env("MOBILIZON_DATABASE_PASSWORD", "password"),
database: System.get_env("MOBILIZON_DATABASE_DBNAME", "mobilizon"), database: System.get_env("MOBILIZON_DATABASE_DBNAME", "mobilizon"),
hostname: System.get_env("MOBILIZON_DATABASE_HOST", "postgres"), hostname: System.get_env("MOBILIZON_DATABASE_HOST", "postgres"),
port: System.get_env("MOBILIZON_DATABASE_PORT", "5432"), port: 5432,
pool_size: 10 pool_size: 10
config :mobilizon, Mobilizon.Web.Email.Mailer, config :mobilizon, Mobilizon.Web.Email.Mailer,

View File

@ -19,39 +19,19 @@ config :mobilizon, Mobilizon.Web.Endpoint,
yarn: [cd: Path.expand("../js", __DIR__)] yarn: [cd: Path.expand("../js", __DIR__)]
] ]
config :vite_phx, require Logger
release_app: :mobilizon,
# Hard code :prod as an environment as :e2e will not be recongnized
environment: :prod,
vite_manifest: "priv/static/manifest.json",
phx_manifest: "priv/static/cache_manifest.json",
dev_server_address: "http://localhost:5173"
config :mobilizon, :instance, cond do
name: "E2E Testing instance", System.get_env("INSTANCE_CONFIG") &&
description: "E2E is safety", File.exists?("./config/#{System.get_env("INSTANCE_CONFIG")}") ->
hostname: "mobilizon1.com", import_config System.get_env("INSTANCE_CONFIG")
registrations_open: true,
registration_email_denylist: ["gmail.com", "deny@tcit.fr"],
demo: false,
default_language: "en",
allow_relay: true,
federating: true,
email_from: "mobilizon@mobilizon1.com",
email_reply_to: nil,
enable_instance_feeds: true,
koena_connect_link: true,
extra_categories: [
%{
id: :something_else,
label: "Quelque chose d'autre"
}
]
config :mobilizon, Mobilizon.Storage.Repo, System.get_env("DOCKER", "false") == "false" && File.exists?("./config/e2e.secret.exs") ->
adapter: Ecto.Adapters.Postgres, import_config "e2e.secret.exs"
username: System.get_env("MOBILIZON_DATABASE_USERNAME", "mobilizon_e2e"),
password: System.get_env("MOBILIZON_DATABASE_PASSWORD", "mobilizon_e2e"), System.get_env("DOCKER", "false") == "true" ->
database: System.get_env("MOBILIZON_DATABASE_DBNAME", "mobilizon_e2e"), Logger.info("Using environment configuration for Docker")
hostname: System.get_env("MOBILIZON_DATABASE_HOST", "localhost"),
port: System.get_env("MOBILIZON_DATABASE_PORT") || "5432" true ->
Logger.error("No configuration file found")
end

View File

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

View File

@ -88,8 +88,6 @@ config :mobilizon, Mobilizon.Web.Gettext, allowed_locales: ["fr", "en", "es", "r
config :junit_formatter, report_dir: "." config :junit_formatter, report_dir: "."
config :mobilizon, :http_security, report_uri: "https://endpoint.com"
if System.get_env("DOCKER", "false") == "false" && File.exists?("./config/test.secret.exs") do if System.get_env("DOCKER", "false") == "false" && File.exists?("./config/test.secret.exs") do
import_config "test.secret.exs" import_config "test.secret.exs"
end end

View File

@ -35,7 +35,6 @@ RUN source /root/.bashrc && \
mix deps.get --only prod && \ mix deps.get --only prod && \
mix compile && \ mix compile && \
mix phx.digest.clean --all && \ mix phx.digest.clean --all && \
mix phx.digest && \
mix release --path release/mobilizon && \ mix release --path release/mobilizon && \
cd release/mobilizon && \ cd release/mobilizon && \
ln -s lib/mobilizon-*/priv priv && \ ln -s lib/mobilizon-*/priv priv && \

View File

@ -5,12 +5,14 @@ RUN apk add --no-cache python3 build-base libwebp-tools bash imagemagick ncurses
WORKDIR /build WORKDIR /build
COPY js . COPY js .
ENV CYPRESS_INSTALL_BINARY 0
# Network timeout because it's slow when cross-compiling # Network timeout because it's slow when cross-compiling
RUN yarn install --network-timeout 100000 \ RUN yarn install --network-timeout 100000 \
&& yarn run build && yarn run build
# Then, build the application binary # Then, build the application binary
FROM elixir:1.14-alpine AS builder FROM elixir:1.13-alpine AS builder
RUN apk add --no-cache build-base git cmake RUN apk add --no-cache build-base git cmake
@ -28,7 +30,8 @@ COPY rel ./rel
COPY support ./support COPY support ./support
COPY --from=assets ./priv/static ./priv/static COPY --from=assets ./priv/static ./priv/static
RUN mix phx.digest.clean --all && mix phx.digest && mix release RUN mix phx.digest.clean --all \
&& mix release
# Finally setup the app # Finally setup the app
FROM alpine FROM alpine
@ -46,7 +49,7 @@ LABEL org.opencontainers.image.title="mobilizon" \
org.opencontainers.image.revision=$VCS_REF \ org.opencontainers.image.revision=$VCS_REF \
org.opencontainers.image.created=$BUILD_DATE org.opencontainers.image.created=$BUILD_DATE
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 openssl1.1-compat 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 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/uploads && chown nobody:nobody /var/lib/mobilizon/uploads

View File

@ -1,7 +1,7 @@
FROM elixir:latest FROM elixir:latest
LABEL maintainer="Thomas Citharel <tcit@tcit.fr>" LABEL maintainer="Thomas Citharel <tcit@tcit.fr>"
ENV REFRESHED_AT=2022-09-20 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 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 curl -sL https://deb.nodesource.com/setup_16.x | bash && apt-get install nodejs -yq
RUN npm install -g yarn wait-on RUN npm install -g yarn wait-on

View File

@ -1,6 +1,3 @@
/* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution");
module.exports = { module.exports = {
root: true, root: true,
@ -9,11 +6,10 @@ module.exports = {
}, },
extends: [ extends: [
"plugin:vue/essential",
"eslint:recommended", "eslint:recommended",
"plugin:vue/vue3-essential", "@vue/typescript/recommended",
"@vue/eslint-config-typescript/recommended",
"plugin:prettier/recommended", "plugin:prettier/recommended",
"@vue/eslint-config-prettier",
], ],
plugins: ["prettier"], plugins: ["prettier"],
@ -24,11 +20,12 @@ module.exports = {
}, },
rules: { rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-underscore-dangle": [ "no-underscore-dangle": [
"error", "error",
{ {
allow: ["__typename", "__schema"], allow: ["__typename"],
}, },
], ],
"@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-explicit-any": "off",
@ -53,7 +50,4 @@ module.exports = {
}, },
ignorePatterns: ["src/typings/*.d.ts", "vue.config.js"], ignorePatterns: ["src/typings/*.d.ts", "vue.config.js"],
globals: {
GeolocationPositionError: true,
},
}; };

7
js/.gitignore vendored
View File

@ -2,8 +2,9 @@
node_modules node_modules
/dist /dist
/tests/e2e/videos/
/tests/e2e/screenshots/
/coverage /coverage
stats.html
# local env files # local env files
.env.local .env.local
@ -22,6 +23,4 @@ yarn-error.log*
*.njsproj *.njsproj
*.sln *.sln
*.sw? *.sw?
/test-results/ .yarn
/playwright-report/
/playwright/.cache/

3
js/.yarnrc.yml Normal file
View File

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

41
js/README.md Normal file
View File

@ -0,0 +1,41 @@
# mobilizon
## Project setup
```
yarn install
```
### Compiles and hot-reloads for development
```
yarn serve
```
### Compiles and minifies for production
```
yarn build
```
### Run your unit tests
```
yarn test:unit
```
### Run your end-to-end tests
```
yarn test:e2e
```
### Lints and fixes files
```
yarn lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

3
js/babel.config.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = {
presets: ["@vue/cli-plugin-babel/preset"],
};

7
js/cypress.json Normal file
View File

@ -0,0 +1,7 @@
{
"pluginsFile": "tests/e2e/plugins/index.js",
"projectId": "86dpkx",
"baseUrl": "http://localhost:4000",
"viewportWidth": 1920,
"viewportHeight": 1080
}

12
js/env.d.ts vendored
View File

@ -1,12 +0,0 @@
/// <reference types="histoire/vue" />
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_SERVER_URL: string;
readonly VITE_HISTOIRE_ENV: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

View File

@ -1,5 +1,5 @@
import fetch from "node-fetch"; const fetch = require("node-fetch");
import fs from "fs"; const fs = require("fs");
fetch(`http://localhost:4000/api`, { fetch(`http://localhost:4000/api`, {
method: "POST", method: "POST",

View File

@ -1,51 +0,0 @@
/// <reference types="@histoire/plugin-vue/components" />
import { defineConfig } from "histoire";
import { HstVue } from "@histoire/plugin-vue";
import path from "path";
export default defineConfig({
plugins: [HstVue()],
setupFile: path.resolve(__dirname, "./src/histoire.setup.ts"),
viteNodeInlineDeps: [/date-fns/],
tree: {
groups: [
{
title: "Actors",
include: (file) => /^src\/components\/Account/.test(file.path),
},
{
title: "Address",
include: (file) => /^src\/components\/Address/.test(file.path),
},
{
title: "Comments",
include: (file) => /^src\/components\/Comment/.test(file.path),
},
{
title: "Discussion",
include: (file) => /^src\/components\/Discussion/.test(file.path),
},
{
title: "Events",
include: (file) => /^src\/components\/Event/.test(file.path),
},
{
title: "Groups",
include: (file) => /^src\/components\/Group/.test(file.path),
},
{
title: "Home",
include: (file) => /^src\/components\/Home/.test(file.path),
},
{
title: "Posts",
include: (file) => /^src\/components\/Post/.test(file.path),
},
{
title: "Others",
include: () => true,
},
],
},
});

20
js/jest.config.js Normal file
View File

@ -0,0 +1,20 @@
module.exports = {
preset: "@vue/cli-plugin-unit-jest/presets/typescript-and-babel",
collectCoverage: true,
collectCoverageFrom: [
"**/*.{vue,ts}",
"!**/node_modules/**",
"!get_union_json.ts",
],
coverageReporters: ["html", "text", "text-summary"],
reporters: ["default", "jest-junit"],
// The following should fix the issue with svgs and ?inline loader (see Logo.vue), but doesn't work
//
// transform: {
// "^.+\\.svg$": "<rootDir>/tests/unit/svgTransform.js",
// },
// moduleNameMapper: {
// "^@/(.*svg)(\\?inline)$": "<rootDir>/src/$1",
// "^@/(.*)$": "<rootDir>/src/$1",
// },
};

View File

@ -1,28 +1,23 @@
{ {
"name": "mobilizon", "name": "mobilizon",
"version": "3.0.3", "version": "2.1.0",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite", "serve": "vue-cli-service serve",
"preview": "vite preview",
"build": "yarn run build:assets && yarn run build:pictures", "build": "yarn run build:assets && yarn run build:pictures",
"lint": "eslint --ext .ts,.vue --ignore-path .gitignore --fix src", "test:unit": "LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 TZ=UTC vue-cli-service test:unit",
"format": "prettier . --write", "test:e2e": "vue-cli-service test:e2e",
"build:assets": "vite build", "lint": "vue-cli-service lint",
"build:pictures": "bash ./scripts/build/pictures.sh", "build:assets": "vue-cli-service build --report",
"story:dev": "histoire dev", "build:pictures": "bash ./scripts/build/pictures.sh"
"story:build": "histoire build",
"story:preview": "histoire preview",
"test": "vitest",
"coverage": "vitest run --coverage"
}, },
"dependencies": { "dependencies": {
"@absinthe/socket": "^0.2.1", "@absinthe/socket": "^0.2.1",
"@absinthe/socket-apollo-link": "^0.2.1", "@absinthe/socket-apollo-link": "^0.2.1",
"@apollo/client": "^3.3.16", "@apollo/client": "^3.3.16",
"@oruga-ui/oruga-next": "^0.5.5", "@mdi/font": "^6.1.95",
"@sentry/tracing": "^7.1", "@sentry/tracing": "^6.16.1",
"@sentry/vue": "^7.1", "@sentry/vue": "^6.16.1",
"@tailwindcss/line-clamp": "^0.4.0", "@tailwindcss/line-clamp": "^0.4.0",
"@tiptap/core": "^2.0.0-beta.41", "@tiptap/core": "^2.0.0-beta.41",
"@tiptap/extension-blockquote": "^2.0.0-beta.25", "@tiptap/extension-blockquote": "^2.0.0-beta.25",
@ -41,34 +36,27 @@
"@tiptap/extension-mention": "^2.0.0-beta.42", "@tiptap/extension-mention": "^2.0.0-beta.42",
"@tiptap/extension-ordered-list": "^2.0.0-beta.24", "@tiptap/extension-ordered-list": "^2.0.0-beta.24",
"@tiptap/extension-paragraph": "^2.0.0-beta.22", "@tiptap/extension-paragraph": "^2.0.0-beta.22",
"@tiptap/extension-placeholder": "^2.0.0-beta.199",
"@tiptap/extension-strike": "^2.0.0-beta.26", "@tiptap/extension-strike": "^2.0.0-beta.26",
"@tiptap/extension-text": "^2.0.0-beta.15", "@tiptap/extension-text": "^2.0.0-beta.15",
"@tiptap/extension-underline": "^2.0.0-beta.7", "@tiptap/extension-underline": "^2.0.0-beta.7",
"@tiptap/suggestion": "^2.0.0-beta.195", "@tiptap/vue-2": "^2.0.0-beta.21",
"@tiptap/vue-3": "^2.0.0-beta.96",
"@vue-a11y/announcer": "^2.1.0", "@vue-a11y/announcer": "^2.1.0",
"@vue-a11y/skip-to": "^2.1.2", "@vue-a11y/skip-to": "^2.1.2",
"@vue-leaflet/vue-leaflet": "^0.6.1", "@vue/apollo-option": "4.0.0-alpha.11",
"@vue/apollo-composable": "^4.0.0-beta.1",
"@vue/compiler-sfc": "^3.2.37",
"@vueuse/core": "^9.1.0",
"@vueuse/head": "^1.0",
"@vueuse/router": "^9.0.2",
"apollo-absinthe-upload-link": "^1.5.0", "apollo-absinthe-upload-link": "^1.5.0",
"autoprefixer": "^10", "autoprefixer": "^10",
"blurhash": "^2.0.0", "blurhash": "^1.1.3",
"buefy": "^0.9.0",
"bulma-divider": "^0.2.0",
"core-js": "^3.6.4",
"date-fns": "^2.16.0", "date-fns": "^2.16.0",
"date-fns-tz": "^1.1.6", "date-fns-tz": "^1.1.6",
"floating-vue": "^2.0.0-beta.17", "graphql": "^16.0.0",
"graphql": "^15.8.0",
"graphql-tag": "^2.10.3", "graphql-tag": "^2.10.3",
"hammerjs": "^2.0.8",
"intersection-observer": "^0.12.0", "intersection-observer": "^0.12.0",
"jwt-decode": "^3.1.2", "jwt-decode": "^3.1.2",
"leaflet": "^1.4.0", "leaflet": "^1.4.0",
"leaflet.locatecontrol": "^0.78", "leaflet.locatecontrol": "^0.76.0",
"leaflet.markercluster": "^1.5.3",
"lodash": "^4.17.11", "lodash": "^4.17.11",
"ngeohash": "^0.6.3", "ngeohash": "^0.6.3",
"p-debounce": "^4.0.0", "p-debounce": "^4.0.0",
@ -79,53 +67,64 @@
"tailwindcss": "^3", "tailwindcss": "^3",
"tippy.js": "^6.2.3", "tippy.js": "^6.2.3",
"unfetch": "^4.2.0", "unfetch": "^4.2.0",
"vue": "^3.2.37", "v-tooltip": "^2.1.3",
"vue-i18n": "9", "vue": "^2.6.11",
"vue-material-design-icons": "^5.1.2", "vue-class-component": "^7.2.3",
"vue-i18n": "^8.14.0",
"vue-matomo": "^4.1.0", "vue-matomo": "^4.1.0",
"vue-meta": "^2.3.1",
"vue-plausible": "^1.3.1", "vue-plausible": "^1.3.1",
"vue-router": "4", "vue-property-decorator": "^9.0.0",
"vue-router": "^3.1.6",
"vue-scrollto": "^2.17.1", "vue-scrollto": "^2.17.1",
"vue-use-route-query": "^1.1.0", "vue2-leaflet": "^2.0.3",
"zhyswan-vuedraggable": "^4.1.3" "vuedraggable": "^2.24.3"
}, },
"devDependencies": { "devDependencies": {
"@histoire/plugin-vue": "^0.11.0", "@rushstack/eslint-patch": "^1.1.0",
"@playwright/test": "^1.25.1", "@types/jest": "^27.0.2",
"@rushstack/eslint-patch": "^1.1.4",
"@tailwindcss/forms": "^0.5.2",
"@tailwindcss/typography": "^0.5.4",
"@types/hammerjs": "^2.0.41",
"@types/leaflet": "^1.5.2", "@types/leaflet": "^1.5.2",
"@types/leaflet.locatecontrol": "^0.74", "@types/leaflet.locatecontrol": "^0.74",
"@types/leaflet.markercluster": "^1.5.1",
"@types/lodash": "^4.14.141", "@types/lodash": "^4.14.141",
"@types/ngeohash": "^0.6.2", "@types/ngeohash": "^0.6.2",
"@types/phoenix": "^1.5.2", "@types/phoenix": "^1.5.2",
"@types/prosemirror-inputrules": "^1.0.2",
"@types/prosemirror-model": "^1.7.2",
"@types/prosemirror-state": "^1.2.4",
"@types/prosemirror-view": "^1.11.4",
"@types/sanitize-html": "^2.5.0", "@types/sanitize-html": "^2.5.0",
"@vitejs/plugin-vue": "^3.0.3", "@typescript-eslint/eslint-plugin": "^5.3.0",
"@vitest/coverage-c8": "^0.25.2", "@typescript-eslint/parser": "^5.3.0",
"@vitest/ui": "^0.25.2", "@vue/cli-plugin-babel": "~5.0.4",
"@vue/eslint-config-prettier": "^7.0.0", "@vue/cli-plugin-eslint": "~5.0.4",
"@vue/eslint-config-typescript": "^11.0.0", "@vue/cli-plugin-pwa": "~5.0.4",
"@vue/test-utils": "^2.0.2", "@vue/cli-plugin-router": "~5.0.4",
"eslint": "^8.21.0", "@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",
"eslint": "^8.2.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.20.2", "eslint-plugin-import": "^2.20.2",
"eslint-plugin-prettier": "^4.0.0", "eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^9.3.0", "eslint-plugin-vue": "^8.0.3",
"flush-promises": "^1.0.2", "flush-promises": "^1.0.2",
"histoire": "^0.11.0", "jest": "^27.1.0",
"jsdom": "^20.0.0", "jest-junit": "^13.0.0",
"mock-apollo-client": "^1.1.0", "mock-apollo-client": "^1.1.0",
"prettier": "^2.2.1", "prettier": "^2.2.1",
"prettier-eslint": "^15.0.1", "prettier-eslint": "^14.0.0",
"rollup-plugin-visualizer": "^5.7.1",
"sass": "^1.34.1", "sass": "^1.34.1",
"typescript": "~4.8.3", "sass-loader": "^12.0.0",
"vite": "^3.0.9", "ts-jest": "27",
"vite-plugin-pwa": "^0.13.0", "typescript": "~4.5.5",
"vitest": "^0.25.2", "vue-cli-plugin-tailwind": "~3.0.0",
"vue-i18n-extract": "^2.0.4" "vue-i18n-extract": "^2.0.4",
} "vue-template-compiler": "^2.6.11",
"webpack-cli": "^4.7.0"
},
"packageManager": "yarn@3.1.1"
} }

View File

@ -1,107 +0,0 @@
import type { PlaywrightTestConfig } from "@playwright/test";
import { devices } from "@playwright/test";
/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// require('dotenv').config();
/**
* See https://playwright.dev/docs/test-configuration.
*/
const config: PlaywrightTestConfig = {
testDir: "./tests/e2e",
/* Maximum time one test can run for. */
timeout: 10 * 1000,
expect: {
/**
* Maximum time expect() should wait for the condition to be met.
* For example in `await expect(locator).toHaveText();`
*/
timeout: 5000,
},
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: process.env.CI ? 2 : 0,
/* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: "html",
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
actionTimeout: 0,
/* Base URL to use in actions like `await page.goto('/')`. */
baseURL: "http://localhost:4000",
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: "on-first-retry",
},
/* Configure projects for major browsers */
projects: [
{
name: "chromium",
use: {
...devices["Desktop Chrome"],
},
},
{
name: "firefox",
use: {
...devices["Desktop Firefox"],
},
},
// {
// name: 'webkit',
// use: {
// ...devices['Desktop Safari'],
// },
// },
/* Test against mobile viewports. */
// {
// name: 'Mobile Chrome',
// use: {
// ...devices['Pixel 5'],
// },
// },
// {
// name: 'Mobile Safari',
// use: {
// ...devices['iPhone 12'],
// },
// },
/* Test against branded browsers. */
// {
// name: 'Microsoft Edge',
// use: {
// channel: 'msedge',
// },
// },
// {
// name: 'Google Chrome',
// use: {
// channel: 'chrome',
// },
// },
],
/* Folder for test artifacts such as screenshots, videos, traces, etc. */
// outputDir: 'test-results/',
/* Run your local dev server before starting the tests */
// webServer: {
// command: 'npm run start',
// port: 3000,
// },
};
export default config;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

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

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.9 KiB

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.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="100%"
height="100%"
viewBox="0 0 96 105"
version="1.1"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"
class="svg-logo-solid"
id="svg32"
sodipodi:docname="owncast.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"><metadata
id="metadata38"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs36" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview34"
showgrid="false"
inkscape:zoom="7.5619048"
inkscape:cx="48"
inkscape:cy="52.367758"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg32" />
<g
transform="matrix(1.04457,0,0,1.04457,-0.742448,-0.0626735)"
id="g30"
style="fill:#000000">
<g
id="g12"
style="fill:#000000">
<path
d="M91.5,75.35C92.533,72.55 92.583,70 91.65,67.7C90.783,65.567 89.117,63.767 86.65,62.3C84.35,60.967 81.567,60 78.3,59.4C75.333,58.867 72.1,58.633 68.6,58.7C65.233,58.8 61.967,59.167 58.8,59.8C55.767,60.433 53.1,61.233 50.8,62.2C48.533,63.167 46.767,64.217 45.5,65.35C44.233,66.55 43.567,67.783 43.5,69.05C43.4,70.55 44.167,72.167 45.8,73.9C47.3,75.5 49.4,77.067 52.1,78.6C54.8,80.133 57.783,81.45 61.05,82.55C64.55,83.717 68,84.467 71.4,84.8C73.6,85 75.65,85.033 77.55,84.9C79.617,84.7 81.533,84.267 83.3,83.6C85.2,82.867 86.817,81.85 88.15,80.55C89.65,79.117 90.767,77.383 91.5,75.35M70.6,67.5C71.733,68.1 72.567,68.833 73.1,69.7C73.633,70.667 73.75,71.767 73.45,73C73.217,73.867 72.833,74.617 72.3,75.25C71.8,75.817 71.133,76.267 70.3,76.6C69.6,76.9 68.75,77.117 67.75,77.25C66.783,77.35 65.817,77.367 64.85,77.3C63.15,77.2 61.283,76.867 59.25,76.3C57.483,75.767 55.783,75.1 54.15,74.3C52.65,73.567 51.417,72.8 50.45,72C49.517,71.167 49.067,70.433 49.1,69.8C49.167,69.267 49.55,68.75 50.25,68.25C50.95,67.783 51.917,67.367 53.15,67C54.383,66.6 55.75,66.3 57.25,66.1C58.95,65.9 60.567,65.8 62.1,65.8C63.8,65.833 65.333,65.967 66.7,66.2C68.167,66.5 69.467,66.933 70.6,67.5Z"
style="fill:#000000;fill-rule:nonzero"
id="path10" />
</g>
<g
id="g16"
style="fill:#000000">
<path
d="M66.6,15.05C66.467,11.45 65.567,8.45 63.9,6.05C62.133,3.417 59.533,1.617 56.1,0.65C55.333,0.417 54.517,0.25 53.65,0.15C52.883,0.05 52.1,0.033 51.3,0.1C50.567,0.1 49.833,0.183 49.1,0.35C48.467,0.483 47.767,0.7 47,1C44.533,1.967 42.3,3.667 40.3,6.1C38.433,8.3 36.833,11.033 35.5,14.3C34.333,17.067 33.4,20.1 32.7,23.4C32.033,26.5 31.583,29.65 31.35,32.85C31.15,35.75 31.133,38.533 31.3,41.2C31.5,43.833 31.867,46.217 32.4,48.35C33.467,52.717 35.1,55.4 37.3,56.4C37.5,56.5 37.7,56.583 37.9,56.65L39.2,56.85C39.367,56.85 39.617,56.833 39.95,56.8C41.35,56.667 42.933,56.083 44.7,55.05C46.4,54.017 48.183,52.6 50.05,50.8C52.05,48.867 53.983,46.617 55.85,44.05C57.817,41.383 59.567,38.567 61.1,35.6C62.9,32.1 64.283,28.667 65.25,25.3C66.25,21.6 66.7,18.183 66.6,15.05M47.55,23.15C47.883,23.217 48.167,23.3 48.4,23.4C51.1,24.333 52.483,26.483 52.55,29.85C52.583,32.617 51.733,35.8 50,39.4C48.567,42.4 46.85,45.033 44.85,47.3C42.983,49.433 41.417,50.567 40.15,50.7L39.9,50.75L39.45,50.7L39.2,50.6C38.267,50.167 37.617,48.75 37.25,46.35C36.883,43.917 36.9,41.133 37.3,38C37.733,34.5 38.55,31.433 39.75,28.8C41.183,25.667 42.95,23.817 45.05,23.25C45.417,23.15 45.683,23.1 45.85,23.1C46.117,23.067 46.383,23.05 46.65,23.05C46.917,23.05 47.217,23.083 47.55,23.15Z"
style="fill:#000000;fill-rule:nonzero"
id="path14" />
</g>
<g
id="g20"
style="fill:#000000">
<path
d="M2.7,33.6C2.3,34.133 1.967,34.717 1.7,35.35C1.4,36.117 1.183,36.9 1.05,37.7C0.35,40.967 0.733,44.133 2.2,47.2C3.4,49.733 5.333,52.117 8,54.35C10.367,56.317 13.033,57.917 16,59.15C19,60.383 21.617,60.95 23.85,60.85C24.283,60.85 24.75,60.8 25.25,60.7C25.75,60.6 26.167,60.467 26.5,60.3C26.833,60.133 27.15,59.917 27.45,59.65C27.75,59.383 27.983,59.083 28.15,58.75C28.95,57.217 28.733,54.85 27.5,51.65C26.233,48.55 24.317,45.367 21.75,42.1C19.083,38.7 16.3,36.017 13.4,34.05C10.267,31.95 7.617,31.167 5.45,31.7C4.917,31.833 4.417,32.067 3.95,32.4C3.483,32.7 3.067,33.1 2.7,33.6M10.1,43.55C10.267,43.25 10.433,43.017 10.6,42.85C10.767,42.683 10.967,42.533 11.2,42.4C11.467,42.3 11.7,42.233 11.9,42.2C12.967,42 14.317,42.467 15.95,43.6C17.417,44.567 18.883,45.933 20.35,47.7C21.683,49.3 22.75,50.867 23.55,52.4C24.317,53.967 24.55,55.067 24.25,55.7C24.183,55.833 24.1,55.933 24,56C23.9,56.133 23.783,56.217 23.65,56.25C23.583,56.317 23.45,56.367 23.25,56.4L22.7,56.5C21.633,56.567 20.25,56.267 18.55,55.6C16.883,54.933 15.317,54.05 13.85,52.95C12.283,51.783 11.117,50.517 10.35,49.15C9.483,47.583 9.283,46.017 9.75,44.45C9.85,44.117 9.967,43.817 10.1,43.55Z"
style="fill:#000000;fill-rule:nonzero"
id="path18" />
</g>
<g
id="g24"
style="fill:#000000">
<path
d="M34.95,74.2L34.75,74.2C33.717,74.167 32.767,74.517 31.9,75.25C31.1,75.95 30.417,76.95 29.85,78.25C29.35,79.417 29,80.733 28.8,82.2C28.6,83.667 28.567,85.15 28.7,86.65C28.967,89.817 29.9,92.5 31.5,94.7C33.367,97.233 35.967,98.9 39.3,99.7L39.4,99.7L39.7,99.8L39.85,99.8C43.483,100.5 45.917,99.817 47.15,97.75C47.717,96.783 48,95.55 48,94.05C47.967,92.617 47.7,91.05 47.2,89.35C46.7,87.617 46,85.883 45.1,84.15C44.2,82.383 43.183,80.783 42.05,79.35C40.85,77.85 39.65,76.65 38.45,75.75C37.183,74.817 36.017,74.3 34.95,74.2M33.55,80.4C34.083,78.933 34.767,78.233 35.6,78.3L35.65,78.3C36.483,78.4 37.467,79.267 38.6,80.9C39.733,82.533 40.583,84.25 41.15,86.05C41.783,88.017 41.917,89.583 41.55,90.75C41.117,91.983 40.05,92.483 38.35,92.25L38.3,92.25L38.25,92.2L38.1,92.2C36.433,91.867 35.15,91 34.25,89.6C33.483,88.333 33.05,86.8 32.95,85C32.85,83.233 33.05,81.7 33.55,80.4Z"
style="fill:#000000;fill-rule:nonzero"
id="path22" />
</g>
<g
id="g28"
style="fill:#000000">
<path
d="M22.7,69.65C22.4,69.417 22.033,69.217 21.6,69.05C21.167,68.883 20.717,68.767 20.25,68.7C19.817,68.6 19.35,68.533 18.85,68.5C17.417,68.467 16.017,68.683 14.65,69.15C13.317,69.583 12.233,70.233 11.4,71.1C10.567,72.033 10.167,73.067 10.2,74.2C10.233,75.433 10.817,76.767 11.95,78.2C12.25,78.567 12.617,78.967 13.05,79.4C13.383,79.733 13.767,80.033 14.2,80.3C14.533,80.5 14.9,80.683 15.3,80.85C15.767,81.017 16.133,81.1 16.4,81.1C17.6,81.267 18.767,81.017 19.9,80.35C21,79.717 21.95,78.817 22.75,77.65C23.583,76.45 24.1,75.217 24.3,73.95C24.5,72.55 24.25,71.4 23.55,70.5C23.283,70.167 23,69.883 22.7,69.65M21.7,71.7C22,72.1 22.067,72.633 21.9,73.3C21.767,73.933 21.467,74.583 21,75.25C20.533,75.883 20,76.383 19.4,76.75C18.767,77.15 18.15,77.317 17.55,77.25L17,77.15C16.8,77.083 16.617,76.983 16.45,76.85C16.317,76.783 16.133,76.65 15.9,76.45C15.767,76.317 15.6,76.133 15.4,75.9C14.8,75.133 14.567,74.433 14.7,73.8C14.767,73.233 15.117,72.733 15.75,72.3C16.317,71.9 17,71.6 17.8,71.4C18.6,71.2 19.367,71.117 20.1,71.15L20.65,71.2L21.1,71.3C21.233,71.367 21.35,71.433 21.45,71.5L21.7,71.7Z"
style="fill:#000000;fill-rule:nonzero"
id="path26" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

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