styles groupés, logo entête

This commit is contained in:
Tykayn 2025-05-28 17:05:34 +02:00 committed by tykayn
parent ccab916286
commit 1e02b7062d
13 changed files with 261 additions and 142 deletions

View file

@ -7,3 +7,32 @@
// any CSS you import will output into a single css file (app.css in this case) // any CSS you import will output into a single css file (app.css in this case)
import './styles/app.css'; import './styles/app.css';
console.log('Hello World de app.js');
function labourer() {
window.location.href = '/admin/labourer/' + document.getElementById('app_admin_labourer').value;
}
// Attendre le chargement du DOM
document.addEventListener('DOMContentLoaded', () => {
// Générer une couleur pastel aléatoire
const genererCouleurPastel = () => {
// Utiliser des valeurs plus claires (180-255) pour obtenir des tons pastel
const r = Math.floor(Math.random() * 75 + 180);
const g = Math.floor(Math.random() * 75 + 180);
const b = Math.floor(Math.random() * 75 + 180);
return `rgb(${r}, ${g}, ${b})`;
};
const randombg = genererCouleurPastel();
// Appliquer la couleur au body
document.body.style.backgroundColor = randombg;
// Appliquer le style pour .body-landing
const bodyLanding = document.querySelector('.body-landing');
if (bodyLanding) {
bodyLanding.style.backgroundColor = randombg;
}
});

View file

@ -1,3 +1,9 @@
body { body {
background-color: lightgray; background-color: rgb(236, 236, 236);
} }
.body-landing .container {
background-color: white;
border-radius: 10px;
padding: 20px;
}

68
public/css/main.css Normal file
View file

@ -0,0 +1,68 @@
/* Layout général */
.body-landing {
background-color: rgb(255, 255, 255);
min-height: 100vh;
padding-bottom: 5rem;
}
/* Header */
.main-header {
background-color: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
padding: 1rem 0;
margin-bottom: 2rem;
}
.main-header h1 {
font-size: 1.5rem;
margin: 0;
}
.main-header a {
text-decoration: none;
color: inherit;
}
/* Footer */
.main-footer {
background-color: #f8f9fa;
padding: 2rem 0;
margin-top: 3rem;
border-top: 1px solid #dee2e6;
}
.main-footer p {
margin-bottom: 0.5rem;
}
.main-footer a {
color: #0d6efd;
text-decoration: none;
}
.main-footer a:hover {
text-decoration: underline;
}
/* Barre de progression */
#completion_progress {
position: fixed;
bottom: 0;
width: 100%;
padding: 1rem;
background-color: white;
border-top: 1px solid #e9ecef;
z-index: 1000;
box-shadow: 0 -2px 4px rgba(0, 0, 0, .1);
}
/* Media queries */
@media (max-width: 768px) {
.main-header h1 {
font-size: 1.25rem;
}
.main-footer {
padding: 1.5rem 0;
}
}

BIN
public/logo-osm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -200,7 +200,7 @@ final class AdminController extends AbstractController
->setModifiedDate(new \DateTime()) ->setModifiedDate(new \DateTime())
->setAskedHumainsSupport(false) ->setAskedHumainsSupport(false)
->setLastContactAttemptDate(null) ->setLastContactAttemptDate(null)
->setStats(null) ->setStats($stats)
->setNote($result['tags'] && isset($result['tags']['note']) ? isset($result['tags']['note']) : null) ->setNote($result['tags'] && isset($result['tags']['note']) ? isset($result['tags']['note']) : null)
->setHasOpeningHours($result['tags'] && isset($result['tags']['opening_hours']) ? isset($result['tags']['opening_hours']) : null) ->setHasOpeningHours($result['tags'] && isset($result['tags']['opening_hours']) ? isset($result['tags']['opening_hours']) : null)
->setHasAddress(($result['tags'] && isset($result['tags']['address']) || $result['tags'] && isset($result['tags']['contact:address'])) ? isset($result['tags']['address']) : null) ->setHasAddress(($result['tags'] && isset($result['tags']['address']) || $result['tags'] && isset($result['tags']['contact:address'])) ? isset($result['tags']['address']) : null)

View file

@ -1,112 +1,98 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Welcome!{% endblock %}</title> <title>{% block title %}Welcome!{% endblock %}</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>"> <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
<!-- CSS Bootstrap --> <!-- CSS Bootstrap -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<!-- CSS personnalisé -->
<link rel="stylesheet" href="{{ asset('css/main.css') }}">
<!-- JavaScript Bootstrap avec Popper.js --> <!-- JavaScript Bootstrap avec Popper.js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
<link rel="icon" type="image/png" href="{{ asset('logo-osm.png') }}">
{# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #} {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
<style> {% block stylesheets %}
.body-landing {
background-color:rgb(255, 255, 255);
min-height: 50vh;
}
table td{
padding: 1rem;
}
table, thead, tbody, tr{
width: 100%;
}
#completion_progress{
position: fixed;
bottom: 0;
width: 100%;
padding: 1rem;
background-color: white;
border-top: 1px solid #e9ecef;
z-index: 1000;
}
.body-landing{
min-height: 100vh;
}
.main-footer{
padding-bottom: 15rem;
margin-top: 5rem;
}
</style>
{% block stylesheets %}
{{ encore_entry_link_tags('app') }} {{ encore_entry_link_tags('app') }}
{% endblock %} {% endblock %}
</head> </head>
<body> <body>
<header class="main-header"> <header class="main-header">
<div id="completion_progress"> <div class="container">
<div class="container"> <div class="row align-items-center">
<div id="completion_display"></div> <div class="col-12">
<a href="{{ path('app_public_index') }}" class="d-flex align-items-center">
<div class="progress" role="progressbar" aria-label="Basic example" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"> <h1 class="mb-0 mt-2">
<div class="progress-bar" style="width: 0%"></div> <img src="{{ asset('logo-osm.png') }}" alt="Logo OSM" class="me-2" style="width: 30px; height: 30px;">
</div>
</div> Mon Commerce OpenStreetMap</h1>
</div> </a>
<div class="container">
<div class="row">
<div class="col-12">
<a href="{{ path('app_public_index') }}">
<h1>OpenStreetMap Mon Commerce</h1>
</a>
</div>
</div>
{% for label, messages in app.flashes %}
{% for message in messages %}
<div class="alert alert-{{ label }} alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div> </div>
</div>
{% for label, messages in app.flashes %}
{% for message in messages %}
<div class="alert alert-{{ label }} alert-dismissible fade show mt-3" role="alert">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endfor %}
{% endfor %} {% endfor %}
{% endfor %} <div class="row mt-3">
<div class="row"> <div class="col-12">
<div class="col-12"> {% include 'public/nav.html.twig' %}
{% include 'public/nav.html.twig' %} </div>
</div>
</div>
</div>
</header>
<div class="body-landing">
{% block body %}{% endblock %}
</div>
<footer class="main-footer dark">
<div class="container">
<div class="row">
<div class="col-12">
{% include 'public/nav.html.twig' %}
</div> </div>
</div> </div>
<div class="row"> </header>
<div class="col-12">
<div id="completion_progress" class="d-none">
<p>OpenStreetMap Mon Commerce</p> <div class="container">
<p>Licence AGPLv3+, <div id="completion_display" class="mb-2"></div>
fait par <a href="https://mastodon.cipherbliss.com/@tykayn">Tykayn</a> de <div class="progress" role="progressbar" aria-label="Progression de complétion" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
<a href="https://www.cipherbliss.com">CipherBliss EI</a>, membre de la fédération des professionels d'OpenStreetMap, Sources des données : <a href="https://www.openstreetmap.org/">OpenStreetMap</a>. <div class="progress-bar" style="width: 0%"></div>
<br> <a href="https://www.openstreetmap.org/copyright">OpenStreetMap France</a>.
<br> <a href="https://www.openstreetmap.org/copyright">Sources du logiciel.</a>.
</p>
</div> </div>
</div> </div>
</div> </div>
</footer>
</body> <main class="body-landing">
{% block body %}{% endblock %}
</main>
<footer class="main-footer">
<div class="container">
<div class="row mb-4">
<div class="col-12">
{% include 'public/nav.html.twig' %}
</div>
</div>
<div class="row">
<div class="col-12">
<p class="mb-2">OpenStreetMap Mon Commerce</p>
<p class="mb-2">
Licence AGPLv3+, fait par
<a href="https://mastodon.cipherbliss.com/@tykayn">Tykayn</a> de
<a href="https://www.cipherbliss.com">CipherBliss EI</a>,
membre de la fédération des professionels d'OpenStreetMap
</p>
<p class="mb-2">
Sources des données : <a href="https://www.openstreetmap.org/">OpenStreetMap</a>
</p>
<p class="mb-2">
<a href="https://www.openstreetmap.org/copyright">OpenStreetMap France</a>
</p>
<p class="mb-0">
<a href="https://www.openstreetmap.org/copyright">Sources du logiciel</a>
</p>
</div>
</div>
</div>
</footer>
{% block javascripts %} {% block javascripts %}
{{ encore_entry_script_tags('app') }} {{ encore_entry_script_tags('app') }}
<script src="{{ asset('js/main.js') }}"></script>
{% endblock %} {% endblock %}
</body>
</html> </html>

