From eea4e21d9bd7b89f7124fa1acbe3347d68db6d90 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 04 Jan 2026 19:35:27 +0000
Subject: [PATCH] =further taxonomyCreator.js debugging
---
assets/js/concise/TaxonomyCreator.js | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/assets/js/concise/TaxonomyCreator.js b/assets/js/concise/TaxonomyCreator.js
index 277185c..7307202 100644
--- a/assets/js/concise/TaxonomyCreator.js
+++ b/assets/js/concise/TaxonomyCreator.js
@@ -153,8 +153,16 @@
field.autocompleteDropdown.hidden = true;
if (input) input.value = '';
- // Only clear cache, don't refetch - term is already in store.data
+ // Clear cache AND refresh this taxonomy's data
this.selector.store.clearCache();
+
+ // Trigger a background refresh for this taxonomy
+ await this.selector.store.setFilters({
+ taxonomy: field.taxonomy,
+ page: 1,
+ search: '',
+ parent: 0
+ });
} else if (response.reason === 'exists' && response.term) {
const term = response.term;
field.selectedTerms.add(parseInt(term.id));
@@ -240,7 +248,18 @@
async createTerm(name, parent = 0, taxonomy) {
try {
- // Check existing data first without fetching
+ // Search to ensure we have latest data for duplicate check
+ await this.selector.store.setFilters({
+ taxonomy: taxonomy,
+ search: name,
+ page: 1,
+ parent: 0
+ });
+
+ // Wait a bit for the data to load
+ await new Promise(resolve => setTimeout(resolve, 100));
+
+ // Check if exact match exists in results
const exactMatch = Array.from(this.selector.store.data.values())
.find(term =>
term.taxonomy === taxonomy &&
@@ -248,6 +267,7 @@
);
if (exactMatch) {
+ // For modal context, show suggestions
if (this.createNew) {
this.showTermSuggestions([exactMatch], true);
}
--
Gitblit v1.10.0