Compare commits

..

2 Commits

Author SHA1 Message Date
db1d29f510 Updated boostrap to mitigate missing icons 2024-07-02 20:14:16 +02:00
f3e306b084 AFLOW-46-ui-duplication
Added AFLOW-46

Reviewed-on: #1
2024-06-19 18:34:40 +02:00
12 changed files with 188 additions and 408 deletions

450
package-lock.json generated
View File

@ -46,21 +46,6 @@
"typescript": "^5.0.4" "typescript": "^5.0.4"
} }
}, },
"node_modules/@antfu/ni": {
"version": "0.21.4",
"resolved": "https://registry.npmjs.org/@antfu/ni/-/ni-0.21.4.tgz",
"integrity": "sha512-O0Uv9LbLDSoEg26fnMDdDRiPwFJnQSoD4WnrflDwKCJm8Cx/0mV4cGxwBLXan5mGIrpK4Dd7vizf4rQm0QCEAA==",
"dev": true,
"bin": {
"na": "bin/na.mjs",
"nci": "bin/nci.mjs",
"ni": "bin/ni.mjs",
"nlx": "bin/nlx.mjs",
"nr": "bin/nr.mjs",
"nu": "bin/nu.mjs",
"nun": "bin/nun.mjs"
}
},
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
"version": "7.21.4", "version": "7.21.4",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
@ -448,25 +433,16 @@
} }
}, },
"node_modules/@prisma/debug": { "node_modules/@prisma/debug": {
"version": "4.16.2", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-4.16.2.tgz", "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-4.13.0.tgz",
"integrity": "sha512-7L7WbG0qNNZYgLpsVB8rCHCXEyHFyIycRlRDNwkVfjQmACC2OW6AWCYCbfdjQhkF/t7+S3njj8wAWAocSs+Brw==", "integrity": "sha512-JrltTewF/paRb5mcM5OvcEi9DtdX0sINOAswruxKQrwOLA7Phqb52OfY38MIzGrsrJ8iUGVqQ5bpYZYpxOGCsQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/debug": "4.1.8", "@types/debug": "4.1.7",
"debug": "4.3.4", "debug": "4.3.4",
"strip-ansi": "6.0.1" "strip-ansi": "6.0.1"
} }
}, },
"node_modules/@prisma/debug/node_modules/@types/debug": {
"version": "4.1.8",
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz",
"integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==",
"dev": true,
"dependencies": {
"@types/ms": "*"
}
},
"node_modules/@prisma/debug/node_modules/debug": { "node_modules/@prisma/debug/node_modules/debug": {
"version": "4.3.4", "version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -491,17 +467,17 @@
"dev": true "dev": true
}, },
"node_modules/@prisma/engine-core": { "node_modules/@prisma/engine-core": {
"version": "4.6.1", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/@prisma/engine-core/-/engine-core-4.6.1.tgz", "resolved": "https://registry.npmjs.org/@prisma/engine-core/-/engine-core-4.13.0.tgz",
"integrity": "sha512-JtvdEy9GeGU/xeTYOq3SEN4DiAytHoQty/4pJTZ5vNoGMnu7XF1ToprOCPzyT5oSgm3oQQuwpXMVaebJegwA4Q==", "integrity": "sha512-D+jooGRXKAZcsBanhvFhqXMvNEiNaP+OaOvFOM/eKQQXM0FwtKc27l7mQFv4dd/zOufr5T+fJyrTTQhWyV8oFg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@opentelemetry/api": "^1.1.0", "@opentelemetry/api": "^1.3.0",
"@opentelemetry/sdk-trace-base": "^1.4.0", "@opentelemetry/sdk-trace-base": "^1.8.0",
"@prisma/debug": "4.6.1", "@prisma/debug": "4.13.0",
"@prisma/engines": "4.6.1", "@prisma/engines": "4.13.0",
"@prisma/generator-helper": "4.6.1", "@prisma/generator-helper": "4.13.0",
"@prisma/get-platform": "4.6.1", "@prisma/get-platform": "4.13.0",
"chalk": "4.1.2", "chalk": "4.1.2",
"execa": "5.1.1", "execa": "5.1.1",
"get-stream": "6.0.1", "get-stream": "6.0.1",
@ -509,63 +485,8 @@
"new-github-issue-url": "0.2.1", "new-github-issue-url": "0.2.1",
"p-retry": "4.6.2", "p-retry": "4.6.2",
"strip-ansi": "6.0.1", "strip-ansi": "6.0.1",
"undici": "5.11.0" "ts-pattern": "4.2.2",
} "undici": "5.21.0"
},
"node_modules/@prisma/engine-core/node_modules/@prisma/debug": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-4.6.1.tgz",
"integrity": "sha512-BezDvSenTgQDQ6WA3TdTDGcrt0Oh4vmpZtmSOYm1KaSZiSVIL2xT0P9TFM3vtOa4wn7sn/003PyTSxyHS3mShg==",
"dev": true,
"dependencies": {
"@types/debug": "4.1.7",
"debug": "4.3.4",
"strip-ansi": "6.0.1"
}
},
"node_modules/@prisma/engine-core/node_modules/@prisma/engines": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.6.1.tgz",
"integrity": "sha512-3u2/XxvxB+Q7cMXHnKU0CpBiUK1QWqpgiBv28YDo1zOIJE3FCF8DI2vrp6vuwjGt5h0JGXDSvmSf4D4maVjJdw==",
"dev": true,
"hasInstallScript": true
},
"node_modules/@prisma/engine-core/node_modules/@prisma/generator-helper": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/@prisma/generator-helper/-/generator-helper-4.6.1.tgz",
"integrity": "sha512-70XBmqDhmpe8H35ttOJOgyg1OpppO/uelILB1SIwjeSI7PHHdU2+Y/+LkpnifkCEpSZKIhxEIPbHx17m2neAsA==",
"dev": true,
"dependencies": {
"@prisma/debug": "4.6.1",
"@types/cross-spawn": "6.0.2",
"chalk": "4.1.2",
"cross-spawn": "7.0.3"
}
},
"node_modules/@prisma/engine-core/node_modules/@prisma/get-platform": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-4.6.1.tgz",
"integrity": "sha512-JBlzN53Q00bTfk3mPxeprAx8LLN7bmEwTGZ3fFjbCKZACsHtbDaaqtIkqXwk0tv1jJ3jLYZfcq7NlvdOPyJhGw==",
"dev": true,
"dependencies": {
"@prisma/debug": "4.6.1"
}
},
"node_modules/@prisma/engine-core/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
} }
}, },
"node_modules/@prisma/engine-core/node_modules/indent-string": { "node_modules/@prisma/engine-core/node_modules/indent-string": {
@ -577,16 +498,16 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/@prisma/engine-core/node_modules/ms": { "node_modules/@prisma/engine-core/node_modules/ts-pattern": {
"version": "2.1.2", "version": "4.2.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-4.2.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-qzJMo2pbkUJWusRH5o8xR+xogn6RmvViyUgwBFTtRENLse470clCGjHDf6haWGZ1AOmk8XkEohUoBW8Uut6Scg==",
"dev": true "dev": true
}, },
"node_modules/@prisma/engines": { "node_modules/@prisma/engines": {
"version": "4.16.2", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.16.2.tgz", "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.13.0.tgz",
"integrity": "sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==", "integrity": "sha512-HrniowHRZXHuGT9XRgoXEaP2gJLXM5RMoItaY2PkjvuZ+iHc0Zjbm/302MB8YsPdWozAPHHn+jpFEcEn71OgPw==",
"dev": true, "dev": true,
"hasInstallScript": true "hasInstallScript": true
}, },
@ -596,21 +517,21 @@
"integrity": "sha512-3jum8/YSudeSN0zGW5qkpz+wAN2V/NYCQ+BPjvHYDfWatLWlQkqy99toX0GysDeaUoBIJg1vaz2yKqiA3CFcQw==" "integrity": "sha512-3jum8/YSudeSN0zGW5qkpz+wAN2V/NYCQ+BPjvHYDfWatLWlQkqy99toX0GysDeaUoBIJg1vaz2yKqiA3CFcQw=="
}, },
"node_modules/@prisma/fetch-engine": { "node_modules/@prisma/fetch-engine": {
"version": "4.16.2", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-4.16.2.tgz", "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-4.13.0.tgz",
"integrity": "sha512-lnCnHcOaNn0kw8qTJbVcNhyfIf5Lus2GFXbj3qpkdKEIB9xLgqkkuTP+35q1xFaqwQ0vy4HFpdRUpFP7njE15g==", "integrity": "sha512-khMMm3I8nMUgwd7DoM1wBFjMKn/Z5PZF27EMQGPtquM1nRt601blJbep0qodXR7oHioQolCK8gfbw5Hfdml1mg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@prisma/debug": "4.16.2", "@prisma/debug": "4.13.0",
"@prisma/get-platform": "4.16.2", "@prisma/get-platform": "4.13.0",
"chalk": "4.1.2",
"execa": "5.1.1", "execa": "5.1.1",
"find-cache-dir": "3.3.2", "find-cache-dir": "3.3.2",
"fs-extra": "11.1.1", "fs-extra": "11.1.1",
"hasha": "5.2.2", "hasha": "5.2.2",
"http-proxy-agent": "7.0.0", "http-proxy-agent": "5.0.0",
"https-proxy-agent": "7.0.0", "https-proxy-agent": "5.0.1",
"kleur": "4.1.5", "node-fetch": "2.6.9",
"node-fetch": "2.6.11",
"p-filter": "2.1.0", "p-filter": "2.1.0",
"p-map": "4.0.0", "p-map": "4.0.0",
"p-retry": "4.6.2", "p-retry": "4.6.2",
@ -620,95 +541,34 @@
"tempy": "1.0.1" "tempy": "1.0.1"
} }
}, },
"node_modules/@prisma/fetch-engine/node_modules/agent-base": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
"integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
"dependencies": {
"debug": "^4.3.4"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@prisma/fetch-engine/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/@prisma/fetch-engine/node_modules/http-proxy-agent": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
"integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
"dev": true,
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@prisma/fetch-engine/node_modules/https-proxy-agent": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz",
"integrity": "sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==",
"dev": true,
"dependencies": {
"agent-base": "^7.0.2",
"debug": "4"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@prisma/fetch-engine/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"node_modules/@prisma/generator-helper": { "node_modules/@prisma/generator-helper": {
"version": "4.16.2", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/@prisma/generator-helper/-/generator-helper-4.16.2.tgz", "resolved": "https://registry.npmjs.org/@prisma/generator-helper/-/generator-helper-4.13.0.tgz",
"integrity": "sha512-bMOH7y73Ui7gpQrioFeavMQA+Tf8ksaVf8Nhs9rQNzuSg8SSV6E9baczob0L5KGZTSgYoqnrRxuo03kVJYrnIg==", "integrity": "sha512-Zx9rtbsEIU/9DKnGRvmjLdyeyhzeeXNFp1alkRh1w//rQ5jTcobiay/jU4Qo+EQOs2bnWEfUeiBoOjfaysdLNg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@prisma/debug": "4.16.2", "@prisma/debug": "4.13.0",
"@types/cross-spawn": "6.0.2", "@types/cross-spawn": "6.0.2",
"cross-spawn": "7.0.3", "chalk": "4.1.2",
"kleur": "4.1.5" "cross-spawn": "7.0.3"
} }
}, },
"node_modules/@prisma/get-platform": { "node_modules/@prisma/get-platform": {
"version": "4.16.2", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-4.16.2.tgz", "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-4.13.0.tgz",
"integrity": "sha512-fnDey1/iSefHJRMB+w243BhWENf+paRouPMdCqIVqu8dYkR1NqhldblsSUC4Zr2sKS7Ta2sK4OLdt9IH+PZTfw==", "integrity": "sha512-HWBgQNpRi1qEXj24w/qsWCpTW4vKP2/pdiYTyl2SSEVoK4o5izHUt0PQzNl5St5CGr4SDcSyi0C3fXINd46c6A==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@prisma/debug": "4.16.2", "@prisma/debug": "4.13.0",
"chalk": "4.1.2",
"escape-string-regexp": "4.0.0", "escape-string-regexp": "4.0.0",
"execa": "5.1.1", "execa": "5.1.1",
"fs-jetpack": "5.1.0", "fs-jetpack": "5.1.0",
"kleur": "4.1.5",
"replace-string": "3.1.0", "replace-string": "3.1.0",
"strip-ansi": "6.0.1", "strip-ansi": "6.0.1",
"tempy": "1.0.1", "tempy": "1.0.1",
"terminal-link": "2.1.1", "terminal-link": "2.1.1",
"ts-pattern": "4.3.0" "ts-pattern": "4.2.2"
} }
}, },
"node_modules/@prisma/get-platform/node_modules/escape-string-regexp": { "node_modules/@prisma/get-platform/node_modules/escape-string-regexp": {
@ -723,46 +583,53 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/@prisma/get-platform/node_modules/ts-pattern": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-4.2.2.tgz",
"integrity": "sha512-qzJMo2pbkUJWusRH5o8xR+xogn6RmvViyUgwBFTtRENLse470clCGjHDf6haWGZ1AOmk8XkEohUoBW8Uut6Scg==",
"dev": true
},
"node_modules/@prisma/internals": { "node_modules/@prisma/internals": {
"version": "4.16.2", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/@prisma/internals/-/internals-4.16.2.tgz", "resolved": "https://registry.npmjs.org/@prisma/internals/-/internals-4.13.0.tgz",
"integrity": "sha512-/3OiSADA3RRgsaeEE+MDsBgL6oAMwddSheXn6wtYGUnjERAV/BmF5bMMLnTykesQqwZ1s8HrISrJ0Vf6cjOxMg==", "integrity": "sha512-TxdTQFJO0zMCx0Tgb6UZt3WsVt+etvtWx+LaSWf4Pk1ECGte5w+9iiuypwjiLortSn7qm6n5KVWTXFOnnZr4Ww==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@antfu/ni": "0.21.4", "@prisma/debug": "4.13.0",
"@opentelemetry/api": "1.4.1", "@prisma/engine-core": "4.13.0",
"@prisma/debug": "4.16.2", "@prisma/engines": "4.13.0",
"@prisma/engines": "4.16.2", "@prisma/fetch-engine": "4.13.0",
"@prisma/fetch-engine": "4.16.2", "@prisma/generator-helper": "4.13.0",
"@prisma/generator-helper": "4.16.2", "@prisma/get-platform": "4.13.0",
"@prisma/get-platform": "4.16.2", "@prisma/ni": "4.13.0",
"@prisma/prisma-fmt-wasm": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81", "@prisma/prisma-fmt-wasm": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a",
"archiver": "5.3.1", "archiver": "5.3.1",
"arg": "5.0.2", "arg": "5.0.2",
"checkpoint-client": "1.1.24", "chalk": "4.1.2",
"checkpoint-client": "1.1.23",
"cli-truncate": "2.1.0", "cli-truncate": "2.1.0",
"dotenv": "16.0.3", "dotenv": "16.0.3",
"escape-string-regexp": "4.0.0", "escape-string-regexp": "4.0.0",
"execa": "5.1.1", "execa": "5.1.1",
"find-up": "5.0.0", "find-up": "5.0.0",
"fp-ts": "2.16.0", "fp-ts": "2.13.1",
"fs-extra": "11.1.1", "fs-extra": "11.1.1",
"fs-jetpack": "5.1.0", "fs-jetpack": "5.1.0",
"global-dirs": "3.0.1", "global-dirs": "3.0.1",
"globby": "11.1.0", "globby": "11.1.0",
"indent-string": "4.0.0", "has-yarn": "2.1.0",
"is-windows": "1.0.2", "is-windows": "^1.0.2",
"is-wsl": "2.2.0", "is-wsl": "^2.2.0",
"kleur": "4.1.5",
"new-github-issue-url": "0.2.1", "new-github-issue-url": "0.2.1",
"node-fetch": "2.6.11", "node-fetch": "2.6.9",
"npm-packlist": "5.1.3", "npm-packlist": "5.1.3",
"open": "7.4.2", "open": "7",
"ora": "5.4.1",
"p-map": "4.0.0", "p-map": "4.0.0",
"prompts": "2.4.2", "prompts": "2.4.2",
"read-pkg-up": "7.0.1", "read-pkg-up": "7.0.1",
"replace-string": "3.1.0", "replace-string": "3.1.0",
"resolve": "1.22.2", "resolve": "1.22.1",
"string-width": "4.2.3", "string-width": "4.2.3",
"strip-ansi": "6.0.1", "strip-ansi": "6.0.1",
"strip-indent": "3.0.0", "strip-indent": "3.0.0",
@ -771,7 +638,7 @@
"tempy": "1.0.1", "tempy": "1.0.1",
"terminal-link": "2.1.1", "terminal-link": "2.1.1",
"tmp": "0.2.1", "tmp": "0.2.1",
"ts-pattern": "4.3.0" "ts-pattern": "^4.0.1"
} }
}, },
"node_modules/@prisma/internals/node_modules/escape-string-regexp": { "node_modules/@prisma/internals/node_modules/escape-string-regexp": {
@ -786,42 +653,16 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/@prisma/internals/node_modules/fp-ts": { "node_modules/@prisma/ni": {
"version": "2.16.0", "version": "4.13.0",
"resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/ni/-/ni-4.13.0.tgz",
"integrity": "sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ==", "integrity": "sha512-FN1wV1I61P6WndheLpja5oQuzIW2WkYqFViPL5GS5dhrpsO69SlyOnAsxpfCKUa5HhXINi7fowgdcngK1QDW9w==",
"dev": true "dev": true
}, },
"node_modules/@prisma/internals/node_modules/indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/@prisma/internals/node_modules/resolve": {
"version": "1.22.2",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
"integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
"dev": true,
"dependencies": {
"is-core-module": "^2.11.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/@prisma/prisma-fmt-wasm": { "node_modules/@prisma/prisma-fmt-wasm": {
"version": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81", "version": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a",
"resolved": "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81.tgz", "resolved": "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a.tgz",
"integrity": "sha512-g090+dEH7wrdCw359+8J9+TGH84qK28V/dxwINjhhNCtju9lej99z9w/AVsJP9UhhcCPS4psYz4iu8d53uxVpA==", "integrity": "sha512-kEYSUa3XT1Oiu/MbdUkyjfVtAOQmZz69KGKFH/GWoQNLvkscrqy4J4XewEY80BrVuyC3vbV7un4kea0xklWhpA==",
"dev": true "dev": true
}, },
"node_modules/@sentry-internal/tracing": { "node_modules/@sentry-internal/tracing": {
@ -1656,33 +1497,18 @@
} }
}, },
"node_modules/checkpoint-client": { "node_modules/checkpoint-client": {
"version": "1.1.24", "version": "1.1.23",
"resolved": "https://registry.npmjs.org/checkpoint-client/-/checkpoint-client-1.1.24.tgz", "resolved": "https://registry.npmjs.org/checkpoint-client/-/checkpoint-client-1.1.23.tgz",
"integrity": "sha512-nIOlLhDS7MKs4tUzS3LCm+sE1NgTCVnVrXlD0RRxaoEkkLu8LIWSUNiNWai6a+LK5unLzTyZeTCYX1Smqy0YoA==", "integrity": "sha512-NrGvMiH1fUcZwrYc0Z+YTn7q9ysV0kPgVyDKZ5jrfIerFJuSllvyGsY7bHeQSEiljaIaUP1Q/xutZ8q1s7PGzg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"ci-info": "3.8.0", "ci-info": "3.3.0",
"env-paths": "2.2.1", "env-paths": "2.2.1",
"fast-write-atomic": "0.2.1", "fast-write-atomic": "0.2.1",
"make-dir": "3.1.0", "make-dir": "3.1.0",
"ms": "2.1.3", "ms": "2.1.3",
"node-fetch": "2.6.11", "node-fetch": "2.6.7",
"uuid": "9.0.0" "uuid": "8.3.2"
}
},
"node_modules/checkpoint-client/node_modules/ci-info": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
"integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/sibiraj-s"
}
],
"engines": {
"node": ">=8"
} }
}, },
"node_modules/checkpoint-client/node_modules/ms": { "node_modules/checkpoint-client/node_modules/ms": {
@ -1691,13 +1517,24 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true "dev": true
}, },
"node_modules/checkpoint-client/node_modules/uuid": { "node_modules/checkpoint-client/node_modules/node-fetch": {
"version": "9.0.0", "version": "2.6.7",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"dev": true, "dev": true,
"bin": { "dependencies": {
"uuid": "dist/bin/uuid" "whatwg-url": "^5.0.0"
},
"engines": {
"node": "4.x || >=6.0.0"
},
"peerDependencies": {
"encoding": "^0.1.0"
},
"peerDependenciesMeta": {
"encoding": {
"optional": true
}
} }
}, },
"node_modules/ci-info": { "node_modules/ci-info": {
@ -4250,9 +4087,9 @@
"dev": true "dev": true
}, },
"node_modules/node-fetch": { "node_modules/node-fetch": {
"version": "2.6.11", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz",
"integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"whatwg-url": "^5.0.0" "whatwg-url": "^5.0.0"
@ -4285,9 +4122,9 @@
} }
}, },
"node_modules/normalize-package-data/node_modules/semver": { "node_modules/normalize-package-data/node_modules/semver": {
"version": "7.5.4", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
@ -5003,6 +4840,28 @@
"strip-ansi": "6.0.1" "strip-ansi": "6.0.1"
} }
}, },
"node_modules/prisma-dbml-generator/node_modules/@prisma/engine-core": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/@prisma/engine-core/-/engine-core-4.6.1.tgz",
"integrity": "sha512-JtvdEy9GeGU/xeTYOq3SEN4DiAytHoQty/4pJTZ5vNoGMnu7XF1ToprOCPzyT5oSgm3oQQuwpXMVaebJegwA4Q==",
"dev": true,
"dependencies": {
"@opentelemetry/api": "^1.1.0",
"@opentelemetry/sdk-trace-base": "^1.4.0",
"@prisma/debug": "4.6.1",
"@prisma/engines": "4.6.1",
"@prisma/generator-helper": "4.6.1",
"@prisma/get-platform": "4.6.1",
"chalk": "4.1.2",
"execa": "5.1.1",
"get-stream": "6.0.1",
"indent-string": "4.0.0",
"new-github-issue-url": "0.2.1",
"p-retry": "4.6.2",
"strip-ansi": "6.0.1",
"undici": "5.11.0"
}
},
"node_modules/prisma-dbml-generator/node_modules/@prisma/engines": { "node_modules/prisma-dbml-generator/node_modules/@prisma/engines": {
"version": "4.6.1", "version": "4.6.1",
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.6.1.tgz", "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.6.1.tgz",
@ -5193,6 +5052,15 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/prisma-dbml-generator/node_modules/indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/prisma-dbml-generator/node_modules/ms": { "node_modules/prisma-dbml-generator/node_modules/ms": {
"version": "2.1.3", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@ -5219,6 +5087,18 @@
} }
} }
}, },
"node_modules/prisma-dbml-generator/node_modules/undici": {
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.11.0.tgz",
"integrity": "sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw==",
"dev": true,
"dependencies": {
"busboy": "^1.6.0"
},
"engines": {
"node": ">=12.18"
}
},
"node_modules/prisma-docs-generator": { "node_modules/prisma-docs-generator": {
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/prisma-docs-generator/-/prisma-docs-generator-0.7.0.tgz", "resolved": "https://registry.npmjs.org/prisma-docs-generator/-/prisma-docs-generator-0.7.0.tgz",
@ -5498,9 +5378,9 @@
} }
}, },
"node_modules/read-pkg/node_modules/semver": { "node_modules/read-pkg/node_modules/semver": {
"version": "5.7.2", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"semver": "bin/semver" "semver": "bin/semver"
@ -5745,9 +5625,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "6.3.1", "version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true, "dev": true,
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
@ -6313,9 +6193,9 @@
} }
}, },
"node_modules/ts-pattern": { "node_modules/ts-pattern": {
"version": "4.3.0", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-4.3.0.tgz", "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-4.2.3.tgz",
"integrity": "sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==", "integrity": "sha512-tPg2/owaVtWiimsmXpFEzI5IcfPU2BEwzFbviuSmqqaKIGyy6hyvBF4kxcuhy8UJz+6nEKUOEeaHc43drIuvpQ==",
"dev": true "dev": true
}, },
"node_modules/ts-toolbelt": { "node_modules/ts-toolbelt": {
@ -6644,9 +6524,9 @@
} }
}, },
"node_modules/undici": { "node_modules/undici": {
"version": "5.11.0", "version": "5.21.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.11.0.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz",
"integrity": "sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw==", "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"busboy": "^1.6.0" "busboy": "^1.6.0"
@ -6811,9 +6691,9 @@
} }
}, },
"node_modules/word-wrap": { "node_modules/word-wrap": {
"version": "1.2.5", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
"integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"

View File

@ -23,7 +23,7 @@
"@sentry/tracing": "^7.52.1", "@sentry/tracing": "^7.52.1",
"body-parser": "^1.20.2", "body-parser": "^1.20.2",
"bootstrap": "^5.3.0-alpha3", "bootstrap": "^5.3.0-alpha3",
"bootstrap-icons": "^1.10.5", "bootstrap-icons": "^1.11.0",
"bootstrap-table": "^1.22.1", "bootstrap-table": "^1.22.1",
"csv": "^6.2.11", "csv": "^6.2.11",
"eta": "^2.0.1", "eta": "^2.0.1",

View File

@ -38,7 +38,7 @@ model Item {
SKU String? @unique SKU String? @unique
amount Int @default(1) amount Int @default(1)
name String name String
comment String? @db.VarChar(2048) comment String? @db.VarChar(2048)
status itemStatus @default(normal) /// TODO: Would it be better to create a separate model for this as well instead of providing several static statuses to choose from(enum)? status itemStatus @default(normal) /// TODO: Would it be better to create a separate model for this as well instead of providing several static statuses to choose from(enum)?
contactInfo contactInfo? @relation(fields: [contactInfoId], references: [id]) contactInfo contactInfo? @relation(fields: [contactInfoId], references: [id])
@ -50,13 +50,13 @@ model Item {
categoryId Int? categoryId Int?
contents Item[] @relation("items") /// Item beinhaltet.. contents Item[] @relation("items") /// Item beinhaltet..
baseItem Item[] @relation("items") /// Item zugehörig zu baseItem Item[] @relation("items") /// Item zugehörig zu.
storageLocation StorageLocation? @relation(fields: [storageLocationId], references: [id]) storageLocation StorageLocation? @relation(fields: [storageLocationId], references: [id])
storageLocationId Int? storageLocationId Int?
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
createdBy String? createdBy String?
} }
@ -99,21 +99,6 @@ model contactInfo {
StorageUnit StorageUnit[] StorageUnit StorageUnit[]
Item Item[] Item Item[]
project project[]
projectAssignedUsers project[] @relation("projectAssignedUsers")
}
model project {
id Int @id @default(autoincrement())
name String @unique
description String? @db.VarChar(2048)
// People
manager contactInfo? @relation(fields: [contactInfoId], references: [id]) // Primary, manager of the project
assignedUsers contactInfo[] @relation("projectAssignedUsers") // Secondary, assigned users to the project, stagehands, etc.
contactInfoId Int?
// When does it start and end
startTime DateTime?
endTime DateTime?
} }
/// TODO: Allow multiple types to be used? /// TODO: Allow multiple types to be used?

View File

@ -81,38 +81,16 @@
</li> --> </li> -->
</ul> </ul>
<h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted">
<a href="/projects/" class="nav-link"
>Projects<span class="badge rounded-pill bg-primary" >
Alpha
<span class="visually-hidden">Alpha feature</span>
</span>
</a>
</h6>
<ul class="nav flex-column mb-2">
<li class="nav-item">
<a class="nav-link <%= it.active == 'PROJ_HOME' ? 'active' : ''%>" href="/projects/"><i class="bi bi-kanban"></i> Manage Projects </a>
</li>
<li class="nav-item">
<a class="nav-link <%= it.active == 'PROJ_LIST' ? 'active' : ''%>" href="/projects/lists"><i class="bi bi-card-checklist"></i> Packaging Lists </a>
</li>
<li class="nav-item">
<a class="nav-link <%= it.active == 'PROJ_PEPS' ? 'active' : ''%>" href="/projects/people"><i class="bi bi-people-fill"></i> People </a>
</li>
</ul>
<h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted"> <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted">
<a href="/manage/" class="nav-link" <a href="/manage/" class="nav-link"
>Settings >Settings
<span class="badge rounded-pill bg-danger invisible" id="notifcationInfo"> <span class="badge rounded-pill bg-danger invisible">
1 2
<span class="visually-hidden">changes or updates</span> <span class="visually-hidden">changes or updates</span>
</span> </span>
</a> </a>
</h6> </h6>
<ul class="nav flex-column mb-2"> <ul class="nav flex-column mb-2">
<a class="nav-link <%= it.active == 'SETT_STORE' ? 'active' : ''%>" href="/manage/storages" <a class="nav-link <%= it.active == 'SETT_STORE' ? 'active' : ''%>" href="/manage/storages"
><i class="bi bi-box-seam"></i> Manage storages ><i class="bi bi-box-seam"></i> Manage storages
@ -209,11 +187,6 @@
dataType: 'json', dataType: 'json',
success: function (data) { success: function (data) {
$('#versionInfo').text(`AssetFlow Alpha ${data.version} ${data.commit}`); $('#versionInfo').text(`AssetFlow Alpha ${data.version} ${data.commit}`);
if(data.updateAvailable ){
$('#notifcationInfo').show();
} else {
$('#notifcationInfo').hide();
}
}, },
error: function (data) { error: function (data) {
createNewToast('<i class="bi bi-exclamation-triangle-fill"></i> Unable to load version information', "text-bg-danger", 3000, false) createNewToast('<i class="bi bi-exclamation-triangle-fill"></i> Unable to load version information', "text-bg-danger", 3000, false)

View File

@ -1,49 +0,0 @@
<%~ E.includeFile("../partials/head.eta.html", {"title": "Projects"}) %> <%~ E.includeFile("../partials/controls.eta.html", {"active": "PROJ_HOME"}) %>
<h1>Projectmanager</h1>
<div class="container text-center">
<div class="row">
<a class="card col m-2" href="/manage/categories">
<div class="card-body">
<h1 class="card-title"><i class="bi bi-tag"></i></h1>
<p class="card-text">Manage categories</p>
</div>
</a>
<a class="card col m-2" href="/manage/storages">
<div class="card-body">
<h1 class="card-title"><i class="bi bi-box-seam"></i></h1>
<p class="card-text">Manage storages</p>
</div>
</a>
<a class="card col m-2" href="/manage/import/csv">
<div class="card-body">
<h1 class="card-title"><i class="bi bi-filetype-csv"></i></h1>
<p class="card-text">Import data via CSV</p>
</div>
</a>
<a class="card col m-2" href="/manage/import/json">
<div class="card-body">
<h1 class="card-title"><i class="bi bi-filetype-json"></i></h1>
<p class="card-text">Import data via JSON</p>
</div>
</a>
</div>
</div>
<h2>Recent projects</h2>
<div class="container">
<table class="table">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Status</th>
<!--<th scope="col">Actions</th>-->
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<%~ E.includeFile("../partials/controlsFoot.eta.html") %> <%~ E.includeFile("../partials/foot.eta.html") %>

View File

@ -7,7 +7,6 @@ import testRoute from './test.js';
import dashboardRoute from './dashboard.js'; import dashboardRoute from './dashboard.js';
import itemsRoute from './items.js'; import itemsRoute from './items.js';
import manage_routes from './manage/index.js'; import manage_routes from './manage/index.js';
import project_routes from './projects/index.js';
// Router base is '/' // Router base is '/'
const Router = express.Router({ strict: false }); const Router = express.Router({ strict: false });
@ -15,13 +14,11 @@ const Router = express.Router({ strict: false });
Router.route('/test').get(testRoute.get); Router.route('/test').get(testRoute.get);
Router.route('/items').get(itemsRoute.get); Router.route('/items').get(itemsRoute.get);
Router.use('/projects', project_routes); // has to be before skuRoute Router.route('/:id(\\w{8})').get(skuRoute.get);
Router.route('/:id(\\w{8})').get(skuRoute.get); // we should probably deprecate this
Router.route('/s/:id').get(skuRouteDash.get); Router.route('/s/:id').get(skuRouteDash.get);
Router.use('/manage', manage_routes); Router.use('/manage', manage_routes);
Router.route('/').get(dashboardRoute.get); Router.route('/').get(dashboardRoute.get);
export default Router; export default Router;

View File

@ -8,7 +8,7 @@ function post(req: Request, res: Response) {
// Handle file upload and import // Handle file upload and import
console.log(req.files); console.log(req.files);
if (!req.files || Object.keys(req.files).length === 0) { if (!req.files || Object.keys(req.files).length === 0) {
return res.status(400).send('No files were uploaded'); return res.status(400).send('No files were uploaded.');
} }
const file: UploadedFile = req.files.formFile as UploadedFile; const file: UploadedFile = req.files.formFile as UploadedFile;

View File

@ -1,9 +0,0 @@
import express, { Request, Response } from 'express';
import { prisma, __path, log } from '../../../index.js';
function get(req: Request, res: Response) {
res.render(__path + '/src/frontend/projects/dashboard.eta.html');
}
export default { get };

View File

@ -1,11 +0,0 @@
import express from 'express';
// Route imports
import dashboard from './dashboard.js';
// Router base is '/manage'
const Router = express.Router({ strict: false });
Router.route('/').get(dashboard.get);
export default Router;

View File

@ -3,6 +3,7 @@ function randomInRange(min, max) {
} }
function doTheConfetti() { function doTheConfetti() {
// Create confetti
confetti({ confetti({
angle: randomInRange(90, 110), angle: randomInRange(90, 110),
spread: randomInRange(70, 120), spread: randomInRange(70, 120),

View File

@ -8,6 +8,16 @@ function primeCreateNew() {
return true; return true;
} }
function triggerDuplicationDialog(sourceItemId) {
// Clear the form
$('.form-control').val('');
const form = document.getElementById('ItemModalForm');
document.getElementById('itemModifyModalLabel').innerText= "Duplicate an item";
form.setAttribute('method', 'POST');
getDataForEdit(sourceItemId);
return true;
}
function primeEdit() { function primeEdit() {
const form = document.getElementById('ItemModalForm'); const form = document.getElementById('ItemModalForm');
document.getElementById('itemModifyModalLabel').innerText = 'Edit an item'; document.getElementById('itemModifyModalLabel').innerText = 'Edit an item';

View File

@ -49,6 +49,9 @@ function dataResponseHandler(json) {
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#itemModifyModal" onclick="primeEdit(); getDataForEdit('${item.id}')"> <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#itemModifyModal" onclick="primeEdit(); getDataForEdit('${item.id}')">
<i class="bi bi-pencil"></i> <i class="bi bi-pencil"></i>
</button> </button>
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#itemModifyModal" onclick="triggerDuplicationDialog('${item.id}')">
<i class="bi bi-copy"></i>
</button>
<button class="btn btn-danger" onclick="preFillDeleteModalNxt('${item.id}','items','Item')" data-bs-toggle="modal" data-bs-target="#staticBackdrop"> <button class="btn btn-danger" onclick="preFillDeleteModalNxt('${item.id}','items','Item')" data-bs-toggle="modal" data-bs-target="#staticBackdrop">
<i class="bi bi-trash"></i> <i class="bi bi-trash"></i>
</button>` </button>`