From 34f853159e5964e16712232388cd4ae203fdf72b Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Mon, 22 May 2023 18:44:21 +0200 Subject: [PATCH 01/17] build(docker): Fix production Dockerfile Make sure every data folder properly exists See https://forge.tedomum.net/tedomum/mobilizon/-/issues/14 Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- docker/production/Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile index 9a84bd9fb..1b5370e5b 100644 --- a/docker/production/Dockerfile +++ b/docker/production/Dockerfile @@ -1,5 +1,5 @@ # First build the application assets -FROM node:16-alpine as assets +FROM node:18-alpine as assets RUN apk add --no-cache python3 build-base libwebp-tools bash imagemagick ncurses WORKDIR /build @@ -49,11 +49,17 @@ LABEL org.opencontainers.image.title="mobilizon" \ RUN apk add --no-cache curl openssl ca-certificates ncurses-libs file postgresql-client libgcc libstdc++ imagemagick python3 py3-pip py3-pillow py3-cffi py3-brotli gcc g++ musl-dev python3-dev pango libxslt-dev ttf-cantarell openssl1.1-compat RUN pip install weasyprint pyexcel-ods3 +# Create every data directory RUN mkdir -p /var/lib/mobilizon/uploads && chown nobody:nobody /var/lib/mobilizon/uploads +RUN mkdir -p /var/lib/mobilizon/timezones && chown nobody:nobody /var/lib/mobilizon/timezones +RUN mkdir -p /var/lib/mobilizon/tzdata && chown nobody:nobody /var/lib/mobilizon/tzdata RUN mkdir -p /var/lib/mobilizon/uploads/exports/{csv,pdf,ods} && chown -R nobody:nobody /var/lib/mobilizon/uploads/exports -RUN mkdir -p /var/lib/mobilizon/timezones + +# Get timezone geodata RUN curl -L 'https://packages.joinmobilizon.org/tz_world/timezones-geodata.dets' -o /var/lib/mobilizon/timezones/timezones-geodata.dets -RUN chown nobody:nobody /var/lib/mobilizon/timezones +RUN chown -R nobody:nobody /var/lib/mobilizon/timezones + +# Create configuration directory RUN mkdir -p /etc/mobilizon && chown nobody:nobody /etc/mobilizon USER nobody From 43eab9e680f36350faba70baec2ac07711ad61d9 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Mon, 22 May 2023 18:53:22 +0200 Subject: [PATCH 02/17] build(docker-tests): Update test container Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- docker/tests/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile index 6342d6847..f9687894a 100644 --- a/docker/tests/Dockerfile +++ b/docker/tests/Dockerfile @@ -1,9 +1,9 @@ FROM elixir:latest LABEL maintainer="Thomas Citharel <tcit@tcit.fr>" -ENV REFRESHED_AT=2022-09-20 +ENV REFRESHED_AT=2023-05-22 RUN apt-get update -yq && apt-get install -yq build-essential inotify-tools postgresql-client git curl gnupg xvfb libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 cmake exiftool python3-pip python3-setuptools -RUN curl -sL https://deb.nodesource.com/setup_16.x | bash && apt-get install nodejs -yq +RUN curl -sL https://deb.nodesource.com/setup_18.x | bash && apt-get install nodejs -yq RUN npm install -g yarn wait-on RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN mix local.hex --force && mix local.rebar --force From 3309850d723b53b387ba12b49d4965a8cfb1ec04 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Tue, 23 May 2023 14:17:36 +0200 Subject: [PATCH 03/17] chore(changelog): fix changelog version and move an element in the correct section Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6588aa9d..fa912cc44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,19 +6,19 @@ 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.1.0 (2023-05-17) +## 3.1.0-beta.1 (2023-05-17) ### Features * **API:** Allow to create apps, with permissions and both Authorization Code Flow and Device Flow * **addresses:** Allow to enter manual addresses ([85d643d](https://framagit.org/framasoft/mobilizon/commits/85d643d0ecd5e7504f32953b9ed1509697b915e2)) * **docker:** Specify the folder where tzdata downloads data so that it can be used in a volume ([4bb0625](https://framagit.org/framasoft/mobilizon/commits/4bb062528f12be530a3754ca23c1bc6dbc862e5a)), closes [#1280](https://framagit.org/framasoft/mobilizon/issues/1280) -* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/commits/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) * **spam:** Introduce checking new accounts, events & comments for spam with the help of Akismet ([317a343](https://framagit.org/framasoft/mobilizon/commits/317a3434b221a1a91b66d8443984269404863a8e)) * **rate-limiting:** Introduce rate-limiting on some endpoints ([c07ba3a5](https://framagit.org/framasoft/mobilizon/-/commit/c07ba3a5d19c419ef8aaf3ea9ca6e7f48e4f4487)) ### Bug Fixes +* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/commits/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) * **apps:** Fix cleaning application data background job ([aa20f69](https://framagit.org/framasoft/mobilizon/commits/aa20f6991127ddee546fc0b867298c1342dbcb4d)) * **apps:** Show message when the user doesn't have approved apps yet ([e0ee9c1](https://framagit.org/framasoft/mobilizon/commits/e0ee9c143b0335753db5dfae19e324781d55bd4e)) * **auth:** Handle logging-in with disabled auth provider ([a22a5e3](https://framagit.org/framasoft/mobilizon/commits/a22a5e3cb924869e32cb9ed71dab3e03d91c018f)) From c4d60194a6900a3f9430355c5fbb346d910e4df6 Mon Sep 17 00:00:00 2001 From: Hugo Renard <hugo.renard@protonmail.com> Date: Mon, 22 May 2023 19:11:30 +0200 Subject: [PATCH 04/17] fix: include user role in moderator role Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- lib/graphql/authorization.ex | 3 ++- test/graphql/resolvers/user_test.exs | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/graphql/authorization.ex b/lib/graphql/authorization.ex index c30675dd9..21f4ad962 100644 --- a/lib/graphql/authorization.ex +++ b/lib/graphql/authorization.ex @@ -31,13 +31,14 @@ defmodule Mobilizon.GraphQL.Authorization do @impl true def role_authorized?(_user_role, :all), do: true def role_authorized?(role, _allowed_role) when is_super_role(role), do: true + def role_authorized?(:moderator, :user), do: true def role_authorized?(user_role, allowed_role) when is_atom(user_role) and is_atom(allowed_role), do: user_role === allowed_role def role_authorized?(user_role, allowed_roles) when is_atom(user_role) and is_list(allowed_roles), - do: user_role in allowed_roles + do: user_role in allowed_roles or (user_role === :moderator and :user in allowed_roles) @impl true def get_user_role(%ApplicationToken{user: %{role: role}}), do: role diff --git a/test/graphql/resolvers/user_test.exs b/test/graphql/resolvers/user_test.exs index 8ba4ca797..544e6fb5f 100644 --- a/test/graphql/resolvers/user_test.exs +++ b/test/graphql/resolvers/user_test.exs @@ -200,6 +200,34 @@ defmodule Mobilizon.GraphQL.Resolvers.UserTest do assert res["data"]["loggedUser"]["id"] == to_string(user.id) end + + test "get_current_user/3 returns the current logged-in user with moderator role", %{ + conn: conn + } do + user = insert(:user, role: :moderator) + + res = + conn + |> AbsintheHelpers.graphql_query( + query: @logged_user_query, + variables: %{} + ) + + assert res["data"]["loggedUser"] == nil + + assert hd(res["errors"])["message"] == + "You need to be logged in" + + res = + conn + |> auth_conn(user) + |> AbsintheHelpers.graphql_query( + query: @logged_user_query, + variables: %{} + ) + + assert res["data"]["loggedUser"]["id"] == to_string(user.id) + end end describe "Resolver: List users" do From 9fe2f658e220748ce0267a7ec3e2f8a8dc2b819d Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Tue, 23 May 2023 18:10:40 +0200 Subject: [PATCH 05/17] ci(docker-arm-build): allow Docker arm image build to fail Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- .gitlab-ci.yml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 38c3e43b1..d92024747 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -247,7 +247,6 @@ build-docker-main: script: - docker buildx build --push --platform linux/amd64 -t framasoft/mobilizon:main -f docker/production/Dockerfile . -# Don't push to latest when building beta/rc tags build-and-push-to-latest-docker-tag: <<: *docker rules: &release-tag-rules @@ -260,11 +259,31 @@ build-and-push-to-latest-docker-tag: - > docker buildx build --push - --platform linux/amd64,linux/arm + --platform linux/amd64 -t framasoft/mobilizon:$CI_COMMIT_TAG -t framasoft/mobilizon:latest -f docker/production/Dockerfile . +build-and-push-to-latest-docker-tag-cross: + <<: *docker + rules: &release-tag-rules + - if: '$CI_PROJECT_NAMESPACE != "framasoft"' + when: never + - if: $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /alpha|beta|rc/ + when: on_success + timeout: 3 hours + allow_failure: true + script: + - > + docker buildx build + --push + --platform linux/arm, linux/arm64 + -t framasoft/mobilizon:$CI_COMMIT_TAG + -t framasoft/mobilizon:latest + -f docker/production/Dockerfile . + + +# Don't push to latest when building beta/rc tags build-and-push-docker-tag: <<: *docker rules: &pre-release-tag-rules @@ -277,7 +296,7 @@ build-and-push-docker-tag: - > docker buildx build --push - --platform linux/amd64,linux/arm + --platform linux/amd64 -t framasoft/mobilizon:$CI_COMMIT_TAG -f docker/production/Dockerfile . From 39da840da95c95c611cb2ae9ba65b2a4338cd461 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Tue, 23 May 2023 18:34:35 +0200 Subject: [PATCH 06/17] chore(changelog): fix links to commits in Changelog See https://github.com/conventional-changelog/conventional-changelog/issues/986 Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- CHANGELOG.md | 76 ++++++++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa912cc44..8044ae495 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,48 +11,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Features * **API:** Allow to create apps, with permissions and both Authorization Code Flow and Device Flow -* **addresses:** Allow to enter manual addresses ([85d643d](https://framagit.org/framasoft/mobilizon/commits/85d643d0ecd5e7504f32953b9ed1509697b915e2)) -* **docker:** Specify the folder where tzdata downloads data so that it can be used in a volume ([4bb0625](https://framagit.org/framasoft/mobilizon/commits/4bb062528f12be530a3754ca23c1bc6dbc862e5a)), closes [#1280](https://framagit.org/framasoft/mobilizon/issues/1280) -* **spam:** Introduce checking new accounts, events & comments for spam with the help of Akismet ([317a343](https://framagit.org/framasoft/mobilizon/commits/317a3434b221a1a91b66d8443984269404863a8e)) +* **addresses:** Allow to enter manual addresses ([85d643d](https://framagit.org/framasoft/mobilizon/-/commit/85d643d0ecd5e7504f32953b9ed1509697b915e2)) +* **docker:** Specify the folder where tzdata downloads data so that it can be used in a volume ([4bb0625](https://framagit.org/framasoft/mobilizon/-/commit/4bb062528f12be530a3754ca23c1bc6dbc862e5a)), closes [#1280](https://framagit.org/framasoft/mobilizon/issues/1280) +* **spam:** Introduce checking new accounts, events & comments for spam with the help of Akismet ([317a343](https://framagit.org/framasoft/mobilizon/-/commit/317a3434b221a1a91b66d8443984269404863a8e)) * **rate-limiting:** Introduce rate-limiting on some endpoints ([c07ba3a5](https://framagit.org/framasoft/mobilizon/-/commit/c07ba3a5d19c419ef8aaf3ea9ca6e7f48e4f4487)) ### Bug Fixes -* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/commits/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) -* **apps:** Fix cleaning application data background job ([aa20f69](https://framagit.org/framasoft/mobilizon/commits/aa20f6991127ddee546fc0b867298c1342dbcb4d)) -* **apps:** Show message when the user doesn't have approved apps yet ([e0ee9c1](https://framagit.org/framasoft/mobilizon/commits/e0ee9c143b0335753db5dfae19e324781d55bd4e)) -* **auth:** Handle logging-in with disabled auth provider ([a22a5e3](https://framagit.org/framasoft/mobilizon/commits/a22a5e3cb924869e32cb9ed71dab3e03d91c018f)) -* **backend:** Fix Mobilizon.Events.list_participations_for_user_query/1 ([bcf6fd8](https://framagit.org/framasoft/mobilizon/commits/bcf6fd893c762c12b63d7e02da43cd5c05db509b)) -* **backend:** Handle CLDR data having no standard property for a language ([dbe2da7](https://framagit.org/framasoft/mobilizon/commits/dbe2da79c3aa1543b87dce61b5fd90195fb53afe)) -* **backend:** Ignore group mentions for now ([b5f106b](https://framagit.org/framasoft/mobilizon/commits/b5f106b0a81fefba3203f8ec5855e834a2078222)) -* **back:** Improve error message when requesting reset passwords and new instructions ([1c1d0d4](https://framagit.org/framasoft/mobilizon/commits/1c1d0d47d70cf19abe5be42e7ec3a73656a8172b)) -* **back:** Replace NaiveDateTime uses with DateTime for consistency ([8ea00e7](https://framagit.org/framasoft/mobilizon/commits/8ea00e7c1827ce3056ae51968a62fb3dc03ac6eb)) -* **back:** Various small fixes in backend ([2a57340](https://framagit.org/framasoft/mobilizon/commits/2a57340a82e414e69924ad89e8db9fc326742cc7)) -* bind pagination current prop ([4bcf572](https://framagit.org/framasoft/mobilizon/commits/4bcf572c54d904587d0409e2eb68b4ca6cf48fec)) -* **federation:** Account suspension should use actor in question as author and not relay actor ([79b48da](https://framagit.org/framasoft/mobilizon/commits/79b48da22209a8b2f1b234b8b8e121543a39b22b)) -* **feeds:** Only provide future events in ICS/Atom feeds ([f3a4431](https://framagit.org/framasoft/mobilizon/commits/f3a443138a0e1e6cf34fc593f5c174d56c21e904)), closes [#1246](https://framagit.org/framasoft/mobilizon/issues/1246) -* Fix type of variable in navbar ([50ab531](https://framagit.org/framasoft/mobilizon/commits/50ab531156214f883cb03f785ccf65e3f19ef50e)) -* **follow-instances:** Show correct error message when trying to follow already following actor ([d969c66](https://framagit.org/framasoft/mobilizon/commits/d969c6648f15e1ed280169a4c55d612bb002f03f)) -* **front:** Fix about sections titles ([487f406](https://framagit.org/framasoft/mobilizon/commits/487f4069b14fde6304c9a42cec5b1c1af79814c5)) -* **front:** Fix autocomplete attribute in o-inputitems after Oruga new version BC ([d2ba732](https://framagit.org/framasoft/mobilizon/commits/d2ba732b8b51986b739f6fbe3d74fa68e4b74ba0)) -* **front:** Fix behaviour when deleting an event from event list ([cfd10ea](https://framagit.org/framasoft/mobilizon/commits/cfd10ea96078f03ad3b4f5682e37078ffae16ee4)) -* **front:** Fix event list month order ([63c9ed6](https://framagit.org/framasoft/mobilizon/commits/63c9ed62de94d6d150798c949bad3d8a2dd4db23)), closes [#1244](https://framagit.org/framasoft/mobilizon/issues/1244) -* **front:** Fix instances list pagination ([8543204](https://framagit.org/framasoft/mobilizon/commits/8543204bd95de886d8d35bd491f23ecbc0a6ef8d)), closes [#1277](https://framagit.org/framasoft/mobilizon/issues/1277) -* **front:** Fix pagination display on dark mode ([4375438](https://framagit.org/framasoft/mobilizon/commits/4375438dc9fd2f1c5c9d7ed6670dde04f2da520f)) -* **front:** Fix style of My Events participations ([35b07dc](https://framagit.org/framasoft/mobilizon/commits/35b07dceaa41c74c28ea49655b755e341f56df32)) -* **front:** Focus report comment input in report modal ([2c28312](https://framagit.org/framasoft/mobilizon/commits/2c28312fc957901b86c2f3d1db8fc3376f505d37)), closes [#1236](https://framagit.org/framasoft/mobilizon/issues/1236) -* **front:** Handle "Failed to fetch dynamically imported module" errors by refreshing the page ([3d21a06](https://framagit.org/framasoft/mobilizon/commits/3d21a067897e4aa24f6404686ca6896044584796)) -* **front:** Improve Delete account modal UI ([c420bbc](https://framagit.org/framasoft/mobilizon/commits/c420bbccc9bd1c348e41904e826dc49c71d7eeb4)) -* **front:** Improve resend inscription instructions view and show error when appropriate ([5563052](https://framagit.org/framasoft/mobilizon/commits/55630527957d4f6a2e1e6845e64a92bc4794efc8)) -* **front:** No cache-only for config ([8dcb76c](https://framagit.org/framasoft/mobilizon/commits/8dcb76c30d4fa835837fd3b3833f83682fbae615)) -* **front:** Small UI fixes on identity pickers ([6faafd6](https://framagit.org/framasoft/mobilizon/commits/6faafd639303e4b57ed81db2ffb5db4ad598b904)) -* **i18n:** Update translations ([3b7dbcd](https://framagit.org/framasoft/mobilizon/commits/3b7dbcd71f0d19d5e723a03c56ca0b1abbd16f5d)) -* **map:** Fix style of the map marker ([c7b90cd](https://framagit.org/framasoft/mobilizon/commits/c7b90cd60a14abea7aebab7e1d87f37a44371f7c)) -* **map:** Only show map details when needed ([23b5e59](https://framagit.org/framasoft/mobilizon/commits/23b5e5930cb9bdb57b1d7fa3ec899d7e4d3571be)) -* **map:** Only show marker if we have it's position ([f0cc5ff](https://framagit.org/framasoft/mobilizon/commits/f0cc5ffb8feb2f4d70416792a8ab2f4f44bfba85)) -* **password-reset:** Lower time before being available to reset password or resend instructions ([73eb460](https://framagit.org/framasoft/mobilizon/commits/73eb4603b185c341b63481ed934f66e19aa0784f)) -* **search:** Fix event search order ([a4e7ee3](https://framagit.org/framasoft/mobilizon/commits/a4e7ee37bedc63b2193a401c801b3b1298f566d2)) -* **typespec:** Fix missing return type in typespec ([2043c98](https://framagit.org/framasoft/mobilizon/commits/2043c98717e8621b3953d347be0b4a35f494af98)) +* **global-search:** Add option values in debug log before calling global search service ([8141bb0](https://framagit.org/framasoft/mobilizon/-/commit/8141bb0acbc4eb02a917c5bc18712d0d954c4ee5)) +* **apps:** Fix cleaning application data background job ([aa20f69](https://framagit.org/framasoft/mobilizon/-/commit/aa20f6991127ddee546fc0b867298c1342dbcb4d)) +* **apps:** Show message when the user doesn't have approved apps yet ([e0ee9c1](https://framagit.org/framasoft/mobilizon/-/commit/e0ee9c143b0335753db5dfae19e324781d55bd4e)) +* **auth:** Handle logging-in with disabled auth provider ([a22a5e3](https://framagit.org/framasoft/mobilizon/-/commit/a22a5e3cb924869e32cb9ed71dab3e03d91c018f)) +* **backend:** Fix Mobilizon.Events.list_participations_for_user_query/1 ([bcf6fd8](https://framagit.org/framasoft/mobilizon/-/commit/bcf6fd893c762c12b63d7e02da43cd5c05db509b)) +* **backend:** Handle CLDR data having no standard property for a language ([dbe2da7](https://framagit.org/framasoft/mobilizon/-/commit/dbe2da79c3aa1543b87dce61b5fd90195fb53afe)) +* **backend:** Ignore group mentions for now ([b5f106b](https://framagit.org/framasoft/mobilizon/-/commit/b5f106b0a81fefba3203f8ec5855e834a2078222)) +* **back:** Improve error message when requesting reset passwords and new instructions ([1c1d0d4](https://framagit.org/framasoft/mobilizon/-/commit/1c1d0d47d70cf19abe5be42e7ec3a73656a8172b)) +* **back:** Replace NaiveDateTime uses with DateTime for consistency ([8ea00e7](https://framagit.org/framasoft/mobilizon/-/commit/8ea00e7c1827ce3056ae51968a62fb3dc03ac6eb)) +* **back:** Various small fixes in backend ([2a57340](https://framagit.org/framasoft/mobilizon/-/commit/2a57340a82e414e69924ad89e8db9fc326742cc7)) +* bind pagination current prop ([4bcf572](https://framagit.org/framasoft/mobilizon/-/commit/4bcf572c54d904587d0409e2eb68b4ca6cf48fec)) +* **federation:** Account suspension should use actor in question as author and not relay actor ([79b48da](https://framagit.org/framasoft/mobilizon/-/commit/79b48da22209a8b2f1b234b8b8e121543a39b22b)) +* **feeds:** Only provide future events in ICS/Atom feeds ([f3a4431](https://framagit.org/framasoft/mobilizon/-/commit/f3a443138a0e1e6cf34fc593f5c174d56c21e904)), closes [#1246](https://framagit.org/framasoft/mobilizon/issues/1246) +* Fix type of variable in navbar ([50ab531](https://framagit.org/framasoft/mobilizon/-/commit/50ab531156214f883cb03f785ccf65e3f19ef50e)) +* **follow-instances:** Show correct error message when trying to follow already following actor ([d969c66](https://framagit.org/framasoft/mobilizon/-/commit/d969c6648f15e1ed280169a4c55d612bb002f03f)) +* **front:** Fix about sections titles ([487f406](https://framagit.org/framasoft/mobilizon/-/commit/487f4069b14fde6304c9a42cec5b1c1af79814c5)) +* **front:** Fix autocomplete attribute in o-inputitems after Oruga new version BC ([d2ba732](https://framagit.org/framasoft/mobilizon/-/commit/d2ba732b8b51986b739f6fbe3d74fa68e4b74ba0)) +* **front:** Fix behaviour when deleting an event from event list ([cfd10ea](https://framagit.org/framasoft/mobilizon/-/commit/cfd10ea96078f03ad3b4f5682e37078ffae16ee4)) +* **front:** Fix event list month order ([63c9ed6](https://framagit.org/framasoft/mobilizon/-/commit/63c9ed62de94d6d150798c949bad3d8a2dd4db23)), closes [#1244](https://framagit.org/framasoft/mobilizon/issues/1244) +* **front:** Fix instances list pagination ([8543204](https://framagit.org/framasoft/mobilizon/-/commit/8543204bd95de886d8d35bd491f23ecbc0a6ef8d)), closes [#1277](https://framagit.org/framasoft/mobilizon/issues/1277) +* **front:** Fix pagination display on dark mode ([4375438](https://framagit.org/framasoft/mobilizon/-/commit/4375438dc9fd2f1c5c9d7ed6670dde04f2da520f)) +* **front:** Fix style of My Events participations ([35b07dc](https://framagit.org/framasoft/mobilizon/-/commit/35b07dceaa41c74c28ea49655b755e341f56df32)) +* **front:** Focus report comment input in report modal ([2c28312](https://framagit.org/framasoft/mobilizon/-/commit/2c28312fc957901b86c2f3d1db8fc3376f505d37)), closes [#1236](https://framagit.org/framasoft/mobilizon/issues/1236) +* **front:** Handle "Failed to fetch dynamically imported module" errors by refreshing the page ([3d21a06](https://framagit.org/framasoft/mobilizon/-/commit/3d21a067897e4aa24f6404686ca6896044584796)) +* **front:** Improve Delete account modal UI ([c420bbc](https://framagit.org/framasoft/mobilizon/-/commit/c420bbccc9bd1c348e41904e826dc49c71d7eeb4)) +* **front:** Improve resend inscription instructions view and show error when appropriate ([5563052](https://framagit.org/framasoft/mobilizon/-/commit/55630527957d4f6a2e1e6845e64a92bc4794efc8)) +* **front:** No cache-only for config ([8dcb76c](https://framagit.org/framasoft/mobilizon/-/commit/8dcb76c30d4fa835837fd3b3833f83682fbae615)) +* **front:** Small UI fixes on identity pickers ([6faafd6](https://framagit.org/framasoft/mobilizon/-/commit/6faafd639303e4b57ed81db2ffb5db4ad598b904)) +* **i18n:** Update translations ([3b7dbcd](https://framagit.org/framasoft/mobilizon/-/commit/3b7dbcd71f0d19d5e723a03c56ca0b1abbd16f5d)) +* **map:** Fix style of the map marker ([c7b90cd](https://framagit.org/framasoft/mobilizon/-/commit/c7b90cd60a14abea7aebab7e1d87f37a44371f7c)) +* **map:** Only show map details when needed ([23b5e59](https://framagit.org/framasoft/mobilizon/-/commit/23b5e5930cb9bdb57b1d7fa3ec899d7e4d3571be)) +* **map:** Only show marker if we have it's position ([f0cc5ff](https://framagit.org/framasoft/mobilizon/-/commit/f0cc5ffb8feb2f4d70416792a8ab2f4f44bfba85)) +* **password-reset:** Lower time before being available to reset password or resend instructions ([73eb460](https://framagit.org/framasoft/mobilizon/-/commit/73eb4603b185c341b63481ed934f66e19aa0784f)) +* **search:** Fix event search order ([a4e7ee3](https://framagit.org/framasoft/mobilizon/-/commit/a4e7ee37bedc63b2193a401c801b3b1298f566d2)) +* **typespec:** Fix missing return type in typespec ([2043c98](https://framagit.org/framasoft/mobilizon/-/commit/2043c98717e8621b3953d347be0b4a35f494af98)) * Change the way preferredUsername is synced ([a73e5a08](https://framagit.org/framasoft/mobilizon/-/commit/a73e5a085ef48a88dbb8f9c407df0430ca89fe1f)) * datetimepicker: change colors for day & time selectors on dark mode ([b18e8fd3](https://framagit.org/framasoft/mobilizon/-/commit/b18e8fd37c76190ca7f6db82e408cdb005d1810a)) * Save IP and login date from directly registered accounts ([1db5c4ae](https://framagit.org/framasoft/mobilizon/-/commit/1db5c4ae2d49d5adbda2c0825ee0320322b525d6)) From 3eddd5fc8f012c588400120b5b5f48980a6d0a15 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Tue, 23 May 2023 18:35:28 +0200 Subject: [PATCH 07/17] chore(release): release 3.1.0-beta.2 Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- CHANGELOG.md | 6 ++++++ js/package.json | 2 +- mix.exs | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8044ae495..ecd3dcd1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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.1.0-beta.2 (2023-05-23) + +### Bug Fixes + +* include user role in moderator role ([c4d6019](https://framagit.org/framasoft/mobilizon/-/commit/c4d60194a6900a3f9430355c5fbb346d910e4df6)) + ## 3.1.0-beta.1 (2023-05-17) diff --git a/js/package.json b/js/package.json index 6fe92803f..8be62536e 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "mobilizon", - "version": "3.1.0-beta.1", + "version": "3.1.0-beta.2", "private": true, "scripts": { "dev": "vite", diff --git a/mix.exs b/mix.exs index 88b0022c4..e1fa8bd20 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Mobilizon.Mixfile do use Mix.Project - @version "3.1.0-beta.1" + @version "3.1.0-beta.2" def project do [ From 67407dae62c68b9d6bf8a999facdaa07988a8a14 Mon Sep 17 00:00:00 2001 From: Dannek Rose <dannekrose@dannekrose.com> Date: Wed, 24 May 2023 03:20:59 +0000 Subject: [PATCH 08/17] Translated using Weblate (Japanese) Currently translated at 40.8% (639 of 1565 strings) Translation: Mobilizon/Frontend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/ --- js/src/i18n/ja.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/src/i18n/ja.json b/js/src/i18n/ja.json index 398143632..cb6d0cb80 100644 --- a/js/src/i18n/ja.json +++ b/js/src/i18n/ja.json @@ -32,7 +32,7 @@ "A resource has been created or updated": "", "A short tagline for your instance homepage. Defaults to \"Gather ⋅ Organize ⋅ Mobilize\"": "", "A twitter account handle to follow for event updates": "", - "A user-friendly, emancipatory and ethical tool for gathering, organising, and mobilising.": "", + "A user-friendly, emancipatory and ethical tool for gathering, organising, and mobilising.": "人を集めて計画して動員するための開放的で取り扱いが簡単で倫理的なソフトです。", "A validation email was sent to {email}": "", "API": "API", "Abandon editing": "", @@ -693,7 +693,7 @@ "Please add as many details as possible to help identify the problem.": "", "Please check your spam folder if you didn't receive the email.": "", "Please contact this instance's Mobilizon admin if you think this is a mistake.": "", - "Please do not use it in any real way.": "", + "Please do not use it in any real way.": "本格的に利用することはご遠慮ください。", "Please enter your password to confirm this action.": "このアクションの確認のため、パスワードを入力してください。", "Please make sure the address is correct and that the page hasn't been moved.": "", "Please read the {fullRules} published by {instance}'s administrators.": "{instance}の管理者によって作成された{fullRules}をお読み下さい。", From d73bafec97cd7d8eda887d21870427262befab0f Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 10:56:02 +0200 Subject: [PATCH 09/17] fix(front): reset page number to 1 when search criteria changes Closes #1272 Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/views/SearchView.vue | 48 ++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/js/src/views/SearchView.vue b/js/src/views/SearchView.vue index ad09e1d23..5d76def9c 100644 --- a/js/src/views/SearchView.vue +++ b/js/src/views/SearchView.vue @@ -868,20 +868,6 @@ const contentType = useRouteQuery( enumTransformer(ContentType) ); -watch(contentType, (newContentType: ContentType) => { - switch (newContentType) { - case ContentType.ALL: - page.value = 1; - break; - case ContentType.EVENTS: - eventPage.value = 1; - break; - case ContentType.GROUPS: - groupPage.value = 1; - break; - } -}); - const isOnline = useRouteQuery("isOnline", false, booleanTransformer); const categoryOneOf = useRouteQuery("categoryOneOf", [], arrayTransformer); const statusOneOf = useRouteQuery( @@ -1261,6 +1247,40 @@ const boostLanguagesQuery = computed((): string[] => { return Array.from(languages); }); +// When search criteria changes, reset page number to 1 +watch( + [ + contentType, + searchDebounced, + geoHashLocation, + start, + end, + radius, + isOnline, + categoryOneOf, + statusOneOf, + languageOneOf, + searchTarget, + bbox, + zoom, + sortBy, + boostLanguagesQuery, + ], + ([newContentType]) => { + switch (newContentType) { + case ContentType.ALL: + page.value = 1; + break; + case ContentType.EVENTS: + eventPage.value = 1; + break; + case ContentType.GROUPS: + groupPage.value = 1; + break; + } + } +); + const { result: searchElementsResult, loading: searchLoading } = useQuery<{ searchEvents: Paginate<TypeNamed<IEvent>>; searchGroups: Paginate<TypeNamed<IGroup>>; From a7c8cc0b9f02c4c440fcb59d8385647947c7ce85 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 10:56:25 +0200 Subject: [PATCH 10/17] style(lint): lint front-end code Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/views/Settings/AccountSettings.vue | 3 ++- js/src/views/User/ResendConfirmation.vue | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/js/src/views/Settings/AccountSettings.vue b/js/src/views/Settings/AccountSettings.vue index fbe1a1414..001328f04 100644 --- a/js/src/views/Settings/AccountSettings.vue +++ b/js/src/views/Settings/AccountSettings.vue @@ -187,7 +187,8 @@ :placeholder="t('Password')" /> <template #message> - <o-notification class="mt-2 not-italic text-base" + <o-notification + class="mt-2 not-italic text-base" variant="danger" v-for="message in deletePasswordErrors" :key="message" diff --git a/js/src/views/User/ResendConfirmation.vue b/js/src/views/User/ResendConfirmation.vue index f13f122ed..aa811c174 100644 --- a/js/src/views/User/ResendConfirmation.vue +++ b/js/src/views/User/ResendConfirmation.vue @@ -4,7 +4,7 @@ {{ $t("Resend confirmation email") }} </h1> <o-notification v-if="error" variant="danger"> - {{ errorMessage }} + {{ errorMessage }} </o-notification> <form v-if="!validationSent" @submit="resendConfirmationAction"> <o-field :label="$t('Email address')" labelFor="emailAddress"> From 6bd8034fe816a432c3547de6d1ad8a18e73dc314 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 11:14:16 +0200 Subject: [PATCH 11/17] feat(i18n): activate japanese language Closes #1293 Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/i18n/langs.json | 1 + 1 file changed, 1 insertion(+) diff --git a/js/src/i18n/langs.json b/js/src/i18n/langs.json index e0a717dd7..9a651d89d 100644 --- a/js/src/i18n/langs.json +++ b/js/src/i18n/langs.json @@ -15,6 +15,7 @@ "hu": "Magyar", "id": "Bahasa Indonesia", "it": "Italiano", + "ja": "日本語", "nl": "Nederlands", "nn": "Nynorsk", "oc": "Occitan", From 94182aed2d8a22d00534f6376dfda2658bc8ba7e Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 11:17:30 +0200 Subject: [PATCH 12/17] feat(i18n): activate croatian language Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- config/prod.exs | 1 + js/src/i18n/langs.json | 1 + 2 files changed, 2 insertions(+) diff --git a/config/prod.exs b/config/prod.exs index fc98b346f..718bc6289 100644 --- a/config/prod.exs +++ b/config/prod.exs @@ -30,6 +30,7 @@ config :mobilizon, :cldr, "fr", "gd", "gl", + "hr", "hu", "id", "it", diff --git a/js/src/i18n/langs.json b/js/src/i18n/langs.json index 9a651d89d..f7ab603a8 100644 --- a/js/src/i18n/langs.json +++ b/js/src/i18n/langs.json @@ -12,6 +12,7 @@ "fr": "Français", "gd": "Gàidhlig", "gl": "Galego", + "hr": "Hrvatski", "hu": "Magyar", "id": "Bahasa Indonesia", "it": "Italiano", From 6858bcbbda6d8527bd15b9138e7bb30c5ead72d7 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 11:34:25 +0200 Subject: [PATCH 13/17] fix(front): remove cache-only for ABOUT GraphQL details on homepage Otherwise this doesn't show the title of the instance when going back Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/views/HomeView.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/js/src/views/HomeView.vue b/js/src/views/HomeView.vue index b82ae1a0b..15cacd6f3 100644 --- a/js/src/views/HomeView.vue +++ b/js/src/views/HomeView.vue @@ -236,9 +236,7 @@ const { result: aboutConfigResult } = useQuery<{ IConfig, "name" | "description" | "slogan" | "registrationsOpen" >; -}>(ABOUT, undefined, { - fetchPolicy: "cache-only", -}); +}>(ABOUT); const config = computed(() => aboutConfigResult.value?.config); From 643a5b5921f91fed6a9f674c0ab3a36bf2d05835 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 11:44:20 +0200 Subject: [PATCH 14/17] fix(i18n): fix Swedish translations error that prevented Participate button from showing up Closes #1281 Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/i18n/sv.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/src/i18n/sv.json b/js/src/i18n/sv.json index cc10ddd60..06ba7dbde 100644 --- a/js/src/i18n/sv.json +++ b/js/src/i18n/sv.json @@ -1183,7 +1183,7 @@ "your notification settings": "", "{'@'}{username}": "", "{approved} / {total} seats": "{approved} / {total} platser", - "{available}/{capacity} available places": "Inga platser kvar|{tillgängliga}/{kapacitet} tillgängliga platser", + "{available}/{capacity} available places": "Inga platser kvar|{available}/{capacity} tillgängliga platser", "{count} km": "", "{count} members": "", "{count} members or followers": "", From 6da0dba0fd6d071ce5978802104538d0c2ef7dae Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 11:50:38 +0200 Subject: [PATCH 15/17] fix(front): remove leftover console.logs Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/components/Event/FullAddressAutoComplete.vue | 3 --- 1 file changed, 3 deletions(-) diff --git a/js/src/components/Event/FullAddressAutoComplete.vue b/js/src/components/Event/FullAddressAutoComplete.vue index 0e6cfb510..eaaa92915 100644 --- a/js/src/components/Event/FullAddressAutoComplete.vue +++ b/js/src/components/Event/FullAddressAutoComplete.vue @@ -356,9 +356,6 @@ const queryText = ref(); const queryTextWithDefault = computed({ get() { - console.log("queryTextWithDefault 1", queryText.value); - console.log("queryTextWithDefault 2", selectedAddressText.value); - console.log("queryTextWithDefault 3", props.defaultText); return ( queryText.value ?? selectedAddressText.value ?? props.defaultText ?? "" ); From d5a6df9940fb458c5dbaee149015c02ebc370c6b Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 12:11:00 +0200 Subject: [PATCH 16/17] feat(front): redirect user to homepage on disconnect when currently on private page Closes #1278 Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/components/NavBar.vue | 25 ++++++++++++++++++++++--- js/src/i18n/en_US.json | 5 +++-- js/src/i18n/fr_FR.json | 5 +++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/js/src/components/NavBar.vue b/js/src/components/NavBar.vue index 423a662d3..bd0bff4cf 100644 --- a/js/src/components/NavBar.vue +++ b/js/src/components/NavBar.vue @@ -123,8 +123,8 @@ </o-dropdown-item> <o-dropdown-item aria-role="listitem" - @click="logout" - @keyup.enter="logout" + @click="performLogout" + @keyup.enter="performLogout" > <span class="block py-2 px-4 text-sm text-zinc-700 dark:text-zinc-200 dark:hover:text-white" @@ -205,7 +205,7 @@ import { logout } from "../utils/auth"; import { displayName } from "../types/actor"; import RouteName from "../router/name"; import { computed, ref, watch } from "vue"; -import { useRouter } from "vue-router"; +import { useRoute, useRouter } from "vue-router"; import { useI18n } from "vue-i18n"; import AccountCircle from "vue-material-design-icons/AccountCircle.vue"; import { useCurrentUserClient } from "@/composition/apollo/user"; @@ -217,11 +217,13 @@ import { useMutation } from "@vue/apollo-composable"; import { UPDATE_DEFAULT_ACTOR } from "@/graphql/actor"; import { changeIdentity } from "@/utils/identity"; import { useRegistrationConfig } from "@/composition/apollo/config"; +import { useProgrammatic } from "@oruga-ui/oruga-next"; const { currentUser } = useCurrentUserClient(); const { currentActor } = useCurrentActorClient(); const router = useRouter(); +const route = useRoute(); const { identities } = useCurrentUserIdentities(); const { registrationsOpen, registrationsAllowlist, databaseLogin } = @@ -269,4 +271,21 @@ onDone(({ data }) => { }); const showMobileMenu = ref(false); + +const { oruga } = useProgrammatic(); + +const performLogout = async () => { + console.debug("Logging out client..."); + await logout(); + oruga.notification.open({ + message: t("You have been logged-out"), + variant: "success", + position: "bottom-right", + duration: 5000, + }); + + if (route.meta["requiredAuth"] === true) { + return router.push({ name: RouteName.HOME }); + } +}; </script> diff --git a/js/src/i18n/en_US.json b/js/src/i18n/en_US.json index c45617d6e..4690f637d 100644 --- a/js/src/i18n/en_US.json +++ b/js/src/i18n/en_US.json @@ -371,7 +371,6 @@ "You can add tags by hitting the Enter key or by adding a comma": "You can add tags by hitting the Enter key or by adding a comma", "You can try another search term or drag and drop the marker on the map": "You can try another search term or drag and drop the marker on the map", "You don't follow any instances yet.": "You don't follow any instances yet.", - "You have been disconnected": "You have been disconnected", "You have cancelled your participation": "You have cancelled your participation", "You have one event in {days} days.": "You have no events in {days} days | You have one event in {days} days. | You have {count} events in {days} days", "You have one event today.": "You have no events today | You have one event today. | You have {count} events today", @@ -1563,5 +1562,7 @@ "This application asks for the following permissions:": "This application asks for the following permissions:", "This application will be allowed to see all of your events organized, the events you participate to, as well as every data from your groups.": "This application will be allowed to see all of your events organized, the events you participate to, as well as every data from your groups.", "This application will be allowed to publish and manage events, post and manage comments, participate to events, manage all of your groups, including group events, resources, posts and discussions. It will also be allowed to manage your account and profile settings.": "This application will be allowed to publish and manage events, post and manage comments, participate to events, manage all of your groups, including group events, resources, posts and discussions. It will also be allowed to manage your account and profile settings.", - "No apps authorized yet": "No apps authorized yet" + "No apps authorized yet": "No apps authorized yet", + "You have been logged-out": "You have been logged-out", + "An “application programming interface” or “API” is a communication protocol that allows software components to communicate with each other. The Mobilizon API, for example, can allow third-party software tools to communicate with Mobilizon instances to carry out certain actions, such as posting events on your behalf, automatically and remotely.": "An “application programming interface” or “API” is a communication protocol that allows software components to communicate with each other. The Mobilizon API, for example, can allow third-party software tools to communicate with Mobilizon instances to carry out certain actions, such as posting events on your behalf, automatically and remotely." } \ No newline at end of file diff --git a/js/src/i18n/fr_FR.json b/js/src/i18n/fr_FR.json index 2510c96a2..2b12e4bd9 100644 --- a/js/src/i18n/fr_FR.json +++ b/js/src/i18n/fr_FR.json @@ -1240,7 +1240,6 @@ "You don't have any upcoming events. Maybe try another filter?": "Vous n'avez pas d'événements à venir. Essayez peut-être un autre filtre ?", "You excluded member {member}.": "Vous avez exclu le ou la membre {member}.", "You have attended {count} events in the past.": "Vous n'avez participé à aucun événement par le passé.|Vous avez participé à un événement par le passé.|Vous avez participé à {count} événements par le passé.", - "You have been disconnected": "Vous avez été déconnecté⋅e", "You have been invited by {invitedBy} to the following group:": "Vous avez été invité par {invitedBy} à rejoindre le groupe suivant :", "You have been removed from this group's members.": "Vous avez été exclu⋅e des membres de ce groupe.", "You have cancelled your participation": "Vous avez annulé votre participation", @@ -1559,5 +1558,7 @@ "This application asks for the following permissions:": "Cette application demande les autorisations suivantes :", "This application will be allowed to see all of your events organized, the events you participate to, as well as every data from your groups.": "Cette application vous permettra de voir tous les événements que vous avez organisés, les événements auxquels vous participez, ainsi que toutes les données de vos groupes.", "This application will be allowed to publish and manage events, post and manage comments, participate to events, manage all of your groups, including group events, resources, posts and discussions. It will also be allowed to manage your account and profile settings.": "Cette application sera autorisée à publier et à gérer des événements, à publier et à gérer des commentaires, à participer à des événements, à gérer tous vos groupes, y compris les événements de groupe, les ressources, les messages et les discussions. Elle pourra également gérer les paramètres de votre compte et de votre profil.", - "No apps authorized yet": "Aucune application autorisée pour le moment" + "No apps authorized yet": "Aucune application autorisée pour le moment", + "You have been logged-out": "Vous avez été déconnecté·e", + "An “application programming interface” or “API” is a communication protocol that allows software components to communicate with each other. The Mobilizon API, for example, can allow third-party software tools to communicate with Mobilizon instances to carry out certain actions, such as posting events on your behalf, automatically and remotely.": "Une « interface de programmation d’application » ou « API » est un protocole de communication qui permet aux composants logiciels de communiquer entre eux. L'API Mobilizon, par exemple, peut permettre à des outils logiciels tiers de communiquer avec les instances Mobilizon pour effectuer certaines actions, telles que la publication d'événements en votre nom, automatiquement et à distance." } From d47b69d6caa7c4405ab2e573ba407f9b2450c3bb Mon Sep 17 00:00:00 2001 From: Thomas Citharel <tcit@tcit.fr> Date: Wed, 24 May 2023 12:11:25 +0200 Subject: [PATCH 17/17] fix(front): improve UI of the glossary page Signed-off-by: Thomas Citharel <tcit@tcit.fr> --- js/src/views/About/GlossaryView.vue | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/js/src/views/About/GlossaryView.vue b/js/src/views/About/GlossaryView.vue index d18b5b210..7ac4e1d62 100644 --- a/js/src/views/About/GlossaryView.vue +++ b/js/src/views/About/GlossaryView.vue @@ -10,7 +10,7 @@ }} </p> <dl> - <dt>{{ t("Instance") }}</dt> + <dt class="mt-3">{{ t("Instance") }}</dt> <i18n-t tag="dd" keypath="An instance is an installed version of the Mobilizon software running on a server. An instance can be run by anyone using the {mobilizon_software} or other federated apps, aka the “fediverse”. This instance's name is {instance_name}. Mobilizon is a federated network of multiple instances (just like email servers), users registered on different instances may communicate even though they didn't register on the same instance." @@ -25,39 +25,39 @@ <b>{{ config.name }}</b> </template> </i18n-t> - <dt>{{ t("Instance administrator") }}</dt> - <dd> + <dt class="mt-3">{{ t("Instance administrator") }}</dt> + <dd class="mb-2"> {{ t( "The instance administrator is the person or entity that runs this Mobilizon instance." ) }} </dd> - <dt>{{ t("Application") }}</dt> - <dd> + <dt class="mt-3">{{ t("Application") }}</dt> + <dd class="mb-2"> {{ t( "In the following context, an application is a software, either provided by the Mobilizon team or by a 3rd-party, used to interact with your instance." ) }} </dd> - <dt>{{ t("API") }}</dt> - <dd> + <dt class="mt-3">{{ t("API") }}</dt> + <dd class="mb-2"> {{ t( "An “application programming interface” or “API” is a communication protocol that allows software components to communicate with each other. The Mobilizon API, for example, can allow third-party software tools to communicate with Mobilizon instances to carry out certain actions, such as posting events on your behalf, automatically and remotely." ) }} </dd> - <dt>{{ t("SSL/TLS") }}</dt> + <dt class="mt-3">{{ t("SSL/TLS") }}</dt> <i18n-t tag="dd" keypath="SSL and it's successor TLS are encryption technologies to secure data communications when using the service. You can recognize an encrypted connection in your browser's address line when the URL begins with {https} and the lock icon is displayed in your browser's address bar." > <template #https><code>https://</code></template> </i18n-t> - <dt>{{ t("Cookies and Local storage") }}</dt> - <dd> + <dt class="mt-3">{{ t("Cookies and Local storage") }}</dt> + <dd class="mb-2"> {{ t( "A cookie is a small file containing information that is sent to your computer when you visit a website. When you visit the site again, the cookie allows that site to recognize your browser. Cookies may store user preferences and other information. You can configure your browser to refuse all cookies. However, this may result in some website features or services partially working. Local storage works the same way but allows you to store more data."