zwischenstand

This commit is contained in:
2024-02-13 16:36:09 +00:00
parent 0b4a474180
commit 49e55a90f7
173 changed files with 15832 additions and 1359 deletions

View File

@@ -0,0 +1,13 @@
const eventCallbacks: { [key: string]: any } = {}
export const registerEventCallback = (event: string | number, id: string | number, callback: any) => {
if (!eventCallbacks[event]) eventCallbacks[event] = {}
eventCallbacks[event][id] = callback
}
export const unregisterEventCallback = (event: string | number, id: string | number) => {
delete eventCallbacks[event][id]
}
export const getEventCallbacks = (event: string) => {
return eventCallbacks[event]
}

View File

@@ -0,0 +1,16 @@
import { api } from "../../../api"
import { pages, content, rerender } from "../../store"
export async function loadContentAndSetStores(): Promise<null> {
const contentRes = await api<Content[]>("content", {})
const contentStore: { [id: string]: Content } = {}
const pagesStore: { [path: string]: Content } = {}
contentRes.data.forEach((e: Content) => {
contentStore[e.id] = e
if (e.type === "page") {
pagesStore[e.path] = e
}
})
content.set(contentStore)
pages.set(pagesStore)
return null
}

View File

@@ -0,0 +1,12 @@
import { api } from "../../../api"
import { mediaLibrary } from "../../store"
export async function loadLibraryAndSetStore(): Promise<null> {
const libraryRes = await api<MediaLibrary[]>("medialib", {})
const libStore: { [id: string]: MediaLibrary } = {}
libraryRes.data.forEach((el: MediaLibrary) => {
libStore[el.id] = el
})
mediaLibrary.set(libStore)
return null
}

View File

@@ -0,0 +1,11 @@
import { api } from "../../../api"
import { modules } from "../../store"
export async function loadModulesAndSetStore(): Promise<{ [id: string]: Module }> {
const module = await api<Module[]>("module", {})
const moduleStore: { [id: string]: Module } = {}
module.data.forEach((e: Module) => {
moduleStore[e.id] = e
})
modules.set(moduleStore)
return moduleStore
}

View File

@@ -0,0 +1,15 @@
import { api } from "../../../api"
import { navigation, serviceNavigation } from "../../store"
export async function loadNavigationAndSetStores(): Promise<null> {
const navigations = await api<Navigation[]>("navigation", {})
let navigationStore: NavElement[] = []
let serviceNavigationStore: NavElement[] = []
navigations.data.forEach((nav: Navigation) => {
if (nav.tree == 0) navigationStore = nav.elements
else if (nav.tree == 1) serviceNavigationStore = nav.elements
})
navigation.set(navigationStore)
serviceNavigation.set(serviceNavigationStore)
return null
}

View File

@@ -20,7 +20,10 @@ export function validateFields(fieldsArray: ValueEntry[]): (string | (() => void
}
fieldsArray.forEach(([field, value]) => {
if (field === "blockGroups" || (typeof field === "string" && field.includes("numberLabel"))) {
// number label benötigt gesonderte Validierung
if (!field.includes("numberLabel")) return
// @ts-ignore
let [elementValue, element, group, boolean] = value

View File

@@ -0,0 +1,14 @@
import { getEventCallbacks } from "./eventBus"
import { navigate } from "../../../../vendor/svelte-routing"
export function navigateWrapper(path: string, props: any = null) {
if (getEventCallbacks("navigate")) {
let callbacks = Object.values(getEventCallbacks("navigate"))
for (let i = 0; i < callbacks?.length; i++) {
// do not navigate if false is returned
if ((callbacks[i] as Function)(path, props) === false) return
}
}
if (props) navigate(path, props)
else navigate(path)
}