Advertisement
campos20

script.js

Nov 2nd, 2020
2,597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function adicionarTarefa(evt) {
  2.   // Evita que a pagina seja recarregada ao enviar o formulario
  3.   evt.preventDefault();
  4.  
  5.   // Obtem os valores dos inputs
  6.   let descricao = document.getElementById("descricao-input");
  7.  
  8.   let data = document.getElementById("data-input");
  9.  
  10.   let feito = document.getElementById("feito-input");
  11.  
  12.   // Cria a nova tarefa e adiciona a lista
  13.   let novaTarefa = {
  14.     descricao: descricao.value,
  15.     data: data.value,
  16.     feito: feito.checked,
  17.   };
  18.   tarefas.push(novaTarefa);
  19.  
  20.   popularTabela();
  21. }
  22.  
  23. function removeElemento(index) {
  24.   // Remove o elemento na posicao index
  25.   tarefas.splice(index, 1);
  26.  
  27.   // Apos a remocao, limpa a tabela e preenche novamente
  28.   popularTabela();
  29. }
  30.  
  31. function popularTabela() {
  32.   // Referencia ao corpo da tabela
  33.   let conteudo = document.getElementById("conteudo");
  34.  
  35.   // Limpa a tabela antes de popular
  36.   conteudo.innerHTML = "";
  37.  
  38.   // Grava os elementos na memoria
  39.   localStorage.setItem("tarefas", JSON.stringify(tarefas));
  40.  
  41.   // Popula a tabela
  42.   for (let i = 0; i < tarefas.length; i++) {
  43.     let tarefa = tarefas[i];
  44.  
  45.     let linha = document.createElement("tr");
  46.     conteudo.appendChild(linha);
  47.  
  48.     let posicao = document.createElement("th");
  49.     linha.appendChild(posicao);
  50.     posicao.innerText = i + 1;
  51.  
  52.     let descricao = document.createElement("td");
  53.     linha.appendChild(descricao);
  54.     descricao.innerText = tarefa.descricao;
  55.  
  56.     let data = document.createElement("td");
  57.     linha.appendChild(data);
  58.     data.innerText = tarefa.data;
  59.  
  60.     let feito = document.createElement("td");
  61.     linha.appendChild(feito);
  62.  
  63.     let input = document.createElement("input");
  64.     input.type = "checkbox";
  65.     input.checked = tarefa.feito;
  66.     feito.appendChild(input);
  67.  
  68.     let acoes = document.createElement("td");
  69.     linha.appendChild(acoes);
  70.  
  71.     let button = document.createElement("button");
  72.     button.className = "btn btn-danger";
  73.     button.innerText = "X";
  74.     button.onclick = function () {
  75.       removeElemento(i);
  76.     };
  77.     acoes.appendChild(button);
  78.   }
  79. }
  80.  
  81. // Adiciona a funcao criada ao formulario
  82. let formulario = document.getElementById("formulario");
  83. formulario.onsubmit = adicionarTarefa;
  84.  
  85. // Lista de tarefas a fazer recuperada da memoria do navegador
  86. let tabelaSalva = localStorage.getItem("tarefas");
  87.  
  88. // Quando utilizamos o ||, pegamos a primeira opcao, se existir, ou a segunda opcao
  89. let tarefas = JSON.parse(tabelaSalva) || [];
  90.  
  91. // Popula a tabela inicialmente
  92. popularTabela();
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement