diff --git a/tatort/README.md b/tatort/README.md
deleted file mode 100644
index 5c91169..0000000
--- a/tatort/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# create-svelte
-
-Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
-
-## Creating a project
-
-If you're seeing this, you've probably already done this step. Congrats!
-
-```bash
-# create a new project in the current directory
-npm create svelte@latest
-
-# create a new project in my-app
-npm create svelte@latest my-app
-```
-
-## Developing
-
-Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
-
-```bash
-npm run dev
-
-# or start the server and open the app in a new browser tab
-npm run dev -- --open
-```
-
-## Building
-
-To create a production version of your app:
-
-```bash
-npm run build
-```
-
-You can preview the production build with `npm run preview`.
-
-> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
diff --git a/tatort/config.json.sample b/tatort/config.json.sample
deleted file mode 100644
index 6acdf2c..0000000
--- a/tatort/config.json.sample
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "minio": {
- "endPoint": "s3.home.arpa",
- "port": 9000,
- "useSSL": true,
- "accessKey": "tMhLrfog47lMm0HZ",
- "secretKey": "v0e32UlzMsTKMpnizNDWAMbQ9Gk7ZTeV"
- },
- "jwt": {
- "secret": "@S2!q@@wXz$dCQ8JoVsHLpzaJ6JCfB",
- "expiresIn": 3600
- },
- "auth": {
- "admin": { "password": "admin", "admin": true },
- "teimar70": { "password": "test", "admin": false }
- }
-}
diff --git a/tatort/daten/1.glb b/tatort/daten/1.glb
deleted file mode 100644
index 694cdba..0000000
Binary files a/tatort/daten/1.glb and /dev/null differ
diff --git a/tatort/daten/2.glb b/tatort/daten/2.glb
deleted file mode 100644
index 5f6099f..0000000
Binary files a/tatort/daten/2.glb and /dev/null differ
diff --git a/tatort/daten/3.glb b/tatort/daten/3.glb
deleted file mode 100644
index 27f19d8..0000000
Binary files a/tatort/daten/3.glb and /dev/null differ
diff --git a/tatort/daten/4.glb b/tatort/daten/4.glb
deleted file mode 100644
index 88ddabb..0000000
Binary files a/tatort/daten/4.glb and /dev/null differ
diff --git a/tatort/daten/5.glb b/tatort/daten/5.glb
deleted file mode 100644
index 5527dfe..0000000
Binary files a/tatort/daten/5.glb and /dev/null differ
diff --git a/tatort/jsconfig.json b/tatort/jsconfig.json
deleted file mode 100644
index fe45e13..0000000
--- a/tatort/jsconfig.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "extends": "./.svelte-kit/tsconfig.json",
- "compilerOptions": {
- "allowJs": true,
- "checkJs": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "sourceMap": true,
- "strict": true
- }
- // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias and https://kit.svelte.dev/docs/configuration#files
- //
- // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
- // from the referenced tsconfig.json - TypeScript does not merge them in
-}
diff --git a/tatort/package.json b/tatort/package.json
deleted file mode 100644
index b21d7eb..0000000
--- a/tatort/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "tatort",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "vite dev",
- "build": "vite build",
- "preview": "vite preview",
- "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json",
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch",
- "test": "playwright test",
- "test:unit": "vitest",
- "lint": "prettier --plugin-search-dir . --check . && eslint .",
- "format": "prettier --plugin-search-dir . --write ."
- },
- "devDependencies": {
- "@playwright/test": "^1.28.1",
- "@sveltejs/adapter-auto": "^2.0.0",
- "@sveltejs/kit": "^1.5.0",
- "eslint": "^8.28.0",
- "eslint-config-prettier": "^8.5.0",
- "eslint-plugin-svelte3": "^4.0.0",
- "prettier": "^2.8.0",
- "prettier-plugin-svelte": "^2.8.1",
- "svelte": "^3.54.0",
- "svelte-check": "^3.0.1",
- "typescript": "^5.0.0",
- "vite": "^4.3.0",
- "vitest": "^0.25.3"
- },
- "type": "module",
- "dependencies": {
- "@google/model-viewer": "^3.1.1",
- "@sveltejs/adapter-node": "^1.2.4",
- "@tailwindcss/forms": "^0.5.3",
- "autoprefixer": "^10.4.14",
- "jsonwebtoken": "^9.0.0",
- "minio": "^7.1.1",
- "postcss": "^8.4.24",
- "svelte-cubed": "^0.2.1",
- "tailwindcss": "^3.3.2",
- "three": "^0.151.2"
- }
-}
diff --git a/tatort/playwright.config.js b/tatort/playwright.config.js
deleted file mode 100644
index a43c8c0..0000000
--- a/tatort/playwright.config.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/** @type {import('@playwright/test').PlaywrightTestConfig} */
-const config = {
- webServer: {
- command: 'npm run build && npm run preview',
- port: 4173
- },
- testDir: 'tests',
- testMatch: /(.+\.)?(test|spec)\.[jt]s/
-};
-
-export default config;
diff --git a/tatort/postcss.config.cjs b/tatort/postcss.config.cjs
deleted file mode 100644
index 054c147..0000000
--- a/tatort/postcss.config.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
- plugins: {
- tailwindcss: {},
- autoprefixer: {}
- }
-};
diff --git a/tatort/postcss.config.js b/tatort/postcss.config.js
deleted file mode 100644
index 2e7af2b..0000000
--- a/tatort/postcss.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
-}
diff --git a/tatort/src/app.css b/tatort/src/app.css
deleted file mode 100644
index bd6213e..0000000
--- a/tatort/src/app.css
+++ /dev/null
@@ -1,3 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
\ No newline at end of file
diff --git a/tatort/src/app.d.ts b/tatort/src/app.d.ts
deleted file mode 100644
index 5ab1fbb..0000000
--- a/tatort/src/app.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// See https://kit.svelte.dev/docs/types#app
-// for information about these interfaces
-declare global {
- namespace App {
- // interface Error {}
- interface Locals {
- user: any
- }
- // interface PageData {}
- // interface Platform {}
- }
-}
-
-export { };
diff --git a/tatort/src/app.html b/tatort/src/app.html
deleted file mode 100644
index 6302e29..0000000
--- a/tatort/src/app.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- Tatort
-
-
-
-
- %sveltekit.head%
-
-
- %sveltekit.body%
-
-
diff --git a/tatort/src/hooks.server.js b/tatort/src/hooks.server.js
deleted file mode 100644
index 19b1bcc..0000000
--- a/tatort/src/hooks.server.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { decryptToken } from '$lib/auth';
-
-/** @type {import('@sveltejs/kit').Handle} */
-export async function handle({ event, resolve }) {
- const jwt = event.cookies.get('session');
- try {
- if (jwt) {
- event.locals.user = decryptToken(jwt);
- return resolve(event);
- }
- } catch (err) {
- await event.cookies.delete('session');
- event.locals.user = null;
- }
- return resolve(event);
-}
diff --git a/tatort/src/index.test.js b/tatort/src/index.test.js
deleted file mode 100644
index e07cbbd..0000000
--- a/tatort/src/index.test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { describe, it, expect } from 'vitest';
-
-describe('sum test', () => {
- it('adds 1 + 2 to equal 3', () => {
- expect(1 + 2).toBe(3);
- });
-});
diff --git a/tatort/src/lib/auth.js b/tatort/src/lib/auth.js
deleted file mode 100644
index 19d290a..0000000
--- a/tatort/src/lib/auth.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import jwt from 'jsonwebtoken';
-
-import config from '$lib/config';
-
-const SECRET = config.jwt.secret;
-const EXPIRES_IN = config.jwt.expiresIn;
-
-const AUTH = config.auth;
-
-export function createToken(userData) {
- return jwt.sign(userData, SECRET, { expiresIn: EXPIRES_IN });
-}
-
-export function decryptToken(token) {
- return jwt.verify(token, SECRET);
-}
-
-export function authenticate(user, pass) {
- let userData = null;
-
- if (AUTH[user]) {
- const { password, ...data } = AUTH[user];
- if (password && password === pass) userData = data;
- }
-
- if (userData == null) return null;
-
- return createToken({ id: user, ...userData });
-}
diff --git a/tatort/src/lib/components/ui/Alert.svelte b/tatort/src/lib/components/ui/Alert.svelte
deleted file mode 100644
index d461847..0000000
--- a/tatort/src/lib/components/ui/Alert.svelte
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
diff --git a/tatort/src/lib/components/ui/Button.svelte b/tatort/src/lib/components/ui/Button.svelte
deleted file mode 100644
index dd05a7b..0000000
--- a/tatort/src/lib/components/ui/Button.svelte
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
-
-{#if href}
-
-
-{:else}
-
-{/if}
diff --git a/tatort/src/lib/components/ui/DeleteIconButton.svelte b/tatort/src/lib/components/ui/DeleteIconButton.svelte
deleted file mode 100644
index e2ef84c..0000000
--- a/tatort/src/lib/components/ui/DeleteIconButton.svelte
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-
-
- {#if active}
-
-
-
- {/if}
-
diff --git a/tatort/src/lib/components/ui/Modal/Modal.svelte b/tatort/src/lib/components/ui/Modal/Modal.svelte
deleted file mode 100644
index bdf0705..0000000
--- a/tatort/src/lib/components/ui/Modal/Modal.svelte
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-
diff --git a/tatort/src/lib/components/ui/Modal/ModalContent.svelte b/tatort/src/lib/components/ui/Modal/ModalContent.svelte
deleted file mode 100644
index d791e1a..0000000
--- a/tatort/src/lib/components/ui/Modal/ModalContent.svelte
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
diff --git a/tatort/src/lib/components/ui/Modal/ModalFooter.svelte b/tatort/src/lib/components/ui/Modal/ModalFooter.svelte
deleted file mode 100644
index 9a6eb5d..0000000
--- a/tatort/src/lib/components/ui/Modal/ModalFooter.svelte
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tatort/src/lib/components/ui/Modal/ModalTitle.svelte b/tatort/src/lib/components/ui/Modal/ModalTitle.svelte
deleted file mode 100644
index b39036b..0000000
--- a/tatort/src/lib/components/ui/Modal/ModalTitle.svelte
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/tatort/src/lib/components/ui/Notification.svelte b/tatort/src/lib/components/ui/Notification.svelte
deleted file mode 100644
index 247e902..0000000
--- a/tatort/src/lib/components/ui/Notification.svelte
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
diff --git a/tatort/src/lib/components/ui/Panel.svelte b/tatort/src/lib/components/ui/Panel.svelte
deleted file mode 100644
index ab1a807..0000000
--- a/tatort/src/lib/components/ui/Panel.svelte
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
diff --git a/tatort/src/lib/components/ui/Select.svelte b/tatort/src/lib/components/ui/Select.svelte
deleted file mode 100644
index d5752f3..0000000
--- a/tatort/src/lib/components/ui/Select.svelte
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- {#each options as option, index}
- - {
- selectOnChange(index);
- }}
- id="listbox-item-0"
- role="option"
- class="group relative cursor-default select-none py-2 pl-3 pr-9 text-gray-900 hover:bg-blue-500 hover:text-white"
- >
-
- {#if option.img}
-

- {/if}
-
-
- {option.title}
-
-
- {#if selected === index}
-
-
-
- {/if}
-
- {/each}
-
-
-
-
diff --git a/tatort/src/lib/config.js b/tatort/src/lib/config.js
deleted file mode 100644
index 5c34af3..0000000
--- a/tatort/src/lib/config.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { readFileSync } from 'fs';
-
-export default JSON.parse(readFileSync('./config.json'));
diff --git a/tatort/src/lib/helper/caseNumberOccupied.js b/tatort/src/lib/helper/caseNumberOccupied.js
deleted file mode 100644
index 50062e8..0000000
--- a/tatort/src/lib/helper/caseNumberOccupied.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { client } from '$lib/minio';
-
-/**
- * Check if caseNumber is used
- * @param {string} caseNumber
- * @returns {Promise {
- let stream = client.listObjectsV2('tatort', prefix, false, '');
- stream.on('data', () => {
- stream.destroy();
- resolve(true);
- });
- stream.on('end', () => {
- resolve(false);
- });
- });
-
- return promise;
-}
diff --git a/tatort/src/lib/helper/shortenFileSize.js b/tatort/src/lib/helper/shortenFileSize.js
deleted file mode 100644
index 1525dfb..0000000
--- a/tatort/src/lib/helper/shortenFileSize.js
+++ /dev/null
@@ -1,22 +0,0 @@
-const KILO = 1024;
-const MEGA = KILO * KILO;
-const GIGA = MEGA * KILO;
-
-/**
- * Shortens the size in bytes
- * @param {number} size
- * @returns{string}
- */
-export default function shortenFileSize(size) {
- const giga = Math.floor(size / GIGA);
- let remainder = size % GIGA;
- const mega = Math.floor(remainder / MEGA);
- remainder %= MEGA;
- const kilo = Math.floor(remainder / KILO);
- remainder %= KILO;
-
- if (giga > 0) return `${giga} GB`;
- if (mega > 0) return `${mega} MB`;
- if (kilo > 0) return `${kilo} kB`;
- return `${remainder} B`;
-}
diff --git a/tatort/src/lib/helper/timeElapsed.js b/tatort/src/lib/helper/timeElapsed.js
deleted file mode 100644
index b2f8a73..0000000
--- a/tatort/src/lib/helper/timeElapsed.js
+++ /dev/null
@@ -1,33 +0,0 @@
-const MINUTE = 60;
-const HOUR = 60 * MINUTE;
-const DAY = 24 * HOUR;
-const YEAR = 365 * DAY;
-const MONTH = YEAR / 12;
-
-/**
- * get readable string of time elapsed since date
- * @param {Date} date
- * @returns string
- */
-export default function timeElapsed(date) {
- const now = new Date();
- const age = Math.floor((now.getTime() - date.getTime()) / 1000);
-
- const years = Math.floor(age / YEAR);
- let remainder = age % YEAR;
- const months = Math.floor(remainder / MONTH);
- remainder %= MONTH;
- const days = Math.floor(remainder / DAY);
- remainder %= DAY;
- const hours = Math.floor(remainder / HOUR);
- remainder %= HOUR;
- const minutes = Math.floor(remainder / MINUTE);
- const seconds = remainder % MINUTE;
- if (years > 0) return years === 1 ? 'vor 1 Jahr' : `vor ${years} Jahren`;
- if (months > 0) return months === 1 ? 'vor 1 Monat' : `vor ${months} Monaten`;
- if (days > 0) return days === 1 ? 'vor 1 Tag' : `vor ${days} Tagen`;
- if (hours > 0) return hours === 1 ? 'vor 1 Stunde' : `vor ${hours} Stunden`;
- if (minutes > 0) return minutes === 1 ? 'vor 1 Minute' : `vor ${minutes} Minuten`;
-
- return seconds === 1 ? 'vor 1 Sekunde' : `vor ${seconds} Sekunden`;
-}
diff --git a/tatort/src/lib/icons/Arrow-left.svelte b/tatort/src/lib/icons/Arrow-left.svelte
deleted file mode 100644
index 5b98b38..0000000
--- a/tatort/src/lib/icons/Arrow-left.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Arrow-right.svelte b/tatort/src/lib/icons/Arrow-right.svelte
deleted file mode 100644
index cb9c9e9..0000000
--- a/tatort/src/lib/icons/Arrow-right.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Bell.svelte b/tatort/src/lib/icons/Bell.svelte
deleted file mode 100644
index 0ec709c..0000000
--- a/tatort/src/lib/icons/Bell.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Book.svelte b/tatort/src/lib/icons/Book.svelte
deleted file mode 100644
index 4cc27f3..0000000
--- a/tatort/src/lib/icons/Book.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Check.svelte b/tatort/src/lib/icons/Check.svelte
deleted file mode 100644
index 1189789..0000000
--- a/tatort/src/lib/icons/Check.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Chevron-left.svelte b/tatort/src/lib/icons/Chevron-left.svelte
deleted file mode 100644
index 2a34fa5..0000000
--- a/tatort/src/lib/icons/Chevron-left.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Chevron-right.svelte b/tatort/src/lib/icons/Chevron-right.svelte
deleted file mode 100644
index 8b7440d..0000000
--- a/tatort/src/lib/icons/Chevron-right.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Chevron.svelte b/tatort/src/lib/icons/Chevron.svelte
deleted file mode 100644
index 5440f50..0000000
--- a/tatort/src/lib/icons/Chevron.svelte
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Drag.svelte b/tatort/src/lib/icons/Drag.svelte
deleted file mode 100644
index 97def46..0000000
--- a/tatort/src/lib/icons/Drag.svelte
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Exclamation-circle.svelte b/tatort/src/lib/icons/Exclamation-circle.svelte
deleted file mode 100644
index 0b9c550..0000000
--- a/tatort/src/lib/icons/Exclamation-circle.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Exclamation.svelte b/tatort/src/lib/icons/Exclamation.svelte
deleted file mode 100644
index f35ed58..0000000
--- a/tatort/src/lib/icons/Exclamation.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Info.svelte b/tatort/src/lib/icons/Info.svelte
deleted file mode 100644
index 560be4c..0000000
--- a/tatort/src/lib/icons/Info.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Login.svelte b/tatort/src/lib/icons/Login.svelte
deleted file mode 100644
index b164996..0000000
--- a/tatort/src/lib/icons/Login.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Play.svelte b/tatort/src/lib/icons/Play.svelte
deleted file mode 100644
index 1c78552..0000000
--- a/tatort/src/lib/icons/Play.svelte
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Plus.svelte b/tatort/src/lib/icons/Plus.svelte
deleted file mode 100644
index 50dfeb3..0000000
--- a/tatort/src/lib/icons/Plus.svelte
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Question-mark-circle.svelte b/tatort/src/lib/icons/Question-mark-circle.svelte
deleted file mode 100644
index 4a2645c..0000000
--- a/tatort/src/lib/icons/Question-mark-circle.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Selector.svelte b/tatort/src/lib/icons/Selector.svelte
deleted file mode 100644
index 81fdec3..0000000
--- a/tatort/src/lib/icons/Selector.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/icons/Trash.svelte b/tatort/src/lib/icons/Trash.svelte
deleted file mode 100644
index 2199194..0000000
--- a/tatort/src/lib/icons/Trash.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/tatort/src/lib/icons/X.svelte b/tatort/src/lib/icons/X.svelte
deleted file mode 100644
index 56582da..0000000
--- a/tatort/src/lib/icons/X.svelte
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/tatort/src/lib/minio.js b/tatort/src/lib/minio.js
deleted file mode 100644
index 3f1b6b7..0000000
--- a/tatort/src/lib/minio.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import Minio from 'minio';
-import config from '$lib/config';
-
-process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
-
-export const client = new Minio.Client(config.minio);
diff --git a/tatort/src/routes/(angemeldet)/+layout.server.js b/tatort/src/routes/(angemeldet)/+layout.server.js
deleted file mode 100644
index c54cfba..0000000
--- a/tatort/src/routes/(angemeldet)/+layout.server.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { redirect } from '@sveltejs/kit';
-
-/** @type {import('./$types').PageServerLoad} */
-export function load(event) {
- if (!event.locals.user && event.url.pathname !== '/anmeldung') throw redirect(303, '/anmeldung');
- return {
- user: event.locals.user
- };
-}
diff --git a/tatort/src/routes/(angemeldet)/+layout.svelte b/tatort/src/routes/(angemeldet)/+layout.svelte
deleted file mode 100644
index bbc47d3..0000000
--- a/tatort/src/routes/(angemeldet)/+layout.svelte
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
diff --git a/tatort/src/routes/(angemeldet)/+page.svelte b/tatort/src/routes/(angemeldet)/+page.svelte
deleted file mode 100644
index dc92470..0000000
--- a/tatort/src/routes/(angemeldet)/+page.svelte
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
- {#if data.user.admin}
-
-
-
- Liste
-
-
-
- Verschaffe Dir einen Überblick über alle gespeicherten Tatorte.
-
-
- {/if}
- {#if data.user.admin}
-
-
-
- Neueer Vorgang
-
-
-
Stelle einen weiteren Tatort für die Anwendung bereit.
-
- {/if}
- {#if data.user.admin}
-
-
-
- Hinzufügen
-
-
-
Fügen Sie einem Tatort Bilder hinzu.
-
- {/if}
-
-
-
- Ansicht
-
-
-
Schau Dir einen Tatort in der 3D Ansicht an.
-
-
-
diff --git a/tatort/src/routes/(angemeldet)/list/+page.svelte b/tatort/src/routes/(angemeldet)/list/+page.svelte
deleted file mode 100644
index fff40ab..0000000
--- a/tatort/src/routes/(angemeldet)/list/+page.svelte
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
-
-
Liste der Vorgänge
-
-
-
- {#each list as item}
- -
-
-
-
-
-
- {/each}
-
-
-
diff --git a/tatort/src/routes/(angemeldet)/list/[vorgang]/+page.svelte b/tatort/src/routes/(angemeldet)/list/[vorgang]/+page.svelte
deleted file mode 100644
index 9b4c240..0000000
--- a/tatort/src/routes/(angemeldet)/list/[vorgang]/+page.svelte
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
Vorgang {$page.params.vorgang}
-
-
-
diff --git a/tatort/src/routes/(angemeldet)/tatorte/+page.server.js b/tatort/src/routes/(angemeldet)/tatorte/+page.server.js
deleted file mode 100644
index 48f197d..0000000
--- a/tatort/src/routes/(angemeldet)/tatorte/+page.server.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { client } from '$lib/minio';
-import { fail } from '@sveltejs/kit';
-
-import caseNumberOccupied from '$lib/helper/caseNumberOccupied';
-
-/** @type {import('./$types').Actions} */
-export const actions = {
- default: async ({ request }) => {
- const data = await request.formData();
- const caseNumber = data.get('caseNumber');
- const description = data.get('description');
-
- if (!caseNumber) {
- return fail(400, {
- caseNumber,
- description,
- error: { caseNumber: 'Es muss eine Vorgangsnummer vorhanden sein.' }
- });
- }
-
- if (await caseNumberOccupied(`${caseNumber}`)) {
- return fail(400, {
- caseNumber,
- description,
- error: { caseNumber: 'Die Vorgangsnummer wurde im System bereits angelegt.' }
- });
- }
-
- const config = `${JSON.stringify({ caseNumber, description, version: 1 })}\n`;
-
- await client.putObject('tatort', `${caseNumber}/config.json`, config, {
- 'Content-Type': 'application/json'
- });
-
- return { success: true };
- }
-};
diff --git a/tatort/src/routes/(angemeldet)/tatorte/+page.svelte b/tatort/src/routes/(angemeldet)/tatorte/+page.svelte
deleted file mode 100644
index 8b657e5..0000000
--- a/tatort/src/routes/(angemeldet)/tatorte/+page.svelte
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
Neuer Vorgang
-
-
-
-
-
vorgang anlegen
- {#if form?.success}
- Vorgang erfolgreich angelegt
- {:else}
- Fehler beim Upload
- {/if}
-
-
-
-
diff --git a/tatort/src/routes/(angemeldet)/upload/+page.server.js b/tatort/src/routes/(angemeldet)/upload/+page.server.js
deleted file mode 100644
index 4d08dcc..0000000
--- a/tatort/src/routes/(angemeldet)/upload/+page.server.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import path from 'path';
-import { writeFile } from 'fs/promises';
-import { createReadStream } from 'fs';
-import Minio from 'minio';
-import { Readable } from 'stream';
-const MINIO_ACCESS_KEY = 'tMhLrfog47lMm0HZ';
-import { client } from '$lib/minio';
-import { fail } from '@sveltejs/kit';
-
-function isRequiredFieldValid(value) {
- if (value == null) return false;
-
- if (typeof value === 'string' || value instanceof String) return value.trim() !== '';
-
- return true;
-}
-
-/** @type {import('./$types').Actions} */
-export const actions = {
- url: async ({ request }) => {
- const data = await request.formData();
- const vorgang = data.get('vorgang');
- const name = data.get('name');
- const type = data.get('type');
- const fileName = data.get('fileName');
-
- let objectName = `${vorgang}/${name}`;
- switch (type) {
- case 'image/png':
- if (!objectName.endsWith('.png')) objectName += '.png';
- break;
- case '':
- if (fileName.endsWith('.glb') && !objectName.endsWith('.glb')) objectName += '.glb';
- }
-
- const url = await client.presignedPutObject('tatort', objectName);
-
- return { url };
- },
- validate: async ({ request }) => {
- const requestData = await request.formData();
- const data = Object.fromEntries(requestData);
- const vorgang = data.vorgang;
- const name = data.name;
- let success = true;
- let err = {};
-
- if (isRequiredFieldValid(vorgang)) err.vorgang = null;
- else {
- err.vorgang = 'Das Feld Vorgang darf nicht leer bleiben.';
- success = false;
- }
-
- if (isRequiredFieldValid(name)) err.name = null;
- else {
- err.name = 'Das Feld Name darf nicht leer bleiben.';
- success = false;
- }
-
- if (success) return { success };
-
- return fail(400, err);
- },
-
- upload: async ({ request }) => {
- const requestData = await request.formData();
- const data = Object.fromEntries(requestData);
- const vorgang = data.vorgang;
- const name = data.name;
- console.log('I:', vorgang, name);
-
- const url = await client.presignedPutObject('tatort', `${vorgang}/${name}`, 60);
-
- console.log('O:', url);
- return { url };
- },
- upload3: async ({ request }) => {
- const requestData = await request.formData();
- const data = Object.fromEntries(requestData);
- const name = data.name;
- const stream = data.file.stream();
- console.log('Data:', stream);
- const metaData = { 'Content-Type': 'model-gtlf-binary', 'X-VorgangsNr': '4711' };
- const result = new Promise((resolve, reject) => {
- client.putObject('tatort', name, Readable.from(stream), metaData, function (err, etag) {
- if (err) return reject(err);
- resolve(etag);
- });
- });
- let etag = null;
- let error = null;
- try {
- etag = await result;
- console.log(etag);
- } catch (err) {
- error = err;
- console.log('Error:', err);
- }
-
- return { etag, error };
- //await writeFile(filePath, Buffer.from(await data.file.arrayBuffer()));
- }
-};
diff --git a/tatort/src/routes/(angemeldet)/upload/+page.svelte b/tatort/src/routes/(angemeldet)/upload/+page.svelte
deleted file mode 100644
index 5937f13..0000000
--- a/tatort/src/routes/(angemeldet)/upload/+page.svelte
+++ /dev/null
@@ -1,244 +0,0 @@
-
-
-
-
-
Datei zu Vorgang hinzufügen
-
-
-
-
-
-
- This information will be displayed publicly so be careful what you share.
-
-
-
-
-
-
- {#if formErrors?.vorgang}
-
{formErrors.vorgang}
- {/if}
-
-
-
-
-
- {#if formErrors?.name}
-
{formErrors.name}
- {/if}
-
-
-
-
-
-
-
-
-
-
oder ziehe sie ins Feld
-
-
GLB Dateien bis zu 1GB
- {#if files?.length}
-
-
Datei: {files[0].name}
-
- Größe: {shortenFileSize(files[0].size)}
-
-
- {/if}
-
-
- {#if formErrors?.file}
-
{formErrors.file}
- {/if}
-
-
-
-
-
-
-
-
-
-
-
-
Upload
- {#if inProgress}
- Upload läuft...
- {:else if etag}
- Upload erfolgreich
- {:else}
- Fehler beim Upload
- {/if}
-
-
-
-
diff --git a/tatort/src/routes/(angemeldet)/view/+page.server.js b/tatort/src/routes/(angemeldet)/view/+page.server.js
deleted file mode 100644
index 337f6e4..0000000
--- a/tatort/src/routes/(angemeldet)/view/+page.server.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import caseNumberOccupied from '$lib/helper/caseNumberOccupied';
-import { fail, redirect } from '@sveltejs/kit';
-
-/** @type {import('./$types').Actions} */
-export const actions = {
- default: async ({ request }) => {
- const data = await request.formData();
- const caseNumber = data.get('caseNumber');
-
- if (!caseNumber) {
- return fail(400, {
- success: false,
- caseNumber,
- error: { caseNumber: 'Die Vorgangsnummer darf nicht leer sein.' }
- });
- }
-
- if (!(await caseNumberOccupied(caseNumber))) {
- return fail(400, {
- success: false,
- caseNumber,
- error: { caseNumber: 'Die Vorgangsnummer existiert in dieser Anwendung nicht.' }
- });
- }
- throw redirect(303, `/list/${caseNumber}`);
- }
-};
diff --git a/tatort/src/routes/(angemeldet)/view/+page.svelte b/tatort/src/routes/(angemeldet)/view/+page.svelte
deleted file mode 100644
index 997ba49..0000000
--- a/tatort/src/routes/(angemeldet)/view/+page.svelte
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
Vorgang ansehen
-
-
-
-
diff --git a/tatort/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.server.js b/tatort/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.server.js
deleted file mode 100644
index 131154f..0000000
--- a/tatort/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.server.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { client } from '$lib/minio';
-
-/** @type {import('./$types').PageServerLoad} */
-export async function load({ params }) {
- const { vorgang, tatort } = params;
- const url = await client.presignedUrl('GET', 'tatort', `${vorgang}/${tatort}`);
- return { url };
-}
diff --git a/tatort/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.svelte b/tatort/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.svelte
deleted file mode 100644
index 5de3a8f..0000000
--- a/tatort/src/routes/(angemeldet)/view/[vorgang]/[tatort]/+page.svelte
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
Loading {progress}%
-
-
-
-
diff --git a/tatort/src/routes/+layout.svelte b/tatort/src/routes/+layout.svelte
deleted file mode 100644
index 2e511e0..0000000
--- a/tatort/src/routes/+layout.svelte
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/tatort/src/routes/anmeldung/+layout.svelte b/tatort/src/routes/anmeldung/+layout.svelte
deleted file mode 100644
index d3622c6..0000000
--- a/tatort/src/routes/anmeldung/+layout.svelte
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/tatort/src/routes/anmeldung/+page.server.js b/tatort/src/routes/anmeldung/+page.server.js
deleted file mode 100644
index 6daba80..0000000
--- a/tatort/src/routes/anmeldung/+page.server.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { dev } from '$app/environment';
-import { fail, redirect } from '@sveltejs/kit';
-import { authenticate } from '$lib/auth';
-
-const COOKIE_NAME = 'session';
-
-/** @type {import('./$types').Actions} */
-export const actions = {
- login: async ({ request, cookies }) => {
- const data = await request.formData();
- const user = data.get('user');
- const password = data.get('password');
-
- const token = authenticate(user, password);
-
- if (!token) return fail(400, { user, incorrect: true });
-
- cookies.set(COOKIE_NAME, token, {
- path: '/',
- httpOnly: true,
- sameSite: 'strict',
- secure: !dev
- });
- throw redirect(303, '/');
- },
- logout: async (event) => {
- event.cookies.delete(COOKIE_NAME);
- event.locals.user = null;
- return { success: true };
- }
-};
diff --git a/tatort/src/routes/anmeldung/+page.svelte b/tatort/src/routes/anmeldung/+page.svelte
deleted file mode 100644
index d953f3b..0000000
--- a/tatort/src/routes/anmeldung/+page.svelte
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
-

-
-
- Anmeldung zum 3D Tatort
-
-
-
-
-
-
-
diff --git a/tatort/src/routes/api/list/[[vorgang]]/+server.js b/tatort/src/routes/api/list/[[vorgang]]/+server.js
deleted file mode 100644
index 9115150..0000000
--- a/tatort/src/routes/api/list/[[vorgang]]/+server.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import { client } from '$lib/minio';
-
-/** @type {import('./$types').RequestHandler} */
-export async function GET({ params }) {
- const prefix = params.vorgang ? `${params.vorgang}/` : '';
- let stream = client.listObjectsV2('tatort', prefix, false, '');
- const result = new ReadableStream({
- start(controller) {
- stream.on('data', (data) => {
- if (prefix === '') {
- if (data.prefix)
- controller.enqueue(`${JSON.stringify({ ...data, name: data.prefix.slice(0, -1) })}\n`);
- return;
- }
-
- const name = data.name.slice(prefix.length);
- if (name === 'config.json') return;
-
- controller.enqueue(`${JSON.stringify({ ...data, name, prefix })}\n`);
- });
- stream.on('end', () => {
- controller.close();
- });
- },
- cancel() {
- stream.destroy();
- }
- });
-
- return new Response(result, {
- headers: {
- 'content-type': 'text/event-stream'
- }
- });
-}
diff --git a/tatort/src/routes/api/tatort/+server.js b/tatort/src/routes/api/tatort/+server.js
deleted file mode 100644
index dbc89c7..0000000
--- a/tatort/src/routes/api/tatort/+server.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { client } from '$lib/minio';
-
-/** @type {import('./$types').RequestHandler} */
-export async function GET() {
- var stream = client.listObjectsV2('tatort', '', true);
- const result = new ReadableStream({
- start(controller) {
- stream.on('data', (data) => {
- //console.log(data);
- controller.enqueue(`${JSON.stringify(data)}\n`);
- });
- stream.on('end', () => {
- controller.close();
- });
- },
- cancel() {
- stream.destroy();
- }
- });
-
- return new Response(result, {
- headers: {
- 'content-type': 'text/event-stream'
- }
- });
-}
diff --git a/tatort/src/routes/api/upload/+server.js b/tatort/src/routes/api/upload/+server.js
deleted file mode 100644
index e870252..0000000
--- a/tatort/src/routes/api/upload/+server.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { client } from '$lib/minio';
-
-/** @type {import('./$types').RequestHandler} */
-export async function GET(params) {
- console.log('GET', params);
-}
diff --git a/tatort/static/Landeswappen_NI.svg b/tatort/static/Landeswappen_NI.svg
deleted file mode 100644
index 587fcc8..0000000
--- a/tatort/static/Landeswappen_NI.svg
+++ /dev/null
@@ -1,1300 +0,0 @@
-
-
diff --git a/tatort/static/favicon.png b/tatort/static/favicon.png
deleted file mode 100644
index 825b9e6..0000000
Binary files a/tatort/static/favicon.png and /dev/null differ
diff --git a/tatort/svelte.config.js b/tatort/svelte.config.js
deleted file mode 100644
index da2ab37..0000000
--- a/tatort/svelte.config.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import adapter from '@sveltejs/adapter-node';
-import { vitePreprocess } from '@sveltejs/kit/vite';
-
-/** @type {import('@sveltejs/kit').Config} */
-const config = {
- kit: {
- // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
- // If your environment is not supported or you settled on a specific environment, switch out the adapter.
- // See https://kit.svelte.dev/docs/adapters for more information about adapters.
- adapter: adapter()
- },
- preprocess: vitePreprocess(),
- onwarn: (warning, defaultHandler) => {
- // don't warn on