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