diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 42ff2ce16..df71cd174 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -101,23 +101,6 @@ deps: needs: - install -exunit-1.11: - stage: test - image: tcitworld/mobilizon-ci:legacy - services: - - name: postgis/postgis:11-3.0 - alias: postgres - variables: - MIX_ENV: test - before_script: - - mix deps.clean --all - - mix deps.get - - mix ecto.create - - mix ecto.migrate - script: - - mix coveralls - allow_failure: true - exunit: stage: test services: @@ -127,6 +110,7 @@ exunit: MIX_ENV: test before_script: - mix deps.get + - mix tz_world.update - mix ecto.create - mix ecto.migrate script: diff --git a/docker/tests/Dockerfile-legacy b/docker/tests/Dockerfile-legacy deleted file mode 100644 index a90806409..000000000 --- a/docker/tests/Dockerfile-legacy +++ /dev/null @@ -1,28 +0,0 @@ -# We build Elixir manually to have the oldest acceptable version of OTP -FROM erlang:21 -LABEL maintainer="Thomas Citharel " - -# elixir expects utf8. -ENV ELIXIR_VERSION="v1.11.4" \ - LANG=C.UTF-8 - -RUN set -xe \ - && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ - && ELIXIR_DOWNLOAD_SHA256="85c7118a0db6007507313db5bddf370216d9394ed7911fe80f21e2fbf7f54d29" \ - && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ - && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ - && mkdir -p /usr/local/src/elixir \ - && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ - && rm elixir-src.tar.gz \ - && cd /usr/local/src/elixir \ - && make install clean - -CMD ["iex"] - -ENV REFRESHED_AT=2021-06-07 -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 -RUN curl -sL https://deb.nodesource.com/setup_12.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 -RUN curl https://dbip.mirror.framasoft.org/files/dbip-city-lite-latest.mmdb --output GeoLite2-City.mmdb -s && mkdir -p /usr/share/GeoIP && mv GeoLite2-City.mmdb /usr/share/GeoIP/ diff --git a/js/package.json b/js/package.json index 7b3fc2b9f..a3d4ca104 100644 --- a/js/package.json +++ b/js/package.json @@ -29,6 +29,8 @@ "@tiptap/extension-underline": "^2.0.0-beta.7", "@tiptap/starter-kit": "^2.0.0-beta.37", "@tiptap/vue-2": "^2.0.0-beta.21", + "@vue-a11y/announcer": "^2.1.0", + "@vue-a11y/skip-to": "^2.1.2", "@vue/apollo-option": "4.0.0-alpha.11", "apollo-absinthe-upload-link": "^1.5.0", "blurhash": "^1.1.3", @@ -36,6 +38,7 @@ "bulma-divider": "^0.2.0", "core-js": "^3.6.4", "date-fns": "^2.16.0", + "date-fns-tz": "^1.1.6", "graphql": "^15.0.0", "graphql-tag": "^2.10.3", "intersection-observer": "^0.12.0", diff --git a/js/src/App.vue b/js/src/App.vue index f9818269d..bcda04912 100644 --- a/js/src/App.vue +++ b/js/src/App.vue @@ -1,5 +1,7 @@ @@ -218,4 +256,8 @@ $mdi-font-path: "~@mdi/font/fonts"; flex-grow: 1; } } + +.vue-skip-to { + z-index: 40; +} diff --git a/js/src/common.scss b/js/src/common.scss index 004ddb1b4..66979923b 100644 --- a/js/src/common.scss +++ b/js/src/common.scss @@ -135,3 +135,23 @@ a.list-item { font-size: 1.25rem; } } + +@mixin focus() { + &:focus { + border: 2px solid black; + border-radius: 5px; + } +} + +ul.menu-list > li, +p { + @include focus; +} +.navbar-item { + @include focus; +} + +.navbar-dropdown span.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; +} diff --git a/js/src/components/Account/ProfileOnboarding.vue b/js/src/components/Account/ProfileOnboarding.vue index 43448fc1b..bba073384 100644 --- a/js/src/components/Account/ProfileOnboarding.vue +++ b/js/src/components/Account/ProfileOnboarding.vue @@ -11,7 +11,7 @@ ) }}

