Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- function makeEl(type, text, clazz) {
- let el = document.createElement(type);
- if (text !== null) {
- el.textContent = text;
- }
- if (clazz !== null) {
- el.setAttribute('class', clazz);
- }
- return el;
- }
- function addToSection(section, art) {
- sectionMap[section].children[1].appendChild(art);
- return art;
- }
- function deleteArticle(e) {
- let art = e.target.parentNode.parentNode;
- art.remove();
- return art;
- }
- function removeButtons(art) {
- let btnDiv = art.children[3]
- art.removeChild(btnDiv);
- return art;
- }
- let btn = this.document.getElementById('add');
- let sections = document.getElementsByTagName('section');
- let sectionMap = {
- open: sections[1],
- inProgress: sections[2],
- complete: sections[3]
- };
- btn.addEventListener('click', function (e) {
- e.preventDefault();
- let title = document.getElementById('task').value;
- let description = document.getElementById('description').value;
- let date = document.getElementById('date').value;
- let dateRegex = new RegExp('^\\d{4}\\.\\d{2}\\.\\d{2}$');
- if (title === '' || description === '' || !dateRegex.test(date)) {
- console.log("Error");
- return
- }
- let art = document.createElement('article');
- art.appendChild(makeEl('h3', title, null));
- art.appendChild(makeEl('p', `Description: ${description}`, null));
- art.appendChild(makeEl('p', `Due Date: ${date}`, null));
- let btnDiv = makeEl('div', null, 'flex');
- let startBtn = makeEl('button', 'Start', 'green');
- startBtn.addEventListener('click', function (e) {
- let art = removeButtons(deleteArticle(e));
- let btnDiv = makeEl('div', null, 'flex');
- let delBtn = makeEl('button', 'Delete', 'red');
- delBtn.addEventListener('click', function (e) {
- deleteArticle(e);
- });
- btnDiv.appendChild(delBtn);
- let finishBtn = makeEl('button', 'Finish', 'orange');
- finishBtn.addEventListener('click', function (e) {
- addToSection('complete', removeButtons(deleteArticle(e)))
- });
- btnDiv.appendChild(finishBtn);
- art.appendChild(btnDiv);
- addToSection('inProgress', art)
- });
- btnDiv.appendChild(startBtn);
- let delBtn = makeEl('button', 'Delete', 'red');
- delBtn.addEventListener('click', function (e) {
- deleteArticle(e);
- });
- btnDiv.appendChild(delBtn);
- art.appendChild(btnDiv);
- addToSection('open', art)
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment