mobilizon.chapril.org-mobil.../js/src/components/Footer.vue
Tykayn 1a885f04c4 - **Notifications for various group and event activity, both by email and browser push notifications. Daily and weekly digests are also available.**
- Possibility for an event organizer to announce a (public) comment, triggering notifications for participants
 - Add a snackbar message to manually reload the UI when updates are available
 - Add blurhash support for some banners
 - Added basic metadata (start time & physical address) in the opengraph preview
 
 - **Interface improvements to events, comments, homepage and group pages**
 - **Various improvements to mobile views**
 - Make JWT access tokens short-lived
 - Disabled Cldr warning that the `Cldr.Plug.AcceptLanguage` plug didn't many any known locale
 - Replaced GraphiQL web interface with graphql-playground
 
 - Internet Explorer and other older browsers support. This allows us to provide lighter builds.
 
 - Fixed compatibility for previous OTP versions
 - Fixed the "member joined" activity event not being displayed in the group activity timeline
 - Fixed relay and anonymous actor telling they automatically approve followers
 - Fixed mix tasks showing output from all error levels
 - Fixed missing metadata on some pages
 - Fixed some config values being defined at compile-time instead of runtime
 - Fixed missing pagination for group resources
 - Fixed missing `.ics` suffix for email event attachments
 - Fixed missing unique index on posts URL
 - Fixed creating events from group page not always auto-selecting the correct organizer actor
 - Fixed error when deleting actor with type different from Person or Group
 - Fixed not defaulting to UTC timezone when user has no tz setting in their activity recaps
 - Fixed Sentry loading itself even if not configured
 - Fixed showing proper message when anonymous participation was confirmed but just wasn't saved in browser
 - Fixed editing some event properties
 - Fixed group image ratio in admin dashboard
 - Fix GraphiQL CSP headers
 
 - Finnish
 - French
 - Galician
 - Italian
 - Occitan
 - Russian
 - Spanish
 - Swedish
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEExMITpfxOHHCvHn8FoGG53eDKB3MFAmDa7ZsACgkQoGG53eDK
 B3NExQ/9FeFE4V5p53oHQVdzJVmvVSU0Dh4/Nwp3VDRkm5yB1TAxe6SuMxAxEYLC
 v7nKaaXo6Kx2C96lSZlp+CZYorHsCa9X31PlfKpOBWQYqW2SqnyRAuiljVTRtheq
 3EVcFkYxhA9c5KctfQL4YKVBP2UUs9fbmh2icEy28veFSScq20/JMhq90NCZeaH0
 IBVrlVLc6Wax70d1xfjVHaePl/4kP08WU7VL30Q1XIFMdEnhOGwYTR68rHnSKxXi
 g/hiqMZEhcGL39U7icpXA9fEFCwuTl2MD8dB+ttquRt+szJy/r2xu65hxMwk589a
 EipaVfBcuYOsWo7HfVzhMgf754V4paRuQ09SDEU0/UYuy/spyZjshxYGgSRRnWQ3
 WZ1FT0ulbdkNMgAdPm9ZTdRROdJN0zca2/K80nWT3FxOXP0TSUzeaNyxEHmCuMIE
 f1c8uwHnPy8Fp6LA0PbflWoCgHDwnka50If143IUFm35hHpzcGdDLiPthDpV1Npd
 IqPiKMuuV9hZ4mJpHC38LbciAju53XDqNIgvynIPz5hmh/gXPA5ray3GArQ9DtXk
 eGYepGm4luIt5eeWOoGbKZ8ovk93iD+FIGu/7ftEBoHmBAgGFZgn9uYwL/DJgTsC
 m5XD+qoY0cch2VOgurLUIFzZcwa6cwBNwNeBGcv7i4EFtT700YE=
 =VUfI
 -----END PGP SIGNATURE-----

Merge tag '1.2.0' into osm-theme

- **Notifications for various group and event activity, both by email and browser push notifications. Daily and weekly digests are also available.**
- Possibility for an event organizer to announce a (public) comment, triggering notifications for participants
- Add a snackbar message to manually reload the UI when updates are available
- Add blurhash support for some banners
- Added basic metadata (start time & physical address) in the opengraph preview

- **Interface improvements to events, comments, homepage and group pages**
- **Various improvements to mobile views**
- Make JWT access tokens short-lived
- Disabled Cldr warning that the `Cldr.Plug.AcceptLanguage` plug didn't many any known locale
- Replaced GraphiQL web interface with graphql-playground

- Internet Explorer and other older browsers support. This allows us to provide lighter builds.

- Fixed compatibility for previous OTP versions
- Fixed the "member joined" activity event not being displayed in the group activity timeline
- Fixed relay and anonymous actor telling they automatically approve followers
- Fixed mix tasks showing output from all error levels
- Fixed missing metadata on some pages
- Fixed some config values being defined at compile-time instead of runtime
- Fixed missing pagination for group resources
- Fixed missing `.ics` suffix for email event attachments
- Fixed missing unique index on posts URL
- Fixed creating events from group page not always auto-selecting the correct organizer actor
- Fixed error when deleting actor with type different from Person or Group
- Fixed not defaulting to UTC timezone when user has no tz setting in their activity recaps
- Fixed Sentry loading itself even if not configured
- Fixed showing proper message when anonymous participation was confirmed but just wasn't saved in browser
- Fixed editing some event properties
- Fixed group image ratio in admin dashboard
- Fix GraphiQL CSP headers

