Konfiguration von Seiten-Verknüpfungen nach Gespräch mit Marc geändert.

This commit is contained in:
2022-06-16 09:48:18 +02:00
parent 706ec88576
commit d8e4f9c902
10 changed files with 197 additions and 103 deletions

View File

@@ -4,7 +4,6 @@
import { generalInfo, currentLang, location } from "../../store"
import { navigate } from "svelte-routing"
import Image from "../widgets/Image.svelte"
import ArticlesList from "../widgets/ArticlesList.svelte"
import ArticleDetails from "../routes/ArticleDetails.svelte"
@@ -14,7 +13,6 @@
let content: Content
let article: TibiArticle
let connectedContentNotFound: boolean = false
$: currentDomain = window.location.protocol + "//" + window.location.host
const loadContent = (type?: string) => {
// Set default API call filter
@@ -29,9 +27,9 @@
}
// Changed filter to find simmilar content for changed language
if (type === "changedLanguage" && content?.tags) {
if (type === "changedLanguage" && content?.pages) {
filter = {
tags: { $in: content?.tags },
_id: { $in: content?.pages },
locale: $currentLang,
}
delete filter.path
@@ -118,6 +116,12 @@
content = null
article = null
// Update current language when lang in URL not equal to current language
let pathParts = window.location.pathname.split("/")
if (pathParts.length > 3 && $currentLang !== pathParts[1]) {
$currentLang = pathParts[1]
}
if (window.location.pathname.endsWith("/")) {
loadContent()
} else {

View File

@@ -39,9 +39,9 @@
{/if}
</svelte:head>
<ArticlesList tags="{['home']}" />
<ArticlesList pages="{['/']}" />
<GeneralMediaImage id="test1" />
<!-- <GeneralMediaImage id="test1" /> -->
<!-- <ContactForm type="recipe" collapsed="{expandedForm !== 'recipe'}" /> -->
<!-- <ContactForm type="contact" collapsed="{expandedForm !== 'contact'}" /> -->

View File

@@ -5,6 +5,7 @@
import Article from "../widgets/Article.svelte"
export let tags: string[] = null
export let pages: string[] = null
export let path: string = null
let articleEntries: CollectionEntry[] = []
@@ -15,11 +16,15 @@
}
if (tags && tags?.length) {
filter["article.general.tags"] = { $in: tags }
filter["article.assignments.tags"] = { $in: tags }
}
if (pages && pages?.length) {
filter["article.assignments.pages"] = { $in: pages }
}
if (path) {
filter["article.general.pages"] = { $in: [path] }
filter["article.assignments.pages"] = { $in: [path] }
}
getArticles("articles", { filter }).then((response) => {

View File

@@ -3,7 +3,7 @@
import Icon from "mdi-svelte"
import { mdiMenu } from "@mdi/js"
import { links } from "svelte-routing"
import { links, link } from "svelte-routing"
import { navigations, currentLang, location } from "../../store"
import LanguageChooser from "./LanguageChooser.svelte"
@@ -28,21 +28,33 @@
{#if navigation}
<nav class="{ident}" use:links>
{#each navigation?.items || [] as item}
{#if item.settings.url.url}
<a
href="{item.settings.url.url}"
target="{item.settings.url.target}"
on:click="{() => {
animateScroll.scrollTo({ element: item.settings.url.url, offset: -200 })
showMobileNav = false
}}"
>
{item.settings.title}
</a>
{:else}
<a href="{item.settings.page + '/'}" class:active="{'/' + item.settings.page === $location.path}">
{item.settings.title}
</a>
{#if !item.settings.url.hidden}
{#if item.settings.url.url}
{#if item.settings.url.target === "default"}
<a
use:link
href="{item.settings.url.url}"
class:active="{'/' + item.settings.page === $location.path}"
>
{item.settings.title}
</a>
{:else}
<a
href="{item.settings.url.url}"
target="{item.settings.url.target}"
on:click="{() => {
animateScroll.scrollTo({ element: item.settings.url.url, offset: -200 })
showMobileNav = false
}}"
>
{item.settings.title}
</a>
{/if}
{:else}
<a href="{item.settings.page + '/'}" class:active="{'/' + item.settings.page === $location.path}">
{item.settings.title}
</a>
{/if}
{/if}
{/each}
</nav>
@@ -54,29 +66,41 @@
<nav class="{ident}-mobile" class:show="{showMobileNav}" use:links>
{#each navigation?.items || [] as item}
{#if item.settings.url.url}
<div class="nav-item">
<a
href="{item.settings.url.url}"
target="{item.settings.url.target}"
on:click="{() => {
animateScroll.scrollTo({ element: item.settings.url.url, offset: -200 })
showMobileNav = false
}}"
>
{item.settings.title}
</a>
</div>
{:else}
<div class="nav-item">
<a
href="{item.settings.page + '/'}"
on:click="{() => (showMobileNav = false)}"
class:active="{'/' + item.settings.page === $location.path}"
>
{item.settings.title}
</a>
</div>
{#if !item.settings.url.hidden}
{#if item.settings.url.url}
{#if item.settings.url.target === "default"}
<a
use:link
href="{item.settings.url.url}"
class:active="{'/' + item.settings.page === $location.path}"
>
{item.settings.title}
</a>
{:else}
<div class="nav-item">
<a
href="{item.settings.url.url}"
target="{item.settings.url.target}"
on:click="{() => {
animateScroll.scrollTo({ element: item.settings.url.url, offset: -200 })
showMobileNav = false
}}"
>
{item.settings.title}
</a>
</div>
{/if}
{:else}
<div class="nav-item">
<a
href="{item.settings.page + '/'}"
on:click="{() => (showMobileNav = false)}"
class:active="{'/' + item.settings.page === $location.path}"
>
{item.settings.title}
</a>
</div>
{/if}
{/if}
{/each}
</nav>