Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
a12de7a0c1
|
@ -1774,6 +1774,7 @@ defmodule Mobilizon.Events do
|
||||||
|> distinct([e], e.id)
|
|> distinct([e], e.id)
|
||||||
|> join(:left, [e], et in "events_tags", on: e.id == et.event_id)
|
|> join(:left, [e], et in "events_tags", on: e.id == et.event_id)
|
||||||
|> join(:left, [e], a in Address, on: e.physical_address_id == a.id)
|
|> join(:left, [e], a in Address, on: e.physical_address_id == a.id)
|
||||||
|
|> filter_future_events(true)
|
||||||
|> filter_draft()
|
|> filter_draft()
|
||||||
|> filter_local_or_from_followed_instances_events()
|
|> filter_local_or_from_followed_instances_events()
|
||||||
|> filter_public_visibility()
|
|> filter_public_visibility()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"About": "소개",
|
"About": "소개",
|
||||||
"About this instance": "이 인스터스에 대하여",
|
"About this instance": "이 인스턴스에 대하여",
|
||||||
"Accepted": "수락함",
|
"Accepted": "수락함",
|
||||||
"Account": "계정",
|
"Account": "계정",
|
||||||
"Add": "추가하기",
|
"Add": "추가하기",
|
||||||
|
@ -11,11 +11,28 @@
|
||||||
"Add to my calendar": "내 달력에 추가하기",
|
"Add to my calendar": "내 달력에 추가하기",
|
||||||
"Additional comments": "추가 코멘트",
|
"Additional comments": "추가 코멘트",
|
||||||
"Admin": "관리자",
|
"Admin": "관리자",
|
||||||
|
"Admin dashboard": "관리자 대시보드",
|
||||||
|
"Admin settings": "관리자 설정",
|
||||||
"Admin settings successfully saved.": "관리자 설정을 저장했습니다.",
|
"Admin settings successfully saved.": "관리자 설정을 저장했습니다.",
|
||||||
"Administration": "관리",
|
"Administration": "관리",
|
||||||
"Allow registrations": "가입 허용하기",
|
"Allow registrations": "가입 허용하기",
|
||||||
"Anonymous participant": "익명의 참가자",
|
"Anonymous participant": "익명의 참가자",
|
||||||
|
"Apply filters": "필터 적용",
|
||||||
"Are you sure you want to <b>delete</b> this comment? This action cannot be undone.": "이 코멘트를 <b>삭제</b>합니까? 이 행동으 되돌릴 수 없습니다.",
|
"Are you sure you want to <b>delete</b> this comment? This action cannot be undone.": "이 코멘트를 <b>삭제</b>합니까? 이 행동으 되돌릴 수 없습니다.",
|
||||||
"Avatar": "아바타",
|
"Avatar": "아바타",
|
||||||
"Back to previous page": "이전 페이지로 돌아가기"
|
"Back to previous page": "이전 페이지로 돌아가기",
|
||||||
|
"Cancel": "취소",
|
||||||
|
"Cancelled": "취소함",
|
||||||
|
"Categories": "범주",
|
||||||
|
"Change the filters.": "필터를 바꿉니다.",
|
||||||
|
"Clear": "비우기",
|
||||||
|
"Close": "닫기",
|
||||||
|
"Confirmed": "확인함",
|
||||||
|
"Create identity": "정체성 만들기",
|
||||||
|
"Dashboard": "대시보드",
|
||||||
|
"Group profiles": "그룹 프로필",
|
||||||
|
"Mobilizon": "Mobilizon",
|
||||||
|
"Reports list": "제보 목록",
|
||||||
|
"Software details: {software_details}": "소프트웨어 세부사항: {software_details}",
|
||||||
|
"Visit {instance_domain}": "{instance_domain} 인스턴스 방문하기"
|
||||||
}
|
}
|
||||||
|
|
|
@ -250,12 +250,12 @@
|
||||||
|
|
||||||
<section
|
<section
|
||||||
class="bg-white dark:bg-zinc-700 px-3 pt-1 pb-3 rounded my-4"
|
class="bg-white dark:bg-zinc-700 px-3 pt-1 pb-3 rounded my-4"
|
||||||
v-if="(nonPassedRelatedEvents ?? []).length > 0"
|
v-if="(event?.relatedEvents ?? []).length > 0"
|
||||||
>
|
>
|
||||||
<h2 class="text-2xl mb-2">
|
<h2 class="text-2xl mb-2">
|
||||||
{{ t("These events may interest you") }}
|
{{ t("These events may interest you") }}
|
||||||
</h2>
|
</h2>
|
||||||
<multi-card :events="nonPassedRelatedEvents ?? []" />
|
<multi-card :events="event?.relatedEvents ?? []" />
|
||||||
</section>
|
</section>
|
||||||
<o-modal
|
<o-modal
|
||||||
v-model:active="showMap"
|
v-model:active="showMap"
|
||||||
|
@ -335,7 +335,6 @@ import { useI18n } from "vue-i18n";
|
||||||
import { Notifier } from "@/plugins/notifier";
|
import { Notifier } from "@/plugins/notifier";
|
||||||
import { AbsintheGraphQLErrors } from "@/types/errors.model";
|
import { AbsintheGraphQLErrors } from "@/types/errors.model";
|
||||||
import { useHead } from "@unhead/vue";
|
import { useHead } from "@unhead/vue";
|
||||||
import { IEvent } from "@/types/event.model";
|
|
||||||
|
|
||||||
const IntegrationTwitch = defineAsyncComponent(
|
const IntegrationTwitch = defineAsyncComponent(
|
||||||
() => import("@/components/Event/Integrations/TwitchIntegration.vue")
|
() => import("@/components/Event/Integrations/TwitchIntegration.vue")
|
||||||
|
@ -620,17 +619,6 @@ const organizerDomain = computed((): string | undefined => {
|
||||||
return organizer.value?.domain ?? undefined;
|
return organizer.value?.domain ?? undefined;
|
||||||
});
|
});
|
||||||
|
|
||||||
const nonPassedRelatedEvents = computed((): IEvent[] | undefined => {
|
|
||||||
const relatedEvents = event.value?.relatedEvents;
|
|
||||||
|
|
||||||
return relatedEvents?.filter((relatedEvent: IEvent) => {
|
|
||||||
const endsOn = relatedEvent.endsOn
|
|
||||||
? new Date(relatedEvent.endsOn)
|
|
||||||
: new Date(relatedEvent.beginsOn);
|
|
||||||
return endsOn > new Date();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: computed(() => eventTitle.value ?? ""),
|
title: computed(() => eventTitle.value ?? ""),
|
||||||
meta: [{ name: "description", content: eventDescription.value }],
|
meta: [{ name: "description", content: eventDescription.value }],
|
||||||
|
|
Loading…
Reference in a new issue