View file

@ -12,6 +12,15 @@
</style> </style>
{% endblock %} {% endblock %}
{% block javascripts %}
{{ parent() }}
<script>
function labourer() {
window.location.href = '/admin/labourer/' + document.getElementById('app_admin_labourer').value;
}
</script>
{% endblock %}
{% block body %} {% block body %}
<div class="container mt-4"> <div class="container mt-4">
<div class="row"> <div class="row">
@ -21,6 +30,10 @@
<div class="col-12"> <div class="col-12">
<h2>Statistiques : {{ stats|length }} commerces</h2> <h2>Statistiques : {{ stats|length }} commerces</h2>
<input class="form-control" type="text" id="app_admin_labourer" value="75013">
<button class="btn btn-default" onclick="labourer() ">Labourer</button>
<table class="table table-hover table-striped table-responsive"> <table class="table table-hover table-striped table-responsive">
<thead> <thead>
<tr> <tr>

View file

@ -11,22 +11,26 @@
.is-invalid { border: 1px solid red; } .is-invalid { border: 1px solid red; }
.is-invalid #validation_messages { color: red; } .is-invalid #validation_messages { color: red; }
img { max-width: 100%; max-height: 400px; } img { max-width: 100%; max-height: 400px; }
@media (max-width: 768px) {
.form-label { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 1rem !important; }
}
</style> </style>
{% endblock %} {% endblock %}
{% block body %} {% block body %}
<div class="container mt-4"> <div class="container-fluid mt-4">
<div class="row"> <div class="row justify-content-center">
<div class="col-12"> <div class="col-12 col-lg-10 col-xl-8">
<div class="card shadow-sm"> <div class="card shadow-sm">
<div class="card-body"> <div class="card-body">
<h1 class="card-title mb-4">{{ 'display.welcome'|trans }} {{ commerce_overpass.tags_converted.name }}</h1> <h1 class="card-title h2 mb-4">{{ 'display.welcome'|trans }} {{ commerce_overpass.tags_converted.name }}</h1>
<div id="map" style="height: 400px; width: 100%;" class="rounded"></div> <div id="map" style="height: 400px; width: 100%;" class="rounded mb-4"></div>
{% if commerce_overpass is not empty %} {% if commerce_overpass is not empty %}
<form action="{{ path('app_public_submit', {'osm_object_id': commerce_overpass['@attributes'].id, 'version': commerce_overpass['@attributes'].version, 'changesetID': commerce_overpass['@attributes'].changeset }) }}" method="post" class="needs-validation"> <form action="{{ path('app_public_submit', {'osm_object_id': commerce_overpass['@attributes'].id, 'version': commerce_overpass['@attributes'].version, 'changesetID': commerce_overpass['@attributes'].changeset }) }}" method="post" class="needs-validation">
<input type="hidden" name="osm_kind" value="{{ osm_kind }}"> <input type="hidden" name="osm_kind" value="{{ osm_kind }}">
<div class="mb-3"> <div class="mb-4">
<label for="commerce_id" class="form-label">{{ 'display.modify_commerce'|trans }}: <label for="commerce_id" class="form-label">{{ 'display.modify_commerce'|trans }}:
<strong> <strong>
{% if commerce_overpass.tags_converted.name is defined %} {% if commerce_overpass.tags_converted.name is defined %}
@ -38,20 +42,21 @@
{% endif %} {% endif %}
</strong> </strong>
</label> </label>
<br/> <div class="mt-2">
<a class="btn btn-info" href="{{ path('app_public_index') }}">{{ 'display.contact_humans'|trans }}</a> <a class="btn btn-info" href="{{ path('app_public_index') }}">{{ 'display.contact_humans'|trans }}</a>
</div>
</div> </div>
{% if commerce.tags_converted.image is defined %} {% if commerce.tags_converted.image is defined %}
<img class="img-fluid mb-3" src="{{ commerce.tags_converted.image }}" alt="Image du lieu"> <img class="img-fluid mb-4" src="{{ commerce.tags_converted.image }}" alt="Image du lieu">
{% endif %} {% endif %}
<h2>{{ 'display.attributes'|trans }}</h2> <h2 class="h3 mb-3">{{ 'display.attributes'|trans }}</h2>
<div class="row mb-3"> <div class="row g-3 mb-4">
<div class="col-md-5"> <div class="col-12 col-md-4">
<label for="commerce_tag_value__name">{{'display.keys.name'|trans}}</label> <label for="commerce_tag_value__name" class="form-label">{{'display.keys.name'|trans}}</label>
</div> </div>
<div class="col-md-5"> <div class="col-12 col-md-8">
<input type="text" class="form-control" name="commerce_tag_value__name" value="{% if commerce_overpass.tags_converted.name is defined %}{{ commerce_overpass.tags_converted.name }}{% elseif commerce_overpass['@attributes'].name is defined %}{{ commerce_overpass['@attributes'].name }}{% endif %}"> <input type="text" class="form-control" name="commerce_tag_value__name" value="{% if commerce_overpass.tags_converted.name is defined %}{{ commerce_overpass.tags_converted.name }}{% elseif commerce_overpass['@attributes'].name is defined %}{{ commerce_overpass['@attributes'].name }}{% endif %}">
</div> </div>
</div> </div>
@ -63,14 +68,9 @@
{% include 'public/edit/address.html.twig' %} {% include 'public/edit/address.html.twig' %}
{% endif %} {% endif %}
{% if hide_filled_inputs and (commerce_overpass.tags_converted.opening_hours) is defined and commerce_overpass.tags_converted.opening_hours is empty %} {% if hide_filled_inputs and (commerce_overpass.tags_converted.opening_hours) is defined and commerce_overpass.tags_converted.opening_hours is empty %}
{% include 'public/edit/opening_hours.html.twig' %} {% include 'public/edit/opening_hours.html.twig' %}
{% endif %} {% endif %}
{% if (commerce_overpass.tags_converted.wheelchair) is defined %}
{{ dump(commerce_overpass.tags_converted.wheelchair) }}
{% endif %}
{% if hide_filled_inputs and (commerce_overpass.tags_converted.wheelchair) is defined and commerce_overpass.tags_converted.wheelchair is empty %} {% if hide_filled_inputs and (commerce_overpass.tags_converted.wheelchair) is defined and commerce_overpass.tags_converted.wheelchair is empty %}
{% include 'public/edit/wheelchair.html.twig' %} {% include 'public/edit/wheelchair.html.twig' %}
@ -81,33 +81,43 @@
{% include 'public/edit/tags.html.twig' %} {% include 'public/edit/tags.html.twig' %}
<div id="validation_messages"></div> <div id="validation_messages" class="alert alert-danger d-none"></div>
<button type="submit" class="btn btn-primary"> <div class="d-grid gap-2 d-md-flex justify-content-md-end mt-4">
<i class="bi bi-send"></i> <button type="submit" class="btn btn-primary col-12 col-md-5">
{{ 'display.submit'|trans }} <i class="bi bi-send"></i>
</button> {{ 'display.submit'|trans }}
</button>
</div>
</form> </form>
{% endif %} {% endif %}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row justify-content-center mt-4">
<div class="col-12"> <div class="col-12 col-lg-10 col-xl-8">
<span class="p-4"> <div class="card">
<span class="last-modification">{{ 'display.last_modification'|trans }}: {{ commerce_overpass['@attributes'].timestamp }}</span>, <div class="card-body">
<strong>{{ 'display.days_ago'|trans({'%days%': date(commerce_overpass['@attributes'].timestamp).diff(date()).days}) }}</strong> <div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between">
{{ 'display.by'|trans }} <div class="mb-3 mb-md-0">
<a href="https://www.openstreetmap.org/user/{{ commerce_overpass['@attributes'].user }}" target="_blank">{{ commerce_overpass['@attributes'].user }}</a> <span class="last-modification">{{ 'display.last_modification'|trans }}: {{ commerce_overpass['@attributes'].timestamp }}</span>,
<div class="lien-OpenStreetMap"> <strong>{{ 'display.days_ago'|trans({'%days%': date(commerce_overpass['@attributes'].timestamp).diff(date()).days}) }}</strong>
<a href="https://www.openstreetmap.org/node/{{ commerce_overpass['@attributes'].id }}" target="_blank">{{ 'display.view_on_osm'|trans }}</a> {{ 'display.by'|trans }}
<a href="https://www.openstreetmap.org/user/{{ commerce_overpass['@attributes'].user }}" target="_blank">{{ commerce_overpass['@attributes'].user }}</a>
</div>
<div class="lien-OpenStreetMap">
<a href="https://www.openstreetmap.org/node/{{ commerce_overpass['@attributes'].id }}" target="_blank" class="btn btn-outline-secondary">
{{ 'display.view_on_osm'|trans }}
</a>
</div>
</div>
<div class="disclaimer mt-3 p-3 bg-light rounded">
<p class="mb-0">
<strong>{{ 'display.disclaimer.title'|trans }}:</strong>
{{ 'display.disclaimer.text'|trans }}
</p>
</div>
</div> </div>
</span>
<div class="disclaimer p-3">
<p>
<strong>{{ 'display.disclaimer.title'|trans }}:</strong>
{{ 'display.disclaimer.text'|trans }}
</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -20,25 +20,26 @@
<h1> <h1>
<i class="bi bi-shop"></i> Mon Commerce OSM <i class="bi bi-shop"></i> Mon Commerce OSM
</h1> </h1>
<p> <p class="mt-4 p-4">
Bonjour, ce site permet de modifier les informations de votre commerce sur OpenStreetMap afin de gagner en visibilité sur des milliers de sites web à la fois en une minute, c'est gratuit et sans engagement. Nous sommes bénévoles dans une association à but non lucratif. Bonjour, ce site permet de modifier les informations de votre commerce sur OpenStreetMap afin de gagner en visibilité sur des milliers de sites web à la fois en une minute, c'est gratuit et sans engagement.
<br> <br>Nous sommes bénévoles dans une association à but non lucratif.
Nous vous enverrons un lien unique pour cela par email, et si vous en avez besoin, nous pouvons vous aider. <br>Nous vous enverrons un lien unique pour cela par email, et si vous en avez besoin, nous pouvons vous aider.
</p> </p>
<p> <p>
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<label class="input-group-text" for="researchShop">Rechercher un commerce, écrivez son nom et la ville <label class="label" for="researchShop"><i class="bi bi-search bi-2x"></i> Rechercher un commerce, écrivez son nom et la ville
<i class="bi bi-search"></i> <input class="form-control" type="text" id="researchShop" placeholder="Rechercher un commerce">
</label> </label>
<input class="form-control" type="text" id="researchShop" placeholder="Mon commerce, Paris">
</div> </div>
</div> </div>
<div id="resultsList"></div> <div id="resultsList"></div>
<div id="proposeLink"></div> <div id="proposeLink" class="d-none"></div>
<div id="proposeMail"> <div id="proposeMail" class="d-none">
<input type="email" id="emailInput" class="form-control" placeholder="mon_email_de_commerce@exemple.com"> <input type="email" id="emailInput" class="form-control" placeholder="mon_email_de_commerce@exemple.com">
<button type="submit" class="btn btn-primary p-4 d-block"> <i class="bi bi-envelope"></i> Envoyer</button> <button type="submit" class="btn btn-primary p-4 d-block"> <i class="bi bi-envelope"></i> Envoyer</button>
@ -62,13 +63,13 @@
// Créer les divs pour les messages // Créer les divs pour les messages
const proposeLinkHtml = ` const proposeLinkHtml = `
<div id="proposeLink" class="alert alert-success"> <div id="proposeLink" class="alert alert-success ">
Un email a déjà été enregistré pour ce commerce. Nous vous enverrons le lien de modification. Un email a déjà été enregistré pour ce commerce. Nous vous enverrons le lien de modification.
</div> </div>
`; `;
const proposeMailHtml = ` const proposeMailHtml = `
<div id="proposeMail" class="alert alert-info"> <div id="proposeMail" class="alert alert-info " >
Aucun email n'est enregistré pour ce commerce. Veuillez saisir votre email pour recevoir le lien de modification. Aucun email n'est enregistré pour ce commerce. Veuillez saisir votre email pour recevoir le lien de modification.
${emailFormHtml} ${emailFormHtml}
</div> </div>

