aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume2017-11-23 17:13:09 +0100
committerGuillaume2017-11-23 17:13:19 +0100
commitc83002d8f281384244dc9c11432e2eb648b99b3b (patch)
treeefae0f2b8e40ae53c3688a3dc84082425fbd7ffc
parent21382e70b654215325a045627c563224943fdd83 (diff)
downloadchouette-core-c83002d8f281384244dc9c11432e2eb648b99b3b.tar.bz2
Refs #4824, #4825 update old form views to new layout with simple_form, add permissions for create an edit in line and network controller
-rw-r--r--app/controllers/networks_controller.rb2
-rw-r--r--app/decorators/line_decorator.rb77
-rw-r--r--app/models/concerns/objectid_support.rb2
-rw-r--r--app/views/companies/_form.html.slim34
-rw-r--r--app/views/companies/edit.html.slim11
-rw-r--r--app/views/companies/index.html.slim2
-rw-r--r--app/views/companies/new.html.slim14
-rw-r--r--app/views/companies/show.html.slim2
-rw-r--r--app/views/lines/_form.html.slim63
-rw-r--r--app/views/lines/edit.html.slim11
-rw-r--r--app/views/lines/new.html.slim11
-rw-r--r--app/views/networks/_form.html.slim27
-rw-r--r--app/views/networks/edit.html.slim14
-rw-r--r--app/views/networks/index.html.slim2
-rw-r--r--app/views/networks/new.html.slim12
-rw-r--r--app/views/networks/show.html.slim4
-rw-r--r--app/views/stop_areas/_form.html.slim234
-rw-r--r--app/views/stop_areas/edit.html.slim11
-rw-r--r--app/views/stop_areas/index.html.slim2
-rw-r--r--app/views/stop_areas/new.html.slim11
-rw-r--r--config/initializers/simple_form_bootstrap.rb11
21 files changed, 282 insertions, 275 deletions
diff --git a/app/controllers/networks_controller.rb b/app/controllers/networks_controller.rb
index 98c840777..9d5e1bf0d 100644
--- a/app/controllers/networks_controller.rb
+++ b/app/controllers/networks_controller.rb
@@ -22,10 +22,12 @@ class NetworksController < InheritedResources::Base
def new
authorize resource_class
+ new!
end
def create
authorize resource_class
+ create!
end
def index
diff --git a/app/decorators/line_decorator.rb b/app/decorators/line_decorator.rb
index d465f9321..d86916873 100644
--- a/app/decorators/line_decorator.rb
+++ b/app/decorators/line_decorator.rb
@@ -1,45 +1,54 @@
- class LineDecorator < Draper::Decorator
- decorates Chouette::Line
+class LineDecorator < Draper::Decorator
+ decorates Chouette::Line
- delegate_all
+ delegate_all
- # Requires:
- # context: {
- # line_referential: ,
- # current_organisation:
- # }
- def action_links
- links = []
+ # Requires:
+ # context: {
+ # line_referential: ,
+ # current_organisation:
+ # }
+ def action_links
+ links = []
+ links << Link.new(
+ content: h.t('lines.actions.show_network'),
+ href: [context[:line_referential], object.network]
+ )
+
+ links << Link.new(
+ content: h.t('lines.actions.show_company'),
+ href: [context[:line_referential], object.company]
+ )
+ if h.policy(Chouette::Line).create? &&
+ context[:line_referential].organisations.include?(
+ context[:current_organisation]
+ )
links << Link.new(
- content: h.t('lines.actions.show_network'),
- href: [context[:line_referential], object.network]
+ content: h.t('lines.actions.edit'),
+ href: h.edit_line_referential_line_path(context[:line_referential], object.id)
)
+ end
+ if h.policy(Chouette::Line).create? &&
+ context[:line_referential].organisations.include?(
+ context[:current_organisation]
+ )
links << Link.new(
- content: h.t('lines.actions.show_company'),
- href: [context[:line_referential], object.company]
+ content: h.t('lines.actions.new'),
+ href: h.new_line_referential_line_path(context[:line_referential])
)
+ end
- if h.policy(Chouette::Line).create? &&
- context[:line_referential].organisations.include?(
- context[:current_organisation]
- )
- links << Link.new(
- content: h.t('lines.actions.new'),
- href: h.new_line_referential_line_path(context[:line_referential])
- )
- end
-
- if h.policy(object).destroy?
- links << Link.new(
- content: h.destroy_link_content('lines.actions.destroy_confirm'),
- href: h.line_referential_line_path(context[:line_referential], object),
- method: :delete,
- data: { confirm: h.t('lines.actions.destroy_confirm') }
- )
- end
-
- links
+ if h.policy(object).destroy?
+ links << Link.new(
+ content: h.destroy_link_content('lines.actions.destroy'),
+ href: h.line_referential_line_path(context[:line_referential], object),
+ method: :delete,
+ data: {confirm: h.t('lines.actions.destroy_confirm')}
+ )
end
+
+ links
end
+end
diff --git a/app/models/concerns/objectid_support.rb b/app/models/concerns/objectid_support.rb
index 97af9019c..f20723f63 100644
--- a/app/models/concerns/objectid_support.rb
+++ b/app/models/concerns/objectid_support.rb
@@ -35,4 +35,4 @@ module ObjectidSupport
self.referential.objectid_format
end
end
-end \ No newline at end of file
+end
diff --git a/app/views/companies/_form.html.slim b/app/views/companies/_form.html.slim
index caf75bd8b..3979c5800 100644
--- a/app/views/companies/_form.html.slim
+++ b/app/views/companies/_form.html.slim
@@ -1,18 +1,18 @@
-= semantic_form_for [@line_referential, @company] do |form|
- = form.inputs do
- = form.input :name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.company.name") }
- = form.input :short_name
- = form.input :organizational_unit
- = form.input :operating_department_name
- = form.input :code
- = form.input :phone, as: :phone
- = form.input :fax, as: :phone
- = form.input :email, as: :email
- = form.input :time_zone, include_blank: true
- = form.input :url
- = form.input :registration_number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.company.registration_number") }
- = form.input :objectid, :required => !@company.new_record?, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.company.objectid") }
+= simple_form_for [@line_referential, @company], html: {class: 'form-horizontal', id: 'company_form'}, wrapper: :horizontal_form do |f|
+ .row
+ .col-lg-12
+ = f.input :name, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.company.name")}
+ = f.input :short_name
+ = f.input :organizational_unit
+ = f.input :operating_department_name
+ = f.input :code
+ = f.input :phone
+ = f.input :fax
+ = f.input :email, as: :email
+ = f.input :time_zone, include_blank: true
+ = f.input :url
+ = f.input :registration_number, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.company.registration_number")}
- = form.actions do
- = form.action :submit, as: :button
- = form.action :cancel, as: :link \ No newline at end of file
+ .separator
+
+ = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'company_form'
diff --git a/app/views/companies/edit.html.slim b/app/views/companies/edit.html.slim
index 2f4c559b9..a20efeb46 100644
--- a/app/views/companies/edit.html.slim
+++ b/app/views/companies/edit.html.slim
@@ -1,4 +1,11 @@
- breadcrumb :company, @company
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('companies.edit.title', company: @company.name)
-= title_tag t('companies.edit.title', company: @company.name)
-= render 'form'
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form'
diff --git a/app/views/companies/index.html.slim b/app/views/companies/index.html.slim
index ba061f505..8fcadc370 100644
--- a/app/views/companies/index.html.slim
+++ b/app/views/companies/index.html.slim
@@ -27,7 +27,7 @@
[ \
TableBuilderHelper::Column.new( \
name: 'Oid', \
- attribute: Proc.new { |n| n.try(:objectid).try(:local_id) }, \
+ attribute: Proc.new { |n| n.try(:get_objectid).try(:short_id) }, \
sortable: false \
), \
TableBuilderHelper::Column.new( \
diff --git a/app/views/companies/new.html.slim b/app/views/companies/new.html.slim
index 68c0f76c3..d80916ed9 100644
--- a/app/views/companies/new.html.slim
+++ b/app/views/companies/new.html.slim
@@ -1,2 +1,12 @@
-= title_tag t('companies.new.title')
-= render 'form'
+- breadcrumb :lines, @line_referential
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('companies.new.title')
+
+
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form'
diff --git a/app/views/companies/show.html.slim b/app/views/companies/show.html.slim
index 668226938..eebb4a57c 100644
--- a/app/views/companies/show.html.slim
+++ b/app/views/companies/show.html.slim
@@ -23,7 +23,7 @@
.row
.col-lg-6.col-md-6.col-sm-12.col-xs-12
= definition_list t('metadatas'),
- { 'ID Codif' => @company.try(:objectid).try(:local_id),
+ { 'ID Codif' => @company.try(:get_objectid).try(:short_id),
Chouette::Company.human_attribute_name(:phone) => @company.phone,
Chouette::Company.human_attribute_name(:email) => @company.email,
Chouette::Company.human_attribute_name(:url) => @company.url }
diff --git a/app/views/lines/_form.html.slim b/app/views/lines/_form.html.slim
index d7b5a65ed..4952b72ff 100644
--- a/app/views/lines/_form.html.slim
+++ b/app/views/lines/_form.html.slim
@@ -1,45 +1,22 @@
-= semantic_form_for [@line_referential, @line] do |form|
- = form.inputs do
- / = form.input :network, as: :select, :collection => Chouette::Network.all, include_blank: false
- / = form.input :company, as: :select, :collection => Chouette::Company.all, include_blank: false
- / = form.input :name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.line.name") }
- / = form.input :published_name
- / = form.input :registration_number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.line.registration_number")}
- / = form.input :number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.line.number") }
- / = form.input :transport_mode, include_blank: false
- / = form.input :color, as: :string
- / = form.input :text_color
- / = form.input :stable_id
- / = form.input :url
- / = form.input :mobility_restricted_suitability, as: :select, :collection => [[@line.human_attribute_name("accessible"), true], [@line.human_attribute_name("not_accessible"), false]], :include_blank => true
- / = form.input :flexible_service, as: :select, :collection => [[@line.human_attribute_name("on_demaond_fs"), true], [@line.human_attribute_name("regular_fs"), false]], :include_blank => true
- / = form.input :comment
- / = form.input :objectid, :required => !@line.new_record?, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.line.objectid")}
- / = form.input :group_of_line_tokens, :label => t('.group_of_lines'), as: :text, :input_html => { :"data-pre" => ( @line.group_of_lines.map { |group_of_line| { :id => group_of_line.id, :name => group_of_line.name } } ).to_json }
+= simple_form_for [@line_referential, @line], html: {class: 'form-horizontal', id: 'lines_form'}, wrapper: :horizontal_form do |f|
+ .row
+ .col-lg-12
+ = f.input :name
+ = f.input :network_id, as: :select, :collection => @line_referential.networks, include_blank: false
+ = f.input :company_id, as: :select, :collection => @line_referential.companies, include_blank: false
+ = f.input :published_name
+ = f.input :registration_number
+ = f.input :number
+ = f.input :transport_mode, as: :select, collection: Chouette::Line.sorted_transport_modes, label: t('activerecord.attributes.compliance_control_blocks.transport_mode'), label_method: lambda {|t| ("<span>" + t("enumerize.transport_mode.#{t}") + "</span>").html_safe}, required: true, :include_blank => false
+ = f.input :transport_submode, as: :select, collection: Chouette::Line.sorted_transport_submodes, label: t('activerecord.attributes.compliance_control_blocks.transport_submode'), label_method: lambda {|t| ("<span>" + t("enumerize.transport_submode.#{t}") + "</span>").html_safe}, :include_blank => true
+ = f.input :color, as: :string
+ = f.input :text_color
+ = f.input :stable_id
+ = f.input :url
+ = f.input :mobility_restricted_suitability, as: :select, :collection => [[@line.human_attribute_name("accessible"), true], [@line.human_attribute_name("not_accessible"), false]], :include_blank => true
+ = f.input :flexible_service, as: :select, :collection => [[@line.human_attribute_name("on_demaond_fs"), true], [@line.human_attribute_name("regular_fs"), false]], :include_blank => true
+ = f.input :comment
+ .separator
- .footnotes_block
- h3 = t("footnotes.index.title")
+ = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'lines_form'
- #footnotes
- = form.semantic_fields_for :footnotes do |f|
- = render "footnotes/footnote_fields", :f => f
-
- .add_footnote
- = link_to_add_association t("footnotes.actions.add_footnote"), form, :footnotes , :partial => "footnotes/footnote_fields", :"data-association-insertion-method" => "append", :"data-association-insertion-node" => "div#footnotes", class: 'add'
-
- = form.actions do
- = form.action :submit, as: :button
- = form.action :cancel, as: :link
-
-javascript:
- $(function() {
- $("#line_group_of_line_tokens").tokenInput("#{name_filter_referential_group_of_lines_path(@line_referential, format: :json)}", {
- crossDomain: false,
- prePopulate: $('#group_of_line_tokens').data('pre'),
- minChars: 3,
- preventDuplicates: true,
- hintText: "#{I18n.t('search_hint')}",
- noResultsText: "#{I18n.t('no_result_text')}",
- searchingText: "#{I18n.t('searching_term')}"
- });
- });
diff --git a/app/views/lines/edit.html.slim b/app/views/lines/edit.html.slim
index 3c2eee03f..4a904d16a 100644
--- a/app/views/lines/edit.html.slim
+++ b/app/views/lines/edit.html.slim
@@ -1,5 +1,12 @@
- breadcrumb :line, @line
-= title_tag t('lines.edit.title', line: @line.name)
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('lines.edit.title', line: @line.name)
-= render 'form'
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form'
diff --git a/app/views/lines/new.html.slim b/app/views/lines/new.html.slim
index f09a4b4aa..00872dcfb 100644
--- a/app/views/lines/new.html.slim
+++ b/app/views/lines/new.html.slim
@@ -1,5 +1,12 @@
- breadcrumb :lines, @line_referential
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('lines.new.title')
-= title_tag t('lines.new.title')
-= render 'form'
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form' \ No newline at end of file
diff --git a/app/views/networks/_form.html.slim b/app/views/networks/_form.html.slim
index 7b048edc9..6ee2a4512 100644
--- a/app/views/networks/_form.html.slim
+++ b/app/views/networks/_form.html.slim
@@ -1,15 +1,14 @@
-= semantic_form_for [@line_referential, @network] do |form|
- = form.inputs do
- = form.input :name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.network.name")}
- = form.input :registration_number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.network.registration_number")}
- = form.input :comment
- = form.input :version_date, as: :date_picker
- = form.input :description
- = form.input :source_name
- = form.input :source_type_name, as: :select, :collection => source_type_name_label_pairs, :include_blank => true
- = form.input :source_identifier
- = form.input :objectid, :required => !@network.new_record?, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.network.objectid")}
+= simple_form_for [@line_referential, @network], html: {class: 'form-horizontal', id: 'network_form'}, wrapper: :horizontal_form do |f|
+ .row
+ .col-lg-12
+ = f.input :name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.network.name")}
+ = f.input :registration_number, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@line_referential)}.network.registration_number")}
+ = f.input :comment
+ = f.input :version_date, :label_html => { :class => 'string optional col-sm-4 col-xs-5 control-label' }, :wrapper => :multi_select_inline
+ = f.input :description
+ = f.input :source_name
+ = f.input :source_type_name, as: :select, :collection => source_type_name_label_pairs, :include_blank => true
+ = f.input :source_identifier
+ .separator
- = form.actions do
- = form.action :submit, as: :button
- = form.action :cancel, as: :link
+ = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'network_form'
diff --git a/app/views/networks/edit.html.slim b/app/views/networks/edit.html.slim
index 2d511e15d..dbb8bada9 100644
--- a/app/views/networks/edit.html.slim
+++ b/app/views/networks/edit.html.slim
@@ -1,4 +1,12 @@
-- breadcrumb :network, @network
-= title_tag t('networks.edit.title', network: @network.name)
+- breadcrumb :networks, @network
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('networks.edit.title', network: @network.name)
-= render 'form'
+
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form'
diff --git a/app/views/networks/index.html.slim b/app/views/networks/index.html.slim
index e498ea35f..5829cf649 100644
--- a/app/views/networks/index.html.slim
+++ b/app/views/networks/index.html.slim
@@ -27,7 +27,7 @@
[ \
TableBuilderHelper::Column.new( \
name: 'Oid', \
- attribute: Proc.new { |n| n.try(:objectid).try(:local_id) }, \
+ attribute: Proc.new { |n| n.try(:get_objectid).try(:short_id) }, \
sortable: false \
),
TableBuilderHelper::Column.new( \
diff --git a/app/views/networks/new.html.slim b/app/views/networks/new.html.slim
index cf04ab03f..d014fb35a 100644
--- a/app/views/networks/new.html.slim
+++ b/app/views/networks/new.html.slim
@@ -1,4 +1,12 @@
- breadcrumb :networks, @line_referential
-= title_tag t('networks.new.title')
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('networks.new.title')
-= render 'form'
+
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form'
diff --git a/app/views/networks/show.html.slim b/app/views/networks/show.html.slim
index 9b2a0dbf8..e45ed46ae 100644
--- a/app/views/networks/show.html.slim
+++ b/app/views/networks/show.html.slim
@@ -1,4 +1,4 @@
-- breadcrumb :network, @network
+- breadcrumb :networks, @network
/ PageHeader
= pageheader 'reseau',
@network.name,
@@ -21,4 +21,4 @@
.row
.col-lg-6.col-md-6.col-sm-12.col-xs-12
= definition_list t('metadatas'),
- { 'ID Codif' => @network.try(:objectid).try(:local_id) }
+ { 'ID Codif' => @network.try(:get_objectid).try(:short_id) }
diff --git a/app/views/stop_areas/_form.html.slim b/app/views/stop_areas/_form.html.slim
index 546143393..b055113a9 100644
--- a/app/views/stop_areas/_form.html.slim
+++ b/app/views/stop_areas/_form.html.slim
@@ -1,153 +1,101 @@
-= semantic_form_for [@stop_area_referential, @stop_area] do |form|
+/= semantic_form_for [@stop_area_referential, @stop_area] do |form|
+/ .row
+/ .container-fluid
+/ - if !manage_itl && @map
+/ = @map.to_html
+/
+/ = form.inputs do
+/ = form.input :id, as: :hidden
+/ = form.input :name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.name")}
+/ = form.input :stop_area_type, as: :select, :input_html => { :disabled => !@stop_area.new_record? }, :collection => Chouette::StopArea.area_type.options, :include_blank => false
+/
+/ .location_info
+/ h3 = t("stop_areas.stop_area.localisation")
+/
+/ #prefetch
+/ label = t('.geolocalize')
+/ input.typeahead.form-control.input-lg maxlength="255" type="text" placeholder="#{t('.address')}"
+/
+/ - unless @stop_area.projection.blank? or @stop_area.projection_type_label.empty?
+/ = form.input :projection_xy, :label => t("activerecord.attributes.stop_area.projection_xy", :projection => @referential.projection_type_label), :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.projection_xy")}
+/
+/ = form.input :coordinates, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.coordinates")}
+/ = form.input :street_name
+/ = form.input :country_code, required: format_restriction_for_locales(@referential) == '.hub'
+/ = form.input :zip_code, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.zip_code")}
+/ = form.input :city_name, required: format_restriction_for_locales(@referential) == '.hub', :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.city_name")}
+/
+/ .stop_areas.stop_area.general_info
+/ h3 = t("stop_areas.stop_area.general")
+/
+/ = form.inputs do
+/ = form.input :registration_number, required: format_restriction_for_locales(@referential) == '.hub', :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.registration_number")}
+/ = form.input :fare_code, as: :number
+/ = form.input :nearest_topic_name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.nearest_topic_name")}
+/ = form.input :comment, as: :text, :input_html => { :rows => 5, :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.comment") }
+/ = form.input :time_zone, :include_blank => true
+/ = form.input :url
+/
+/ .pmr_info
+/ h3 = t("stop_areas.stop_area.accessibility")
+/ = form.inputs do
+/ - if !manage_itl
+/ = form.input :mobility_restricted_suitability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
+/ = form.input :stairs_availability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
+/ = form.input :lift_availability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
+/
+/ = form.actions do
+/ = form.action :submit, as: :button
+/ = form.action :cancel, as: :link
+
+
+= simple_form_for [@stop_area_referential, @stop_area], html: {class: 'form-horizontal', id: 'stop_area_form'}, wrapper: :horizontal_form do |f|
.row
- .container-fluid
+ .col-lg-12
- if !manage_itl && @map
- = @map.to_html
-
- = form.inputs do
- = form.input :id, as: :hidden
- = form.input :name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.name")}
- = form.input :stop_area_type, as: :select, :input_html => { :disabled => !@stop_area.new_record? }, :collection => Chouette::StopArea.area_type.options, :include_blank => false
+ /= @map.to_html
+ = f.input :id, as: :hidden
+ = f.input :name, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.name")}
+ = f.input :area_type, as: :select, :input_html => {:disabled => !@stop_area.new_record?}, :collection => Chouette::StopArea.area_type.values, :include_blank => false
+ = f.input :registration_number, required: format_restriction_for_locales(@referential) == '.hub', :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.registration_number")}
+ = f.input :fare_code
+ = f.input :nearest_topic_name, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.nearest_topic_name")}
+ = f.input :comment, as: :text, :input_html => {:rows => 5, :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.comment")}
+ = f.input :time_zone, :include_blank => true
+ = f.input :url
.location_info
h3 = t("stop_areas.stop_area.localisation")
- #prefetch
label = t('.geolocalize')
input.typeahead.form-control.input-lg maxlength="255" type="text" placeholder="#{t('.address')}"
- unless @stop_area.projection.blank? or @stop_area.projection_type_label.empty?
- = form.input :projection_xy, :label => t("activerecord.attributes.stop_area.projection_xy", :projection => @referential.projection_type_label), :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.projection_xy")}
-
- = form.input :coordinates, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.coordinates")}
- = form.input :street_name
- = form.input :country_code, required: format_restriction_for_locales(@referential) == '.hub'
- = form.input :zip_code, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.zip_code")}
- = form.input :city_name, required: format_restriction_for_locales(@referential) == '.hub', :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.city_name")}
-
- .stop_areas.stop_area.general_info
- h3 = t("stop_areas.stop_area.general")
-
- = form.inputs do
- = form.input :objectid, :required => !@stop_area.new_record?, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.objectid")}
- = form.input :registration_number, required: format_restriction_for_locales(@referential) == '.hub', :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.registration_number")}
- = form.input :fare_code, as: :number
- = form.input :nearest_topic_name, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.nearest_topic_name")}
- = form.input :comment, as: :text, :input_html => { :rows => 5, :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.comment") }
- = form.input :time_zone, :include_blank => true
- = form.input :url
-
- .pmr_info
- h3 = t("stop_areas.stop_area.accessibility")
- = form.inputs do
- - if !manage_itl
- = form.input :mobility_restricted_suitability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
- = form.input :stairs_availability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
- = form.input :lift_availability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
-
- = form.actions do
- = form.action :submit, as: :button
- = form.action :cancel, as: :link
-
-javascript:
- $(document).ready(function() {
- var address_display = function( address ) {
- var name = "";
- if ( address.house_number) {
- name += address.house_number+" ";
- }
- name += address.road+", ";
- if ( address.suburb) {
- name += address.suburb+", ";
- }
- if ( address.postcode) {
- name += address.postcode+" ";
- }
- if ( address.city) {
- name += address.city;
- } else if ( address.village) {
- name += address.village;
- } else if ( address.town) {
- name += address.town;
- } else if ( address.county ) {
- name += address.county;
- } else if ( address.country ) {
- name += address.country;
- }
-
-
- return name;
- };
- var filtering = function(list) {
- // update map view
- removeAddress();
-
- var selection = $.grep( list, function(item) {
- return (item.type == "house" || item.type == "residential" ||
- item.type == "tertiary" || item.type == "primary" ||
- item.type == "secondary") && item.address.road ;
- });
- return $.map( selection, function( d) {
- var city = "";
- if ( d.address.city) {
- city = d.address.city;
- } else if ( d.address.town) {
- city = d.address.town;
- } else if ( d.address.village) {
- city = d.address.village;
- }
- return { postcode: d.address.postcode,
- road: d.address.road,
- lon: d.lon, lat: d.lat,
- suburb: d.address.suburb,
- city: city,
- postcode: d.address.postcode,
- the_key: address_display( d.address)};
- });
- };
-
- var addressesEngine = new Bloodhound({
- datumTokenizer: function(d) {
- return Bloodhound.tokenizers.whitespace(d.id+" : "+d.road);
- },
- queryTokenizer: function(d) {
- return Bloodhound.tokenizers.whitespace(d.id+" :: "+d.road);
- },
- limit: 10,
- remote: {
- url: 'http://nominatim.openstreetmap.org/search?q=%QUERY&format=json&addressdetails=1&bounded=1&viewbox='+
- // FIXME #821
- //= @stop_area_referential.viewbox_left_top_right_bottom
- filter: filtering,
- }
- });
-
- // kicks off the loading/processing of `local` and `prefetch`
- var promise = addressesEngine.initialize();
-
- // passing in `null` for the `options` arguments will result in the default
- // options being used
- $('#prefetch .typeahead').typeahead(
- {
- hint: true,
- highlight: true,
- minLength: 1
- },
- {
- name: 'addresses',
- displayKey: 'the_key',
- source: addressesEngine.ttAdapter(),
- }
- );
-
- $('.typeahead').on('typeahead:selected', function($e, datum) {
- // update map view
- addAddress( datum.lon, datum.lat, datum.road);
- // update form fields
- <% if @stop_area.new_record? %>
- $('input[name="stop_area[street_name]"]').val(datum.road);
- $('input[name="stop_area[zip_code]"]').val(datum.postcode);
- $('input[name="stop_area[city_name]"]').val(datum.city);
- <% end %>
- })
- });
+ = f.input :projection_xy, :label => t("activerecord.attributes.stop_area.projection_xy", :projection => @referential.projection_type_label), :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.projection_xy")}
+
+ = f.input :coordinates, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.coordinates")}, required: true
+ = f.input :street_name
+ /= f.input :country_code, required: format_restriction_for_locales(@referential) == '.hub'
+ = f.input :zip_code, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.zip_code")}
+ = f.input :city_name, required: format_restriction_for_locales(@referential) == '.hub', :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.city_name")}
+
+ .stop_areas.stop_area.general_info
+ h3 = t("stop_areas.stop_area.general")
+
+ = f.input :registration_number, required: format_restriction_for_locales(@referential) == '.hub', :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.registration_number")}
+ = f.input :fare_code
+ = f.input :nearest_topic_name, :input_html => {:title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.nearest_topic_name")}
+ = f.input :comment, as: :text, :input_html => {:rows => 5, :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.stop_area.comment")}
+ = f.input :time_zone, :include_blank => true
+ = f.input :url
+
+ .pmr_info
+ h3 = t("stop_areas.stop_area.accessibility")
+ - if !manage_itl
+ = f.input :mobility_restricted_suitability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
+ = f.input :stairs_availability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
+ = f.input :lift_availability, as: :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true
+
+ .separator
+
+ = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'stop_area_form'
diff --git a/app/views/stop_areas/edit.html.slim b/app/views/stop_areas/edit.html.slim
index 8005f5a08..3ffb53dec 100644
--- a/app/views/stop_areas/edit.html.slim
+++ b/app/views/stop_areas/edit.html.slim
@@ -1,4 +1,11 @@
- breadcrumb :stop_area, @stop_area_referential, @stop_area
-= title_tag t('stop_areas.edit.title', stop_area: @stop_area.name )
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('stop_areas.edit.title', stop_area: @stop_area.name )
-== render 'form'
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form' \ No newline at end of file
diff --git a/app/views/stop_areas/index.html.slim b/app/views/stop_areas/index.html.slim
index 4e880f7a3..6bffbd1a0 100644
--- a/app/views/stop_areas/index.html.slim
+++ b/app/views/stop_areas/index.html.slim
@@ -12,7 +12,7 @@
- if params[:q].present? or @stop_areas.any?
.row
.col-lg-12
- = render 'filters'
+ = render 'filters'
- if @stop_areas.any?
.row
diff --git a/app/views/stop_areas/new.html.slim b/app/views/stop_areas/new.html.slim
index e0c5b7a61..10e33d5cc 100644
--- a/app/views/stop_areas/new.html.slim
+++ b/app/views/stop_areas/new.html.slim
@@ -1,4 +1,11 @@
- breadcrumb :stop_areas, @stop_area_referential
-= title_tag t('stop_areas.new.title')
+/ PageHeader
+= pageheader 'jeux-de-controle',
+ t('stop_areas.new.title')
-== render 'form'
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
+ = render 'form' \ No newline at end of file
diff --git a/config/initializers/simple_form_bootstrap.rb b/config/initializers/simple_form_bootstrap.rb
index d90ea6398..4b9bd320d 100644
--- a/config/initializers/simple_form_bootstrap.rb
+++ b/config/initializers/simple_form_bootstrap.rb
@@ -132,6 +132,17 @@ SimpleForm.setup do |config|
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block small' }
end
end
+
+ config.wrappers :multi_select_inline, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
+ b.use :html5
+ b.optional :readonly
+ b.use :label, class: 'control-label'
+ b.wrapper tag: 'div', class: 'form-inline col-sm-8 col-xs-7' do |ba|
+ ba.use :input, class: 'form-control'
+ ba.use :error, wrap_with: {tag: 'span', class: 'help-block small'}
+ ba.use :hint, wrap_with: {tag: 'p', class: 'help-block small'}
+ end
+ end
# Wrappers for forms and inputs using the Bootstrap toolkit.
# Check the Bootstrap docs (http://getbootstrap.com)
# to learn about the different styles for forms and inputs,