commit ebee8f2ef85d238355483917766ccbf496a11e14
parent f1b0bc41f2410c2c72dd9c9a14f4d3b90fcf3e1b
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Mon,  1 Jan 2024 23:17:38 +0100

feat(core/export_template): sort by date

Diffstat:
Mcore/src/main/assets/web/export_template.html | 23+++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/core/src/main/assets/web/export_template.html b/core/src/main/assets/web/export_template.html @@ -207,6 +207,11 @@ <body> <header> <div class="title"></div> + <div> + <label> + <input type="checkbox" class="sort_by_date" onchange="makeMain();"> Sort by date + </label> + </div> </header> <main></main> @@ -247,8 +252,15 @@ } function makeMain() { + document.querySelector('main').innerHTML = "" const messageTemplate = document.querySelector("#message_template") - Object.values(conversationData.messages).forEach(message => { + let messageList = Object.values(conversationData.messages) + + if (document.querySelector(".sort_by_date").checked) { + messageList = messageList.reverse() + } + + messageList.forEach(message => { const messageObject = document.createElement("div") messageObject.classList.add("message") @@ -276,6 +288,7 @@ messageContainer.classList.add("content") messageContainer.innerHTML = message.serializedContent + const observers = [] if (!message.serializedContent) { messageContainer.innerHTML = "" let messageData = "" @@ -288,19 +301,22 @@ messageData = message.type } messageContainer.innerHTML += messageData + messageContainer.onclick = () => { + observers.forEach(f => f()) + } } if (message.attachments && message.attachments.length > 0) { - let observers = [] - message.attachments.forEach((attachment, index) => { const mediaKey = attachment.key.replace(/(=)/g, "") observers.push(() => { + messageContainer.onclick = () => {} const originalMedia = document.querySelector('.media-ORIGINAL_' + mediaKey) if (!originalMedia) { return } + messageContainer.innerHTML = "" const originalMediaUrl = decodeMedia(originalMedia) @@ -340,7 +356,6 @@ new IntersectionObserver(entries => { if (!fetched && entries[0].isIntersecting === true) { fetched = true - messageContainer.innerHTML = "" observers.forEach(c => { try { c()