From 3b83905603d44b1a08f8b2b36a605808ce686ad6 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 02 Jun 2026 00:46:48 +0000
Subject: [PATCH] =double checking schema outputs for legacytattooremoval
---
assets/js/concise/View.js | 62 ++++++++++++++++++++-----------
1 files changed, 40 insertions(+), 22 deletions(-)
diff --git a/assets/js/concise/View.js b/assets/js/concise/View.js
index ca6c99e..3f71831 100644
--- a/assets/js/concise/View.js
+++ b/assets/js/concise/View.js
@@ -19,7 +19,7 @@
grid: new Map(),
table: new Map(),
}
- this.currentView = 'grid';
+ this.currentView = this.container.dataset.view ?? 'grid';
this.selectedItems = new Set();
this.subscribers = new Set();
@@ -161,15 +161,6 @@
}
/**
- * Handle data updates from store
- */
- handleDataUpdate(data) {
- console.log(data);
- const items = data.data?.items || data.items || [];
- this.render(items);
- }
-
- /**
* Handle items update
*/
handleItemsUpdate() {
@@ -185,6 +176,7 @@
// Handle empty state
if (items.length === 0) {
+ console.log('Nothing to show');
this.renderEmpty();
return;
}
@@ -293,7 +285,10 @@
}
toggleTable(on) {
- this.ui.table.selectedColumns.hidden = !on;
+ if (this.ui.table.selectedColumns) {
+ this.ui.table.selectedColumns.hidden = !on;
+ }
+
if (on && !this.ui.table.table) {
let table = window.getTemplate('contentTable');
this.container.append(table);
@@ -317,7 +312,10 @@
window.removeChildren(this.ui.table.body);
}
}
- this.ui.table.selectedColumns.hidden = !on;
+
+ if (this.ui.table.selectedColumns) {
+ this.ui.table.selectedColumns.hidden = !on;
+ }
}
toggleGrid() {
@@ -360,17 +358,32 @@
row.querySelector('.select-item').value,
row.querySelector('.select-item').checked,
row.querySelector('.select-item + label').htmlFor,
- row.querySelector(`input[name="post_status"][value="${item.status}"]`).checked
] = [
item.id,
item.id,
this.selectedItems.has(`${item.id}`),
item.id,
- item.status
];
+ let status = row.querySelector(`input[name="post_status"][value="${item.status}"]`);
+ if (status) {
+ status.checked = true;
+ }
- // Let jvbPopulate do its thing - NO prefixing needed!
- new window.jvbPopulate(row, item.fields, item.images);
+ if (Object.hasOwn(this.ui.table.table.dataset, 'edit')) {
+ new window.jvbPopulate(row, item);
+ } else {
+ for (let [key, value] of Object.entries(item)) {
+ let col = row.querySelector(`[data-field="${key}"]`);
+ if (col) {
+ let p = col.querySelector('p');
+ if (col.dataset.fieldType === 'date') {
+ value = window.formatTimeAgo(value);
+ }
+ p.textContent = value;
+ }
+ }
+ }
+
// Clean up after population
this.cleanupTableRow(row);
@@ -402,24 +415,29 @@
let timelinePoint = row.querySelector('.timeline-point');
let tbody = row;
- // Populate shared fields - NO prefixing!
+ // Populate shared fields
let sharedRow = row.querySelector('tr.shared');
- new window.jvbPopulate(sharedRow, item.fields, item.images);
+ new window.jvbPopulate(sharedRow, item);
this.prefixTimelineFieldNames(sharedRow, item.id);
this.cleanupTableRow(sharedRow);
- // Handle timeline points - NO prefixing!
+ // Handle timeline points
if (item.fields.timeline && typeof item.fields.timeline === 'object') {
const timelineArray = Object.entries(item.fields.timeline);
timelineArray.forEach(([imgId, timeline], index) => {
-
let point = timelinePoint.cloneNode(true);
point.dataset.index = index;
point.dataset.imageId = imgId;
+ // NEW: Create item-like structure for timeline point
+ const timelineItem = {
+ fields: timeline,
+ images: item.images,
+ taxonomies: {} // Timeline points don't have taxonomies
+ };
- new window.jvbPopulate(point, timeline, item.images);
+ new window.jvbPopulate(point, timelineItem);
this.cleanupTableRow(point);
let imgdata = item.images[timeline.post_thumbnail];
@@ -427,7 +445,7 @@
point.querySelector('.field.upload').title = imgdata['image-title'];
}
- this.prefixTimelineFieldNames(point,timeline.id);
+ this.prefixTimelineFieldNames(point, timeline.id);
tbody.insertBefore(point, timelinePoint);
});
--
Gitblit v1.10.0