Explication: add champ in edit formulaire
This commit is contained in:
parent
fcca0bb247
commit
d250cafccc
3 changed files with 19 additions and 15 deletions
|
@ -23,13 +23,13 @@ function destroy_action(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function on_change_type_de_champ_select (){
|
function on_change_type_de_champ_select (){
|
||||||
|
|
||||||
$("select.form-control.type_champ").on('change', function(e){
|
$("select.form-control.type_champ").on('change', function(e){
|
||||||
|
|
||||||
parent = $(this).parent().parent();
|
parent = $(this).parent().parent();
|
||||||
|
|
||||||
parent.removeClass('header_section');
|
parent.removeClass('header_section');
|
||||||
parent.children(".drop_down_list").removeClass('show_inline');
|
parent.children(".drop_down_list").removeClass('show_inline');
|
||||||
|
$('.mandatory', parent).show();
|
||||||
|
|
||||||
switch(this.value){
|
switch(this.value){
|
||||||
case 'header_section':
|
case 'header_section':
|
||||||
|
@ -38,7 +38,9 @@ function on_change_type_de_champ_select (){
|
||||||
case 'drop_down_list':
|
case 'drop_down_list':
|
||||||
parent.children(".drop_down_list").addClass('show_inline');
|
parent.children(".drop_down_list").addClass('show_inline');
|
||||||
break;
|
break;
|
||||||
|
case 'explication':
|
||||||
|
$('.mandatory', parent).hide();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ class TypeDeChamp < ActiveRecord::Base
|
||||||
validates :libelle, presence: true, allow_blank: false, allow_nil: false
|
validates :libelle, presence: true, allow_blank: false, allow_nil: false
|
||||||
validates :type_champ, presence: true, allow_blank: false, allow_nil: false
|
validates :type_champ, presence: true, allow_blank: false, allow_nil: false
|
||||||
|
|
||||||
before_validation :change_header_section_mandatory
|
before_validation :check_mandatory
|
||||||
|
|
||||||
def self.type_de_champs_list_fr
|
def self.type_de_champs_list_fr
|
||||||
type_champs.map { |champ| [I18n.t("activerecord.attributes.type_de_champ.type_champs.#{champ.last}"), champ.first] }
|
type_champs.map { |champ| [I18n.t("activerecord.attributes.type_de_champ.type_champs.#{champ.last}"), champ.first] }
|
||||||
|
@ -40,8 +40,8 @@ class TypeDeChamp < ActiveRecord::Base
|
||||||
!(type_champ == 'textarea' || type_champ == 'header_section')
|
!(type_champ == 'textarea' || type_champ == 'header_section')
|
||||||
end
|
end
|
||||||
|
|
||||||
def change_header_section_mandatory
|
def check_mandatory
|
||||||
self.mandatory = false if self.type_champ == 'header_section'
|
self.mandatory = false if %w(header_section explication).include?(self.type_champ)
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,24 +1,26 @@
|
||||||
= f.fields_for @types_de_champ_facade.fields_for_var, types_de_champ, remote: true do |ff|
|
= f.fields_for @types_de_champ_facade.fields_for_var, types_de_champ, remote: true do |ff|
|
||||||
.form-inline{class:"#{ff.object.object.type_champ == 'header_section' ? 'header_section' : ''}"}
|
.form-inline{ class: (ff.object.object.type_champ == 'header_section' ? 'header_section' : '') }
|
||||||
.form-group.libelle
|
.form-group.libelle
|
||||||
%h4 Libellé
|
%h4 Libellé
|
||||||
= ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé'
|
= ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé'
|
||||||
|
|
||||||
.form-group.type
|
.form-group.type
|
||||||
%h4 Type
|
%h4 Type
|
||||||
= ff.select :type_champ, TypeDeChamp.type_de_champs_list_fr, {}, {class: 'form-control type_champ'}
|
= ff.select :type_champ, TypeDeChamp.type_de_champs_list_fr, {}, { class: 'form-control type_champ' }
|
||||||
|
|
||||||
.form-group.description
|
.form-group.description
|
||||||
%h4 Description
|
%h4 Description
|
||||||
= ff.text_area :description, class: 'form-control description', placeholder: 'Description', rows: 2
|
= ff.text_area :description, class: 'form-control description', placeholder: 'Description', rows: 3
|
||||||
|
|
||||||
.form-group.drop_down_list{class:"#{ff.object.object.type_champ == 'drop_down_list' ? 'show_inline' : ''}",style:'margin-right: 5px'}
|
.form-group.drop_down_list{ class: (ff.object.object.type_champ == 'drop_down_list' ? 'show_inline' : ''), style: 'margin-right: 5px' }
|
||||||
%h4 Liste déroulante
|
%h4 Liste déroulante
|
||||||
= ff.fields_for :drop_down_list_attributes, ff.object.object.drop_down_list do |fff|
|
= ff.fields_for :drop_down_list_attributes, ff.object.object.drop_down_list do |fff|
|
||||||
= fff.text_area :value, class: 'form-control drop_down_list', placeholder: "Ecrire une valeur par ligne.\nEcrire --valeur-- pour un séparateur.", rows: 3, cols: 30
|
= fff.text_area :value, class: 'form-control drop_down_list', placeholder: "Ecrire une valeur par ligne.\nEcrire --valeur-- pour un séparateur.", rows: 3, cols: 30
|
||||||
= fff.hidden_field :id
|
= fff.hidden_field :id
|
||||||
- unless ff.object.object.class == TypeDeChampPrivate
|
|
||||||
.form-group.mandatory
|
|
||||||
|
- hide_mandatory = (ff.object.object.class == TypeDeChampPrivate || ff.object.object.type_champ == 'explication')
|
||||||
|
.form-group.mandatory{ style: hide_mandatory ? 'visibility: hidden;' : '' }
|
||||||
%h4 Obligatoire ?
|
%h4 Obligatoire ?
|
||||||
.center
|
.center
|
||||||
= ff.check_box :mandatory, placeholder: 'Obligatoire ?'
|
= ff.check_box :mandatory, placeholder: 'Obligatoire ?'
|
||||||
|
|
Loading…
Reference in a new issue