diff --git a/ProjetProgWeb/api.php b/ProjetProgWeb/api.php index dcd42f1..e5d9e8d 100644 --- a/ProjetProgWeb/api.php +++ b/ProjetProgWeb/api.php @@ -13,7 +13,7 @@ $q = $_GET['q']; if (strlen($author_name) < 3) { print_r(json_encode(array( "status" => 400, - "message" => "Le nom de l'auteur doit comporter un minimum de 3 caractères." + "message" => "La recherche doit comporter un minimum de 3 caractères." ))); exit(); } diff --git a/ProjetProgWeb/app.js b/ProjetProgWeb/app.js index b6d9c27..8081042 100644 --- a/ProjetProgWeb/app.js +++ b/ProjetProgWeb/app.js @@ -18,12 +18,13 @@ let header = document.querySelector('header') let title = document.querySelector('#title') let ham = document.querySelector('#hamburgerSvg') let cross = document.querySelector('#crossSvg') +let pagesNumbersContainer = document.querySelector('.page-nav') let pagesNumbers = document.querySelector('.page-nav div') let resultsDiv = document.querySelector('#results') let resultsCount = document.querySelector('#results-count') function sanitize(chain) { - return chain.replace(/[^a-zA-Z0-9 ]/g,'') + return chain.replace(/[^a-zA-Z0-9\- ]/g,'') } function showSuggestions() { @@ -89,6 +90,9 @@ function updateUnderline(number) { pagesNumbers.childNodes.forEach(elem => { if (elem.innerHTML == number) { elem.style.textDecoration = "underline" + pagesNumbers.scrollLeft += elem.getBoundingClientRect().left - + pagesNumbers.getBoundingClientRect().left - + (pagesNumbers.offsetWidth / 2) + (elem.offsetWidth / 2) } else { elem.style.textDecoration = 'none' } @@ -106,27 +110,44 @@ function displayResults(results) { error.classList.remove("fade-out"); error.classList.add("fade-in"); errorMessage.innerHTML = results.message + pagesNumbersContainer.style.display = 'none' return; } else if (results.status === 200) { count = 0 resultsArray = [] + pagesNumbersContainer.style.display = 'flex' results.data.forEach(elem => { let result = document.createElement('div') result.classList.add('result-element') let i = 0 - elem.forEach(e => { - let child = document.createElement(i === 0 ? 'h2' : 'p') - child.innerText = e - result.appendChild(child) - i += 1 - }) + + let qAuthor = elem[0] + let author = document.createElement('h3') + let pre_replacement = new RegExp( authorName, 'gi').exec(qAuthor) + author.innerHTML = qAuthor.replace(pre_replacement, `${pre_replacement}`) + + let qTitle = elem[2] + let title = document.createElement('p') + title.innerText = qTitle + + result.appendChild(author) + result.appendChild(title) + + // elem.forEach(e => { + // let child = document.createElement(i === 0 ? 'h2' : 'p') + // let pre_replacement = new RegExp( authorName, 'gi').exec(e) + // child.innerHTML = e.replace(pre_replacement, `${pre_replacement}`) + // result.appendChild(child) + // i += 1 + // }) count += 1 resultsArray.push(result) }) let nb = document.createElement("p") - nb.innerHTML = `Nombre de résultats pour "${authorName}": ${count}.` + nb.innerHTML = `Nombre de résultats pour "${authorName}": + ${new Intl.NumberFormat('fr-FR', { maximumSignificantDigits: 3 }).format(count)}.` resultsCount.appendChild(nb) loader.style.display = "none" @@ -153,7 +174,7 @@ function displayResults(results) { let currentPage = 1 function browseResults(wantedPage) { - if (wantedPage > 0 && wantedPage < nbPages+1) { + if ((wantedPage > 0 && wantedPage < nbPages + 1)) { emptyResults() updateUnderline(wantedPage) currentPage = wantedPage @@ -161,6 +182,7 @@ function browseResults(wantedPage) { resultsArray.slice(wantedPage - RESULTS_NUMBER, wantedPage).forEach(result => { resultsDiv.appendChild(result) }) + fadeIn() } } diff --git a/ProjetProgWeb/index.php b/ProjetProgWeb/index.php index 745093a..f97bbda 100644 --- a/ProjetProgWeb/index.php +++ b/ProjetProgWeb/index.php @@ -31,12 +31,13 @@
<-
-->