Select Git revision
-
Robert Goldmann authoredRobert Goldmann authored
main.js 11.29 KiB
$(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 slidedown.
$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-save-roadmap').click(function()
{
editRoadmap(this.dataset.id, $('#project-name').val());
});
$('.button-save-milestone').click(function()
{
editMilestone(this.dataset.id, this.dataset.roadmapid);
});
$('.button-save-task').click(function()
{
editTask(this.dataset.id, this.dataset.milestoneid);
});
$('.button-save-subtask').click(function()
{
editSubtask(this.dataset.id, this.dataset.taskid);
});
$('.button-delete-roadmap').click(function()
{
var r = confirm("Do you really want to delete this roadmap?");
if(r == true)
{
deleteRoadmap(this.dataset.id);
}
});
$('.button-delete-milestone').click(function()
{
var r = confirm("Do you really want to delete this milestone?");
if(r == true)
{
deleteMilestone(this.dataset.id, this.dataset.roadmapid);
}
});
$('.button-delete-task').click(function()
{
var r = confirm("Do you really want to delete this task?");
if(r == true)
{
deleteTask(this.dataset.id, this.dataset.milestoneid);
}
});
$('.button-delete-subtask').click(function()
{
var r = confirm("Do you really want to delete this subtask?");
if(r == true)
{
deleteSubtask(this.dataset.id, this.dataset.taskid);
}
});
$('#checkbox-done').click(function()
{
var checked = document.getElementById("checkbox-done").checked;
if(checked)
{
hideElement(document.getElementById("row-done-date"), false);
var $input = $('#done-date').pickadate();
var picker = $input.pickadate('picker');
picker.set('select', new Date());
}
else
{
hideElement(document.getElementById("row-done-date"), true);
}
});
$('.datepicker').pickadate({
selectMonths: true, // Creates a dropdown to control month
selectYears: 15, // Creates a dropdown of 15 years to control year
format: 'dd.mm.yyyy',
formatSubmit: 'yyyy-mm-dd'
});
$('.button-login').click(function()
{
login();
});
$('#password').keyup(function(e)
{
if(e.keyCode === 13) //Enter
{
login();
}
});
$('#button-mark-all-as-done').click(function()
{
markAllTasksAsDone(this.dataset.milestoneid);
});
createTrainMap();
});
function isNull(object)
{
if(object != "" && object != undefined)
{
return false;
}
else
{
return true;
}
}
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 editRoadmap(roadmap_ID, projectname)
{
if(isNull(projectname))
{
alert("Project Name shouldn't be empty!");
return;
}
if(roadmap_ID == "0")
{
//insert new roadmap
$.post('../admin/helper/edit-roadmap.php',
{
"project-name": projectname,
"edit": "false"
}, function(data, error)
{
data = data.toString().trim();
switch(data)
{
case "error":
alert('An error occurred');
break;
case "error-edit":
alert('An error occurred while editing the roadmap with the ID ' + roadmap_ID);
break;
case "error-insert":
alert('An error occurred while inserting the new roadmap');
break;
default:
window.location.href = "../admin/admin-roadmaps.php";
break;
}
});
}
else
{
//edit existing roadmap
$.post('../admin/helper/edit-roadmap.php',
{
"ID": roadmap_ID,
"project-name": projectname,
"edit": "true"
}, function(data, error)
{
data = data.toString().trim();
switch(data)
{
case "error":
alert('An error occurred');
break;
case "error-edit":
alert('An error occurred while editing the roadmap with the ID ' + roadmap_ID);
break;
case "error-insert":
alert('An error occurred while inserting the new roadmap');
break;
default:
window.location.href = "../admin/admin-roadmaps.php";
break;
}
});
}
}
function deleteRoadmap(roadmap_ID)
{
$.post('../admin/helper/delete-roadmap.php',
{
"roadmap_ID": roadmap_ID,
}, function(data, error)
{
data = data.toString().trim();
if(data != "error")
{
window.location.href = "../admin/admin-roadmaps.php";
}
else
{
alert('An error occurred while deleting the roadmap with the ID ' + roadmap_ID);
}
});
}
function editMilestone(milestone_ID, roadmap_ID)
{
var edit = document.getElementById('edit').innerHTML;
var versionCode = $('#version-code').val();
var versionName = $('#version-name').val();
var title = $('#title').val();
var dueDate = $('#due-date').val();
var doneDate = $('#done-date').val();
var done = document.getElementById("checkbox-done").checked;
if(isNull(versionCode))
{
alert("Version Code shouldn't be empty!");
return;
}
if(isNull(versionName))
{
alert("Version Name shouldn't be empty!");
return;
}
if(isNull(title))
{
alert("Title shouldn't be empty!");
return;
}
if(isNull(dueDate))
{
dueDate = "01.01.2000";
}
if(isNull(doneDate))
{
doneDate = "01.01.2000";
}
if(done)
{
done = 1;
}
else
{
done = 0;
doneDate = "01.01.2000";
}
$.post('../admin/helper/edit-milestone.php',
{
"version-code": versionCode,
"version-name": versionName,
"title": title,
"due-date": dueDate,
"done-date": doneDate,
"done": done,
"edit": edit,
"ID": milestone_ID,
"roadmap-ID": roadmap_ID
}, function(data, error)
{
data = data.toString().trim();
switch(data)
{
case "error":
alert('An error occurred');
break;
case "error-edit":
alert('An error occurred while editing the roadmap with the ID ' + roadmap_ID);
break;
case "error-insert":
alert('An error occurred while inserting the new milestone');
break;
default:
window.location.href = "../admin/admin-milestones.php?id=" + roadmap_ID;
break;
}
});
}
function deleteMilestone(milestone_ID, roadmap_ID)
{
$.post('../admin/helper/delete-milestone.php',
{
"milestone_ID": milestone_ID,
}, function(data, error)
{
data = data.toString().trim();
if(data != "error")
{
window.location.href = "../admin/admin-milestones.php?id=" + roadmap_ID;
}
else
{
alert('An error occurred while deleting the milestone with the ID ' + milestone_ID);
}
});
}
function editTask(task_ID, milestone_ID)
{
var edit = document.getElementById('edit').innerHTML;
var title = $('#title').val();
var description = $('#description').val();;
var done = document.getElementById("checkbox-done").checked;
if(isNull(title))
{
alert("Title shouldn't be empty!");
return;
}
if(done)
{
done = 1;
}
else
{
done = 0;
}
$.post('../admin/helper/edit-task.php',
{
"title": title,
"description": description,
"done": done,
"edit": edit,
"ID": task_ID,
"milestone-ID": milestone_ID
}, function(data, error)
{
data = data.toString().trim();
switch(data)
{
case "error":
alert('An error occurred');
break;
case "error-edit":
alert('An error occurred while editing the task with the ID ' + task_ID);
break;
case "error-insert":
alert('An error occurred while inserting the new task');
break;
default:
window.location.href = "../admin/admin-tasks.php?id=" + milestone_ID;
break;
}
});
}
function deleteTask(task_ID, milestone_ID)
{
$.post('../admin/helper/delete-task.php',
{
"task_ID": task_ID,
}, function(data, error)
{
data = data.toString().trim();
if(data != "error")
{
window.location.href = "../admin/admin-tasks.php?id=" + milestone_ID;
}
else
{
alert('An error occurred while deleting the task with the ID ' + task_ID);
}
});
}
function editSubtask(subtask_ID, task_ID)
{
var edit = document.getElementById('edit').innerHTML;
var title = $('#title').val();
var description = $('#description').val();;
var done = document.getElementById("checkbox-done").checked;
if(isNull(title))
{
alert("Title shouldn't be empty!");
return;
}
if(done)
{
done = 1;
}
else
{
done = 0;
}
$.post('../admin/helper/edit-subtask.php',
{
"title": title,
"description": description,
"done": done,
"edit": edit,
"ID": subtask_ID,
"task-ID": task_ID
}, function(data, error)
{
data = data.toString().trim();
switch(data)
{
case "error":
alert('An error occurred');
break;
case "error-edit":
alert('An error occurred while editing the subtask with the ID ' + subtask_ID);
break;
case "error-insert":
alert('An error occurred while inserting the new task');
break;
default:
window.location.href = "../admin/admin-subtasks.php?id=" + task_ID;
break;
}
});
}
function deleteSubtask(subtask_ID, task_ID)
{
$.post('../admin/helper/delete-subtask.php',
{
"subtask_ID": subtask_ID,
"task_ID": task_ID
}, function(data, error)
{
data = data.toString().trim();
if(data != "error")
{
window.location.href = "../admin/admin-subtasks.php?id=" + task_ID;
}
else
{
alert('An error occurred while deleting the subtask with the ID ' + subtask_ID);
}
});
}
function login()
{
var password = $('#password').val();
if(isNull(password))
{
alert("Please enter your password.");
return;
}
$.post('../admin/helper/checkLogin.php',
{
"password": password
}, function(data, error)
{
data = data.toString().trim();
if(data != "error" && data != "bad_login")
{
window.location.href = "../admin/admin-roadmaps.php";
}
else
{
alert('Wrong password!');
}
});
}
function markAllTasksAsDone(milestone_ID)
{
$.post('../admin/helper/mark-all-tasks-as-done.php',
{
"milestoneID": milestone_ID
}, function(data, error)
{
data = data.toString().trim();
if(data != "error" && data != "bad_login")
{
window.location.href = "../admin/admin-tasks.php?id=" + milestone_ID;
}
else
{
alert('An error occurred while marking all tasks as done');
}
});
}