diff --git a/backend/package-lock.json b/backend/package-lock.json
index 28c465c..99a9d05 100644
--- a/backend/package-lock.json
+++ b/backend/package-lock.json
@@ -16,7 +16,6 @@
"cors": "^2.8.5",
"express": "^4.18.2",
"mongoose": "^7.4.1",
- "multer": "^2.0.2",
"node-schedule": "^2.1.1",
"passport": "^0.6.0",
"passport-local": "^1.0.0",
@@ -24,8 +23,7 @@
"speakeasy": "^2.0.0",
"tx2": "^1.0.5",
"underscore": "^1.13.8",
- "web-push": "^3.6.7",
- "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz"
+ "web-push": "^3.6.7"
},
"devDependencies": {
"@types/bcryptjs": "^2.4.2",
@@ -33,7 +31,6 @@
"@types/cors": "^2.8.13",
"@types/express": "^4.17.17",
"@types/express-session": "^1.17.7",
- "@types/multer": "^1.4.11",
"@types/node-schedule": "^2.1.7",
"@types/passport": "^1.0.12",
"@types/passport-local": "^1.0.35",
@@ -271,15 +268,6 @@
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
"dev": true
},
- "node_modules/@types/multer": {
- "version": "1.4.11",
- "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.11.tgz",
- "integrity": "sha512-svK240gr6LVWvv3YGyhLlA+6LRRWA4mnGIU7RcNmgjBYFl6665wcXrRfxGp5tEPVHUNm5FMcmq7too9bxCwX/w==",
- "dev": true,
- "dependencies": {
- "@types/express": "*"
- }
- },
"node_modules/@types/node": {
"version": "20.4.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz",
@@ -787,11 +775,6 @@
"node": ">= 8"
}
},
- "node_modules/append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
- },
"node_modules/array-differ": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
@@ -1040,18 +1023,8 @@
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
},
"node_modules/bytes": {
"version": "3.1.2",
@@ -1293,21 +1266,6 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "node_modules/concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
- "engines": [
- "node >= 6.0"
- ],
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
- }
- },
"node_modules/connect-history-api-fallback": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
@@ -2951,25 +2909,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
- "node_modules/multer": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/multer/-/multer-2.1.0.tgz",
- "integrity": "sha512-TBm6j41rxNohqawsxlsWsNNh/VdV4QFXcBvRcPhXaA05EZ79z0qJ2bQFpync6JBoHTeNY5Q1JpG7AlTjdlfAEA==",
- "license": "MIT",
- "dependencies": {
- "append-field": "^1.0.0",
- "busboy": "^1.6.0",
- "concat-stream": "^2.0.0",
- "type-is": "^1.6.18"
- },
- "engines": {
- "node": ">= 10.16.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
"node_modules/multi-stage-sourcemap": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.3.1.tgz",
@@ -3470,20 +3409,6 @@
"node": ">= 0.8"
}
},
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -3911,23 +3836,6 @@
"node": ">= 0.8"
}
},
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
"node_modules/string-template": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
@@ -4182,12 +4090,6 @@
"node": ">= 0.6"
}
},
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
- "license": "MIT"
- },
"node_modules/typescript": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
@@ -4279,12 +4181,6 @@
"which-typed-array": "^1.1.2"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "license": "MIT"
- },
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -4584,18 +4480,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/xlsx": {
- "version": "0.20.1",
- "resolved": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz",
- "integrity": "sha512-hA7SYmn/H3cJ1VGi7kmSKxbEXCEn5UVJlwYFSFXhLe54wPUvW+80TmR5l+TZh4nJCw8G/e0SuZUfvqlTIh40hw==",
- "license": "Apache-2.0",
- "bin": {
- "xlsx": "bin/xlsx.njs"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
diff --git a/backend/package.json b/backend/package.json
index cc02306..ffb87d3 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -18,7 +18,6 @@
"cors": "^2.8.5",
"express": "^4.18.2",
"mongoose": "^7.4.1",
- "multer": "^2.0.2",
"node-schedule": "^2.1.1",
"passport": "^0.6.0",
"passport-local": "^1.0.0",
@@ -26,8 +25,7 @@
"speakeasy": "^2.0.0",
"tx2": "^1.0.5",
"underscore": "^1.13.8",
- "web-push": "^3.6.7",
- "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz"
+ "web-push": "^3.6.7"
},
"devDependencies": {
"@types/bcryptjs": "^2.4.2",
@@ -35,7 +33,6 @@
"@types/cors": "^2.8.13",
"@types/express": "^4.17.17",
"@types/express-session": "^1.17.7",
- "@types/multer": "^1.4.11",
"@types/node-schedule": "^2.1.7",
"@types/passport": "^1.0.12",
"@types/passport-local": "^1.0.35",
diff --git a/backend/src/routes/api/admin/menu.ts b/backend/src/routes/api/admin/menu.ts
index 70a8ce2..d21a8a8 100644
--- a/backend/src/routes/api/admin/menu.ts
+++ b/backend/src/routes/api/admin/menu.ts
@@ -1,24 +1,11 @@
import { Router } from "express"
import { Perms, adminPerm, project } from "@/utility"
-import multer from "multer"
-import * as XLSX from "xlsx"
import Menu from "@schemas/Menu"
import { editorRouter } from "./editor"
import usettings, { Features } from "@/helpers/usettings"
const menuRouter = Router()
-const storage = multer.memoryStorage()
-const upload = multer({storage: storage})
-
-interface sheetObject {
- day: string;
- sn: string;
- sn2: string;
- ob: string;
- kol: string;
-}
-
menuRouter.use(adminPerm(Perms.Menu))
menuRouter.use(usettings.mw(Features.Menu))
@@ -120,49 +107,6 @@ menuRouter.post('/:start/:count', async (req, res) => {
}
})
-menuRouter.post('/upload', upload.single('menu'), async (req,res)=> {
- if (!req.file) {
- res.status(400).send("File required")
- return
- }
- var sheet = XLSX.read(req.file.buffer)
- var data: sheetObject[] = XLSX.utils.sheet_to_json(sheet.Sheets[sheet.SheetNames[0]], {raw: true, header: ["day", "sn", "sn2", "ob", "kol"], range: 2})
- data = data.map((val, i) => {
- var result: any = {}
- var dateparts = val.day.match(/(\d{2})\.(\d{2})\.(\d{4})/)
- if (dateparts) {
- var date = new Date(parseInt(dateparts[3]),parseInt(dateparts[2])-1,parseInt(dateparts[1]))
- date.setUTCHours(0,0,0,0)
- } else {
- res.sendStatus(500)
- return
- }
- result.day = date
- result.sn = val.sn.split('\n')
- result.sn.push(val.sn2)
-
- //#region ob
- var ob = val.ob
- ob = ob.replace(/^\s*\n/gm, "")
- ob = ob.replace(/ \/ /gm, "\n")
- ob = ob.replace(/:(?!\s)/gm, ": ")
- result.ob = ob.split('\n')
- //#endregion
-
- result.kol = val.kol
- if (date.getUTCDay() == 5) {
- result.kol = null
- }
- return result
- })
-
- if (await Menu.insertMany(data)) {
- res.status(201).send({status: 201})
- } else {
- res.sendStatus(500)
- }
-})
-
menuRouter.put('/:id', async (req, res) => {
let menu = await Menu.findById(req.params.id)
if (!menu) {
diff --git a/frontend/src/app/admin-view/menu-edit/menu-add/menu-add.component.html b/frontend/src/app/admin-view/menu-edit/menu-add/menu-add.component.html
index 074c72f..11ba598 100644
--- a/frontend/src/app/admin-view/menu-edit/menu-add/menu-add.component.html
+++ b/frontend/src/app/admin-view/menu-edit/menu-add/menu-add.component.html
@@ -3,7 +3,6 @@