upd: home.js

migrate from old to new
This commit is contained in:
2026-06-13 12:14:23 -04:00
parent 4a13760def
commit 2b2b2aaec5
+30 -86
View File
@@ -111,7 +111,7 @@ export function previewNote() {
export function setEventListeners() { export function setEventListeners() {
document.addEventListener('keyup', function (event) { document.addEventListener('keyup', function (event) {
if (event.key == "F3") { if (event.key == "F3") {
openRef(false); openRef();
} }
}); });
@@ -119,9 +119,14 @@ export function setEventListeners() {
let key = event.keyCode; let key = event.keyCode;
if (key == 8 || key >= 48 && key <= 90 || key >= 96 && key <= 111 || key >= 186 && key <= 222) { if (key == 8 || key >= 48 && key <= 90 || key >= 96 && key <= 111 || key >= 186 && key <= 222) {
state.saved = false
state.textDirty = true; state.textDirty = true;
document.querySelector('.mobile-note-header h2').classList.add('dirty'); document.querySelector('.mobile-note-header h2').classList.add('dirty');
document.querySelector('.note-header h2').classList.add('dirty'); document.querySelector('.note-header h2').classList.add('dirty');
if(state.failureCount > 0 && !state.to) {
state.to = setTimeout(note.saveNote, state.saveTimeout);
}
} }
}); });
@@ -133,10 +138,16 @@ export function setEventListeners() {
document.getElementById('increaseFont').addEventListener('click', increaseFont); document.getElementById('increaseFont').addEventListener('click', increaseFont);
document.getElementById('decreaseFont').addEventListener('click', decreaseFont); document.getElementById('decreaseFont').addEventListener('click', decreaseFont);
document.getElementById('open-ref').addEventListener('click', openRef, {closeSidebar: false});
document.getElementById('mobile-open-ref').addEventListener('click', openRef, {closeSidebar: false});
document.getElementById('previewBtn').addEventListener('click', previewNote);
const openRefBtn = document.getElementById('open-ref');
openRefBtn.addEventListener('click', openRef);
openRefBtn.closeSidebar = true;
const mobileOpenRefBtn = document.getElementById('mobile-open-ref');
mobileOpenRefBtn.addEventListener('click', openRef);
mobileOpenRefBtn.closeSidebar = true;
document.getElementById('previewBtn').addEventListener('click', previewNote);
//document.getElementById('shareBtn').addEventListener('click', note.openShareNote);
document.getElementById('searchBtn').addEventListener('click', ref.queryRef); document.getElementById('searchBtn').addEventListener('click', ref.queryRef);
document.getElementById('closeSearch').addEventListener('click', closeRef); document.getElementById('closeSearch').addEventListener('click', closeRef);
} }
@@ -145,28 +156,10 @@ export function initHome() {
setBooks(); setBooks();
setEventListeners(); setEventListeners();
$('sidebar-link').on('click', function(event) { // expand the sidebar by default if we are on a large screen
event.preventDefault(); if(document.body.clientWidth >= 1501) {
event.stopPropagation(); document.querySelector('.container').classList.remove('sidebar-collapsed');
}
$('#sidebar').toggleClass('inactive');
});
$('sidebar').on('click', 'a', function(event) {
var $a = $(this), href = $a.attr('href'), target = $a.attr('target');
event.preventDefault();
event.stopPropagation();
$('sidebar').addClass('inactive');
setTimeout(function() {
if (target == '_blank')
window.open(href);
else
window.location.href = href;
}, 500);
});
$('#note-table').DataTable({ $('#note-table').DataTable({
paging: false, paging: false,
@@ -184,6 +177,7 @@ export function initHome() {
}, },
] ]
}); });
$('#note-table').css('width', '100%');
$('#shareBtn').on('click', note.openShareNote); $('#shareBtn').on('click', note.openShareNote);
$('#modal-backdrop').on('click', note.closeShareNote); $('#modal-backdrop').on('click', note.closeShareNote);
@@ -234,22 +228,26 @@ export function setBooks() {
/** /**
* Opens the reference with the option to close the sidebar. * Opens the reference with the option to close the sidebar.
*
* @param {boolean} closeSidebar - Indicates whether to close the sidebar when opening the reference.
*/ */
export function openRef(e, closeSidebar = true) { export function openRef(e) {
document.querySelector('#open-ref').classList.add('active'); document.querySelector('#open-ref').classList.add('active');
document.querySelector('#mobile-open-ref').classList.add('active'); document.querySelector('#mobile-open-ref').classList.add('active');
let refQuery = document.querySelector('#refQuery'); let refQuery = document.querySelector('#refQuery');
refQuery.style.display = 'block'; refQuery.style.display = 'block';
let closeSidebar = false;
if(typeof e.currentTarget.closeSidebar !== 'undefined') {
closeSidebar = e.currentTarget.closeSidebar;
}
if (closeSidebar && !document.querySelector('.container').classList.contains('sidebar-collapsed')) {
document.querySelector('.toggle').click();
}
let ref = document.querySelector('#ref-text'); let ref = document.querySelector('#ref-text');
refQuery.style.left = ref.offsetLeft + 'px'; refQuery.style.left = ref.offsetLeft + 'px';
refQuery.style.top = ref.offsetTop + 'px'; refQuery.style.top = ref.offsetTop + 'px';
if (closeSidebar) {
document.querySelector('.toggle').click();
}
} }
/** /**
@@ -271,60 +269,6 @@ export function closeRef() {
document.querySelector('#mobile-open-ref').classList.remove('active'); document.querySelector('#mobile-open-ref').classList.remove('active');
} }
/**
* Retrieves a note from the server based on the provided ID.
*
* @param {string} id - The ID of the note to retrieve.
* @param {boolean} [runOpen=true] - Whether to open the note sidebar after retrieving the note.
* @return {Promise<void>} A promise that resolves when the note is successfully retrieved and the UI is updated.
*/
export function retrieveNote(id, runOpen = true) {
fetch('/get-note', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
'id': id
})
})
.then(response => response.json())
.then(result => {
var dt = new Date(result.date.date);
document.querySelector('#notes').value = result.text;
document.querySelector('#passage').value = result.passage;
document.querySelector('#series').value = result.series.id;
document.querySelector('#speaker').value = result.speaker.id;
document.querySelector('#noteTitle').value = result.title;
document.querySelector('#noteDate').value = '';
document.querySelector('#noteDate').value =
(dt.getMonth() < 9 ? '0' + (dt.getMonth() + 1) : (dt.getMonth() + 1)) + '/' +
(dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate()) + '/' +
dt.getFullYear();
document.querySelector('#noteId').value = result.id;
if (result.refs) {
references = result.refs;
}
const list = document.querySelector('#ref-list');
list.innerHTML = '';
var newList = null;
for (var x in references) {
var newList = document.createElement('li');
newList.className = 'tab';
var button = makeButton(x);
newList.appendChild(button);
list.appendChild(newList);
}
if (runOpen) {
note.openNote(false);
}
});
}
/** /**
* A function to create a button element with the specified title and event listeners for click and double click actions. * A function to create a button element with the specified title and event listeners for click and double click actions.
* *