From c06013234d16ab3889bd7fce09f6606b45fd2b9f Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 01 Jan 2026 23:38:14 +0000
Subject: [PATCH] Merge branch 'main' of https://github.com/jakevdwerf/jvb
---
src/feed/view.js | 48 +++++++++++++++++++++++++-----------------------
1 files changed, 25 insertions(+), 23 deletions(-)
diff --git a/src/feed/view.js b/src/feed/view.js
index fc6edca..ca9940f 100644
--- a/src/feed/view.js
+++ b/src/feed/view.js
@@ -436,27 +436,26 @@
return template;
}
splitIDs(value) {
- return value.split(',').map((value) => parseInt(value.trim())).filter(value=>value);
+ return String(value).split(',').map((value) => parseInt(value.trim())).filter(value=>value);
}
isImageField(item, value) {
if (!Object.hasOwn(item, 'images') || Object.keys(item.images).length === 0) {
return false;
}
let values = this.splitIDs(value);
- values.forEach(v => {
- if (Object.keys(item.images).includes(v)) {
- return true;
- }
- });
- return false;
+
+ return values.some(v =>
+ Object.keys(item.images).map(k => parseInt(k)).includes(parseInt(v))
+ );
}
formatImageFields(element, value, item) {
- if (value.length === 0) return;
- //If it's a gallery, we're cloning the original image, then removing it
- if (value.length > 1) {
+ let values = this.splitIDs(value); // Convert string to array first
+ if (values.length === 0) return;
+
+ if (values.length > 1) {
let image = element.querySelector('img');
if (!image) return;
- value.forEach(imgID => {
+ values.forEach(imgID => {
let img = image.cloneNode(true);
this.formatImageField(img, imgID, item);
element.append(img);
@@ -467,35 +466,38 @@
element = element.querySelector('img');
if (!element) return;
}
- this.formatImageField(element, value[0], item);
+ this.formatImageField(element, values[0], item);
}
}
formatImageField(element, value, item) {
+ console.log('Formatting Image:', element);
+ console.log('Value: ', value);
+ console.log('ImagData:', item.images[value]);
+ let imgData = item.images[value]??false;
+ if (!imgData) return;
[
element.src,
element.srset,
element.alt
] = [
- item.images[value].tiny,
- `${item.images[value].tiny} 50w, ${item.images[value].small} 300w, ${item.images[value].medium} 1024w`,
- item.images[value]['image-alt-text']
+ imgData.tiny,
+ `${imgData.tiny} 50w, ${imgData.small} 300w, ${imgData.medium} 1024w`,
+ imgData['image-alt-text']
]
}
isTaxonomyField(item, field) {
if (!Object.hasOwn(item, 'taxonomies') || Object.keys(item.taxonomies).length === 0) {
return false;
}
- Object.keys(item.taxonomies).forEach(taxonomy => {
- if (taxonomy === field) {
- return true;
- }
- });
- return false;
+
+ return Object.keys(item.taxonomies).includes(field);
}
formatTaxonomyField(element, item, field, value) {
if (element.tagName !== 'UL' || !element.querySelector('li')) return;
-
let values = this.splitIDs(value);
+ if (values.length === 0) {
+ element.remove();
+ }
let listItem = element.querySelector('li');
for (let termID of values) {
let term = item.taxonomies[field][termID]??false;
@@ -526,7 +528,7 @@
if (!element) return;
}
element.setAttribute('datetime', value);
- element.textContent = window.formatTimeAgo(value);
+ element.textContent = window.formatTimeAgo(value, 'F Y');
}
formatField(element, value) {
element.textContent = value;
--
Gitblit v1.10.0