Skip to content
Snippets Groups Projects
Select Git revision
  • renovate/requests-2.x
  • renovate/flask-3.x
  • renovate/gevent-25.x
  • renovate/postgres-17.x
  • renovate/python-3.x
  • master default
  • v1.1.0
  • v1.0.0
8 results

main.js

Blame
  • 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');
                }
            });
    }