diff --git a/app/assets/stylesheets/form.sass b/app/assets/stylesheets/form.sass
index f7178dbe..7630e0fc 100644
--- a/app/assets/stylesheets/form.sass
+++ b/app/assets/stylesheets/form.sass
@@ -1,18 +1,19 @@
@import font-awesome-sprockets
@import font-awesome
-.events form, .moderations form, .orgas, .digests form
+.events form, .moderations form, .orgas, .digests form, .filter form
.field, .actions
max-width: 70em
text-align: left
margin-left: auto
margin-right: auto
- .helper p
+ .helper
color: gray
- margin: 0
font-style: italic
- margin-left: 8em
- padding-left: 0.4em
+ p
+ margin: 0
+ margin-left: 8em
+ padding-left: 0.4em
label
width: 8em
display: inline-block
@@ -89,6 +90,19 @@
.field.feed label:before, th.feed:before
content: $fa-var-rss
+ .field.future label:before
+ content: $fa-var-backward
+ .field.period_year label:before
+ content: $fa-var-fast-backward
+ .field.period_week label:before
+ content: $fa-var-step-backward
+ .field.near_location label:before
+ content: $fa-var-dot-circle-o
+ .field.near_distance label:before
+ content: $fa-var-arrows-h
+ .field.iframe label:before
+ content: $fa-var-arrows-alt
+
.field .radios label
width: auto !important
margin-right: 1em
diff --git a/app/views/application/filter.haml b/app/views/application/filter.haml
index 8c886292..cdf9c9f6 100644
--- a/app/views/application/filter.haml
+++ b/app/views/application/filter.haml
@@ -1,9 +1,86 @@
-= form_for :event do |f|
- .field.tag
- = f.label :tag
- = f.text_field :tag
+%h2
+ %em.fa.fa-filter
+ = title t('.title')
+
+:markdown
+ #{t '.helper'}
+
+= form_tag events_url, method: :get do
+ .field.future
+ = label_tag :future, t('.past')
+ = check_box_tag :future, :false
+ %span.helper= t '.past_helper'
+
+ .field.period_year
+ .helper
+ :markdown
+ #{t '.period_year_helper'}
+ = label_tag 'period[year]', t('.period_year')
+ = number_field_tag 'period[year]', (Time.zone.today + 7.days).year
+
+ .field.period_week
+ = label_tag 'period[week]', t('.period_week')
+ = number_field_tag 'period[week]', (Time.zone.today + 7.days).cweek
+
+ .field.near_location
+ = label_tag 'near[location]', t('.near_location')
+ = text_field_tag 'near[location]', params['near[location]'],
+ placeholder: t('.near_location_helper')
+
+ .field.near_distance
+ = label_tag 'near[distance]', t('.near_distance')
+ = number_field_tag 'near[distance]', params['near[distance]'],
+ placeholder: t('.near_distance_helper')
+ km
+
+ .field.region
+ = label_tag :region, t('.region')
+ = select_tag :region,
+ options_from_collection_for_select(Region.all, :id, :name),
+ include_blank: true
+
+ .field.tags
+ = label_tag :tag, t('.tag')
+ = text_field_tag :tag
+
+ .field.iframe
+ = label_tag :iframe, t('.iframe')
+ = check_box_tag :iframe, :false
+ %span.helper= t '.iframe_helper'
.actions
- = f.button do
- %em.fa.fa-check
- = t '.filter'
+ = button_tag do
+ %em.fa.fa-calendar
+ = t '.events'
+
+ = button_tag formaction: maps_url do
+ %em.fa.fa-map-marker
+ = t '.map'
+
+ = button_tag formaction: maps_url(format: :json) do
+ %em.fa.fa-map-pin
+ = t '.geojson'
+
+ = button_tag formaction: events_url(format: :json) do
+ %em.fa {}
+ = t '.json'
+
+ = button_tag formaction: events_url(format: :rss) do
+ %em.fa.fa-rss
+ = t '.rss'
+
+ = button_tag formaction: events_url(format: :ics) do
+ %em.fa.fa-calendar-check-o
+ = t '.ics'
+
+ = button_tag formaction: events_url(format: :xml) do
+ %em.fa.fa-code
+ = t '.xml'
+
+ = button_tag formaction: orgas_url do
+ %em.fa.fa-users
+ = t '.orgas'
+
+ = button_tag formaction: digest_url(:markdown) do
+ %em.fa.fa-hashtag
+ = t '.digest'
diff --git a/app/views/events/index.html.haml b/app/views/events/index.html.haml
index 69b65058..dac189e7 100644
--- a/app/views/events/index.html.haml
+++ b/app/views/events/index.html.haml
@@ -1,5 +1,4 @@
= render '/orgas/search'
-= render '/regions/selector'
- if params[:year]
-# Whole year calendar
diff --git a/app/views/orgas/index.html.haml b/app/views/orgas/index.html.haml
index c32a660e..6059a29b 100644
--- a/app/views/orgas/index.html.haml
+++ b/app/views/orgas/index.html.haml
@@ -1,5 +1,4 @@
= render 'search'
-= render '/regions/selector'
%h2
%em.fa.fa-users
diff --git a/app/views/regions/_selector.haml b/app/views/regions/_selector.haml
deleted file mode 100644
index 8c5cc1a3..00000000
--- a/app/views/regions/_selector.haml
+++ /dev/null
@@ -1,41 +0,0 @@
-%nav.region_selector
- -# Display the currently selected region
- %h3
- - if params[:region] && params[:region] != 'all'
- %em.locality.fa.fa-shield
- = Region.find params[:region]
- %em.fa.fa-chevron-down
- - elsif params[:locality]
- %span.placeholder
- %em.locality.fa.fa-globe
- = t '.national'
- %em.fa.fa-chevron-down
- - else
- %span.placeholder
- %em.locality.fa.fa-globe
- = t '.all_regions'
- %em.fa.fa-chevron-down
-
- -# Choose a region to filter events with
- %ul
- %li
- = link_to t('.all_regions'), region: nil,
- start_date: params[:start_date],
- year: params[:year],
- tag: params[:tag]
-
- - Region.pluck(:id, :name).each do |id, name|
- %li
- = link_to name, region: id,
- start_date: params[:start_date],
- year: params[:year],
- tag: params[:tag]
-
- - unless controller.class == OrgasController
- %li
- = link_to locality: 1,
- start_date: params[:start_date],
- year: params[:year],
- tag: params[:tag] do
- %em.fa.fa-globe
- = t '.national'
diff --git a/config/locales/views/en.yml b/config/locales/views/en.yml
index d16eb7e4..251aa7e1 100644
--- a/config/locales/views/en.yml
+++ b/config/locales/views/en.yml
@@ -418,3 +418,16 @@ reason:
update_html:
destroy_html:
feed: RSS feed
+
+ application:
+ filter:
+ title: Advanced filtering
+ helper: Parameters can be used in the agenda, for consultation or integration in another website
+ past: Past
+ period_year: Year
+ period_week: Week
+ near_location: Near
+ near_distance: Distance
+ region: Region
+ tag: Tag
+ iframe: Borderless
diff --git a/config/locales/views/fr.yml b/config/locales/views/fr.yml
index 9304b12e..a37eaea9 100644
--- a/config/locales/views/fr.yml
+++ b/config/locales/views/fr.yml
@@ -42,8 +42,8 @@ fr:
copy: Dupliquer événement
at: À
dateAndPlace: Date et lieu
- noMap: Aucune carte OpenStreetMap n'a pu être associée à cette adresse.
- Vous pouvez tester d'autres syntaxes ici
+ noMap: Aucune carte n'a pu être associée à cette adresse. Vous pouvez
+ tester d'autres syntaxes ici
description: Description
infos: Informations
actions: Actions
@@ -85,8 +85,8 @@ fr:
description_helper: Décrivez de la manière la plus complète possible
votre événement
address_helper: "*Associée à la ville et la région, elle générera une
- carte [OpenStreetMap](http://www.openstreetmap.org), affichée aux côtés
- de l'événement*"
+ [carte](http://www.openstreetmap.org), affichée aux côtés de
+ l'événement*"
url_helper: Lien **direct** vers une page donnant plus d'informations sur
l'événement
contact_helper: Adresse e-mail de contact, affichée de manière peu
@@ -115,13 +115,13 @@ fr:
national: Événements nationaux
index:
title: Liste des flux
- quick: Chaque flux liste les évènements pour les 30 prochains jours dans
+ quick: Chaque flux liste les événements pour les 30 prochains jours dans
une région donnée
help: "Quelques fonctionnalités intéressantes à l'aide de paramètres:\n
\n
- * `tag`: limiter les évènements à un certain tag. Cela permet par
- exemple de récupérer un flux des évènements d'une organisation, à
- partir du moment où vous pensez à marquer tous vos évènements avec un
+ * `tag`: limiter les événements à un certain tag. Cela permet par
+ exemple de récupérer un flux des événements d'une organisation, à
+ partir du moment où vous pensez à marquer tous vos événements avec un
tag précis. \n
Exemple: `%{tag}`\n
* `daylimit`: limiter les énévenements futurs à un certain nombre de
@@ -149,7 +149,7 @@ fr:
tags:
index:
title: Mots-clés
- limited: Seuls les mots-clés portants sur plus de trois évènements sont
+ limited: Seuls les mots-clés portants sur plus de trois événements sont
affichés dans cette liste
show:
links: Voir aussi
@@ -272,8 +272,8 @@ description plus complète."
ok: L'organisation a été mise à jour
form:
address_helper: "*Associée à la ville et la région, elle générera une
- carte [OpenStreetMap](http://www.openstreetmap.org), affichée aux côtés
- de l'organisation*"
+ [carte](http://www.openstreetmap.org), affichée aux côtés de
+ l'organisation*"
url_helper: Lien vers le site web de l'organisation
feed_helper: Lien **direct** vers un flux de syndication, type RSS ou atom
contact_helper: Adresse e-mail de contact, affichée de manière peu
@@ -303,7 +303,7 @@ description plus complète."
digests:
markdown:
title: Agenda du Libre pour la semaine %{week} de l'année %{year}
- week: Calendrier web, regroupant des évènements liés au Libre (logiciel, salon, atelier, install party, conférence) en France, annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces %{count} événements est en seconde partie de dépêche.
+ week: Calendrier web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence) en France, annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces %{count} événements est en seconde partie de dépêche.
devise:
sessions:
@@ -422,3 +422,30 @@ l'adresse:"
update_html:
destroy_html:
feed: Flux RSS
+
+ application:
+ filter:
+ title: Filtrage avancé
+ helper: Plusieurs paramètres sont prévus dans l'agenda, en consultation ou pour l'intégrer à un autre site
+ past: Passés
+ past_helper: Inclure aussi les événements passés dans les flux RSS, carte et geojson
+ period_year: Année
+ period_year_helper: Pour définir la semaine/année du résumé
+ period_week: Semaine
+ near_location: Près de
+ near_location_helper: ville ou lieu géographique
+ near_distance: Distance
+ near_distance_helper: du lieu
+ region: Région
+ tag: Mot-clé
+ iframe: Sans cadre
+ iframe_helper: Supprime l'en-tête et bas de page, pour intégration dans une iframe
+ events: Agenda
+ map: Carte
+ geojson: GeoJSON
+ json: JSON
+ rss: RSS
+ ics: iCal
+ xml: XML
+ digest: Résumé
+ orgas: Orgas