Rename TypeDeChamps to TypeDeChamp

This commit is contained in:
Xavier J 2015-11-05 11:21:44 +01:00
parent 519af34c82
commit f3d8645426
34 changed files with 644 additions and 634 deletions

View file

@ -1,14 +1,14 @@
var ready = function () {
$("#add_type_de_champs_procedure").on('click', function (e) {
add_new_type_de('champs');
$("#add_type_de_champ_procedure").on('click', function (e) {
add_new_type_de('champ');
});
$("#add_type_de_piece_justificative_procedure").on('click', function (e) {
add_new_type_de('piece_justificative');
});
add_delete_listener_on_click_for_type_de("champs", "#liste_champs .btn-danger");
add_delete_listener_on_click_for_type_de("champs", "#new_type_de_champs .btn-danger");
add_delete_listener_on_click_for_type_de("champ", "#liste_champ .btn-danger");
add_delete_listener_on_click_for_type_de("champ", "#new_type_de_champ .btn-danger");
add_delete_listener_on_click_for_type_de("piece_justificative", "#liste_piece_justificative .btn-danger");
add_delete_listener_on_click_for_type_de("piece_justificative", "#new_type_de_piece_justificative .btn-danger");
@ -35,16 +35,16 @@ function add_new_type_de(type_libelle) {
PJ = 1,
ERROR = -1;
if (is_champs_or_pj() == ERROR) return false;
if (is_champ_or_pj() == ERROR) return false;
function is_champs_or_pj() {
if (type_libelle == 'champs') return CHAMPS;
function is_champ_or_pj() {
if (type_libelle == 'champ') return CHAMPS;
else if (type_libelle == 'piece_justificative') return PJ;
else return ERROR;
}
function which_index() {
return (is_champs_or_pj() == CHAMPS ? types_de_champs_index : types_de_piece_justificative_index)
return (is_champ_or_pj() == CHAMPS ? types_de_champ_index : types_de_piece_justificative_index)
}
$("#liste_" + type_libelle).append($("#type_de_" + type_libelle + "_" + which_index()));
@ -52,11 +52,11 @@ function add_new_type_de(type_libelle) {
$("#delete_type_de_" + type_libelle + "_" + which_index() + "_button").show();
if (is_champs_or_pj() == CHAMPS) {
types_de_champs_index++;
add_new_type_de_champs_params(which_index());
if (is_champ_or_pj() == CHAMPS) {
types_de_champ_index++;
add_new_type_de_champ_params(which_index());
}
else if (is_champs_or_pj() == PJ) {
else if (is_champ_or_pj() == PJ) {
types_de_piece_justificative_index++;
add_new_type_de_piece_justificative_params(which_index());
}
@ -72,9 +72,9 @@ function add_new_type_de(type_libelle) {
$("#new_type_de_" + type_libelle + " #delete_type_de_" + type_libelle + "_" + (which_index() - 1) + "_button").attr('id', "delete_type_de_" + type_libelle + "_" + which_index() + "_button");
$("#new_type_de_" + type_libelle + " #delete_type_de_" + type_libelle + "_" + (which_index() - 1) + "_procedure").attr('id', "delete_type_de_" + type_libelle + "_" + which_index() + "_procedure");
if (is_champs_or_pj() == CHAMPS)
add_delete_listener_on_click_for_type_de("champs", "#delete_type_de_champs_" + which_index() + "_procedure");
else if (is_champs_or_pj() == PJ)
if (is_champ_or_pj() == CHAMPS)
add_delete_listener_on_click_for_type_de("champ", "#delete_type_de_champ_" + which_index() + "_procedure");
else if (is_champ_or_pj() == PJ)
add_delete_listener_on_click_for_type_de("piece_justificative", "#delete_type_de_piece_justificative_" + which_index() + "_procedure");
$("#new_type_de_" + type_libelle + " #add_type_de_" + type_libelle + "_button").remove();
@ -86,21 +86,21 @@ function add_new_type_de(type_libelle) {
config_up_and_down_button();
}
function add_new_type_de_champs_params() {
$("#new_type_de_champs #libelle").attr('name', 'type_de_champs[' + types_de_champs_index + '][libelle]');
$("#new_type_de_champs #libelle").val('');
function add_new_type_de_champ_params() {
$("#new_type_de_champ #libelle").attr('name', 'type_de_champ[' + types_de_champ_index + '][libelle]');
$("#new_type_de_champ #libelle").val('');
$("#new_type_de_champs #description").attr('name', 'type_de_champs[' + types_de_champs_index + '][description]');
$("#new_type_de_champs #description").val('');
$("#new_type_de_champ #description").attr('name', 'type_de_champ[' + types_de_champ_index + '][description]');
$("#new_type_de_champ #description").val('');
$("#new_type_de_champs #type_champs").attr('name', 'type_de_champs[' + types_de_champs_index + '][type]');
$("#new_type_de_champ #type_champs").attr('name', 'type_de_champ[' + types_de_champ_index + '][type]');
$("#new_type_de_champs .order_place").attr('name', 'type_de_champs[' + types_de_champs_index + '][order_place]');
$("#new_type_de_champs .order_place").val(parseInt($("#liste_champs .order_place").last().val()) + 1);
$("#new_type_de_champ .order_place").attr('name', 'type_de_champ[' + types_de_champ_index + '][order_place]');
$("#new_type_de_champ .order_place").val(parseInt($("#liste_champ .order_place").last().val()) + 1);
$("#new_type_de_champs .order_type_de_champs_button").attr('id', 'order_type_de_champs_' + types_de_champs_index + '_button')
$("#new_type_de_champs .order_type_de_champs_button .button_up").attr('id', 'order_type_de_champs_' + types_de_champs_index + '_up_procedure')
$("#new_type_de_champs .order_type_de_champs_button .button_down").attr('id', 'order_type_de_champs_' + types_de_champs_index + '_down_procedure')
$("#new_type_de_champ .order_type_de_champ_button").attr('id', 'order_type_de_champ_' + types_de_champ_index + '_button')
$("#new_type_de_champ .order_type_de_champ_button .button_up").attr('id', 'order_type_de_champ_' + types_de_champ_index + '_up_procedure')
$("#new_type_de_champ .order_type_de_champ_button .button_down").attr('id', 'order_type_de_champ_' + types_de_champ_index + '_down_procedure')
}
function add_new_type_de_piece_justificative_params() {
@ -117,57 +117,57 @@ function delete_type_de(type_libelle, index) {
$("#liste_delete_" + type_libelle).append(delete_node);
$("#type_de_" + type_libelle + "_" + index + " #delete").val('true');
if (type_libelle == 'champs') {
if (type_libelle == 'champ') {
var next_order_place = parseInt($("#type_de_" + type_libelle + "_" + index + " .order_place").val());
var type_de_champs_to_change_order_place = $("#liste_champs .order_place");
var type_de_champ_to_change_order_place = $("#liste_champ .order_place");
type_de_champs_to_change_order_place.each(function () {
type_de_champ_to_change_order_place.each(function () {
if ($(this).val() > next_order_place) {
$(this).val(next_order_place++);
}
});
$("#new_type_de_champs .order_place").val(next_order_place);
$("#new_type_de_champ .order_place").val(next_order_place);
config_up_and_down_button();
}
}
function config_up_and_down_button() {
if ($("#liste_champs .order_place").size() > 0) {
var first_index = $("#liste_champs .order_place").first()
if ($("#liste_champ .order_place").size() > 0) {
var first_index = $("#liste_champ .order_place").first()
.attr('name')
.replace('type_de_champs[', '')
.replace('type_de_champ[', '')
.replace('][order_place]', '');
var last_index = $("#liste_champs .order_place").last()
var last_index = $("#liste_champ .order_place").last()
.attr('name')
.replace('type_de_champs[', '')
.replace('type_de_champ[', '')
.replace('][order_place]', '');
$(".button_up").show();
$(".button_down").show();
$("#liste_champs .order_type_de_champs_button").show();
$("#liste_champ .order_type_de_champ_button").show();
$("#order_type_de_champs_" + first_index + "_up_procedure").hide();
$("#order_type_de_champs_" + last_index + "_down_procedure").hide();
$("#order_type_de_champ_" + first_index + "_up_procedure").hide();
$("#order_type_de_champ_" + last_index + "_down_procedure").hide();
}
}
function add_action_listener_on_click_for_button_up(node_id) {
$(node_id).on('click', function (e) {
var index = (e.target.id).replace('order_type_de_champs_', '').replace('_up_procedure', '');
var order_place = parseInt($("#type_de_champs_" + index + " .order_place").val());
var index = (e.target.id).replace('order_type_de_champ_', '').replace('_up_procedure', '');
var order_place = parseInt($("#type_de_champ_" + index + " .order_place").val());
var order_place_before = order_place - 1;
var node_before = $("input[class='order_place'][value='" + order_place_before + "']").parent();
var index_before = (node_before.attr('id')).replace('type_de_champs_', '');
var index_before = (node_before.attr('id')).replace('type_de_champ_', '');
$("#type_de_champs_" + index).insertBefore("#type_de_champs_" + index_before);
$("#type_de_champs_" + index_before);
$("#type_de_champ_" + index).insertBefore("#type_de_champ_" + index_before);
$("#type_de_champ_" + index_before);
$("#type_de_champs_" + index_before + " .order_place").val(order_place);
$("#type_de_champs_" + index + " .order_place").val(order_place_before);
$("#type_de_champ_" + index_before + " .order_place").val(order_place);
$("#type_de_champ_" + index + " .order_place").val(order_place_before);
config_up_and_down_button();
});
@ -175,19 +175,19 @@ function add_action_listener_on_click_for_button_up(node_id) {
function add_action_listener_on_click_for_button_down(node_id) {
$(node_id).on('click', function (e) {
var index = (e.target.id).replace('order_type_de_champs_', '').replace('_down_procedure', '');
var order_place = parseInt($("#type_de_champs_" + index + " .order_place").val());
var index = (e.target.id).replace('order_type_de_champ_', '').replace('_down_procedure', '');
var order_place = parseInt($("#type_de_champ_" + index + " .order_place").val());
var order_place_after = order_place + 1;
var node_after = $("input[class='order_place'][value='" + order_place_after + "']").parent();
var index_after = (node_after.attr('id')).replace('type_de_champs_', '');
var index_after = (node_after.attr('id')).replace('type_de_champ_', '');
$("#type_de_champs_" + index).insertAfter("#type_de_champs_" + index_after);
$("#type_de_champs_" + index_after);
$("#type_de_champ_" + index).insertAfter("#type_de_champ_" + index_after);
$("#type_de_champ_" + index_after);
$("#type_de_champs_" + index_after + " .order_place").val(order_place);
$("#type_de_champs_" + index + " .order_place").val(order_place_after);
$("#type_de_champ_" + index_after + " .order_place").val(order_place);
$("#type_de_champ_" + index + " .order_place").val(order_place_after);
config_up_and_down_button();
});

View file

@ -24,7 +24,7 @@ class Admin::ProceduresController < ApplicationController
return render 'new'
end
process_types_de_champs_params
process_types_de_champ_params
process_types_de_piece_justificative_params
flash.notice = 'Procédure enregistrée'
@ -39,7 +39,7 @@ class Admin::ProceduresController < ApplicationController
return render 'show'
end
process_types_de_champs_params
process_types_de_champ_params
process_types_de_piece_justificative_params
flash.notice = 'Préocédure modifiée'
@ -48,22 +48,22 @@ class Admin::ProceduresController < ApplicationController
private
def process_types_de_champs_params
unless params[:type_de_champs].nil? || params[:type_de_champs].size == 0
params[:type_de_champs].each do |index, type_de_champs|
def process_types_de_champ_params
unless params[:type_de_champ].nil? || params[:type_de_champ].size == 0
params[:type_de_champ].each do |index, type_de_champ|
if type_de_champs[:delete] == 'true'
unless type_de_champs[:id_type_de_champs].nil? || type_de_champs[:id_type_de_champs] == ''
TypeDeChamps.destroy(type_de_champs[:id_type_de_champs])
if type_de_champ[:delete] == 'true'
unless type_de_champ[:id_type_de_champ].nil? || type_de_champ[:id_type_de_champ] == ''
TypeDeChamp.destroy(type_de_champ[:id_type_de_champ])
end
else
if type_de_champs[:id_type_de_champs].nil? || type_de_champs[:id_type_de_champs] == ''
bdd_object = TypeDeChamps.new
if type_de_champ[:id_type_de_champ].nil? || type_de_champ[:id_type_de_champ] == ''
bdd_object = TypeDeChamp.new
else
bdd_object = TypeDeChamps.find(type_de_champs[:id_type_de_champs])
bdd_object = TypeDeChamp.find(type_de_champ[:id_type_de_champ])
end
save_type_de_champs bdd_object, type_de_champs
save_type_de_champ bdd_object, type_de_champ
end
end
end
@ -90,7 +90,7 @@ class Admin::ProceduresController < ApplicationController
end
end
def save_type_de_champs database_object, source
def save_type_de_champ database_object, source
database_object.libelle = source[:libelle]
database_object.type_champs = source[:type]
database_object.description = source[:description]

View file

@ -1,5 +1,5 @@
class Champ < ActiveRecord::Base
belongs_to :dossier
belongs_to :type_de_champs
delegate :libelle, :type_champs, :order_place, to: :type_de_champs
belongs_to :type_de_champ
delegate :libelle, :type_champs, :order_place, to: :type_de_champ
end

View file

@ -19,7 +19,7 @@ class Dossier < ActiveRecord::Base
delegate :siren, to: :entreprise
delegate :siret, to: :etablissement
delegate :types_de_piece_justificative, to: :procedure
delegate :types_de_champs, to: :procedure
delegate :types_de_champ, to: :procedure
before_create :build_default_cerfa
@ -42,13 +42,13 @@ class Dossier < ActiveRecord::Base
end
def build_default_champs
procedure.types_de_champs.each do |type_de_champs|
Champ.create(type_de_champs_id: type_de_champs.id, dossier_id: id)
procedure.types_de_champ.each do |type_de_champ|
Champ.create(type_de_champ_id: type_de_champ.id, dossier_id: id)
end
end
def ordered_champs
champs.joins(', types_de_champs').where('champs.type_de_champs_id = types_de_champs.id').order('order_place')
champs.joins(', types_de_champ').where('champs.type_de_champ_id = types_de_champ.id').order('order_place')
end
def ordered_commentaires

View file

@ -1,6 +1,6 @@
class Procedure < ActiveRecord::Base
has_many :types_de_piece_justificative
has_many :types_de_champs
has_many :types_de_champ
has_many :dossiers
validates :libelle, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,4 +1,4 @@
class TypeDeChamps < ActiveRecord::Base
class TypeDeChamp < ActiveRecord::Base
enum type_champs: {text: 'text',
textarea: 'textarea',
datetime: 'datetime',

View file

@ -17,7 +17,7 @@
%h3.text-info
Liste des champs à remplir pour un dossier
=render partial: 'admin/procedures/types_de_champs/liste', locals: {f: f}
=render partial: 'admin/procedures/types_de_champ/liste', locals: {f: f}
%br
%br

View file

@ -0,0 +1,40 @@
.form-inline{id:"type_de_champ_#{index}", style: 'padding-bottom:8px'}
.form-group{ style: 'padding-right: 2%' }
%h4 Libellé
%input.form-control#libelle{ type: 'text', placeholder: 'Libelle', name:"type_de_champ[#{index}][libelle]", size: 40, value: ("#{ type_de_champ.libelle }" unless type_de_champ.nil? ) }
.form-group{ style: 'padding-right: 2%' }
%h4 Type
%select.form-control#type_champs{ name: "type_de_champ[#{index}][type]" }
%option{ value: 'text', selected: (type_de_champ.type_champs == 'text' unless type_de_champ.nil?)}
Simple texte
%option{ value: 'textarea', selected: (type_de_champ.type_champs == 'textarea' unless type_de_champ.nil?)}
Texte multi-lignes
%option{ value: 'datetime', selected: (type_de_champ.type_champs == 'datetime' unless type_de_champ.nil?)}
Date
%option{ value: 'number', selected: (type_de_champ.type_champs == 'number' unless type_de_champ.nil?)}
Valeur numérique
.form-group{ style: 'padding-right: 2%' }
%h4
Description
%textarea.form-control#description{cols: 60, placeholder: 'Description', name: "type_de_champ[#{index}][description]"}
=("#{ type_de_champ.description }" unless type_de_champ.nil? )
%input.order_place{type: 'hidden', name: "type_de_champ[#{index}][order_place]", value: (("#{ type_de_champ.order_place }" unless type_de_champ.nil?) || index+1)}
%input#id_type_de_champ{type: 'hidden', name: "type_de_champ[#{index}][id_type_de_champ]", value: (("#{ type_de_champ.id}" unless type_de_champ.nil?))}
%input#delete{type: 'hidden', name: "type_de_champ[#{index}][delete]", value: 'false'}
-if type_de_champ.nil?
.form-group#add_type_de_champ_button
%br &nbsp;
%button.form-control.btn.btn-success#add_type_de_champ_procedure{type: 'button'} Ajouter
.form-group.order_type_de_champ_button{id: "order_type_de_champ_#{index}_button", style: ("display:none" if type_de_champ.nil?)}
%br &nbsp;
%button.form-control.btn.btn-default.button_up.fa.fa-chevron-up{type: 'button', id: "order_type_de_champ_#{index}_up_procedure"}
%button.form-control.btn.btn-default.button_down.fa.fa-chevron-down{type: 'button', id: "order_type_de_champ_#{index}_down_procedure"}
.form-group{id: "delete_type_de_champ_#{index}_button", style: ("display:none" if type_de_champ.nil?)}
%br &nbsp;
%button.form-control.btn.btn-danger.fa.fa-trash-o{type: 'button', id: "delete_type_de_champ_#{index}_procedure"}

View file

@ -0,0 +1,12 @@
#liste_champ
-if @procedure.types_de_champ.size > 0
- @procedure.types_de_champ.order(:order_place).each_with_index do |type_de_champ, index|
=render partial: 'admin/procedures/types_de_champ/form', locals:{ type_de_champ: type_de_champ, index: index }
#liste_delete_champ
#new_type_de_champ
=render partial: 'admin/procedures/types_de_champ/form', locals:{ type_de_champ: nil, index: @procedure.types_de_champ.size }
%script{ type:'text/javascript' }
="var types_de_champ_index = #{@procedure.types_de_champ.size}"

View file

@ -1,40 +0,0 @@
.form-inline{id:"type_de_champs_#{index}", style: 'padding-bottom:8px'}
.form-group{ style: 'padding-right: 2%' }
%h4 Libellé
%input.form-control#libelle{ type: 'text', placeholder: 'Libelle', name:"type_de_champs[#{index}][libelle]", size: 40, value: ("#{ type_de_champs.libelle }" unless type_de_champs.nil? ) }
.form-group{ style: 'padding-right: 2%' }
%h4 Type
%select.form-control#type_champs{ name: "type_de_champs[#{index}][type]" }
%option{ value: 'text', selected: (type_de_champs.type_champs == 'text' unless type_de_champs.nil?)}
Simple texte
%option{ value: 'textarea', selected: (type_de_champs.type_champs == 'textarea' unless type_de_champs.nil?)}
Texte multi-lignes
%option{ value: 'datetime', selected: (type_de_champs.type_champs == 'datetime' unless type_de_champs.nil?)}
Date
%option{ value: 'number', selected: (type_de_champs.type_champs == 'number' unless type_de_champs.nil?)}
Valeur numérique
.form-group{ style: 'padding-right: 2%' }
%h4
Description
%textarea.form-control#description{cols: 60, placeholder: 'Description', name: "type_de_champs[#{index}][description]"}
=("#{ type_de_champs.description }" unless type_de_champs.nil? )
%input.order_place{type: 'hidden', name: "type_de_champs[#{index}][order_place]", value: (("#{ type_de_champs.order_place }" unless type_de_champs.nil?) || index+1)}
%input#id_type_de_champs{type: 'hidden', name: "type_de_champs[#{index}][id_type_de_champs]", value: (("#{ type_de_champs.id}" unless type_de_champs.nil?))}
%input#delete{type: 'hidden', name: "type_de_champs[#{index}][delete]", value: 'false'}
-if type_de_champs.nil?
.form-group#add_type_de_champs_button
%br &nbsp;
%button.form-control.btn.btn-success#add_type_de_champs_procedure{type: 'button'} Ajouter
.form-group.order_type_de_champs_button{id: "order_type_de_champs_#{index}_button", style: ("display:none" if type_de_champs.nil?)}
%br &nbsp;
%button.form-control.btn.btn-default.button_up.fa.fa-chevron-up{type: 'button', id: "order_type_de_champs_#{index}_up_procedure"}
%button.form-control.btn.btn-default.button_down.fa.fa-chevron-down{type: 'button', id: "order_type_de_champs_#{index}_down_procedure"}
.form-group{id: "delete_type_de_champs_#{index}_button", style: ("display:none" if type_de_champs.nil?)}
%br &nbsp;
%button.form-control.btn.btn-danger.fa.fa-trash-o{type: 'button', id: "delete_type_de_champs_#{index}_procedure"}

View file

@ -1,12 +0,0 @@
#liste_champs
-if @procedure.types_de_champs.size > 0
- @procedure.types_de_champs.order(:order_place).each_with_index do |type_de_champs, index|
=render partial: 'admin/procedures/types_de_champs/form', locals:{ type_de_champs: type_de_champs, index: index }
#liste_delete_champs
#new_type_de_champs
=render partial: 'admin/procedures/types_de_champs/form', locals:{ type_de_champs: nil, index: @procedure.types_de_champs.size }
%script{ type:'text/javascript' }
="var types_de_champs_index = #{@procedure.types_de_champs.size}"