From c203a4b6d3d07928ad4ef41116d38873b9ac5820 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Wed, 23 May 2012 18:28:43 +0200 Subject: Add jruby-rack-worker to run workers. Fixes #37 --- app/models/import.rb | 2 +- app/models/referential.rb | 37 ++++--------------------------------- 2 files changed, 5 insertions(+), 34 deletions(-) (limited to 'app') diff --git a/app/models/import.rb b/app/models/import.rb index fd3fb139d..ec6caa660 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -26,7 +26,7 @@ class Import < ActiveRecord::Base self.status ||= "pending" end - after_create :import + after_create :delayed_import def delayed_import save_resources delay.import diff --git a/app/models/referential.rb b/app/models/referential.rb index 84640e43c..d7c5bba7e 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -34,44 +34,15 @@ class Referential < ActiveRecord::Base self end - before_create :prepare + before_create :create_schema before_destroy :destroy_schema - attr_accessor :resources - attr_accessor :loader - - def loader - @loader ||= ::Chouette::Loader.new(slug) - end + after_create :import_resources - def prepare - if resources - import_resources - else - create_schema - end - end - - def with_original_filename - Dir.mktmpdir do |tmp_dir| - tmp_link = File.join(tmp_dir, resources.original_filename) - FileUtils.ln_s resources.path, tmp_link - yield tmp_link - end - end + attr_accessor :resources def import_resources - # Apartment::Database.create create tables - loader.create - begin - with_original_filename do |file| - # chouette-command checks the file extension (and requires .zip) :( - loader.import file - end - rescue => e - loader.drop - raise e - end + imports.create(:resources => resources) if resources end def create_schema -- cgit v1.2.3 From 244de985c6c00b6385e9af47f9dec08de1eec6c5 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Tue, 29 May 2012 08:57:01 +0200 Subject: Include html_safe an ready? in ApplicationMap#to_html --- app/maps/application_map.rb | 4 +++- app/maps/line_map.rb | 4 ++++ app/maps/network_map.rb | 4 ++++ app/views/lines/show.html.erb | 2 +- app/views/networks/show.html.erb | 2 +- 5 files changed, 13 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/maps/application_map.rb b/app/maps/application_map.rb index a4d8a84ab..dffb2501c 100644 --- a/app/maps/application_map.rb +++ b/app/maps/application_map.rb @@ -34,7 +34,9 @@ class ApplicationMap end def to_html(options = {}) - "
#{map.to_html(options)}" + if not respond_to?(:ready?) or ready? + "
#{map.to_html(options)}".html_safe + end end def kml diff --git a/app/maps/line_map.rb b/app/maps/line_map.rb index 128b98dd2..a7a9f892d 100644 --- a/app/maps/line_map.rb +++ b/app/maps/line_map.rb @@ -29,4 +29,8 @@ class LineMap < ApplicationMap end + def ready? + Chouette::StopArea.bounds.present? + end + end diff --git a/app/maps/network_map.rb b/app/maps/network_map.rb index cedabdf6e..35283a48f 100644 --- a/app/maps/network_map.rb +++ b/app/maps/network_map.rb @@ -28,4 +28,8 @@ class NetworkMap < ApplicationMap end + def ready? + Chouette::StopArea.bounds.present? + end + end diff --git a/app/views/lines/show.html.erb b/app/views/lines/show.html.erb index 4e7217384..c487f8616 100644 --- a/app/views/lines/show.html.erb +++ b/app/views/lines/show.html.erb @@ -1,7 +1,7 @@ <%= title_tag t('lines.show.title', :line => @line.name ) %>
- <%= @map.to_html.html_safe %> + <%= @map.to_html %>

diff --git a/app/views/networks/show.html.erb b/app/views/networks/show.html.erb index b03347ccf..112fb5769 100644 --- a/app/views/networks/show.html.erb +++ b/app/views/networks/show.html.erb @@ -1,7 +1,7 @@ <%= title_tag t('networks.show.title', :network => @network.name )%>