View file

@ -1,6 +1,6 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block title %}{{ 'display.title'|trans }}{% endblock %} {% block title %}{{ 'display.title'|trans }} - accueil{% endblock %}
{% block stylesheets %} {% block stylesheets %}
{{ parent() }} {{ parent() }}
@ -8,7 +8,7 @@
<style> <style>
.hidden { .hidden {
display: none; display: none;
} }
</style> </style>
{% endblock %} {% endblock %}

View file

@ -6,13 +6,19 @@
<div class="collapse navbar-collapse" id="navbarNav"> <div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="{{ path('app_public_index') }}">{{ 'display.home'|trans }}</a> <a class="nav-link active" href="{{ path('app_public_index') }}">
<i class="bi bi-house-fill"></i>
{{ 'display.home'|trans }}</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{{ path('app_public_dashboard') }}">{{ 'display.stats'|trans }}</a> <a class="nav-link" href="{{ path('app_public_dashboard') }}">
<i class="bi bi-bar-chart-fill"></i>
{{ 'display.stats'|trans }}</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="https://openstreetmap.fr/contact/">{{ 'display.contact_humans'|trans }}</a> <a class="nav-link" href="https://openstreetmap.fr/contact/">
<i class="bi bi-envelope-fill"></i>
{{ 'display.contact_humans'|trans }}</a>
</li> </li>
</ul> </ul>
</div> </div>

View file

@ -2,7 +2,7 @@ display:
title: "OSM Mon Commerce" title: "OSM Mon Commerce"
home: "Accueil" home: "Accueil"
stats: "Statistiques" stats: "Statistiques"
contact_humans: "Contacter des humains d'OSM France pour m'aider" contact_humans: "Contacter les membres d'OSM France pour m'aider"
modify: "Modifier" modify: "Modifier"
welcome: "Modifier ce lieu:" welcome: "Modifier ce lieu:"
modify_commerce: "Modifier votre commerce" modify_commerce: "Modifier votre commerce"