🚧 Visuels W.I.P.

This commit is contained in:
Florian SYLVAIN
2021-12-07 18:10:46 +01:00
parent 3e7747da57
commit 0fe115d371
4 changed files with 49 additions and 22 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ $q = $_GET['q'];
if (strlen($author_name) < 3) { if (strlen($author_name) < 3) {
print_r(json_encode(array( print_r(json_encode(array(
"status" => 400, "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(); exit();
} }
+31 -9
View File
@@ -18,12 +18,13 @@ let header = document.querySelector('header')
let title = document.querySelector('#title') let title = document.querySelector('#title')
let ham = document.querySelector('#hamburgerSvg') let ham = document.querySelector('#hamburgerSvg')
let cross = document.querySelector('#crossSvg') let cross = document.querySelector('#crossSvg')
let pagesNumbersContainer = document.querySelector('.page-nav')
let pagesNumbers = document.querySelector('.page-nav div') let pagesNumbers = document.querySelector('.page-nav div')
let resultsDiv = document.querySelector('#results') let resultsDiv = document.querySelector('#results')
let resultsCount = document.querySelector('#results-count') let resultsCount = document.querySelector('#results-count')
function sanitize(chain) { function sanitize(chain) {
return chain.replace(/[^a-zA-Z0-9 ]/g,'') return chain.replace(/[^a-zA-Z0-9\- ]/g,'')
} }
function showSuggestions() { function showSuggestions() {
@@ -89,6 +90,9 @@ function updateUnderline(number) {
pagesNumbers.childNodes.forEach(elem => { pagesNumbers.childNodes.forEach(elem => {
if (elem.innerHTML == number) { if (elem.innerHTML == number) {
elem.style.textDecoration = "underline" elem.style.textDecoration = "underline"
pagesNumbers.scrollLeft += elem.getBoundingClientRect().left -
pagesNumbers.getBoundingClientRect().left -
(pagesNumbers.offsetWidth / 2) + (elem.offsetWidth / 2)
} else { } else {
elem.style.textDecoration = 'none' elem.style.textDecoration = 'none'
} }
@@ -106,27 +110,44 @@ function displayResults(results) {
error.classList.remove("fade-out"); error.classList.remove("fade-out");
error.classList.add("fade-in"); error.classList.add("fade-in");
errorMessage.innerHTML = results.message errorMessage.innerHTML = results.message
pagesNumbersContainer.style.display = 'none'
return; return;
} else if (results.status === 200) { } else if (results.status === 200) {
count = 0 count = 0
resultsArray = [] resultsArray = []
pagesNumbersContainer.style.display = 'flex'
results.data.forEach(elem => { results.data.forEach(elem => {
let result = document.createElement('div') let result = document.createElement('div')
result.classList.add('result-element') result.classList.add('result-element')
let i = 0 let i = 0
elem.forEach(e => {
let child = document.createElement(i === 0 ? 'h2' : 'p') let qAuthor = elem[0]
child.innerText = e let author = document.createElement('h3')
result.appendChild(child) let pre_replacement = new RegExp( authorName, 'gi').exec(qAuthor)
i += 1 author.innerHTML = qAuthor.replace(pre_replacement, `<mark>${pre_replacement}</mark>`)
})
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, `<mark>${pre_replacement}</mark>`)
// result.appendChild(child)
// i += 1
// })
count += 1 count += 1
resultsArray.push(result) resultsArray.push(result)
}) })
let nb = document.createElement("p") 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) resultsCount.appendChild(nb)
loader.style.display = "none" loader.style.display = "none"
@@ -153,7 +174,7 @@ function displayResults(results) {
let currentPage = 1 let currentPage = 1
function browseResults(wantedPage) { function browseResults(wantedPage) {
if (wantedPage > 0 && wantedPage < nbPages+1) { if ((wantedPage > 0 && wantedPage < nbPages + 1)) {
emptyResults() emptyResults()
updateUnderline(wantedPage) updateUnderline(wantedPage)
currentPage = wantedPage currentPage = wantedPage
@@ -161,6 +182,7 @@ function browseResults(wantedPage) {
resultsArray.slice(wantedPage - RESULTS_NUMBER, wantedPage).forEach(result => { resultsArray.slice(wantedPage - RESULTS_NUMBER, wantedPage).forEach(result => {
resultsDiv.appendChild(result) resultsDiv.appendChild(result)
}) })
fadeIn()
} }
} }
+4 -3
View File
@@ -31,12 +31,13 @@
<div class="page-nav"> <div class="page-nav">
<p onclick="browseResults(currentPage-1)">&#60;-</p> <p onclick="browseResults(currentPage-1)">&#60;-</p>
<div> <div></div>
</div>
<p onclick="browseResults(currentPage+1)">-&#62;</p> <p onclick="browseResults(currentPage+1)">-&#62;</p>
</div> </div>
<div id="results"></div> <div id="results">
<h1 style="color:#CFCFCF;text-align: center">Bienvenue sur theses.fr</h1>
</div>
<div id="error"> <div id="error">
<div id="error-message"></div> <div id="error-message"></div>
+13 -9
View File
@@ -20,6 +20,7 @@ body {
margin: 0; margin: 0;
padding: 0; padding: 0;
width: 100%; width: 100%;
background-color: #FDFDFD;
} }
header { header {
@@ -266,7 +267,7 @@ header {
} }
#results { #results {
margin: 10px; padding: 10px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 15px; gap: 15px;
@@ -280,11 +281,10 @@ header {
/*TODO : Faire des beaux panneaux expansibles*/ /*TODO : Faire des beaux panneaux expansibles*/
.result-element { .result-element {
box-shadow: rgba(0, 0, 0, 0.10) 2px 2px 8px; box-shadow: rgba(0, 0, 0, 0.10) 2px 2px 15px;
background-color: rgba(250, 250, 250, 0.5);
border-radius: 3px; border-radius: 3px;
margin: 0 5px 5px 5px; margin: 0 5px 0 5px;
padding: 5px 10px 10px 10px; padding: 0 10px 0 10px;
transform: translateX(100px); transform: translateX(100px);
} }
@@ -401,11 +401,15 @@ header {
} }
.page-nav { .page-nav {
display: flex; -ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
display: none;
gap: 10px; gap: 10px;
font-size: 18px; font-size: 18px;
line-height: 0; line-height: 0;
margin: 15px auto 15px auto; margin: 0 auto 0 auto;
padding: 0 15px 0 15px; padding: 0 15px 0 15px;
border-radius: 20px; border-radius: 20px;
color: #1a5f7d; color: #1a5f7d;
@@ -415,8 +419,8 @@ header {
.page-nav div { .page-nav div {
display: flex; display: flex;
gap: 5px; gap: 5px;
max-width: 155px; max-width: 170px;
overflow-x: scroll; overflow-x: hidden;
} }
/* Small */ /* Small */