mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
up wiki land
This commit is contained in:
parent
391a212034
commit
e533c273b2
10 changed files with 1116 additions and 182 deletions
|
@ -96,26 +96,103 @@
|
|||
</div>
|
||||
<div class="card-body">
|
||||
{% if local_groups|length > 0 %}
|
||||
<!-- Filtres -->
|
||||
<div class="mb-4">
|
||||
<div class="btn-group" role="group" aria-label="Filtres">
|
||||
<button type="button" class="btn btn-outline-primary active filter-btn" data-filter="all">Tous</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="wiki">Wiki</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="framacalc">Framacalc</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="has-wiki">Avec page wiki</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="no-wiki">Sans page wiki</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">
|
||||
{% for group in local_groups %}
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
{% set source = group.source|default('wiki') %}
|
||||
{% set has_wiki = group.has_wiki_page|default(true) %}
|
||||
{% set filter_classes = source ~ ' ' ~ (has_wiki ? 'has-wiki' : 'no-wiki') %}
|
||||
|
||||
<div class="col group-item {{ filter_classes }}">
|
||||
<div class="card h-100 {% if source == 'framacalc' and not has_wiki %}border-danger{% endif %}">
|
||||
{% if source == 'framacalc' %}
|
||||
<div class="card-header bg-light">
|
||||
<span class="badge bg-secondary">Framacalc</span>
|
||||
{% if has_wiki %}
|
||||
<span class="badge bg-success">Page wiki</span>
|
||||
{% else %}
|
||||
<span class="badge bg-danger">Pas de page wiki</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ group.name }}</h5>
|
||||
{% if group.description %}
|
||||
<p class="card-text">{{ group.description }}</p>
|
||||
{% endif %}
|
||||
|
||||
{% if source == 'framacalc' and group.contact %}
|
||||
<p class="card-text"><small class="text-muted">Contact: {{ group.contact }}</small></p>
|
||||
{% endif %}
|
||||
|
||||
{% if source == 'framacalc' and group.website %}
|
||||
<p class="card-text">
|
||||
<a href="{{ group.website }}" target="_blank" class="btn btn-sm btn-outline-secondary">
|
||||
<i class="bi bi-globe"></i> Site web
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<a href="{{ group.url }}" target="_blank"
|
||||
class="btn btn-sm btn-outline-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir sur le wiki
|
||||
</a>
|
||||
{% if source == 'wiki' or has_wiki %}
|
||||
<a href="{{ group.url }}" target="_blank"
|
||||
class="btn btn-sm btn-outline-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir sur le wiki
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="https://wiki.openstreetmap.org/wiki/Special:Search?search={{ group.name|url_encode }}"
|
||||
target="_blank" class="btn btn-sm btn-outline-danger">
|
||||
<i class="bi bi-search"></i> Rechercher sur le wiki
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<!-- JavaScript pour les filtres -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const filterButtons = document.querySelectorAll('.filter-btn');
|
||||
const groupItems = document.querySelectorAll('.group-item');
|
||||
|
||||
filterButtons.forEach(button => {
|
||||
button.addEventListener('click', function() {
|
||||
// Remove active class from all buttons
|
||||
filterButtons.forEach(btn => btn.classList.remove('active'));
|
||||
|
||||
// Add active class to clicked button
|
||||
this.classList.add('active');
|
||||
|
||||
const filter = this.getAttribute('data-filter');
|
||||
|
||||
// Show/hide items based on filter
|
||||
groupItems.forEach(item => {
|
||||
if (filter === 'all') {
|
||||
item.style.display = 'block';
|
||||
} else {
|
||||
if (item.classList.contains(filter)) {
|
||||
item.style.display = 'block';
|
||||
} else {
|
||||
item.style.display = 'none';
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% else %}
|
||||
<div class="alert alert-info">
|
||||
<p><i class="bi bi-info-circle"></i> Aucun groupe local n'a été trouvé.</p>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue