Advertisement
campos20

script.js

Nov 16th, 2020
1,632
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 formataData(data) {
  32.   let dataSeparada = data.split("-");
  33.  
  34.   let ano = dataSeparada[0];
  35.   let mes = dataSeparada[1];
  36.   let dia = dataSeparada[2];
  37.  
  38.   let dataFormatada = dia + "/" + mes + "/" + ano;
  39.  
  40.   return dataFormatada;
  41. }
  42.  
  43. function popularTabela() {
  44.   // Referencia ao corpo da tabela
  45.   let conteudo = document.getElementById("conteudo");
  46.  
  47.   // Limpa a tabela antes de popular
  48.   conteudo.innerHTML = "";
  49.  
  50.   // Grava os elementos na memoria
  51.   localStorage.setItem("tarefas", JSON.stringify(tarefas));
  52.  
  53.   // Popula a tabela
  54.   for (let i = 0; i < tarefas.length; i++) {
  55.     let tarefa = tarefas[i];
  56.  
  57.     let linha = document.createElement("tr");
  58.     conteudo.appendChild(linha);
  59.  
  60.     let posicao = document.createElement("th");
  61.     linha.appendChild(posicao);
  62.     posicao.innerText = i + 1;
  63.  
  64.     let descricao = document.createElement("td");
  65.     linha.appendChild(descricao);
  66.     descricao.innerText = tarefa.descricao;
  67.  
  68.     let data = document.createElement("td");
  69.     linha.appendChild(data);
  70.     data.innerText = formataData(tarefa.data);
  71.  
  72.     let feito = document.createElement("td");
  73.     linha.appendChild(feito);
  74.  
  75.     let input = document.createElement("input");
  76.     input.type = "checkbox";
  77.     input.checked = tarefa.feito;
  78.     feito.appendChild(input);
  79.  
  80.     let acoes = document.createElement("td");
  81.     linha.appendChild(acoes);
  82.  
  83.     let button = document.createElement("button");
  84.     button.className = "btn btn-danger";
  85.     button.innerText = "X";
  86.     button.onclick = function () {
  87.       removeElemento(i);
  88.     };
  89.     acoes.appendChild(button);
  90.   }
  91. }
  92.  
  93. // Adiciona a funcao criada ao formulario
  94. let formulario = document.getElementById("formulario");
  95. formulario.onsubmit = adicionarTarefa;
  96.  
  97. // Lista de tarefas a fazer recuperada da memoria do navegador
  98. let tabelaSalva = localStorage.getItem("tarefas");
  99.  
  100. // Quando utilizamos o ||, pegamos a primeira opcao, se existir, ou a segunda opcao
  101. let tarefas = JSON.parse(tabelaSalva) || [];
  102.  
  103. // Popula a tabela inicialmente
  104. popularTabela();
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement