aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/time_table_combinations.coffee12
-rw-r--r--app/assets/stylesheets/components/_forms.sass2
-rw-r--r--app/models/time_table_combination.rb6
-rw-r--r--app/views/time_table_combinations/_form.html.slim24
-rw-r--r--app/views/time_table_combinations/new.html.slim14
5 files changed, 39 insertions, 19 deletions
diff --git a/app/assets/javascripts/time_table_combinations.coffee b/app/assets/javascripts/time_table_combinations.coffee
index 8fd9dadb1..8923af958 100644
--- a/app/assets/javascripts/time_table_combinations.coffee
+++ b/app/assets/javascripts/time_table_combinations.coffee
@@ -1,8 +1,6 @@
-$(document).on("change", '#time_table_combination_combined_type', (e) ->
- el = $("#time_table_combination_#{$(this).val()}_id")
- other = $(".tt_combination_target:not(##{el.attr('id')})")
+@combinedTypeToggle = ->
+ $('#time_table_combination_combined_type').on 'click', ->
+ $(this).closest('.has_switch').siblings('.form-group').each ->
+ $(this).toggleClass('hidden')
- if el.length
- el.prop('disabled', false).parents('.form-group').removeClass('hidden').show()
- other.prop('disabled', true).parents('.form-group').hide()
-)
+$(document).on 'turbolinks:load', combinedTypeToggle
diff --git a/app/assets/stylesheets/components/_forms.sass b/app/assets/stylesheets/components/_forms.sass
index 46f40291a..7a5323011 100644
--- a/app/assets/stylesheets/components/_forms.sass
+++ b/app/assets/stylesheets/components/_forms.sass
@@ -337,7 +337,7 @@ table, .table
+ .switch-label
position: relative
display: inline-block
- width: 50px
+ width: 100% /* 50px */
height: 30px
padding-left: 60px
line-height: 30px
diff --git a/app/models/time_table_combination.rb b/app/models/time_table_combination.rb
index ec3c74641..9b5111014 100644
--- a/app/models/time_table_combination.rb
+++ b/app/models/time_table_combination.rb
@@ -1,4 +1,5 @@
class TimeTableCombination
+
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
@@ -10,8 +11,8 @@ class TimeTableCombination
validates :time_table_id, presence: true, if: "calendar_id.blank?"
validates :calendar_id, presence: true, if: "time_table_id.blank?"
+ validates_inclusion_of :combined_type, :in => %w(time_table calendar)
validates_inclusion_of :operation, :in => %w(union intersection disjunction), :allow_nil => true
- validates_inclusion_of :combined_type, :in => %w(time_table calendar)
def clean
self.source_id = nil
@@ -23,13 +24,14 @@ class TimeTableCombination
end
def self.operations
- %w( union intersection disjunction)
+ %w(union intersection disjunction)
end
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
+ self.combined_type = "time_table"
end
def persisted?
diff --git a/app/views/time_table_combinations/_form.html.slim b/app/views/time_table_combinations/_form.html.slim
index 6051bfffa..37e072bbc 100644
--- a/app/views/time_table_combinations/_form.html.slim
+++ b/app/views/time_table_combinations/_form.html.slim
@@ -1,12 +1,22 @@
-h1 = @time_table.comment
-= simple_form_for [@referential, @time_table, @combination], html: {class: 'form-horizontal'}, wrapper: :horizontal_form do |form|
+= simple_form_for [@referential, @time_table, @combination], html: {class: 'form-horizontal', id: 'tt_combination_form'}, wrapper: :horizontal_form do |f|
.row
.col-lg-12
- = form.input :combined_type, as: :select, collection: ['time_table', 'calendar']
- = form.input :operation, as: :select, collection: TimeTableCombination.operations
+ .form-group.has_switch
+ = f.label :combined_type, class: 'col-sm-4 control-label required' do
+ = 'Type de calendriers'
+ abbr title='Champ requis' *
+ = f.input :combined_type, as: :boolean, checked_value: 'time_table', unchecked_value: 'calendar', required: false, label: content_tag(:span, t("time_table_combinations.combined_type.#{@combination.combined_type}"), class: 'switch-label', data: { checkedValue: 'Calendriers', uncheckedValue: 'Modèles de calendriers' }), wrapper_html: { class: 'col-sm-8' }
- = form.input :time_table_id, as: :select, input_html: {class: 'tt_combination_target', data: { select2_ajax: 'true', term: 'comment_or_objectid_cont', url: referential_autocomplete_time_tables_path(@referential, format: :json)}}, disabled: @combination.combined_type != 'time_table', wrapper_html: {class: @combination.combined_type != 'time_table' ? 'hidden' : ''}
+ = f.input :time_table_id, as: :select, input_html: {class: 'tt_combination_target', style: "width: 100%", data: { 'select2-ajax': 'true', term: 'comment_or_objectid_cont', url: referential_autocomplete_time_tables_path(@referential, format: :json)}}, wrapper_html: {class: @combination.combined_type != 'time_table' ? 'hidden' : ''}
+
+ = f.input :calendar_id, as: :select, input_html: { class: 'tt_combination_target', style: "width: 100%", data: { 'select2-ajax': 'true', term: 'name_cont', url: autocomplete_calendars_path}}, wrapper_html: {class: @combination.combined_type != 'calendar' ? 'hidden' : ''}
- = form.input :calendar_id, as: :select, input_html: { class: 'tt_combination_target', data: { select2_ajax: 'true', term: 'name_cont', url: autocomplete_calendars_path}}, disabled: @combination.combined_type != 'calendar', wrapper_html: {class: @combination.combined_type != 'calendar' ? 'hidden' : ''}
+ .separator
- = form.button :submit, t('actions.submit')
+ .row
+ .col-lg-12
+ = f.label :operation, class: 'col-sm-4 control-label'
+ = f.input :operation, as: :radio_buttons, label: false, collection: TimeTableCombination.operations, label_method: lambda{|o| t("time_table_combinations.operations.#{o}")}, wrapper_html: { class: 'col-sm-8' }
+
+
+ = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'tt_combination_form'
diff --git a/app/views/time_table_combinations/new.html.slim b/app/views/time_table_combinations/new.html.slim
index 9bed24730..e49a10bc6 100644
--- a/app/views/time_table_combinations/new.html.slim
+++ b/app/views/time_table_combinations/new.html.slim
@@ -1,2 +1,12 @@
-= t('time_tables.show.combine_form')
-= render 'form'
+/ PageHeader
+= pageheader 'map-marker',
+ t('time_tables.show.combine_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'