version two

This commit is contained in:
Robin Grenzdörfer 2023-11-12 11:45:32 +00:00
parent 92ca030e6c
commit 9d58febf4d
18 changed files with 110 additions and 47 deletions

@ -85,9 +85,9 @@ jobs:
# docker compose -p ${GITHUB_REF_NAME}-${GITHUB_REPOSITORY_NAME}-${GITHUB_REPOSITORY_OWNER} up -d --build --remove-orphans
- name: deploy
if: github.ref == 'refs/heads/master'
#if: github.ref == 'refs/heads/master'
env:
RSYNC_USER: "fontis_rsync_master"
RSYNC_PASS: ${{ secrets.rsync_master }}
#RSYNC_USER: "fontis_rsync_master"
# RSYNC_PASS: ${{ secrets.rsync_master }}
run: |
scripts/deploy.sh ftp1.webmakers.de $RSYNC_USER $RSYNC_PASS

@ -11,6 +11,12 @@ meta:
- type: table
columns:
- source: path
name: Pfad
- source: pageTitle
name: Titel
- source: active
name: Aktiv
tablist:
activeTab: site
tabs:
@ -18,9 +24,9 @@ meta:
label: Allgemein
subFields:
- source: path
- source: type
- source: pageTitle
- source: topTitleUpperCase
- source: type
- source: active
- name: teaser
@ -57,6 +63,11 @@ meta:
- type: table
columns:
- source: path
name: Pfad
- source: pageTitle
name: Titel
- source: active
name: Aktiv
filter:
type: page
@ -73,9 +84,13 @@ meta:
- type: table
columns:
- source: path
name: Pfad
- source: pageTitle
name: Titel
- source: active
name: Aktiv
filter:
type: teamMember
type: teamMembers
- name: jobOffers
label:
@ -89,9 +104,14 @@ meta:
- type: table
columns:
- source: path
name: Pfad
- source: pageTitle
name: Titel
- source: active
name: Aktiv
filter:
type: jobOffer
type: jobOffers
imageFilter:
xs:
@ -150,17 +170,35 @@ fields:
meta:
label: Pfad
helperText: "Ein Pfad sollte mit einem / starten und ohne eins enden."
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- type: boolean
name: active
meta:
label: Aktiv
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
- type: string
name: type
meta:
label: Typ
widget: select
containerProps:
layout:
size:
default: "col-6"
small: "col-12"
large: "col-6"
choices:
- name: Seite
id: page
@ -180,7 +218,7 @@ fields:
layout:
size:
default: "col-6"
small: "col-6"
small: "col-12"
large: "col-6"
- name: personType

@ -48,6 +48,7 @@ meta:
pageAsDropArea: false
columns:
- source: file
name: Datei
- source: updateTime
type: datetime
label: letztes Update
@ -67,6 +68,7 @@ meta:
fields:
- source: file
name: Datei
- source: updateTime
type: datetime
label: letztes Update

@ -10,6 +10,7 @@ meta:
- type: table
columns:
- source: type
name: Typ
subNavigation:
- name: modal
@ -100,6 +101,22 @@ fields:
- name: Stellenanzeigen
id: jobOffer
- name: jobOfferPage
type: string
meta:
label: Stellenanzeigen
widget: select
dependsOn:
eval: $parent.type == 'jobOfferLink'
choices:
endpoint: page
params:
sort: path
projection: navigation
mapping:
id: path
name: path
- name: iconCycleCircle
type: object
meta:
@ -114,7 +131,7 @@ fields:
meta:
label: Icons im Rechteck
dependsOn:
eval: $parent.contentType == 'iconCycleSquare'
eval: $parent.type == 'iconCycleSquare'
subFields: !include fieldLists/iconCycleSquare.yml
- name: worldCard

@ -13,6 +13,7 @@ meta:
mediaQuery: "(min-width:600px)"
columns:
- source: tree
name: Navigationsbaum
permissions:
public:

@ -44,6 +44,7 @@
let jobOffersRes: Pages = {}
pagesArray.forEach((e) => {
if (!e.active) return
if (e.type == "page") {
pagesRes[e.path] = e
} else if (e.type == "teamMembers") {
@ -86,6 +87,7 @@
getNavigation()
getPages()
getLibrary()
getModules()
let activeMenu = false
$: {

@ -4,9 +4,10 @@
let nextpage = $navigation?.pages[0]
$: nextpage = $navigation?.pages[0]
function getNextPage(pages) {
console.log(pages, "pages")
if (location.pathname == "/" || location.pathname == "") return
if (location.pathname == "/" || location.pathname == "") {
$navigation?.pages?.length > 1 ? (nextpage = $navigation?.pages[1]) : (nextpage = $navigation?.pages[0])
return
}
let currPage = pages.find(
(page) => Object.values($pages)?.find((o) => o.id == page.page)?.path == location.pathname
)

@ -5,6 +5,8 @@
import TextLink from "../widgets/textLink.svelte"
let teasers = Object.values($pages)?.map((page) => ({ teaser: page.teaser, path: page.path }))
$: teasers = Object.values($pages)?.map((page) => ({ teaser: page.teaser, path: page.path }))
console.log("teasers:", teasers)
register(false)
let swiper

@ -8,13 +8,11 @@
import PageLinkBlocks from "../widgets/pageLinkBlocks.svelte"
import Persons from "../widgets/persons.svelte"
let col: { contentType: "moduleImport"; moduleImport: string }
let pageId: string
let bright: boolean
let isHP: boolean
let row: Row
export let col: { contentType: "moduleImport"; moduleImport: string }
export let pageId: string
let module = $modules[col.moduleImport]
let module = $modules[col.moduleImport] || {}
$: module = $modules[col.moduleImport] || {}
</script>
{#if module.type == "iconCycleCircle"}
@ -30,5 +28,5 @@
{:else if module.type == "jobOffer"}
<ExtendableBox pages="{Object.values($jobOffers)}" />
{:else if module.type == "jobOfferLink"}
<PageLinkBlocks pages="{Object.values($jobOffers)}" />
<PageLinkBlocks pages="{Object.values($jobOffers)}" pageReference="{module.jobOfferPage}" />
{/if}

@ -26,7 +26,7 @@
export let i: number
export let page: Page
export let personPage: boolean
console.log("page", page, personPage)
window.addEventListener("popstate", function (event) {
$rerender = $rerender + 1
})
@ -44,8 +44,9 @@
style="cursor: pointer; display: flex; align-items: center; gap: 10px; line-height: 1.4;"
on:keydown
on:click="{() => {
navigate('/' + location.pathname.split('/').at(1))
$rerender = $rerender + 1
navigate('/' + location.pathname.split('/').at(0))
}}"
>
<img src="/media/arrow-l.svg" alt="arrow" /> Zurück zur Übersicht
@ -54,12 +55,13 @@
style="cursor: pointer; display: flex; align-items: center; gap: 10px; line-height: 1.4;"
on:keydown
on:click="{() => {
$rerender = $rerender + 1
let chefs = Object.values($team).filter((p) => p.personType == 'chef')
let i = chefs.findIndex((p) => p.path == page.path)
if (i == chefs.length - 1) i = 0
else i++
navigate(chefs[i].path)
$rerender = $rerender + 1
}}"
>
Zum nächsten Profil <img src="/media/arrowr.svg" alt="arrow" />
@ -99,7 +101,7 @@
bright="{bright}"
/>
{:else if col.contentType == "moduleImport"}
<Module col="{col}" pageId="{pageId}" bright="{bright}" isHP="{isHP}" row="{row}" />
<Module col="{col}" pageId="{pageId}" />
{:else if col.contentType == "image"}
<Image image="{col?.image}" col="{col}" pageId="{pageId}" />
{:else if col.contentType == "iconBlocks"}
@ -114,8 +116,6 @@
<InfoBoard col="{col}" pageId="{pageId}" />
{:else if col.contentType == "nestedCard"}
<NestedCard col="{col}" />
{/if}
</div>
{/each}

@ -74,9 +74,11 @@
{/if}
<div class="content" class:bright="{row.backgroundImage}">
<Pagebuilder
personPage
personPage="{personPage}"
isHP="{path == '/'}"
i="{i}"
row="{row}"
page="{page}"
pageId="{page.id}"
bright="{!!row.backgroundImage}"
/>

@ -38,9 +38,9 @@
<div style="display: flex; flex-direction: column; width: 100%; align-items: center;">
<div class="worldcard">
<div class="worldcard">
{#each worldCard.rows as row}
{#each worldCard?.row as row}
<div class="wc-row">
{#each row.cards as card}
{#each row?.cards as card}
<Card
card="{card}"
properties="{availableProperties}"

@ -3,38 +3,35 @@
import { openExtendableNr } from "../../store"
export let pages: Page[]
export let opened = -1
export let opened = ""
let jobOffers = pages.map((p) => p.jobOffer)
onMount(() => {
if (!isNaN($openExtendableNr) && $openExtendableNr !== -1) {
opened = $openExtendableNr
$openExtendableNr = -1
}
opened = location.search.split("=").at(-1)
})
</script>
<div class="boxes">
{#each jobOffers as box, i}
<div class="box" class:opened="{i == opened}">
<div class="box" class:opened="{pages[i].id == opened}">
<div
class="upper"
on:keydown
on:click="{() => {
if (opened == i) opened = -1
else opened = i
if (opened == pages[i].id) opened = ''
else opened = pages[i].id
}}"
>
<h4>
{box.title}
</h4>
<div>
{#if i !== opened}<img src="/media/down.svg" alt="arrow" />{:else}<img
{#if pages[i].id !== opened}<img src="/media/down.svg" alt="arrow" />{:else}<img
src="/media/up.svg"
alt="arrow"
/>{/if}
</div>
</div>
<div class="content" class:closed="{i !== opened}">
<div class="content" class:closed="{pages[i].id !== opened}">
{@html box.text}
{#if box.emailButton}
<a

@ -3,7 +3,7 @@
import { mediaLibrary } from "../../store"
export let iconCycleSquare: IconCycleSquare
export let pageId: string
console.log("YEY")
let active = -1
setInterval(() => {
active += 1

@ -1,13 +1,13 @@
<script lang="ts">
import { apiBaseURL } from "../../../config"
import { mediaLibrary } from "../../store"
export let image: FileField
export let image: string
export let pageId: string
export let col: { contentType: "image"; image: string; icons: { icon: string; link: string }[] }
</script>
<div class="image-container">
<img src="{`${apiBaseURL}medialib/${image?.src}/${$mediaLibrary[image?.src]?.file?.src}`}" alt="img" />
<img src="{`${apiBaseURL}medialib/${image}/${$mediaLibrary[image]?.file?.src}`}" alt="img" />
</div>
{#if col && col.icons}
<div class="icons">
@ -15,7 +15,7 @@
<div class="icon">
<a href="{icon.link}" style="text-decoration: none;" target="_blank">
<img
src="{`${apiBaseURL}medialib/${image?.src}/${$mediaLibrary[image?.src]?.file?.src}`}"
src="{`${apiBaseURL}medialib/${icon.icon}/${$mediaLibrary[icon.icon]?.file?.src}`}"
alt="img"
/>
</a>

@ -2,17 +2,19 @@
import { navigate } from "svelte-routing/src/history"
import { openExtendableNr, rerender, scrollToRowNr } from "../../store"
export let pages: Page[]
export let pageReference: string
let jobOffers = pages.map((p) => p.jobOffer)
let focused = -1
</script>
<div class="link-container">
{#each jobOffers as job, i}
{#if i > 3}
{#if i < 3}
<button
class="page-ref"
on:click="{() => {
$rerender = $rerender + 1
navigate(pageReference + '?elem=' + pages[i].id)
}}"
>
{job.title}
@ -28,6 +30,7 @@
class="row-ref fill"
on:click="{() => {
$rerender = $rerender + 1
navigate(pageReference)
}}"
>
<div>Mehr offene Stellen</div>

@ -22,7 +22,7 @@
<!-- Initial Image -->
<img
class="initial"
src="{`${apiBaseURL}medialib/${p.personPreview.hoverImage}/${
src="{`${apiBaseURL}medialib/${p.personPreview.initialImage}/${
$mediaLibrary[p.personPreview.initialImage]?.file?.src
}`}"
alt="img"

4
types/global.d.ts vendored

@ -64,7 +64,7 @@ type Module =
| { id: string; type: "worldCard"; worldCard: WorldCard }
| { id: string; type: "chefTeam" }
| { id: string; type: "employeeTeam" }
| { id: string; type: "jobOfferLink" }
| { id: string; type: "jobOfferLink"; jobOfferPage: string }
| { id: string; type: "jobOffer" }
interface Publication {
@ -107,7 +107,7 @@ interface InfoBoard {
}
interface WorldCard {
rows: WorldCardRow[]
row: WorldCardRow[]
}
interface worldCardRow {
cards: Card[]