Commit 69a9ff20 authored by Jérémy GAILLARD's avatar Jérémy GAILLARD
Browse files

Merge branch 'v1.1' into 'master'

V1.1

See merge request !20
parents 04f3ed17 568dc32f
......@@ -4024,6 +4024,11 @@
}
}
},
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
......@@ -5913,6 +5918,15 @@
"integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
"dev": true
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
"integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
},
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
......@@ -7425,6 +7439,14 @@
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
"min-document": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
"integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
"requires": {
"dom-walk": "^0.1.0"
}
},
"mini-css-extract-plugin": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
......@@ -9050,8 +9072,7 @@
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
"dev": true
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
},
"process-nextick-args": {
"version": "2.0.1",
......@@ -11176,6 +11197,23 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
"integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
},
"vue-carousel": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/vue-carousel/-/vue-carousel-0.18.0.tgz",
"integrity": "sha512-a2zxh7QJioDxNMguqcuJ7TPbfgK5bGDaAXIia7NWxPAWsEvNE4ZtHgsGu40L5Aha4uyjmNKXvleB14QAXFoKig==",
"requires": {
"global": "^4.3.2",
"regenerator-runtime": "^0.12.1",
"vue": "^2.5.17"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
"integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="
}
}
},
"vue-eslint-parser": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz",
......
......@@ -9,7 +9,8 @@
},
"dependencies": {
"core-js": "^3.6.4",
"vue": "^2.6.11"
"vue": "^2.6.11",
"vue-carousel": "^0.18.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.2.0",
......
......@@ -7,7 +7,8 @@
<meta name="description" content="Retrouvez et proposez des initiatives dans la Métropole de Lyon pour vous aider et pour aider pendant le confinement." />
<link rel="icon" href="favicon.ico">
<title>Entraide confinement - Métropole de Lyon</title>
<!-- Matomo -->
<!-- Code Matomo pour l'envoi des statistiques d'utilisation du site -->
<script type="text/javascript">
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
......@@ -23,7 +24,9 @@
</script>
<noscript><p><img src="https://statweb.grandlyon.com/matomo.php?idsite=82&amp;rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->
<!-- Fin du code Matomo -->
<!-- Code tarteaucitron pour la gestion des cookies-->
<script type="text/javascript" src="/tarteaucitron/tarteaucitron.js"></script>
<script type="text/javascript">
......@@ -34,7 +37,7 @@
"cookieName": "tarteaucitron", /* Cookie name */
"orientation": "bottom", /* Banner position (top - bottom) */
"showAlertSmall": true, /* Show the small banner on bottom right */
"showAlertSmall": false, /* Show the small banner on bottom right */
"cookieslist": true, /* Show the cookie list */
"adblocker": false, /* Show a Warning if an adblocker is detected */
......@@ -51,7 +54,7 @@
"readmoreLink": "/cookiespolicy" /* Change the default readmore link pointing to opt-out.ferank.eu */
});
</script>
<script type="text/javascript">
<script type="text/javascript"> /* on spécifie le cookie lié à Matomo, seul module collectant des données utilisateurs */
tarteaucitron.user.matomoId = 82;
tarteaucitron.user.matomoHost = 'https://statweb.grandlyon.com/';
(tarteaucitron.job = tarteaucitron.job || []).push('matomo');
......
......@@ -9,9 +9,7 @@
<Charte/>
</div>
<!--<p>
En ajoutant votre initiative vous contribuez à l’entraide, à la cohésion et à l’amélioration de la situation actuelle !
</p>-->
<!-- Champs du formulaire -->
<div class="field">
<p>Titre de l'initiative * </p>
<input v-model="titre" placeholder="Ma super initiative"/>
......@@ -70,6 +68,8 @@
<p>{{imageError}}</p>
</div>
</div>
<!-- Champs spécifiques pour des catégories sélectionnées -->
<template v-if='categorie === "1"'>
<div class="field">
<p>Modalités de livraison * (choix multiple)</p>
......@@ -134,6 +134,7 @@
</div>
</template>
<!-- Champs d'informations personnelles liées au porteur de l'initiative-->
<hr>
<p> Nous vous remercions de compléter ces informations afin que la Métropole de Lyon puisse vous contacter (ces données ne seront pas affichées sur la plateforme). </p>
<div class="field">
......@@ -154,6 +155,8 @@
<CGU/>
</div>
</div>
<!-- Affichage des erreurs, s'actualisant en temps réel avec la complétion des données -->
<div class="validation" v-if="validation.length !== 0">
<p>Pour envoyer le formulaire, merci de corriger les erreurs suivantes :</p>
<ul>
......
......@@ -17,10 +17,7 @@
</button>
</div>
</div>
<!--<div class="producers">
<p class="producers_texte"> <b> Producteurs</b>, vous avez besoin d'un point de collecte ou d'un regroupement ? </p>
<a class="bouton contact" href="/"> Contactez nous</a>
</div>-->
</div>
<div v-if='metadata !== null && services !== null'>
<ServiceList v-if='page === "list"' :services='services' :metadata='metadata' :url='url' :project='project' :table='table'/>
......
<template>
<div>
<div v-for="n in news" class="actu" :key="n['id']">
<p class="text"> <b>DIRECT :</b> {{n["texte"]}}</p>
<div class="bouton_actu" v-if="n['lien'] !== '' && n['lien'] !== null">
<a :href="n['lien']" target="_blank">
<button @click='page = "form"'>
<p>{{n['texte_bouton']}}</p>
</button>
</a>
</div>
</div>
<carousel class="actu_carousel" :perPage="1" :autoplay="true" :paginationPosition="bottom-overlay" :loop="true" :autoplayTimeout="5000" :speed="1000">
<slide class="actu_list" v-for="n in news" :key="n['id']">
<div class="actu">
<p class="text"> <b>DIRECT :</b> {{n["texte"]}}</p>
<div class="bouton_actu" v-if="n['lien'] !== '' && n['lien'] !== null">
<a :href="n['lien']" target="_blank">
<button @click='page = "form"'>
<p>{{n['texte_bouton']}}</p>
</button>
</a>
</div>
</div>
</slide>
</carousel>
</div>
</template>
<script>
export default {
name: 'News',
name: 'News',
props: {
news: Array
}
},
}
</script>
<style scoped>
.actu{
.actu_carousel{
background-color: var(--dark-grey);
padding: 0.7% 10%;
}
.actu_list{
width: 100%
}
.actu{
display: flex;
align-items: center;
}
......@@ -43,7 +54,6 @@ p{
}
.bouton_actu{
margin-left: 5%;
flex-grow: 2;
}
......@@ -54,7 +64,8 @@ p{
justify-content: center;
align-items: center;
display: flex;
float: right;
float: left;
margin-left: 10%;
padding: 0.4vw 1vw 0.4vw 1vw;
}
......@@ -68,22 +79,28 @@ p{
}
@media (max-width: 600px) {
.actu_carousel{
padding: 3% 10%;
}
.actu{
padding: 2% 10%;
display: inline;
}
p {
font-size: 3vw;
text-align: left;
text-align: center;
padding-bottom: 3%;
}
.bouton_actu{
width: 70%;
margin-left: 0;
.bouton_actu button{
width: 50%;
margin-left: 25%;
justify-content: center;
}
.bouton_actu p{
padding-left: 10%;
padding: 3% 0;
}
}
......
<template>
<div class="service">
<h3>{{data["titre"]}}</h3>
<!-- Bloc avec l'image, les informations générales sur le service-->
<div class="meta_info">
<div class="meta_info_left">
<img v-if='image !== null' :src='url + image["data"]["data"]["url"]' alt="">
......@@ -27,7 +28,11 @@
</div>
</div>
</div>
<!-- Paragraphe de description de l'initiative-->
<p class="description">{{data["descriptif"]}}</p>
<!-- Champs spécifiques pour courses et manger local-->
<div v-if='getCategorie(data) === "1"' class="alimentation_infos">
<div v-if='getLabels(data["modalite_de_livraison"], "modalite_de_livraison") !== ""' class="small_alimentation_info">
<img src="../static/livraison.svg" alt="Icone livraison">
......@@ -42,6 +47,8 @@
<p>{{getLabels(data["type_de_produit"], "type_de_produit")}}</p>
</div>
</div>
<!-- Bouton de lien vers l'initiative-->
<button @click="stats(data)"> <a :href='data["media_associe"]' target="_blank"> Voir l'initiative </a></button>
</div>
</template>
......
<template>
<div class="servicelist">
<div id="filtres">
<div id="filtres"> <!-- Contient l'ensemble des filtres-->
<p class="subtitle"> Rechercher </p>
<div class="categories">
<!-- Bloc correspondant au choix de la catégorie (version web)-->
<div class="categories">
<div class="radio-toolbar" v-for='(k, v) in choices("categorie")' :key="k">
<input type="radio" :id="k" name="filtre" :value="v" @change='filterChange(); stats(k)' v-model="cat_filter">
<label :for="k">
......@@ -11,31 +13,16 @@
</label>
</div>
</div>
<!-- Bloc correspondant au choix de la catégorie (version mobile) -->
<div class="categories_smartphone filter">
<select @change='filterChange()' v-model="cat_filter">
<option v-for='(k, v) in choices("categorie")' :value='v' :key='v'>{{k}}</option>
</select>
</div>
<div class="more_criterium">
<div class="categories_smartphone_ou filter">
<select @change='filterChange()' v-model="loc_filter">
<option v-for='(k, v) in choices("localisation")' :value='v' :key='v'>{{k}}</option>
</select>
</div>
<div class="categories_smartphone_modalite filter">
<select @change='filterChange()' v-model="mod_filter">
<option value="" disabled selected>Je souhaite ?</option>
<option value=''>Toutes les initiatives</option>
<option v-for='(k, v) in choices("modalite")' :value='v' :key='v'>{{k}}</option>
</select>
</div>
<button class="refine" v-on:click="show_hide()"> + de critères</button>
</div>
<!--<p>Catégorie</p>
<select @change='filterChange()' v-model="cat_filter">
<option v-for='(k, v) in choices("categorie")' :value='v' :key='v'>{{k}}</option>
</select>-->
<!-- Bloc correspondant auw autres critères (version web) -->
<p class="subtitle"> Affiner ma recherche </p>
<div class="filters">
<div class="filter">
......@@ -51,6 +38,8 @@
<option v-for='(k, v) in choices("modalite")' :value='v' :key='v'>{{k}}</option>
</select>
</div>
<!-- Filtres pour lesquels il n'a pas été souhaité de les afficher -->
<!--<div class="filter">
<p>Public cible</p>
<select @change='filterChange()' v-model="pub_filter">
......@@ -65,6 +54,8 @@
<option v-for='(k, v) in choices("type_contenu")' :value='v' :key='v'>{{k}}</option>
</select>
</div>-->
<!-- Filtres spécifiques par catégorie -->
<div v-if='cat_filter==="1"' class="filter">
<p>Comment je peux commander ?</p>
<select @change='filterChange()' v-model="pai_filter">
......@@ -107,6 +98,24 @@
</div>
</div>
<!-- Bloc correspondant auw autres critères (version mobile) -->
<div class="more_criterium">
<div class="categories_smartphone_ou filter">
<select @change='filterChange()' v-model="loc_filter">
<option v-for='(k, v) in choices("localisation")' :value='v' :key='v'>{{k}}</option>
</select>
</div>
<div class="categories_smartphone_modalite filter">
<select @change='filterChange()' v-model="mod_filter">
<option value="" disabled selected>Je souhaite ?</option>
<option value=''>Toutes les initiatives</option>
<option v-for='(k, v) in choices("modalite")' :value='v' :key='v'>{{k}}</option>
</select>
</div>
<button class="refine" v-on:click="show_hide()"> + de critères</button>
</div>
<!-- Bloc correspondant auw critères spécifiques (version mobile) -->
<div class="filters_smartphone">
<div id="other_filters_smartphone">
<!--<div class="filter">
......@@ -166,8 +175,11 @@
</div>
</div>
</div>
<!-- <p v-if='filteredServices.length !== 0'>Initiatives {{numFirst}} à {{numLast}} (sur {{filteredServices.length}})</p>
<p v-else>Aucune initiative trouvée pour les filtres sélectionnés</p>-->
<!-- Bandeaux spécifiques en haut des résultats -->
<div v-if='cat_filter==="1"' class="producers">
<p class="producers_texte"> <b> Vous avez besoin d'aide ou d'un renseignement ? </b> (de 9h à 12h30 et de 14h à 16h) </p>
<a class="contact"> 04 26 99 33 99</a>
......@@ -176,6 +188,8 @@
<p class="producers_texte"> <b> Producteurs locaux</b>, vous avez besoin d'aide ? </p>
<a class="contact" href="https://metropoledelyon.typeform.com/to/R2paRn" target="_blank"> contactez nous</a>
</div>
<!--Liste des résultats -->
<div class="services" id="list_services">
<Service v-for="s in paginated" :data=s :key="s['id']" :url='url' :project='project' :metadata='metadata'/>
</div>
......@@ -183,6 +197,8 @@
<p> Pas de résultats pour les filtres sélectionnés </p>
<!--<a class="spread_search" href="/"> Elargir ma recherche à toute la métropole</a>-->
</div>
<!-- Pagination -->
<div class="navigation">
<button v-if='page !== maxPage' class="pagination" @click="pageChange(page + 1); stats('PageSuivante')">Afficher plus</button>
<p>{{numLast}}/{{filteredServices.length}}</p>
......
import Vue from 'vue'
import App from './App.vue'
import VueCarousel from 'vue-carousel';
Vue.config.productionTip = false
Vue.config.productionTip = false;
Vue.use(VueCarousel);
new Vue({
render: h => h(App),
......
module.exports = {
publicPath: ''
publicPath: '',
runtimeCompiler: true
};
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment