| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562 |
- const criteria = wcagObj['criterion'];
- let lang = 'cat';
- let totalElem = "78";
- let version = 'All';
- let level = 'All';
- let category = 'All';
- const resume = document.getElementById('resume');
- let message;
- let checksAlias = [
- {
- "name" : "level",
- "alias" : {
- "cat" : "Nivell",
- "es" : "Nivel",
- "en" : "Level"
- }
- },
- {
- "name" : "version",
- "alias" : {
- "cat" : "Versió",
- "es" : "Versión",
- "en" : "Version"
- }
- },
- {
- "name" : "goal",
- "alias" : {
- "cat" : "Objectiu",
- "es" : "Objetivo",
- "en" : "Goal"
- }
- },
- {
- "name" : "intent",
- "alias" : {
- "cat" : "Intenció",
- "es" : "Intención",
- "en" : "Intent"
- }
- },
- {
- "name" : "benefits",
- "alias" : {
- "cat" : "Beneficis",
- "es" : "Beneficios",
- "en" : "Benefits"
- }
- },
- {
- "name" : "examples",
- "alias" : {
- "cat" : "Exemples",
- "es" : "Ejemplos",
- "en" : "Examples"
- }
- },
- {
- "name" : "techniques",
- "alias" : {
- "cat" : "Tècniques",
- "es" : "Técnicas",
- "en" : "Techniques"
- }
- },
- {
- "name" : "verification",
- "alias" : {
- "cat" : "Verificació",
- "es" : "Verificación",
- "en" : "Verification"
- }
- },
- {
- "name" : "tools",
- "alias" : {
- "cat" : "Eines",
- "es" : "Herramientas",
- "en" : "Tools"
- }
- },
- {
- "name" : "category",
- "alias" : {
- "cat" : "Categoria",
- "es" : "Categoría",
- "en" : "Category"
- }
- }
- ];
- let headers = [
- {
- "name" : "criteria",
- "alias" : {
- "cat" : "Criteri",
- "es" : "Criterio",
- "en" : "Criteria"
- },
- "view" : true
- },
- {
- "name" : "link",
- "alias" : "Link",
- "view" : false
- },
- {
- "name" : "level",
- "alias" : {
- "cat" : "Nivell",
- "es" : "Nivel",
- "en" : "Level"
- },
- "view" : true
- },
- {
- "name" : "version",
- "alias" : {
- "cat" : "Versió",
- "es" : "Versión",
- "en" : "Version"
- },
- "view" : true
- },
- {
- "name" : "goal",
- "alias" : {
- "cat" : "Objectiu",
- "es" : "Objetivo",
- "en" : "Goal"
- },
- "view" : true
- },
- {
- "name" : "intent",
- "alias" : {
- "cat" : "Intenció",
- "es" : "Intención",
- "en" : "Intent"
- },
- "view" : true
- },
- {
- "name" : "benefits",
- "alias" : {
- "cat" : "Beneficis",
- "es" : "Beneficios",
- "en" : "Benefits"
- },
- "view" : false
- },
- {
- "name" : "examples",
- "alias" : {
- "cat" : "Exemples",
- "es" : "Ejemplos",
- "en" : "Examples"
- },
- "view" : false
- },
- {
- "name" : "techniques",
- "alias" : {
- "cat" : "Tècniques",
- "es" : "Técnicas",
- "en" : "Techniques"
- },
- "view" : false
- },
- {
- "name" : "verification",
- "alias" : {
- "cat" : "Verificació",
- "es" : "Verificación",
- "en" : "Verification"
- },
- "view" : false
- },
- {
- "name" : "tools",
- "alias" : {
- "cat" : "Eines",
- "es" : "Herramientas",
- "en" : "Tools"
- },
- "view" : false
- },
- {
- "name" : "category",
- "alias" : {
- "cat" : "Categoria",
- "es" : "Categoria",
- "en" : "Category"
- },
- "view" : false
- }
- ];
- function createTable() {
- const filterLevel = level.split(",");
- const filterVersion = version.split(",");
- const tableHeader = document.getElementById('thead');
- const tableBody = document.getElementById('tbody');
- const totalHead = tableHeader.children.length;
- const totalBody = tableBody.children.length;
-
- for(let g= 0; g<totalHead; g++) {
- if (tableHeader.children.length >0 ) { tableHeader.removeChild(tableHeader.children[0]); }
- }
- for (let i = 0; i < totalBody;i++ ) {
- if (tableBody.children.length > 0 ) { tableBody.removeChild(tableBody.children[0]); }
- }
- // Create table headers
- let tr = document.createElement('tr');
- headers.forEach(item => {
- if (item.view) {
- const th = document.createElement('th')
- th.setAttribute('scope', 'column')
- th.innerHTML = item.alias[lang];
- tr.appendChild(th)
- }
- })
- tableHeader.appendChild(tr)
- // Create table body
- criteria.forEach(item => {
- tr = document.createElement('tr')
- headers.forEach(head => {
- if (head.view===true && (item.category.includes(category) || category === 'All') && (filterLevel.find(lev => lev === item.level) || filterLevel[0] === 'All') && (filterVersion.find(lev => lev === item.version) || filterVersion[0] === 'All')) {
- const a = document.createElement('a');
- let linkText;
- if (typeof item[head.name] === 'object') {
- if (head.name === 'criteria') {
- const th = document.createElement('th')
- th.setAttribute('scope', 'row');
- linkText = document.createTextNode(item.criteria[lang]);
- a.appendChild(linkText);
- a.title = item.criteria[lang];
- a.target = '_blank';
- a.href = item.link;
- th.appendChild(a);
- tr.appendChild(th);
- } else {
- const td = document.createElement('td');
- td.innerHTML = item[head.name][lang];
- tr.appendChild(td);
- }
- } else {
- const td = document.createElement('td');
- if (head.name === 'examples' && item.examples != '') {
- switch (lang) {
- case 'cat':
- linkText = document.createTextNode(item.criteria[lang] + ' Exemples');
- a.title = item.criteria[lang] + ' Exemples';
- break;
- case 'es':
- linkText = document.createTextNode(item.criteria[lang] + ' Ejemplos');
- a.title = item.criteria[lang] + ' Ejemplos';
- break;
- case 'en':
- linkText = document.createTextNode(item.criteria[lang] + ' Examples');
- a.title = item.criteria[lang] + ' Examples';
- break;
- default:
- linkText = document.createTextNode(item.criteria[lang] + ' Examples');
- a.title = item.criteria[lang] + ' Examples';
- break;
- }
- a.appendChild(linkText);
- a.target = '_blank';
- a.href = item.examples;
- td.appendChild(a);
- } else if (head.name === 'techniques' && item.techniques != '') {
- switch (lang) {
- case 'cat':
- linkText = document.createTextNode(item.criteria.cat + ' Tècniques');
- a.title = item.criteria.cat + ' Tècniques';
- break;
- case 'es':
- linkText = document.createTextNode(item.criteria.es + ' Tecnicas');
- a.title = item.criteria.es + ' Tecnicas';
- break;
- case 'en':
- linkText = document.createTextNode(item.criteria.en + ' Techniques');
- a.title = item.criteria.en + ' Techniques';
- break;
- default:
- linkText = document.createTextNode(item.criteria.en + ' Techniques');
- a.title = item.criteria.en + ' Techniques';
- break;
- }
- a.appendChild(linkText);
- a.target = '_blank';
- a.href = item.techniques;
- td.appendChild(a);
- } else {
- td.innerHTML = item[head.name];
- }
- tr.appendChild(td);
- }
- }
- });
- if (tr.firstElementChild != null){
- tableBody.append(tr);
- }
- });
- total = document.getElementById('wcagTable').rows.length - 1;
- updateResume();
- }
- function translateInterface() {
- const legendLang = document.getElementById('btnLang').firstElementChild;
- switch (lang) {
- case 'cat':
- legendLang.innerHTML = 'Idioma';
- break;
- case 'es':
- legendLang.innerHTML = 'Idioma';
- break;
- case 'en':
- default:
- legendLang.innerHTML = 'Language';
- break;
- }
- const legendVersion = document.getElementById('btnVersion').firstElementChild;
- switch (lang) {
- case 'cat':
- legendVersion.innerHTML = 'Versió';
- break;
- case 'es':
- legendVersion.innerHTML = 'Versión';
- break;
- case 'en':
- default:
- legendVersion.innerHTML = 'Version';
- break;
- }
- const legendLevel = document.getElementById('btnLevel').firstElementChild;
- switch (lang) {
- case 'cat':
- legendLevel.innerHTML = 'Nivell';
- break;
- case 'es':
- legendLevel.innerHTML = 'Nivel';
- break;
- case 'en':
- default:
- legendLevel.innerHTML = 'Level';
- break;
- }
- const legendColumns = document.getElementById('columns').firstElementChild;
- switch (lang) {
- case 'cat':
- legendColumns.innerHTML = 'Columnes a mostrar';
- break;
- case 'es':
- legendColumns.innerHTML = 'Columnas a mostrar';
- break;
- case 'en':
- default:
- legendColumns.innerHTML = 'Show columns';
- break;
- }
- const checks = document.getElementsByClassName('checks');
- for (i=0; i < checks.length; i++) {
- checks[i].innerHTML = checksAlias[i].alias[lang];
- }
- const legendCategory = document.getElementById('btnCategory').firstElementChild;
- switch (lang) {
- case 'cat':
- legendCategory.innerHTML = 'Categoria';
- break;
- case 'es':
- legendCategory.innerHTML = 'Categoría';
- break;
- case 'en':
- default:
- legendCategory.innerHTML = 'Category';
- break;
- }
- }
- function updateResume() {
- switch (lang) {
- case 'cat':
- //message = 'Mostrar <span class="btn btn-info btn-sm">' + total + '</span> tests. Versió <span class="btn btn-info btn-sm">' + version + '</span> nivell <span class="btn btn-info btn-sm">' + level + '</span>. Categoritzats en <span class="btn btn-info btn-sm">' + category + '</span> criteris.';
- message = 'Mostrant <span class="btn btn-info dark-text btn-sm">' + total + '</span> tests. Versió <span class="btn btn-info btn-sm">' + version + '</span> nivell <span class="btn btn-info btn-sm">' + level + '</span>.';
- break;
- case 'es':
- //message = 'Showing <span class="btn btn-info btn-sm">' + total + '</span> tests. Version <span class="btn btn-info btn-sm">' + version + '</span> level <span class="btn btn-info btn-sm">' + level + '</span>. Categorised by <span class="btn btn-info btn-sm">' + category + '</span> criterios.';
- message = 'Mostrando <span class="btn btn-info dark-text btn-sm">' + total + '</span> tests. Versión <span class="btn btn-info btn-sm">' + version + '</span> nivel <span class="btn btn-info btn-sm">' + level + '</span>.';
- break;
- case 'en':
- //message = 'Showing <span class="btn btn-info btn-sm">' + total + '</span> tests. Version <span class="btn btn-info btn-sm">' + version + '</span> level <span class="btn btn-info btn-sm">' + level + '</span>. Categorised by <span class="btn btn-info btn-sm">' + category + '</span> criteria.';
- message = 'Showing <span class="btn btn-info dark-text btn-sm">' + total + '</span> tests. Version <span class="btn btn-info btn-sm">' + version + '</span> level <span class="btn btn-info btn-sm">' + level + '</span>.';
- break;
- default:
- //message = 'Showing <span class="btn btn-info btn-sm">' + total + '</span> tests. Version <span class="btn btn-info btn-sm">' + version + '</span> level <span class="btn btn-info btn-sm">' + level + '</span>. Categorised by <span class="btn btn-info btn-sm">' + category + '</span> criteria.';
- message = 'Showing <span class="btn btn-info dark-text btn-sm">' + total + '</span> tests. Version <span class="btn btn-info btn-sm">' + version + '</span> level <span class="btn btn-info btn-sm">' + level + '</span>.';
- break;
- }
- resume.innerHTML = message;
- }
- function btnLang(btn) {
- lang = btn.id
- const btns = document.getElementsByClassName('language');
- for (i=0; i< btns.length; i++) {
- if (btns[i].id === btn.id) {
- btns[i].ariaPressed = true;
- btns[i].classList.remove('btn-secondary');
- btns[i].classList.add('btn-primary')
- } else {
- btns[i].ariaPressed = false;
- btns[i].classList.remove('btn-primary');
- btns[i].classList.add('btn-secondary')
- }
- }
- translateInterface();
- createTable();
- }
- function btnVersion(btn) {
- const versions = document.getElementsByClassName('version');
- const arrayVersions = [];
- let checker = false;
- if (btn.textContent === 'All') {
- for (i=0; i< versions.length; i++) {
- versions[i].ariaPressed = false;
- }
- versions[0].ariaPressed = true;
- } else {
- versions[0].ariaPressed = false;
- btn.ariaPressed === 'true' ? btn.ariaPressed = false : btn.ariaPressed = true;
- }
- for (i=0; i< versions.length; i++) {
- if (versions[i].ariaPressed === 'true') {
- checker = true;
- versions[i].classList.remove('btn-secondary');
- versions[i].classList.add('btn-primary');
- arrayVersions.push(versions[i].textContent);
- } else {
- versions[i].ariaPressed = false;
- versions[i].classList.remove('btn-primary');
- versions[i].classList.add('btn-secondary');
- }
- console.log(versions[i].ariaPressed)
- }
- if (checker === false) {
- versions[0].ariaPressed = true;
- versions[0].classList.remove('btn-secondary');
- versions[0].classList.add('btn-primary');
- arrayVersions.push(versions[0].textContent);
- }
- version = arrayVersions.join();
- createTable()
- }
- function btnLevel(btn) {
- const levels = document.getElementsByClassName('level');
- const arrayLevels = [];
- let checker = false;
- if (btn.textContent === 'All') {
- for (i=0; i< levels.length; i++) {
- levels[i].ariaPressed = false;
- }
- levels[0].ariaPressed = true;
- } else {
- levels[0].ariaPressed = false;
- btn.ariaPressed === 'true' ? btn.ariaPressed = false : btn.ariaPressed = true;
- }
- for (i=0; i< levels.length; i++) {
- if (levels[i].ariaPressed === 'true') {
- checker = true;
- levels[i].classList.remove('btn-secondary');
- levels[i].classList.add('btn-primary');
- arrayLevels.push(levels[i].textContent);
- } else {
- levels[i].ariaPressed = false;
- levels[i].classList.remove('btn-primary');
- levels[i].classList.add('btn-secondary');
- }
- }
-
- if (checker === false) {
- levels[0].ariaPressed = true;
- levels[0].classList.remove('btn-secondary');
- levels[0].classList.add('btn-primary');
- arrayLevels.push(levels[0].textContent);
- }
- level = arrayLevels.join();
-
- createTable()
- }
- function showColumns(check){
- headers.forEach(item => {
- if (item.name === check.id) {
- console.log(item.view)
- item.view ? item.view = false : item.view = true;
- }
- })
- createTable();
- }
- function btnCategory(btn) {
- category = btn.textContent;
- createTable()
- }
- function init() {
- const btnLang = document.getElementsByClassName('language');
- const btnVersion = document.getElementsByClassName('version')[0];
- const btnLevel = document.getElementsByClassName('level')[0];
- const btnCategory = document.getElementsByClassName('level')[0];
- for (i=0; i < btnLang.length; i++) {
- if (btnLang[i].id === lang) {
- btnLang[i].ariaPressed = true;
- btnLang[i].classList.remove('btn-secondary');
- btnLang[i].classList.add('btn-primary')
- }
- }
- btnVersion.ariaPressed = true;
- btnVersion.classList.remove('btn-secondary');
- btnVersion.classList.add('btn-primary')
- btnLevel.ariaPressed = true;
- btnLevel.classList.remove('btn-secondary');
- btnLevel.classList.add('btn-primary')
- btnCategory.ariaPressed = true;
- btnCategory.classList.remove('btn-secondary');
- btnCategory.classList.add('btn-primary')
-
- headers.forEach(item => {
- if (item.name !== 'criteria' && item.name !== 'link') {
- if (item.view === true) {
- document.getElementById(item.name).checked = true;
- document.getElementById(item.name).ariaPressed = true;
- } else {
- document.getElementById(item.name).checked = false;
- document.getElementById(item.name).ariaPressed = false;
- }
- }
-
- })
- }
- init();
- translateInterface();
- createTable();
|