Compare commits

...

36 commits

Author SHA1 Message Date
778a69cd d4dd0cfd0a set name and short_name in manifest.json to Rotes Potsdam 2023-08-08 21:10:54 +02:00
778a69cd fb05ee1c2f change page title from Mobilizon to rotes.potsda.mn 2023-08-08 21:10:54 +02:00
778a69cd 4a9dbfb4e0 use rotespotsdamn favicon
convert -resize x16 -gravity center -crop 16x16+0+0 -flatten -colors 256 favicon.svg js/public/img/icons/favicon-16x16.png
convert -resize x32 -gravity center -crop 32x32+0+0 -flatten -colors 256 favicon.svg js/public/img/icons/favicon-32x32.png

convert -resize x16 -gravity center -crop 16x16+0+0 -flatten -colors 256 favicon.svg favicon-16x16.ico
convert -resize x32 -gravity center -crop 32x32+0+0 -flatten -colors 256 favicon.svg favicon-32x32.ico
convert -resize x48 -gravity center -crop 48x48+0+0 -flatten -colors 256 favicon.svg favicon-48x48.ico
convert favicon-16x16.ico favicon-32x32.ico favicon-48x48.ico js/public/favicon.ico

convert -resize x180 favicon.svg js/public/img/icons/apple-touch-icon.png
convert -resize x180 favicon.svg js/public/img/icons/apple-touch-icon-180x180.png
convert -resize x152 favicon.svg js/public/img/icons/apple-touch-icon-152x152.png
convert -resize x120 favicon.svg js/public/img/icons/apple-touch-icon-120x120.png
convert -resize x76  favicon.svg js/public/img/icons/apple-touch-icon-76x76.png
convert -resize x60  favicon.svg js/public/img/icons/apple-touch-icon-60x60.png
2023-08-08 21:10:54 +02:00
778a69cd 897d08e18d red color in sitebar 2023-08-08 21:10:54 +02:00
778a69cd 6a123d0dad add custom rotes.potsda.mn logo
`npx prettier --write js/src/components/Logo.vue` did the trick.
2023-08-08 21:10:54 +02:00
778a69cd bb4c85f603 new layout for calendar icon, show weekday
Co-authored-by: unkonkret <unkonkret@systemli.org>
(cherry picked from commit 74457ba861)
2023-08-08 21:10:39 +02:00
778a69cd f514ddd726 use nixos-unstable again, with latest nodejs 2023-08-08 20:52:25 +02:00
778a69cd f6a1b2822d include nodejs in devShell 2023-05-24 17:04:33 +02:00
778a69cd 9e82a9d9af Avoid confusing for users trying to create events for a group, when they don't have enough privileges 2023-05-24 17:04:33 +02:00
jona 053e0010a0 simplified base structure:
now 99 events
2023-04-23 02:20:55 +02:00
jona 187b3a5064 simplified base structure:
startpage shows up to 161 events sorted by date,
"explore" and "view everything" renamed to "filter" --- finally working !!!
2023-04-23 02:20:48 +02:00
778a69cd a129d71b29 revert all changes that lead to configurable homepage sorting, except!
for the changes to elixir code, as it turns out altering the graphql
schema will break existing web clients. We have to remove that change
later in a few months from now (2023-04-23).

Revert "make i18n work for upstream PR https://framagit.org/framasoft/mobilizon/-/merge_requests/1236"

This reverts commit fc2c2db21c9b6e00c2142552f10d7cd2de27fd1d.

Revert "fixup a detail for upstream PR https://framagit.org/framasoft/mobilizon/-/merge_requests/1236"

This reverts commit e34f9d1796d07f228da60ee770f795ce42c3423e.

Revert "Changed interface to consts"

This reverts commit e40558ce7895d29bf831df68520ea0e95fd8667c.

Revert "Extracting sorting modes into its own model"

This reverts commit 839f9fd3f23027bfc00551f22ab0e52c5b63087f.

Revert "Reformatted ex files"

This reverts commit 8e4f698532889323c8b649fe421f413ac3dc3a75.

Revert "Small changes to get it actually working"

This reverts commit 47a6d0e2f27bb42ec09702397bf6094b113b3c91.

Revert "Added option to change sorting on homepage to upcoming"

This reverts commit fa6d875bb47e9e21fd82c3eed7d0a7303e32ddfb.

Revert "increase amount of displayed events on start page"

This reverts commit e84ed5fb7a480fe4ac13a8617542199ad7040154.
2023-04-23 02:19:34 +02:00
summersamara 595a3dca8b add elixir version 1.13.4 to Dockerfile for dev 2023-04-05 00:41:47 +02:00
778a69cd 70c38863a9 use yarn with an older nodejs version in devShell 2023-04-05 00:41:47 +02:00
778a69cd 2f7b1898de use nixpkgs from september 2022 for nix devShell 2023-04-05 00:41:47 +02:00
778a69cd 60fa49a7b1 init nix flake 2023-04-03 13:56:49 +02:00
778a69cd aaee131f1d show events until their end time, unless they have no end time 2023-04-03 13:56:49 +02:00
778a69cd 13306dc1bc increase amount of displayed events on start page 2023-04-03 13:56:49 +02:00
778a69cd 8289eea9c8 fix wrong link in instance follow request email
this is upstreamable
2023-04-03 13:56:49 +02:00
778a69cd f1304b7df8 make i18n work for upstream PR https://framagit.org/framasoft/mobilizon/-/merge_requests/1236 2023-04-03 13:56:49 +02:00
778a69cd ce6ffc4e66 fixup a detail for upstream PR https://framagit.org/framasoft/mobilizon/-/merge_requests/1236 2023-04-03 13:56:49 +02:00
Luca Eichler 19561da63d Changed interface to consts
(cherry picked from commit 238f4f28a31944f98feddedf5fa24714c4328ebc)

upstream PR is https://framagit.org/framasoft/mobilizon/-/merge_requests/1236
2023-04-03 13:56:49 +02:00
Gitea 03b2e1f634 Extracting sorting modes into its own model
(cherry picked from commit da2ae333c9310645f2e8a08532ba032c00ed25c2)

upstream PR is https://framagit.org/framasoft/mobilizon/-/merge_requests/1236
2023-04-03 13:56:49 +02:00
Gitea 8e5093ab41 Reformatted ex files
(cherry picked from commit 8bc216e559975b4111f7f62a9410387578e00811)

upstream PR is https://framagit.org/framasoft/mobilizon/-/merge_requests/1236
2023-04-03 13:56:49 +02:00
Gitea 750072b3b1 Small changes to get it actually working
(cherry picked from commit d16e9f5235652e1121ea5d1d3cde742290ee83f7)

upstream PR is https://framagit.org/framasoft/mobilizon/-/merge_requests/1236
2023-04-03 13:56:49 +02:00
Gitea 3aa10b77b3 Added option to change sorting on homepage to upcoming
(cherry picked from commit f09ede2b820dbce04c036abf582260eafba02795)

upstream PR is https://framagit.org/framasoft/mobilizon/-/merge_requests/1236
2023-04-03 13:56:49 +02:00
778a69cd a2d12990a4 add Mobilizon version to instance config 2023-04-03 13:56:49 +02:00
778a69cd 45f030f227 remove long description on start page for users, that are not logged in 2023-04-03 13:56:49 +02:00
778a69cd f7749a1e2b Revert "default anonymous participation in events to true"
This reverts commit 3a1b7a4660b4fd9488e7d06e677027ae41e0c10c.
2023-04-03 13:56:49 +02:00
778a69cd 3bf5e7a95f default anonymous participation in events to true 2023-04-03 13:56:49 +02:00
778a69cd dbd91b1a21 Use our own categories for event creation 2023-04-03 13:56:49 +02:00
778a69cd d1228ca43f add smoke-free as a metadata option for events
This is upstreamable!
2023-04-03 13:56:49 +02:00
778a69cd 62afefa47e remove pictures for error and 404 site 2023-04-03 13:56:49 +02:00
778a69cd e1c75ceecd removed images in "Meine Veranstaltungen" and "Meine Gruppen" 2023-04-03 13:56:49 +02:00
778a69cd 0f6296d164 remove homepage picture from / 2023-04-03 13:56:49 +02:00
778a69cd 158d36d6ec remove picture and logo in footer 2022-05-18 16:25:01 +02:00
49 changed files with 437 additions and 297 deletions

View file

@ -1,4 +1,4 @@
FROM elixir:alpine FROM elixir:1.13.4-alpine
RUN apk add --no-cache inotify-tools postgresql-client yarn file make gcc libc-dev argon2 imagemagick cmake build-base libwebp-tools bash ncurses git python3 RUN apk add --no-cache inotify-tools postgresql-client yarn file make gcc libc-dev argon2 imagemagick cmake build-base libwebp-tools bash ncurses git python3

