From: PhiTux Date: Fri, 3 Oct 2025 10:27:38 +0000 (+0200) Subject: check for duplicate tag names X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=9f704495f6d52d8fe6d568371c3c05502a1617e9;p=DailyTxT.git check for duplicate tag names --- diff --git a/backend/handlers/additional.go b/backend/handlers/additional.go index 3ff9e5a..d2d9d4d 100644 --- a/backend/handlers/additional.go +++ b/backend/handlers/additional.go @@ -1200,6 +1200,29 @@ func SaveTags(w http.ResponseWriter, r *http.Request) { return } + // Check for duplicate tag names + tags, ok := content["tags"].([]any) + if ok { + for _, tagInterface := range tags { + tag, ok := tagInterface.(map[string]any) + if !ok { + continue + } + + if encName, ok := tag["name"].(string); ok { + decryptedName, err := utils.DecryptText(encName, encKey) + if err != nil { + http.Error(w, fmt.Sprintf("Error decrypting tag name: %v", err), http.StatusInternalServerError) + return + } + if decryptedName == req.Name { + http.Error(w, "Tag name already exists", http.StatusBadRequest) + return + } + } + } + } + // Encrypt tag data encIcon, err := utils.EncryptText(req.Icon, encKey) if err != nil { @@ -1233,7 +1256,7 @@ func SaveTags(w http.ResponseWriter, r *http.Request) { } // Add tag to tags array - tags, ok := content["tags"].([]any) + tags, ok = content["tags"].([]any) if !ok { tags = []any{} } diff --git a/frontend/src/lib/Sidenav.svelte b/frontend/src/lib/Sidenav.svelte index 0601147..2561b88 100644 --- a/frontend/src/lib/Sidenav.svelte +++ b/frontend/src/lib/Sidenav.svelte @@ -520,10 +520,6 @@ flex-wrap: wrap; } - .touch-tag-item:active { - transform: scale(0.96); - } - @media (max-width: 1599px) { .searchTagDropdown { left: 58px; diff --git a/frontend/src/lib/Tag.svelte b/frontend/src/lib/Tag.svelte index ea25599..1730cde 100644 --- a/frontend/src/lib/Tag.svelte +++ b/frontend/src/lib/Tag.svelte @@ -18,7 +18,7 @@ }); - +
{tag.icon} #{tag.name}
{#if isEditable} diff --git a/frontend/src/routes/(authed)/write/+page.svelte b/frontend/src/routes/(authed)/write/+page.svelte index 1fa73ff..65e2cf9 100644 --- a/frontend/src/routes/(authed)/write/+page.svelte +++ b/frontend/src/routes/(authed)/write/+page.svelte @@ -1058,6 +1058,21 @@ toast.show(); } }) + .catch((error) => { + console.error(error.response); + if (error.response.status == 400) { + // name already exists + // toast + const toast = new bootstrap.Toast( + document.getElementById('toastErrorSavingNewTagExists') + ); + toast.show(); + } else { + // toast + const toast = new bootstrap.Toast(document.getElementById('toastErrorSavingNewTag')); + toast.show(); + } + }) .finally(() => { // close modal isSavingNewTag = false; @@ -1662,6 +1677,26 @@
+ +