More work on updating Archives and Posts to use tmp_sort_x and other changes.

This commit is contained in:
Scott Idem
2025-06-04 14:04:51 -04:00
parent f38d9b58ab
commit dbbd8209cc
14 changed files with 383 additions and 3 deletions

View File

@@ -1,6 +1,8 @@
import type { key_val } from '$lib/ae_stores';
import { api } from '$lib/api';
import { db_save_ae_obj_li__ae_obj } from "$lib/ae_core/core__idb_dexie";
import { db_posts } from "$lib/ae_posts/db_posts";
import { load_ae_obj_li__post_comment } from "$lib/ae_posts/ae_posts__post_comment";
@@ -732,3 +734,140 @@ export function db_save_ae_obj_li__post(
return true;
}
}
// Updated 2025-06-04
export const properties_to_save = [
'id',
'post_id',
// 'post_id_random',
'account_id',
// 'account_id_random',
'external_person_id',
'topic_id',
'topic',
'topic_name',
'name',
'title',
'content',
'anonymous',
'full_name',
'email',
'notify',
'enable_comments',
'archive',
'archive_on',
'linked_li_json',
'cfg_json',
'enable',
'hide',
'priority',
'sort',
'group',
'notes',
'created_on',
'updated_on',
// Generated fields for sorting locally only
'tmp_sort_1',
'tmp_sort_2',
// 'tmp_sort_a',
// 'tmp_sort_b',
// From SQL view
'post_comment_count',
// A key value list of the comments
// 'post_comment_kv',
// 'post_comment_li',
];
// Updated 2025-06-04
export async function process_ae_obj__post_props({
obj_li,
log_lvl = 0,
}: {
obj_li: any[];
log_lvl?: number;
}) {
if (log_lvl) {
console.log(`*** process_ae_obj__post_props() ***`, obj_li);
}
if (!obj_li || obj_li.length === 0) {
if (log_lvl) console.log('No objects to process.');
return [];
}
const processed_obj_li = [];
for (const obj of obj_li) {
if (log_lvl) console.log(`Processing ae_obj post:`, obj);
let processed_obj = {
id: obj.post_id_random,
post_id: obj.post_id_random,
// post_id_random: obj.post_id_random,
account_id: obj.account_id_random,
// account_id_random: obj.account_id_random,
external_person_id: obj.external_person_id,
topic_id: obj.topic_id,
topic: obj.topic,
topic_name: obj.topic_name,
name: obj.title,
title: obj.title,
content: obj.content,
anonymous: obj.anonymous,
full_name: obj.full_name,
email: obj.email,
notify: obj.notify,
enable_comments: obj.enable_comments,
archive: obj.archive,
archive_on: obj.archive_on,
linked_li_json: obj.linked_li_json,
cfg_json: obj.cfg_json,
enable: obj.enable,
hide: obj.hide,
priority: obj.priority,
sort: obj.sort,
group: obj.group,
notes: obj.notes,
created_on: obj.created_on,
updated_on: obj.updated_on,
// Generated fields for sorting locally only
tmp_sort_1: `${obj.group}_${obj.priority}_${obj.sort}_${obj.updated_on ?? obj.created_on}`,
tmp_sort_2: `${obj.group}_${obj.priority}_${obj.sort}_${obj.updated_on}_${obj.created_on}`,
// From SQL view
post_comment_count: obj.post_comment_count,
// A key value list of the contents
// post_comment_kv: obj.post_comment_kv,
// post_comment_li: obj.post_comment_li,
};
processed_obj_li.push(processed_obj);
}
return processed_obj_li;
}