From 12f16c6cbc261446806525615e18c764801eace4 Mon Sep 17 00:00:00 2001 From: Matthieu Bessat Date: Sat, 5 Sep 2020 23:22:05 +0200 Subject: [PATCH] fix(Home): enableTag true flag for sort operation --- assets/development/scripts/home.js | 4 ++-- assets/production/scripts/home.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/development/scripts/home.js b/assets/development/scripts/home.js index a224815..2dd1da2 100644 --- a/assets/development/scripts/home.js +++ b/assets/development/scripts/home.js @@ -84,7 +84,7 @@ organizations = shuffle(organizations) randomBtn.onclick = () => { if (sort) { organizations = shuffle(organizations) - enableTag(currentTag) + enableTag(currentTag, true) sort = false randomBtn.classList.add('enabled') sortBtn.classList.remove('enabled') @@ -100,7 +100,7 @@ sortBtn.onclick = () => { var textB = b.name.toUpperCase() return (textA < textB) ? -1 : (textA > textB) ? 1 : 0; }) - enableTag(currentTag) + enableTag(currentTag, true) sort = true sortBtn.classList.add('enabled') randomBtn.classList.remove('enabled') diff --git a/assets/production/scripts/home.js b/assets/production/scripts/home.js index 4e2143a..97fb44b 100644 --- a/assets/production/scripts/home.js +++ b/assets/production/scripts/home.js @@ -1 +1 @@ -function createEl(e=!1,n="div"){let t=document.createElement(n);return 0!=e&&(t.className=e),t}let navOpened=!1,oldNavText="",oldNavIcon="",navEnabler=document.getElementById("nav-enabler"),navEnablerText=document.getElementById("nav-enabler-text"),navEnablerIcon=document.getElementById("nav-enabler-icon"),navContent=document.getElementById("nav-content"),navAll=document.getElementById("nav-all"),mosaic=document.getElementById("mosaic"),mosaicCount=document.getElementById("mosaic-count"),tags=[],navEnablerExists=!1;function closeMenu(){navEnablerText.textContent=oldNavText,navEnablerIcon.style.transform="rotate(0deg)",navContent.style.maxHeight=null}function shuffle(e){for(var n,t,a=e.length;0!==a;)t=Math.floor(Math.random()*a),n=e[a-=1],e[a]=e[t],e[t]=n;return e}navEnabler.onclick=async()=>{navEnablerExists=!0,navOpened?closeMenu():(oldNavText=navEnablerText.textContent,navEnablerText.textContent="Minimiser le menu",navEnablerIcon.style.transform="rotate(90eg)",navContent.style.maxHeight=navContent.scrollHeight+"px"),navOpened=!navOpened};const randomBtn=document.getElementById("random-btn"),sortBtn=document.getElementById("sort-btn");let sort=!1;function renderNavItem(e){let n=createEl("nav-item"),t=createEl("nav-icon"),a=createEl(e.icon,"i");t.appendChild(a),n.appendChild(t);let r=createEl("nav-item-content"),o=createEl("nav-title");o.textContent=e.name,r.appendChild(o);let l=createEl("nav-access"),i=createEl("fas fa-chevron-right","i");return l.appendChild(i),r.appendChild(o),r.appendChild(l),n.appendChild(r),n}function setAttributes(e,n){for(var t in n)attr=document.createAttribute(t),attr.value=n[t],e.attributes.setNamedItem(attr)}function renderCard(e){let n=createEl("card","a"),t=createEl("card-image-container"),a=createEl("card-image");a.style=`background-image: url('${mediaBaseUrl+"/"+e.thumbnail}')`,t.appendChild(a),n.appendChild(t);let r=createEl("card-content"),o=createEl(),l=createEl("card-title-container"),i=createEl("card-title","h2");i.textContent=e.name,l.appendChild(i);let c=createEl("card-icon");if(Array.isArray(e.tags)&&e.tags.length>0){let n=tags.filter(n=>e.tags[0]===n._id)[0];c.innerHTML=n.iconHTML}l.appendChild(c),o.appendChild(l);let s=createEl("card-description");s.textContent=e.description;let d="/association/"+e.slug;return isProposed&&(d+="?version=proposed"),o.appendChild(s),r.appendChild(o),n.appendChild(r),n.href=d,n}organizations=shuffle(organizations),randomBtn.onclick=()=>{sort&&(organizations=shuffle(organizations),enableTag(currentTag),sort=!1,randomBtn.classList.add("enabled"),sortBtn.classList.remove("enabled"))},sortBtn.onclick=()=>{sort||(organizations=organizations.sort((e,n)=>{var t=e.name.toUpperCase(),a=n.name.toUpperCase();return ta?1:0}),enableTag(currentTag),sort=!0,sortBtn.classList.add("enabled"),randomBtn.classList.remove("enabled"))};let currentTag=null,currentCardContainer=null;function enableTag(e,n=!1){let t="nav-all"===e.id,a="";t||(a=e.attributes["data-tag-id"].value);let r=organizations.filter(e=>e.tags.filter(e=>e===a).length>0||t);renderMosaic(r),e.className+=" enabled",null!==currentTag&&(currentTag.className=currentTag.className.replace("enabled","")),currentTag=e,n||(null==r||r.length<=0?mosaicCount.textContent="Aucune association listée":1===r.length?mosaicCount.textContent="Une association listée":mosaicCount.textContent=r.length+" associations listées",navEnablerExists?(navOpened=!navOpened,closeMenu(),document.getElementsByClassName("content")[0].scrollIntoView(!0)):window.scrollY()>300&&document.getElementsByClassName("content")[0].scrollIntoView(!0))}function posY(e){for(var n=e,t=0;n&&"body"!==n.tagName.toLowerCase();)t+=n.offsetTop,n=n.offsetParent;return t}function viewPortHeight(){var e=document.documentElement;return window.innerWidth?window.innerHeight:e&&!isNaN(e.clientHeight)?e.clientHeight:0}function scrollY(){return window.pageYOffset?window.pageYOffset:Math.max(document.documentElement.scrollTop,document.body.scrollTop)}function isVisible(e){var n=viewPortHeight(),t=scrollY();return!(posY(e)>n+t)}let rendering=!0,page=0,elementsPerPage=5,focusPoint=null,focusElementPos=2,cardContainer=null,currentOrganizations=[],pageCount=0;function renderPage(){rendering=!0;let e=currentOrganizations.slice(page*elementsPerPage,(page+1)*elementsPerPage);e.forEach((n,t)=>{let a=renderCard(n);cardContainer.appendChild(a),t===e.length-focusElementPos&&(focusPoint=a)}),rendering=!1}function renderMosaic(e){cardContainer=createEl("card-container"),currentOrganizations=e,page=0,pageCount=Math.floor(e.length/elementsPerPage),renderPage(),null!==currentCardContainer&&mosaic.removeChild(currentCardContainer),currentCardContainer=cardContainer,mosaic.appendChild(cardContainer)}window.onscroll=()=>{null!=focusPoint&&isVisible(focusPoint)&&!rendering&&page+1{document.querySelectorAll("#nav-content .nav-item").forEach(e=>{e.onclick=()=>enableTag(e),"nav-all"!==e.id&&tags.push({_id:e.attributes["data-tag-id"].value,iconHTML:e.querySelector(".nav-icon").innerHTML})}),enableTag(navAll)}); \ No newline at end of file +function createEl(e=!1,n="div"){let t=document.createElement(n);return 0!=e&&(t.className=e),t}let navOpened=!1,oldNavText="",oldNavIcon="",navEnabler=document.getElementById("nav-enabler"),navEnablerText=document.getElementById("nav-enabler-text"),navEnablerIcon=document.getElementById("nav-enabler-icon"),navContent=document.getElementById("nav-content"),navAll=document.getElementById("nav-all"),mosaic=document.getElementById("mosaic"),mosaicCount=document.getElementById("mosaic-count"),tags=[],navEnablerExists=!1;function closeMenu(){navEnablerText.textContent=oldNavText,navEnablerIcon.style.transform="rotate(0deg)",navContent.style.maxHeight=null}function shuffle(e){for(var n,t,a=e.length;0!==a;)t=Math.floor(Math.random()*a),n=e[a-=1],e[a]=e[t],e[t]=n;return e}navEnabler.onclick=async()=>{navEnablerExists=!0,navOpened?closeMenu():(oldNavText=navEnablerText.textContent,navEnablerText.textContent="Minimiser le menu",navEnablerIcon.style.transform="rotate(90eg)",navContent.style.maxHeight=navContent.scrollHeight+"px"),navOpened=!navOpened};const randomBtn=document.getElementById("random-btn"),sortBtn=document.getElementById("sort-btn");let sort=!1;function renderNavItem(e){let n=createEl("nav-item"),t=createEl("nav-icon"),a=createEl(e.icon,"i");t.appendChild(a),n.appendChild(t);let r=createEl("nav-item-content"),o=createEl("nav-title");o.textContent=e.name,r.appendChild(o);let l=createEl("nav-access"),i=createEl("fas fa-chevron-right","i");return l.appendChild(i),r.appendChild(o),r.appendChild(l),n.appendChild(r),n}function setAttributes(e,n){for(var t in n)attr=document.createAttribute(t),attr.value=n[t],e.attributes.setNamedItem(attr)}function renderCard(e){let n=createEl("card","a"),t=createEl("card-image-container"),a=createEl("card-image");a.style=`background-image: url('${mediaBaseUrl+"/"+e.thumbnail}')`,t.appendChild(a),n.appendChild(t);let r=createEl("card-content"),o=createEl(),l=createEl("card-title-container"),i=createEl("card-title","h2");i.textContent=e.name,l.appendChild(i);let c=createEl("card-icon");if(Array.isArray(e.tags)&&e.tags.length>0){let n=tags.filter(n=>e.tags[0]===n._id)[0];c.innerHTML=n.iconHTML}l.appendChild(c),o.appendChild(l);let s=createEl("card-description");s.textContent=e.description;let d="/association/"+e.slug;return isProposed&&(d+="?version=proposed"),o.appendChild(s),r.appendChild(o),n.appendChild(r),n.href=d,n}organizations=shuffle(organizations),randomBtn.onclick=()=>{sort&&(organizations=shuffle(organizations),enableTag(currentTag,!0),sort=!1,randomBtn.classList.add("enabled"),sortBtn.classList.remove("enabled"))},sortBtn.onclick=()=>{sort||(organizations=organizations.sort((e,n)=>{var t=e.name.toUpperCase(),a=n.name.toUpperCase();return ta?1:0}),enableTag(currentTag,!0),sort=!0,sortBtn.classList.add("enabled"),randomBtn.classList.remove("enabled"))};let currentTag=null,currentCardContainer=null;function enableTag(e,n=!1){let t="nav-all"===e.id,a="";t||(a=e.attributes["data-tag-id"].value);let r=organizations.filter(e=>e.tags.filter(e=>e===a).length>0||t);renderMosaic(r),e.className+=" enabled",null!==currentTag&&(currentTag.className=currentTag.className.replace("enabled","")),currentTag=e,n||(null==r||r.length<=0?mosaicCount.textContent="Aucune association listée":1===r.length?mosaicCount.textContent="Une association listée":mosaicCount.textContent=r.length+" associations listées",navEnablerExists?(navOpened=!navOpened,closeMenu(),document.getElementsByClassName("content")[0].scrollIntoView(!0)):window.scrollY()>300&&document.getElementsByClassName("content")[0].scrollIntoView(!0))}function posY(e){for(var n=e,t=0;n&&"body"!==n.tagName.toLowerCase();)t+=n.offsetTop,n=n.offsetParent;return t}function viewPortHeight(){var e=document.documentElement;return window.innerWidth?window.innerHeight:e&&!isNaN(e.clientHeight)?e.clientHeight:0}function scrollY(){return window.pageYOffset?window.pageYOffset:Math.max(document.documentElement.scrollTop,document.body.scrollTop)}function isVisible(e){var n=viewPortHeight(),t=scrollY();return!(posY(e)>n+t)}let rendering=!0,page=0,elementsPerPage=5,focusPoint=null,focusElementPos=2,cardContainer=null,currentOrganizations=[],pageCount=0;function renderPage(){rendering=!0;let e=currentOrganizations.slice(page*elementsPerPage,(page+1)*elementsPerPage);e.forEach((n,t)=>{let a=renderCard(n);cardContainer.appendChild(a),t===e.length-focusElementPos&&(focusPoint=a)}),rendering=!1}function renderMosaic(e){cardContainer=createEl("card-container"),currentOrganizations=e,page=0,pageCount=Math.floor(e.length/elementsPerPage),renderPage(),null!==currentCardContainer&&mosaic.removeChild(currentCardContainer),currentCardContainer=cardContainer,mosaic.appendChild(cardContainer)}window.onscroll=()=>{null!=focusPoint&&isVisible(focusPoint)&&!rendering&&page+1{document.querySelectorAll("#nav-content .nav-item").forEach(e=>{e.onclick=()=>enableTag(e),"nav-all"!==e.id&&tags.push({_id:e.attributes["data-tag-id"].value,iconHTML:e.querySelector(".nav-icon").innerHTML})}),enableTag(navAll)}); \ No newline at end of file