diff options
| author | Michel Etienne | 2012-05-02 15:09:10 +0200 |
|---|---|---|
| committer | Michel Etienne | 2012-05-02 15:09:10 +0200 |
| commit | 14094a6e94a6cad6756cde3b47beb0283a4a8d08 (patch) | |
| tree | 2331872f3cf76f45bf261526c375c337b0ea82af | |
| parent | cd1ed3b45ff11cdac5e04f2254c56c5cda2f4deb (diff) | |
| download | chouette-core-14094a6e94a6cad6756cde3b47beb0283a4a8d08.tar.bz2 | |
manage stop areas for connection links
| -rw-r--r-- | Gemfile.lock | 2 | ||||
| -rw-r--r-- | app/assets/stylesheets/connection_links.css.scss | 14 | ||||
| -rw-r--r-- | app/assets/stylesheets/layout.css.scss | 4 | ||||
| -rw-r--r-- | app/controllers/connection_link_areas_controller.rb | 21 | ||||
| -rw-r--r-- | app/controllers/connection_links_controller.rb | 11 | ||||
| -rw-r--r-- | app/views/connection_links/select_areas.html.erb | 40 | ||||
| -rw-r--r-- | app/views/connection_links/show.html.erb | 7 | ||||
| -rw-r--r-- | app/views/help/index.textile | 4 | ||||
| -rw-r--r-- | app/views/help/stop_areas.textile | 17 | ||||
| -rw-r--r-- | config/locales/connection_links.yml | 22 | ||||
| -rw-r--r-- | config/routes.rb | 11 |
11 files changed, 143 insertions, 10 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index 7a355d4ea..5a369b338 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: git://chouette.dryade.priv/ninoxe - revision: 341789ef66979138d36469284339e3076cb5fe87 + revision: 2ac65f975c031bc6c1d69b6e9f2965c0484f2279 specs: ninoxe (0.0.8) GeoRuby diff --git a/app/assets/stylesheets/connection_links.css.scss b/app/assets/stylesheets/connection_links.css.scss index e3aedc918..e50145022 100644 --- a/app/assets/stylesheets/connection_links.css.scss +++ b/app/assets/stylesheets/connection_links.css.scss @@ -36,5 +36,19 @@ } } +#workspace.connection_links.select_departure +{ + .token-input-list{ + display: inline-block; + } +} + +#workspace.connection_links.select_arrival +{ + .token-input-list{ + display: inline-block; + } +} + diff --git a/app/assets/stylesheets/layout.css.scss b/app/assets/stylesheets/layout.css.scss index 21640e266..80506e78a 100644 --- a/app/assets/stylesheets/layout.css.scss +++ b/app/assets/stylesheets/layout.css.scss @@ -44,4 +44,8 @@ $text_color: #222; a.select_parent { background: url(image-path('icons/select_parent.png')) no-repeat; } + + a.select_areas { + background: url(image-path('icons/select_parent.png')) no-repeat; + } }
\ No newline at end of file diff --git a/app/controllers/connection_link_areas_controller.rb b/app/controllers/connection_link_areas_controller.rb new file mode 100644 index 000000000..40f029801 --- /dev/null +++ b/app/controllers/connection_link_areas_controller.rb @@ -0,0 +1,21 @@ +class ConnectionLinkAreasController < ChouetteController + + respond_to :json, :only => :index + + def index + respond_to do |format| + format.json { render :json => areas_maps } + end + end + + def areas_maps + areas.collect do |area| + { :id => area.id.to_s, :name => "#{area.name} #{area.country_code}" } + end + end + + def areas + referential.connection_links.find(params[:connection_link_id]).possible_areas.select{ |p| p.name =~ /#{params[:q]}/i } + end + +end diff --git a/app/controllers/connection_links_controller.rb b/app/controllers/connection_links_controller.rb index 327fb7989..8790426f7 100644 --- a/app/controllers/connection_links_controller.rb +++ b/app/controllers/connection_links_controller.rb @@ -2,14 +2,21 @@ class ConnectionLinksController < ChouetteController defaults :resource_class => Chouette::ConnectionLink belongs_to :referential do - #belongs_to :departure, :parent_class => Chouette::StopArea, :optional => false - #belongs_to :arrival, :parent_class => Chouette::StopArea, :optional => false + belongs_to :departure, :parent_class => Chouette::StopArea, :optional => true + belongs_to :arrival, :parent_class => Chouette::StopArea, :optional => true end respond_to :html, :xml, :json + def select_areas + @connection_link = connection_link + @departure = connection_link.departure + @arrival = connection_link.arrival + end protected + + alias_method :connection_link, :resource def collection @q = referential.connection_links.search(params[:q]) diff --git a/app/views/connection_links/select_areas.html.erb b/app/views/connection_links/select_areas.html.erb new file mode 100644 index 000000000..49e1ec623 --- /dev/null +++ b/app/views/connection_links/select_areas.html.erb @@ -0,0 +1,40 @@ +<%= title_tag t('connection_links.select_areas.title', :connection_link => @connection_link.name ) %> + +<%= semantic_form_for [@referential, @connection_link] do |form| %> +<div> + <%= form.inputs do %> + <%= form.input :departure_id, :as => :text, :input_html => { :"data-pre" => ( @departure.present? ? [ { :id => @departure.id.to_s, :name => "#{@departure.name} #{@departure.country_code}" } ]: [] ).to_json } %> + <%= form.input :arrival_id, :as => :text, :input_html => { :"data-pre" => ( @arrival.present? ? [ { :id => @arrival.id.to_s, :name => "#{@arrival.name} #{@arrival.country_code}" } ]: [] ).to_json } %> + <% end %> + + <%= form.buttons do %> + <%= form.commit_button %> + ou <%= link_to "revenir", [@referential, @connection_link] %> + <% end %> +</div> +<% end %> + +<script> + $(function() { + $( "#connection_link_departure_id" ).tokenInput('<%= referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json) %>', { + crossDomain: false, + prePopulate: $('#connection_link_departure_id').data('pre'), + tokenLimit: 1, + minChars: 3, + }); + }); + + $(function() { + $( "#connection_link_arrival_id" ).tokenInput('<%= referential_connection_link_connection_link_areas_path(@referential, @connection_link, :format => :json) %>', { + crossDomain: false, + prePopulate: $('#connection_link_arrival_id').data('pre'), + tokenLimit: 1, + minChars: 3, + }); + }); +</script> + +<% content_for :sidebar do %> +<ul class="actions"> +</ul> +<% end %> diff --git a/app/views/connection_links/show.html.erb b/app/views/connection_links/show.html.erb index 69aad91ea..c81159191 100644 --- a/app/views/connection_links/show.html.erb +++ b/app/views/connection_links/show.html.erb @@ -49,7 +49,12 @@ <% content_for :sidebar do %> <ul class="actions"> <li><%= link_to t('connection_links.actions.edit'), edit_referential_connection_link_path(@referential, @connection_link), :class => "edit" %></li> - <li><%= link_to t('connection_links.actions.destroy'), referential_connection_link_path(@referential, @connection_link), :method => :delete, :confirm => t('connection_links.actions.destroy_confirm'), :class => "remove" %></li> + <li><%= link_to t('connection_links.actions.destroy'), referential_connection_link_path(@referential, @connection_link), :method => :delete, :confirm => t('connection_links.actions.destroy_confirm'), :class => "remove" %></li> +<!-- + <li><%= link_to t('connection_links.actions.select_departure'), select_departure_referential_connection_link_path(@referential, @connection_link), :class => "select_departure" %></li> + <li><%= link_to t('connection_links.actions.select_arrival'), select_arrival_referential_connection_link_path(@referential, @connection_link), :class => "select_arrival" %></li> +--> + <li><%= link_to t('connection_links.actions.select_areas'), select_areas_referential_connection_link_path(@referential, @connection_link), :class => "select_areas" %></li> <br> </ul> <% end %> diff --git a/app/views/help/index.textile b/app/views/help/index.textile index a5e488cca..4d30f2e46 100644 --- a/app/views/help/index.textile +++ b/app/views/help/index.textile @@ -26,6 +26,8 @@ les action suivantes ne sont pas encore disponible : * afficher le fond Géoportail * ajouter ou supprimer des dates et des périodes aux calendriers -* associer des arrêts à une séquences d'arrêts +* associer des arrêts à une séquences d'arrêts +* ajouter des fils à un arrêt * associer une ITL à une ligne +* affichage de la carte des arrêts d'une correspondance diff --git a/app/views/help/stop_areas.textile b/app/views/help/stop_areas.textile index 94b73c574..3fff6c6e3 100644 --- a/app/views/help/stop_areas.textile +++ b/app/views/help/stop_areas.textile @@ -3,7 +3,11 @@ layout: default title: Arrêts --- -h3. Définition +* "Définition":#def +* "Attributs":#attr +* "Mode opératoire":#ope + +h3(#def). Définition Le référentiel des arrêts constitue un maillon essentiel du réseau, et se compose de plusieurs éléments de niveaux différents. @@ -33,7 +37,7 @@ Ainsi dans CHOUETTE: * Une ITL est un regroupement d'arrêts représentant le périmètre d'interdiction. * Une ITL est associée à une ou plusieurs lignes -h3. Attributs +h3(#attr). Attributs - Type d'arrêt := catégorie de l'arrêt @@ -74,7 +78,12 @@ il est possible aussi de ne renseigner que l'identifiant technique auquel cas la - Version := version de l'objet (auto incrémenté à chaque modification) - Créé par := compte utilisateur ayant procédé à la dernière modification -h3. Implémentation +h3(#ope). Mode opératoire + +h4. Déplacement sur la carte -p. TODO +* activer le déplacement en cliquant sur l'arrêt -> le curseur prend la forme d'une quadruple flêche +* appuyer sur le bouton gauche de la souris et maintenir appuyer lors du déplacement -> l'arrêt suit la souris +* relacher le bouton -> l'arrêt a une nouvelle position fixe +* cliquer sur la carte -> sortie du mode déplacement; les coordonnées sont actualisées dans le formulaire diff --git a/config/locales/connection_links.yml b/config/locales/connection_links.yml index 15463e47c..387a205be 100644 --- a/config/locales/connection_links.yml +++ b/config/locales/connection_links.yml @@ -5,6 +5,9 @@ en: edit: Edit this connection link destroy: Remove this liconnection linkne destroy_confirm: Are you sure you want destroy this connection link? + select_departure: Select start of link + select_arrival: Select end of link + select_areas: "Select stop areas" new: title: Add a new connection link edit: @@ -18,6 +21,12 @@ en: arrival: End of link selection: Selection selection_all: All + select_departure: + title: Select start stop area for %{connection_link} + select_arrival: + title: Select end stop area for %{connection_link} + select_areas: + title: "Select start and end stops for %{connection_link}" activerecord: models: connection_link: Connection link @@ -25,6 +34,8 @@ en: connection_link: departure: Start of link arrival: End of link + departure_id: Start of link + arrival_id: End of link undefined: not yet set name: Name comment: Comment @@ -53,6 +64,9 @@ fr: edit: Modifier cette correspondance destroy: Supprimer cette correspondance destroy_confirm: Etes vous sûr de détruire cette correspondance ? + select_departure: "Sélectionner l'arrêt de départ" + select_arrival: "Sélectionner l'arrêt d'arrivée" + select_areas: "Sélectionner les arrêts" new: title: Ajouter une correspondance edit: @@ -66,6 +80,12 @@ fr: arrival: "Arrêt d'arrivée" selection: Sélection selection_all: Tous + select_departure: + title: "Sélection de l'arrêt de départ de %{connection_link}" + select_arrival: + title: "Sélection de l'arrêt d'arrivée de %{connection_link}" + select_areas: + title: "Sélection des arrêts de départ et d'arrivée de %{connection_link}" activerecord: models: connection_link: Correspondance @@ -73,6 +93,8 @@ fr: connection_link: departure: Arrêt de départ arrival: "Arrêt d'arrivée" + departure_id: Arrêt de départ + arrival_id: "Arrêt d'arrivée" undefined: non défini name: Nom comment: Commentaire diff --git a/config/routes.rb b/config/routes.rb index 4e7bebfc2..eb7af8b9c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -26,7 +26,7 @@ ChouetteIhm::Application.routes.draw do resources :routes end - resources :companies, :stop_areas, :connection_links + resources :companies, :stop_areas resources :time_tables do resources :time_table_dates @@ -41,6 +41,15 @@ ChouetteIhm::Application.routes.draw do end end + resources :connection_links do + resources :connection_link_areas + member do + get 'select_departure' + get 'select_arrival' + get 'select_areas' + end + end + end match '/help/(*slug)' => 'help#show' |
