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/TaxonomySelector.js | 27 ++++++++++++++++++++++-----
1 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/assets/js/concise/TaxonomySelector.js b/assets/js/concise/TaxonomySelector.js
index bf3af8f..8ae44bb 100644
--- a/assets/js/concise/TaxonomySelector.js
+++ b/assets/js/concise/TaxonomySelector.js
@@ -480,7 +480,13 @@
initAutocomplete()
{
- this.autocompleteHandler = window.debounce((e) => this.handleAutocomplete(e), 300);
+ this.autocompleteHandler = (e) => {
+ window.debouncer.schedule(
+ 'taxonomy-autocomplete',
+ () => this.handleAutocomplete(e),
+ 300
+ );
+ };
document.addEventListener('input', this.autocompleteHandler);
document.addEventListener('blur', this.cleanupAutocomplete.bind(this));
// Preload taxonomy data on focus
@@ -1126,11 +1132,17 @@
});
}
- // Use stored current query instead of debounced one
+ // Only show create button if exact match doesn't exist
const currentQuery = field.currentAutocompleteQuery || query;
if (field.canCreate && currentQuery && window.jvbTaxCreator) {
- const createOption = this.createNewTermOption(currentQuery);
- dropdown.appendChild(createOption);
+ const exactMatch = terms.find(term =>
+ term.name.toLowerCase() === currentQuery.toLowerCase()
+ );
+
+ if (!exactMatch) {
+ const createOption = this.createNewTermOption(currentQuery);
+ dropdown.appendChild(createOption);
+ }
}
dropdown.hidden = false;
@@ -1545,5 +1557,10 @@
* Initialize singleton
*/
document.addEventListener('DOMContentLoaded', function() {
- window.jvbSelector = new TaxonomySelector();
+ window.auth.subscribe((event) => {
+ if (event === 'auth-loaded') {
+ window.jvbSelector = new TaxonomySelector();
+ }
+ });
+
});
--
Gitblit v1.10.0