Untitled
unknown
plain_text
a year ago
4.5 kB
10
Indexable
main.js import { Application } from "./application.js"; import { Flashcard } from "./flashcard.js"; const app = new Application(); app.drawForm(document.body); const result = await fetch("http://localhost:5229/Flashcard/GetAllFlashcards"); const data = await result.json(); const cardsDiv = document.createElement("div") cardsDiv.classList.add("cards-div"); document.body.appendChild(cardsDiv); for(let f of data){ const card = new Flashcard(f.id, f.color, f.front, f.back); card.drawCard(cardsDiv); } -------------------------------------------------------- application.js import { Flashcard } from "./flashcard.js"; export class Application{ constructor(){ this.vrenosti = [ {naziv: "Color", klasa: "color", type: "color"}, {naziv: "Front side", klasa: "front-side", type: "text"}, {naziv: "Back side", klasa: "back-side", type: "text"} ] } drawForm(container){ const formDiv = document.createElement("div"); formDiv.classList.add("form-div"); container.appendChild(formDiv); this.vrenosti.forEach(p => { const lbl = document.createElement("label"); lbl.textContent = p.naziv; formDiv.appendChild(lbl); const polje = document.createElement("input") polje.type = p.type; polje.classList.add(`${p.klasa}-input`); formDiv.appendChild(polje); }); const btn = document.createElement("input"); btn.type = "button"; btn.value = "Add/Update Flashcard"; btn.onclick = this.addWrapper; btn.classList.add("add-btn"); formDiv.appendChild(btn); } addWrapper = () => { const boja = document.querySelector(".color-input").value; const front = document.querySelector(".front-side-input").value; const back = document.querySelector(".back-side-input").value; const card = new Flashcard(0, boja, front, back); card.addFlashCard(); } } ---------------------------------------------------------------------------------- flashcard.js export class Flashcard{ constructor(id, color, front, back){ this.id = id; this.color = color; this.front = front; this.back = back; } drawCard(container){ const cardDiv = document.createElement("div") cardDiv.classList.add("card-div"); cardDiv.style.backgroundColor = this.color; container.appendChild(cardDiv); const lbl = document.createElement("label"); lbl.textContent = this.front; cardDiv.appendChild(lbl); const btn = document.createElement("input"); btn.type = "button"; btn.value = "Edit"; btn.classList.add("edit-btn"); cardDiv.appendChild(btn); } async addFlashCard(){ const result = await fetch("http://localhost:5229/Flashcard/AddFlashCard",{ method: "POST", body: JSON.stringify({ color: this.color, front: this.front, back: this.back }), headers:{ "Content-Type" : "application/json" } }); const data = await result.json(); if(data.ok){ console.log("uspesno upisano"); } } } --------------------------------------------------------- style.css .form-div{ border: 1px solid black; display: grid; grid-template-columns: 1fr 1fr; width: 400px; gap: 10px; padding: 10px; } .add-btn{ grid-area: 4 / 1 / 5 / 3; } .cards-div{ display: flex; } .card-div{ display: flex; flex-direction: column; width: 200px; height: 100px; padding: 20px; margin: 10px; margin-top: 0px; align-items: center; } body{ display: flex; } .edit-btn{ margin: 30px; } --------------------------------------------------------- index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Flashcards</title> <link rel="stylesheet" href="style.css"> </head> <body> <script type="module" src="app/main.js"></script> </body> </html>
Editor is loading...
Leave a Comment