diff --git a/app.js b/app.js index ab737a60027..56ad499c87c 100644 --- a/app.js +++ b/app.js @@ -8,17 +8,17 @@ // Event handling, user interaction is what starts the code execution. -var taskInput=document.getElementById("new-task");//Add a new task. -var addButton=document.getElementsByTagName("button")[0];//first button -var incompleteTaskHolder=document.getElementById("incompleteTasks");//ul of #incompleteTasks -var completedTasksHolder=document.getElementById("completed-tasks");//completed-tasks +var taskInput=document.getElementById("new_task");//Add a new task. +var addButton=document.querySelectorAll(".button")[0];//first button +var incompleteTaskHolder=document.querySelector(".tasks__list_incomplete");//ul of tasks__list_incomplete +var completedTasksHolder=document.querySelector(".tasks__list_complete");//tasks__list_complete //New task list item var createNewTaskElement=function(taskString){ var listItem=document.createElement("li"); - + listItem.classList.add("tasks__item"); //input (checkbox) var checkBox=document.createElement("input");//checkbx //label @@ -33,17 +33,19 @@ var createNewTaskElement=function(taskString){ var deleteButtonImg=document.createElement("img");//delete button image label.innerText=taskString; - label.className='task'; + label.className='tasks__label'; //Each elements, needs appending checkBox.type="checkbox"; + checkBox.className="tasks__input_checkbox"; editInput.type="text"; - editInput.className="task"; + editInput.className="tasks__input_text"; editButton.innerText="Edit"; //innerText encodes special characters, HTML does not. - editButton.className="edit"; + editButton.className="button button_edit"; - deleteButton.className="delete"; + deleteButton.className="button button_delete"; + deleteButtonImg.classList.add("button__image_delete"); deleteButtonImg.src='./remove.svg'; deleteButton.appendChild(deleteButtonImg); @@ -61,7 +63,7 @@ var createNewTaskElement=function(taskString){ var addTask=function(){ console.log("Add Task..."); - //Create a new list item with the text from the #new-task: + //Create a new list item with the text from the #new_task: if (!taskInput.value) return; var listItem=createNewTaskElement(taskInput.value); @@ -82,14 +84,14 @@ var editTask=function(){ var listItem=this.parentNode; - var editInput=listItem.querySelector('input[type=text]'); - var label=listItem.querySelector("label"); - var editBtn=listItem.querySelector(".edit"); - var containsClass=listItem.classList.contains("editMode"); - //If class of the parent is .editmode + var editInput=listItem.querySelector(".tasks__input_text"); + var label=listItem.querySelector(".tasks__label"); + var editBtn=listItem.querySelector(".button_edit"); + var containsClass=listItem.classList.contains("tasks__item_edit"); + //If class of the parent is .tasks__item_edit if(containsClass){ - //switch to .editmode + //switch to .tasks__item_edit //label becomes the inputs value. label.innerText=editInput.value; editBtn.innerText="Edit"; @@ -98,8 +100,8 @@ var editTask=function(){ editBtn.innerText="Save"; } - //toggle .editmode on the parent. - listItem.classList.toggle("editMode"); + //toggle .tasks__item_edit on the parent. + listItem.classList.toggle("tasks__item_edit"); }; @@ -119,7 +121,7 @@ var deleteTask=function(){ var taskCompleted=function(){ console.log("Complete Task..."); - //Append the task list item to the #completed-tasks + //Append the task list item to the tasks__list_complete var listItem=this.parentNode; completedTasksHolder.appendChild(listItem); bindTaskEvents(listItem, taskIncomplete); @@ -131,7 +133,7 @@ var taskIncomplete=function(){ console.log("Incomplete Task..."); //Mark task as incomplete. //When the checkbox is unchecked - //Append the task list item to the #incompleteTasks. + //Append the task list item to the tasks__list_incomplete. var listItem=this.parentNode; incompleteTaskHolder.appendChild(listItem); bindTaskEvents(listItem,taskCompleted); @@ -155,9 +157,9 @@ addButton.addEventListener("click",ajaxRequest); var bindTaskEvents=function(taskListItem,checkBoxEventHandler){ console.log("bind list item events"); //select ListItems children - var checkBox=taskListItem.querySelector("input[type=checkbox]"); - var editButton=taskListItem.querySelector("button.edit"); - var deleteButton=taskListItem.querySelector("button.delete"); + var checkBox=taskListItem.querySelector(".tasks__input_checkbox"); + var editButton=taskListItem.querySelector(".button_edit"); + var deleteButton=taskListItem.querySelector(".button_delete"); //Bind editTask to edit button. diff --git a/index.html b/index.html index ef4aa1f60ca..5c2d948135e 100644 --- a/index.html +++ b/index.html @@ -1,19 +1,65 @@ + -Todo App - - - - -
Want more details?
-

-

Todo

-

Completed

-
- - + + Todo App + + + + +
+ matrix of the eisenhower + + Want more details? + +
+
+
+ +
+ + +
+
+
+

Todo

+ +
+
+

Completed

+ +
+
+ + + \ No newline at end of file diff --git a/style.css b/style.css index ab36227705e..74854ea788e 100644 --- a/style.css +++ b/style.css @@ -1,50 +1,68 @@ /* Basic Style */ -body { + +.body { background-color: #f8f8f8; color: #333; font-family: Lato, sans-serif; -} -.aaa { + } + + .header { width: 500px; margin: 0 auto; display: block; text-align: right; -} -.aaa img { + } + + .header__image { width: 100%; -} -.aaa .more_inf { + } + + .header__info { font-family: fantasy, cursive; -} - -@media (max-width:768px) { -.aaa { text-align: center; -} -} -.centered-main-page-element { + } + + @media (max-width:768px) { + + .header { + text-align: center; + } + + } + + .main { display: block; width: 500px; margin: 0 auto 0; -} -.task { + } + + .tasks__label, + .tasks__input_text { width: 56%; display: inline-block; - flex-grow: 1 -} -.task-row-wrapper { + flex-grow: 1; + } + + .tasks__add_wrapper { display: flex; -} -ul { - margin:0; + } + + .tasks__list { + margin: 0; padding: 0px; -} -li, h3 { - list-style:none; -} -input,button{ - outline:none; -} -button { + } + + .tasks__item, + .tasks__title { + list-style: none; + } + + .tasks__input_checkbox, + .tasks__input_text, + .button { + outline: none; + } + + .button { background: none; border: 0px; color: #888; @@ -52,13 +70,16 @@ button { width: 60px; font-family: Lato, sans-serif; cursor: pointer; -} -button:hover { - color: #3a3A3a; -} -/* Heading */ -h3, -label[for='new-task'] { + } + + .button:hover { + color: #3a3a3a; + } + + /* Heading */ + + .tasks__title, + .tasks__add_label { color: #333; font-weight: 700; font-size: 15px; @@ -66,83 +87,96 @@ label[for='new-task'] { padding: 30px 0 10px; margin: 0; text-transform: uppercase; -} -input[type="text"] { + } + + .tasks__input_text { margin: 0; font-size: 18px; line-height: 18px; height: 21px; padding: 0 9px; - border: 1px solid #dDd; - background: #FFF; + border: 1px solid #ddd; + background: #fff; border-radius: 6px; font-family: Lato, sans-serif; color: #888; -} -input[type="text"]:focus { + } + + .tasks__input_text:focus { color: #333; -} - -/* New Task */ -label[for='new-task'] { + } + + /* New Task */ + + .tasks__add_label { display: block; margin: 0 0 20px; -} -input#new-task { + } + + #new_task { width: 318px; -} - -/* Task list */ -li { + } + + /* Task list */ + + .tasks__item { overflow: hidden; padding: 20px 0; border-bottom: 1px solid #eee; - display: flex; justify-content: space-between; align-items: center; -} -li > * { + } + + .tasks__label, + .tasks__input_checkbox, + .tasks__input_text { vertical-align: middle; -} - -li > input[type="checkbox"] { + } + + .tasks__input_checkbox { margin: 0 10px; -} -li > label { + } + + .tasks__label { padding-left: 10px; box-sizing: border-box; font-size: 18px; width: 226px; -} -li > input[type="text"] { - width: 226px -} -button.delete img { + } + + .tasks__input_text { + width: 226px; + } + + .button__image_delete { height: 2em; transform: rotateZ(45deg); transition: transform 200ms ease-in; -} -button.delete img:hover { + } + + .button__image_delete:hover { transform: rotateZ(0); -} - -/* Completed */ -ul#completed-tasks label { - text-decoration: line-through + } + + /* Completed */ + + .tasks__list_complete .tasks__label { + text-decoration: line-through; color: #888; -} - -/* Edit Task */ -ul li input[type=text] { - display:none -} - -ul li.editMode input[type=text] { - display:inline-block; - width:224px -} - -ul li.editMode label { - display:none; -} \ No newline at end of file + } + + /* Edit Task */ + + .tasks__list .tasks__input_text { + display: none; + } + + .tasks__item_edit .tasks__input_text { + display: inline-block; + width: 224px; + } + + .tasks__item_edit .tasks__label { + display: none; + } \ No newline at end of file