aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2014-08-20 11:25:58 +0200
committerLuc Donnet2014-08-20 11:25:58 +0200
commit3bc81cb294d1453326d6e8fc86183ba651c5307c (patch)
treed28659e062d452c19eba3223ea8ab5c477c2e846
parent824f721868554bcb3b890175b04af72b610f574f (diff)
downloadchouette-core-3bc81cb294d1453326d6e8fc86183ba651c5307c.tar.bz2
Fix css for time in access_link and access_point
-rw-r--r--app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee12
-rw-r--r--app/inputs/check_boxes_input.rb17
-rw-r--r--app/inputs/extended_time_picker_input.rb12
-rw-r--r--app/views/access_links/_form.html.erb26
-rw-r--r--app/views/access_points/_form.html.erb4
-rw-r--r--app/views/connection_links/_form.erb8
-rw-r--r--config/initializers/formtastic.rb96
7 files changed, 128 insertions, 47 deletions
diff --git a/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee b/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee
index bfa7c5587..9945022bc 100644
--- a/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee
+++ b/app/assets/javascripts/plugins/bootstrap_timepicker_activation.coffee
@@ -1,8 +1,16 @@
jQuery ->
if(!(Modernizr.inputtypes && Modernizr.inputtypes.time))
- $('input[type="time"]').timepicker(
+ $('.timepicker_basic').timepicker(
template: false,
showInputs: false,
minuteStep: 1,
showMeridian: false,
- ) \ No newline at end of file
+ )
+ $('.timepicker_seconds').timepicker(
+ template: false,
+ showInputs: false,
+ minuteStep: 1,
+ secondStep: 1,
+ showMeridian: false,
+ showSeconds: true
+ ) \ No newline at end of file
diff --git a/app/inputs/check_boxes_input.rb b/app/inputs/check_boxes_input.rb
new file mode 100644
index 000000000..83137c224
--- /dev/null
+++ b/app/inputs/check_boxes_input.rb
@@ -0,0 +1,17 @@
+class CheckBoxesInput < Formtastic::Inputs::CheckBoxesInput
+
+ def selected_values
+ if object.respond_to?(method)
+ selected_items = [object.send(method)].compact.flatten
+
+ # FIX for ids only
+ return selected_items.map(&:to_s).compact if selected_items.all?{ |i| i.is_a? Integer}
+
+ [*selected_items.map { |o| send_or_call_or_object(value_method, o) }].compact
+ else
+ []
+ end
+ end
+
+end
+
diff --git a/app/inputs/extended_time_picker_input.rb b/app/inputs/extended_time_picker_input.rb
new file mode 100644
index 000000000..46b5bbdb4
--- /dev/null
+++ b/app/inputs/extended_time_picker_input.rb
@@ -0,0 +1,12 @@
+class ExtendedTimePickerInput < Formtastic::Inputs::TimePickerInput
+
+ def value
+ return options[:input_html][:value] if options[:input_html] && options[:input_html].key?(:value)
+ val = object.send(method)
+ return "00:00:00" if val.is_a?(Date)
+ return val.strftime("%H:%M:%S") if val.is_a?(Time)
+ return val if val.nil?
+ val.to_s
+ end
+
+end
diff --git a/app/views/access_links/_form.html.erb b/app/views/access_links/_form.html.erb
index a5145adc7..4de6e8e85 100644
--- a/app/views/access_links/_form.html.erb
+++ b/app/views/access_links/_form.html.erb
@@ -6,29 +6,17 @@
<%= form.input :name %>
<%= form.input :access_link_type, :as => :select, :collection => Chouette::AccessLink.access_link_types, :include_blank => false, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %>
<%= form.input :comment %>
- <%= form.input :link_distance %>
- <%= form.inputs :name => t('access_links.show.durations') do %>
- <%= form.input "default_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "default_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "default_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :default_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("default_duration")%>
- <%= form.input "frequent_traveller_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "frequent_traveller_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "frequent_traveller_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :frequent_traveller_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("frequent_traveller_duration")%>
- <%= form.input "occasional_traveller_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "occasional_traveller_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "occasional_traveller_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :occasional_traveller_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("occasional_traveller_duration")%>
- <%= form.input "mobility_restricted_traveller_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
- <%= form.input "mobility_restricted_traveller_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input "mobility_restricted_traveller_duration(3i)", :as => :hidden ,:input_html => { :value => "1" } %>
- <%= form.input :mobility_restricted_traveller_duration, :ignore_date=>true,:include_seconds=>true, :label => @access_link.human_attribute_name("mobility_restricted_traveller_duration")%>
- <% end %>
+ <%= form.input :link_distance %>
<%= form.input :mobility_restricted_suitability,:as => :boolean %>
<%= form.input :stairs_availability,:as => :boolean %>
<%= form.input :lift_availability,:as => :boolean %>
<%= form.input :objectid, :required => !@access_link.new_record? %>
+ <%= form.inputs :name => t('access_links.show.durations') do %>
+ <%= form.input :default_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :label => @access_link.human_attribute_name("default_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :frequent_traveller_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :include_seconds => true, :label => @access_link.human_attribute_name("frequent_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :occasional_traveller_duration, :as => :extended_time_picker, :size => 8, :include_seconds => true, :label => @access_link.human_attribute_name("occasional_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :mobility_restricted_traveller_duration, :as => :extended_time_picker, :include_seconds => true, :label => @access_link.human_attribute_name("mobility_restricted_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <% end %>
<% end %>
<%= form.actions do %>
<%= form.action :submit, :as => :button %>
diff --git a/app/views/access_points/_form.html.erb b/app/views/access_points/_form.html.erb
index b124f9237..e25379d8f 100644
--- a/app/views/access_points/_form.html.erb
+++ b/app/views/access_points/_form.html.erb
@@ -10,8 +10,8 @@
<%= form.input :street_name %>
<%= form.input :country_code %>
<%= form.input :comment %>
- <%= form.input :openning_time, :as => :time_picker, :input_html => { :class => "form-control input-sm dateselect-time"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
- <%= form.input :closing_time, :as => :time_picker, :input_html => { :class => "form-control input-sm dateselect-time"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :openning_time, :as => :time_picker, :input_html => { :class => "form-control input-sm timepicker_basic"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :closing_time, :as => :time_picker, :input_html => { :class => "form-control input-sm timepicker_basic"}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
<%= form.input :mobility_restricted_suitability,:as => :boolean %>
<%= form.input :stairs_availability,:as => :boolean %>
<%= form.input :lift_availability,:as => :boolean %>
diff --git a/app/views/connection_links/_form.erb b/app/views/connection_links/_form.erb
index 52f49d852..41eef1480 100644
--- a/app/views/connection_links/_form.erb
+++ b/app/views/connection_links/_form.erb
@@ -12,10 +12,10 @@
<%= form.input :objectid, :required => !@connection_link.new_record? %>
<% end %>
<%= form.inputs :name => t('connection_links.show.durations') do %>
- <%= form.input :default_duration, :as => :time_select, :size => 8, :include_seconds=>true, :label => @connection_link.human_attribute_name("default_duration"), :input_html => { :placeholder => "HH:MM" } %>
- <%= form.input :frequent_traveller_duration, :as => :time_select, :size => 8, :include_seconds=>true, :label => @connection_link.human_attribute_name("frequent_traveller_duration"), :input_html => { :placeholder => "HH:MM:SS" } %>
- <%= form.input :occasional_traveller_duration, :as => :time_select, :size => 8, :include_seconds=>true, :label => @connection_link.human_attribute_name("occasional_traveller_duration"), :input_html => { :placeholder => "HH:MM:SS" } %>
- <%= form.input :mobility_restricted_traveller_duration, :as => :time_select, :include_seconds=>true, :label => @connection_link.human_attribute_name("mobility_restricted_traveller_duration"), :input_html => { :placeholder => "HH:MM:SS" } %>
+ <%= form.input :default_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :label => @connection_link.human_attribute_name("default_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :frequent_traveller_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :include_seconds => true, :label => @connection_link.human_attribute_name("frequent_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :occasional_traveller_duration, :as => :extended_time_picker, :size => 8, :include_seconds => true, :label => @connection_link.human_attribute_name("occasional_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
+ <%= form.input :mobility_restricted_traveller_duration, :as => :extended_time_picker, :include_seconds => true, :label => @connection_link.human_attribute_name("mobility_restricted_traveller_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %>
<% end %>
<%= form.actions do %>
diff --git a/config/initializers/formtastic.rb b/config/initializers/formtastic.rb
index c1f7f972f..c20f77e40 100644
--- a/config/initializers/formtastic.rb
+++ b/config/initializers/formtastic.rb
@@ -1,20 +1,76 @@
- Formtastic::FormBuilder.i18n_lookups_by_default = true
-
-module Formtastic
- module Inputs
- class CheckBoxesInput
- def selected_values
- if object.respond_to?(method)
- selected_items = [object.send(method)].compact.flatten
-
- # FIX for ids only
- return selected_items.map(&:to_s).compact if selected_items.all?{ |i| i.is_a? Integer}
-
- [*selected_items.map { |o| send_or_call_or_object(value_method, o) }].compact
- else
- []
- end
- end
- end
- end
-end
+# encoding: utf-8
+
+# Set the default text field size when input is a string. Default is nil.
+Formtastic::FormBuilder.default_text_field_size = 50
+
+# Set the default text area height when input is a text. Default is 20.
+# Formtastic::FormBuilder.default_text_area_height = 5
+
+# Set the default text area width when input is a text. Default is nil.
+# Formtastic::FormBuilder.default_text_area_width = 50
+
+# Should all fields be considered "required" by default?
+# Defaults to true.
+# Formtastic::FormBuilder.all_fields_required_by_default = true
+
+# Should select fields have a blank option/prompt by default?
+# Defaults to true.
+# Formtastic::FormBuilder.include_blank_for_select_by_default = true
+
+# Set the string that will be appended to the labels/fieldsets which are required
+# It accepts string or procs and the default is a localized version of
+# '<abbr title="required">*</abbr>'. In other words, if you configure formtastic.required
+# in your locale, it will replace the abbr title properly. But if you don't want to use
+# abbr tag, you can simply give a string as below
+# Formtastic::FormBuilder.required_string = "(required)"
+
+# Set the string that will be appended to the labels/fieldsets which are optional
+# Defaults to an empty string ("") and also accepts procs (see required_string above)
+# Formtastic::FormBuilder.optional_string = "(optional)"
+
+# Set the way inline errors will be displayed.
+# Defaults to :sentence, valid options are :sentence, :list, :first and :none
+# Formtastic::FormBuilder.inline_errors = :sentence
+# Formtastic uses the following classes as default for hints, inline_errors and error list
+
+# If you override the class here, please ensure to override it in your stylesheets as well
+# Formtastic::FormBuilder.default_hint_class = "inline-hints"
+# Formtastic::FormBuilder.default_inline_error_class = "inline-errors"
+# Formtastic::FormBuilder.default_error_list_class = "errors"
+
+# Set the method to call on label text to transform or format it for human-friendly
+# reading when formtastic is used without object. Defaults to :humanize.
+# Formtastic::FormBuilder.label_str_method = :humanize
+
+# Set the array of methods to try calling on parent objects in :select and :radio inputs
+# for the text inside each @<option>@ tag or alongside each radio @<input>@. The first method
+# that is found on the object will be used.
+# Defaults to ["to_label", "display_name", "full_name", "name", "title", "username", "login", "value", "to_s"]
+# Formtastic::FormBuilder.collection_label_methods = [
+# "to_label", "display_name", "full_name", "name", "title", "username", "login", "value", "to_s"]
+
+# Specifies if labels/hints for input fields automatically be looked up using I18n.
+# Default value: true. Overridden for specific fields by setting value to true,
+# i.e. :label => true, or :hint => true (or opposite depending on initialized value)
+# Formtastic::FormBuilder.i18n_lookups_by_default = false
+
+# Specifies if I18n lookups of the default I18n Localizer should be cached to improve performance.
+# Defaults to true.
+# Formtastic::FormBuilder.i18n_cache_lookups = false
+
+# Specifies the class to use for localization lookups. You can create your own
+# class and use it instead by subclassing Formtastic::Localizer (which is the default).
+# Formtastic::FormBuilder.i18n_localizer = MyOwnLocalizer
+
+# You can add custom inputs or override parts of Formtastic by subclassing Formtastic::FormBuilder and
+# specifying that class here. Defaults to Formtastic::FormBuilder.
+# Formtastic::Helpers::FormHelper.builder = MyCustomBuilder
+
+# You can opt-in to Formtastic's use of the HTML5 `required` attribute on `<input>`, `<select>`
+# and `<textarea>` tags by setting this to false (defaults to true).
+# Formtastic::FormBuilder.use_required_attribute = true
+
+# You can opt-in to new HTML5 browser validations (for things like email and url inputs) by setting
+# this to false. Doing so will add a `novalidate` attribute to the `<form>` tag.
+# See http://diveintohtml5.org/forms.html#validation for more info.
+# Formtastic::FormBuilder.perform_browser_validations = true