From 14d9f718c8c0fc772e343f5c52b624088b19d7ac Mon Sep 17 00:00:00 2001 From: amyra98 Date: Fri, 24 Jun 2022 16:27:38 +0530 Subject: [PATCH] bahaha --- img/delete.svg | 44 +++++++++++++++++++ img/edit.png | Bin 0 -> 39948 bytes index.html | 60 +++----------------------- package-lock.json | 3 +- src/auth_required.js | 2 + src/init.js | 44 ++++++++++++++++++- src/main.js | 93 ++++++++++++++++++++++++++++++++++++++++ src/no_auth_required.js | 4 +- 8 files changed, 192 insertions(+), 58 deletions(-) create mode 100644 img/delete.svg create mode 100644 img/edit.png diff --git a/img/delete.svg b/img/delete.svg new file mode 100644 index 0000000..b6b61d2 --- /dev/null +++ b/img/delete.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/edit.png b/img/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..2eeebf56ede5b08e37b114f045503e2026d7eb21 GIT binary patch literal 39948 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index ffda4cf..e0c7b56 100644 --- a/index.html +++ b/index.html @@ -25,6 +25,7 @@ +
@@ -63,57 +61,9 @@ Available Tasks - - -
  • - -
    - -
    -
    - Sample Task 1 -
    - - - - - -
  • - - -
  • - -
    - -
    - -
    - Sample Task 2 -
    - - - - -
  • - -
    - + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 58aab2e..387beb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,10 +1,11 @@ { "name": "csoc-task-2-web", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, "packages": { "": { + "name": "csoc-task-2-web", "version": "1.0.0", "license": "ISC", "dependencies": { diff --git a/src/auth_required.js b/src/auth_required.js index 7f5e7bc..458b532 100644 --- a/src/auth_required.js +++ b/src/auth_required.js @@ -1,3 +1,5 @@ /*** * @todo Redirect the user to login page if token is not present. */ + if(!window.localStorage.getItem('token')) + window.location.href = '/login/' diff --git a/src/init.js b/src/init.js index 3a88d74..6c7faea 100644 --- a/src/init.js +++ b/src/init.js @@ -1,10 +1,50 @@ import axios from 'axios'; const API_BASE_URL = 'https://todo-app-csoc.herokuapp.com/'; - +let searchbox=document.querySelector("#search-box"); function getTasks() { /*** * @todo Fetch the tasks created by the user and display them in the dom. */ + const header={ + 'Authorization': `Token ${window.localStorage.getItem('token')}`, + 'Content-Type': "application/json" + } + + axios({ + url: API_BASE_URL + 'todo/', + method: 'get', + headers: header + }).then(function({data, status}) { + + let todo =document.querySelector(".todo-available-tasks") + todo.innerHTML=` Tasks to do ` + for (let element of data){ + todo.innerHTML+= + ` +
  • + +
    + +
    +
    + ${element.title} +
    + + + + +
  • + ` + } + searchbox.addEventListener('keyup',search) + }) } axios({ @@ -18,3 +58,5 @@ axios({ document.getElementById('profile-name').innerHTML = data.name; getTasks(); }) + +window.getTasks=getTasks \ No newline at end of file diff --git a/src/main.js b/src/main.js index 05849df..355ee0f 100644 --- a/src/main.js +++ b/src/main.js @@ -75,6 +75,29 @@ function login() { * @todo 1. Write code for form validation. * @todo 2. Fetch the auth token from backend, login and direct user to home page. */ + const username = document.getElementById('inputUsername').value.trim(); + const password = document.getElementById('inputPassword').value; + // validation + if (username === '' || password === '') { + displayErrorToast("Please enter correct credentials!!"); + return; + } + const dataForApiRequest = { + username: username, + password: password + } + axios({ + url: API_BASE_URL + 'auth/login/', + method: 'post', + data: dataForApiRequest, + }).then(function({data, status}) { + window.localStorage.setItem("token",data.token); + console.log(data.token); + console.log(window.localStorage.getItem("token")); + window.location.href = '/'; + }).catch(function(err) { + displayErrorToast('Invalid Login Credentials!!'); + }) } function addTask() { @@ -83,6 +106,27 @@ function addTask() { * @todo 1. Send the request to add the task to the backend server. * @todo 2. Add the task in the dom. */ + let task = document.querySelector(".form-control").value; + const dataForApiRequest = { + title: task + } + const header={ + 'Authorization': `Token ${window.localStorage.getItem('token')}`, + 'Content-Type': "application/json" + } + + axios({ + url: API_BASE_URL + 'todo/create/', + method: 'post', + data: dataForApiRequest, + headers: header + }).then(function({data, status}) { + + getTasks(); + document.querySelector(".form-control").value=""; + document.querySelector(".form-control").placeholder="Enter your task"; + displaySuccessToast("Task Added yee!!") + }) } function editTask(id) { @@ -98,6 +142,21 @@ function deleteTask(id) { * @todo 1. Send the request to delete the task to the backend server. * @todo 2. Remove the task from the dom. */ + if(confirm("This task will be deleted")) { + const header={ + 'Authorization': `Token ${window.localStorage.getItem('token')}`, + 'Content-Type': "application/json" + } + + axios({ + url: API_BASE_URL + `todo/${id}/`, + method: 'delete', + headers: header + }).then(function({data, status}) { + displaySuccessToast("Task Deleted") + getTasks(); + }) + } } function updateTask(id) { @@ -106,4 +165,38 @@ function updateTask(id) { * @todo 1. Send the request to update the task to the backend server. * @todo 2. Update the task in the dom. */ + let update=document.querySelector(".todo-edit-task-input").value; + if(update) + { + const dataForApiRequest = { + title: update + } + const header={ + 'Authorization': `Token ${window.localStorage.getItem('token')}`, + 'Content-Type': "application/json" + } + + axios({ + url: API_BASE_URL + `todo/${id}/`, + method: 'patch', + data: dataForApiRequest, + headers: header + }).then(function({data, status}) { + + getTasks(); + document.querySelector(".form-control").value=""; + document.querySelector(".form-control").placeholder="Enter your task"; + displaySuccessToast("Task Updated") + }) + } + else + displayErrorToast('Task should nt be empty') } + +window.logout=logout +window.updateTask=updateTask +window.deleteTask=deleteTask +window.editTask=editTask +window.addTask=addTask; +window.login=login; +window.register=register; \ No newline at end of file diff --git a/src/no_auth_required.js b/src/no_auth_required.js index 82558d4..cbf2c5f 100644 --- a/src/no_auth_required.js +++ b/src/no_auth_required.js @@ -1,3 +1,5 @@ /*** * @todo Redirect the user to main page if token is present. - */ \ No newline at end of file + */ + if(window.localStorage.getItem('token')) + window.location.href = '/' \ No newline at end of file