Advertisement
Guest User

Untitled

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