diff --git a/config.json b/config.json index 7a4830e..dbf63b5 100644 --- a/config.json +++ b/config.json @@ -9,5 +9,9 @@ "accounts": { "registrationEnabled": true, "requiredForUpload": false + }, + + "webdrop": { + "accountRequired": false } } \ No newline at end of file diff --git a/src/server/routes/fileApiRoutes.ts b/src/server/routes/fileApiRoutes.ts index e50b88a..1684fa7 100644 --- a/src/server/routes/fileApiRoutes.ts +++ b/src/server/routes/fileApiRoutes.ts @@ -73,6 +73,15 @@ fileApiRoutes.post("/manage", parser, (req,res) => { files.files[e].visibility = req.body.value; modified++; break; + + case "setTag": + if (!req.body.value) delete files.files[e].tag + else { + if (req.body.value.toString().length > 30) return + files.files[e].tag = req.body.value.toString().lower() + } + modified++; + break; } }) diff --git a/src/svelte/elem/prompts/uploads.js b/src/svelte/elem/prompts/uploads.js index b66e4f8..850fdf7 100644 --- a/src/svelte/elem/prompts/uploads.js +++ b/src/svelte/elem/prompts/uploads.js @@ -160,6 +160,46 @@ export function fileOptions(optPicker,file) { } }) + + break; + + case "tag": + + optPicker.picker("Enter a tag (max 30char)",[ + { + name: "Tag name", + icon: "/static/assets/icons/tag.svg", + id: "tag", + inputSettings: {} + }, + { + name: "OK", + icon: "/static/assets/icons/update.svg", + id: true + } + ]).then((exp) => { + + if (exp && exp.selected) { + + fetch(`/files/manage`, {method: "POST", body: JSON.stringify({ + target: [ file.id ], + action: "setTag", + + value: exp.selected || null + })}).then((response) => { + + if (response.status != 200) { + optPicker.picker(`${response.status} ${response.statusText}`,[]) + } + + fetchFilePointers(); + }) + + } + + }) + + break } diff --git a/src/svelte/elem/pulldowns/Files.svelte b/src/svelte/elem/pulldowns/Files.svelte index aa90b59..e69cf10 100644 --- a/src/svelte/elem/pulldowns/Files.svelte +++ b/src/svelte/elem/pulldowns/Files.svelte @@ -37,6 +37,11 @@

{file.visibility||"public"}  {file.id}  —  {file.mime.split(";")[0]} + {#if file.tag} +
+ tag  + {file.tag} + {/if}