From 9002086180713fa87de40ff236889da985792a71 Mon Sep 17 00:00:00 2001 From: lefuturiste Date: Mon, 3 Aug 2020 16:04:22 +0000 Subject: [PATCH] all in one commit: feat: add countdown integration fix: home nav icon spacing fix: various typos correction fix: right email texts --- assets/development/scripts/countdown.js | 33 +++++++++------- assets/development/scripts/home.js | 10 ++++- assets/development/styles/home.css | 7 ++-- assets/development/styles/organization.css | 2 +- assets/production/scripts/countdown.js | 2 +- assets/production/scripts/home.js | 2 +- assets/production/styles/home.css | 2 +- assets/production/styles/organization.css | 2 +- src/app.ts | 4 +- .../AdminOrganizationController.ts | 2 +- src/controllers/PublicController.ts | 39 ++++++++++++++++++- views/about.twig | 13 ++++--- views/base.twig | 2 +- views/countdown.twig | 5 ++- views/emails/delegateFooter.twig | 8 ++-- views/emails/rejected.twig | 2 +- views/emails/token.twig | 38 ++++++++++++++++-- views/legals.twig | 4 +- views/organization.twig | 20 ++++++++-- 19 files changed, 147 insertions(+), 50 deletions(-) diff --git a/assets/development/scripts/countdown.js b/assets/development/scripts/countdown.js index b5d7d83..4046167 100644 --- a/assets/development/scripts/countdown.js +++ b/assets/development/scripts/countdown.js @@ -6,34 +6,37 @@ const hoursContainer = document.getElementById('hours') const minutesContainer = document.getElementById('minutes') const secondsContainer = document.getElementById('seconds') -let target = new Date("2020-09-04 15:00:00") - let shown = false +const enableReload = window.location.pathname.indexOf('c') === -1 + function render() { let current = new Date() - let difference = target - current + let difference = openDate - current var _second = 1000, _minute = _second * 60, _hour = _minute * 60, - _day = _hour * 24; + _day = _hour * 24 var days = Math.floor(difference / _day), hours = Math.floor((difference % _day) / _hour), minutes = Math.floor((difference % _hour) / _minute), - seconds = Math.floor((difference % _minute) / _second); + seconds = Math.floor((difference % _minute) / _second) - days = (String(days).length >= 2) ? days : '0' + days; - hours = (String(hours).length >= 2) ? hours : '0' + hours; - minutes = (String(minutes).length >= 2) ? minutes : '0' + minutes; - seconds = (String(seconds).length >= 2) ? seconds : '0' + seconds; - - daysContainer.textContent = days - hoursContainer.textContent = hours - minutesContainer.textContent = minutes - secondsContainer.textContent = seconds - + days = (String(days).length >= 2) ? days : '0' + days + hours = (String(hours).length >= 2) ? hours : '0' + hours + minutes = (String(minutes).length >= 2) ? minutes : '0' + minutes + seconds = (String(seconds).length >= 2) ? seconds : '0' + seconds + + if (openDate <= current && enableReload) { + window.location.reload(false) + } else { + daysContainer.textContent = days + hoursContainer.textContent = hours + minutesContainer.textContent = minutes + secondsContainer.textContent = seconds + } if (!shown) { setTimeout(() => { countdown.style.opacity = 1 diff --git a/assets/development/scripts/home.js b/assets/development/scripts/home.js index 57e0798..d39277c 100644 --- a/assets/development/scripts/home.js +++ b/assets/development/scripts/home.js @@ -160,7 +160,13 @@ function enableTag(node) { if (!all) { tagId = node.attributes['data-tag-id'].value } - let data = organizations.filter(orga => orga.tags.filter(id => id === tagId).length > 0 || all) + let data = organizations + .filter(orga => orga.tags.filter(id => id === tagId).length > 0 || all) + .sort((a, b) => { + var textA = a.name.toUpperCase() + var textB = b.name.toUpperCase() + return (textA < textB) ? -1 : (textA > textB) ? 1 : 0; + }) renderMosaic(data) node.className += ' enabled' if (currentTag !== null) { @@ -168,7 +174,7 @@ function enableTag(node) { } currentTag = node if (data === undefined || data === null || data.length <= 0) { - mosaicHeader.textContent = "Aucune associations listées" + mosaicHeader.textContent = "Aucune association listée" } else if (data.length === 1) { mosaicHeader.textContent = "Une association listée" } else { diff --git a/assets/development/styles/home.css b/assets/development/styles/home.css index 52aafe8..9b02b7f 100644 --- a/assets/development/styles/home.css +++ b/assets/development/styles/home.css @@ -103,17 +103,18 @@ } .nav-icon { - width: 3em; - padding-left: .5em; + width: 1em; display: flex; - justify-content: start; + justify-content: center; align-items: center; color: #C28200; font-size: 1.5em; + margin-left: 0.25em; opacity: 0.7; } .nav-item-content { + margin-left: 1em; display: flex; justify-content: space-between; width: 100%; diff --git a/assets/development/styles/organization.css b/assets/development/styles/organization.css index 7a7272d..7eab950 100644 --- a/assets/development/styles/organization.css +++ b/assets/development/styles/organization.css @@ -344,7 +344,7 @@ section { overflow: hidden; transition: max-height 0.1s ease-out; - + text-align: justify; } .description-actions-container { diff --git a/assets/production/scripts/countdown.js b/assets/production/scripts/countdown.js index 7d71734..fd79953 100644 --- a/assets/production/scripts/countdown.js +++ b/assets/production/scripts/countdown.js @@ -1 +1 @@ -const countdown=document.getElementById("countdown"),counter=document.getElementById("counter"),daysContainer=document.getElementById("days"),hoursContainer=document.getElementById("hours"),minutesContainer=document.getElementById("minutes"),secondsContainer=document.getElementById("seconds");let target=new Date("2020-09-04 15:00:00"),shown=!1;function render(){let e=new Date,t=target-e;var n=Math.floor(t/864e5),o=Math.floor(t%864e5/36e5),r=Math.floor(t%36e5/6e4),d=Math.floor(t%6e4/1e3);n=String(n).length>=2?n:"0"+n,o=String(o).length>=2?o:"0"+o,r=String(r).length>=2?r:"0"+r,d=String(d).length>=2?d:"0"+d,daysContainer.textContent=n,hoursContainer.textContent=o,minutesContainer.textContent=r,secondsContainer.textContent=d,shown||setTimeout(()=>{countdown.style.opacity=1,shown=!0},300)}render(),setInterval(render,1e3); \ No newline at end of file +const countdown=document.getElementById("countdown"),counter=document.getElementById("counter"),daysContainer=document.getElementById("days"),hoursContainer=document.getElementById("hours"),minutesContainer=document.getElementById("minutes"),secondsContainer=document.getElementById("seconds");let shown=!1;const enableReload=-1===window.location.pathname.indexOf("c");function render(){let e=new Date,n=openDate-e;var t=Math.floor(n/864e5),o=Math.floor(n%864e5/36e5),a=Math.floor(n%36e5/6e4),d=Math.floor(n%6e4/1e3);t=String(t).length>=2?t:"0"+t,o=String(o).length>=2?o:"0"+o,a=String(a).length>=2?a:"0"+a,d=String(d).length>=2?d:"0"+d,openDate<=e&&enableReload?window.location.reload(!1):(daysContainer.textContent=t,hoursContainer.textContent=o,minutesContainer.textContent=a,secondsContainer.textContent=d),shown||setTimeout(()=>{countdown.style.opacity=1,shown=!0},300)}render(),setInterval(render,1e3); \ No newline at end of file diff --git a/assets/production/scripts/home.js b/assets/production/scripts/home.js index e707f98..dcae0e4 100644 --- a/assets/production/scripts/home.js +++ b/assets/production/scripts/home.js @@ -1 +1 @@ -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"),mosaic=document.getElementById("mosaic"),mosaicHeader=document.getElementById("mosaic-header"),tags=[];function createEl(e=!1,n="div"){let t=document.createElement(n);return 0!=e&&(t.className=e),t}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"),l=createEl("nav-title");l.textContent=e.name,r.appendChild(l);let i=createEl("nav-access"),o=createEl("fas fa-chevron-right","i");return i.appendChild(o),r.appendChild(l),r.appendChild(i),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"),l=createEl(),i=createEl("card-title-container"),o=createEl("card-title","h2");o.textContent=e.name,i.appendChild(o);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}i.appendChild(c),l.appendChild(i);let d=createEl("card-description");d.textContent=e.description;let s="/association/"+e.slug;return isProposed&&(s+="?version=proposed"),l.appendChild(d),r.appendChild(l),n.appendChild(r),n.href=s,n}navEnabler.onclick=async()=>{navOpened?(navEnablerText.textContent=oldNavText,navEnablerIcon.style.transform="rotate(0deg)",navContent.style.maxHeight=null):(oldNavText=navEnablerText.textContent,navEnablerText.textContent="Minimiser le menu",navEnablerIcon.style.transform="rotate(90eg)",navContent.style.maxHeight=navContent.scrollHeight+"px"),navOpened=!navOpened};let currentTag=null,currentCardContainer=null;function enableTag(e){let n="nav-all"===e.id,t="";n||(t=e.attributes["data-tag-id"].value);let a=organizations.filter(e=>e.tags.filter(e=>e===t).length>0||n);renderMosaic(a),e.className+=" enabled",null!==currentTag&&(currentTag.className=currentTag.className.replace("enabled","")),currentTag=e,null==a||a.length<=0?mosaicHeader.textContent="Aucune associations listées":1===a.length?mosaicHeader.textContent="Une association listée":mosaicHeader.textContent=a.length+" associations listées"}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,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(document.getElementById("nav-all"))}); \ No newline at end of file +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"),mosaic=document.getElementById("mosaic"),mosaicHeader=document.getElementById("mosaic-header"),tags=[];function createEl(e=!1,n="div"){let t=document.createElement(n);return 0!=e&&(t.className=e),t}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"),l=createEl("nav-title");l.textContent=e.name,r.appendChild(l);let o=createEl("nav-access"),i=createEl("fas fa-chevron-right","i");return o.appendChild(i),r.appendChild(l),r.appendChild(o),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"),l=createEl(),o=createEl("card-title-container"),i=createEl("card-title","h2");i.textContent=e.name,o.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}o.appendChild(c),l.appendChild(o);let d=createEl("card-description");d.textContent=e.description;let s="/association/"+e.slug;return isProposed&&(s+="?version=proposed"),l.appendChild(d),r.appendChild(l),n.appendChild(r),n.href=s,n}navEnabler.onclick=async()=>{navOpened?(navEnablerText.textContent=oldNavText,navEnablerIcon.style.transform="rotate(0deg)",navContent.style.maxHeight=null):(oldNavText=navEnablerText.textContent,navEnablerText.textContent="Minimiser le menu",navEnablerIcon.style.transform="rotate(90eg)",navContent.style.maxHeight=navContent.scrollHeight+"px"),navOpened=!navOpened};let currentTag=null,currentCardContainer=null;function enableTag(e){let n="nav-all"===e.id,t="";n||(t=e.attributes["data-tag-id"].value);let a=organizations.filter(e=>e.tags.filter(e=>e===t).length>0||n).sort((e,n)=>{var t=e.name.toUpperCase(),a=n.name.toUpperCase();return ta?1:0});renderMosaic(a),e.className+=" enabled",null!==currentTag&&(currentTag.className=currentTag.className.replace("enabled","")),currentTag=e,null==a||a.length<=0?mosaicHeader.textContent="Aucune association listée":1===a.length?mosaicHeader.textContent="Une association listée":mosaicHeader.textContent=a.length+" associations listées"}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,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(document.getElementById("nav-all"))}); \ No newline at end of file diff --git a/assets/production/styles/home.css b/assets/production/styles/home.css index 5a6a6bd..3829d91 100644 --- a/assets/production/styles/home.css +++ b/assets/production/styles/home.css @@ -1 +1 @@ -.header{padding-bottom:1.5em;padding-top:1.5em;background-color:#d35400}.header-container{position:relative;display:flex;justify-content:space-between}.header-left{display:flex}.header-menu{position:absolute;right:0;bottom:0;display:flex;align-items:flex-end}.header-menu a{color:#fff;margin-right:1em}.header-menu a:last-of-type{margin-right:0}.header-image{margin-right:3em}.header-image img{width:7em}.header-content{display:flex;flex-direction:column;justify-content:space-between;padding-top:1em;padding-bottom:1em}.header-title{font-family:'Roboto Slab',serif;margin:0;color:#fff;font-weight:500;font-size:2.5em}.header-sub-title{margin:0;text-decoration:underline;font-weight:100;color:#ecf0f1;transition:opacity .2s}.header-sub-title:hover{opacity:.9;color:#ecf0f1}.header-description{color:#ecf0f1}.content{margin-top:1.5em;display:flex}.nav{margin-right:2em}.nav-item{width:15em;padding:1em;border-radius:4px;margin-bottom:.7em;border:3px solid rgba(255,111,10,.7);display:flex;cursor:pointer;transition:ease-in-out .1s;height:1.2em}.nav-item svg{width:.75em;height:.75em}.nav-icon{width:3em;padding-left:.5em;display:flex;justify-content:start;align-items:center;color:#c28200;font-size:1.5em;opacity:.7}.nav-item-content{display:flex;justify-content:space-between;width:100%}.nav-title{display:flex;align-items:center;opacity:.7}.nav-access{display:flex;align-items:center;color:#ff6f0a;opacity:.7}.nav-item.enabled{border-color:#ff6f0a}.nav-item.enabled .nav-access{opacity:1}.nav-item.enabled .nav-icon{opacity:1}.nav-item.enabled .nav-title{opacity:1}.nav-item:hover{transform:scale(1.05)}#nav-enabler{display:none}.mosaic{background:#fff;width:100%}.mosaic-header{width:100%;opacity:.8;text-align:right;margin-bottom:1.5em}.card-container{margin:0 auto;width:85%}.card{cursor:pointer;display:flex;border:1px solid #bdc3c7;border-radius:4px;margin-bottom:1em;box-shadow:0 0 8px 0 rgba(0,0,0,.1);overflow:hidden;text-decoration:none;transition:transform .2s ease-in-out}.card:hover{text-decoration:none}.card-image-container{border-right:1px solid #c4c4c4;display:flex;justify-content:center;align-items:center;padding:1em}.card-image{height:12em;width:12em;background-position:center;background-size:cover;transition:all .2s ease-in-out;border:0;outline:0;box-shadow:0}.card-image:hover{transform:scale(1.1)}.card-content{width:100%;padding:1.5em;display:flex;flex-direction:column;justify-content:space-between}.card-title-container{display:flex;justify-content:space-between}.card-icon{color:#c28200;opacity:.85;margin-top:-.5em;margin-right:-.5em;font-size:1.4em}.card-icon svg{width:1em;height:1em}.card-title{color:#b12008;margin:0;margin-bottom:.5em}.card-description{color:#34495e;margin:0;line-height:1.6em;position:relative}.card-link{position:absolute;right:.5em;bottom:0;margin-bottom:-.5em}@media (max-width:1350px){.card-container{width:100%}.header-left{padding-bottom:1em}}@media (max-width:1000px){.header{padding-top:1em;padding-bottom:1em}.header-container{display:block}.header-left{display:block}.header-menu{justify-content:center;position:relative;margin-top:0}.header-content{padding:0}.header-image{margin:0;text-align:center}.header-image img{width:6em}.header-sub-title{margin-top:1em;text-align:center}.header-title{text-align:center;margin-bottom:.25em}.header-description{text-align:center}.content{display:block}.nav{margin-right:0;user-select:none}#nav-enabler{display:flex}#nav-enabler-icon{transform:rotate(-90deg)}#nav-content{max-height:0;transition:max-height .1s ease-out}.nav-item{width:auto}.nav-mobile-enabler #nav-enabler-icon{transition:all .1s ease}.mosaic{position:relative;border-top:1px solid #c4c4c4;padding-top:1em}.mosaic-header{text-align:center}.card{display:block}.card-image-container{padding:0;margin:0;border-right:0;border-bottom:1px solid #c4c4c4}.card-content{width:auto}} \ No newline at end of file +.header{padding-bottom:1.5em;padding-top:1.5em;background-color:#d35400}.header-container{position:relative;display:flex;justify-content:space-between}.header-left{display:flex}.header-menu{position:absolute;right:0;bottom:0;display:flex;align-items:flex-end}.header-menu a{color:#fff;margin-right:1em}.header-menu a:last-of-type{margin-right:0}.header-image{margin-right:3em}.header-image img{width:7em}.header-content{display:flex;flex-direction:column;justify-content:space-between;padding-top:1em;padding-bottom:1em}.header-title{font-family:'Roboto Slab',serif;margin:0;color:#fff;font-weight:500;font-size:2.5em}.header-sub-title{margin:0;text-decoration:underline;font-weight:100;color:#ecf0f1;transition:opacity .2s}.header-sub-title:hover{opacity:.9;color:#ecf0f1}.header-description{color:#ecf0f1}.content{margin-top:1.5em;display:flex}.nav{margin-right:2em}.nav-item{width:15em;padding:1em;border-radius:4px;margin-bottom:.7em;border:3px solid rgba(255,111,10,.7);display:flex;cursor:pointer;transition:ease-in-out .1s;height:1.2em}.nav-item svg{width:.75em;height:.75em}.nav-icon{width:1em;display:flex;justify-content:center;align-items:center;color:#c28200;font-size:1.5em;margin-left:.25em;opacity:.7}.nav-item-content{margin-left:1em;display:flex;justify-content:space-between;width:100%}.nav-title{display:flex;align-items:center;opacity:.7}.nav-access{display:flex;align-items:center;color:#ff6f0a;opacity:.7}.nav-item.enabled{border-color:#ff6f0a}.nav-item.enabled .nav-access{opacity:1}.nav-item.enabled .nav-icon{opacity:1}.nav-item.enabled .nav-title{opacity:1}.nav-item:hover{transform:scale(1.05)}#nav-enabler{display:none}.mosaic{background:#fff;width:100%}.mosaic-header{width:100%;opacity:.8;text-align:right;margin-bottom:1.5em}.card-container{margin:0 auto;width:85%}.card{cursor:pointer;display:flex;border:1px solid #bdc3c7;border-radius:4px;margin-bottom:1em;box-shadow:0 0 8px 0 rgba(0,0,0,.1);overflow:hidden;text-decoration:none;transition:transform .2s ease-in-out}.card:hover{text-decoration:none}.card-image-container{border-right:1px solid #c4c4c4;display:flex;justify-content:center;align-items:center;padding:1em}.card-image{height:12em;width:12em;background-position:center;background-size:cover;transition:all .2s ease-in-out;border:0;outline:0;box-shadow:0}.card-image:hover{transform:scale(1.1)}.card-content{width:100%;padding:1.5em;display:flex;flex-direction:column;justify-content:space-between}.card-title-container{display:flex;justify-content:space-between}.card-icon{color:#c28200;opacity:.85;margin-top:-.5em;margin-right:-.5em;font-size:1.4em}.card-icon svg{width:1em;height:1em}.card-title{color:#b12008;margin:0;margin-bottom:.5em}.card-description{color:#34495e;margin:0;line-height:1.6em;position:relative}.card-link{position:absolute;right:.5em;bottom:0;margin-bottom:-.5em}@media (max-width:1350px){.card-container{width:100%}.header-left{padding-bottom:1em}}@media (max-width:1000px){.header{padding-top:1em;padding-bottom:1em}.header-container{display:block}.header-left{display:block}.header-menu{justify-content:center;position:relative;margin-top:0}.header-content{padding:0}.header-image{margin:0;text-align:center}.header-image img{width:6em}.header-sub-title{margin-top:1em;text-align:center}.header-title{text-align:center;margin-bottom:.25em}.header-description{text-align:center}.content{display:block}.nav{margin-right:0;user-select:none}#nav-enabler{display:flex}#nav-enabler-icon{transform:rotate(-90deg)}#nav-content{max-height:0;transition:max-height .1s ease-out}.nav-item{width:auto}.nav-mobile-enabler #nav-enabler-icon{transition:all .1s ease}.mosaic{position:relative;border-top:1px solid #c4c4c4;padding-top:1em}.mosaic-header{text-align:center}.card{display:block}.card-image-container{padding:0;margin:0;border-right:0;border-bottom:1px solid #c4c4c4}.card-content{width:auto}} \ No newline at end of file diff --git a/assets/production/styles/organization.css b/assets/production/styles/organization.css index 8e19d5c..dbd2e8c 100644 --- a/assets/production/styles/organization.css +++ b/assets/production/styles/organization.css @@ -1 +1 @@ -.header-container{display:flex;justify-content:space-between;align-items:center;padding-top:1em;padding-bottom:1em;font-size:1.2em}.header-title{text-align:right}.return{display:flex;align-items:center;color:#34495e;cursor:pointer;transition:all .2s;text-decoration:none}.return-icon{display:flex;align-items:center;margin-right:.75em}.return-icon svg{width:1.3em}.return:hover{opacity:.88;text-decoration:underline}.cover-container{position:relative}.cover-background{z-index:-1;position:absolute;top:0;left:0;background-position:center;background-size:cover;width:100%;height:100%}.cover-content{background-color:rgba(230,126,34,.75);background-size:cover;color:#fff;padding-top:1.5em;padding-bottom:1.5em}.cover-content .container{display:flex;align-items:center}.cover-image{background:#fff;border-radius:50%;border:3px solid #fd6e0b;background-size:cover;background-position:center;width:10em;height:10em;min-width:10em;min-height:10em;margin-right:3em}.cover-title{font-family:'Roboto Slab',serif;font-size:3em;font-weight:400;margin:0}.cover-sub-title{font-size:1.5em;font-weight:400;margin:0}.media-mosaic{margin-top:.75em;width:100%;height:25em;display:grid;grid-column-gap:.75em;grid-row-gap:.75em}.media-overlay{background-color:rgba(196,196,196,.7);color:#b12008;display:flex;justify-content:center;align-items:center;position:absolute;left:0;top:0;width:100%;height:100%}.media-container{position:relative}.media-overlay svg{width:3.5em;cursor:pointer;transition:all .2s}.media-overlay svg:hover{transform:scale(1.2)}.mosaic-1{display:flex;justify-content:center}.mosaic-1 .media-container{width:70%}.mosaic-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.mosaic-3{grid-template-columns:1fr .5fr;grid-template-rows:1fr 1fr}.mosaic-3 .media-container:first-of-type{grid-row:1/span 2}.mosaic-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.mosaic-5{grid-template-columns:1fr .5fr .5fr;grid-template-rows:1fr 1fr}.mosaic-5 .media-container:first-of-type{grid-row:1/span 2}.media{cursor:zoom-in;height:100%;border-radius:4px;background-size:cover;background-position:center}.media-modal-container{position:fixed;width:100%;height:100vh;z-index:99;top:0;left:0;background-color:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear}.media-modal{position:relative;width:50%}.media-modal .media-modal-content{border-radius:4px;width:100%}.media-modal img,.media-modal video{width:100%}.media-close{position:absolute;width:1.5em;height:1.5em;right:-.75em;top:-.75em;color:#fff;cursor:pointer;opacity:.7;transition:all .2s}.media-close:hover{transform:scale(1.2);opacity:1}section{margin-top:1.2em;margin-bottom:0}.section-title{margin-top:1em;margin-bottom:1em}.section-title h1,.section-title h2,.section-title h3{margin:0;font-weight:400;font-family:'Roboto Slab',serif;font-size:1.8em}.section-divider{background-color:rgba(194,129,0,.5);width:100%;height:3px;border-radius:1px}.description{line-height:1.5em;text-align:justify;margin:0 auto;width:80%;margin-top:1em;margin-bottom:.5em}.description p{margin-top:.75em}.description p:last-child{margin-bottom:0}.description h3{font-size:1.4em;margin-top:1em;margin-bottom:0}.description h4{font-size:1.2em;margin-top:1em;margin-bottom:0}.description h3,.description h4{opacity:.8}.description blockquote{border-left:3px solid #95a5a6;border-radius:3px}.description blockquote p{padding-top:1em;padding-bottom:1em;padding-left:1em}.description-cutted{max-height:13em;overflow:hidden;transition:max-height .1s ease-out}.description-actions-container{display:flex;justify-content:center;align-items:center;margin-top:1em}.description-actions-container.closed{box-shadow:0 -16px 16px -3px #fff;background:rgba(255,255,255,.8);position:relative;top:-62px;height:62px;margin-bottom:-62px}.schedule-category{margin-bottom:1em}.schedule-category-header{background-color:rgba(189,195,199,.97);border-radius:4px;display:flex;justify-content:space-between;align-items:center;padding:1em 2em 1em 2em;cursor:pointer}.schedule-category-collapse-icon{transform:rotate(180deg);color:#b12008;width:1.5em;transition:all .1s ease-out}.schedule-category-table{max-height:0;overflow:hidden;transition:max-height .1s ease-out}.schedule-category-days-container{border-radius:4px;background-color:#ecf0f1;margin-left:2em;margin-top:1em;margin-bottom:1em;margin-right:20em;padding:1em 2em 1em 2em}.schedule-category-day-container{display:flex;justify-content:space-between;margin-bottom:1em}.schedule-category-day-container .separator{opacity:.5}.schedule-category-table div:last-child{margin-bottom:0}.schedule-category-hours{color:#2c3e50}.schedule-category-hours .spearator{color:#bdc3c7}.pricing{display:flex;justify-content:center}.pricing-card{max-width:14em;height:10em;width:100%;padding:1.5em 1em;text-align:center;border-radius:4px;display:flex;flex-direction:column;justify-content:space-between;margin-right:1.5em;color:#fff}.pricing .pricing-card:nth-child(1){background-color:rgba(177,88,8,.8)}.pricing .pricing-card:nth-child(2){background-color:rgba(253,110,11,.78)}.pricing .pricing-card:nth-child(3){background-color:rgba(177,32,8,.8)}.pricing .pricing-card:last-child{margin-right:0}.pricing-label{font-size:1.5em}.pricing-name{font-size:1.8em}.org-container{margin:0 auto;width:70%}.contact-item{display:flex;justify-content:space-between;align-items:center;padding-top:.75em;padding-bottom:.75em;padding-left:2em;padding-right:2em;background-color:#ecf0f1;border-radius:4px;margin-bottom:1em}.contact-item.address .contact-content div{margin-bottom:.25em}.contact-item.address .contact-content div:last-child{margin-bottom:0}.contact-icon{color:#b15808;background-color:#c4c4c4;border-radius:50%;width:2em;height:2em;display:flex;justify-content:center;align-items:center;font-size:1.5em}.contact-icon svg{width:.7em}.contact-content{text-align:right}.external-link{margin-left:.25em;font-weight:700}.external-link{width:.8em}.email .contact-icon svg{width:.9em}.website .contact-icon svg{width:.9em}.facebook .contact-icon{background-color:#3b5999;color:#fff}.facebook .contact-icon svg{width:.5em}.instagram .contact-icon{background:linear-gradient(45deg,#405de6,#5851db,#833ab4,#c13584,#e1306c,#fd1d1d);color:#fff}.instagram .contact-icon svg{width:.75em}.twitter .contact-icon{background-color:#1da1f2;color:#fff}.twitter .contact-icon svg{width:.75em}.peoples{width:100%;display:flex;justify-content:center;margin-bottom:1em}.people-card{width:100%;max-width:50%;margin-right:1em;border-radius:3px;padding:1.2em 1.5em;border:1px solid gray}.people-card:last-of-type{margin-right:0}.people-name{font-size:1.4em;margin-bottom:.5em}.people-contacts{margin-top:.5em}.people-contact{padding-top:.5em;padding-bottom:.5em;display:flex;align-items:center}.people-role{opacity:.8}.people-contact-icon{width:1em;height:1em;margin-right:1em;color:#b15808}.mentions{display:flex;justify-content:center;padding-left:1em;padding-right:1em;flex-direction:column;text-align:center;color:#d35400;margin-top:1em;margin-bottom:1em}.mentions div{margin-bottom:.5em}.footer{width:100%;display:grid;grid-template-columns:50% 25% 25%;grid-template-rows:1fr;height:1em}.footer div:nth-child(1){background-color:rgb(177,32,8,.83)}.footer div:nth-child(2){background-color:rgb(177,88,8,.83)}.footer div:nth-child(3){background-color:rgb(253,110,11,.83)}@media (max-width:1200px){.schedule-category-days-container{margin-right:25em}.media-modal{width:70%}}@media (max-width:900px){.cover-content .container{flex-direction:column;justify-content:center;text-align:center}.cover-image{margin-right:0;margin-bottom:3em}.cover-title{font-size:2.5em;margin-bottom:.25em}.media-mosaic{height:33em}.mosaic-1 .media-container{width:100%}.mosaic-2{grid-template-rows:1fr 1fr}.mosaic-2,.mosaic-3{grid-template-columns:1fr}.mosaic-3{grid-template-rows:1fr 1fr 1fr}.mosaic-3 .media-container:first-of-type{grid-row:1/span 1}.mosaic-4{grid-template-rows:1fr 1fr 1fr}.mosaic-4 .media-container:first-of-type,.mosaic-4 .media-container:nth-of-type(2){grid-column:1/span 2}.mosaic-4 .media-container:first-of-type{grid-row:1/span 1}.mosaic-5{grid-template-columns:.5fr .5fr;grid-template-rows:1fr .5fr .5fr}.mosaic-5 .media-container:first-of-type{grid-row:1/span 1;grid-column:1/span 2}.media-modal{width:80%}.schedule-category-header{padding-left:1em;padding-right:1em}.schedule-category-days-container{margin-right:5em}.pricing{flex-direction:column;align-items:center}.pricing-card{margin-right:0;margin-bottom:1em}.org-container{width:100%}.contact-icon{width:1.5em;height:1.5em}.contact-item{padding-left:1em;padding-right:1em}.contact-content{word-break:break-all;font-size:.9em}.facebook .contact-content,.instagram .contact-content,.twitter .contact-content,.website .contact-content{font-size:.8em}.peoples{display:flex;flex-direction:column}.people-card{max-width:100%;width:auto;text-align:center;margin-bottom:1em;margin-right:0}.people-contacts{display:flex;flex-direction:column;align-items:center}.people-card:last-of-type{margin-bottom:0}}@media (max-width:600px){.schedule-category-days-container{margin-right:1em;padding-left:1em;padding-right:1em}.return-title{display:none}.media-modal{width:90%}.description{width:95%}} \ No newline at end of file +.header-container{display:flex;justify-content:space-between;align-items:center;padding-top:1em;padding-bottom:1em;font-size:1.2em}.header-title{text-align:right}.return{display:flex;align-items:center;color:#34495e;cursor:pointer;transition:all .2s;text-decoration:none}.return-icon{display:flex;align-items:center;margin-right:.75em}.return-icon svg{width:1.3em}.return:hover{opacity:.88;text-decoration:underline}.cover-container{position:relative}.cover-background{z-index:-1;position:absolute;top:0;left:0;background-position:center;background-size:cover;width:100%;height:100%}.cover-content{background-color:rgba(230,126,34,.75);background-size:cover;color:#fff;padding-top:1.5em;padding-bottom:1.5em}.cover-content .container{display:flex;align-items:center}.cover-image{background:#fff;border-radius:50%;border:3px solid #fd6e0b;background-size:cover;background-position:center;width:10em;height:10em;min-width:10em;min-height:10em;margin-right:3em}.cover-title{font-family:'Roboto Slab',serif;font-size:3em;font-weight:400;margin:0}.cover-sub-title{font-size:1.5em;font-weight:400;margin:0}.media-mosaic{margin-top:.75em;width:100%;height:25em;display:grid;grid-column-gap:.75em;grid-row-gap:.75em}.media-overlay{background-color:rgba(196,196,196,.7);color:#b12008;display:flex;justify-content:center;align-items:center;position:absolute;left:0;top:0;width:100%;height:100%}.media-container{position:relative}.media-overlay svg{width:3.5em;cursor:pointer;transition:all .2s}.media-overlay svg:hover{transform:scale(1.2)}.mosaic-1{display:flex;justify-content:center}.mosaic-1 .media-container{width:70%}.mosaic-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.mosaic-3{grid-template-columns:1fr .5fr;grid-template-rows:1fr 1fr}.mosaic-3 .media-container:first-of-type{grid-row:1/span 2}.mosaic-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.mosaic-5{grid-template-columns:1fr .5fr .5fr;grid-template-rows:1fr 1fr}.mosaic-5 .media-container:first-of-type{grid-row:1/span 2}.media{cursor:zoom-in;height:100%;border-radius:4px;background-size:cover;background-position:center}.media-modal-container{position:fixed;width:100%;height:100vh;z-index:99;top:0;left:0;background-color:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear}.media-modal{position:relative;width:50%}.media-modal .media-modal-content{border-radius:4px;width:100%}.media-modal img,.media-modal video{width:100%}.media-close{position:absolute;width:1.5em;height:1.5em;right:-.75em;top:-.75em;color:#fff;cursor:pointer;opacity:.7;transition:all .2s}.media-close:hover{transform:scale(1.2);opacity:1}section{margin-top:1.2em;margin-bottom:0}.section-title{margin-top:1em;margin-bottom:1em}.section-title h1,.section-title h2,.section-title h3{margin:0;font-weight:400;font-family:'Roboto Slab',serif;font-size:1.8em}.section-divider{background-color:rgba(194,129,0,.5);width:100%;height:3px;border-radius:1px}.description{line-height:1.5em;text-align:justify;margin:0 auto;width:80%;margin-top:1em;margin-bottom:.5em}.description p{margin-top:.75em}.description p:last-child{margin-bottom:0}.description h3{font-size:1.4em;margin-top:1em;margin-bottom:0}.description h4{font-size:1.2em;margin-top:1em;margin-bottom:0}.description h3,.description h4{opacity:.8}.description blockquote{border-left:3px solid #95a5a6;border-radius:3px}.description blockquote p{padding-top:1em;padding-bottom:1em;padding-left:1em}.description-cutted{max-height:13em;overflow:hidden;transition:max-height .1s ease-out;text-align:justify}.description-actions-container{display:flex;justify-content:center;align-items:center;margin-top:1em}.description-actions-container.closed{box-shadow:0 -16px 16px -3px #fff;background:rgba(255,255,255,.8);position:relative;top:-62px;height:62px;margin-bottom:-62px}.schedule-category{margin-bottom:1em}.schedule-category-header{background-color:rgba(189,195,199,.97);border-radius:4px;display:flex;justify-content:space-between;align-items:center;padding:1em 2em 1em 2em;cursor:pointer}.schedule-category-collapse-icon{transform:rotate(180deg);color:#b12008;width:1.5em;transition:all .1s ease-out}.schedule-category-table{max-height:0;overflow:hidden;transition:max-height .1s ease-out}.schedule-category-days-container{border-radius:4px;background-color:#ecf0f1;margin-left:2em;margin-top:1em;margin-bottom:1em;margin-right:20em;padding:1em 2em 1em 2em}.schedule-category-day-container{display:flex;justify-content:space-between;margin-bottom:1em}.schedule-category-day-container .separator{opacity:.5}.schedule-category-table div:last-child{margin-bottom:0}.schedule-category-hours{color:#2c3e50}.schedule-category-hours .spearator{color:#bdc3c7}.pricing{display:flex;justify-content:center}.pricing-card{max-width:14em;height:10em;width:100%;padding:1.5em 1em;text-align:center;border-radius:4px;display:flex;flex-direction:column;justify-content:space-between;margin-right:1.5em;color:#fff}.pricing .pricing-card:nth-child(1){background-color:rgba(177,88,8,.8)}.pricing .pricing-card:nth-child(2){background-color:rgba(253,110,11,.78)}.pricing .pricing-card:nth-child(3){background-color:rgba(177,32,8,.8)}.pricing .pricing-card:last-child{margin-right:0}.pricing-label{font-size:1.5em}.pricing-name{font-size:1.8em}.org-container{margin:0 auto;width:70%}.contact-item{display:flex;justify-content:space-between;align-items:center;padding-top:.75em;padding-bottom:.75em;padding-left:2em;padding-right:2em;background-color:#ecf0f1;border-radius:4px;margin-bottom:1em}.contact-item.address .contact-content div{margin-bottom:.25em}.contact-item.address .contact-content div:last-child{margin-bottom:0}.contact-icon{color:#b15808;background-color:#c4c4c4;border-radius:50%;width:2em;height:2em;display:flex;justify-content:center;align-items:center;font-size:1.5em}.contact-icon svg{width:.7em}.contact-content{text-align:right}.external-link{margin-left:.25em;font-weight:700}.external-link{width:.8em}.email .contact-icon svg{width:.9em}.website .contact-icon svg{width:.9em}.facebook .contact-icon{background-color:#3b5999;color:#fff}.facebook .contact-icon svg{width:.5em}.instagram .contact-icon{background:linear-gradient(45deg,#405de6,#5851db,#833ab4,#c13584,#e1306c,#fd1d1d);color:#fff}.instagram .contact-icon svg{width:.75em}.twitter .contact-icon{background-color:#1da1f2;color:#fff}.twitter .contact-icon svg{width:.75em}.peoples{width:100%;display:flex;justify-content:center;margin-bottom:1em}.people-card{width:100%;max-width:50%;margin-right:1em;border-radius:3px;padding:1.2em 1.5em;border:1px solid gray}.people-card:last-of-type{margin-right:0}.people-name{font-size:1.4em;margin-bottom:.5em}.people-contacts{margin-top:.5em}.people-contact{padding-top:.5em;padding-bottom:.5em;display:flex;align-items:center}.people-role{opacity:.8}.people-contact-icon{width:1em;height:1em;margin-right:1em;color:#b15808}.mentions{display:flex;justify-content:center;padding-left:1em;padding-right:1em;flex-direction:column;text-align:center;color:#d35400;margin-top:1em;margin-bottom:1em}.mentions div{margin-bottom:.5em}.footer{width:100%;display:grid;grid-template-columns:50% 25% 25%;grid-template-rows:1fr;height:1em}.footer div:nth-child(1){background-color:rgb(177,32,8,.83)}.footer div:nth-child(2){background-color:rgb(177,88,8,.83)}.footer div:nth-child(3){background-color:rgb(253,110,11,.83)}@media (max-width:1200px){.schedule-category-days-container{margin-right:25em}.media-modal{width:70%}}@media (max-width:900px){.cover-content .container{flex-direction:column;justify-content:center;text-align:center}.cover-image{margin-right:0;margin-bottom:3em}.cover-title{font-size:2.5em;margin-bottom:.25em}.media-mosaic{height:33em}.mosaic-1 .media-container{width:100%}.mosaic-2{grid-template-rows:1fr 1fr}.mosaic-2,.mosaic-3{grid-template-columns:1fr}.mosaic-3{grid-template-rows:1fr 1fr 1fr}.mosaic-3 .media-container:first-of-type{grid-row:1/span 1}.mosaic-4{grid-template-rows:1fr 1fr 1fr}.mosaic-4 .media-container:first-of-type,.mosaic-4 .media-container:nth-of-type(2){grid-column:1/span 2}.mosaic-4 .media-container:first-of-type{grid-row:1/span 1}.mosaic-5{grid-template-columns:.5fr .5fr;grid-template-rows:1fr .5fr .5fr}.mosaic-5 .media-container:first-of-type{grid-row:1/span 1;grid-column:1/span 2}.media-modal{width:80%}.schedule-category-header{padding-left:1em;padding-right:1em}.schedule-category-days-container{margin-right:5em}.pricing{flex-direction:column;align-items:center}.pricing-card{margin-right:0;margin-bottom:1em}.org-container{width:100%}.contact-icon{width:1.5em;height:1.5em}.contact-item{padding-left:1em;padding-right:1em}.contact-content{word-break:break-all;font-size:.9em}.facebook .contact-content,.instagram .contact-content,.twitter .contact-content,.website .contact-content{font-size:.8em}.peoples{display:flex;flex-direction:column}.people-card{max-width:100%;width:auto;text-align:center;margin-bottom:1em;margin-right:0}.people-contacts{display:flex;flex-direction:column;align-items:center}.people-card:last-of-type{margin-bottom:0}}@media (max-width:600px){.schedule-category-days-container{margin-right:1em;padding-left:1em;padding-right:1em}.return-title{display:none}.media-modal{width:90%}.description{width:95%}} \ No newline at end of file diff --git a/src/app.ts b/src/app.ts index 693253b..bc0c879 100644 --- a/src/app.ts +++ b/src/app.ts @@ -17,6 +17,8 @@ import EmailService from './EmailService' import ErrorController from './controllers/ErrorController' import { createProxyMiddleware, Filter, Options, RequestHandler } from 'http-proxy-middleware'; +process.env.TZ = "Europe/Paris" + process.on('unhandledRejection', (err) => { console.error(err) console.log('unhandledRejection!') @@ -58,7 +60,7 @@ let main = async () => { app.use(bodyParser.json()) app.get('/', PublicController.home) - app.get('/countdown', PublicController.countdown) + app.get('/c', PublicController.countdown) app.get('/association/:slug', PublicController.organization) app.get('/a-propos', PublicController.about) app.get('/mentions-legales', PublicController.legals) diff --git a/src/controllers/AdminOrganizationController.ts b/src/controllers/AdminOrganizationController.ts index aec8b6d..bba1c2d 100644 --- a/src/controllers/AdminOrganizationController.ts +++ b/src/controllers/AdminOrganizationController.ts @@ -334,7 +334,7 @@ export default class AdminOrganizationController { static sendEmailTokenUniversal(data: Document) { EmailService.send( data.get('email'), - "Votre lien secret pour modifier votre association", + "Votre lien pour l’inscription de votre association", "token", { adminName: data.get('adminName'), diff --git a/src/controllers/PublicController.ts b/src/controllers/PublicController.ts index 932f280..fc58eb8 100644 --- a/src/controllers/PublicController.ts +++ b/src/controllers/PublicController.ts @@ -16,17 +16,27 @@ import MediaService from '../MediaService' export default class PublicController { static async countdown(req: express.Request, res: express.Response) { - res.render('countdown.twig', {}) + res.render('countdown.twig', { + openDate: process.env.OPEN_DATE + }) } static async home(req: express.Request, res: express.Response) { + let isProposed = Utils.isStrUsable(req.query, 'only') + let byPass = req.query.bypass != null + let target: any = new Date(process.env.OPEN_DATE == null ? '01/01/1970 00:00' : process.env.OPEN_DATE) + let now: any = new Date() + if (!byPass && !isProposed && target > now) { + return res.render('countdown.twig', { + openDate: process.env.OPEN_DATE + }) + } // let client: IORedis.Redis = RedisService.getClient() // await client.set('hello', 'world') // res.json({ // data: await client.get('hello') // }) Tag.find().then(tags => { - let isProposed = Utils.isStrUsable(req.query, 'only') // @ts-ignore if (isProposed && !mongoose.Types.ObjectId.isValid(req.query.only)) { return ErrorController.handleServerError({ stack: 'Invalid object id in only query param'}, req, res, []) @@ -129,6 +139,31 @@ export default class PublicController { }) } version.cutDescription = Utils.isStrUsable(version, 'descriptionLong') && version.descriptionLong.length > 200 + + // TODO: Rassembler les horaires qui sont dans le même jour, uniquement pour le front + + // version.schedule = version.schedule.map((s: any) => { + // let newWhens: any = [] + // console.log(s) + // // s.when.foreach((w: any) => { + // // // if there is already a when with the same day add it + // // let scheduleObject: any = { from: w.from, to: w.to } + // // if (newWhens.filter((_n: any) => _n.day === w.day).length > 0) { + // // newWhens.map((newWhen: any) => { + // // if (newWhen.day === w.day) { + // // newWhen.hours.push(scheduleObject) + // // } + // // return newWhen + // // }) + // // } else { + // // w.hours = [scheduleObject] + // // newWhens.push(w) + // // } + // // }) + // // s.when = newWhens + // return s + // }) + // if (version.cutDescription) { // version.descriptionFirstHalf = version.descriptionLong.substr(0, 200) // not gonna lie // version.descriptionSecondHalf = version.descriptionLong.substr(200) diff --git a/views/about.twig b/views/about.twig index 50ae9a0..35e65be 100644 --- a/views/about.twig +++ b/views/about.twig @@ -1,15 +1,16 @@ {% extends "./base.twig" %} {% block title %}A propos{% endblock %} {% block content %} -
+

- Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem alias sapiente neque? Dignissimos harum blanditiis fugiat eius alias nam repudiandae, et explicabo nihil eos, quos reprehenderit nobis aperiam quibusdam ad? + Pour pallier à l’absence du forum des associations cette année, événement incontournable + depuis plus de 16 ans, qui rassemble plus de 60 associations et des centaines de publics, + l’Espace Condorcet Centre Social a créé pour vous et le public, un forum virtuel.

- Takimata dolores sanctus lorem dolor labore dolores lorem voluptua diam ipsum, at accusam sed tempor accusam ea clita et tempor. Duo kasd eirmod at amet sed sed sanctus sit, sed kasd eos dolore amet diam nonumy est ipsum diam, lorem tempor dolore sed tempor sed eos justo no amet. Est.Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem alias sapiente neque? Dignissimos harum blanditiis fugiat eius alias nam repudiandae, et explicabo nihil eos, quos reprehenderit nobis aperiam quibusdam ad? -

-

- Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem alias sapiente neque? Dignissimos harum blanditiis fugiat eius alias nam repudiandae, et explicabo nihil eos, quos reprehenderit nobis aperiam quibusdam ad? + Dans un premier temps, nous réservons cet espace aux associations qui participent + habituellement au forum qui est organisé chaque année à Gaillon. Dans un second temps, + nous ouvrirons ce forum en ligne aux associations du territoire, sur le même procédé.

{% endblock %} diff --git a/views/base.twig b/views/base.twig index 3d25759..1087bfe 100644 --- a/views/base.twig +++ b/views/base.twig @@ -57,7 +57,7 @@ Github: https://github.com/lefuturiste {% endif %} {% if isProposed is defined and isProposed == true %}
- ! Version proposé ! + ! Version proposée ! {#
#}
diff --git a/views/countdown.twig b/views/countdown.twig index 052e2fb..a936a1c 100644 --- a/views/countdown.twig +++ b/views/countdown.twig @@ -7,7 +7,7 @@

Soyez patient...

-
Le site ouvre le 4 septembre, c'est à dire dans :
+
Le site ouvre le 4 septembre à midi, c'est à dire dans :
@@ -33,5 +33,8 @@
{% endblock %} {% block scripts %} + {% endblock %} \ No newline at end of file diff --git a/views/emails/delegateFooter.twig b/views/emails/delegateFooter.twig index 793aead..16609ab 100644 --- a/views/emails/delegateFooter.twig +++ b/views/emails/delegateFooter.twig @@ -1,9 +1,11 @@

-Vous recevez cet email car cette adresse email a été designé comme étant celle qui doit recevoir les messages concernant l'association "{{ adminName }}" sur la platforme du Forum des associations 2020 mise en place par l'Espace Condorcet Centre Social. +Vous recevez ce courriel, car cette adresse email a été désignée comme étant celle qui reçoit +les messages concernant l'association "{{ adminName }}" par la plateforme du Forum virtuel +des associations 2020 mise en place par l'Espace Condorcet Centre Social.

-Cet email est un message automatique, veuillez à ne pas répondre. -

\ No newline at end of file +Cet email est un message automatique, veuillez ne pas répondre. +

diff --git a/views/emails/rejected.twig b/views/emails/rejected.twig index e3dba1a..3a771f6 100644 --- a/views/emails/rejected.twig +++ b/views/emails/rejected.twig @@ -1,7 +1,7 @@

Bonjour,

-Nous vous informons que les changements qui ont été soumis à vérification concernant l'association "{{ adminName }}" ne peuvent pas en l'état être publiées. +Nous vous informons que les changements qui ont été soumis à vérification concernant l'association "{{ adminName }}" ne peuvent pas en l'état être publiés.

diff --git a/views/emails/token.twig b/views/emails/token.twig index 431b981..93622ea 100644 --- a/views/emails/token.twig +++ b/views/emails/token.twig @@ -1,15 +1,45 @@

Bonjour,

-

-Bienvenue ! Ceci est juste un petit email pour communiquer le lien de gestion de l'association "{{ adminName }}" dans le but de modifier les informations concernant cette association sur la platforme de espace condorcet. +

+Pour pallier à l’absence du forum des associations cette année, événement incontournable +depuis plus de 16 ans, qui rassemble plus de 60 associations et des centaines de publics, +l’Espace Condorcet Centre Social a créé pour vous et le public, un forum virtuel qui sera +opérationnel et consultable en ligne par tous dès le vendredi 4 septembre 2020. +

+ +

+Dans un premier temps, nous réservons cet espace aux associations qui participent +habituellement au forum qui est organisé chaque année à Gaillon. Dans un second temps, +nous ouvrirons ce forum en ligne aux associations du territoire, sur le même procédé. +

+ +

+Vous recevez cet email d’invitation qui va vous permettre de remplir un formulaire d’identité +complet de votre association, ce formulaire une fois vérifié, sera : + +

    +
  • VALIDÉ : votre fiche sera visible sur le site associations.espacecondorcet.org à +l’ouverture de celui-ci
  • +
  • INVALIDÉ : vous recevrez un retour par email vous indiquant la (les) raison(s) et/ou les +modifications à faire sur votre fiche
  • +
+

+ +

+Si vous souhaitez inscrire votre association à ce forum virtuel 2020, cliquez sur le lien ci-dessous et remplissez le formulaire avec toutes vos informations :

-Vous pouvez utiliser ce lien pour vous connecter sur l'interface web permettant de modifier votre association sur la platforme : {{ link }} +{{ link }}

Et voici votre clé: {{ token }}

-

Cordialement

+

+Pour toutes questions et accompagnement, vous pouvez contacter l’Espace Condorcet au +02.32.77.50.80 ou par email à : elisabethfacq@espacecondorcet.org +

+ +

Cordialement,

{% include 'views/emails/delegateFooter.twig' %} diff --git a/views/legals.twig b/views/legals.twig index 261d35e..78c14ef 100644 --- a/views/legals.twig +++ b/views/legals.twig @@ -16,14 +16,14 @@

Téléphone : 02 32 77 50 80
- Fax : 02 32 77 50 99 + Fax : 02 32 77 50 99
+ E-Mail : contact@espacecondorcet.org

Représentant légal

Liliane COQUET

-

Immatriculation

diff --git a/views/organization.twig b/views/organization.twig index a632790..000efd6 100644 --- a/views/organization.twig +++ b/views/organization.twig @@ -125,6 +125,20 @@

{% endfor %} + {# {% for when in item.when %} +
+
+ {{ when.day }} +
+
+ {% for i in when.hours %} + + {{ i.from }} - {{ i.to }} + + {% endfor %} +
+
+ {% endfor %} #}
@@ -356,11 +370,11 @@ {% block footer %}
- Contenu rédigée par l'une des associations participant à associations.espacecondorcet.org + Contenu rédigé par l'une des associations participant à associations.espacecondorcet.org
-
+ {#
Dernière mise à jour le {{ lastPublished }} -
+
#}