27
flake.lock Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1691368598,
"narHash": "sha256-ia7li22keBBbj02tEdqjVeLtc7ZlSBuhUk+7XTUFr14=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5a8e9243812ba528000995b294292d3b5e120947",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

27
flake.nix Normal file
View file

@ -0,0 +1,27 @@
{
description = "A very basic flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = { self, nixpkgs }: {
packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
packages.x86_64-linux.default = self.packages.x86_64-linux.hello;
devShells.x86_64-linux.default = let
pkgs = import nixpkgs { system = "x86_64-linux"; };
in pkgs.mkShell {
buildInputs = with pkgs; [
elixir
cmake
imagemagick
(yarn.override {
nodejs = nodejs-18_x;
})
nodejs-18_x
];
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 B

After

Width:  |  Height:  |  Size: 902 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,015 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -1 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60"><path style="opacity:1;fill:#fea72b;fill-opacity:1;stroke:none;stroke-opacity:1" d="M-5.801-6.164h72.69v72.871h-72.69z"/><g data-name="Calque 2"><g data-name="header"><path d="M26.58 27.06q0 8-4.26 12.3a12.21 12.21 0 0 1-9 3.42 12.21 12.21 0 0 1-9-3.42Q0 35.1 0 27.06q0-8.04 4.26-12.3a12.21 12.21 0 0 1 9-3.42 12.21 12.21 0 0 1 9 3.42q4.32 4.24 4.32 12.3zM13.29 17q-5.67 0-5.67 10.06t5.67 10.08q5.71 0 5.71-10.08T13.29 17z" style="fill:#3a384c;fill-opacity:1" transform="translate(14.627 5.256) scale(1.15671)"/><path d="M9 6.78a7.37 7.37 0 0 1-.6-3 7.37 7.37 0 0 1 .6-3A8.09 8.09 0 0 1 12.83 0a7.05 7.05 0 0 1 3.69.84 7.37 7.37 0 0 1 .6 3 7.37 7.37 0 0 1-.6 3 7.46 7.46 0 0 1-3.87.84A6.49 6.49 0 0 1 9 6.78z" style="fill:#fff" transform="translate(14.627 5.256) scale(1.15671)"/></g></g></svg> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
viewBox="0 0 500.00002 499.99999"
id="svg38"
width="500"
height="500"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs42" />
<title
id="title2">Mobilizon Logo</title>
<path
fill="#364749"
d="m 484.82933,247.19704 c 0,-128.76105 -104.4186,-233.179683 -233.17969,-233.179683 -128.76108,0 -233.179685,104.418633 -233.179685,233.179683 0,128.76105 104.418605,233.17969 233.179685,233.17969 128.76109,0 233.17969,-104.41864 233.17969,-233.17969 z"
id="path34"
style="stroke-width:10" />
<path
fill="#e08c96"
d="M 362.55369,400.8653 320.16593,270.60047 431.06961,189.96033 H 294.03778 L 251.65001,59.695505 209.26225,189.96033 H 72.230412 L 183.13409,270.60047 140.74633,400.8653 251.65001,320.31915 Z"
id="path36"
style="stroke-width:10" />
<metadata
id="metadata60">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>Mobilizon Logo</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

Before

Width:  |  Height:  |  Size: 857 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -70,7 +70,7 @@ import { Route } from "vue-router";
}, },
metaInfo() { metaInfo() {
return { return {
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -2,29 +2,6 @@
<div class="container section" id="error-wrapper"> <div class="container section" id="error-wrapper">
<div class="column"> <div class="column">
<section> <section>
<div class="picture-wrapper">
<picture>
<source
srcset="
/img/pics/error-480w.webp 1x,
/img/pics/error-1024w.webp 2x
"
type="image/webp"
/>
<source
srcset="/img/pics/error-480w.jpg 1x, /img/pics/error-1024w.jpg 2x"
type="image/jpeg"
/>
<img
:src="`/img/pics/error-480w.jpg`"
alt=""
width="480"
height="312"
loading="lazy"
/>
</picture>
</div>
<b-message type="is-danger" class="is-size-5"> <b-message type="is-danger" class="is-size-5">
<h1> <h1>
{{ {{
@ -197,7 +174,7 @@ import RouteName from "@/router/name";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
title: this.$t("Error") as string, title: this.$t("Error") as string,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -19,6 +19,7 @@
> >
<div class="datetime-container-header" /> <div class="datetime-container-header" />
<div class="datetime-container-content"> <div class="datetime-container-content">
<time :datetime="dateObj.toISOString()" class="wkday">{{ wkday }}</time>
<time :datetime="dateObj.toISOString()" class="day">{{ day }}</time> <time :datetime="dateObj.toISOString()" class="day">{{ day }}</time>
<time :datetime="dateObj.toISOString()" class="month">{{ month }}</time> <time :datetime="dateObj.toISOString()" class="month">{{ month }}</time>
</div> </div>
@ -39,6 +40,10 @@ export default class DateCalendarIcon extends Vue {
return new Date(this.$props.date); return new Date(this.$props.date);
} }
get wkday(): string {
return this.dateObj.toLocaleString(undefined, { weekday: "short" });
}
get month(): string { get month(): string {
return this.dateObj.toLocaleString(undefined, { month: "short" }); return this.dateObj.toLocaleString(undefined, { month: "short" });
} }
@ -62,17 +67,17 @@ div.datetime-container {
overflow-y: hidden; overflow-y: hidden;
overflow-x: hidden; overflow-x: hidden;
align-items: stretch; align-items: stretch;
width: calc(40px * var(--small)); width: calc(55px * var(--small));
box-shadow: 0 0 12px rgba(0, 0, 0, 0.2); box-shadow: 0 0 12px rgba(0, 0, 0, 0.2);
height: calc(40px * var(--small)); height: calc(55px * var(--small));
background: #fff; background: #fff;
.datetime-container-header { .datetime-container-header {
height: calc(10px * var(--small)); height: calc(12px * var(--small));
background: #f3425f; background: #f3425f;
} }
.datetime-container-content { .datetime-container-content {
height: calc(30px * var(--small)); height: calc(43px * var(--small));
} }
time { time {
@ -80,6 +85,13 @@ div.datetime-container {
font-weight: 600; font-weight: 600;
color: $violet-3; color: $violet-3;
&.wkday {
padding: 2px 0;
font-size: 12px;
line-height: 12px;
text-transform: uppercase;
}
&.month { &.month {
padding: 2px 0; padding: 2px 0;
font-size: 12px; font-size: 12px;

View file

@ -125,7 +125,14 @@
</div> </div>
</div> </div>
<div v-else class="content has-text-grey-dark has-text-centered"> <div v-else class="content has-text-grey-dark has-text-centered">
<p>{{ $t("Your profile will be shown as contact.") }}</p> <p>
{{ $t("Your profile will be shown as contact.") }}
{{
$t(
"To create an event for a group you have to be at least a moderator in that group."
)
}}
</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,22 +1,5 @@
<template> <template>
<footer class="footer" ref="footer"> <footer class="footer" ref="footer">
<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> <ul>
<li> <li>
<b-select <b-select

View file

@ -1,29 +1,63 @@
<template> <template>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 248.16 46.78"> <svg
version="1.1"
viewBox="0 0 185.20838 50.566668"
xmlns="http://www.w3.org/2000/svg"
>
<title>Mobilizon Logo</title> <title>Mobilizon Logo</title>
<g data-name="header"> <path
<path d="m 67.583808,14.935339 v 8.401893 H 62.398996 V 8.376241 h 4.560136 l 0.312338,0.9057802 h 0.124935 Q 68.114782,8.4699424 68.83316,8.2513058 69.582771,8.0014354 71.238162,8.0014354 l -0.218636,4.9974086 h -1.436755 q -1.218118,0 -1.624158,0.374805 -0.374805,0.374806 -0.374805,1.56169 z"
d="M0 45.82l3.18-40.8a29.88 29.88 0 015.07-.36 27.74 27.74 0 014.95.36l4.86 17.16a92.19 92.19 0 012.34 10.08h.36a92.19 92.19 0 012.34-10.08L28 5.02a29.23 29.23 0 015-.36 29.23 29.23 0 015 .36l3.18 40.8a13.61 13.61 0 01-3.63.42 23.41 23.41 0 01-3.63-.24l-1.2-19.92q-.36-5.52-.48-12.84h-.44l-7.32 26.51a25.62 25.62 0 01-4 .3 23.36 23.36 0 01-3.84-.3L9.36 13.24H9q-.3 8.94-.48 12.84L7.26 46a22.47 22.47 0 01-3.6.24A13.75 13.75 0 010 45.82zM74 31.06q0 8-4.26 12.3a12.21 12.21 0 01-9 3.42 12.21 12.21 0 01-9-3.42q-4.26-4.26-4.26-12.3t4.24-12.31a12.21 12.21 0 019-3.42 12.21 12.21 0 019 3.42Q74 23.02 74 31.06zM60.75 20.98q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM103.2 19.75q2.7 4.11 2.7 11.28T102 42.31a13.18 13.18 0 01-10 4.11 31.41 31.41 0 01-11.34-2V2.2l.4-.45h2.76A4 4 0 0187 2.83a5.38 5.38 0 01.93 3.57v11.94a12.08 12.08 0 017.56-2.7 8.71 8.71 0 017.71 4.11zm-9.72 2a7.28 7.28 0 00-5.58 2.82v16a15 15 0 004.08.54 5.25 5.25 0 004.68-2.67q1.68-2.67 1.68-7.59 0-9.03-4.86-9.1zM121 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014 1.62A6.27 6.27 0 01121 22z" />
/> <path
<path d="m 71.925297,15.809886 q 0,-4.122862 1.56169,-5.9656563 1.592924,-1.8427943 4.934941,-1.8427943 3.373251,0 4.903707,1.8115605 1.530456,1.8115601 1.530456,5.9656561 0,4.122862 -1.499222,5.99689 -1.499223,1.874028 -4.903707,1.874028 -3.404484,0 -4.966175,-1.874028 -1.56169,-1.874028 -1.56169,-5.965656 z m 7.496113,-2.967211 q -0.187403,-0.624676 -0.999482,-0.624676 -0.812079,0 -1.030715,0.624676 -0.218637,0.624676 -0.218637,2.623639 v 0.749611 q 0,2.2176 0.218637,2.87351 0.218636,0.65591 0.999481,0.65591 0.812079,0 1.030716,-0.65591 0.218637,-0.65591 0.218637,-2.686107 v -0.90578 q 0,-2.030197 -0.218637,-2.654873 z"
d="M119.82.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" />
fill="#fff" <path
/> d="m 94.913322,23.368466 q -2.311302,0.281104 -4.029161,0.281104 -1.686625,0 -2.654872,-0.874546 -0.937014,-0.905781 -0.937014,-3.092147 V 12.436635 H 85.793052 V 8.5636438 h 1.749093 L 87.823249,5.690134 h 4.716304 v 2.8735098 h 2.779808 l -0.218637,3.8729912 h -2.592405 v 6.215527 q 0,0.65591 0.624676,0.65591 0.06247,0 1.936496,-0.0937 z"
<path />
d="M139.08 40.42h2a10.23 10.23 0 01.6 3.18 9.24 9.24 0 01-.18 2.1 38.47 38.47 0 01-5.64.54q-6.48 0-6.48-7v-37l.36-.42h2.88a3.94 3.94 0 013.12 1.05 5.52 5.52 0 01.9 3.57v31.31q-.02 2.67 2.44 2.67zM155.94 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014.05 1.62 6.27 6.27 0 011.43 4.39z" <path
/> d="m 102.62805,12.467869 q -0.81208,0 -1.06195,0.562208 -0.24987,0.530975 -0.24987,1.655392 h 2.71734 v -0.749611 q 0,-1.467989 -1.40552,-1.467989 z m 0.12494,-4.4664336 q 3.21708,0 4.59137,1.5616901 1.40552,1.5304565 1.40552,4.4039665 0,0.374805 -0.21864,3.37325 h -7.12131 q 0,2.342535 2.15514,2.342535 1.03071,0 4.02916,-0.718377 l 0.43727,3.872991 q -2.62364,0.812079 -5.24728,0.812079 -3.21708,0 -4.93494,-2.092665 -1.717859,-2.123898 -1.717859,-5.747019 0,-7.8084506 6.621569,-7.8084506 z"
<path />
d="M154.8 2.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" <path
fill="#fff" d="m 109.37454,12.811441 q 0,-2.280068 1.37428,-3.5294198 1.40552,-1.2805858 3.84176,-1.2805858 2.43624,0 4.93494,0.624676 l -0.53097,4.3414986 q -3.18585,-0.718378 -4.27903,-0.718378 -0.65591,0 -0.65591,0.530975 0,0.343572 0.71837,0.624676 2.49871,0.90578 3.74806,2.061431 1.28059,1.155651 1.28059,3.466952 0,2.311301 -1.18689,3.52942 -1.18688,1.186884 -3.65435,1.186884 -2.43624,0 -4.87248,-0.624676 l 0.34357,-4.216563 q 3.12339,0.843312 4.02917,0.843312 0.93701,0 0.93701,-0.437273 0,-0.437273 -0.68714,-0.687143 -2.77981,-1.06195 -4.0604,-2.248834 -1.28058,-1.218118 -1.28058,-3.466952 z"
/> />
<path <path
d="M163.08 39.22l8.76-11.82q1.32-1.8 4.8-5.7l-.18-.3a63.09 63.09 0 01-7.74.42H163a9.79 9.79 0 01-.24-2.34 15.8 15.8 0 01.42-3.3h20.4a16.31 16.31 0 011 4.26 4.1 4.1 0 01-.78 2.34L175 34.66a64.65 64.65 0 01-4.56 5.7l.18.24q3.12-.3 5.22-.3h2.58a15.35 15.35 0 006.12-.9 9.4 9.4 0 01.72 3.12q0 3.42-4.32 3.42h-18a14.27 14.27 0 01-.9-3.93 5.08 5.08 0 011.04-2.79zM215.88 31.06q0 8-4.26 12.3a13.63 13.63 0 01-18.06 0q-4.26-4.26-4.26-12.3t4.26-12.31a13.63 13.63 0 0118.06 0q4.26 4.27 4.26 12.31zm-13.29-10.08q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM247 25.84v13.32a11 11 0 001.2 5.64 7 7 0 01-4.41 1.56q-2.43 0-3.33-1.14a5.69 5.69 0 01-.9-3.54V27.4a7.74 7.74 0 00-.72-3.87 2.78 2.78 0 00-2.58-1.17 8.62 8.62 0 00-6.3 3v20.58a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3v-29.7l.42-.36h2.76q3.42 0 4.08 3.6 4.38-3.84 8.73-3.84t6.42 2.82a12.17 12.17 0 012.07 7.38z" d="m 122.27406,21.213334 q 0,-1.249353 0.65591,-1.842795 0.65591,-0.624676 2.09267,-0.624676 1.43675,0 2.09266,0.624676 0.65591,0.593442 0.65591,1.905262 0,2.405003 -2.74857,2.405003 -2.74858,0 -2.74858,-2.46747 z"
/> />
<path <path
d="M57.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84zM198.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84z" d="m 67.636696,46.298215 v 4.641771 H 62.367659 V 31.620182 h 4.328137 l 0.313634,0.9409 h 0.156816 q 0.878173,-1.285896 3.449965,-1.285896 2.571792,0 3.606781,1.787709 1.066353,1.787709 1.066353,5.86494 0,4.077231 -1.129079,6.084484 -1.097716,1.975889 -4.077231,1.975889 -1.379986,0 -2.320886,-0.689993 z m 2.195432,-4.359501 q 0.125453,-0.56454 0.156817,-1.097716 0.03136,-0.533177 0.03136,-2.007253 0,-1.505439 -0.219543,-2.289522 -0.219543,-0.815446 -0.909536,-0.815446 -0.65863,0 -1.31726,0.37636 v 6.492206 q 0.595903,0.28227 1.12908,0.28227 0.564539,0 0.784083,-0.18818 0.250906,-0.219543 0.344996,-0.752719 z"
fill="#fff" />
/> <path
</g> d="m 76.732045,39.084652 q 0,-4.139958 1.568166,-5.990394 1.599529,-1.850436 4.955404,-1.850436 3.387238,0 4.924041,1.819073 1.536802,1.819072 1.536802,5.990393 0,4.139958 -1.505439,6.021757 -1.505439,1.881799 -4.924041,1.881799 -3.418601,0 -4.986767,-1.881799 -1.568166,-1.881799 -1.568166,-5.990393 z m 7.527196,-2.979515 q -0.18818,-0.627267 -1.003626,-0.627267 -0.815446,0 -1.034989,0.627267 -0.219544,0.627266 -0.219544,2.634518 v 0.75272 q 0,2.226795 0.219544,2.885425 0.219543,0.65863 1.003626,0.65863 0.815446,0 1.034989,-0.65863 0.219543,-0.65863 0.219543,-2.697245 v -0.909536 q 0,-2.038616 -0.219543,-2.665882 z"
/>
<path
d="m 99.815392,46.674575 q -2.320885,0.282269 -4.045868,0.282269 -1.693619,0 -2.665882,-0.878172 -0.940899,-0.909537 -0.940899,-3.104969 v -7.27629 h -1.505439 v -3.889051 h 1.756345 l 0.28227,-2.885425 h 4.735861 v 2.885425 h 2.79134 l -0.21955,3.889051 h -2.603153 v 6.241301 q 0,0.658629 0.627266,0.658629 0.06273,0 1.944526,-0.09409 z"
/>
<path
d="m 100.47401,36.073773 q 0,-2.289522 1.37998,-3.544055 1.41135,-1.285896 3.85769,-1.285896 2.44634,0 4.9554,0.627267 l -0.53317,4.359501 q -3.19906,-0.721356 -4.29678,-0.721356 -0.65863,0 -0.65863,0.533176 0,0.344996 0.72136,0.627266 2.50906,0.909536 3.7636,2.069979 1.28589,1.160443 1.28589,3.481328 0,2.320886 -1.1918,3.544055 -1.19181,1.191806 -3.66951,1.191806 -2.44634,0 -4.89268,-0.627266 l 0.345,-4.234048 q 3.13633,0.84681 4.04587,0.84681 0.9409,0 0.9409,-0.439087 0,-0.439086 -0.69,-0.689993 -2.79133,-1.066352 -4.07723,-2.258159 -1.28589,-1.223169 -1.28589,-3.481328 z"
/>
<path
d="m 125.31372,46.831391 -2.10134,0.125453 q -2.41498,0 -2.94815,-1.599529 h -0.15682 q -1.03499,1.599529 -3.16769,1.599529 -2.8227,0 -3.98315,-1.975889 -1.12907,-1.975889 -1.12907,-5.86494 0,-3.920415 1.28589,-5.896304 1.2859,-1.975889 3.70087,-1.975889 1.66226,0 2.57179,0.784083 v -5.48858 h 5.23768 v 15.493479 q 0,0.595903 0.25091,0.815446 0.2509,0.18818 0.90953,0.18818 z M 118.19425,35.66605 q -0.65863,0 -0.87817,0.815446 -0.21955,0.784083 -0.21955,2.289523 0,1.474075 0.0314,2.007252 0.0314,0.533176 0.12545,1.097716 0.12545,0.533176 0.345,0.75272 0.2509,0.18818 0.78408,0.18818 0.56454,0 1.16044,-0.28227 V 36.04241 q -0.65863,-0.37636 -1.34862,-0.37636 z"
/>
<path
d="m 138.29812,35.540597 -0.15682,6.492207 q 0,0.595903 0.28227,0.815446 0.31363,0.18818 1.03499,0.18818 l -0.47045,3.794961 q -1.81907,0.125453 -2.00725,0.125453 -2.32089,0 -2.94816,-1.599529 h -0.15681 q -1.16044,1.599529 -3.57542,1.599529 -1.85044,0 -2.85406,-1.191806 -0.97227,-1.191806 -0.97227,-3.261785 0,-2.603155 1.59953,-3.606781 1.6309,-1.003626 5.11222,-1.31726 v -0.752719 q 0,-0.878173 -0.87817,-0.878173 -1.50544,0 -4.7045,0.909536 l -0.78408,-4.579044 q 4.01451,-1.03499 6.68039,-1.03499 2.66588,0 3.73223,1.03499 1.06636,1.034989 1.06636,3.261785 z m -6.05312,7.746739 q 1.16044,0 1.16044,-1.223169 v -1.536803 q -1.16044,0.156817 -1.66226,0.501813 -0.47045,0.313634 -0.47045,1.097717 0,1.160442 0.97227,1.160442 z"
/>
<path
d="m 142.06168,44.510506 q 0,-1.254533 0.65863,-1.850436 0.65863,-0.627266 2.10134,-0.627266 1.44271,0 2.10134,0.627266 0.65863,0.595903 0.65863,1.913162 0,2.414976 -2.75997,2.414976 -2.75997,0 -2.75997,-2.477702 z"
/>
<path
d="m 162.66736,32.717898 q 1.72499,-1.474076 3.79497,-1.474076 2.06997,0 2.88542,0.972263 0.84681,0.9409 0.84681,2.854062 v 11.573064 h -5.33176 v -9.785355 q 0,-0.784083 -0.69,-0.784083 -0.87817,0 -1.47407,0.439087 v 10.130351 h -5.33177 v -9.785355 q 0,-0.784083 -0.68999,-0.784083 -0.87817,0 -1.47408,0.439087 v 10.130351 h -5.26903 V 31.620182 h 4.79858 l 0.31364,1.097716 h 0.12545 q 1.72498,-1.474076 4.07723,-1.474076 2.38361,0 3.10497,1.756346 z"
/>
<path
d="m 177.31401,32.717898 q 1.72498,-1.474076 3.79496,-1.474076 2.06998,0 2.88543,0.972263 0.8468,0.9409 0.8468,2.854062 v 11.573064 h -5.33176 v -9.785355 q 0,-0.784083 -0.68999,-0.784083 -0.87818,0 -1.47408,0.439087 v 10.130351 h -5.26904 V 31.620182 h 4.79859 l 0.31364,1.097716 z"
/>
<path
fill="#364749"
d="m 46.702083,23.384067 c 0,-12.876105 -10.441863,-23.3179686 -23.317968,-23.3179686 -12.876106,0 -23.31796927,10.4418636 -23.31796927,23.3179686 0,12.876105 10.44186327,23.317969 23.31796927,23.317969 12.876105,0 23.317968,-10.441864 23.317968,-23.317969 z"
/>
<path
fill="#e08c96"
d="M 34.474519,38.750893 30.235743,25.72441 41.326111,17.660396 H 27.622928 L 23.384151,4.6339132 19.145375,17.660396 H 5.4421914 L 16.532559,25.72441 12.293783,38.750893 23.384151,30.696278 Z"
/>
</svg> </svg>
</template> </template>

View file

@ -16,7 +16,7 @@
</template> </template>
<template slot="start"> <template slot="start">
<b-navbar-item tag="router-link" :to="{ name: RouteName.SEARCH }">{{ <b-navbar-item tag="router-link" :to="{ name: RouteName.SEARCH }">{{
$t("Explore") $t("Filter")
}}</b-navbar-item> }}</b-navbar-item>
<b-navbar-item <b-navbar-item
v-if="currentActor.id && currentUser.isLoggedIn" v-if="currentActor.id && currentUser.isLoggedIn"
@ -332,7 +332,7 @@ nav {
} }
svg { svg {
height: 1.75rem; height: 2.75rem;
} }
} }

View file

@ -388,6 +388,9 @@
"From the {startDate} to the {endDate}": "Vom {startDate} bis zum {endDate}", "From the {startDate} to the {endDate}": "Vom {startDate} bis zum {endDate}",
"From yourself": "Von Ihnen selbst", "From yourself": "Von Ihnen selbst",
"Fully accessible with a wheelchair": "Komplett barrierefrei für Rollstühle", "Fully accessible with a wheelchair": "Komplett barrierefrei für Rollstühle",
"Smoke free": "Rauchfrei",
"Whether smoking is prohibited during the event": "Während der Veranstaltung wird nicht geraucht",
"Smoking allowed": "Rauchen gestattet",
"Gather ⋅ Organize ⋅ Mobilize": "Treffen ⋅ Organisieren ⋅ Mobilisieren", "Gather ⋅ Organize ⋅ Mobilize": "Treffen ⋅ Organisieren ⋅ Mobilisieren",
"General": "Allgemein", "General": "Allgemein",
"General information": "Allgemeine Informationen", "General information": "Allgemeine Informationen",
@ -1191,6 +1194,7 @@
"Your participation will be validated once you click the confirmation link into the email.": "Ihre Teilnahme wird bestätigt, sobald Sie den Bestätigungslink in der E-Mail anklicken.", "Your participation will be validated once you click the confirmation link into the email.": "Ihre Teilnahme wird bestätigt, sobald Sie den Bestätigungslink in der E-Mail anklicken.",
"Your position was not available.": "Deine Position ist nicht verfügbar.", "Your position was not available.": "Deine Position ist nicht verfügbar.",
"Your profile will be shown as contact.": "Dein Profil wird als Kontakt angezeigt.", "Your profile will be shown as contact.": "Dein Profil wird als Kontakt angezeigt.",
"To create an event for a group you have to be at least a moderator in that group.": "Um eine Veranstaltung für eine Gruppe zu erstellen, musst du mindestens Moderator in dieser Gruppe sein.",
"Your timezone is currently set to {timezone}.": "Ihre Zeitzone ist aktuell {timezone}.", "Your timezone is currently set to {timezone}.": "Ihre Zeitzone ist aktuell {timezone}.",
"Your timezone was detected as {timezone}.": "Ihre Zeitzone wurde erkannt als {timezone}.", "Your timezone was detected as {timezone}.": "Ihre Zeitzone wurde erkannt als {timezone}.",
"Your timezone {timezone} isn't supported.": "Ihre Zeitzone {timezone} wird nicht unterstützt.", "Your timezone {timezone} isn't supported.": "Ihre Zeitzone {timezone} wird nicht unterstützt.",

View file

@ -689,6 +689,7 @@
"Pick a profile or a group": "Pick a profile or a group", "Pick a profile or a group": "Pick a profile or a group",
"Add a contact": "Add a contact", "Add a contact": "Add a contact",
"Your profile will be shown as contact.": "Your profile will be shown as contact.", "Your profile will be shown as contact.": "Your profile will be shown as contact.",
"To create an event for a group you have to be at least a moderator in that group.": "To create an event for a group you have to be at least a moderator in that group.",
"Pick": "Pick", "Pick": "Pick",
"The event will show as attributed to your personal profile.": "The event will show as attributed to your personal profile.", "The event will show as attributed to your personal profile.": "The event will show as attributed to your personal profile.",
"The event will show as attributed to this group.": "The event will show as attributed to this group.", "The event will show as attributed to this group.": "The event will show as attributed to this group.",
@ -1066,6 +1067,9 @@
"Not accessible with a wheelchair": "Not accessible with a wheelchair", "Not accessible with a wheelchair": "Not accessible with a wheelchair",
"Partially accessible with a wheelchair": "Partially accessible with a wheelchair", "Partially accessible with a wheelchair": "Partially accessible with a wheelchair",
"Fully accessible with a wheelchair": "Fully accessible with a wheelchair", "Fully accessible with a wheelchair": "Fully accessible with a wheelchair",
"Smoke free": "Smoke free",
"Whether smoking is prohibited during the event": "Whether smoking is prohibited during the event",
"Smoking allowed": "Smoking allowed",
"YouTube replay": "YouTube replay", "YouTube replay": "YouTube replay",
"The URL where the event live can be watched again after it has ended": "The URL where the event live can be watched again after it has ended", "The URL where the event live can be watched again after it has ended": "The URL where the event live can be watched again after it has ended",
"Twitch replay": "Twitch replay", "Twitch replay": "Twitch replay",

View file

@ -58,6 +58,22 @@ export const eventMetaDataList: IEventMetadataDescription[] = [
}, },
category: EventMetadataCategories.ACCESSIBILITY, category: EventMetadataCategories.ACCESSIBILITY,
}, },
{
icon: "smoking-off",
key: "mz:accessibility:smokeFree",
label: i18n.t("Smoke free") as string,
description: i18n.t(
"Whether smoking is prohibited during the event"
) as string,
value: "false",
type: EventMetadataType.BOOLEAN,
keyType: EventMetadataKeyType.PLAIN,
choices: {
true: i18n.t("Smoke free") as string,
false: i18n.t("Smoking allowed") as string,
},
category: EventMetadataCategories.ACCESSIBILITY,
},
{ {
icon: "youtube", icon: "youtube",
key: "mz:replay:youtube:url", key: "mz:replay:youtube:url",

View file

@ -3,7 +3,7 @@
@import "~bulma/sass/utilities/derived-variables.sass"; @import "~bulma/sass/utilities/derived-variables.sass";
$bleuvert: #1e7d97; $bleuvert: #1e7d97;
$jaune: #ffd599; $potsdamnred: #e08c96;
$violet: #424056; $violet: #424056;
/** /**
@ -44,7 +44,7 @@ $yellow-4: #f7ba30;
$primary: $bleuvert; $primary: $bleuvert;
$primary-invert: findColorInvert($primary); $primary-invert: findColorInvert($primary);
$secondary: $jaune; $secondary: $potsdamnred;
$secondary-invert: findColorInvert($secondary); $secondary-invert: findColorInvert($secondary);
$background-color: $violet-2; $background-color: $violet-2;

View file

@ -134,7 +134,6 @@
!$apollo.loading !$apollo.loading
" "
> >
<div class="img-container" :class="{ webp: supportsWebPFormat }" />
<div class="content has-text-centered"> <div class="content has-text-centered">
<p> <p>
{{ {{

View file

@ -46,7 +46,6 @@
> >
<div class="columns is-vertical is-centered"> <div class="columns is-vertical is-centered">
<div class="column is-three-quarters"> <div class="column is-three-quarters">
<div class="img-container" :class="{ webp: supportsWebPFormat }" />
<div class="content has-text-centered"> <div class="content has-text-centered">
<p> <p>
{{ $t("You are not part of any group.") }} {{ $t("You are not part of any group.") }}
@ -110,7 +109,7 @@ import RouteName from "../../router/name";
metaInfo() { metaInfo() {
return { return {
title: this.$t("My groups") as string, title: this.$t("My groups") as string,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -215,7 +215,7 @@ export type ActivityFilter = ActivityType | ActivityAuthorFilter | null;
// @ts-ignore // @ts-ignore
group: this.group?.name, group: this.group?.name,
}) as string, }) as string,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -11,14 +11,6 @@
<h1 class="title"> <h1 class="title">
{{ config.slogan || $t("Gather ⋅ Organize ⋅ Mobilize") }} {{ config.slogan || $t("Gather ⋅ Organize ⋅ Mobilize") }}
</h1> </h1>
<p
v-html="
$t('Join <b>{instance}</b>, a Mobilizon instance', {
instance: config.name,
})
"
/>
<p class="instance-description">{{ config.description }}</p>
<!-- We don't invite to find other instances yet --> <!-- We don't invite to find other instances yet -->
<!-- <p v-if="!config.registrationsOpen"> <!-- <p v-if="!config.registrationsOpen">
{{ $t("This instance isn't opened to registrations, but you can register on other instances.") }} {{ $t("This instance isn't opened to registrations, but you can register on other instances.") }}
@ -51,18 +43,26 @@
> >
<section class="events-recent"> <section class="events-recent">
<h2 class="title"> <h2 class="title">
{{ $t("Last published events") }} {{ $t("Upcoming events") }}
</h2> </h2>
<p> <p>
<i18n tag="span" path="On {instance} and other federated instances"> <i18n tag="span" path="On {instance} and other federated instances">
<b slot="instance">{{ config.name }}</b> <b slot="instance">{{ config.name }}</b>
</i18n> </i18n>
</p> </p>
<div v-if="this.events.total > 0"> <div v-if="events.elements.length > 0">
<multi-card :events="events.elements.slice(0, 6)" /> <multi-card class="my-4" :events="events.elements" />
<div class="pagination" v-if="events.total > EVENT_PAGE_LIMIT">
<b-pagination
:total="events.total"
v-model="featuredEventPage"
:per-page="EVENT_PAGE_LIMIT"
>
</b-pagination>
</div>
<span class="view-all"> <span class="view-all">
<router-link :to="{ name: RouteName.SEARCH }" <router-link :to="{ name: RouteName.SEARCH }"
>{{ $t("View everything") }} >></router-link >{{ $t("Filter") }} >></router-link
> >
</span> </span>
</div> </div>
@ -72,61 +72,6 @@
</section> </section>
</div> </div>
<div id="picture" v-if="config && (!currentUser.id || !currentActor.id)"> <div id="picture" v-if="config && (!currentUser.id || !currentActor.id)">
<div class="picture-container">
<picture>
<source
media="(max-width: 799px)"
srcset="/img/pics/homepage-480w.webp"
type="image/webp"
/>
<source
media="(max-width: 799px)"
srcset="/img/pics/homepage-480w.jpg"
type="image/jpeg"
/>
<source
media="(max-width: 1024px)"
srcset="/img/pics/homepage-1024w.webp"
type="image/webp"
/>
<source
media="(max-width: 1024px)"
srcset="/img/pics/homepage-1024w.jpg"
type="image/jpeg"
/>
<source
media="(max-width: 1920px)"
srcset="/img/pics/homepage-1920w.webp"
type="image/webp"
/>
<source
media="(max-width: 1920px)"
srcset="/img/pics/homepage-1920w.jpg"
type="image/jpeg"
/>
<source
media="(min-width: 1921px)"
srcset="/img/pics/homepage.webp"
type="image/webp"
/>
<source
media="(min-width: 1921px)"
srcset="/img/pics/homepage.jpg"
type="image/jpeg"
/>
<img
src="/img/pics/homepage-1024w.jpg"
width="3840"
height="2719"
alt=""
loading="lazy"
/>
</picture>
</div>
<div class="container section"> <div class="container section">
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
@ -289,7 +234,7 @@
/> />
<section class="events-recent"> <section class="events-recent">
<h2 class="title"> <h2 class="title">
{{ $t("Last published events") }} {{ $t("Upcoming events") }}
</h2> </h2>
<p> <p>
<i18n tag="span" path="On {instance} and other federated instances"> <i18n tag="span" path="On {instance} and other federated instances">
@ -298,10 +243,10 @@
</p> </p>
<div v-if="events.total > 0"> <div v-if="events.total > 0">
<multi-card :events="events.elements.slice(0, 8)" /> <multi-card :events="events.elements" />
<span class="view-all"> <span class="view-all">
<router-link :to="{ name: RouteName.SEARCH }" <router-link :to="{ name: RouteName.SEARCH }"
>{{ $t("View everything") }} >></router-link >{{ $t("Filter") }} >></router-link
> >
</span> </span>
</div> </div>
@ -345,13 +290,16 @@ import { IConfig } from "../types/config.model";
import { IFollowedGroupEvent } from "../types/followedGroupEvent.model"; import { IFollowedGroupEvent } from "../types/followedGroupEvent.model";
import Subtitle from "../components/Utils/Subtitle.vue"; import Subtitle from "../components/Utils/Subtitle.vue";
const EVENT_PAGE_LIMIT = 99;
@Component({ @Component({
apollo: { apollo: {
events: { events: {
query: FETCH_EVENTS, query: FETCH_EVENTS,
variables: { variables: {
orderBy: EventSortField.INSERTED_AT, orderBy: EventSortField.BEGINS_ON,
direction: SortDirection.DESC, direction: SortDirection.ASC,
limit: EVENT_PAGE_LIMIT,
}, },
}, },
currentActor: { currentActor: {
@ -409,7 +357,7 @@ import Subtitle from "../components/Utils/Subtitle.vue";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
title: this.instanceName, title: this.instanceName,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })
@ -728,9 +676,6 @@ section.hero {
.container.section { .container.section {
background: $white; background: $white;
@include tablet {
margin-top: -4rem;
}
z-index: 10; z-index: 10;
.title { .title {

View file

@ -323,7 +323,7 @@ import { ApolloCache, FetchResult } from "@apollo/client/core";
metaInfo() { metaInfo() {
return { return {
title: this.$t("Report") as string, title: this.$t("Report") as string,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -2,24 +2,6 @@
<section class="section container has-text-centered not-found"> <section class="section container has-text-centered not-found">
<div class="columns is-vertical is-centered"> <div class="columns is-vertical is-centered">
<div class="column is-half"> <div class="column is-half">
<picture>
<source
srcset="/img/pics/error-480w.webp 1x, /img/pics/error-1024w.webp 2x"
type="image/webp"
/>
<source
srcset="/img/pics/error-480w.jpg 1x, /img/pics/error-1024w.jpg 2x"
type="image/jpeg"
/>
<img
:src="`/img/pics/error-480w.jpg`"
alt=""
width="2616"
height="1698"
loading="lazy"
/>
</picture>
<h1 class="title"> <h1 class="title">
{{ $t("The page you're looking for doesn't exist.") }} {{ $t("The page you're looking for doesn't exist.") }}
</h1> </h1>

View file

@ -189,7 +189,7 @@ import PostMixin from "../../mixins/post";
? (this.$t("Edit post") as string) ? (this.$t("Edit post") as string)
: (this.$t("Add a new post") as string), : (this.$t("Add a new post") as string),
// all titles will be injected into this template // all titles will be injected into this template
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -284,7 +284,7 @@ import PostMixin from "../../mixins/post";
// all titles will be injected into this template // all titles will be injected into this template
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
titleTemplate: this.post ? "%s | Mobilizon" : "Mobilizon", titleTemplate: this.post ? "%s | rotes.potsda.mn" : "rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="section container"> <div class="section container">
<h1 class="title">{{ $t("Explore") }}</h1> <!-- <h1 class="title">{{ $t("Explore") }}</h1> -->
<section v-if="tag"> <section v-if="tag">
<i18n path="Events tagged with {tag}"> <i18n path="Events tagged with {tag}">
<b-tag slot="tag" type="is-light">{{ $t("#{tag}", { tag }) }}</b-tag> <b-tag slot="tag" type="is-light">{{ $t("#{tag}", { tag }) }}</b-tag>
@ -125,7 +125,7 @@
v-if="!canSearchEvents && !canSearchGroups" v-if="!canSearchEvents && !canSearchGroups"
> >
<b-loading :active.sync="$apollo.loading"></b-loading> <b-loading :active.sync="$apollo.loading"></b-loading>
<h2 class="title">{{ $t("Featured events") }}</h2> <!-- <h2 class="title">{{ $t("Featured events") }}</h2> -->
<div v-if="events.elements.length > 0"> <div v-if="events.elements.length > 0">
<multi-card class="my-4" :events="events.elements" /> <multi-card class="my-4" :events="events.elements" />
<div class="pagination" v-if="events.total > EVENT_PAGE_LIMIT"> <div class="pagination" v-if="events.total > EVENT_PAGE_LIMIT">
@ -255,9 +255,9 @@ interface ISearchTimeOption {
end?: Date | null; end?: Date | null;
} }
const EVENT_PAGE_LIMIT = 12; const EVENT_PAGE_LIMIT = 99;
const GROUP_PAGE_LIMIT = 12; const GROUP_PAGE_LIMIT = 99;
const DEFAULT_RADIUS = 25; // value to set if radius is null but location set const DEFAULT_RADIUS = 25; // value to set if radius is null but location set
@ -312,7 +312,7 @@ const GEOHASH_DEPTH = 9; // put enough accuracy, radius will be used anyway
metaInfo() { metaInfo() {
return { return {
title: this.$t("Explore events") as string, title: this.$t("Explore events") as string,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
}) })

View file

@ -167,7 +167,7 @@ import AuthProviders from "../../components/User/AuthProviders.vue";
metaInfo() { metaInfo() {
return { return {
title: this.$t("Login on Mobilizon!") as string, title: this.$t("Login on Mobilizon!") as string,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
meta: [{ name: "robots", content: "noindex" }], meta: [{ name: "robots", content: "noindex" }],
}; };
}, },

View file

@ -212,7 +212,7 @@ type credentials = { email: string; password: string; locale: string };
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
title: this.title, title: this.title,
titleTemplate: "%s | Mobilizon", titleTemplate: "%s | rotes.potsda.mn",
}; };
}, },
apollo: { apollo: {

View file

@ -15,6 +15,7 @@ module.exports = {
} }
}, },
pwa: { pwa: {
name: "rotes.potsda.mn Alternative Termine zwischen Stadtschloss und Garnisonkirche",
themeColor: "#ffd599", //not required for service worker, but place theme color here if manifest.json doesn't change the color themeColor: "#ffd599", //not required for service worker, but place theme color here if manifest.json doesn't change the color
workboxPluginMode: "InjectManifest", workboxPluginMode: "InjectManifest",
workboxOptions: { workboxOptions: {
@ -23,6 +24,7 @@ module.exports = {
// ...other Workbox options... // ...other Workbox options...
}, },
manifestOptions: { manifestOptions: {
short_name: "Rotes Potsdam",
orientation: "portrait-primary", orientation: "portrait-primary",
}, },
}, },

View file

@ -89,6 +89,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do
name: Config.instance_name(), name: Config.instance_name(),
registrations_open: Config.instance_registrations_open?(), registrations_open: Config.instance_registrations_open?(),
registrations_allowlist: Config.instance_registrations_allowlist?(), registrations_allowlist: Config.instance_registrations_allowlist?(),
instance_homepage_sorting: Config.instance_homepage_sorting(),
contact: Config.contact(), contact: Config.contact(),
demo_mode: Config.instance_demo_mode?(), demo_mode: Config.instance_demo_mode?(),
description: Config.instance_description(), description: Config.instance_description(),

View file

@ -114,6 +114,11 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
field(:instance_long_description, :string, description: "The instance's long description") field(:instance_long_description, :string, description: "The instance's long description")
field(:instance_slogan, :string, description: "The instance's slogan") field(:instance_slogan, :string, description: "The instance's slogan")
field(:contact, :string, description: "The instance's contact details") field(:contact, :string, description: "The instance's contact details")
field(:instance_homepage_sorting, :instance_homepage_sorting,
description: "The instance's homepage sorting"
)
field(:instance_terms, :string, description: "The instance's terms body text") field(:instance_terms, :string, description: "The instance's terms body text")
field(:instance_terms_type, :instance_terms_type, description: "The instance's terms type") field(:instance_terms_type, :instance_terms_type, description: "The instance's terms type")
field(:instance_terms_url, :string, description: "The instance's terms URL") field(:instance_terms_url, :string, description: "The instance's terms URL")
@ -139,6 +144,12 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
value(:custom, as: "CUSTOM", description: "Custom terms text") value(:custom, as: "CUSTOM", description: "Custom terms text")
end end
@desc "The acceptable values for the instance's homepage type"
enum :instance_homepage_sorting do
value(:default, as: "DEFAULT", description: "Sort by recently created")
value(:upcoming, as: "UPCOMING", description: "Sort by upcoming")
end
@desc """ @desc """
The acceptable values for the instance privacy policy type The acceptable values for the instance privacy policy type
""" """
@ -386,6 +397,11 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
arg(:instance_long_description, :string, description: "The instance's long description") arg(:instance_long_description, :string, description: "The instance's long description")
arg(:instance_slogan, :string, description: "The instance's slogan") arg(:instance_slogan, :string, description: "The instance's slogan")
arg(:contact, :string, description: "The instance's contact details") arg(:contact, :string, description: "The instance's contact details")
arg(:instance_homepage_sorting, :instance_homepage_sorting,
description: "The instance's homepage sorting"
)
arg(:instance_terms, :string, description: "The instance's terms body text") arg(:instance_terms, :string, description: "The instance's terms body text")
arg(:instance_terms_type, :instance_terms_type, description: "The instance's terms type") arg(:instance_terms_type, :instance_terms_type, description: "The instance's terms type")
arg(:instance_terms_url, :string, description: "The instance's terms URL") arg(:instance_terms_url, :string, description: "The instance's terms URL")

View file

@ -48,6 +48,10 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do
field(:version, :string, description: "The instance's version") field(:version, :string, description: "The instance's version")
field(:federating, :boolean, description: "Whether this instance is federation") field(:federating, :boolean, description: "Whether this instance is federation")
field(:instance_homepage_sorting, :instance_homepage_sorting,
description: "The instance's homepage sorting"
)
field(:terms, :terms, description: "The instance's terms") do field(:terms, :terms, description: "The instance's terms") do
arg(:locale, :string, arg(:locale, :string,
default_value: "en", default_value: "en",

View file

@ -19,6 +19,7 @@ defmodule Mobilizon.Config do
registration_email_denylist: list(String.t()), registration_email_denylist: list(String.t()),
demo: boolean(), demo: boolean(),
repository: String.t(), repository: String.t(),
version: String.t(),
email_from: String.t(), email_from: String.t(),
email_reply_to: String.t(), email_reply_to: String.t(),
federating: boolean(), federating: boolean(),
@ -62,6 +63,11 @@ defmodule Mobilizon.Config do
Mobilizon.Admin.get_admin_setting_value("instance", "contact") Mobilizon.Admin.get_admin_setting_value("instance", "contact")
end end
@spec instance_homepage_sorting :: String.t()
def instance_homepage_sorting do
Mobilizon.Admin.get_admin_setting_value("instance", "instance_homepage_sorting", "DEFAULT")
end
@spec instance_terms(String.t()) :: String.t() @spec instance_terms(String.t()) :: String.t()
def instance_terms(locale \\ "en") do def instance_terms(locale \\ "en") do
Mobilizon.Admin.get_admin_setting_value("instance", "instance_terms", generate_terms(locale)) Mobilizon.Admin.get_admin_setting_value("instance", "instance_terms", generate_terms(locale))
@ -102,9 +108,7 @@ defmodule Mobilizon.Config do
end end
@spec instance_version :: String.t() @spec instance_version :: String.t()
def instance_version do def instance_version, do: instance_config()[:version]
GitStatus.commit()
end
@spec instance_hostname :: String.t() @spec instance_hostname :: String.t()
def instance_hostname, do: instance_config()[:hostname] def instance_hostname, do: instance_config()[:hostname]
@ -407,6 +411,7 @@ defmodule Mobilizon.Config do
instance_slogan: instance_slogan(), instance_slogan: instance_slogan(),
registrations_open: instance_registrations_open?(), registrations_open: instance_registrations_open?(),
contact: contact(), contact: contact(),
instance_homepage_sorting: instance_homepage_sorting(),
instance_terms: instance_terms(), instance_terms: instance_terms(),
instance_terms_type: instance_terms_type(), instance_terms_type: instance_terms_type(),
instance_terms_url: instance_terms_url(), instance_terms_url: instance_terms_url(),

View file

@ -12,126 +12,82 @@ defmodule Mobilizon.Events.Categories do
defp build_in_categories do defp build_in_categories do
[ [
%{ %{
id: :arts, id: :ausflug,
label: gettext("Arts") label: gettext("Ausflug")
}, },
%{ %{
id: :book_clubs, id: :ausstellung,
label: gettext("Book clubs") label: gettext("Ausstellung")
}, },
%{ %{
id: :business, id: :demonstration,
label: gettext("Business") label: gettext("Demonstration")
}, },
%{ %{
id: :causes, id: :einweihung,
label: gettext("Causes") label: gettext("Einweihung")
}, },
%{ %{
id: :comedy, id: :filmvorfuehrung,
label: gettext("Comedy") label: gettext("Filmvorführung")
}, },
%{ %{
id: :crafts, id: :fussball,
label: gettext("Crafts") label: gettext("Fußball")
}, },
%{ %{
id: :food_drink, id: :gedenken,
label: gettext("Food & Drink") label: gettext("Gedenken")
}, },
%{ %{
id: :health, id: :infostand,
label: gettext("Health") label: gettext("Infostand")
}, },
%{ %{
id: :music, id: :kuenstlerisches,
label: gettext("Music") label: gettext("Künstlerisches")
}, },
%{ %{
id: :auto_boat_air, id: :kneipe,
label: gettext("Auto, boat and air") label: gettext("Kneipe")
}, },
%{ %{
id: :community, id: :konzert,
label: gettext("Community") label: gettext("Konzert")
}, },
%{ %{
id: :family_education, id: :kuefa,
label: gettext("Family & Education") label: gettext("Fa")
}, },
%{ %{
id: :fashion_beauty, id: :lesung,
label: gettext("Fashion & Beauty") label: gettext("Lesung")
},
%{
id: :film_media,
label: gettext("Film & Media")
},
%{
id: :games,
label: gettext("Games")
},
%{
id: :language_culture,
label: gettext("Language & Culture")
},
%{
id: :learning,
label: gettext("Learning")
},
%{
id: :lgbtq,
label: gettext("LGBTQ")
},
%{
id: :movements_politics,
label: gettext("Movements and politics")
},
%{
id: :networking,
label: gettext("Networking")
}, },
%{ %{
id: :party, id: :party,
label: gettext("Party") label: gettext("Party")
}, },
%{ %{
id: :performing_visual_arts, id: :sport,
label: gettext("Performing & Visual Arts") label: gettext("Sport")
}, },
%{ %{
id: :pets, id: :theater,
label: gettext("Pets") label: gettext("Theater")
}, },
%{ %{
id: :photography, id: :verhandlung,
label: gettext("Photography") label: gettext("Verhandlung")
}, },
%{ %{
id: :outdoors_adventure, id: :workshop,
label: gettext("Outdoors & Adventure") label: gettext("Workshop")
},
%{
id: :spirituality_religion_beliefs,
label: gettext("Spirituality, Religion & Beliefs")
},
%{
id: :science_tech,
label: gettext("Science & Tech")
},
%{
id: :sports,
label: gettext("Sports")
},
%{
id: :theatre,
label: gettext("Theatre")
}, },
# Legacy default value # Legacy default value
%{ %{
id: :meeting, id: :meeting,
label: gettext("Meeting") label: gettext("Infoveranstaltung")
} },
] ]
end end

View file

@ -1663,7 +1663,7 @@ defmodule Mobilizon.Events do
@spec filter_future_events(Ecto.Queryable.t(), boolean) :: Ecto.Query.t() @spec filter_future_events(Ecto.Queryable.t(), boolean) :: Ecto.Query.t()
defp filter_future_events(query, true) do defp filter_future_events(query, true) do
from(q in query, from(q in query,
where: q.begins_on > ^DateTime.utc_now() where: coalesce(q.ends_on, q.begins_on) > ^DateTime.utc_now()
) )
end end

View file

@ -15,7 +15,7 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Events.Event do
formatted_description = description(event, locale) formatted_description = description(event, locale)
tags = [ tags = [
Tag.content_tag(:title, event.title <> " - Mobilizon"), Tag.content_tag(:title, event.title <> " - rotes.potsda.mn"),
Tag.tag(:meta, name: "description", content: process_description(event.description, locale)), Tag.tag(:meta, name: "description", content: process_description(event.description, locale)),
Tag.tag(:meta, property: "og:title", content: event.title), Tag.tag(:meta, property: "og:title", content: event.title),
Tag.tag(:meta, property: "og:url", content: event.url), Tag.tag(:meta, property: "og:url", content: event.url),

View file

@ -7,4 +7,4 @@
<%= if @follower.type == :Application do %><%= gettext "Note: %{name} following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too.", name: Mobilizon.Actors.Actor.display_name_and_username(@follower) %><% end %> <%= if @follower.type == :Application do %><%= gettext "Note: %{name} following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too.", name: Mobilizon.Actors.Actor.display_name_and_username(@follower) %><% end %>
<%= if @follower.type == :Application do %><%= gettext "To accept this invitation, head over to the instance's admin settings." %><% else %><%= gettext "To accept this invitation, head over to the profile's admin page." %><% end %> <%= if @follower.type == :Application do %><%= gettext "To accept this invitation, head over to the instance's admin settings." %><% else %><%= gettext "To accept this invitation, head over to the profile's admin page." %><% end %>
<%= if @follower.type == :Application do %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/relays/followers" %><% else %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/profiles/#{@follower.id}" %><% end %> <%= if @follower.type == :Application do %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/instances/%{name}" %><% else %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/profiles/#{@follower.id}" %><% end %>

View file

@ -2368,11 +2368,6 @@ msgstr "Networking"
msgid "Outdoors & Adventure" msgid "Outdoors & Adventure"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/mobilizon/events/categories.ex:96
msgid "Party"
msgstr "Party"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/mobilizon/events/categories.ex:100 #: lib/mobilizon/events/categories.ex:100
msgid "Performing & Visual Arts" msgid "Performing & Visual Arts"
@ -2398,16 +2393,63 @@ msgstr "Wissenschaft & Technologie"
msgid "Spirituality, Religion & Beliefs" msgid "Spirituality, Religion & Beliefs"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format msgid "Ausflug"
#: lib/mobilizon/events/categories.ex:124 msgstr "Ausflug"
msgid "Sports"
msgid "Ausstellung"
msgstr "Ausstellung"
msgid "Demonstration"
msgstr "Demonstration"
msgid "Einweihung"
msgstr "Einweihung"
msgid "Filmvorführung"
msgstr "Filmvorführung"
msgid "Fußball"
msgstr "Fußball"
msgid "Gedenken"
msgstr "Gedenken"
msgid "Infostand"
msgstr "Infostand"
msgid "Infoveranstaltung"
msgstr "Infoveranstaltung"
msgid "Künstlerisches"
msgstr "Künstlerisches"
msgid "Kneipe"
msgstr "Kneipe"
msgid "Konzert"
msgstr "Konzert"
msgid "KüFa"
msgstr "KüFa"
msgid "Lesung"
msgstr "Lesung"
msgid "Party"
msgstr "Party"
msgid "Sport"
msgstr "Sport" msgstr "Sport"
#, elixir-autogen, elixir-format msgid "Theater"
#: lib/mobilizon/events/categories.ex:128
msgid "Theatre"
msgstr "Theater" msgstr "Theater"
msgid "Verhandlung"
msgstr "Verhandlung"
msgid "Workshop"
msgstr "Workshop"
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:9 #: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more: %{url}" msgid "Read more: %{url}"

View file

@ -1990,11 +1990,6 @@ msgstr ""
msgid "Outdoors & Adventure" msgid "Outdoors & Adventure"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format
#: lib/mobilizon/events/categories.ex:96
msgid "Party"
msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
#: lib/mobilizon/events/categories.ex:100 #: lib/mobilizon/events/categories.ex:100
msgid "Performing & Visual Arts" msgid "Performing & Visual Arts"
@ -2020,15 +2015,62 @@ msgstr ""
msgid "Spirituality, Religion & Beliefs" msgid "Spirituality, Religion & Beliefs"
msgstr "" msgstr ""
#, elixir-autogen, elixir-format msgid "Ausflug"
#: lib/mobilizon/events/categories.ex:124 msgstr "Excursion"
msgid "Sports"
msgstr ""
#, elixir-autogen, elixir-format msgid "Ausstellung"
#: lib/mobilizon/events/categories.ex:128 msgstr "Exhibition"
msgid "Theatre"
msgstr "" msgid "Demonstration"
msgstr "Demonstration"
msgid "Einweihung"
msgstr "Inauguration"
msgid "Filmvorführung"
msgstr "Film screening"
msgid "Fußball"
msgstr "Football"
msgid "Gedenken"
msgstr "Remembrance"
msgid "Infostand"
msgstr "Infostand"
msgid "Infoveranstaltung"
msgstr "Info event"
msgid "Künstlerisches"
msgstr "Art related"
msgid "Kneipe"
msgstr "Bar"
msgid "Konzert"
msgstr "Concert"
msgid "KüFa"
msgstr "Kitchen for all"
msgid "Lesung"
msgstr "Reading"
msgid "Party"
msgstr "Party"
msgid "Sport"
msgstr "Sport"
msgid "Theater"
msgstr "Theater"
msgid "Verhandlung"
msgstr "Trial"
msgid "Workshop"
msgstr "Workshop"
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
#: lib/web/templates/email/participation/event_card.text.eex:9 #: lib/web/templates/email/participation/event_card.text.eex:9

View file

@ -223,6 +223,9 @@ type Config {
"Whether this instance is federation" "Whether this instance is federation"
federating: Boolean federating: Boolean
"The instance's homepage sorting"
instanceHomepageSorting: InstanceHomepageSorting
"The instance's terms" "The instance's terms"
terms( terms(
"The user's locale. The terms will be translated in their language, if available." "The user's locale. The terms will be translated in their language, if available."
@ -269,6 +272,15 @@ type Tag {
related: [Tag] related: [Tag]
} }
"The acceptable values for the instance's homepage type"
enum InstanceHomepageSorting {
"Sort by recently created"
DEFAULT
"Sort by upcoming"
UPCOMING
}
"Instance map routing configuration" "Instance map routing configuration"
type Routing { type Routing {
"The instance's routing type" "The instance's routing type"
@ -1941,6 +1953,9 @@ type RootMutationType {
"The instance's contact details" "The instance's contact details"
contact: String contact: String
"The instance's homepage sorting"
instanceHomepageSorting: InstanceHomepageSorting
"The instance's terms body text" "The instance's terms body text"
instanceTerms: String instanceTerms: String
@ -3805,6 +3820,9 @@ type AdminSettings {
"The instance's contact details" "The instance's contact details"
contact: String contact: String
"The instance's homepage sorting"
instanceHomepageSorting: InstanceHomepageSorting
"The instance's terms body text" "The instance's terms body text"
instanceTerms: String instanceTerms: String

View file

@ -337,6 +337,7 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do
instanceDescription instanceDescription
instanceLongDescription instanceLongDescription
contact contact
instanceHomepageSorting
instanceTerms instanceTerms
instanceTermsType instanceTermsType
instanceTermsUrl instanceTermsUrl
@ -419,6 +420,7 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do
$instanceDescription: String $instanceDescription: String
$instanceLongDescription: String $instanceLongDescription: String
$contact: String $contact: String
$instanceHomepageSorting: InstanceHomepageSorting
$instanceTerms: String $instanceTerms: String
$instanceTermsType: InstanceTermsType $instanceTermsType: InstanceTermsType
$instanceTermsUrl: String $instanceTermsUrl: String
@ -433,6 +435,7 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do
instanceDescription: $instanceDescription instanceDescription: $instanceDescription
instanceLongDescription: $instanceLongDescription instanceLongDescription: $instanceLongDescription
contact: $contact contact: $contact
instanceHomepageSorting: $instanceHomepageSorting
instanceTerms: $instanceTerms instanceTerms: $instanceTerms
instanceTermsType: $instanceTermsType instanceTermsType: $instanceTermsType
instanceTermsUrl: $instanceTermsUrl instanceTermsUrl: $instanceTermsUrl

View file

@ -51,7 +51,7 @@ defmodule Mobilizon.Service.MetadataTest do
tags_output = event |> Metadata.build_tags() |> Metadata.Utils.stringify_tags() tags_output = event |> Metadata.build_tags() |> Metadata.Utils.stringify_tags()
{:ok, document} = Floki.parse_fragment(tags_output) {:ok, document} = Floki.parse_fragment(tags_output)
assert "#{event.title} - Mobilizon" == document |> Floki.find("title") |> Floki.text() assert "#{event.title} - rotes.potsda.mn" == document |> Floki.find("title") |> Floki.text()
assert @truncated_description == assert @truncated_description ==
document document