upd: home.js
migrate from old to new
This commit is contained in:
+30
-86
@@ -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.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user