🐍 Agenda Adder 📋
$(function () {
prepareLocalStorage();
showAgenda(getLocalStorage());
$("#agendaCount").text(`CURRENT AGENDA (${getAgendaCount()})`);
});
let agendaArray = [];
function prepareLocalStorage() {
if (getLocalStorage() == null) {
setLocalStorage(new Array());
}
}
function getLocalStorage() {
let agendaList = JSON.parse(localStorage.getItem("agendaArray")) || [];
if (agendaList.length == 0) {
agendaList = agendaArray;
localStorage.setItem("agendaArray", JSON.stringify(agendaList));
}
return JSON.parse(localStorage.getItem("agendaArray"));
}
function setLocalStorage(data) {
localStorage.setItem("agendaArray", JSON.stringify(data));
}
function getAgendumId(element) {
let agendumId = $(element).parent().attr("data-id");
return agendumId;
}
function getIndex(element) {
let agendumIndex = $(element).parent().attr("data-id");
return agendumIndex
}
function getAgendaCount() {
return getLocalStorage().length;
}
function createAgendum(formData) {
let agenda = getLocalStorage();
let agendum = {
id: generateAgendumId(),
created: new Date(),
completed: false,
title: formData[1].value,
dueDate: new Date(`${formData[2].value} 00:00`)
}
agenda.push(agendum);
setLocalStorage(agenda);
showAgenda();
}
function generateAgendumId() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
function editAgendum(formData) {
let agenda = getLocalStorage();
let agendumId = formData[1].value;
let agendum = agenda.find(t => t.id == agendumId);
agendum.title = formData[2].value;
agendum.dueDate = new Date(formData[3].value);
setLocalStorage(agenda);
showAgenda();
}
function abolishAgendum(element) {
let agendumId = getAgendumId(element);
let agenda = getLocalStorage();
let index = agenda.findIndex(t => t.id == agendumId);
agenda.splice(index, 1);
setLocalStorage(agenda);
showAgenda();
}
function accomplishAgendum(element) {
let agenda = getLocalStorage();
let agendumId = getAgendumId(element);
let agendum = agenda.find(t => t.id == agendumId);
agendum.completed = true;
setLocalStorage(agenda);
showAgenda();
}
function popEditModal(element) {
let agenda = getLocalStorage();
let agendumId = getAgendumId(element);
let agendum = agenda.find(t => t.id == agendumId);
document.getElementById("editId").value = agendum.id;
document.getElementById("editTitle").value = agendum.title;
document.getElementById("editDueDate").value = displayDate(agendum.dueDate);
}