Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import {
- html,
- render
- } from 'https://unpkg.com/lit-html?module';
- function solve() {
- let cached = [];
- document.querySelector('#searchBtn').addEventListener('click', onClick);
- let inputField = document.getElementById("searchField")
- let tbody = document.querySelector("tbody");
- console.log(tbody)
- //get data
- let myHeaders = new Headers();
- myHeaders.append("Content-Type", "application/json");
- let requestOptions = {
- method: 'GET',
- headers: myHeaders,
- redirect: 'follow'
- };
- fetch("http://localhost:3030/jsonstore/advanced/table", requestOptions)
- .then(response => response.json())
- .then(result => populateTable(Object.values(result)))
- .catch(error => console.log('error', error));
- function rowTemplate(r) {
- return html `
- <tr>
- <td>${r.firstName} ${r.lastName}</td>
- <td>${r.email}</td>
- <td>${r.course}</td>
- </tr>`
- }
- function populateTable(data) {
- let rows = data.map(d => rowTemplate(d));
- cached = data;
- render(rows, tbody);
- }
- function onClick() {
- let queryString = inputField.value;
- if (queryString.length > 0 && queryString !== "") {
- let differentLis = cached.map(r => (selRowTemplate(r, queryString)));
- inputField.value = "";
- render(differentLis, tbody);
- }
- }
- function selRowTemplate(r, queryString) {
- let rString = Object.values(r).join(" ")
- return html `
- <tr class=${rString.toLowerCase().includes(queryString)?"select":""}>
- <td>${r.firstName} ${r.lastName}</td>
- <td>${r.email}</td>
- <td>${r.course}</td>
- </tr>`
- }
- }
- solve();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement