Compare commits

...

380 Commits

Author SHA1 Message Date
Thomas Citharel d8434ca3d3
Release 3.0.0-rc.3
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 14:43:10 +01:00
Thomas Citharel 1fe4baa6ba Merge branch 'cleanup-navbar' into 'main'
Cleanup navbar

See merge request framasoft/mobilizon!1320
2022-11-04 13:42:02 +00:00
Thomas Citharel 7489d60f7f
Cleanup navbar
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 14:30:26 +01:00
Thomas Citharel 88256bddfe Merge branch 'add-csp-policy-for-pictures' into 'main'
Fix event integrations

See merge request framasoft/mobilizon!1319
2022-11-04 11:29:57 +00:00
Thomas Citharel e31433cf83
Allow for resource providers to register a csp policy
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 11:50:15 +01:00
Thomas Citharel c1dff8caaa
Remove unused import
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 11:29:19 +01:00
Thomas Citharel 08ce9b6f84
Prevent loading authorized groups when current actor isn't loading in OrganizerPickerWrapper
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 11:29:12 +01:00
Thomas Citharel 74639e7203
Fix event integrations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 11:28:56 +01:00
Thomas Citharel b1cc1a9155 Merge branch 'add-csp-policy-for-pictures' into 'main'
Add CSP Policy for pictures

See merge request framasoft/mobilizon!1318
2022-11-04 10:24:21 +00:00
Thomas Citharel 57fac37347
Support CSP report_uri, report_to and the Report-To and Reporting-Endpoints headers
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 10:55:26 +01:00
Thomas Citharel e97206077c
Add CSP Policy for pictures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-04 09:26:45 +01:00
Thomas Citharel f5e81fab3f Merge branch 'fixes' into 'main'
Various fixes

Closes #1180 et #1182

See merge request framasoft/mobilizon!1317
2022-11-04 07:59:01 +00:00
Thomas Citharel 6058da0d44
Propertly handle other errors when receiving a comment
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 18:11:40 +01:00
Thomas Citharel 4bb90ebb3f
Properly handle replying to an event that has been deleted
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 18:02:32 +01:00
Thomas Citharel 770a518ad1
Properly handle un-needed background jobs
Cancel them if they're not needed

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 18:00:42 +01:00
Thomas Citharel c68c0c2120
Add context to error when removing an upload file following actor suspension
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 17:56:45 +01:00
Thomas Citharel f3ac1f7ce1
Discussions views improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 17:38:20 +01:00
Thomas Citharel afd164a449
Resources view improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 17:38:20 +01:00
Thomas Citharel d75a95cccd
Lower loglevel of resource insertion error
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 16:54:04 +01:00
Thomas Citharel 7401fc8273
Truncate resource description preview after 350 characters
Closes #1182

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 16:54:04 +01:00
Thomas Citharel e03ad73c7f
Fix multiselect of resources
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 16:26:50 +01:00
Thomas Citharel 29de9b346a
Fix moving resources
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 12:10:59 +01:00
Thomas Citharel 62dd1b85b7
Don't treat notification for a deleted event as an error
Just cancel the job

Closes #1180

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 09:50:33 +01:00
Thomas Citharel 34ecb1f3e4
Correct heading levels in CHANGELOG.md
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-03 09:00:29 +01:00
Thomas Citharel 84594459be Merge branch 'release-3.0.0-rc.2' into 'main'
Release 3.0.0-rc.2

See merge request framasoft/mobilizon!1316
2022-11-03 07:55:51 +00:00
Thomas Citharel 53fdf99628
Release 3.0.0-rc.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 19:42:33 +01:00
Thomas Citharel 4d1c551148 Merge branch 'deps' into 'main'
Upgrade deps

Closes #466 et #1086