- <%= @map.to_html.html_safe %> + <%= @map.to_html %>

-- cgit v1.2.3 From 5266239f66247c9f5a391ab6569a8fb8021279d8 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Tue, 29 May 2012 08:58:06 +0200 Subject: Manage multiple selection to destroy several lines. Refs #25 --- .../javascripts/multiple_selection.js.coffee | 22 +++++++++++++++++++--- app/assets/stylesheets/lines.css.scss | 1 + app/assets/stylesheets/multiple_selection.scss | 2 ++ app/controllers/lines_controller.rb | 7 +++++++ app/views/lines/_line.erb | 4 ++-- app/views/lines/index.html.erb | 2 +- 6 files changed, 32 insertions(+), 6 deletions(-) (limited to 'app') diff --git a/app/assets/javascripts/multiple_selection.js.coffee b/app/assets/javascripts/multiple_selection.js.coffee index 0353a2755..1ff473c4d 100644 --- a/app/assets/javascripts/multiple_selection.js.coffee +++ b/app/assets/javascripts/multiple_selection.js.coffee @@ -27,11 +27,27 @@ jQuery -> $('#multiple_selection_menu a.deselect_all').click(deselect_all) - disabled_action = (event) -> + handle_multiple_action = (event) -> event.preventDefault() - alert("Fonction activee au prochain milestone") + link = $(event.target) - $('#multiple_selection_menu .actions a').click(disabled_action) + href = link.attr("href") + method = link.data('multiple-method') + csrf_token = $('meta[name=csrf-token]').attr('content') + csrf_param = $('meta[name=csrf-param]').attr('content') + form = $('

