Compare commits
36 commits
main
...
rotes.pots
Author | SHA1 | Date | |
---|---|---|---|
778a69cd | d4dd0cfd0a | ||
778a69cd | fb05ee1c2f | ||
778a69cd | 4a9dbfb4e0 | ||
778a69cd | 897d08e18d | ||
778a69cd | 6a123d0dad | ||
778a69cd | bb4c85f603 | ||
778a69cd | f514ddd726 | ||
778a69cd | f6a1b2822d | ||
778a69cd | 9e82a9d9af | ||
jona | 053e0010a0 | ||
jona | 187b3a5064 | ||
778a69cd | a129d71b29 | ||
summersamara | 595a3dca8b | ||
778a69cd | 70c38863a9 | ||
778a69cd | 2f7b1898de | ||
778a69cd | 60fa49a7b1 | ||
778a69cd | aaee131f1d | ||
778a69cd | 13306dc1bc | ||
778a69cd | 8289eea9c8 | ||
778a69cd | f1304b7df8 | ||
778a69cd | ce6ffc4e66 | ||
19561da63d | |||
03b2e1f634 | |||
8e5093ab41 | |||
750072b3b1 | |||
3aa10b77b3 | |||
778a69cd | a2d12990a4 | ||
778a69cd | 45f030f227 | ||
778a69cd | f7749a1e2b | ||
778a69cd | 3bf5e7a95f | ||
778a69cd | dbd91b1a21 | ||
778a69cd | d1228ca43f | ||
778a69cd | 62afefa47e | ||
778a69cd | e1c75ceecd | ||
778a69cd | 0f6296d164 | ||
778a69cd | 158d36d6ec |
|
@ -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
|
@ -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
|
@ -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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 8 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 791 B After Width: | Height: | Size: 902 B |
Before Width: | Height: | Size: 1,015 B After Width: | Height: | Size: 1.3 KiB |
|
@ -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 |
|
@ -70,7 +70,7 @@ import { Route } from "vue-router";
|
||||||
},
|
},
|
||||||
metaInfo() {
|
metaInfo() {
|
||||||
return {
|
return {
|
||||||
titleTemplate: "%s | Mobilizon",
|
titleTemplate: "%s | rotes.potsda.mn",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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.",
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
{{
|
{{
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -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" }],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
|
@ -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: {
|
||||||
|
|
|
@ -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",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -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(),
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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(),
|
||||||
|
|
|
@ -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("Kü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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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),
|
||||||
|
|
|
@ -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 %>
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|