aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/export_tasks.js.coffee16
-rw-r--r--app/assets/javascripts/exports.js.coffee22
-rw-r--r--app/controllers/export_tasks_controller.rb11
-rw-r--r--app/controllers/exports_controller.rb9
-rw-r--r--app/inputs/reference_ids_input.rb42
-rw-r--r--app/models/export_task.rb1
-rw-r--r--app/models/gtfs_export.rb5
-rw-r--r--app/models/gtfs_import.rb2
-rw-r--r--app/models/hub_export.rb5
-rw-r--r--app/models/kml_export.rb5
-rw-r--r--app/models/neptune_export.rb5
-rw-r--r--app/models/neptune_import.rb2
-rw-r--r--app/models/netex_export.rb5
-rw-r--r--app/models/netex_import.rb2
-rw-r--r--app/views/export_tasks/new.html.erb5
-rw-r--r--config/locales/enumerize.en.yml1
-rw-r--r--config/locales/enumerize.fr.yml1
-rw-r--r--config/locales/export_tasks.en.yml1
-rw-r--r--config/locales/export_tasks.fr.yml1
-rw-r--r--config/routes.rb6
20 files changed, 97 insertions, 50 deletions
diff --git a/app/assets/javascripts/export_tasks.js.coffee b/app/assets/javascripts/export_tasks.js.coffee
new file mode 100644
index 000000000..cf0b61977
--- /dev/null
+++ b/app/assets/javascripts/export_tasks.js.coffee
@@ -0,0 +1,16 @@
+jQuery ->
+ export_references_type_change = (event) ->
+ references_type = $(event.target).val()
+
+ toggle_input = (li) ->
+ enabled = (li.data("type") == references_type)
+ # Hide li block
+ li.toggle(enabled)
+ # Disable textarea to ignore it in POST data
+ console.log(enabled)
+ li.find(".token-input").first().attr("disabled", !enabled)
+ console.log(li.find(".token-input"))
+
+ toggle_input($(li)) for li in $(event.target).parents('form').find("li.reference_ids")
+
+ $('form select[name="export_task[references_type]"]').change( export_references_type_change )
diff --git a/app/assets/javascripts/exports.js.coffee b/app/assets/javascripts/exports.js.coffee
deleted file mode 100644
index 045b95e2e..000000000
--- a/app/assets/javascripts/exports.js.coffee
+++ /dev/null
@@ -1,22 +0,0 @@
-jQuery ->
- export_references_type_change = (event) ->
- references_type = $(event.target).val()
-
- toggle_input = (li) ->
- enabled = (li.data("type") == references_type)
- # Hide li block
- li.toggle(enabled)
- # Disable textarea to ignore it in POST data
- li.find("textarea").attr("disabled", ! enabled)
-
- toggle_input($(li)) for li in $(event.target).parents('form').find("li.export_reference_ids")
-
- $('select[name="export[references_type]"]').change(export_references_type_change)
-
- $('#export_type_submit').hide()
-
- export_type_change = (event) ->
- export_type = $("input:radio:checked").attr("value")
- $(form).toggle($(form).is("#" + export_type + "_new")) for form in $('form.export[method = "post"]')
-
- $("#export_type_input :radio[name='export[type]']").change(export_type_change)
diff --git a/app/controllers/export_tasks_controller.rb b/app/controllers/export_tasks_controller.rb
index dcc5e684d..d9a43cdc5 100644
--- a/app/controllers/export_tasks_controller.rb
+++ b/app/controllers/export_tasks_controller.rb
@@ -28,6 +28,17 @@ class ExportTasksController < ChouetteController
end
end
+ def references
+ references_type = params[:filter].pluralize
+ references = @referential.send(references_type).where("name ilike ?", "%#{params[:q]}%").select("id, name")
+ puts references.inspect
+ respond_to do |format|
+ format.json do
+ render :json => references.collect { |child| { :id => child.id, :name => child.name } }
+ end
+ end
+ end
+
protected
def available_exports
diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb
index 6d1a20f24..ae8aa1b75 100644
--- a/app/controllers/exports_controller.rb
+++ b/app/controllers/exports_controller.rb
@@ -52,15 +52,6 @@ class ExportsController < ChouetteController
end
end
- def references
- @references = referential.send(params[:type]).where("name ilike ?", "%#{params[:q]}%")
- respond_to do |format|
- format.json do
- render :json => @references.collect { |child| { :id => child.id, :name => child.name } }
- end
- end
- end
-
protected
def export_service
diff --git a/app/inputs/reference_ids_input.rb b/app/inputs/reference_ids_input.rb
new file mode 100644
index 000000000..a54be36b9
--- /dev/null
+++ b/app/inputs/reference_ids_input.rb
@@ -0,0 +1,42 @@
+class ReferenceIdsInput < Formtastic::Inputs::SearchInput
+
+ def search
+ if options[:json]
+ tokenLimit = options[:tokenLimit].present? ? options[:tokenLimit] : "null"
+ template.content_tag( :script,
+ ("$(document).ready(function() {
+
+ $('##{options[:id]}').tokenInput('#{options[:json]}', {
+ zindex: 1061,
+ disabled: #{options[:disabled] || false},
+ crossDomain: false,
+ tokenLimit: #{tokenLimit},
+ minChars: 2,
+ preventDuplicates: true,
+ hintText: '#{options[:hint_text]}',
+ noResultsText: '#{options[:no_result_text]}',
+ searchingText: '#{options[:searching_text]}',
+ });
+ });").html_safe)
+ end
+ end
+
+ def to_html
+ input_wrapping do
+ label_html <<
+ builder.text_field(method, input_html_options) <<
+ search
+ end
+ end
+
+ def input_html_options
+ css_class = super[:class]
+ super.merge({
+ :required => nil,
+ :autofocus => nil,
+ :class => "#{css_class} token-input",
+ 'data-model-name' => object.class.model_name.human
+ })
+ end
+
+end
diff --git a/app/models/export_task.rb b/app/models/export_task.rb
index af40bb279..6282b0a87 100644
--- a/app/models/export_task.rb
+++ b/app/models/export_task.rb
@@ -13,7 +13,6 @@ class ExportTask
cattr_accessor :root
enumerize :data_format, in: %w( neptune netex gtfs hub kml )
- enumerize :references_type, in: %w( all network line company groupofline stoparea )
attr_accessor :referential_id, :user_id, :user_name, :references_type, :data_format, :name, :projection_type, :reference_ids
validates_presence_of :referential_id
diff --git a/app/models/gtfs_export.rb b/app/models/gtfs_export.rb
index cae7d58d9..2b33d52f9 100644
--- a/app/models/gtfs_export.rb
+++ b/app/models/gtfs_export.rb
@@ -3,7 +3,7 @@ class GtfsExport < ExportTask
validates_presence_of :time_zone
attr_accessor :time_zone, :object_id_prefix
- enumerize :references_type, in: %w( all network line company groupofline stoparea )
+ enumerize :references_type, in: %w( network line company groupofline stoparea )
after_initialize :init_params
@@ -22,9 +22,10 @@ class GtfsExport < ExportTask
"gtfs-export" => {
"name" => name,
"references_type" => references_type,
+ "reference_ids" => reference_ids,
"user_name" => user_name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug,
+ "referential_name" => referential.name,
"time_zone" => time_zone,
"object_id_prefix" => object_id_prefix
}
diff --git a/app/models/gtfs_import.rb b/app/models/gtfs_import.rb
index c2b3332d2..28bf074ad 100644
--- a/app/models/gtfs_import.rb
+++ b/app/models/gtfs_import.rb
@@ -18,7 +18,7 @@ class GtfsImport < ImportTask
"user_name" => user_name,
"name" => name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug,
+ "referential_name" => referential.name,
"object_id_prefix" => object_id_prefix,
"max_distance_for_commercial" => max_distance_for_commercial,
"ignore_last_word" => ignore_last_word,
diff --git a/app/models/hub_export.rb b/app/models/hub_export.rb
index bcc9cddad..cb0092113 100644
--- a/app/models/hub_export.rb
+++ b/app/models/hub_export.rb
@@ -1,7 +1,7 @@
class HubExport < ExportTask
attr_accessor :start_date, :end_date
- enumerize :references_type, in: %w( all network line company groupofline )
+ enumerize :references_type, in: %w( network line company groupofline )
validates :start_date, presence: true , if: "end_date.present?"
validates :end_date, presence: true, if: "start_date.present?"
@@ -24,9 +24,10 @@ class HubExport < ExportTask
"hub-export" => {
"name" => name,
"references_type" => references_type,
+ "reference_ids" => reference_ids,
"user_name" => user_name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug,
+ "referential_name" => referential.name,
"start_date" => start_date,
"end_date" => end_date
}
diff --git a/app/models/kml_export.rb b/app/models/kml_export.rb
index 569cb2a6a..9d87f7cdf 100644
--- a/app/models/kml_export.rb
+++ b/app/models/kml_export.rb
@@ -1,15 +1,16 @@
class KmlExport < ExportTask
- enumerize :references_type, in: %w( all network line company groupofline )
+ enumerize :references_type, in: %w( network line company groupofline )
def action_params
{
"kml-export" => {
"name" => name,
"references_type" => references_type,
+ "reference_ids" => reference_ids,
"user_name" => user_name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug
+ "referential_name" => referential.name
}
}
end
diff --git a/app/models/neptune_export.rb b/app/models/neptune_export.rb
index 78b402bea..b7f2164ac 100644
--- a/app/models/neptune_export.rb
+++ b/app/models/neptune_export.rb
@@ -1,7 +1,7 @@
class NeptuneExport < ExportTask
attr_accessor :start_date, :end_date, :extensions, :export_type
- enumerize :references_type, in: %w( all network line company groupofline )
+ enumerize :references_type, in: %w( network line company groupofline )
validates :start_date, presence: true , if: "end_date.present?"
validates :end_date, presence: true, if: "start_date.present?"
@@ -11,9 +11,10 @@ class NeptuneExport < ExportTask
"neptune-export" => {
"name" => name,
"references_type" => references_type,
+ "reference_ids" => reference_ids,
"user_name" => user_name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug,
+ "referential_name" => referential.name,
"projection_type" => projection_type || "",
"start_date" => start_date,
"end_date" => end_date
diff --git a/app/models/neptune_import.rb b/app/models/neptune_import.rb
index 6c83fb4b1..e313e3988 100644
--- a/app/models/neptune_import.rb
+++ b/app/models/neptune_import.rb
@@ -7,7 +7,7 @@ class NeptuneImport < ImportTask
"user_name" => user_name,
"name" => name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug,
+ "referential_name" => referential.name,
}
}
end
diff --git a/app/models/netex_export.rb b/app/models/netex_export.rb
index 003a9b945..bac9d1d87 100644
--- a/app/models/netex_export.rb
+++ b/app/models/netex_export.rb
@@ -1,15 +1,16 @@
class NetexExport < ExportTask
- enumerize :references_type, in: %w( all network line company groupofline )
+ enumerize :references_type, in: %w( network line company groupofline )
def action_params
{
"netex-export" => {
"name" => name,
"references_type" => references_type,
+ "reference_ids" => reference_ids,
"user_name" => user_name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug,
+ "referential_name" => referential.name,
}
}
end
diff --git a/app/models/netex_import.rb b/app/models/netex_import.rb
index 5a0dd7e7e..4668ad572 100644
--- a/app/models/netex_import.rb
+++ b/app/models/netex_import.rb
@@ -7,7 +7,7 @@ class NetexImport < ImportTask
"user_name" => user_name,
"name" => name,
"organisation_name" => organisation.name,
- "referential_name" => referential.slug,
+ "referential_name" => referential.name,
}
}
end
diff --git a/app/views/export_tasks/new.html.erb b/app/views/export_tasks/new.html.erb
index 77998237f..6e5397f0e 100644
--- a/app/views/export_tasks/new.html.erb
+++ b/app/views/export_tasks/new.html.erb
@@ -13,7 +13,10 @@
<%= form.input :data_format, :as => :hidden %>
<%= form.input :referential_id, :as => :hidden, :input_html => { :value => @referential.id } %>
<%= form.input :name %>
- <%= form.input :references_type, :as => :select, :include_blank => false %>
+ <%= form.input :references_type, :as => :select, :include_blank => t(".all") %>
+ <% export_task.class.references_types.each do |type| %>
+ <%= form.input :reference_ids, :as => :reference_ids, :json => references_referential_export_tasks_path(@referential, :format => :json) + "?filter=#{type}", :hint_text => t('search_hint'), :no_result_text => t('no_result_text'),:searching_text => t('searching_term'), :id => "#{export_task.data_format}_#{type}_reference_ids", :input_html => { :id => "#{export_task.data_format}_#{type}_reference_ids" }, :wrapper_html => { :style => "display:none;", :id => "#{export_task.data_format}_#{type}", :"data-type" => "#{type}" } %>
+ <% end %>
<% end %>
<%= render partial: "fields_#{export_task.data_format}_export", :locals => { :form => form } %>
diff --git a/config/locales/enumerize.en.yml b/config/locales/enumerize.en.yml
index f65885ee8..b564e7f83 100644
--- a/config/locales/enumerize.en.yml
+++ b/config/locales/enumerize.en.yml
@@ -16,7 +16,6 @@ en:
request_stop: "Drop off if requested"
is_flexible: "Booking requested for drop off"
references_type:
- all: "All datas"
network: "Networks"
line: "Lines"
company: "Companies"
diff --git a/config/locales/enumerize.fr.yml b/config/locales/enumerize.fr.yml
index 2902f1835..c5a02b5e7 100644
--- a/config/locales/enumerize.fr.yml
+++ b/config/locales/enumerize.fr.yml
@@ -16,7 +16,6 @@ fr:
request_stop: "Descente sur demande au conducteur"
is_flexible: "Descente sur réservation"
references_type:
- all: "Toutes les données"
network: "Réseaux"
line: "Lignes"
company: "Transporteurs"
diff --git a/config/locales/export_tasks.en.yml b/config/locales/export_tasks.en.yml
index a2cb4bc35..9770c72ad 100644
--- a/config/locales/export_tasks.en.yml
+++ b/config/locales/export_tasks.en.yml
@@ -4,6 +4,7 @@ en:
new: "New export"
new:
title: "New export"
+ all: "All"
flash: "Export task on queue, refresh page to see progression"
fields_gtfs_export:
warning: "Filter on stop areas export only GTFS stops and transfers files, these may contain extra attributes"
diff --git a/config/locales/export_tasks.fr.yml b/config/locales/export_tasks.fr.yml
index e5e3eaea6..35deec1b1 100644
--- a/config/locales/export_tasks.fr.yml
+++ b/config/locales/export_tasks.fr.yml
@@ -4,6 +4,7 @@ fr:
new: "Nouvel export"
new:
title: "Nouvel export"
+ all: "Tous"
flash: "La demande d'export est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression"
fields_gtfs_export:
warning: "Le filtre sur arrêts exporte uniquement les fichiers GTFS stops et transfers gtfs, ceux-ci pouvant contenir des attributs supplémentaires"
diff --git a/config/routes.rb b/config/routes.rb
index fb1568dea..879e9bc23 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -89,11 +89,13 @@ ChouetteIhm::Application.routes.draw do
resources :compliance_check_results
end
- resources :export_tasks, :only => [:new, :create]
- resources :exports, :only => [:index, :show, :destroy] do
+ resources :export_tasks, :only => [:new, :create] do
collection do
get 'references'
end
+ end
+
+ resources :exports, :only => [:index, :show, :destroy] do
member do
get "exported_file"
end