fix: show error for duplicate folder name + add client-side validation
CreateDirectory now returns an error when the folder already exists instead of silently succeeding. JS validates folder name format (alphanumeric + underscore, max 32 chars) before sending the request. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -148,7 +148,7 @@ func CreateDirectory(basePath, name string) (string, error) {
|
|||||||
// Check if already exists
|
// Check if already exists
|
||||||
if fi, err := os.Stat(targetPath); err == nil {
|
if fi, err := os.Stat(targetPath); err == nil {
|
||||||
if fi.IsDir() {
|
if fi.IsDir() {
|
||||||
return targetPath, nil // already exists, idempotent
|
return "", fmt.Errorf("a mappa már létezik: %s", name)
|
||||||
}
|
}
|
||||||
return "", fmt.Errorf("a cél már létezik és nem mappa")
|
return "", fmt.Errorf("a cél már létezik és nem mappa")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -393,6 +393,18 @@ function createDir() {
|
|||||||
var errEl = document.getElementById('browse-error');
|
var errEl = document.getElementById('browse-error');
|
||||||
errEl.style.display = 'none';
|
errEl.style.display = 'none';
|
||||||
|
|
||||||
|
// Client-side validation
|
||||||
|
if (!/^[a-zA-Z0-9_]+$/.test(name)) {
|
||||||
|
errEl.textContent = 'A mappanéven csak betűk, számok és alávonás megengedett.';
|
||||||
|
errEl.style.display = 'block';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (name.length > 32) {
|
||||||
|
errEl.textContent = 'A mappanév legfeljebb 32 karakter lehet.';
|
||||||
|
errEl.style.display = 'block';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
fetch('/api/storage/attach/mkdir', {
|
fetch('/api/storage/attach/mkdir', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {'Content-Type': 'application/json'},
|
headers: {'Content-Type': 'application/json'},
|
||||||
|
|||||||
Reference in New Issue
Block a user