$(document).ready(function() { $('.collapsible').collapsible({ accordion: false // A setting that changes the collapsible behavior to expandable instead of the default accordion style }); $('.milestone-title').click(function() { var $header = $(this); //getting the next element var $content = $header.next(); //open up the content needed - toggle the slide- if visible, slide up, if not slide down. $content.slideToggle(200); }); //expand specific milestones on first load var initialExpandedMilestones = document.getElementsByClassName('init-as-expanded'); for(var i = 0; i < initialExpandedMilestones.length; i++) { $(initialExpandedMilestones[i]).slideToggle(200); } //reacts to resize event of card and calls createTrainMap to adjust circles //https://github.com/marcj/css-element-queries var entries = document.getElementsByClassName('milestone'); for(var i = 0; i < entries.length - 1; i++) { new ResizeSensor(entries[i], function() { createTrainMap(); }); } $('.button-delete-roadmap').click(function(event) { confirmDelete("Do you really want to delete this roadmap?", this.href, event); }); $('.button-delete-milestone').click(function(event) { confirmDelete("Do you really want to delete this milestone?", this.href, event); }); $('.button-delete-task').click(function(event) { confirmDelete("Do you really want to delete this task?", this.href, event); }); $('.button-delete-subtask').click(function(event) { confirmDelete("Do you really want to delete this subtask?", this.href, event); }); $('#checkbox-done').click(function() { var checked = document.getElementById("checkbox-done").checked; if(checked) { hideElement(document.getElementById("row-done-date"), false); let elements = document.querySelector('#done-date'); M.Datepicker.init(elements, { selectMonths: true, // Creates a dropdown to control month selectYears: 15, // Creates a dropdown of 15 years to control year format: 'yyyy-mm-dd', setDefaultDate: true, defaultDate: new Date(), showClearBtn: true }); } else { hideElement(document.getElementById("row-done-date"), true); } }); let datePickers = document.querySelectorAll('.datepicker'); M.Datepicker.init(datePickers, { selectMonths: true, selectYears: 15, format: 'yyyy-mm-dd', showClearBtn: true }); createTrainMap(); }); function confirmDelete(message, redirectURL, event) { var response = confirm(message); if(response === true) { header("location: " + redirectURL); } else { event.preventDefault(); } } function isNull(object) { return object === "" || object === undefined; } function hideElement(element, value) { if(value === true) { element.classList.add("hide"); } else { if(element.classList.contains("hide")) { element.classList.remove("hide"); } } } function createTrainMap() { var entries = document.getElementsByClassName('milestone'); var lines = document.getElementsByClassName('train-line'); var smallLines = document.getElementsByClassName('train-line-small'); for(var i = 0; i < entries.length - 1; i++) { var height = entries[i].offsetHeight; lines[i].style.height = (height - 15) + "px"; smallLines[i].style.height = (height - 2) + "px"; } } function validateLoginForm() { var password = $('#password').val(); if(isNull(password)) { alert("Please enter your password."); return false; } } function validateNewRoadmapForm() { var projectName = $('#project-name').val(); var startDate = document.getElementById('start-date'); if(isNull(projectName)) { alert("Please enter a project name."); return false; } if(isNull(startDate.value)) { startDate.value = "01.01.2000"; } } function validateNewMilestoneForm() { var versionCode = $('#version-code').val(); var versionName = $('#version-name').val(); var title = $('#title').val(); var dueDate = document.getElementById('due-date'); var doneDate = document.getElementById('done-date'); var done = document.getElementById('checkbox-done').checked; if(isNull(versionCode)) { alert("Version Code shouldn't be empty!"); return false; } if(isNull(versionName)) { alert("Version Name shouldn't be empty!"); return false; } if(isNull(title)) { alert("Title shouldn't be empty!"); return false; } if(isNull(dueDate.value)) { dueDate.value = "01.01.2000"; } if(isNull(doneDate.value)) { doneDate.value = "01.01.2000"; } if(!done) { doneDate.value = "01.01.2000"; } return true; } function validateNewTaskForm() { var title = $('#title').val(); var description = document.getElementById('description'); if(isNull(title)) { alert("Title shouldn't be empty!"); return false; } if(isNull(description)) { alert("Description shouldn't be empty!"); return false; } return true; }