generated from cms/tibi-docs
parent
92ca030e6c
commit
9d58febf4d
@ -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
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[]
|
||||
|
Loading…
x
Reference in New Issue
Block a user