Advertisement
Guest User

Untitled

a guest
Jun 17th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.61 KB | None | 0 0
  1. var selectedProjectId;
  2. var selectedTaskId;
  3.  
  4.  
  5. $(document).ready(function () {
  6. buildNavigation(false);
  7. showLogin();
  8. });
  9.  
  10. /**
  11. * Builds a form to edit the selected task.
  12. * This method will first create a new empty task form and then populate
  13. * the inputs with the task's information.
  14. */
  15. function buildEditTaskForm() {
  16. buildNewTaskForm();
  17.  
  18. var req = new XMLHttpRequest();
  19. req.open("GET", "/api/projects/" + selectedProjectId + "/tasks/" + selectedTaskId + "/");
  20. req.addEventListener("load", function() {
  21. var res = JSON.parse(this.responseText);
  22. document.getElementById("task_name").value = res['title'];
  23. document.getElementById("task_date").value = res['creation_date'];
  24. });
  25. req.setRequestHeader("Content-type", "application/json");
  26. req.send(JSON.stringify({'name' : name, 'last_updated': getDate()}));
  27.  
  28. document.getElementById("new_task_form").action = "javascript: editTask()";
  29.  
  30. document.getElementById("new_task_button").value = "EDIT";
  31. }
  32.  
  33. /**
  34. * Builds a form to add a new task.
  35. */
  36. function buildNewTaskForm() {
  37. $("#page_overlay").empty();
  38. var container = document.body;
  39.  
  40. var overlay = document.createElement("div");
  41. overlay.id = "page_overlay";
  42.  
  43. var pform = document.createElement("div");
  44. pform.id = "task_form";
  45.  
  46. var form = document.createElement("form");
  47. form.id = "new_task_form"
  48. form.action = "javascript: addTask()";
  49.  
  50. var close = document.createElement("a");
  51. close.textContent = "x"
  52. close.href = "javascript: closePopup();";
  53.  
  54. var nameInput = document.createElement("input");
  55. nameInput.type = "text";
  56. nameInput.id = "task_name";
  57. nameInput.placeholder = "Task name";
  58.  
  59. var p = document.createElement("p");
  60. p.textContent = "Due date:";
  61.  
  62. var dateInput = document.createElement("input");
  63. dateInput.type = "date";
  64. dateInput.id = "task_date";
  65.  
  66. var submitBtn = document.createElement("input");
  67. submitBtn.id = "new_project_button";
  68. submitBtn.type = "submit";
  69. submitBtn.value = "CREATE";
  70.  
  71. form.append(close);
  72. form.append(nameInput);
  73. form.append(p);
  74. form.append(dateInput);
  75. form.append(submitBtn);
  76.  
  77. pform.append(form);
  78.  
  79. overlay.append(pform);
  80. container.append(overlay);
  81. }
  82.  
  83. /**
  84. * Builds a form to add a new project.
  85. */
  86. function buildNewProjectForm() {
  87. $("#page_overlay").empty();
  88. var container = document.body;
  89.  
  90. var overlay = document.createElement("div");
  91. overlay.id = "page_overlay";
  92.  
  93. var pform = document.createElement("div");
  94. pform.id = "project_form";
  95.  
  96. var form = document.createElement("form");
  97. form.id = "new_project_form"
  98. form.action = "javascript: addProject()";
  99.  
  100. var close = document.createElement("a");
  101. close.textContent = "x"
  102. close.href = "javascript: closePopup();";
  103.  
  104. var nameInput = document.createElement("input");
  105. nameInput.type = "text";
  106. nameInput.id = "project_name";
  107. nameInput.placeholder = "Project name";
  108.  
  109. var submitBtn = document.createElement("input");
  110. submitBtn.id = "new_project_button";
  111. submitBtn.type = "submit";
  112. submitBtn.value = "CREATE";
  113.  
  114. form.append(close);
  115. form.append(nameInput);
  116. form.append(submitBtn);
  117.  
  118. pform.append(form);
  119.  
  120. overlay.append(pform);
  121. container.append(overlay);
  122. }
  123. /**
  124. * Builds a form to edit the selected project.
  125. * This method will first create a new empty project form and then populate
  126. * the inputs with the project's information.
  127. */
  128. function buildEditProjectForm() {
  129. buildNewProjectForm();
  130.  
  131. var req = new XMLHttpRequest();
  132. req.open("GET", "/api/projects/" + selectedProjectId + "/");
  133. req.addEventListener("load", function() {
  134. var res = JSON.parse(this.responseText);
  135. document.getElementById("project_name").value = res['name'];
  136. });
  137. req.setRequestHeader("Content-type", "application/json");
  138. req.send(JSON.stringify({'name' : name, 'last_updated': getDate()}));
  139.  
  140.  
  141. document.getElementById("new_project_form").action = "javascript: editProject()";
  142.  
  143. document.getElementById("new_project_button").value = "EDIT";
  144. }
  145.  
  146. function buildLogin() {
  147. var container = document.getElementById("container");
  148.  
  149. var formContainer = document.createElement("div");
  150. formContainer.id = "login_form";
  151.  
  152. var title = document.createElement("div");
  153. title.className = "form_title";
  154. title.textContent = "LOGIN TO YOUR ACCOUNT";
  155.  
  156. var form = document.createElement("form");
  157. form.action = "javascript: login()";
  158.  
  159. var usernameInput = document.createElement("input");
  160. usernameInput.type = "text";
  161. usernameInput.id = "login_username";
  162. usernameInput.placeholder = "Username";
  163.  
  164. var passwordInput = document.createElement("input");
  165. passwordInput.type = "password";
  166. passwordInput.id = "login_password";
  167. passwordInput.placeholder = "Password";
  168.  
  169. var submitBtn = document.createElement("input");
  170. submitBtn.type = "submit";
  171. submitBtn.value = "LOGIN";
  172.  
  173. form.append(usernameInput);
  174. form.append(passwordInput);
  175. form.append(submitBtn);
  176.  
  177. formContainer.append(title);
  178. formContainer.append(form);
  179.  
  180. container.append(formContainer);
  181. }
  182.  
  183. /**
  184. * Builds the register page
  185. */
  186. function buildRegister() {
  187. var container = document.getElementById("container");
  188.  
  189. var formContainer = document.createElement("div");
  190. formContainer.id = "register_form";
  191.  
  192. var title = document.createElement("div");
  193. title.className = "form_title";
  194. title.textContent = "REGISTER A NEW ACCOUNT";
  195.  
  196. var form = document.createElement("form");
  197. form.action = "javascript: register()";
  198.  
  199. var usernameInput = document.createElement("input");
  200. usernameInput.type = "text";
  201. usernameInput.id = "login_username";
  202. usernameInput.placeholder = "Username";
  203.  
  204. var nameInput = document.createElement("input");
  205. nameInput.type = "text";
  206. nameInput.id = "login_name";
  207. nameInput.placeholder = "Name";
  208.  
  209. var emailInput = document.createElement("input");
  210. emailInput.type = "text";
  211. emailInput.id = "login_email";
  212. emailInput.placeholder = "Email";
  213.  
  214. var passwordInput = document.createElement("input");
  215. passwordInput.type = "password";
  216. passwordInput.id = "login_password";
  217. passwordInput.placeholder = "Password";
  218.  
  219. var passwordConfirmInput = document.createElement("input");
  220. passwordConfirmInput.type = "password";
  221. passwordConfirmInput.id = "login_confirm_password";
  222. passwordConfirmInput.placeholder = "Password (Confirm)";
  223.  
  224. var submitBtn = document.createElement("input");
  225. submitBtn.type = "submit";
  226. submitBtn.value = "REGISTER";
  227.  
  228. form.append(usernameInput);
  229. form.append(nameInput);
  230. form.append(emailInput);
  231. form.append(passwordInput);
  232. form.append(passwordConfirmInput);
  233. form.append(submitBtn);
  234.  
  235. formContainer.append(title);
  236. formContainer.append(form);
  237.  
  238. container.append(formContainer);
  239. }
  240. /**
  241. * Builds the home page
  242. */
  243. function buildHome() {
  244. buildPageStructure();
  245.  
  246. buildProjectsActions(false);
  247. buildTaskActions(false);
  248.  
  249. buildProjectList();
  250. }
  251.  
  252. function buildPageStructure() {
  253. var container = document.getElementById("container");
  254.  
  255. var projects = document.createElement("div");
  256. projects.id = "projects";
  257.  
  258. var projectsTitle = document.createElement("span");
  259. projectsTitle.className = "section_title";
  260. projectsTitle.innerText = "PROJECTS";
  261.  
  262. var projectsActions = document.createElement("div");
  263. projectsActions.className = "section_actions";
  264. projectsActions.id = "project_actions";
  265.  
  266. var projectList = document.createElement("ul");
  267. projectList.id = "project_list";
  268.  
  269. projects.append(projectsTitle);
  270. projects.append(projectsActions);
  271. projects.append(projectList);
  272.  
  273. var tasks = document.createElement("div");
  274. tasks.id = "tasks";
  275.  
  276. var tasksTitle = document.createElement("span");
  277. tasksTitle.className = "section_title";
  278. tasksTitle.innerText = "TASKS";
  279.  
  280. var taskActions = document.createElement("div");
  281. taskActions.className = "section_actions";
  282. taskActions.id = "task_actions";
  283.  
  284. var todoTaskList = document.createElement("ul");
  285. todoTaskList.id = "todo_tasks";
  286.  
  287. var completedTitle = document.createElement("span");
  288. completedTitle.className = "section_title";
  289. completedTitle.innerText = "COMPLETED";
  290.  
  291. var completedTaskList = document.createElement("ul");
  292. completedTaskList.id = "completed_tasks";
  293.  
  294. tasks.append(tasksTitle);
  295. tasks.append(taskActions);
  296. tasks.append(todoTaskList);
  297. tasks.append(document.createElement("br"));
  298. tasks.append(completedTitle);
  299. tasks.append(completedTaskList);
  300.  
  301. container.append(projects);
  302. container.append(tasks);
  303. }
  304.  
  305. /**
  306. * Builds the navigation bar, either for logged users or visitors.
  307. */
  308. function buildNavigation(logged) {
  309. var nav = document.getElementById("nav_list");
  310. $("#nav_list").empty();
  311.  
  312. if (logged) {
  313. nav.append(buildNavButton("HOME", "javascript: showHome()"));
  314. nav.append(buildNavButton("ACCOUNT", "javascript: showAccount()"));
  315. nav.append(buildNavButton("LOGOUT", "javascript: logout()"));
  316. } else {
  317. nav.append(buildNavButton("LOGIN", "javascript: showLogin()"));
  318. nav.append(buildNavButton("REGISTER", "javascript: showRegister()"));
  319. }
  320.  
  321. }
  322.  
  323. /**
  324. * Builds a navigation button with a given name and url action.
  325. */
  326. function buildNavButton(name, url) {
  327.  
  328. var li = document.createElement("li");
  329. var a = document.createElement("a");
  330. a.href = url;
  331. a.innerText = name;
  332.  
  333. li.append(a);
  334. return li;
  335. }
  336.  
  337. /**
  338. * Creates an icon with an URL action (anchor),
  339. * receives action url and image url.
  340. */
  341. function buildAction(url, image) {
  342.  
  343. var a = document.createElement("a");
  344.  
  345. var img = document.createElement("img");
  346. img.src = image
  347.  
  348. if (url !== "") {
  349. a.href = url;
  350. }
  351.  
  352. a.append(img);
  353. return a;
  354. }
  355.  
  356. /**
  357. * Builds the title actions on the projects list.
  358. * This included loading the icons and respective action URLs,
  359. * depending on the "selected" parameter, this determines if a project
  360. * is selected.
  361. */
  362. function buildProjectsActions(selected) {
  363.  
  364. var actionsContainer = $("#project_actions");
  365. actionsContainer.empty();
  366.  
  367. actionsContainer.append(buildAction("javascript: buildNewProjectForm()", "/static/images/icon_add.png"));
  368.  
  369. if (selected) {
  370. actionsContainer.append(buildAction("javascript: buildEditProjectForm()", "/static/images/icon_edit.png"));
  371. actionsContainer.append(buildAction("javascript: deleteSelectedProject()", "/static/images/icon_delete.png"));
  372. } else {
  373. actionsContainer.append(buildAction("", "/static/images/icon_edit_faded.png"));
  374. actionsContainer.append(buildAction("", "/static/images/icon_delete_faded.png"));
  375. }
  376. }
  377.  
  378. /**
  379. * Builds the title actions on the to-do tasks list.
  380. * This included loading the icons and respective action URLs,
  381. * depending on the "selected" parameter, this determines if a task
  382. * is selected.
  383. */
  384. function buildTaskActions(selected) {
  385. var actionsContainer = $("#task_actions");
  386. actionsContainer.empty();
  387.  
  388. if (selected) {
  389. var completion = buildAction("javascript: changeCompletion()", "/static/images/icon_complete.png");
  390. completion.id = "completion_action";
  391.  
  392. actionsContainer.append(completion);
  393. actionsContainer.append(buildAction("javascript: moveTask(1)", "/static/images/icon_up.png"));
  394. actionsContainer.append(buildAction("javascript: moveTask(-1)", "/static/images/icon_down.png"));
  395. } else {
  396. actionsContainer.append(buildAction("", "/static/images/icon_complete_faded.png"));
  397. actionsContainer.append(buildAction("", "/static/images/icon_up_faded.png"));
  398. actionsContainer.append(buildAction("", "/static/images/icon_down_faded.png"));
  399. }
  400.  
  401. var sep = document.createElement("div");
  402. sep.className = "actions_seperator";
  403. actionsContainer.append(sep);
  404.  
  405. actionsContainer.append(buildAction("javascript: buildNewTaskForm()", "/static/images/icon_add.png"));
  406.  
  407. if (selected) {
  408. actionsContainer.append(buildAction("javascript: buildEditTaskForm()", "/static/images/icon_edit.png"));
  409. actionsContainer.append(buildAction("javascript: deleteSelectedTask()", "/static/images/icon_delete.png"));
  410. } else {
  411. actionsContainer.append(buildAction("", "/static/images/icon_edit_faded.png"));
  412. actionsContainer.append(buildAction("", "/static/images/icon_delete_Faded.png"));
  413. }
  414. }
  415.  
  416. /**
  417. * Builds the list of projects displayed on the left side.
  418. */
  419. function buildProjectList() {
  420. var req = new XMLHttpRequest();
  421. req.open("GET", "/api/projects/");
  422. req.addEventListener("load", function() {
  423.  
  424. var list = $("#project_list");
  425. list.empty();
  426.  
  427. var projects = JSON.parse(this.responseText);
  428. for(var i in projects){
  429. var a = document.createElement("a");
  430. a.href = "javascript: selectProject(" + projects[i].id + ", " + i + ")";
  431. var li = document.createElement("li");
  432.  
  433. var title = document.createElement("div");
  434. title.className = "project_title";
  435. title.textContent = projects[i].name
  436.  
  437. var date = document.createElement("div");
  438. date.className = "project_last_updated";
  439. date.textContent = projects[i].last_updated
  440.  
  441. li.append(title);
  442. li.append(date);
  443.  
  444. a.append(li);
  445. list.append(a);
  446. }
  447. });
  448. req.send();
  449. }
  450.  
  451. /**
  452. * Builds the list of tasks displayed on the right side.
  453. */
  454. function buildTaskList() {
  455. var req = new XMLHttpRequest();
  456. req.open("GET", "/api/projects/" + selectedProjectId + "/tasks/");
  457. req.addEventListener("load", function() {
  458.  
  459. var list = $("#task_list");
  460. list.empty();
  461.  
  462. var todoList = $("#todo_tasks");
  463. todoList.empty();
  464.  
  465. var completedList = $("#completed_tasks");
  466. completedList.empty();
  467.  
  468. var todoCount = 0;
  469. var completedCount = 0;
  470. var tasks = JSON.parse(this.responseText);
  471.  
  472. for (var i in tasks) {
  473. var a = document.createElement("a");
  474. a.href = "javascript: selectTask(" + tasks[i].id + ", " + (tasks[i]['completed'] ? completedCount : todoCount) + ", " + tasks[i]['completed'] + ")";
  475.  
  476. var li = document.createElement("li");
  477.  
  478. var title = document.createElement("div");
  479. title.className = "task_title";
  480. title.textContent = tasks[i]['title'];
  481.  
  482. var date = document.createElement("div");
  483. date.className = "task_due_date";
  484. date.textContent = tasks[i]['due_date'];
  485.  
  486. li.append(title);
  487. li.append(date);
  488.  
  489. a.append(li);
  490.  
  491. if (tasks[i]['completed']) {
  492. completedList.append(a);
  493. completedCount++;
  494. } else {
  495. todoList.append(a);
  496. todoCount++;
  497. }
  498.  
  499. }
  500. });
  501. req.send();
  502. }
  503.  
  504. function selectProject(id, index) {
  505. unselectAllProjects();
  506.  
  507. var list = $("#project_list");
  508. var elem = list.children().eq(index);
  509. var li = elem.children().first();
  510. li.addClass("selected_project");
  511.  
  512. buildProjectsActions(true);
  513.  
  514. selectedProjectId = id;
  515. buildTaskList();
  516. }
  517.  
  518. function unselectAllProjects() {
  519. $('#project_list').children().each(function () {
  520. var li = this.children[0];
  521. li.className = "";
  522. });
  523. }
  524.  
  525. /**
  526. * Creates a confirm dialogue, if confirmed, it will send a delete project request to the server.
  527. */
  528. function deleteSelectedProject() {
  529. var r = confirm("This will permanently delete this project, are you sure?");
  530. if (r == true) {
  531. var req = new XMLHttpRequest();
  532. req.open("DELETE", "/api/projects/" + selectedProjectId + "/");
  533. req.addEventListener("load", function() {
  534. buildProjectList();
  535. });
  536. req.send();
  537. }
  538. }
  539.  
  540. /**
  541. * Creates a confirm dialogue, if confirmed, it will send a delete task request to the server.
  542. */
  543. function deleteSelectedTask() {
  544. var r = confirm("This will permanently delete this task, are you sure?");
  545. if (r == true) {
  546. var req = new XMLHttpRequest();
  547. req.open("DELETE", "/api/projects/" + selectedProjectId + "/tasks/" + selectedTaskId + "/");
  548. req.addEventListener("load", function() {
  549. buildTaskList();
  550. });
  551. req.send();
  552. }
  553. }
  554.  
  555. /**
  556. * Changes the "completed" value of a task.
  557. */
  558. function changeCompletion(complete) {
  559. var title = "";
  560. var order = 0;
  561. var due_date = "";
  562. var completed = complete ? 0 : 1;
  563.  
  564. var req = new XMLHttpRequest();
  565. req.open("GET", "/api/projects/" + selectedProjectId + "/tasks/" + selectedTaskId + "/");
  566. req.addEventListener("load", function() {
  567. var res = JSON.parse(this.responseText);
  568. var req2 = new XMLHttpRequest();
  569. req2.open("PUT", "/api/projects/" + selectedProjectId + "/tasks/" + selectedTaskId + "/");
  570. req2.addEventListener("load", function() {
  571. buildTaskList();
  572. });
  573. req2.setRequestHeader("Content-type", "application/json");
  574. req2.send(JSON.stringify({'title' : res['title'], 'order' : res['order'], 'due_date': res['due_date'], 'completed': completed}));
  575. });
  576. req.send();
  577.  
  578.  
  579. }
  580.  
  581. /**
  582. * Moves a task up or down in the list (1 == up, -1 == down).
  583. */
  584. function moveTask(offset) {
  585. /* <--------------------------------------------- MOVE TASK (1 == up, -1 == down) */
  586. buildTaskList();
  587. }
  588.  
  589. /**
  590. * Changes the complete/undo icon depending on the task's status.
  591. */
  592. function displayCompletion(complete) {
  593. var completeAction = document.getElementById("completion_action");
  594. var img = completeAction.children[0];
  595. img.src = complete ? "/static/images/icon_complete.png" : "/static/images/icon_undo.png";
  596. }
  597.  
  598. /**
  599. * Selects a specific task on the list, displaying it's tasks.
  600. */
  601. function selectTask(id, index, completed) {
  602. unselectAllTasks();
  603.  
  604. var list = $(completed ? "#completed_tasks" : "#todo_tasks");
  605. var elem = list.children().eq(index);
  606. var li = elem.children().first();
  607. li.addClass("selected_task");
  608.  
  609. buildTaskActions(true);
  610. displayCompletion(!completed);
  611.  
  612. selectedTaskId = id;
  613. }
  614.  
  615. /**
  616. * Unselects all the tasks on the list.
  617. */
  618. function unselectAllTasks() {
  619. $('#todo_tasks').children().each(function () {
  620. var li = this.children[0];
  621. li.className = "";
  622. });
  623.  
  624. $('#completed_tasks').children().each(function () {
  625. var li = this.children[0];
  626. li.className = "";
  627. });
  628. }
  629.  
  630. function login() {
  631. var username = $("#login_username").val()
  632. var password = $("#login_password").val();
  633.  
  634. if (username.length > 0 && password.length > 0) {
  635.  
  636. var req = new XMLHttpRequest();
  637. req.open("POST", "/api/user/login/");
  638. req.addEventListener("load", function() {
  639. //str = JSON.parse(this.responseText);
  640. //if(!str.includes("\"status\": \"error\"")){
  641. buildNavigation(true);
  642. showHome();
  643. //}else{
  644. //console.log(json)
  645. // }
  646. });
  647. req.setRequestHeader("Content-type", "application/json");
  648. req.send(JSON.stringify({'username' : username, 'password' : password}));
  649. }
  650. }
  651.  
  652.  
  653. function register() {
  654. var email = $("#login_email").val()
  655. var username = $("#login_username").val()
  656. var password = $("#login_password").val();
  657. var passwordConfirm = $("#login_confirm_password").val();
  658.  
  659. if (email.length >0 && username.length > 0 && password.length > 0 && passwordConfirm.length > 0 && passwordConfirm === password) {
  660.  
  661. var req = new XMLHttpRequest();
  662. req.open("POST", "/api/user/register/");
  663. req.addEventListener("load", function() {
  664. //var obj = JSON.parse(this.responseText);
  665. //console.log(obj.status)
  666. //if(!obj.includes("\"status\": \"error\"")){
  667. buildNavigation(true);
  668. showHome();
  669. //}else{
  670. //console.log(str)
  671. //}
  672. });
  673. req.setRequestHeader("Content-type", "application/json");
  674. req.send(JSON.stringify({'email' : email, 'username' : username, 'password':password}));
  675. }
  676. }
  677.  
  678.  
  679. function logout() {
  680. var req = new XMLHttpRequest();
  681. req.open("GET", "/api/user/logout/");
  682. req.addEventListener("load", function() {
  683. buildNavigation(false);
  684. showLogin();
  685. });
  686. req.send();
  687. }
  688.  
  689. function getDate(){
  690. var today = new Date();
  691. var dd = today.getDate();
  692. var mm = today.getMonth()+1; //January is 0!
  693. var yyyy = today.getFullYear();
  694.  
  695. if(dd<10) {
  696. dd = '0'+dd
  697. }
  698.  
  699. if(mm<10) {
  700. mm = '0'+mm
  701. }
  702.  
  703. return mm + '/' + dd + '/' + yyyy;
  704. }
  705.  
  706. function addProject() {
  707. var name = $("#project_name").val();
  708.  
  709. if (name.length === 0) {
  710. alert("Invalid name");
  711. return;
  712. }
  713.  
  714. var req = new XMLHttpRequest();
  715. req.open("POST", "/api/projects/");
  716. req.addEventListener("load", function() {
  717. closePopup();
  718. buildProjectList();
  719. });
  720. req.setRequestHeader("Content-type", "application/json");
  721. req.send(JSON.stringify({'name' : name, 'creation_date': getDate(), 'last_updated': getDate()}));
  722. }
  723.  
  724. function editProject() {
  725. var name = $("#project_name").val();
  726.  
  727. if (name.length === 0) {
  728. alert("Invalid name");
  729. return;
  730. }
  731.  
  732. var req = new XMLHttpRequest();
  733. req.open("PUT", "/api/projects/" + selectedProjectId + "/");
  734. req.addEventListener("load", function() {
  735. closePopup();
  736. buildProjectList();
  737. });
  738. req.setRequestHeader("Content-type", "application/json");
  739. req.send(JSON.stringify({'name' : name, 'last_updated': getDate()}));
  740.  
  741. }
  742.  
  743. function addTask() {
  744.  
  745. var name = $("#task_name").val();
  746. var dueDate = $("#task_date").val();
  747.  
  748. if (name.length === 0) {
  749. alert("Invalid name");
  750. return;
  751. }
  752.  
  753. if (dueDate.length === 0) {
  754. alert("Invalid date");
  755. return;
  756. }
  757.  
  758. var req = new XMLHttpRequest();
  759. req.open("POST", "/api/projects/" + selectedProjectId + "/tasks/");
  760. req.addEventListener("load", function() {
  761. closePopup();
  762. buildTaskList();
  763. });
  764. req.setRequestHeader("Content-type", "application/json");
  765. req.send(JSON.stringify({'title' : name, 'creation_date': getDate(), 'due_date': dueDate,
  766. 'completed': 0}));
  767. }
  768.  
  769. function editTask() {
  770.  
  771. var name = $("#task_name").val();
  772. var dueDate = $("#task_date").val();
  773.  
  774. if (name.length === 0) {
  775. alert("Invalid name");
  776. return;
  777. }
  778.  
  779. if (dueDate.length === 0) {
  780. alert("Invalid date");
  781. return;
  782. }
  783.  
  784. //edit action /*<-------------------------------------------- replace later */
  785. if (true) { // se for bem sucedido (troca depois)
  786. closePopup();
  787. buildTaskList();
  788. }
  789.  
  790. }
  791.  
  792. function showHome() {
  793. $("#container").empty();
  794. buildHome();
  795. }
  796.  
  797. function showLogin() {
  798. $("#container").empty();
  799. buildLogin();
  800. }
  801.  
  802. function showRegister() {
  803. $("#container").empty();
  804. buildRegister();
  805. }
  806.  
  807. function closePopup() {
  808. document.body.removeChild(document.getElementById("page_overlay"));
  809. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement