Migrate openNotes table to use DataTables

Added couple helper methods
Fixed not clearing recording link on "New Note"
add retrieveReferenceType method for reference editor
This commit is contained in:
Ryan Prather 2024-05-29 00:30:42 -04:00
parent 74b24afc75
commit 2552335513

View File

@ -9,7 +9,30 @@ var to = null;
let controller; let controller;
var BOOKS = {}; var BOOKS = {};
fetch('/js/data.json') $(function () {
setHeight();
setBooks();
setEventListeners();
$('#note-table').DataTable({
paging: false,
ajax: {
url: '/index.php/get-notes',
type: 'POST'
},
columns: [
{ data: 'link' },
{ data: 'speaker.name' },
{ data: 'passage' },
{
data: 'date.date',
render: DataTable.render.date("L")
},
]
});
});
function setBooks() {
fetch('/js/data.json')
.then((res) => { .then((res) => {
if (!res.ok) { if (!res.ok) {
throw new Error('HTTP Error: Status: ${res.status}'); throw new Error('HTTP Error: Status: ${res.status}');
@ -22,21 +45,24 @@ fetch('/js/data.json')
.catch((error) => { .catch((error) => {
console.log(error); console.log(error);
}) })
}
document.addEventListener('keyup', function (event) { function setEventListeners() {
document.addEventListener('keyup', function (event) {
if (event.key == "F3") { if (event.key == "F3") {
openRef(false); openRef(false);
} }
}); });
document.querySelector('#notes').addEventListener('keyup', function (event) { document.querySelector('#notes').addEventListener('keyup', function (event) {
let key = event.keyCode; let key = event.keyCode;
if (key >= 48 && key <= 90 || key >= 96 && key <= 111 || key >= 186 && key <= 222) { if (key >= 48 && key <= 90 || key >= 96 && key <= 111 || key >= 186 && key <= 222) {
textDirty = true; textDirty = true;
document.querySelector('#note-header-left h2').classList.add('dirty'); document.querySelector('#note-header-left h2').classList.add('dirty');
} }
}); });
}
function setHeight() { function setHeight() {
md = new markdownit({ md = new markdownit({
@ -133,7 +159,7 @@ function newNote() {
document.querySelector('#series').value = 0; document.querySelector('#series').value = 0;
document.querySelector('#template').value = 0; document.querySelector('#template').value = 0;
document.querySelector('#passage').value = ''; document.querySelector('#passage').value = '';
document.querySelector('#noteId').value = uuidv4(); document.querySelector('#recording').value = '';
document.querySelector('#ref-list').innerHTML = ''; document.querySelector('#ref-list').innerHTML = '';
document.querySelector('#ref').innerHTML = ''; document.querySelector('#ref').innerHTML = '';
@ -658,6 +684,30 @@ function filterVerse() {
verseRange.innerText = 'Verse: ' + verse; verseRange.innerText = 'Verse: ' + verse;
} }
function retrieveReferenceType(el) {
fetch('/index.php/reference/' + el.value, {
method: 'GET',
header: {
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(results => {
document.querySelector('#referenceSeries').innerHTML = '';
var none = document.createElement('option');
none.value = '';
none.text = '-- Select --';
document.querySelector('#referenceSeries').appendChild(none);
for (var x in results) {
var newSeries = document.createElement('option');
newSeries.value = results[x].id;
newSeries.text = results[x].label;
document.querySelector('#referenceSeries').appendChild(newSeries);
}
})
}
function retrieveReference(el) { function retrieveReference(el) {
if (el.value == 'new') { if (el.value == 'new') {
document.querySelector('#refName').style.display = 'inline-block'; document.querySelector('#refName').style.display = 'inline-block';
@ -669,8 +719,7 @@ function retrieveReference(el) {
"Content-Type": "application/json" "Content-Type": "application/json"
}, },
body: JSON.stringify({ body: JSON.stringify({
file: el.value, id: el.value
type: el.options[el.selectedIndex].getAttribute('type')
}) })
}) })
.then(response => response.json()) .then(response => response.json())