From a9b3b28d001941921aa70d37fdc87c758a163a44 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 05 Jun 2026 16:47:03 +0000
Subject: [PATCH] =Some hefty changes to FeedBlock. Transitioning to loading first page in php to save on extra requests. Got a bit to do yet, but I have to work on Northeh for a bit here.
---
assets/js/concise/TaxonomySelector.js | 47 +++++++++++++++++++++++++++++++++++------------
1 files changed, 35 insertions(+), 12 deletions(-)
diff --git a/assets/js/concise/TaxonomySelector.js b/assets/js/concise/TaxonomySelector.js
index 4502169..90f6076 100644
--- a/assets/js/concise/TaxonomySelector.js
+++ b/assets/js/concise/TaxonomySelector.js
@@ -246,6 +246,15 @@
}
}
+ const removeButton = window.targetCheck(e, '.remove-term');
+ if (removeButton) {
+ const termId = removeButton.closest('[data-id]').dataset.id??false;
+ if (fieldId && termId) {
+ this.removeSelected(parseInt(termId), fieldId);
+ }
+ return;
+ }
+
const autocomplete = window.targetCheck(e, '.item.autocomplete');
if (autocomplete) {
@@ -266,14 +275,6 @@
return;
}
- const removeButton = window.targetCheck(e, '.remove-term');
- if (removeButton) {
- const termId = removeButton.closest('[data-id]').dataset.id??false;
- if (fieldId && termId) {
- this.removeSelected(parseInt(termId), fieldId);
- }
- return;
- }
if (e.target.matches('.modal-close')) {
this.updateFieldValue(fieldId);
@@ -433,6 +434,8 @@
const field = this.fields.get(fieldId);
if (!field) return;
if (!field.hasAutocomplete || this.container.open) return;
+ if (e.target.closest('.remove-item')) return;
+
if (e.relatedTarget && field.ui.dropdown.wrapper?.contains(e.relatedTarget)) return;
this.scheduleHideDropdown(fieldId);
@@ -1132,11 +1135,31 @@
handleFetchError(error) {
const field = this.currentField();
- const message = field
- ? `Failed to load ${field.plural}`
- : 'Failed to load data';
+ this.setMessage(field, true, 'Something went wrong.', false);
- this.setMessage(field,true, message, false);
+ const conf = this.container.open || field?.isFilter ? this.ui : field?.ui;
+ const p = conf?.message?.message;
+
+ if (p && !p.querySelector('.clear-cache-btn')) {
+ const btn = document.createElement('button');
+ btn.className = 'clear-cache-btn';
+ btn.type = 'button';
+ btn.textContent = 'Clear cache and try again';
+ btn.addEventListener('click', async () => {
+ btn.remove();
+ this.store.clearCache();
+ if (this.activeField && field) {
+ await this.store.setFilters({
+ taxonomy: field.taxonomy,
+ page: 1,
+ search: '',
+ parent: 0
+ });
+ }
+ });
+ p.appendChild(btn);
+ }
+
console.error('Store fetch error:', error);
}
async batchFetchTaxonomies() {
--
Gitblit v1.10.0