'use strict'; import {createRowDomain} from '../templates/domains-template.js'; import { logoutKeycloak, getToken } from './script.js'; class App { constructor(myDomains, requestsToDomain) { // this.myDomains = myDomains; this.requestsToDomain = requestsToDomain; this.showAllDomains(myDomains); const buttonLogout = document.getElementById('button-logout'); buttonLogout.addEventListener('click', async (event) => { event.preventDefault(); await logoutKeycloak(); }); } showAllDomains(domainsToShow) { const addHere = document.getElementById('table-row-domains'); for(const d of domainsToShow) { const tr = document.createElement('tr'); tr.innerHTML = createRowDomain(d);; console.log(d); console.log(tr); const plusRow = addHere.lastElementChild; addHere.insertBefore(tr, plusRow); if(d.admin) { const toggle = tr.querySelector('.toggle-button'); this.statoDomainToggle(d, toggle, this.requestsToDomain); const deleteDomain = tr.querySelector('.fa-trash'); deleteDomain.addEventListener('click', async () => { const resultDelete = await this.requestsToDomain.deleteDomain(d); if(resultDelete) { addHere.removeChild(tr); } else { throw new Error('Impossibile eliminare il dominio, provare piu\' tardi'); } }); } } } statoDomainToggle(domain, toggle, requestsToDomain) { toggle.addEventListener('click', async (event) => { event.preventDefault(); const token = getToken(); const stop = toggle.classList.contains('active'); if(stop) { // toggle attiva. Se clicco richiedo che il dominio sia fermato const resultStop = await requestsToDomain.stopDomain(domain); if(resultStop) { toggle.classList.remove('active'); } else { throw new Error('Impossibile fermare il dominio, provare piu\' tardi'); } } else { const resultStart = await requestsToDomain.startDomain(domain); if(resultStart) { toggle.classList.add('active'); } else { throw new Error('Impossibile far partire il dominio, provare piu\' tardi'); } } }); } } export default App;