') + target = link.attr('target') + metadata_input = '' + if csrf_param? and csrf_token? + metadata_input += '' + form.append($(input).clone()) for input in $('input[type=checkbox].multiple_selection:checked') + + form.attr('target', target) if target? + + form.hide().append(metadata_input).appendTo('body') + form.submit() + + $('#multiple_selection_menu .actions a.remove').click(handle_multiple_action) diff --git a/app/assets/stylesheets/lines.css.scss b/app/assets/stylesheets/lines.css.scss index c5370611c..07ed34e5b 100644 --- a/app/assets/stylesheets/lines.css.scss +++ b/app/assets/stylesheets/lines.css.scss @@ -24,6 +24,7 @@ width: 350px; float: left; padding-right: 10px; + position: relative; .color { width: 64px; diff --git a/app/assets/stylesheets/multiple_selection.scss b/app/assets/stylesheets/multiple_selection.scss index e7f64857f..f3792d902 100644 --- a/app/assets/stylesheets/multiple_selection.scss +++ b/app/assets/stylesheets/multiple_selection.scss @@ -1,5 +1,7 @@ input[type=checkbox].multiple_selection { margin-left: 25px; + position: absolute; + top: 50px; } #multiple_selection_menu { diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb index 42a126169..e14baf211 100644 --- a/app/controllers/lines_controller.rb +++ b/app/controllers/lines_controller.rb @@ -12,6 +12,13 @@ class LinesController < ChouetteController show! end + def destroy_all + objects = + get_collection_ivar || set_collection_ivar(end_of_association_chain.where(:id => params[:ids])) + objects.destroy_all + respond_with(objects, :location => smart_collection_url) + end + protected def collection diff --git a/app/views/lines/_line.erb b/app/views/lines/_line.erb index 5405bcbb5..3565966fb 100644 --- a/app/views/lines/_line.erb +++ b/app/views/lines/_line.erb @@ -2,11 +2,11 @@ <%= link_to([@referential, line], :class => "preview", :title => "Ligne #{line.number}") do %>
<% if line.number and line.number.length <= 3 %> -
<%= line.number %>
+
<%= line.number %>
<% end %> - <%= check_box_tag "ids[]", line.id, false, :class => "multiple_selection", :style => "display: none;" %>
<% end %> + <%= check_box_tag "ids[]", line.id, false, :class => "multiple_selection", :style => "display: none;" %> <%= link_to truncate(line.name, :length => 30), [@referential, line], :title => "Ligne #{line.name}" %>
<%= line.human_attribute_name('network') %> <%= link_to_if line.network, line.network.name, referential_network_path(@referential, line.network), :title => "#{line.human_attribute_name('network')} #{line.network.name}" %> - diff --git a/app/views/lines/index.html.erb b/app/views/lines/index.html.erb index c39e94cbd..8c9766866 100644 --- a/app/views/lines/index.html.erb +++ b/app/views/lines/index.html.erb @@ -75,7 +75,7 @@ <%= t(".multi_selection_disable") %> -- cgit v1.2.3 From ee0f3849cb6a2278783aabb166fb5c2661cdb400 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Tue, 29 May 2012 17:08:17 +0200 Subject: Removes explicit ApplicationMap#html_safe --- app/maps/connection_link_map.rb | 4 ++++ app/maps/route_map.rb | 14 ++++++++++---- app/maps/stop_area_map.rb | 4 ++++ app/views/connection_links/show.html.erb | 2 +- app/views/routes/show.html.erb | 2 +- app/views/stop_areas/edit.html.erb | 2 +- app/views/stop_areas/show.html.erb | 2 +- 7 files changed, 22 insertions(+), 8 deletions(-) (limited to 'app') diff --git a/app/maps/connection_link_map.rb b/app/maps/connection_link_map.rb index e915c3ae2..a6fb8517c 100644 --- a/app/maps/connection_link_map.rb +++ b/app/maps/connection_link_map.rb @@ -23,6 +23,10 @@ class ConnectionLinkMap < ApplicationMap end end + def ready? + Chouette::StopArea.bounds.present? + end + def bounds wgs84_bounds = Chouette::StopArea.bounds @bounds ||= OpenLayers::Bounds.new(wgs84_bounds.lower_corner.x, wgs84_bounds.lower_corner.y, wgs84_bounds.upper_corner.x, wgs84_bounds.upper_corner.y).transform(OpenLayers::Projection.new("EPSG:4326"), OpenLayers::Projection.new("EPSG:900913")) diff --git a/app/maps/route_map.rb b/app/maps/route_map.rb index 417b6037a..7cc525dde 100644 --- a/app/maps/route_map.rb +++ b/app/maps/route_map.rb @@ -22,12 +22,18 @@ class RouteMap < ApplicationMap end end + def ready? + route_bounds.present? + end + + def route_bounds + @route_bound ||= (route.geometry.empty? ? Chouette::StopArea.bounds : route.geometry.envelope) + end + def bounds - wgs84_bounds = ( route.geometry.empty?) ? Chouette::StopArea.bounds : route.geometry.envelope - @bounds ||= OpenLayers::Bounds.new( - wgs84_bounds.lower_corner.x, wgs84_bounds.lower_corner.y, - wgs84_bounds.upper_corner.x, wgs84_bounds.upper_corner.y). + route_bounds.lower_corner.x, route_bounds.lower_corner.y, + route_bounds.upper_corner.x, route_bounds.upper_corner.y). transform(OpenLayers::Projection.new("EPSG:4326"), OpenLayers::Projection.new("EPSG:900913")) end diff --git a/app/maps/stop_area_map.rb b/app/maps/stop_area_map.rb index 37ba77121..b7c060dce 100644 --- a/app/maps/stop_area_map.rb +++ b/app/maps/stop_area_map.rb @@ -40,6 +40,10 @@ EOF end end + def ready? + center.present? + end + def center stop_area.geometry or stop_area.default_position end diff --git a/app/views/connection_links/show.html.erb b/app/views/connection_links/show.html.erb index 273d9102e..abc2db3de 100644 --- a/app/views/connection_links/show.html.erb +++ b/app/views/connection_links/show.html.erb @@ -1,7 +1,7 @@ <%= title_tag t('connection_links.show.title', :connection_link => @connection_link.name ) %>