church-notes/public/js/script.js
2024-04-15 23:43:15 -04:00

236 lines
6.5 KiB
JavaScript

// Get the link element
const link = document.querySelector('.hamburger');
var converter = null;
var references = {};
// Add an event listener to the link
if (link) {
link.addEventListener('click', function () {
// Toggle the class of the link to open or close the menu
document.querySelector('ul.hamburger-list').classList.toggle('menu-open');
});
}
function setHeight() {
converter = new showdown.Converter();
converter.setFlavor('github');
body = document.querySelector('body');
body.style.height = window.innerHeight + 'px';
cont = document.querySelector('.container');
cont.style.height = (window.innerHeight - 50) + 'px';
tabs = document.querySelector('.ref-tab');
tabs.style.height = (window.innerHeight - 60) + 'px';
ref = document.querySelector('.ref');
ref.style.height = (window.innerHeight - 125) + 'px';
notes = document.querySelector('.notes');
notes.style.height = (window.innerHeight - 150) + 'px';
setTimeout(saveNote, 5000);
}
function newNote() {
notes = document.querySelector('.notes');
notes.textContent = '';
}
function openNote() {
}
function saveNote(event) {
event.preventDefault();
if(!validateNote()) {
setTimeout(saveNote, 5000);
return;
}
fetch('/index.php/save-note', {
method: 'POST',
headers: {
"Content-Type": 'application/x-www-form-urlencoded'
},
body: {
title: document.querySelector('#noteTitle').value,
speaker: document.querySelector('#speaker').value,
series: document.querySelector('#series').value,
note: document.querySelector('#notes').textContent
}
.then(response => response.text)
.then(results => {
results = JSON.parse(results);
alert(results);
showSave();
})
});
setTimeout(saveNote, 5000);
}
function validateNote() {
const note = document.querySelector('#notes');
const speaker = document.querySelector('#speaker');
const series = document.querySelector('#series');
const title = document.querySelector('#noteTitle');
if(!title.value.length) {return false;}
if(!speaker.value) {return false;}
if(!series.value) {return false;}
if(!note.textContent.length) {return false;}
return true;
}
function showSave() {// Get the element that will display the checkmark
var checkmark = document.getElementById("save-check");
// Schedule the animation to run every 1 second (which is equivalent to a 1-second delay between each iteration)
setInterval(function() {
// Increment the opacity of the checkmark by 0.01 each time
checkmark.style.opacity += 0.1;
// If the opacity is greater than or equal to 1, reset it back to 0 and stop the animation
if (checkmark.style.opacity >= 1) {
checkmark.style.opacity = 0;
clearInterval(setInterval);
}
}, 100);
}
/**
* Function to discard the note by clearing all input fields and closing the menu.
*/
function discardNote() {
document.querySelector('#noteTitle').value = '';
document.querySelector('#speaker').value = 0;
document.querySelector('#series').value = 0;
document.querySelector('#template').value = 0;
document.querySelector('#notes').value = '';
openRef();
}
function openRef() {
refQuery = document.querySelector('#refQuery');
if (refQuery.style.display === 'block') {
refQuery.style.display = 'none';
} else {
refQuery.style.display = 'block';
}
menu = document.querySelector('ul.hamburger-list');
refQuery.style.left = (menu.clientLeft + menu.clientWidth) + 'px';
refQuery.style.top = (menu.clientTop + menu.clientHeight) + 'px';
}
function queryRef() {
const input = document.querySelector('#refQuery #search');
fetch('/index.php/retrieve-reference', {
method: 'POST',
headers: {
'Content-Type': 'plain/text'
},
body: JSON.stringify({
'reference': input.value
})
})
.then(response => response.text())
.then(results => {
results = JSON.parse(results);
const list = document.querySelector('#ref-list');
var newList = document.createElement('li');
newList.className = 'tab';
var button = document.createElement('button');
button.innerText = results.title;
button.onclick = function () {
document.querySelector('#ref').innerHTML = converter.makeHtml(references[button.innerText]);
}
button.ondblclick = function () {
document.querySelector('#ref').innerHTML = '';
delete references[results.title];
var list = button.parentElement;
list.remove();
}
newList.appendChild(button);
list.appendChild(newList);
const ref = document.querySelector('#ref');
ref.innerHTML = converter.makeHtml(results.text);
references[results.title] = results.text;
input.value = '';
openRef();
link.click();
});
}
function retrieveTemplate(orig, dest) {
const temp = document.querySelector('#' + orig);
if (temp.value == '0') {
document.querySelector('#' + dest).value = '';
return;
}
fetch('/index.php/retrieve-template', {
method: 'POST',
headers: {
'Content-Type': 'plain/text'
},
body: JSON.stringify({
'template': temp.value
})
})
.then(response => response.text())
.then(results => {
const div = document.querySelector('#' + dest);
div.value = results;
});
}
/**
* Saves the template by sending a POST request to the server with template data.
*/
function saveTemplate() {
fetch('/index.php/save-template', {
method: 'POST',
headers: {
'Content-Type': 'plain/text'
},
body: JSON.stringify({
'template_id': document.querySelector('#template_id').value,
'template_name': document.querySelector('#template_name').value,
'template_value': document.querySelector('#template_value').value,
})
})
.then(response => response.text())
.then(results => {
alert(results);
});
}
function retrieveSeries() {
}
function saveSeries() {
}
function retrieveSpeaker() {
}
function saveSpeaker() {
}
function referenceEditor() {
}