See merge request framasoft/mobilizon!1315
2022-11-02 18:42:03 +00:00
Thomas Citharel dbf27eee2b Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1312
2022-11-02 18:09:40 +00:00
Berto Te 58c13131df Translated using Weblate (Spanish)
Currently translated at 100.0% (1440 of 1440 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-11-02 18:47:52 +01:00
Berto Te 4bf29f167c Translated using Weblate (Spanish)
Currently translated at 100.0% (211 of 211 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/es/
2022-11-02 18:47:52 +01:00
Berto Te f94119b643 Translated using Weblate (Spanish)
Currently translated at 99.0% (1427 of 1440 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-11-02 18:47:52 +01:00
Thomas Citharel ce3fa41505 Merge branch 'fixes' into 'main'
Do not list drafts in upcoming / old events event if moderator

Closes #466 et #1086

See merge request framasoft/mobilizon!1314
2022-11-02 17:47:45 +00:00
Thomas Citharel c009a5cf83
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 18:32:44 +01:00
Thomas Citharel 4dede63b83
Remove unused variable
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 18:32:30 +01:00
Thomas Citharel 84009a9530
Fix current format status of text not displayed in text editor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 18:15:19 +01:00
Thomas Citharel e69e8a5044
Allow to configure editor heading levels and set level 2 as start for posts
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 18:09:26 +01:00
Thomas Citharel 3ddf360e11
Add breadcrumb trail on Post view
And lint

Closes #466

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 18:02:20 +01:00
Thomas Citharel 30eb37e31b
Post view improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 17:45:58 +01:00
Thomas Citharel 7ee79a00e2
Fix post sharing URL
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 17:45:49 +01:00
Thomas Citharel dd3e99bc5e
Fix pagination number text color in dark theme
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 17:45:27 +01:00
Thomas Citharel 02381f2820
Fix deleting person detached from user
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 17:14:26 +01:00
Thomas Citharel 4be5cc787e
Make sure group is refreshed after action
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 17:14:26 +01:00
Thomas Citharel 75296498c4
Do not list drafts in upcoming / old events event if moderator
Closes #1086

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 17:12:35 +01:00
Thomas Citharel 48da35ee41 Merge branch 'fix-csp' into 'main'
Add sha-256 hash for toggling dark theme code and remove inlined phoenix digest

Closes #993

See merge request framasoft/mobilizon!1313
2022-11-02 11:10:48 +00:00
Thomas Citharel dcfe87116e
Allow to view more than 10 drafts events on my events view
Closes #993

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 11:38:14 +01:00
Thomas Citharel a1726fc12e
Add sha-256 hash for toggling dark theme code and remove inlined phoenix digest
Follow-up to !1300

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-11-02 11:36:32 +01:00
Thomas Citharel ae0e3fbdd1 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1310
2022-10-31 18:26:14 +00:00
Weblate 6f9721f9bf Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-10-31 19:24:47 +01:00
Thomas Citharel c8d5bdd4af Merge branch 'fixes' into 'main'
Various fixes

See merge request framasoft/mobilizon!1309
2022-10-31 18:24:42 +00:00
Thomas Citharel 2464134977
Fix anonymous/remote participation button
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 18:54:21 +01:00
Thomas Citharel dc075ccf0d
Fix anonymous & remote participation pages
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 18:54:05 +01:00
Thomas Citharel 9a135bb67f
Add unique constraint on event URL
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 18:07:49 +01:00
Thomas Citharel 2e631d3633
Lower loglevel of error when creating a new person
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 18:07:28 +01:00
Thomas Citharel be33c3b213
Search improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 18:07:14 +01:00
Thomas Citharel 5d507ecf69
Event view improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 18:05:59 +01:00
Thomas Citharel 1592ae8fe9
Make text editor level start at 3, 4, 5
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 18:04:30 +01:00
Thomas Citharel 1282bbf0f4
Fix attribute on FullAddressAutoComplete
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 15:05:14 +01:00
Thomas Citharel 8ab8364100 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1308
2022-10-31 14:03:01 +00:00
Milo Ivir ada67e5f15 Translated using Weblate (Croatian)
Currently translated at 74.2% (1053 of 1419 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-10-31 15:00:57 +01:00
Thomas Citharel d4d572aead Merge branch 'fixes' into 'main'
Various fixes

Closes #1151

See merge request framasoft/mobilizon!1307
2022-10-31 14:00:42 +00:00
Thomas Citharel c4a7910791
Update extracted translations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 14:30:41 +01:00
Thomas Citharel e0127afd2b
Various front-end fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 14:30:41 +01:00
Thomas Citharel ecb862f634
Fix dashboard view
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 14:30:40 +01:00
Thomas Citharel 470a3e594b
Correctly escape user-defined names in emails
Closes #1151

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 14:30:40 +01:00
Thomas Citharel 695d773d50
Various UI fixes, add placeholder to the text editor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 11:43:18 +01:00
Thomas Citharel 9ce618a267
Add an error log when we try to update the relay actor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-31 11:42:51 +01:00
Thomas Citharel 1df02512af Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1306
2022-10-31 07:51:41 +00:00
Berto Te b65feade57 Translated using Weblate (Spanish)
Currently translated at 100.0% (1419 of 1419 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-10-30 00:57:22 +02:00
Thomas Citharel 720c11c43f Merge branch 'fixes' into 'main'
Little features

Closes #1082, #1102, #1154 et #540

See merge request framasoft/mobilizon!1305
2022-10-28 19:00:49 +00:00
Thomas Citharel 2bf8148951
Fix fetching events with addresses that's not objects
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 19:13:13 +02:00
Thomas Citharel 4eb15b5ebf
Fix E2E tests for login
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 19:10:38 +02:00
Thomas Citharel bc6c0e0448
HTML syntax fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 17:41:50 +02:00
Thomas Citharel 8452b2e096
Remove unused attribute
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 17:41:50 +02:00
Thomas Citharel 579bcaba06
Allow to disable non-SSO login
With a new disable_database_login parameter under :mobilizon, :instance

Closes #1154

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 17:41:49 +02:00
Thomas Citharel fc5b6882ae
Show registration button if registration allow list is used and improve
registration page

Closes #1102

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 17:41:49 +02:00
Thomas Citharel e420713a6f
Add setting to toggle light/dark mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 17:41:49 +02:00
Thomas Citharel 610570c795
Prefix setInterval with window
Use the patch from https://github.com/NixOS/nixpkgs/pull/119132

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 10:40:20 +02:00
Thomas Citharel 09fce90c6a
Order categories by translated label
Closes #1082

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 10:39:42 +02:00
Thomas Citharel dfd8094017 Merge branch 'fixes' into 'main'
Add logging for when cached iCalendar feed data can't be found

Closes #1164

See merge request framasoft/mobilizon!1304
2022-10-28 08:28:34 +00:00
Thomas Citharel 8efb17d78e
Prevent loading group membership status before we get person information
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 09:58:36 +02:00
Thomas Citharel 231f99cd1e
Show a proper error message when failure to register to an event
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 09:58:36 +02:00
Thomas Citharel 0bc48560e8
Fix group order
Closes #1164

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 09:58:36 +02:00
Thomas Citharel 8761556bac
Add logging for when cached iCalendar feed data can't be found
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-28 09:58:36 +02:00
Thomas Citharel d186c116ac Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1302
2022-10-27 15:00:13 +00:00
Axel bb80b54460 Translated using Weblate (French)
Currently translated at 99.5% (209 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/fr/
2022-10-27 16:38:10 +02:00
Berto Te dc2e25deb2 Translated using Weblate (Spanish)
Currently translated at 100.0% (1410 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-10-27 16:38:10 +02:00
Weblate ad46e4dd1d Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/
2022-10-27 16:38:10 +02:00
Thomas Citharel 827a90d7fc Merge branch 'fixes' into 'main'
Various fixes

Closes #1170

See merge request framasoft/mobilizon!1303
2022-10-27 14:38:04 +00:00
Thomas Citharel 082435129e
Fix tests after CLDR upgrade
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-27 16:08:15 +02:00
Thomas Citharel 2454fe2aa4
Fix leaving a group
There's still an issue because the call is made twice, but at least it
works

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-26 18:45:47 +02:00
Thomas Citharel 688bdccc24
Fix accepting group invitations
Closes #1170

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-26 18:26:24 +02:00
Thomas Citharel e446df938f
Fix display of invitations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-26 18:19:05 +02:00
Thomas Citharel 3336af225f
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-26 10:43:44 +02:00
Thomas Citharel 3b7f0f8acf Merge branch 'search-fixes' into 'main'
Fix event card background color behind picture

Closes #1174, #1172 et #1171

See merge request framasoft/mobilizon!1301
2022-10-25 17:44:40 +00:00
Thomas Citharel 389fa843e3
Improve reports
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-25 19:15:02 +02:00
Thomas Citharel cce0406db5
Improve comments
Closes #1171

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-25 19:15:02 +02:00
Thomas Citharel e32611c968
Fix showing past events on group page
Closes #1172

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-25 19:04:38 +02:00
Thomas Citharel 5225431d60
Add distinct clause to search events
Closes #1174

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-25 19:04:37 +02:00
Thomas Citharel a1b439b724
Fix position of the « no events found » message
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-25 10:35:59 +02:00
Thomas Citharel a743f6a487
Fix event card background color behind picture
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-25 10:35:33 +02:00
Thomas Citharel 2e74195b0e Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1299
2022-10-24 12:50:27 +00:00
Milo Ivir 5ab2507d4a Translated using Weblate (Croatian)
Currently translated at 74.5% (1051 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-10-24 14:50:09 +02:00
Milo Ivir cec5aa8368 Translated using Weblate (Croatian)
Currently translated at 57.1% (120 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/hr/
2022-10-24 14:50:09 +02:00
Milo Ivir cfe8aa067e Translated using Weblate (Croatian)
Currently translated at 66.1% (234 of 354 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-10-24 14:50:09 +02:00
Milo Ivir 7a39af13f8 Translated using Weblate (Croatian)
Currently translated at 74.5% (1051 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-10-24 14:50:09 +02:00
Milo Ivir 1f1b8096eb Translated using Weblate (Croatian)
Currently translated at 65.5% (232 of 354 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-10-24 14:50:09 +02:00
Milo Ivir e23cef2763 Translated using Weblate (Croatian)
Currently translated at 100.0% (77 of 77 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/hr/
2022-10-24 14:50:09 +02:00
Thomas Citharel e2e0c42a02 Merge branch 'no-phx-manifest-inline' into 'main'
Don't inline phoenix manifest

Closes #1176

See merge request framasoft/mobilizon!1300
2022-10-24 12:50:04 +00:00
Thomas Citharel 8b53d40928
Don't inline phoenix manifest
Closes #1176

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-24 11:57:36 +02:00
Thomas Citharel c93047824c Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1298
2022-10-20 08:55:44 +00:00
Berto Te ea6477ee19 Translated using Weblate (Spanish)
Currently translated at 100.0% (77 of 77 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/es/
2022-10-20 08:47:22 +02:00
Berto Te e2dfa29dde Translated using Weblate (Spanish)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/es/
2022-10-20 08:47:22 +02:00
Berto Te cfb6871418 Translated using Weblate (Spanish)
Currently translated at 100.0% (354 of 354 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/es/
2022-10-20 08:47:21 +02:00
Thomas Citharel f0c1444be3 Merge branch 'lowercase-users-emails-when-resetting' into 'main'
Always lowercase the emails before trying to reset password

See merge request framasoft/mobilizon!1295
2022-10-18 17:07:36 +00:00
Thomas Citharel c9fffca046
Always lowercase the emails before trying to reset password
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-18 18:37:39 +02:00
Thomas Citharel a6fa5f9402 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1297
2022-10-18 15:45:48 +00:00
Thomas Citharel 6a306e88a5 Translated using Weblate (French)
Currently translated at 100.0% (77 of 77 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/fr/
2022-10-18 17:45:27 +02:00
Thomas Citharel 25e5b2eb2d
Merge remote-tracking branch 'weblate/main' 2022-10-18 17:44:19 +02:00
Thomas Citharel 94c4a78bb4 Translated using Weblate (French (France) (fr_FR))
Currently translated at 99.8% (1408 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-10-18 17:36:49 +02:00
Thomas Citharel 0f14bc5d90 Merge branch 'rephrasing' into 'main'
Remove obscure reference to Douglas Adams

See merge request framasoft/mobilizon!1296
2022-10-18 15:36:43 +00:00
Thomas Citharel c89b424dbf
Remove fr_FR language (the fr language already exists)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-18 16:27:47 +02:00
Thomas Citharel 8d10363c0e
Update backend translations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-18 16:26:41 +02:00
Thomas Citharel ad0fc61994
Remove obscure reference to Douglas Adams
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-18 16:26:17 +02:00
Thomas Citharel e1e9cf4512 Translated using Weblate (French (France) (fr_FR))
Currently translated at 99.8% (1408 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-10-18 14:04:03 +02:00
Thomas Citharel 3822febb62 Translated using Weblate (French)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/fr/
2022-10-18 14:04:02 +02:00
Thomas Citharel c8493585c6 Translated using Weblate (French)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/fr/
2022-10-18 13:57:43 +02:00
Thomas Citharel cb083ab2f8
Bump version to 3.0.0-rc.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-18 10:21:38 +02:00
Thomas Citharel e47904d17d
Bump version to 3.0.0-beta.3
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-17 09:55:19 +02:00
Thomas Citharel 727a0175c6 Merge branch 'digest-before-release' into 'main'
Run phx.digest before mix release

See merge request framasoft/mobilizon!1293
2022-10-17 07:18:18 +00:00
Thomas Citharel a2289c4d03
Run phx.digest before mix release
Closes #1167

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-17 08:37:22 +02:00
Thomas Citharel 0ccac625d4 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1292
2022-10-14 07:25:41 +00:00
Kate 03e1a0ada8 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-10-13 20:58:31 +02:00
Kate 23ace34149 Translated using Weblate (German)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-10-13 20:58:31 +02:00
Kate 0d019d40ec Translated using Weblate (German)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-10-13 20:58:31 +02:00
Kate 8ae0a929c7 Translated using Weblate (German)
Currently translated at 94.5% (1333 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-10-13 20:58:31 +02:00
Thomas Citharel d8103fb1a5 Merge branch 'fix-migrations-without-starting-mbz' into 'main'
Fix: Don't start mobilizon server when running migrations

Closes #743, #1166 et #1126

See merge request framasoft/mobilizon!1291
2022-10-13 10:40:39 +00:00
Thomas Citharel 5bce26980a
Fix: Don't start mobilizon server when running migrations
Closes #1126 #1166 #743

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-13 11:59:36 +02:00
Thomas Citharel 199add5743 Merge branch 'search-fixes' into 'main'
Don't add empty search parameters to global search engine

See merge request framasoft/mobilizon!1289
2022-10-12 18:03:44 +00:00
Thomas Citharel 699465199e
Lint fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 19:30:34 +02:00
Thomas Citharel fb0238d1b7
Fix: Run build multiarch release on tags too
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 19:19:21 +02:00
Thomas Citharel e4ba0f21ee
Only show one pagination bar when searching in both events & groups
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 19:19:20 +02:00
Thomas Citharel fca3720bdb
Remove unused deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 19:19:20 +02:00
Thomas Citharel c051e26380
Fix getting categories from global search engine
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 19:19:20 +02:00
Thomas Citharel 76ff11ceae
Don't add empty search parameters to global search engine
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 19:19:20 +02:00
Thomas Citharel ac7b994b6f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1288
2022-10-12 15:35:45 +00:00
Jordi Brunet ae5dab8433 Translated using Weblate (Catalan)
Currently translated at 3.9% (3 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/ca/
2022-10-12 17:12:46 +02:00
Thomas Citharel b46ff4d458
Fix rules conditions for CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 17:08:34 +02:00
Thomas Citharel 156490af62
Fix pushing to latest docker tag only if needed
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 16:57:12 +02:00
Thomas Citharel 07a1118fab
Allow arm64 release packaging to fail
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 14:51:33 +02:00
Thomas Citharel f91e728b91
Only push Docker tag to latest when tag doesn't contain alpha, beta or rc
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 14:51:18 +02:00
Thomas Citharel 91e7bd8b68
Revert rebasing Docker image build on debian
This reverts commits ad4a9d4dff, 34715d5f45, 06caab9d56, 36932f601d and 8c36173027

The segfault issues still happen on arm64 in any case

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 14:31:07 +02:00
Thomas Citharel ad4a9d4dff
Allow failure on Docker builds
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 12:10:32 +02:00
Thomas Citharel 8c36173027
Use nobody:nogroup under Debian
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 12:08:56 +02:00
Thomas Citharel 36932f601d
Use individual parallel jobs to build multiarch docker images
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 11:25:09 +02:00
Thomas Citharel 3400ee0ce0 Merge branch 'docker-debian-image' into 'main'
Rebase production Docker image on debian

See merge request framasoft/mobilizon!1287
2022-10-12 08:33:35 +00:00
Thomas Citharel 19a17494ae
Allow docker build on main branch to be triggered
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 10:27:06 +02:00
Thomas Citharel 06caab9d56
Rebase production Docker image on debian
The Alpine one can't be built against arm/arm64 anymore

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-12 10:22:53 +02:00
Thomas Citharel 34715d5f45
Remove qemu before installing it
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 21:24:48 +02:00
Thomas Citharel be2fa3a547
Bump version to 3.0.0-beta.2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 19:16:16 +02:00
Thomas Citharel 68378c1860 Merge branch 'fixes' into 'main'
Fixes

See merge request framasoft/mobilizon!1286
2022-10-11 17:15:21 +00:00
Thomas Citharel c23c2bdba6
Lint fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 18:45:33 +02:00
Thomas Citharel 74581912f3
Only preload svg shapes on homepage
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 18:45:33 +02:00
Thomas Citharel 528744d765
Improve EventView.vue
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 17:48:58 +02:00
Thomas Citharel 9fe816ebcf
Improve CategoriesView
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 17:48:37 +02:00
Thomas Citharel 557e12948b
Add name to GraphQL queries
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 17:48:09 +02:00
Thomas Citharel e22cb8c3bd
Improve TextEditor
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 17:47:53 +02:00
Thomas Citharel ff1fbdfdba
Handle categories page empty and fix attribution section
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 14:59:13 +02:00
Thomas Citharel b514d417c0
Add typespec for category_statistics
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 14:58:55 +02:00
Thomas Citharel 8eddb8b230 Merge branch 'fixes' into 'main'
Fixes

See merge request framasoft/mobilizon!1285
2022-10-11 12:35:05 +00:00
Thomas Citharel e94a537f30
Lint fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 14:04:03 +02:00
Thomas Citharel 3928c2fb2a
Update build ci
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 13:57:04 +02:00
Thomas Citharel 475820472f
Add the banner picker on event edit page
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 11:14:57 +02:00
Thomas Citharel 800e136aae
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 10:39:31 +02:00
Thomas Citharel 9b3674922e
UI and accessibility fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-11 10:20:41 +02:00
Thomas Citharel 3e8d5884a2 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1284
2022-10-10 15:35:34 +00:00
Jiri Podhorecky d23b3ad5f6 Translated using Weblate (Czech)
Currently translated at 99.8% (1408 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-10-10 17:13:45 +02:00
Thomas Citharel 15766c4e16
Handle unknown icon
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-10 16:45:45 +02:00
Thomas Citharel 6f9a941b18 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1283
2022-10-08 14:32:04 +00:00
Ricardo Coelho 11a4275667 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/pt_BR/
2022-10-08 12:34:43 +02:00
Ricardo Coelho e01d7814a0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 6.1% (13 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/pt_BR/
2022-10-08 12:34:43 +02:00
Thomas Citharel b769341944 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1282
2022-10-07 13:12:29 +00:00
Ricardo Coelho 6f6a379a06 Translated using Weblate (Portuguese (Brazil))
Currently translated at 47.3% (36 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/pt_BR/
2022-10-07 14:48:48 +02:00
Thomas Citharel 0d6626d55a Merge branch 'search-fixes' into 'main'
Fix global search term

See merge request framasoft/mobilizon!1281
2022-10-06 08:39:37 +00:00
Thomas Citharel 200e4d2c56 Merge branch 'handle-categories-from-global-search' into 'main'
Handle unknown categories from global search

See merge request framasoft/mobilizon!1280
2022-10-06 08:10:05 +00:00
Thomas Citharel 7ccf42e313
Fix custom icons in metadata list
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-06 09:54:05 +02:00
Thomas Citharel 2acc1c3492 Merge branch 'dynamic-reconfigure-plug' into 'main'
Reconfigure plug at runtime with env

Closes #1165

See merge request framasoft/mobilizon!1279
2022-10-06 07:53:56 +00:00
Thomas Citharel 1a31d9b54e
Fix global search term
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-06 09:53:54 +02:00
Thomas Citharel 0758995ac7
Handle unknown categories from global search
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-06 09:32:47 +02:00
Thomas Citharel c080795955
Reconfigure plug at runtime with env
Closes #1165

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-06 08:59:50 +02:00
Thomas Citharel 0265e0220e Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1278
2022-10-06 06:34:24 +00:00
Milo Ivir 04edb51a04 Translated using Weblate (Croatian)
Currently translated at 65.9% (234 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-10-06 08:03:41 +02:00
Thomas Citharel d665abcc5d Merge branch 'improve-home' into 'main'
Fix address selector

See merge request framasoft/mobilizon!1277
2022-10-05 16:47:06 +00:00
Thomas Citharel 620008ee0d
Fix group location edition
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-05 18:17:11 +02:00
Thomas Citharel fee4f9add8
Fix address selector
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-05 17:54:04 +02:00
Thomas Citharel 1a9aef00e5 Merge branch 'performance' into 'main'
Performance improvements

See merge request framasoft/mobilizon!1276
2022-10-05 12:13:09 +00:00
Thomas Citharel 456e987af8
Performance improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-05 13:18:38 +02:00
Thomas Citharel ec9342744f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1275
2022-10-04 20:41:42 +00:00
Milo Ivir 893405b219 Translated using Weblate (Croatian)
Currently translated at 74.5% (1051 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-10-04 21:30:47 +02:00
Quentin PAGÈS 10798f60c3 Translated using Weblate (Occitan)
Currently translated at 64.5% (910 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/oc/
2022-10-04 21:30:46 +02:00
Thomas Citharel a6a49c27bf Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1274
2022-10-04 12:37:53 +00:00
Berto Te d483b1824e Translated using Weblate (Spanish)
Currently translated at 100.0% (1410 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-10-04 14:15:52 +02:00
Thomas Citharel 0cbe0b8fad Merge branch 'better-suggested-events' into 'main'
better suggested events

See merge request framasoft/mobilizon!1273
2022-10-04 09:25:16 +00:00
Thomas Citharel b8942e7b4c Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1272
2022-10-03 20:31:53 +00:00
Milo Ivir 2fdff72062 Translated using Weblate (Croatian)
Currently translated at 74.5% (1051 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-10-03 22:02:44 +02:00
Thomas Citharel 5055bd4adc
Consider the events from the same organizer actor or group in first
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 19:45:29 +02:00
Thomas Citharel 1601153062
Add all proper filters for related events
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 19:33:54 +02:00
Thomas Citharel f0c8fa2525
Handle events with no physical location
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 19:26:35 +02:00
Thomas Citharel 4f1465e84d
Add distinct on suggested events
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 14:37:14 +02:00
Thomas Citharel ca9826e299
Improve related events
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 14:02:25 +02:00
Thomas Citharel 4a16f572d8
Fix build after !1261
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 14:01:57 +02:00
Thomas Citharel 3e8029cf38 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1271
2022-10-03 11:41:34 +00:00
Berto Te ede03b9f54 Translated using Weblate (Spanish)
Currently translated at 99.2% (1400 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-10-03 13:19:49 +02:00
Thomas Citharel fdc4c94465 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1270
2022-10-01 06:07:32 +00:00
joenepraat ea67a0b3ba Translated using Weblate (Dutch)
Currently translated at 1.3% (1 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/nl/
2022-10-01 05:39:26 +02:00
joenepraat 0663708447 Translated using Weblate (Dutch)
Currently translated at 86.6% (1222 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-10-01 05:39:26 +02:00
Berto Te 89e158e9f1 Translated using Weblate (Spanish)
Currently translated at 97.0% (1368 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-10-01 05:39:25 +02:00
Thomas Citharel f6b0a4a55f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1269
2022-09-30 07:32:49 +00:00
joenepraat 86ec65acbe Translated using Weblate (Dutch)
Currently translated at 82.9% (1170 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-09-30 08:28:59 +02:00
Berto Te 20dd02e633 Translated using Weblate (Spanish)
Currently translated at 96.5% (1361 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-09-30 08:28:58 +02:00
Thomas Citharel 50c2d62af9 Merge branch 'release-3.0.0-beta.1' into 'main'
Release 3.0.0-beta.1

See merge request framasoft/mobilizon!1268
2022-09-29 10:32:16 +00:00
Thomas Citharel 63305d39f9
Release 3.0.0-beta.1
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-29 12:02:52 +02:00
Thomas Citharel 661f7a15cf Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1267
2022-09-29 05:52:50 +00:00
joenepraat e8bdd988ed Translated using Weblate (Dutch)
Currently translated at 71.3% (1006 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-09-29 01:50:09 +02:00
joenepraat 8ba8961ad7 Translated using Weblate (Dutch)
Currently translated at 33.2% (118 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/nl/
2022-09-28 22:46:58 +02:00
Deleted User 77d2f86e03 Translated using Weblate (Dutch)
Currently translated at 69.0% (974 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-09-28 22:46:58 +02:00
joenepraat ccb3aab7d7 Translated using Weblate (Dutch)
Currently translated at 69.0% (974 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nl/
2022-09-28 22:46:57 +02:00
Thomas Citharel 393438278f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1266
2022-09-28 09:12:41 +00:00
Berto Te 763a2cce43 Translated using Weblate (Spanish)
Currently translated at 94.3% (1331 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/es/
2022-09-28 10:51:14 +02:00
Thomas Citharel 4b0375fd61 Merge branch 'upgrade-deps' into 'main'
Upgrade deps

See merge request framasoft/mobilizon!1265
2022-09-28 07:29:54 +00:00
Thomas Citharel 1975ca7739
Make sure yarn install is run for E2E tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-28 08:59:00 +02:00
Thomas Citharel 9634b07910 Merge branch 'fix-sentry' into 'main'
Fix Sentry registration

See merge request framasoft/mobilizon!1264
2022-09-27 16:57:30 +00:00
Thomas Citharel 8915a5caad
Fix Sentry registration
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-27 18:19:01 +02:00
Thomas Citharel 895aad6ea7
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-27 18:14:50 +02:00
Thomas Citharel 92dcc0780d Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1263
2022-09-27 13:31:47 +00:00
Thomas Citharel fc6244bbcd Translated using Weblate (French (France) (fr_FR))
Currently translated at 99.8% (1408 of 1410 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-09-27 15:10:51 +02:00
Thomas Citharel 26c183e208 Translated using Weblate (French (France) (fr_FR))
Currently translated at 99.7% (1403 of 1407 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-09-27 14:55:39 +02:00
Thomas Citharel 0f05afc643 Merge branch 'smokefree' into 'main'
Add smoke-free as a metadata option for events

See merge request framasoft/mobilizon!1261
2022-09-27 12:55:35 +00:00
Thomas Citharel 600de5447d
Merge remote-tracking branch 'weblate/main' 2022-09-27 14:40:42 +02:00
Thomas Citharel cbce14c9d8 Merge branch 'fixes' into 'main'
Various fixes

See merge request framasoft/mobilizon!1262
2022-09-27 12:20:08 +00:00
Thomas Citharel 1087e19ee5
Enable E2E tests in CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-27 13:43:09 +02:00
Thomas Citharel 680f812bdf
Fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-26 10:39:31 +02:00
Thomas Citharel 6f7d5f649b
Add participant info in event search results
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-26 10:29:58 +02:00
Thomas Citharel a37bab3b84
Fix some Dializer issue
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-26 10:29:58 +02:00
Thomas Citharel 530539c631
Make sure instance list is refreshed before notifying admin from new
instance follow

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-26 10:20:51 +02:00
778a69cd 22dbfad98c add smoke-free as a metadata option for events 2022-09-21 14:24:36 +02:00
Thomas Citharel 83d518579b Merge branch 'vue3-compat' into 'main'
Vue 3 and Vite

See merge request framasoft/mobilizon!1259
2022-09-21 09:13:39 +00:00
Thomas Citharel c2c938c865
Revert "Fix path to junit.xml coverage report"
This reverts commit c35a066368.
2022-09-21 10:48:30 +02:00
Thomas Citharel 280b255529
Fix vitest junit coverage runs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 10:33:50 +02:00
Thomas Citharel c35a066368
Fix path to junit.xml coverage report
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 10:17:27 +02:00
Thomas Citharel 88b4f98c41
Make sure session cookie salt in AuthController is loaded dynamically
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 10:16:07 +02:00
Thomas Citharel 6675c62d94
Add unplug to dynamically load plugs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 10:15:47 +02:00
Thomas Citharel d2372d5700
fixup! Fix depreciated calls of fetch_env!/2 and get_env/2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 10:15:28 +02:00
Thomas Citharel 009f90e0d7
Fix typo in subtemplate
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 08:55:14 +02:00
Thomas Citharel bbbaa81a6e
Fix depreciated calls of fetch_env!/2 and get_env/2
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 08:53:50 +02:00
Thomas Citharel 655ae4f9a1
Fix js unit test for report modal
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 08:35:22 +02:00
Thomas Citharel 6a9fba7db8
Fix tests for CI
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-21 08:32:42 +02:00
Thomas Citharel 151a7e54ae
Fix lint issues, update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-20 17:06:42 +02:00
Thomas Citharel 86ca52c2cb
Precompile latin to arab ICU transliterations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-19 09:19:28 +02:00
CHALLET Olivier 35c5be3a32 Translated using Weblate (French (France) (fr_FR))
Currently translated at 60.2% (214 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/fr_FR/
2022-09-17 16:31:13 +02:00
Ville Ranki 8aa6dcc081 Translated using Weblate (Finnish)
Currently translated at 100.0% (76 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/fi/
2022-09-12 14:44:09 +02:00
Milo Ivir 4cd6c3142e Translated using Weblate (Croatian)
Currently translated at 64.7% (230 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-09-11 20:18:50 +02:00
CHALLET Olivier 130f27b18a Translated using Weblate (French (France) (fr_FR))
Currently translated at 55.4% (197 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/fr_FR/
2022-09-11 15:50:21 +02:00
CHALLET Olivier 8ccb9050f0 Translated using Weblate (French (France) (fr_FR))
Currently translated at 19.4% (69 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/fr_FR/
2022-09-11 00:03:25 +02:00
CHALLET Olivier d0d33dbc96 Added translation using Weblate (French (France) (fr_FR)) 2022-09-10 23:04:30 +02:00
Thomas Citharel d97927da13
Small a11y fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-01 10:42:05 +02:00
Thomas Citharel 93921be722
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-01 10:02:12 +02:00
Thomas Citharel eecb04516e
Add the map in search view
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-09-01 10:00:17 +02:00
Thomas Citharel b36ce27bbe
Improve some utils modules
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-29 16:52:18 +02:00
Thomas Citharel d43e7f2c34
Debug statistics modules in dev mode
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-29 16:52:00 +02:00
Thomas Citharel d12e8fe97d Translated using Weblate (Norwegian Nynorsk)
Currently translated at 98.1% (1308 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/nn/
2022-08-29 15:54:38 +02:00
Thomas Citharel eb7c6d339f
Fix version not being available for statistics modules
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:54:43 +02:00
Thomas Citharel d2b59e6444
Add typings for vite import.meta.env
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:54:24 +02:00
Thomas Citharel 07b2447a07
Add missing case for :member_approved in email member activity
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:53:52 +02:00
Thomas Citharel 0e7ff25333
Fix a preload issue with actor suspension
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:52:44 +02:00
Thomas Citharel 4db13046b7
Provide an accept CSP policy for global search pictures
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:02:06 +02:00
Thomas Citharel 8812122168
Only consider relevant events for category statistics
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:02:06 +02:00
Thomas Citharel ce38361d65
Remove duplicate key in struct
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:02:06 +02:00
Thomas Citharel 45a477ee46
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:02:06 +02:00
Thomas Citharel 48935e2168
Add global search
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-28 10:02:06 +02:00
Norwin 0041face54 Translated using Weblate (German)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-08-27 02:20:00 +02:00
Thebigal Wisi f36700c87a Translated using Weblate (German)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-08-27 02:20:00 +02:00
Valentin Bachem 551f53f849 Translated using Weblate (German)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-08-27 02:20:00 +02:00
Thebigal Wisi 7ef37c040c Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-08-27 01:35:27 +02:00
fluxx 2bf0dd482b Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-08-27 01:35:26 +02:00
Valentin Bachem ec812bf379 Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-08-27 01:35:26 +02:00
Kate d10aa4106f Translated using Weblate (German)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-08-26 20:25:05 +02:00
Norwin e787bf36ab Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-08-26 20:25:05 +02:00
Valentin Bachem f04d74295b Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-08-26 20:25:04 +02:00
Milo Ivir 073d99392f Translated using Weblate (Croatian)
Currently translated at 77.7% (1035 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-26 18:28:34 +02:00
Milo Ivir 61acdc6a5b Translated using Weblate (Croatian)
Currently translated at 59.1% (210 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-08-26 18:28:33 +02:00
Kate 32cc3eb738 Translated using Weblate (German)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-08-26 18:28:33 +02:00
Kate 73e992f1b3 Translated using Weblate (German)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-08-26 18:28:33 +02:00
Kate 7b693dd4ae Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-08-26 18:28:33 +02:00
Milo Ivir 0c2f2df228 Translated using Weblate (Croatian)
Currently translated at 77.5% (1033 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-25 15:57:38 +02:00
Milo Ivir efe9f1df66 Translated using Weblate (Croatian)
Currently translated at 51.5% (183 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-08-25 15:57:38 +02:00
Milo Ivir b0c3e8cce6 Translated using Weblate (Croatian)
Currently translated at 77.5% (1033 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-24 23:42:50 +02:00
Milo Ivir fd1501af1c Translated using Weblate (Croatian)
Currently translated at 77.4% (1032 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-24 20:52:34 +02:00
Milo Ivir cc335560c8 Translated using Weblate (Croatian)
Currently translated at 56.1% (118 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/hr/
2022-08-24 20:52:34 +02:00
Milo Ivir f9c44124d1 Translated using Weblate (Croatian)
Currently translated at 25.7% (54 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/hr/
2022-08-24 13:43:39 +02:00
Thomas Citharel bfc936f57c
[JSON-LD] Only render single location when list has only one element
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-23 10:09:10 +02:00
Thomas Citharel 2eee09bf4b
Fix searchview
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-22 13:47:10 +02:00
Thomas Citharel ffac91a027
Remove some useless console.debug calls
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-22 13:46:42 +02:00
Thomas Citharel e07f88277b
Use correct IP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-22 12:19:14 +02:00
Thomas Citharel c72f050993
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-22 12:16:47 +02:00
Thomas Citharel baac00f678
Improve search
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-22 12:12:09 +02:00
Milo Ivir b0f309d271 Translated using Weblate (Croatian)
Currently translated at 77.4% (1031 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-22 02:59:03 +02:00
Milo Ivir 7868bdb803 Translated using Weblate (Croatian)
Currently translated at 50.9% (181 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-08-22 02:59:03 +02:00
Milo Ivir df7430a19b Translated using Weblate (Croatian)
Currently translated at 76.8% (1024 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-20 21:04:19 +02:00
Milo Ivir 2503e10b7c Translated using Weblate (Croatian)
Currently translated at 1.4% (3 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/hr/
2022-08-20 21:04:18 +02:00
Milo Ivir d11cba4ad4 Translated using Weblate (Croatian)
Currently translated at 71.2% (949 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-20 04:51:25 +02:00
Thomas Citharel 444e0d6a0c
Various homeview fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-19 15:07:58 +02:00
Thomas Citharel be0b3245bf
Fix close events radius
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-19 15:07:45 +02:00
Thomas Citharel d818557469
Update deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-19 15:07:34 +02:00
Milo Ivir 4f13934d43 Translated using Weblate (Croatian)
Currently translated at 71.2% (949 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/hr/
2022-08-19 01:27:44 +02:00
Milo Ivir a8af226e1a Translated using Weblate (Croatian)
Currently translated at 47.8% (170 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-08-19 01:27:44 +02:00
Milo Ivir ff40aa5d65 Translated using Weblate (Croatian)
Currently translated at 22.8% (81 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/
2022-08-18 15:12:53 +02:00
Thomas Citharel 6e7359aebf
Homepage cards improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-16 13:59:37 +02:00
Thomas Citharel 754e44f0a5
Various improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-12 16:46:44 +02:00
Thomas Citharel 4f9e0911e7
OrganizerPicker improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-12 16:46:04 +02:00
Thomas Citharel d8cf49e315
Replace $tc( with t(
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-12 16:45:11 +02:00
Thomas Citharel e893f3f089
Use <template #slotName> form instead of v-slot
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-12 16:42:40 +02:00
Thomas Citharel 9d00aff619
Convert all jpg pictures to webp
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-12 16:40:04 +02:00
Thomas Citharel 57c3df43ff
Remove SCSS variables
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-11 19:48:29 +02:00
Thomas Citharel ee20e03cc2
Migrate to Vue 3 and Vite
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-08-11 16:46:31 +02:00
Hermann San 56b3df37ab Translated using Weblate (German)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-07-09 13:17:02 +02:00
Hermann San 1694ca2dc3 Translated using Weblate (German)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-07-09 07:15:37 +02:00
Hermann San 0f38dca6c6 Translated using Weblate (German)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-07-08 22:40:54 +02:00
Thebigal Wisi 5bb796270a Translated using Weblate (German)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-07-08 22:40:54 +02:00
Thebigal Wisi 032311e1c0 Translated using Weblate (German)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-07-08 22:40:35 +02:00
Hermann San de6958ebc8 Translated using Weblate (German)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-07-08 22:40:35 +02:00
josé m 3d17f31cef Translated using Weblate (Galician)
Currently translated at 71.2% (253 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/gl/
2022-06-29 20:23:11 +02:00
josé m 8879a8306b Translated using Weblate (Galician)
Currently translated at 84.6% (1127 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gl/
2022-06-29 20:23:11 +02:00
Hermann San ffc052aa83 Translated using Weblate (German)
Currently translated at 98.5% (207 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/de/
2022-06-23 16:03:13 +02:00
Hermann San cddea8911a Translated using Weblate (German)
Currently translated at 99.1% (352 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-06-23 16:03:13 +02:00
Thebigal Wisi 412a3ae822 Translated using Weblate (German)
Currently translated at 99.1% (352 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-06-23 16:03:13 +02:00
Hermann San b4b97aeb30 Translated using Weblate (German)
Currently translated at 98.8% (351 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-06-23 13:08:55 +02:00
Thomas Citharel 8f4099ee33
Small fixes to Home.vue
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-17 11:44:51 +02:00
Jiri Podhorecky 38a9635a7e Translated using Weblate (Czech)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-06-17 11:37:02 +02:00
J. Lavoie e24446aef1 Translated using Weblate (French (France) (fr_FR))
Currently translated at 1.3% (1 of 76 strings)

Translation: Mobilizon/Activity
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/activity/fr_FR/
2022-06-17 11:37:02 +02:00
J. Lavoie 91b801d177 Translated using Weblate (French (France) (fr_FR))
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/fr_FR/
2022-06-17 11:37:02 +02:00
J. Lavoie f70dc4e61d Added translation using Weblate (French (France) (fr_FR)) 2022-06-17 11:37:02 +02:00
Thomas Citharel 68973b91d9 Merge branch 'deps' into 'main'
Upgrade deps

See merge request framasoft/mobilizon!1257
2022-06-17 09:36:57 +00:00
Thomas Citharel 86925833ef
Install latest version of babel-jest
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-17 11:08:14 +02:00
Thomas Citharel 6aba0af3ec
Run mix format after deps update
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-17 10:48:12 +02:00
Thomas Citharel ed196d9b84
Fix new eslint reported issues
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-17 10:46:55 +02:00
Thomas Citharel 5eadbbaae9
Upgrade deps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-17 10:46:40 +02:00
Thomas Citharel 8ae859e0c3 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1254
2022-06-11 06:07:46 +00:00
DignifiedSilence a46ce1352d Translated using Weblate (Japanese)
Currently translated at 28.7% (102 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/ja/
2022-06-10 23:14:16 +02:00
DignifiedSilence 1457fd4b97 Translated using Weblate (Japanese)
Currently translated at 47.4% (632 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/
2022-06-10 23:14:15 +02:00
Thomas Citharel c2f7fbc78f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1253
2022-06-07 21:16:07 +00:00
Jiri Podhorecky 5e6dc16335 Translated using Weblate (Czech)
Currently translated at 100.0% (210 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/cs/
2022-06-07 20:17:54 +02:00
Jiri Podhorecky aa107f4a89 Translated using Weblate (Czech)
Currently translated at 100.0% (355 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-06-07 20:17:54 +02:00
Thomas Citharel 0a9ff32443 Merge branch 'main' into 'main'
add owncast to event meta data

See merge request framasoft/mobilizon!1252
2022-06-07 14:09:25 +00:00
allilengyi f8efcc1d63 added owncast monochrome logo 2022-06-07 15:38:23 +02:00
Thomas Citharel 337adf83b2 Merge branch 'issue-1120' into 'main'
Fixing #1120 - search by eventCategory

Closes #1120

See merge request framasoft/mobilizon!1251
2022-06-06 13:17:50 +00:00
Thomas Citharel fa7a10bd13 Merge branch 'issue-1119' into 'main'
Fix "Uncaught TypeError: localStorage is null" when localStorage is not available

Closes #1119

See merge request framasoft/mobilizon!1250
2022-06-06 12:37:27 +00:00
Thomas Citharel 212931b8a0 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1249
2022-06-06 12:14:29 +00:00
allilengyi 86fbcaff40 fixed title of owncast meta data 2022-06-02 23:14:02 +02:00
allilengyi 324cf3e5e2 add owncast to event meta data 2022-06-02 22:14:34 +02:00
paficaf430 4917185b82 Translated using Weblate (Swedish)
Currently translated at 26.1% (55 of 210 strings)

Translation: Mobilizon/Backend errors
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend-errors/sv/
2022-06-01 09:35:35 +02:00
paficaf430 d7e2e82ea6 Translated using Weblate (Swedish)
Currently translated at 31.5% (112 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/sv/
2022-06-01 09:35:34 +02:00
paficaf430 958e7d5264 Translated using Weblate (Swedish)
Currently translated at 46.4% (619 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/sv/
2022-06-01 09:35:33 +02:00
Jiri Podhorecky c01a4fdc6f Translated using Weblate (Czech)
Currently translated at 99.7% (354 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-06-01 09:35:32 +02:00
Jiri Podhorecky 018f3f35d6 Translated using Weblate (Czech)
Currently translated at 99.7% (354 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/cs/
2022-05-31 23:18:48 +02:00
Lucas Cimon 18d4b73d91
Fixing #1120 - search by eventCategory 2022-05-30 12:30:38 +02:00
Lucas Cimon 494e791a99
Fix "Uncaught TypeError: localStorage is null" when localStorage is not available 2022-05-30 12:20:24 +02:00
Norwin 06bc5fc4c3 Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-05-27 22:28:10 +02:00
Thebigal Wisi 2a052fddd6 Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-05-27 22:28:10 +02:00
Thomas Frenzel 9f34d1c538 Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-05-27 22:28:10 +02:00
Thomas Citharel 4e7284b486 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1247
2022-05-23 13:32:31 +00:00
Jiri Podhorecky 4728a7358c Translated using Weblate (Czech)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/cs/
2022-05-23 15:23:35 +02:00
Thomas Citharel 44789189d7 Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1246
2022-05-19 16:40:59 +00:00
Kerstin 59147af19b Translated using Weblate (German)
Currently translated at 96.3% (342 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/de/
2022-05-19 14:37:13 +02:00
Kerstin 7a1b886f09 Translated using Weblate (German)
Currently translated at 100.0% (1332 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-05-19 14:37:13 +02:00
Thomas Citharel c6cc85e51e Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1245
2022-05-19 06:43:29 +00:00
josé m 5299e10afe Translated using Weblate (Galician)
Currently translated at 79.4% (1058 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/gl/
2022-05-18 23:53:39 +02:00
Thomas Citharel 829628b25f Merge branch 'weblate-mobilizon-frontend' into 'main'
Translations update from Weblate

See merge request framasoft/mobilizon!1244
2022-05-18 06:49:06 +00:00
DignifiedSilence 9e1c8b475e Translated using Weblate (Japanese)
Currently translated at 5.6% (20 of 355 strings)

Translation: Mobilizon/Backend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/ja/
2022-05-18 02:59:41 +02:00
Thomas Frenzel cf182c2aed Translated using Weblate (German)
Currently translated at 98.2% (1309 of 1332 strings)

Translation: Mobilizon/Frontend
Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/de/
2022-05-18 02:59:41 +02:00
Thomas Citharel 00424d64c9
Fix tags not being escaped in CHANGELOG.md
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-16 13:23:09 +02:00
748 changed files with 64506 additions and 61249 deletions

View File

@ -127,14 +127,14 @@ exunit:
- test-junit-report.xml
expire_in: 30 days
jest:
vitest:
stage: test
needs:
- lint-front
before_script:
- yarn --cwd "js" install --frozen-lockfile
script:
- yarn --cwd "js" run test:unit --no-color --ci --reporters=default --reporters=jest-junit
- yarn --cwd "js" run coverage --reporter=default --reporter=junit --outputFile.junit=./junit.xml
artifacts:
when: always
paths:
@ -144,26 +144,33 @@ jest:
- js/junit.xml
expire_in: 30 days
# cypress:
# stage: test
# services:
# - name: postgis/postgis:13.3
# alias: postgres
# variables:
# MIX_ENV=e2e
# script:
# - mix ecto.create
# - mix ecto.migrate
# - mix run priv/repo/e2e.seed.exs
# - mix phx.server &
# - cd js
# - npx wait-on http://localhost:4000
# - if [ -z "$CYPRESS_KEY" ]; then npx cypress run; else npx cypress run --record --parallel --key $CYPRESS_KEY; fi
# artifacts:
# expire_in: 2 day
# paths:
# - js/tests/e2e/screenshots/**/*.png
# - js/tests/e2e/videos/**/*.mp4
e2e:
stage: test
services:
- name: postgis/postgis:14-3.2
alias: postgres
variables:
MIX_ENV: "e2e"
before_script:
- mix deps.get
- mix ecto.create
- mix ecto.migrate
- mix run priv/repo/e2e.seed.exs
- cd js && yarn install && yarn run build && npx playwright install && cd ../
- mix phx.digest
script:
- mix phx.server &
- cd js
- npx wait-on http://localhost:4000
- npx playwright test --project $BROWSER
parallel:
matrix:
- BROWSER: ['firefox', 'chromium']
artifacts:
expire_in: 2 days
paths:
- js/playwright-report/
- js/test-results/
pages:
stage: deploy
@ -183,7 +190,7 @@ pages:
.docker: &docker
stage: docker
image: docker:20.10.12
image: docker:20.10.18
variables:
DOCKER_TLS_CERTDIR: "/certs"
DOCKER_HOST: tcp://docker:2376
@ -191,13 +198,13 @@ pages:
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
DOCKER_DRIVER: overlay2
services:
- docker:20.10.12-dind
- docker:20.10.18-dind
cache: {}
before_script:
# Install buildx
- wget https://github.com/docker/buildx/releases/download/v0.8.1/buildx-v0.8.1.linux-amd64
- wget https://github.com/docker/buildx/releases/download/v0.9.1/buildx-v0.9.1.linux-amd64
- mkdir -p ~/.docker/cli-plugins/
- mv buildx-v0.8.1.linux-amd64 ~/.docker/cli-plugins/docker-buildx
- mv buildx-v0.9.1.linux-amd64 ~/.docker/cli-plugins/docker-buildx
- chmod a+x ~/.docker/cli-plugins/docker-buildx
# Create env
- docker context create tls-environment
@ -216,29 +223,47 @@ build-docker-main:
rules:
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- if: '$CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_TRIGGERED == "true"'
script:
- docker buildx build --push --platform linux/amd64 -t framasoft/mobilizon:main -f docker/production/Dockerfile .
build-docker-tag:
# Don't push to latest when building beta/rc tags
build-and-push-to-latest-docker-tag:
<<: *docker
rules: &tag-rules
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /alpha|beta|rc/
when: on_success
timeout: 3 hours
script:
- >
docker buildx build
--push
--platform linux/amd64,linux/arm64,linux/arm
--platform linux/amd64,linux/arm
-t framasoft/mobilizon:$CI_COMMIT_TAG
-t framasoft/mobilizon:latest
-f docker/production/Dockerfile .
build-and-push-docker-tag:
<<: *docker
rules: &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
package-app:
image: mobilizon/buildpack:1.13.4-erlang-24.3.3-debian-buster
image: mobilizon/buildpack:1.14.1-erlang-25.1.1-debian-buster
stage: package
variables: &release-variables
MIX_ENV: "prod"
@ -250,7 +275,7 @@ package-app:
- mix local.rebar --force
- mix deps.get --only-prod
- mix compile
- mix phx.digest.clean --all && \
- mix phx.digest.clean --all && mix phx.digest
- mix release --path release/mobilizon
- cd release/mobilizon && ln -s lib/mobilizon-*/priv priv && cd ../../
- du -sh release/
@ -317,11 +342,13 @@ multi-arch-release:
matrix:
- ARCH: ["arm", "arm64"]
rules:
- if: '$CI_PROJECT_NAMESPACE != "framasoft"'
when: never
- if: '$CI_PIPELINE_SOURCE == "schedule"'
- if: $CI_COMMIT_TAG
# arm64 is allowed to fail
- if: '$CI_PROJECT_NAMESPACE == "framasoft" && ($CI_PIPELINE_SOURCE == "schedule" || $CI_COMMIT_TAG != null) && $ARCH == "arm64"'
allow_failure: true
- if: '$CI_PROJECT_NAMESPACE == "framasoft" && ($CI_PIPELINE_SOURCE == "schedule" || $CI_COMMIT_TAG != null) && $ARCH'
allow_failure: false
timeout: 3h
allow_failure: true
# Release
release-upload:
@ -342,6 +369,7 @@ release-upload:
parallel:
matrix:
- ARCH: ["amd64", "arm", "arm64"]
allow_failure: true
release-create:
stage: deploy

View File

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

View File

@ -5,6 +5,154 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 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
### Added
@ -19,7 +167,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Changed mailer library from Bamboo to Swoosh, should fix emails being considered spam. **Some configuration changes are required, see below.**
- 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).**
- 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
@ -41,7 +189,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- 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
- Remove obsolete attribute `type="text/css"` from `<style>` tags
- Improve actor cards integration
- Use upstream dependencies for Ueberauth providers
- Include ongoing events in search
@ -81,7 +229,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- 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 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

View File

@ -19,6 +19,7 @@ config :mobilizon, :instance,
registrations_open: false,
registration_email_allowlist: [],
registration_email_denylist: [],
disable_database_login: false,
languages: [],
default_language: "en",
demo: false,
@ -54,7 +55,7 @@ config :mobilizon, Mobilizon.Web.Endpoint,
secret_key_base: "1yOazsoE0Wqu4kXk3uC5gu3jDbShOimTCzyFL3OjCdBmOXMyHX87Qmf3+Tu9s0iM",
render_errors: [view: Mobilizon.Web.ErrorView, accepts: ~w(html json)],
pubsub_server: Mobilizon.PubSub,
cache_static_manifest: "priv/static/manifest.json",
cache_static_manifest: "priv/static/cache_manifest.json",
has_reverse_proxy: true
config :mime, :types, %{
@ -123,16 +124,22 @@ config :mobilizon, Mobilizon.Web.Email.Mailer,
# can be `true`
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
config :logger, :console,
backends: [:console],
format: "$time $metadata[$level] $message\n",
metadata: [:request_id]
config :logger, Sentry.LoggerBackend,
level: :warn,
capture_log_messages: true
config :mobilizon, Mobilizon.Web.Auth.Guardian,
issuer: "mobilizon",
token_ttl: %{
@ -347,6 +354,23 @@ config :mobilizon, :exports,
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
# of this file so it overrides the configuration defined above.
import_config "#{config_env()}.exs"

View File

@ -15,13 +15,7 @@ config :mobilizon, Mobilizon.Web.Endpoint,
check_origin: false,
watchers: [
node: [
"node_modules/webpack/bin/webpack.js",
"--mode",
"development",
"--watch",
"--watch-options-stdin",
"--config",
"node_modules/@vue/cli-service/webpack.config.js",
"node_modules/.bin/vite",
cd: Path.expand("../js", __DIR__)
]
]
@ -102,3 +96,5 @@ config :mobilizon, :anonymous,
reports: [
allowed: true
]
config :unplug, :init_mode, :runtime

View File

@ -19,19 +19,39 @@ config :mobilizon, Mobilizon.Web.Endpoint,
yarn: [cd: Path.expand("../js", __DIR__)]
]
require Logger
config :vite_phx,
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"
cond do
System.get_env("INSTANCE_CONFIG") &&
File.exists?("./config/#{System.get_env("INSTANCE_CONFIG")}") ->
import_config System.get_env("INSTANCE_CONFIG")
config :mobilizon, :instance,
name: "E2E Testing instance",
description: "E2E is safety",
hostname: "mobilizon1.com",
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"
}
]
System.get_env("DOCKER", "false") == "false" && File.exists?("./config/e2e.secret.exs") ->
import_config "e2e.secret.exs"
System.get_env("DOCKER", "false") == "true" ->
Logger.info("Using environment configuration for Docker")
true ->
Logger.error("No configuration file found")
end
config :mobilizon, Mobilizon.Storage.Repo,
adapter: Ecto.Adapters.Postgres,
username: System.get_env("MOBILIZON_DATABASE_USERNAME", "mobilizon_e2e"),
password: System.get_env("MOBILIZON_DATABASE_PASSWORD", "mobilizon_e2e"),
database: System.get_env("MOBILIZON_DATABASE_DBNAME", "mobilizon_e2e"),
hostname: System.get_env("MOBILIZON_DATABASE_HOST", "localhost"),
port: System.get_env("MOBILIZON_DATABASE_PORT") || "5432"

View File

@ -88,6 +88,8 @@ config :mobilizon, Mobilizon.Web.Gettext, allowed_locales: ["fr", "en", "es", "r
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
import_config "test.secret.exs"
end

View File

@ -35,6 +35,7 @@ RUN source /root/.bashrc && \
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 && \

View File

@ -5,14 +5,12 @@ RUN apk add --no-cache python3 build-base libwebp-tools bash imagemagick ncurses
WORKDIR /build
COPY js .
ENV CYPRESS_INSTALL_BINARY 0
# Network timeout because it's slow when cross-compiling
RUN yarn install --network-timeout 100000 \
&& yarn run build
# Then, build the application binary
FROM elixir:1.13-alpine AS builder
FROM elixir:1.14-alpine AS builder
RUN apk add --no-cache build-base git cmake
@ -30,8 +28,7 @@ COPY rel ./rel
COPY support ./support
COPY --from=assets ./priv/static ./priv/static
RUN mix phx.digest.clean --all \
&& mix release
RUN mix phx.digest.clean --all && mix phx.digest && mix release
# Finally setup the app
FROM alpine

View File

@ -1,7 +1,7 @@
FROM elixir:latest
LABEL maintainer="Thomas Citharel <tcit@tcit.fr>"
ENV REFRESHED_AT=2022-04-06
ENV REFRESHED_AT=2022-09-20
RUN apt-get update -yq && apt-get install -yq build-essential inotify-tools postgresql-client git curl gnupg xvfb libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 cmake exiftool python3-pip python3-setuptools
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash && apt-get install nodejs -yq
RUN npm install -g yarn wait-on

View File

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

6
js/.gitignore vendored
View File

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

View File

@ -1,41 +0,0 @@
# 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/).

View File

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

View File

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

12
js/env.d.ts vendored Normal file
View File

@ -0,0 +1,12 @@
/// <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 @@
const fetch = require("node-fetch");
const fs = require("fs");
import fetch from "node-fetch";
import fs from "fs";
fetch(`http://localhost:4000/api`, {
method: "POST",

51
js/histoire.config.ts Normal file
View File

@ -0,0 +1,51 @@
/// <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,
},
],
},
});

View File

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

107
js/playwright.config.ts Normal file
View File

@ -0,0 +1,107 @@
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.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.9 KiB

View File

Before

Width:  |  Height:  |  Size: 920 B

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -0,0 +1,88 @@
<?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>

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 725 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

10
js/public/img/shape-1.svg Normal file
View File

@ -0,0 +1,10 @@
<!--?xml version="1.0" standalone="no"?-->
<svg id="sw-js-blob-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<linearGradient id="sw-gradient" x1="0" x2="1" y1="1" y2="0">
<stop id="stop1" stop-color="rgba(255, 231.287, 78.545, 0.3)" offset="0%"></stop>
<stop id="stop2" stop-color="rgba(254.848, 165.324, 149.009, 0.25)" offset="100%"></stop>
</linearGradient>
</defs>
<path fill="url(#sw-gradient)" d="M18.2,-13.5C23.5,-7.8,27.8,-0.2,27.7,8.7C27.5,17.6,22.9,27.8,14.1,33.9C5.3,39.9,-7.8,41.6,-17.7,36.8C-27.6,32,-34.2,20.7,-37.1,8.4C-39.9,-3.9,-39,-17.2,-32.2,-23.2C-25.4,-29.3,-12.7,-28.3,-3.1,-25.8C6.4,-23.3,12.8,-19.3,18.2,-13.5Z" width="100%" height="100%" transform="translate(50 50)" style="transition: all 0.3s ease 0s;" stroke-width="0" stroke="url(#sw-gradient)"></path>
</svg>

After

Width:  |  Height:  |  Size: 1015 B

10
js/public/img/shape-2.svg Normal file
View File

@ -0,0 +1,10 @@
<!--?xml version="1.0" standalone="no"?-->
<svg id="sw-js-blob-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<linearGradient id="sw-gradient" x1="0" x2="1" y1="1" y2="0">
<stop id="stop1" stop-color="rgba(181.058, 255, 167.816, 0.2)" offset="0%"></stop>
<stop id="stop2" stop-color="rgba(149.009, 254.848, 251.263, 0.25)" offset="100%"></stop>
</linearGradient>
</defs>
<path fill="url(#sw-gradient)" d="M20.2,-14.3C28.2,-6,38.3,2.5,37.6,9.8C36.9,17.1,25.5,23.1,15.5,25.2C5.6,27.3,-2.9,25.4,-11.2,21.9C-19.6,18.4,-27.9,13.3,-30.8,5.6C-33.7,-2.1,-31.2,-12.5,-25.2,-20.4C-19.1,-28.3,-9.6,-33.7,-1.8,-32.3C6.1,-30.9,12.1,-22.7,20.2,-14.3Z" width="100%" height="100%" transform="translate(50 50)" style="transition: all 0.3s ease 0s;" stroke-width="0" stroke="url(#sw-gradient)"></path>
</svg>

After

Width:  |  Height:  |  Size: 1016 B

10
js/public/img/shape-3.svg Normal file
View File

@ -0,0 +1,10 @@
<!--?xml version="1.0" standalone="no"?-->
<svg id="sw-js-blob-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<linearGradient id="sw-gradient" x1="0" x2="1" y1="1" y2="0">
<stop id="stop1" stop-color="rgba(172.198, 167.816, 255, 0.2)" offset="0%"></stop>
<stop id="stop2" stop-color="rgba(236.8, 149.009, 254.848, 0.25)" offset="100%"></stop>
</linearGradient>
</defs>
<path fill="url(#sw-gradient)" d="M25.3,-21.5C29.4,-15.2,26.8,-4.8,23.6,3.8C20.4,12.5,16.5,19.4,10.2,23.2C3.9,27,-4.8,27.6,-12.6,24.5C-20.3,21.4,-27,14.6,-30.1,5.6C-33.2,-3.4,-32.6,-14.4,-26.9,-21.1C-21.3,-27.8,-10.7,-30.1,0,-30.1C10.7,-30.1,21.3,-27.8,25.3,-21.5Z" width="100%" height="100%" transform="translate(50 50)" style="transition: all 0.3s ease 0s;" stroke-width="0" stroke="url(#sw-gradient)"></path>
</svg>

After

Width:  |  Height:  |  Size: 1013 B

View File

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -1,22 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<meta name="server-injected-data" />
</head>
<body>
<noscript>
<strong
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
properly without JavaScript enabled. Please enable it to
continue.</strong
>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

View File

@ -30,11 +30,6 @@ convert_image () {
convert -geometry "$resolution"x $file $output
}
produce_webp () {
name=$(file_name)
output="$output_dir/$name.webp"
cwebp $file -quiet -o $output
}
progress() {
local w=80 p=$1; shift
@ -68,23 +63,3 @@ do
fi
done
echo -e "\nDone!"
echo "Generating optimized versions of the pictures…"
if ! command -v cwebp &> /dev/null
then
echo "$(tput setaf 1)ERROR: The cwebp command could not be found. You need to install webp.$(tput sgr 0)"
exit 1
fi
nb_files=$( shopt -s nullglob ; set -- $output_dir/* ; echo $#)
i=1
for file in $output_dir/*
do
if [[ -f $file ]]; then
produce_webp
progress $(($i*100/$nb_files)) still working...
i=$((i+1))
fi
done
echo -e "\nDone!"

View File

@ -1,267 +1,317 @@
<template>
<div id="mobilizon">
<VueAnnouncer />
<VueSkipTo to="#main" :label="$t('Skip to main content')" />
<!-- <VueAnnouncer />
<VueSkipTo to="#main" :label="t('Skip to main content')" /> -->
<NavBar />
<div v-if="config && config.demoMode">
<b-message
class="container"
type="is-danger"
:title="$t('Warning').toLocaleUpperCase()"
<div v-if="isDemoMode">
<o-notification
class="container mx-auto"
variant="danger"
:title="t('Warning').toLocaleUpperCase()"
closable
:aria-close-label="$t('Close')"
:aria-close-label="t('Close')"
>
<p>
{{ $t("This is a demonstration site to test Mobilizon.") }}
<b>{{ $t("Please do not use it in any real way.") }}</b>
{{ t("This is a demonstration site to test Mobilizon.") }}
<b>{{ t("Please do not use it in any real way.") }}</b>
{{
$t(
t(
"This website isn't moderated and the data that you enter will be automatically destroyed every day at 00:01 (Paris timezone)."
)
}}
</p>
</b-message>
</o-notification>
</div>
<error v-if="error" :error="error" />
<ErrorComponent v-if="error" :error="error" />
<main id="main" v-else>
<transition name="fade" mode="out-in">
<router-view ref="routerView" />
</transition>
<main id="main" class="pt-4" v-else>
<router-view></router-view>
</main>
<mobilizon-footer />
</div>
</template>
<script lang="ts">
import { Component, Ref, Vue, Watch } from "vue-property-decorator";
import NavBar from "./components/NavBar.vue";
<script lang="ts" setup>
import NavBar from "@/components/NavBar.vue";
import {
AUTH_ACCESS_TOKEN,
AUTH_USER_EMAIL,
AUTH_USER_ID,
AUTH_USER_ROLE,
} from "./constants";
import {
CURRENT_USER_CLIENT,
UPDATE_CURRENT_USER_CLIENT,
} from "./graphql/user";
import Footer from "./components/Footer.vue";
import Logo from "./components/Logo.vue";
import { initializeCurrentActor } from "./utils/auth";
import { CONFIG } from "./graphql/config";
import { IConfig } from "./types/config.model";
import { ICurrentUser } from "./types/current-user.model";
} from "@/constants";
import { UPDATE_CURRENT_USER_CLIENT } from "@/graphql/user";
import MobilizonFooter from "@/components/PageFooter.vue";
import jwt_decode, { JwtPayload } from "jwt-decode";
import { refreshAccessToken } from "./apollo/utils";
import { Route } from "vue-router";
import { refreshAccessToken } from "@/apollo/utils";
import {
reactive,
ref,
provide,
onUnmounted,
onMounted,
onBeforeMount,
inject,
defineAsyncComponent,
computed,
watch,
onBeforeUnmount,
} from "vue";
import { LocationType } from "@/types/user-location.model";
import { useMutation, useQuery } from "@vue/apollo-composable";
import {
initializeCurrentActor,
NoIdentitiesException,
} from "@/utils/identity";
import { useI18n } from "vue-i18n";
import { Snackbar } from "@/plugins/snackbar";
import { Notifier } from "@/plugins/notifier";
import { CONFIG } from "@/graphql/config";
import { IConfig } from "@/types/config.model";
import { useRouter } from "vue-router";
import RouteName from "@/router/name";
@Component({
apollo: {
currentUser: CURRENT_USER_CLIENT,
config: CONFIG,
},
components: {
Logo,
NavBar,
error: () =>
import(/* webpackChunkName: "editor" */ "./components/Error.vue"),
"mobilizon-footer": Footer,
},
metaInfo() {
return {
titleTemplate: "%s | Mobilizon",
const { result: configResult } = useQuery<{ config: IConfig }>(
CONFIG,
undefined,
{ fetchPolicy: "cache-only" }
);
const config = computed(() => configResult.value?.config);
const ErrorComponent = defineAsyncComponent(
() => import("@/components/ErrorComponent.vue")
);
const { t } = useI18n({ useScope: "global" });
const location = computed(() => config.value?.location);
const userLocation = reactive<LocationType>({
lon: undefined,
lat: undefined,
name: undefined,
picture: undefined,
isIPLocation: true,
accuracy: 100,
});
const updateUserLocation = (newLocation: LocationType) => {
userLocation.lat = newLocation.lat;
userLocation.lon = newLocation.lon;
userLocation.name = newLocation.name;
userLocation.picture = newLocation.picture;
userLocation.isIPLocation = newLocation.isIPLocation;
userLocation.accuracy = newLocation.accuracy;
};
updateUserLocation({
lat: location.value?.latitude,
lon: location.value?.longitude,
name: "", // config.ipLocation.country.name,
isIPLocation: true,
accuracy: 150, // config.ipLocation.location.accuracy_radius * 1.5 || 150,
});
provide("userLocation", {
userLocation,
updateUserLocation,
});
// const routerView = ref("routerView");
const error = ref<Error | null>(null);
const online = ref(true);
const interval = ref<number>(0);
const notifier = inject<Notifier>("notifier");
interval.value = window.setInterval(async () => {
const accessToken = localStorage.getItem(AUTH_ACCESS_TOKEN);
if (accessToken) {
const token = jwt_decode<JwtPayload>(accessToken);
if (
token?.exp !== undefined &&
new Date(token.exp * 1000 - 60000) < new Date()
) {
refreshAccessToken();
}
}
}, 60000) as unknown as number;
onBeforeMount(async () => {
if (initializeCurrentUser()) {
try {
await initializeCurrentActor();
} catch (err) {
if (err instanceof NoIdentitiesException) {
await router.push({
name: RouteName.REGISTER_PROFILE,
params: {
email: localStorage.getItem(AUTH_USER_EMAIL),
userAlreadyActivated: "true",
},
});
}
}
}
});
const snackbar = inject<Snackbar>("snackbar");
const darkModePreference = window.matchMedia("(prefers-color-scheme: dark)");
onMounted(() => {
online.value = window.navigator.onLine;
window.addEventListener("offline", () => {
online.value = false;
showOfflineNetworkWarning();
console.debug("offline");
});
window.addEventListener("online", () => {
online.value = true;
console.debug("online");
});
document.addEventListener("refreshApp", (event: Event) => {
snackbar?.open({
queue: false,
indefinite: true,
variant: "dark",
actionText: t("Update app"),
cancelText: t("Ignore"),
message: t("A new version is available."),
onAction: async () => {
const registration = event.detail as ServiceWorkerRegistration;
try {
await refreshApp(registration);
window.location.reload();
} catch (err) {
console.error(err);
notifier?.error(t("An error has occured while refreshing the page."));
}
},
});
});
darkModePreference.addEventListener("change", changeTheme);
});
onUnmounted(() => {
clearInterval(interval.value);
interval.value = 0;
});
const { mutate: updateCurrentUser } = useMutation(UPDATE_CURRENT_USER_CLIENT);
const initializeCurrentUser = () => {
const userId = localStorage.getItem(AUTH_USER_ID);
const userEmail = localStorage.getItem(AUTH_USER_EMAIL);
const accessToken = localStorage.getItem(AUTH_ACCESS_TOKEN);
const role = localStorage.getItem(AUTH_USER_ROLE);
if (userId && userEmail && accessToken && role) {
updateCurrentUser({
id: userId,
email: userEmail,
isLoggedIn: true,
role,
});
return true;
}
return false;
};
const refreshApp = async (
registration: ServiceWorkerRegistration
): Promise<any> => {
const worker = registration.waiting;
if (!worker) {
return Promise.resolve();
}
return new Promise((resolve, reject) => {
const channel = new MessageChannel();
channel.port1.onmessage = (event) => {
if (event.data.error) {
reject(event.data);
} else {
resolve(event.data);
}
};
},
})
export default class App extends Vue {
config!: IConfig;
worker?.postMessage({ type: "skip-waiting" }, [channel.port2]);
});
};
currentUser!: ICurrentUser;
const showOfflineNetworkWarning = (): void => {
notifier?.error(t("You are offline"));
};
// const extractPageTitleFromRoute = (routeWatched: RouteLocation): string => {
// if (routeWatched.meta?.announcer?.message) {
// return routeWatched.meta?.announcer?.message();
// }
// return document.title;
// };
error: Error | null = null;
// watch(route, (routeWatched) => {
// const pageTitle = extractPageTitleFromRoute(routeWatched);
// if (pageTitle) {
// // this.$announcer.polite(
// // t("Navigated to {pageTitle}", {
// // pageTitle,
// // }) as string
// // );
// }
// // Set the focus to the router view
// // https://marcus.io/blog/accessible-routing-vuejs
// setTimeout(() => {
// const focusTarget = (
// routerView.value?.$refs?.componentFocusTarget !== undefined
// ? routerView.value?.$refs?.componentFocusTarget
// : routerView.value?.$el
// ) as HTMLElement;
// if (focusTarget && focusTarget instanceof Element) {
// // Make focustarget programmatically focussable
// focusTarget.setAttribute("tabindex", "-1");
online = true;
// // Focus element
// focusTarget.focus();
interval: number | undefined = undefined;
// // Remove tabindex from focustarget.
// // Reason: https://axesslab.com/skip-links/#update-3-a-comment-from-gov-uk
// focusTarget.removeAttribute("tabindex");
// }
// }, 0);
// });
@Ref("routerView") routerView!: Vue;
const router = useRouter();
async created(): Promise<void> {
if (await this.initializeCurrentUser()) {
await initializeCurrentActor(this.$apollo.provider.defaultClient);
}
}
errorCaptured(error: Error): void {
this.error = error;
}
private async initializeCurrentUser() {
const userId = localStorage.getItem(AUTH_USER_ID);
const userEmail = localStorage.getItem(AUTH_USER_EMAIL);
const accessToken = localStorage.getItem(AUTH_ACCESS_TOKEN);
const role = localStorage.getItem(AUTH_USER_ROLE);
if (userId && userEmail && accessToken && role) {
return this.$apollo.mutate({
mutation: UPDATE_CURRENT_USER_CLIENT,
variables: {
id: userId,
email: userEmail,
isLoggedIn: true,
role,
},
});
}
return false;
}
mounted(): void {
this.online = window.navigator.onLine;
window.addEventListener("offline", () => {
this.online = false;
this.showOfflineNetworkWarning();
console.debug("offline");
});
window.addEventListener("online", () => {
this.online = true;
console.debug("online");
});
document.addEventListener("refreshApp", (event: Event) => {
this.$buefy.snackbar.open({
queue: false,
indefinite: true,
type: "is-secondary",
actionText: this.$t("Update app") as string,
cancelText: this.$t("Ignore") as string,
message: this.$t("A new version is available.") as string,
onAction: async () => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const detail = event.detail;
const registration = detail as ServiceWorkerRegistration;
try {
await this.refreshApp(registration);
window.location.reload();
} catch (err) {
console.error(err);
this.$notifier.error(
this.$t(
"An error has occured while refreshing the page."
) as string
);
}
},
});
});
this.interval = setInterval(async () => {
const accessToken = localStorage.getItem(AUTH_ACCESS_TOKEN);
if (accessToken) {
const token = jwt_decode<JwtPayload>(accessToken);
if (
token?.exp !== undefined &&
new Date(token.exp * 1000 - 60000) < new Date()
) {
refreshAccessToken(this.$apollo.getClient());
}
}
}, 60000);
}
private async refreshApp(
registration: ServiceWorkerRegistration
): Promise<any> {
const worker = registration.waiting;
if (!worker) {
return Promise.resolve();
}
console.debug("Doing worker.skipWaiting().");
return new Promise((resolve, reject) => {
const channel = new MessageChannel();
channel.port1.onmessage = (event) => {
console.debug("Done worker.skipWaiting().");
if (event.data.error) {
reject(event.data);
} else {
resolve(event.data);
}
};
console.debug("calling skip waiting");
worker?.postMessage({ type: "skip-waiting" }, [channel.port2]);
watch(config, async (configWatched: IConfig | undefined) => {
if (configWatched) {
const { statistics } = await import("@/services/statistics");
statistics(configWatched?.analytics, {
router,
version: configWatched.version,
});
}
});
showOfflineNetworkWarning(): void {
this.$notifier.error(this.$t("You are offline") as string);
const isDemoMode = computed(() => config.value?.demoMode);
const changeTheme = () => {
console.debug("changing theme");
if (
localStorage.getItem("theme") === "dark" ||
(!("theme" in localStorage) &&
window.matchMedia("(prefers-color-scheme: dark)").matches)
) {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
};
unmounted(): void {
clearInterval(this.interval);
this.interval = undefined;
}
@Watch("config")
async initializeStatistics(config: IConfig) {
if (config) {
const { statistics } = (await import("./services/statistics")) as {
statistics: (config: IConfig, environment: Record<string, any>) => void;
};
statistics(config, { router: this.$router, version: config.version });
}
}
@Watch("$route", { immediate: true })
updateAnnouncement(route: Route): void {
const pageTitle = this.extractPageTitleFromRoute(route);
if (pageTitle) {
this.$announcer.polite(
this.$t("Navigated to {pageTitle}", {
pageTitle,
}) as string
);
}
// Set the focus to the router view
// https://marcus.io/blog/accessible-routing-vuejs
setTimeout(() => {
const focusTarget = (
this.routerView?.$refs?.componentFocusTarget !== undefined
? this.routerView?.$refs?.componentFocusTarget
: this.routerView?.$el
) as HTMLElement;
if (focusTarget && focusTarget instanceof Element) {
// Make focustarget programmatically focussable
focusTarget.setAttribute("tabindex", "-1");
// Focus element
focusTarget.focus();
// Remove tabindex from focustarget.
// Reason: https://axesslab.com/skip-links/#update-3-a-comment-from-gov-uk
focusTarget.removeAttribute("tabindex");
}
}, 0);
}
extractPageTitleFromRoute(route: Route): string {
if (route.meta?.announcer?.message) {
return route.meta?.announcer?.message();
}
return document.title;
}
}
onBeforeUnmount(() => {
darkModePreference.removeEventListener("change", changeTheme);
});
</script>
<style lang="scss">
@import "variables";
/* Icons */
$mdi-font-path: "~@mdi/font/fonts";
@import "~@mdi/font/scss/materialdesignicons";
@import "common";
#mobilizon {
min-height: 100vh;
display: flex;

View File

@ -14,7 +14,8 @@ export const MOBILIZON_INSTANCE_HOST = window.location.hostname;
*
* Example: https://framameet.org
*/
export const GRAPHQL_API_ENDPOINT = window.location.origin;
export const GRAPHQL_API_ENDPOINT =
import.meta.env.VITE_SERVER_URL ?? window.location.origin;
/**
* URL with path on which the API is. Replaces GRAPHQL_API_ENDPOINT if used
@ -23,4 +24,4 @@ export const GRAPHQL_API_ENDPOINT = window.location.origin;
*
* Example: https://framameet.org/api
*/
export const GRAPHQL_API_FULL_PATH = `${window.location.origin}/api`;
export const GRAPHQL_API_FULL_PATH = `${GRAPHQL_API_ENDPOINT}/api`;

View File

@ -0,0 +1,25 @@
import { Socket as PhoenixSocket } from "phoenix";
import { create } from "@absinthe/socket";
import { createAbsintheSocketLink } from "@absinthe/socket-apollo-link";
import { AUTH_ACCESS_TOKEN } from "@/constants";
import { GRAPHQL_API_ENDPOINT } from "@/api/_entrypoint";
const httpServer = GRAPHQL_API_ENDPOINT || "http://localhost:4000";
const webSocketPrefix = import.meta.env.PROD ? "wss" : "ws";
const wsEndpoint = `${webSocketPrefix}${httpServer.substring(
httpServer.indexOf(":")
)}/graphql_socket`;
const phoenixSocket = new PhoenixSocket(wsEndpoint, {
params: () => {
const token = localStorage.getItem(AUTH_ACCESS_TOKEN);
if (token) {
return { token };
}
return {};
},
});
const absintheSocket = create(phoenixSocket);
export default createAbsintheSocketLink(absintheSocket);

View File

@ -0,0 +1,20 @@
import fetch from "unfetch";
import { createLink } from "apollo-absinthe-upload-link";
import { GRAPHQL_API_ENDPOINT, GRAPHQL_API_FULL_PATH } from "@/api/_entrypoint";
// Endpoints
const httpServer = GRAPHQL_API_ENDPOINT || "http://localhost:4000";
const httpEndpoint = GRAPHQL_API_FULL_PATH || `${httpServer}/api`;
const customFetch = async (uri: string, options: any) => {
const response = await fetch(uri, options);
if (response.status >= 400) {
return Promise.reject(response.status);
}
return response;
};
export const uploadLink = createLink({
uri: httpEndpoint,
fetch: customFetch,
});

23
js/src/apollo/auth.ts Normal file
View File

@ -0,0 +1,23 @@
import { AUTH_ACCESS_TOKEN } from "@/constants";
import { ApolloLink } from "@apollo/client/core";
export function generateTokenHeader() {
const token = localStorage.getItem(AUTH_ACCESS_TOKEN);
return token ? `Bearer ${token}` : null;
}
const authMiddleware = new ApolloLink((operation, forward) => {
// add the authorization to the headers
operation.setContext({
headers: {
authorization: generateTokenHeader(),
},
});
if (forward) return forward(operation);
return null;
});
export { authMiddleware };

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