- Finnish
- French
- Galician
- Italian
- Occitan
- Russian
- Spanish
- Swedish
2021-06-30 11:20:20 +02:00

214 lines
5.5 KiB
Vue

<template>
<footer class="footer" ref="footer">
<!-- <img :src="`/img/pics/footer_${random}.jpg`" alt="" />-->
<div class="has-text-centered">
<div class="columns">
<div class="column">
<ul>
<li class="footer-section-link-wrapper site-web">
<a class="footer-section-link" href="https://openstreetmap.fr" target="">
Site web FR
</a>
</li>
<li class="footer-section-link-wrapper umap">
<a class="footer-section-link" href="https://umap.openstreetmap.fr" target="">
uMap
</a>
</li>
<li class="footer-section-link-wrapper osmose">
<a class="footer-section-link" href="https://osmose.openstreetmap.fr" target="">
Osmose
</a>
</li>
<li class="footer-section-link-wrapper mobilizon">
<a class="footer-section-link" href="https://mobilizon.openstreetmap.fr/" target="">
Mobilizon
</a>
</li>
<li class="footer-section-link-wrapper peertube">
<a class="footer-section-link" href="https://peertube.openstreetmap.fr/" target="">
Peertube
</a>
</li>
</ul>
</div>
<div class="column">
<ul>
<li class="footer-section-link-wrapper site-web">
<a class="footer-section-link" href="https://openstreetmap.org" target="">
Openstreetmap.org
</a>
</li>
<li class="footer-section-link-wrapper fondation">
<a class="footer-section-link" href="https://wiki.osmfoundation.org/wiki/Main_Page" target="">
Fondation
</a>
</li>
</ul>
</div>
</div>
</div>
<a href="https://openstreetmap.fr">
<h1 class="title is-1">OpenStreetMap.fr</h1>
</a>
<picture>
<source
:srcset="`/img/pics/footer_${random}-1024w.webp 1x, /img/pics/footer_${random}-1920w.webp 2x`"
type="image/webp"
/>
<source
:srcset="`/img/pics/footer_${random}-1024w.jpg 1x, /img/pics/footer_${random}-1920w.jpg 2x`"
type="image/jpeg"
/>
<img
:src="`/img/pics/footer_${random}-1024w.jpg`"
alt=""
width="5234"
height="2189"
loading="lazy"
/>
</picture>
<ul>
<li>
<b-select
v-if="$i18n"
v-model="locale"
:placeholder="$t('Select a language')"
>
<option v-for="(language, lang) in langs" :value="lang" :key="lang">
{{ language }}
</option>
</b-select>
</li>
<li>
<router-link :to="{ name: RouteName.ABOUT }">{{
$t("About")
}}
</router-link>
</li>
<li>
<router-link :to="{ name: RouteName.TERMS }">{{
$t("Terms")
}}
</router-link>
</li>
<li>
<a
hreflang="en"
href="https://framagit.org/framasoft/mobilizon/blob/master/LICENSE"
>
{{ $t("License") }}
</a>
</li>
</ul>
<div class="content has-text-centered">
<i18n
tag="span"
path="Powered by {mobilizon}. © 2018 - {date} The Mobilizon Contributors - Made with the financial support of {contributors}."
>
<a slot="mobilizon" href="https://joinmobilizon.org">{{
$t("Mobilizon")
}}</a>
<span slot="date">{{ new Date().getFullYear() }}</span>
<a href="https://joinmobilizon.org/hall-of-fame" slot="contributors">{{
$t("more than 1360 contributors")
}}</a>
</i18n>
</div>
</footer>
</template>
<script lang="ts">
import {Component, Vue, Watch} from "vue-property-decorator";
import {saveLocaleData} from "@/utils/auth";
import {loadLanguageAsync} from "@/utils/i18n";
import RouteName from "../router/name";
import langs from "../i18n/langs.json";
@Component
export default class Footer extends Vue {
RouteName = RouteName;
locale: string | null = this.$i18n.locale;
langs: Record<string, string> = langs;
// eslint-disable-next-line class-methods-use-this
get random(): number {
return Math.floor(Math.random() * 4) + 1;
}
@Watch("locale")
// eslint-disable-next-line class-methods-use-this
async updateLocale(locale: string): Promise<void> {
if (locale) {
await loadLanguageAsync(locale);
saveLocaleData(locale);
}
}
@Watch("$i18n.locale", {deep: true})
updateLocaleFromI18n(locale: string): void {
if (locale) {
this.locale = locale;
}
}
}
</script>
<style lang="scss" scoped>
@import "~bulma/sass/utilities/mixins.sass";
footer.footer {
color: white;
background: $primary;
display: flex;
flex-direction: column;
align-items: center;
font-size: 14px;
padding: 1rem 1.5rem;
img {
flex: 1;
max-width: 40rem;
@include mobile {
max-width: 100%;
}
}
div.content {
flex: 1;
padding-top: 10px;
}
ul {
display: inline-flex;
flex-wrap: wrap;
justify-content: space-around;
li {
display: inline-flex;
margin: auto 5px;
a {
font-size: 1.1rem;
}
}
}
a {
color: $white;
text-decoration: underline;
text-decoration-color: $secondary;
}
::v-deep span.select {
select,
option {
background: $background-color;
color: $white;
}
}
}
</style>