-
+

{{ @@ -33,7 +33,7 @@ " />

-
+

{{ $t( diff --git a/js/src/components/Address/AddressInfo.vue b/js/src/components/Address/AddressInfo.vue new file mode 100644 index 000000000..a0ef9eadf --- /dev/null +++ b/js/src/components/Address/AddressInfo.vue @@ -0,0 +1,124 @@ + + + diff --git a/js/src/components/Comment/Comment.vue b/js/src/components/Comment/Comment.vue index 14d0a9be3..33fd0cc92 100644 --- a/js/src/components/Comment/Comment.vue +++ b/js/src/components/Comment/Comment.vue @@ -137,6 +137,7 @@ ref="commentEditor" v-model="newComment.text" mode="comment" + :aria-label="$t('Comment body')" />

@@ -30,9 +31,11 @@

- {{ - $t("Notify participants") - }} + {{ $t("Notify participants") }}
diff --git a/js/src/components/Discussion/DiscussionComment.vue b/js/src/components/Discussion/DiscussionComment.vue index c3d27c968..3dd5706e6 100644 --- a/js/src/components/Discussion/DiscussionComment.vue +++ b/js/src/components/Discussion/DiscussionComment.vue @@ -88,7 +88,7 @@ {{ $t("[This comment has been deleted by it's author]") }}
- +
- {{ - $t("Copy details to clipboard") - }} + {{ $t("Copy details to clipboard") }}
diff --git a/js/src/components/Event/AddressAutoComplete.vue b/js/src/components/Event/AddressAutoComplete.vue index a3c806801..886c3fa13 100644 --- a/js/src/components/Event/AddressAutoComplete.vue +++ b/js/src/components/Event/AddressAutoComplete.vue @@ -31,6 +31,7 @@ v-if="!gettingLocation" icon-right="target" @click="locateMe" + @keyup.enter="locateMe" >{{ $t("Use my location") }} {{ $t("Getting location") }} diff --git a/js/src/components/Event/EventFullDate.vue b/js/src/components/Event/EventFullDate.vue index 454a39496..33c1d6176 100644 --- a/js/src/components/Event/EventFullDate.vue +++ b/js/src/components/Event/EventFullDate.vue @@ -18,64 +18,97 @@ diff --git a/js/src/components/Event/EventMap.vue b/js/src/components/Event/EventMap.vue new file mode 100644 index 000000000..7ed79b3f2 --- /dev/null +++ b/js/src/components/Event/EventMap.vue @@ -0,0 +1,175 @@ + + + diff --git a/js/src/components/Event/EventMetadataSidebar.vue b/js/src/components/Event/EventMetadataSidebar.vue index af567ee76..1f94d5d05 100644 --- a/js/src/components/Event/EventMetadataSidebar.vue +++ b/js/src/components/Event/EventMetadataSidebar.vue @@ -7,25 +7,15 @@
{{ $t("No address defined") }}
-
-
-

- {{ physicalAddress.poiInfos.name }} -

-

- {{ physicalAddress.poiInfos.alternativeName }} -

-
-
- + {{ $t("Show map") }} + {{ $t("Show map") }} +
@@ -34,6 +24,8 @@ :beginsOn="event.beginsOn" :show-start-time="event.options.showStartTime" :show-end-time="event.options.showEndTime" + :timezone="event.options.timezone" + :userTimezone="userTimezone" :endsOn="event.endsOn" /> @@ -140,91 +132,12 @@ > {{ extra.value }} - - - diff --git a/js/src/components/Event/FullAddressAutoComplete.vue b/js/src/components/Event/FullAddressAutoComplete.vue index b1af7d7a1..48f16eade 100644 --- a/js/src/components/Event/FullAddressAutoComplete.vue +++ b/js/src/components/Event/FullAddressAutoComplete.vue @@ -1,72 +1,89 @@