Refactor TypeDeXxxx

This commit is contained in:
Xavier J 2015-11-09 17:15:51 +01:00
parent f3d8645426
commit 0906d44ea8
16 changed files with 485 additions and 429 deletions

View file

@ -1,3 +1,7 @@
var CHAMPS = 0,
PJ = 1,
ERROR = -1;
var ready = function () { var ready = function () {
$("#add_type_de_champ_procedure").on('click', function (e) { $("#add_type_de_champ_procedure").on('click', function (e) {
add_new_type_de('champ'); add_new_type_de('champ');
@ -31,9 +35,6 @@ function add_delete_listener_on_click_for_type_de(type_libelle, node_id) {
} }
function add_new_type_de(type_libelle) { function add_new_type_de(type_libelle) {
var CHAMPS = 0,
PJ = 1,
ERROR = -1;
if (is_champ_or_pj() == ERROR) return false; if (is_champ_or_pj() == ERROR) return false;
@ -50,8 +51,6 @@ function add_new_type_de(type_libelle) {
$("#liste_" + type_libelle).append($("#type_de_" + type_libelle + "_" + which_index())); $("#liste_" + type_libelle).append($("#type_de_" + type_libelle + "_" + which_index()));
$("#new_type_de_" + type_libelle).append($("#type_de_" + type_libelle + "_" + which_index()).clone()); $("#new_type_de_" + type_libelle).append($("#type_de_" + type_libelle + "_" + which_index()).clone());
$("#delete_type_de_" + type_libelle + "_" + which_index() + "_button").show();
if (is_champ_or_pj() == CHAMPS) { if (is_champ_or_pj() == CHAMPS) {
types_de_champ_index++; types_de_champ_index++;
add_new_type_de_champ_params(which_index()); add_new_type_de_champ_params(which_index());
@ -63,19 +62,7 @@ function add_new_type_de(type_libelle) {
$("#new_type_de_" + type_libelle + " .form-inline").attr('id', 'type_de_' + type_libelle + '_' + which_index()); $("#new_type_de_" + type_libelle + " .form-inline").attr('id', 'type_de_' + type_libelle + '_' + which_index());
$("#new_type_de_" + type_libelle + " #id_type_de_" + type_libelle + "").attr('name', 'type_de_' + type_libelle + '[' + which_index() + '][id_type_de_' + type_libelle + ']'); config_delete_button(type_libelle, which_index(), is_champ_or_pj())
$("#new_type_de_" + type_libelle + " #id_type_de_" + type_libelle + "").val('');
$("#new_type_de_" + type_libelle + " #delete").attr('name', 'type_de_' + type_libelle + '[' + which_index() + '][delete]');
$("#new_type_de_" + type_libelle + " #delete").val('false');
$("#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_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(); $("#new_type_de_" + type_libelle + " #add_type_de_" + type_libelle + "_button").remove();
$("#new_type_de_" + type_libelle + " .form-inline").append($("#add_type_de_" + type_libelle + "_button")) $("#new_type_de_" + type_libelle + " .form-inline").append($("#add_type_de_" + type_libelle + "_button"))
@ -87,15 +74,19 @@ function add_new_type_de(type_libelle) {
} }
function add_new_type_de_champ_params() { 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").attr('name', 'procedure[new_type_de_champ[' + types_de_champ_index + ']][libelle]');
$("#new_type_de_champ #libelle").val(''); $("#new_type_de_champ .libelle").attr('id', 'procedure_new_type_de_champ_'+types_de_champ_index+'__libelle');
$("#new_type_de_champ .libelle").val('');
$("#new_type_de_champ #description").attr('name', 'type_de_champ[' + types_de_champ_index + '][description]'); $("#new_type_de_champ .description").attr('name', 'procedure[new_type_de_champ[' + types_de_champ_index + ']][description]');
$("#new_type_de_champ #description").val(''); $("#new_type_de_champ .description").attr('id', 'procedure_new_type_de_champ_'+types_de_champ_index+'__description');
$("#new_type_de_champ .description").val('');
$("#new_type_de_champ #type_champs").attr('name', 'type_de_champ[' + types_de_champ_index + '][type]'); $("#new_type_de_champ .type_champs").attr('name', 'procedure[new_type_de_champ[' + types_de_champ_index + ']][type_champs]');
$("#new_type_de_champ .type_champs").attr('id', 'procedure_new_type_de_champ_'+types_de_champ_index+'__type_champs');
$("#new_type_de_champ .order_place").attr('name', 'type_de_champ[' + types_de_champ_index + '][order_place]'); $("#new_type_de_champ .order_place").attr('name', 'procedure[new_type_de_champ[' + types_de_champ_index + ']][order_place]');
$("#new_type_de_champ .order_place").attr('id', 'procedure_new_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_champ .order_place").val(parseInt($("#liste_champ .order_place").last().val()) + 1);
$("#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").attr('id', 'order_type_de_champ_' + types_de_champ_index + '_button')
@ -104,18 +95,20 @@ function add_new_type_de_champ_params() {
} }
function add_new_type_de_piece_justificative_params() { function add_new_type_de_piece_justificative_params() {
$("#new_type_de_piece_justificative #libelle").attr('name', 'type_de_piece_justificative[' + types_de_piece_justificative_index + '][libelle]'); $("#new_type_de_piece_justificative .libelle").attr('name', 'procedure[new_type_de_piece_justificative[' + types_de_piece_justificative_index + ']][libelle]');
$("#new_type_de_piece_justificative #libelle").val(''); $("#new_type_de_piece_justificative .libelle").attr('id', 'procedure_new_type_de_piece_justificative_'+types_de_piece_justificative_index+'__libelle');
$("#new_type_de_piece_justificative .libelle").val('');
$("#new_type_de_piece_justificative #description").attr('name', 'type_de_piece_justificative[' + types_de_piece_justificative_index + '][description]'); $("#new_type_de_piece_justificative .description").attr('name', 'procedure[new_type_de_piece_justificative[' + types_de_piece_justificative_index + ']][description]');
$("#new_type_de_piece_justificative #description").val(''); $("#new_type_de_piece_justificative .description").attr('id', 'procedure_new_type_de_piece_justificative_'+types_de_piece_justificative_index+'__description');
$("#new_type_de_piece_justificative .description").val('');
} }
function delete_type_de(type_libelle, index) { function delete_type_de(type_libelle, index) {
var delete_node = $("#type_de_" + type_libelle + "_" + index).hide(); var delete_node = $("#type_de_" + type_libelle + "_" + index).hide();
$("#liste_delete_" + type_libelle).append(delete_node); $("#liste_delete_" + type_libelle).append(delete_node);
$("#type_de_" + type_libelle + "_" + index + " #delete").val('true'); $("#type_de_" + type_libelle + "_" + index + " .destroy").val('true');
if (type_libelle == 'champ') { if (type_libelle == 'champ') {
var next_order_place = parseInt($("#type_de_" + type_libelle + "_" + index + " .order_place").val()); var next_order_place = parseInt($("#type_de_" + type_libelle + "_" + index + " .order_place").val());
@ -134,15 +127,13 @@ function delete_type_de(type_libelle, index) {
function config_up_and_down_button() { function config_up_and_down_button() {
if ($("#liste_champ .order_place").size() > 0) { if ($("#liste_champ .order_place").size() > 0) {
var first_index = $("#liste_champ .order_place").first() var first_index = $("#liste_champ .type_de_champ").first()
.attr('name') .attr('id')
.replace('type_de_champ[', '') .replace('type_de_champ_', '');
.replace('][order_place]', '');
var last_index = $("#liste_champ .order_place").last() var last_index = $("#liste_champ .type_de_champ").last()
.attr('name') .attr('id')
.replace('type_de_champ[', '') .replace('type_de_champ_', '');
.replace('][order_place]', '');
$(".button_up").show(); $(".button_up").show();
$(".button_down").show(); $(".button_down").show();
@ -153,6 +144,22 @@ function config_up_and_down_button() {
} }
} }
function config_delete_button (type_libelle, index, champ_or_pj){
$("#new_type_de_" + type_libelle + " .destroy").attr('name', 'procedure[new_type_de_' + type_libelle + '[' + index + ']][_destroy]');
$("#new_type_de_" + type_libelle + " .destroy").attr('id', 'procedure_new_type_de_' + type_libelle + '_' + index + '___destroy');
$("#new_type_de_" + type_libelle + " .destroy").val('false');
$("#new_type_de_" + type_libelle + " #delete_type_de_" + type_libelle + "_" + (index - 1) + "_button").attr('id', "delete_type_de_" + type_libelle + "_" + index + "_button");
$("#new_type_de_" + type_libelle + " #delete_type_de_" + type_libelle + "_" + (index - 1) + "_procedure").attr('id', "delete_type_de_" + type_libelle + "_" + index + "_procedure");
if (champ_or_pj == CHAMPS)
add_delete_listener_on_click_for_type_de("champ", "#delete_type_de_champ_" + index + "_procedure");
else if (champ_or_pj == PJ)
add_delete_listener_on_click_for_type_de("piece_justificative", "#delete_type_de_piece_justificative_" + index + "_procedure");
$("#delete_type_de_" + type_libelle + "_" + (index - 1) + "_button").show();
}
function add_action_listener_on_click_for_button_up(node_id) { function add_action_listener_on_click_for_button_up(node_id) {
$(node_id).on('click', function (e) { $(node_id).on('click', function (e) {
var index = (e.target.id).replace('order_type_de_champ_', '').replace('_up_procedure', ''); var index = (e.target.id).replace('order_type_de_champ_', '').replace('_up_procedure', '');

View file

@ -7,6 +7,9 @@ class Admin::ProceduresController < ApplicationController
def show def show
@procedure = Procedure.find(params[:id]) @procedure = Procedure.find(params[:id])
@types_de_champ = @procedure.types_de_champ.order(:order_place)
@types_de_piece_justificative = @procedure.types_de_piece_justificative.order(:libelle)
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
flash.alert = 'Procédure inéxistante' flash.alert = 'Procédure inéxistante'
redirect_to admin_procedures_path redirect_to admin_procedures_path
@ -24,14 +27,15 @@ class Admin::ProceduresController < ApplicationController
return render 'new' return render 'new'
end end
process_types_de_champ_params process_new_types_de_champ_params
process_types_de_piece_justificative_params process_new_types_de_piece_justificative_params
flash.notice = 'Procédure enregistrée' flash.notice = 'Procédure enregistrée'
redirect_to admin_procedures_path redirect_to admin_procedures_path
end end
def update def update
# raise
@procedure = Procedure.find(params[:id]) @procedure = Procedure.find(params[:id])
unless @procedure.update_attributes(create_procedure_params) unless @procedure.update_attributes(create_procedure_params)
@ -39,8 +43,11 @@ class Admin::ProceduresController < ApplicationController
return render 'show' return render 'show'
end end
process_types_de_champ_params process_new_types_de_champ_params
process_types_de_piece_justificative_params process_update_types_de_champ_params
process_new_types_de_piece_justificative_params
process_update_types_de_piece_justificative_params
flash.notice = 'Préocédure modifiée' flash.notice = 'Préocédure modifiée'
redirect_to admin_procedures_path redirect_to admin_procedures_path
@ -48,51 +55,65 @@ class Admin::ProceduresController < ApplicationController
private private
def process_types_de_champ_params def process_new_types_de_champ_params
unless params[:type_de_champ].nil? || params[:type_de_champ].size == 0 unless params[:procedure][:new_type_de_champ].nil?
params[:type_de_champ].each do |index, type_de_champ| params[:procedure][:new_type_de_champ].each do |new_type_de_champ|
type_de_champ = TypeDeChamp.new
if type_de_champ[:delete] == 'true' if new_type_de_champ[1]['_destroy'] == 'false'
unless type_de_champ[:id_type_de_champ].nil? || type_de_champ[:id_type_de_champ] == '' save_new_type_de_champ type_de_champ, new_type_de_champ[1]
TypeDeChamp.destroy(type_de_champ[:id_type_de_champ])
end
else
if type_de_champ[:id_type_de_champ].nil? || type_de_champ[:id_type_de_champ] == ''
bdd_object = TypeDeChamp.new
else
bdd_object = TypeDeChamp.find(type_de_champ[:id_type_de_champ])
end
save_type_de_champ bdd_object, type_de_champ
end end
end end
end end
end end
def process_types_de_piece_justificative_params def process_update_types_de_champ_params
unless params[:type_de_piece_justificative].nil? || params[:type_de_piece_justificative].size == 0 unless params[:procedure][:types_de_champ].nil?
params[:type_de_piece_justificative].each do |index, type_de_piece_justificative| params[:procedure][:types_de_champ].each do |type_de_champ|
tmp = TypeDeChamp.find(type_de_champ[0])
if type_de_champ[1]['_destroy'] == 'false'
save_new_type_de_champ tmp, type_de_champ[1]
if type_de_piece_justificative[:delete] == 'true' elsif type_de_champ[1]['_destroy'] == 'true'
unless type_de_piece_justificative[:id_type_de_piece_justificative].nil? || type_de_piece_justificative[:id_type_de_piece_justificative] == '' tmp.destroy
TypeDePieceJustificative.destroy(type_de_piece_justificative[:id_type_de_piece_justificative])
end
else
if type_de_piece_justificative[:id_type_de_piece_justificative].nil? || type_de_piece_justificative[:id_type_de_piece_justificative] == ''
bdd_object = TypeDePieceJustificative.new
else
bdd_object = TypeDePieceJustificative.find(type_de_piece_justificative[:id_type_de_piece_justificative])
end
save_type_de_piece_justificative bdd_object, type_de_piece_justificative
end end
end end
end end
end end
def save_type_de_champ database_object, source def process_new_types_de_piece_justificative_params
unless params[:procedure][:new_type_de_piece_justificative].nil?
params[:procedure][:new_type_de_piece_justificative].each do |new_type_de_piece_justificative|
type_de_pj = TypeDePieceJustificative.new
if new_type_de_piece_justificative[1]['_destroy'] == 'false'
save_new_type_de_piece_justificative type_de_pj, new_type_de_piece_justificative[1]
end
end
end
end
def process_update_types_de_piece_justificative_params
unless params[:procedure][:types_de_piece_justificative].nil?
params[:procedure][:types_de_piece_justificative].each do |type_de_piece_justificative|
tmp = TypeDePieceJustificative.find(type_de_piece_justificative[0])
if type_de_piece_justificative[1]['_destroy'] == 'false'
save_new_type_de_piece_justificative tmp, type_de_piece_justificative[1]
elsif type_de_piece_justificative[1]['_destroy'] == 'true'
tmp.destroy
end
end
end
end
def save_new_type_de_champ database_object, source
database_object.libelle = source[:libelle] database_object.libelle = source[:libelle]
database_object.type_champs = source[:type] database_object.type_champs = source[:type_champs]
database_object.description = source[:description] database_object.description = source[:description]
database_object.order_place = source[:order_place] database_object.order_place = source[:order_place]
database_object.procedure = @procedure database_object.procedure = @procedure
@ -100,7 +121,7 @@ class Admin::ProceduresController < ApplicationController
database_object.save database_object.save
end end
def save_type_de_piece_justificative database_object, source def save_new_type_de_piece_justificative database_object, source
database_object.libelle = source[:libelle] database_object.libelle = source[:libelle]
database_object.description = source[:description] database_object.description = source[:description]
database_object.procedure = @procedure database_object.procedure = @procedure
@ -110,5 +131,7 @@ class Admin::ProceduresController < ApplicationController
def create_procedure_params def create_procedure_params
params.require(:procedure).permit(:libelle, :description, :organisation, :direction, :lien_demarche, :use_api_carto) params.require(:procedure).permit(:libelle, :description, :organisation, :direction, :lien_demarche, :use_api_carto)
#params.require(:procedure).permit(:libelle, :description, :organisation, :direction, :lien_demarche, :use_api_carto, types_de_champ_attributes: [:libelle, :description, :order_place, :type_champs])
end end
end end

View file

@ -2,6 +2,7 @@ class Procedure < ActiveRecord::Base
has_many :types_de_piece_justificative has_many :types_de_piece_justificative
has_many :types_de_champ has_many :types_de_champ
has_many :dossiers has_many :dossiers
accepts_nested_attributes_for :types_de_champ
validates :libelle, presence: true, allow_blank: false, allow_nil: false validates :libelle, presence: true, allow_blank: false, allow_nil: false
validates :description, presence: true, allow_blank: false, allow_nil: false validates :description, presence: true, allow_blank: false, allow_nil: false

View file

@ -1,40 +1,38 @@
.form-inline{id:"type_de_champ_#{index}", style: 'padding-bottom:8px'} - types_de_champ.each do |type_de_champ|
.form-group{ style: 'padding-right: 2%' } - type_de_champ.id.nil? ? object_for = "new_type_de_champ[#{index}]" : object_for = 'types_de_champ[]'
%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%' } = f.fields_for object_for, type_de_champ do |ff|
%h4 Type .form-inline{id:"type_de_champ_#{type_de_champ.id || index}", class: 'type_de_champ', style: 'padding-bottom:8px'}
%select.form-control#type_champs{ name: "type_de_champ[#{index}][type]" } .form-group{ style: 'padding-right: 2%' }
%option{ value: 'text', selected: (type_de_champ.type_champs == 'text' unless type_de_champ.nil?)} %h4 Libellé
Simple texte =ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé'
%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%' } .form-group{ style: 'padding-right: 2%' }
%h4 %h4 Type
Description =ff.select :type_champs, TypeDeChamp.type_champs, {}, {class: 'form-control type_champs'}
%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)} .form-group{ style: 'padding-right: 2%' }
%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?))} %h4
%input#delete{type: 'hidden', name: "type_de_champ[#{index}][delete]", value: 'false'} Description
=ff.text_area :description, class: 'form-control description', placeholder: 'Description'
-if type_de_champ.nil? -if order_place.nil?
.form-group#add_type_de_champ_button =ff.hidden_field :order_place, class: 'order_place'
%br &nbsp; -else
%button.form-control.btn.btn-success#add_type_de_champ_procedure{type: 'button'} Ajouter =ff.hidden_field :order_place, value: order_place, class: 'order_place'
=ff.hidden_field '_destroy', value: 'false', class: 'destroy'
.form-group.order_type_de_champ_button{id: "order_type_de_champ_#{index}_button", style: ("display:none" if type_de_champ.nil?)} .form-group.order_type_de_champ_button{id: "order_type_de_champ_#{type_de_champ.id || index}_button", style: ("display:none" if type_de_champ.id.nil?)}
%br &nbsp; %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_up.fa.fa-chevron-up{type: 'button', id: "order_type_de_champ_#{type_de_champ.id || 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"} %button.form-control.btn.btn-default.button_down.fa.fa-chevron-down{type: 'button', id: "order_type_de_champ_#{type_de_champ.id || index}_down_procedure"}
.form-group{ id: "delete_type_de_champ_#{type_de_champ.id || index}_button", style: ("display:none" if type_de_champ.id.nil?)}
%br &nbsp;
%button.form-control.btn.btn-danger.fa.fa-trash-o{type: 'button', id: "delete_type_de_champ_#{type_de_champ.id || index}_procedure"}
-if type_de_champ.id.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{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

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

View file

@ -1,22 +1,25 @@
.form-inline{id:"type_de_piece_justificative_#{index}", style: 'padding-bottom:8px'} - types_de_piece_justificative.each do |type_de_piece_justificative|
.form-group{ style: 'padding-right: 2%' } - type_de_piece_justificative.id.nil? ? object_for = "new_type_de_piece_justificative[#{index}]" : object_for = 'types_de_piece_justificative[]'
%h4 Libellé
%input.form-control#libelle{ type: 'text', placeholder: 'Libelle', name:"type_de_piece_justificative[#{index}][libelle]", size: 40, value: ("#{ type_de_piece_justificative.libelle }" unless type_de_piece_justificative.nil? ) }
.form-group{ style: 'padding-right: 2%' } = f.fields_for object_for, type_de_piece_justificative do |ff|
%h4 .form-inline{id:"type_de_piece_justificative_#{type_de_piece_justificative.id || index}", class: 'type_de_piece_justificative', style: 'padding-bottom:8px'}
Description .form-group{ style: 'padding-right: 2%' }
%textarea.form-control#description{cols: 60, placeholder: 'Description', name: "type_de_piece_justificative[#{index}][description]"} %h4 Libellé
=("#{ type_de_piece_justificative.description }" unless type_de_piece_justificative.nil? ) =ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé'
%input#id_type_de_piece_justificative{type: 'hidden', name: "type_de_piece_justificative[#{index}][id_type_de_piece_justificative]", value: (("#{ type_de_piece_justificative.id}" unless type_de_piece_justificative.nil?))} .form-group{ style: 'padding-right: 2%' }
%input#delete{type: 'hidden', name: "type_de_piece_justificative[#{index}][delete]", value: 'false'} %h4
Description
=ff.text_area :description, class: 'form-control description', placeholder: 'Description'
-if type_de_piece_justificative.nil? =ff.hidden_field '_destroy', value: 'false', class: 'destroy'
.form-group#add_type_de_piece_justificative_button
%br &nbsp; .form-group{ id: "delete_type_de_piece_justificative_#{type_de_piece_justificative.id || index}_button", style: ("display:none" if type_de_piece_justificative.id.nil?) }
%button.form-control.btn.btn-success#add_type_de_piece_justificative_procedure{type: 'button'} Ajouter %br &nbsp;
%button.form-control.btn.btn-danger.fa.fa-trash-o{type: 'button', id: "delete_type_de_piece_justificative_#{type_de_piece_justificative.id || index}_procedure"}
-if type_de_piece_justificative.id.nil?
.form-group#add_type_de_piece_justificative_button
%br &nbsp;
%button.form-control.btn.btn-success#add_type_de_piece_justificative_procedure{type: 'button'} Ajouter
.form-group{id: "delete_type_de_piece_justificative_#{index}_button", style: ("display:none" if type_de_piece_justificative.nil?)}
%br &nbsp;
%button.form-control.btn.btn-danger.fa.fa-trash-o{type: 'button', id: "delete_type_de_piece_justificative_#{index}_procedure"}

View file

@ -1,12 +1,11 @@
#liste_piece_justificative #liste_piece_justificative
-if @procedure.types_de_piece_justificative.size > 0 -unless @types_de_piece_justificative.nil?
- @procedure.types_de_piece_justificative.order(:libelle).each_with_index do |type_de_piece_justificative, index| =render partial: 'admin/procedures/types_de_piece_justificative/form', locals:{ types_de_piece_justificative: @types_de_piece_justificative, f: f }
=render partial: 'admin/procedures/types_de_piece_justificative/form', locals:{ type_de_piece_justificative: type_de_piece_justificative, index: index }
#liste_delete_piece_justificative #liste_delete_piece_justificative
#new_type_de_piece_justificative #new_type_de_piece_justificative
=render partial: 'admin/procedures/types_de_piece_justificative/form', locals:{ type_de_piece_justificative: nil, index: @procedure.types_de_piece_justificative.size } =render partial: 'admin/procedures/types_de_piece_justificative/form', locals:{ types_de_piece_justificative: [TypeDePieceJustificative.new], index: (@types_de_piece_justificative.nil? || @types_de_piece_justificative.last.nil? ? 0 : @procedure.types_de_piece_justificative.last.id+1), f: f }
%script{ type:'text/javascript' } %script{ type:'text/javascript' }
="var types_de_piece_justificative_index = #{@procedure.types_de_piece_justificative.size}" ="var types_de_piece_justificative_index = #{(@types_de_piece_justificative.nil? || @types_de_piece_justificative.last.nil? ? 0 : @procedure.types_de_piece_justificative.last.id+1)}"

View file

@ -11,6 +11,10 @@ describe Admin::ProceduresController, type: :controller do
let(:direction) { 'Direction de test' } let(:direction) { 'Direction de test' }
let(:lien_demarche) { 'http://localhost.com' } let(:lien_demarche) { 'http://localhost.com' }
let(:use_api_carto) { '1' } let(:use_api_carto) { '1' }
let(:new_type_de_champ) { {} }
let(:types_de_champ) { {} }
let(:new_type_de_piece_justificative) { {} }
let(:types_de_piece_justificative) { {} }
let(:procedure_params) { let(:procedure_params) {
{ {
@ -19,55 +23,67 @@ describe Admin::ProceduresController, type: :controller do
organisation: organisation, organisation: organisation,
direction: direction, direction: direction,
lien_demarche: lien_demarche, lien_demarche: lien_demarche,
use_api_carto: use_api_carto use_api_carto: use_api_carto,
new_type_de_champ: new_type_de_champ,
types_de_champ: types_de_champ,
new_type_de_piece_justificative: new_type_de_piece_justificative,
types_de_piece_justificative: types_de_piece_justificative
} }
} }
let(:types_de_champ_params) { let(:two_new_type_de_champ) {
{'0' => {'0' =>
{libelle: 'Champs de test', {libelle: 'Champs de test',
type: 'number', type_champs: 'number',
description: 'Description de test', description: 'Description de test',
order_place: 1}, order_place: 1,
'_destroy' => 'false'},
'1' => '1' =>
{libelle: 'Champs de test 2', {libelle: 'Champs de test 2',
type: 'text', type_champs: 'text',
description: 'Description de test 2', description: 'Description de test 2',
order_place: 2} order_place: 2,
'_destroy' => 'false'}
} }
} }
let(:types_de_champ_params_errors) { let(:two_new_types_de_piece_justificative) {
{'0' =>
{libelle: '',
type: 'number',
description: 'Description de test',
order_place: 1},
'1' =>
{libelle: 'Champs de test 2',
type: 'text',
description: 'Description de test 2',
order_place: 2}
}
}
let(:types_de_piece_justificative_params_errors) {
{'0' =>
{libelle: '',
description: 'Description de test'},
'1' =>
{libelle: 'Champs de test 2',
description: 'Description de test 2'}
}
}
let(:types_de_piece_justificative_params) {
{'0' => {'0' =>
{libelle: 'PJ de test', {libelle: 'PJ de test',
description: 'Description de test'}, description: 'Description de test',
'_destroy' => 'false'},
'1' => '1' =>
{libelle: 'PJ de test 2', {libelle: 'PJ de test 2',
description: 'Description de test 2'} description: 'Description de test 2',
'_destroy' => 'false'}
}
}
let(:two_new_type_de_champ_one_errors) {
{'0' =>
{libelle: '',
type_champs: 'number',
description: 'Description de test',
order_place: 1,
'_destroy' => 'false'},
'1' =>
{libelle: 'Champs de test 2',
type_champs: 'text',
description: 'Description de test 2',
order_place: 2,
'_destroy' => 'false'}
}
}
let(:two_new_types_de_piece_justificative_one_errors) {
{'0' =>
{libelle: '',
description: 'Description de test',
'_destroy' => 'false'},
'1' =>
{libelle: 'Champs de test 2',
description: 'Description de test 2',
'_destroy' => 'false'}
} }
} }
@ -153,37 +169,39 @@ describe Admin::ProceduresController, type: :controller do
end end
describe 'type_de_champ processing' do describe 'type_de_champ processing' do
before do before do
post :create, procedure: procedure_params, type_de_champ: types_de_champ_params post :create, procedure: procedure_params
end end
subject { Procedure.last } subject { Procedure.last }
context 'when no type de champs is filled' do context 'when no type de champs is filled' do
let(:types_de_champ_params) { {} } let(:new_type_de_champ) { {} }
it { expect(subject.types_de_champ.size).to eq(0) } it { expect(subject.types_de_champ.size).to eq(0) }
end end
context 'when two types de champs are filled' do context 'when two types de champs are filled' do
let(:new_type_de_champ) { two_new_type_de_champ }
it { expect(subject.types_de_champ.size).to eq(2) } it { expect(subject.types_de_champ.size).to eq(2) }
describe ' check types de champs attributs present into database' do describe ' check types de champs attributs present into database' do
subject { TypeDeChamp.all } subject { TypeDeChamp.all }
it { expect(subject[0].libelle).to eq(types_de_champ_params['0'][:libelle]) } it { expect(subject[0].libelle).to eq(two_new_type_de_champ['0'][:libelle]) }
it { expect(subject[0].type_champs).to eq(types_de_champ_params['0'][:type]) } it { expect(subject[0].type_champs).to eq(two_new_type_de_champ['0'][:type_champs]) }
it { expect(subject[0].description).to eq(types_de_champ_params['0'][:description]) } it { expect(subject[0].description).to eq(two_new_type_de_champ['0'][:description]) }
it { expect(subject[0].order_place).to eq(types_de_champ_params['0'][:order_place]) } it { expect(subject[0].order_place).to eq(two_new_type_de_champ['0'][:order_place]) }
it { expect(subject[1].libelle).to eq(types_de_champ_params['1'][:libelle]) } it { expect(subject[1].libelle).to eq(two_new_type_de_champ['1'][:libelle]) }
it { expect(subject[1].type_champs).to eq(types_de_champ_params['1'][:type]) } it { expect(subject[1].type_champs).to eq(two_new_type_de_champ['1'][:type_champs]) }
it { expect(subject[1].description).to eq(types_de_champ_params['1'][:description]) } it { expect(subject[1].description).to eq(two_new_type_de_champ['1'][:description]) }
it { expect(subject[1].order_place).to eq(types_de_champ_params['1'][:order_place]) } it { expect(subject[1].order_place).to eq(two_new_type_de_champ['1'][:order_place]) }
end end
end end
context 'when one of two types de champs have not a libelle' do context 'when one of two types de champs have not a libelle' do
let(:types_de_champ_params) { types_de_champ_params_errors } let(:new_type_de_champ) { two_new_type_de_champ_one_errors }
it { expect(subject.types_de_champ.size).to eq(1) } it { expect(subject.types_de_champ.size).to eq(1) }
end end
@ -191,32 +209,34 @@ describe Admin::ProceduresController, type: :controller do
describe 'type_de_piece_justificative processing' do describe 'type_de_piece_justificative processing' do
before do before do
post :create, procedure: procedure_params, type_de_piece_justificative: types_de_piece_justificative_params post :create, procedure: procedure_params
end end
subject { Procedure.last } subject { Procedure.last }
context 'when no type de piece justificative is filled' do context 'when no type de piece justificative is filled' do
let(:types_de_piece_justificative_params) { {} } let(:new_type_de_piece_justificative) { {} }
it { expect(subject.types_de_piece_justificative.size).to eq(0) } it { expect(subject.types_de_piece_justificative.size).to eq(0) }
end end
context 'when two types de piece justificative are filled' do context 'when two types de piece justificative are filled' do
let(:new_type_de_piece_justificative) { two_new_types_de_piece_justificative }
it { expect(subject.types_de_piece_justificative.size).to eq(2) } it { expect(subject.types_de_piece_justificative.size).to eq(2) }
describe ' check types de piece justificative attributs present into database' do describe ' check types de piece justificative attributs present into database' do
subject { TypeDePieceJustificative.all } subject { TypeDePieceJustificative.all }
it { expect(subject[0].libelle).to eq(types_de_piece_justificative_params['0'][:libelle]) } it { expect(subject[0].libelle).to eq(new_type_de_piece_justificative['0'][:libelle]) }
it { expect(subject[0].description).to eq(types_de_piece_justificative_params['0'][:description]) } it { expect(subject[0].description).to eq(new_type_de_piece_justificative['0'][:description]) }
it { expect(subject[1].libelle).to eq(types_de_piece_justificative_params['1'][:libelle]) } it { expect(subject[1].libelle).to eq(new_type_de_piece_justificative['1'][:libelle]) }
it { expect(subject[1].description).to eq(types_de_piece_justificative_params['1'][:description]) } it { expect(subject[1].description).to eq(new_type_de_piece_justificative['1'][:description]) }
end end
end end
context 'when one of two types de piece justificative have not a libelle' do context 'when one of two types de piece justificative have not a libelle' do
let(:types_de_piece_justificative_params) { types_de_piece_justificative_params_errors } let(:new_type_de_piece_justificative) { two_new_types_de_piece_justificative_one_errors }
it { expect(subject.types_de_piece_justificative.size).to eq(1) } it { expect(subject.types_de_piece_justificative.size).to eq(1) }
end end
@ -238,7 +258,7 @@ describe Admin::ProceduresController, type: :controller do
context 'when administrateur is connected' do context 'when administrateur is connected' do
before do before do
put :update, id: procedure.id, procedure: procedure_params, type_de_champ: types_de_champ_params, type_de_piece_justificative: types_de_piece_justificative_params put :update, id: procedure.id, procedure: procedure_params
procedure.reload procedure.reload
end end
@ -278,43 +298,46 @@ describe Admin::ProceduresController, type: :controller do
subject { procedure } subject { procedure }
context 'when no type de champs is filled' do context 'when no type de champs is filled' do
let(:types_de_champ_params) { {} } let(:new_type_de_champ) { {} }
it { expect(subject.types_de_champ.size).to eq(1) } it { expect(subject.types_de_champ.size).to eq(1) }
end end
context 'when two types de champs are filled' do context 'when two types de champs are filled' do
let(:new_type_de_champ) { two_new_type_de_champ }
it { expect(subject.types_de_champ.size).to eq(3) } it { expect(subject.types_de_champ.size).to eq(3) }
describe ' check types de champs attributs added into database' do describe ' check types de champs attributs added into database' do
subject { procedure.types_de_champ } subject { procedure.types_de_champ }
it { expect(subject[1].libelle).to eq(types_de_champ_params['0'][:libelle]) } it { expect(subject[1].libelle).to eq(two_new_type_de_champ['0'][:libelle]) }
it { expect(subject[1].type_champs).to eq(types_de_champ_params['0'][:type]) } it { expect(subject[1].type_champs).to eq(two_new_type_de_champ['0'][:type_champs]) }
it { expect(subject[1].description).to eq(types_de_champ_params['0'][:description]) } it { expect(subject[1].description).to eq(two_new_type_de_champ['0'][:description]) }
it { expect(subject[1].order_place).to eq(types_de_champ_params['0'][:order_place]) } it { expect(subject[1].order_place).to eq(two_new_type_de_champ['0'][:order_place]) }
it { expect(subject[2].libelle).to eq(types_de_champ_params['1'][:libelle]) } it { expect(subject[2].libelle).to eq(two_new_type_de_champ['1'][:libelle]) }
it { expect(subject[2].type_champs).to eq(types_de_champ_params['1'][:type]) } it { expect(subject[2].type_champs).to eq(two_new_type_de_champ['1'][:type_champs]) }
it { expect(subject[2].description).to eq(types_de_champ_params['1'][:description]) } it { expect(subject[2].description).to eq(two_new_type_de_champ['1'][:description]) }
it { expect(subject[2].order_place).to eq(types_de_champ_params['1'][:order_place]) } it { expect(subject[2].order_place).to eq(two_new_type_de_champ['1'][:order_place]) }
end end
end end
context 'when one of two types de champs have not a libelle' do context 'when one of two types de champs have not a libelle' do
let(:procedure) { create(:procedure) } let(:procedure) { create(:procedure) }
let(:types_de_champ_params) { types_de_champ_params_errors } let(:new_type_de_champ) { two_new_type_de_champ_one_errors }
it { expect(subject.types_de_champ.size).to eq(1) } it { expect(subject.types_de_champ.size).to eq(1) }
end end
context 'when user edit the filed' do context 'when user edit the filed' do
let(:types_de_champ_params) { let(:type_de_champ_id) { procedure.types_de_champ.first.id }
{'0' => let(:types_de_champ) {
{"#{type_de_champ_id}" =>
{libelle: 'Champs de test editée', {libelle: 'Champs de test editée',
type: 'number', type_champs: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, order_place: 1,
id_type_de_champ: procedure.types_de_champ.first.id} _destroy: 'false'
}
} }
} }
@ -323,22 +346,35 @@ describe Admin::ProceduresController, type: :controller do
describe ' check types de champs attributs updated into database' do describe ' check types de champs attributs updated into database' do
subject { procedure.types_de_champ.first } subject { procedure.types_de_champ.first }
it { expect(subject.libelle).to eq(types_de_champ_params['0'][:libelle]) } it { expect(subject.libelle).to eq(types_de_champ["#{type_de_champ_id}"][:libelle]) }
it { expect(subject.type_champs).to eq(types_de_champ_params['0'][:type]) } it { expect(subject.type_champs).to eq(types_de_champ["#{type_de_champ_id}"][:type_champs]) }
it { expect(subject.description).to eq(types_de_champ_params['0'][:description]) } it { expect(subject.description).to eq(types_de_champ["#{type_de_champ_id}"][:description]) }
it { expect(subject.order_place).to eq(types_de_champ_params['0'][:order_place]) } it { expect(subject.order_place).to eq(types_de_champ["#{type_de_champ_id}"][:order_place]) }
end end
end end
context 'when delete a type de champs' do context 'when no delete a type de champs' do
let(:types_de_champ_params) { let(:types_de_champ) {
{'0' => {"#{procedure.types_de_champ.first.id}" =>
{libelle: 'Champs de test editée', {libelle: 'Champs de test editée',
type: 'number', type_champs: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, order_place: 1,
delete: 'true', _destroy: 'false'}
id_type_de_champ: procedure.types_de_champ.first.id} }
}
it { expect(subject.types_de_champ.size).to eq(1) }
end
context 'when delete a type de champs' do
let(:types_de_champ) {
{"#{procedure.types_de_champ.first.id}" =>
{libelle: 'Champs de test editée',
type_champs: 'number',
description: 'Description de test editée',
order_place: 1,
_destroy: 'true'}
} }
} }
@ -346,21 +382,23 @@ describe Admin::ProceduresController, type: :controller do
end end
context 'when delete a type de champs present in database and a type champ not present in database' do context 'when delete a type de champs present in database and a type champ not present in database' do
let(:types_de_champ_params) { let(:types_de_champ) {
{'0' => {"#{procedure.types_de_champ.first.id}" =>
{libelle: 'Champs de test editée', {libelle: 'Champs de test editée',
type: 'number', type_champs: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, order_place: 1,
delete: 'true', _destroy: 'true'}
id_type_de_champ: procedure.types_de_champ.first.id}, }
'1' => }
let(:new_type_de_champ) {
{'1' =>
{libelle: 'Champs de test editée', {libelle: 'Champs de test editée',
type: 'number', type_champs: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, order_place: 2,
delete: 'true', _destroy: 'true'}
id_type_de_champ: ''}
} }
} }
@ -378,33 +416,32 @@ describe Admin::ProceduresController, type: :controller do
context 'when two types de piece justificative are filled' do context 'when two types de piece justificative are filled' do
let(:procedure) { create(:procedure) } let(:procedure) { create(:procedure) }
let(:new_type_de_piece_justificative) { two_new_types_de_piece_justificative }
it { expect(subject.types_de_piece_justificative.size).to eq(2) } it { expect(subject.types_de_piece_justificative.size).to eq(2) }
describe ' check types de piece justificative attributs added into database' do describe ' check types de piece justificative attributs added into database' do
subject { procedure.types_de_piece_justificative } subject { procedure.types_de_piece_justificative }
it { expect(subject[0].libelle).to eq(types_de_piece_justificative_params['0'][:libelle]) } it { expect(subject[0].libelle).to eq(new_type_de_piece_justificative['0'][:libelle]) }
it { expect(subject[0].description).to eq(types_de_piece_justificative_params['0'][:description]) } it { expect(subject[0].description).to eq(new_type_de_piece_justificative['0'][:description]) }
it { expect(subject[1].libelle).to eq(types_de_piece_justificative_params['1'][:libelle]) } it { expect(subject[1].libelle).to eq(new_type_de_piece_justificative['1'][:libelle]) }
it { expect(subject[1].description).to eq(types_de_piece_justificative_params['1'][:description]) } it { expect(subject[1].description).to eq(new_type_de_piece_justificative['1'][:description]) }
end end
end end
context 'when one of two types de piece justificative have not a libelle' do context 'when one of two types de piece justificative have not a libelle' do
let(:types_de_piece_justificative_params) { types_de_piece_justificative_params_errors } let(:new_type_de_piece_justificative) { two_new_types_de_piece_justificative_one_errors }
it { expect(subject.types_de_piece_justificative.size).to eq(3) } it { expect(subject.types_de_piece_justificative.size).to eq(3) }
end end
context 'when one types de piece justificative is edit' do context 'when one types de piece justificative is edit' do
let(:types_de_piece_justificative_params) { let(:types_de_piece_justificative) {
{'0' => {"#{procedure.types_de_piece_justificative.first.id}" =>
{libelle: 'PJ de test editée', {libelle: 'PJ de test editée',
type: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, '_destroy' => 'false'}
id_type_de_piece_justificative: procedure.types_de_piece_justificative.first.id}
} }
} }
@ -413,20 +450,17 @@ describe Admin::ProceduresController, type: :controller do
describe ' check types de piece justificative attributs updated into database' do describe ' check types de piece justificative attributs updated into database' do
subject { procedure.types_de_piece_justificative.first } subject { procedure.types_de_piece_justificative.first }
it { expect(subject.libelle).to eq(types_de_piece_justificative_params['0'][:libelle]) } it { expect(subject.libelle).to eq(types_de_piece_justificative["#{procedure.types_de_piece_justificative.first.id}"][:libelle]) }
it { expect(subject.description).to eq(types_de_piece_justificative_params['0'][:description]) } it { expect(subject.description).to eq(types_de_piece_justificative["#{procedure.types_de_piece_justificative.first.id}"][:description]) }
end end
end end
context 'when delete a type de piece justificative' do context 'when delete a type de piece justificative' do
let(:types_de_piece_justificative_params) { let(:types_de_piece_justificative) {
{'0' => {"#{procedure.types_de_piece_justificative.first.id}" =>
{libelle: 'PJ de test editée', {libelle: 'PJ de test editée',
type: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, '_destroy' => 'true'}
delete: 'true',
id_type_de_piece_justificative: procedure.types_de_piece_justificative.first.id}
} }
} }
@ -434,21 +468,19 @@ describe Admin::ProceduresController, type: :controller do
end end
context 'when delete a type de piece justificative present in database and a type piece justificative not present in database' do context 'when delete a type de piece justificative present in database and a type piece justificative not present in database' do
let(:types_de_piece_justificative_params) { let(:types_de_piece_justificative) {
{'0' => {"#{procedure.types_de_piece_justificative.first.id}" =>
{libelle: 'PJ de test editée', {libelle: 'PJ de test editée',
type: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, '_destroy' => 'true'}
delete: 'true', }
id_type_de_piece_justificative: procedure.types_de_piece_justificative.first.id}, }
'1' =>
let(:new_type_de_piece_justificative) {
{'1' =>
{libelle: 'PJ de test editée', {libelle: 'PJ de test editée',
type: 'number',
description: 'Description de test editée', description: 'Description de test editée',
order_place: 1, '_destroy' => 'true'}
delete: 'true',
id_type_de_piece_justificative: ''}
} }
} }

View file

@ -14,12 +14,11 @@ feature 'add a new type de champs', js: true do
scenario 'page have form to created new type de champs' do scenario 'page have form to created new type de champs' do
expect(page).to have_css('#type_de_champ_0') expect(page).to have_css('#type_de_champ_0')
expect(page).to have_css('input[name="type_de_champ[0][libelle]"]') expect(page).to have_css('input[name="procedure[new_type_de_champ[0]][libelle]"]')
expect(page).to have_css('select[name="type_de_champ[0][type]"]') expect(page).to have_css('select[name="procedure[new_type_de_champ[0]][type_champs]"]')
expect(page).to have_css('textarea[name="type_de_champ[0][description]"]') expect(page).to have_css('textarea[name="procedure[new_type_de_champ[0]][description]"]')
expect(page).to have_css('input[name="type_de_champ[0][order_place]"]', visible: false) expect(page).to have_css('input[name="procedure[new_type_de_champ[0]][order_place]"]', visible: false)
expect(page).to have_css('input[name="type_de_champ[0][id_type_de_champ]"]', visible: false) expect(page).to have_css('input[name="procedure[new_type_de_champ[0]][_destroy]"]', visible: false)
expect(page).to have_css('input[name="type_de_champ[0][delete]"]', visible: false)
expect(page).to have_css('#order_type_de_champ_0_button', visible: false); expect(page).to have_css('#order_type_de_champ_0_button', visible: false);
expect(page).to have_css('#order_type_de_champ_0_up_procedure', visible: false); expect(page).to have_css('#order_type_de_champ_0_up_procedure', visible: false);
@ -30,19 +29,18 @@ feature 'add a new type de champs', js: true do
context 'when user add a new champs type' do context 'when user add a new champs type' do
before do before do
page.find_by_id('type_de_champ_0').find_by_id('libelle').set 'Libelle de test' page.find_by_id('procedure_new_type_de_champ_0__libelle').set 'Libelle de test'
page.find_by_id('type_de_champ_0').find_by_id('description').set 'Description de test' page.find_by_id('procedure_new_type_de_champ_0__description').set 'Description de test'
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
end end
scenario 'a new champs type line is appeared with increment index id' do scenario 'a new champs type line is appeared with increment index id' do
expect(page).to have_css('#type_de_champ_1') expect(page).to have_css('#type_de_champ_1')
expect(page).to have_css('input[name="type_de_champ[1][libelle]"]') expect(page).to have_css('input[name="procedure[new_type_de_champ[1]][libelle]"]')
expect(page).to have_css('select[name="type_de_champ[1][type]"]') expect(page).to have_css('select[name="procedure[new_type_de_champ[1]][type_champs]"]')
expect(page).to have_css('textarea[name="type_de_champ[1][description]"]') expect(page).to have_css('textarea[name="procedure[new_type_de_champ[1]][description]"]')
expect(page).to have_css('input[name="type_de_champ[1][order_place]"]', visible: false) expect(page).to have_css('input[name="procedure[new_type_de_champ[1]][order_place]"]', visible: false)
expect(page).to have_css('input[name="type_de_champ[1][id_type_de_champ]"]', visible: false) expect(page).to have_css('input[name="procedure[new_type_de_champ[1]][_destroy]"]', visible: false)
expect(page).to have_css('input[name="type_de_champ[1][delete]"]', visible: false)
expect(page).to have_css('#order_type_de_champ_1_button', visible: false); expect(page).to have_css('#order_type_de_champ_1_button', visible: false);
expect(page).to have_css('#order_type_de_champ_1_up_procedure', visible: false); expect(page).to have_css('#order_type_de_champ_1_up_procedure', visible: false);
@ -50,9 +48,9 @@ feature 'add a new type de champs', js: true do
end end
scenario 'the first line is filled' do scenario 'the first line is filled' do
expect(page.find_by_id('type_de_champ_0').find_by_id('libelle').value).to eq('Libelle de test') expect(page.find_by_id('procedure_new_type_de_champ_0__libelle').value).to eq('Libelle de test')
expect(page.find_by_id('type_de_champ_0').find_by_id('description').value).to eq('Description de test') expect(page.find_by_id('procedure_new_type_de_champ_0__description').value).to eq('Description de test')
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('1') expect(page.find_by_id('procedure_new_type_de_champ_0__order_place', visible: false).value).to eq('1')
end end
scenario 'the first line have new button delete' do scenario 'the first line have new button delete' do
@ -61,11 +59,10 @@ feature 'add a new type de champs', js: true do
end end
scenario 'the new line is empty' do scenario 'the new line is empty' do
expect(page.find_by_id('type_de_champ_1').find_by_id('libelle').value).to eq('') expect(page.find_by_id('procedure_new_type_de_champ_1__libelle').value).to eq('')
expect(page.find_by_id('type_de_champ_1').find_by_id('description').value).to eq('') expect(page.find_by_id('procedure_new_type_de_champ_1__description').value).to eq('')
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('2') expect(page.find_by_id('procedure_new_type_de_champ_1__order_place', visible: false).value).to eq('2')
expect(page.find_by_id('type_de_champ_1').find_by_id('id_type_de_champ', visible: false).value).to eq('') expect(page.find_by_id('procedure_new_type_de_champ_1___destroy', visible: false).value).to eq('false')
expect(page.find_by_id('type_de_champ_1').find_by_id('delete', visible: false).value).to eq('false')
end end
scenario 'the button Ajouter is at side new line' do scenario 'the button Ajouter is at side new line' do

View file

@ -14,39 +14,36 @@ feature 'add a new type de piece justificative', js: true do
scenario 'page have form to created new type de piece justificative' do scenario 'page have form to created new type de piece justificative' do
expect(page).to have_css('#type_de_piece_justificative_0') expect(page).to have_css('#type_de_piece_justificative_0')
expect(page).to have_css('input[name="type_de_piece_justificative[0][libelle]"]') expect(page).to have_css('input[name="procedure[new_type_de_piece_justificative[0]][libelle]"]')
expect(page).to have_css('textarea[name="type_de_piece_justificative[0][description]"]') expect(page).to have_css('textarea[name="procedure[new_type_de_piece_justificative[0]][description]"]')
expect(page).to have_css('input[name="type_de_piece_justificative[0][id_type_de_piece_justificative]"]', visible: false) expect(page).to have_css('input[name="procedure[new_type_de_piece_justificative[0]][_destroy]"]', visible: false)
expect(page).to have_css('input[name="type_de_piece_justificative[0][delete]"]', visible: false)
expect(page).to have_css('#new_type_de_piece_justificative #add_type_de_piece_justificative_button') expect(page).to have_css('#new_type_de_piece_justificative #add_type_de_piece_justificative_button')
end end
context 'when user add a new piece justificative type' do context 'when user add a new piece justificative type' do
before do before do
page.find_by_id('type_de_piece_justificative_0').find_by_id('libelle').set 'Libelle de test' page.find_by_id('procedure_new_type_de_piece_justificative_0__libelle').set 'Libelle de test'
page.find_by_id('type_de_piece_justificative_0').find_by_id('description').set 'Description de test' page.find_by_id('procedure_new_type_de_piece_justificative_0__description').set 'Description de test'
page.click_on 'add_type_de_piece_justificative_procedure' page.click_on 'add_type_de_piece_justificative_procedure'
end end
scenario 'a new piece justificative type line is appeared with increment index id' do scenario 'a new piece justificative type line is appeared with increment index id' do
expect(page).to have_css('#type_de_piece_justificative_1') expect(page).to have_css('#type_de_piece_justificative_1')
expect(page).to have_css('input[name="type_de_piece_justificative[1][libelle]"]') expect(page).to have_css('input[name="procedure[new_type_de_piece_justificative[1]][libelle]"]')
expect(page).to have_css('textarea[name="type_de_piece_justificative[1][description]"]') expect(page).to have_css('textarea[name="procedure[new_type_de_piece_justificative[1]][description]"]')
expect(page).to have_css('input[name="type_de_piece_justificative[1][id_type_de_piece_justificative]"]', visible: false) expect(page).to have_css('input[name="procedure[new_type_de_piece_justificative[1]][_destroy]"]', visible: false)
expect(page).to have_css('input[name="type_de_piece_justificative[1][delete]"]', visible: false)
end end
scenario 'the first line is filled' do scenario 'the first line is filled' do
expect(page.find_by_id('type_de_piece_justificative_0').find_by_id('libelle').value).to eq('Libelle de test') expect(page.find_by_id('procedure_new_type_de_piece_justificative_0__libelle').value).to eq('Libelle de test')
expect(page.find_by_id('type_de_piece_justificative_0').find_by_id('description').value).to eq('Description de test') expect(page.find_by_id('procedure_new_type_de_piece_justificative_0__description').value).to eq('Description de test')
end end
scenario 'the new line is empty' do scenario 'the new line is empty' do
expect(page.find_by_id('type_de_piece_justificative_1').find_by_id('libelle').value).to eq('') expect(page.find_by_id('procedure_new_type_de_piece_justificative_1__libelle').value).to eq('')
expect(page.find_by_id('type_de_piece_justificative_1').find_by_id('description').value).to eq('') expect(page.find_by_id('procedure_new_type_de_piece_justificative_1__description').value).to eq('')
expect(page.find_by_id('type_de_piece_justificative_1').find_by_id('id_type_de_piece_justificative', visible: false).value).to eq('') expect(page.find_by_id('procedure_new_type_de_piece_justificative_1___destroy', visible: false).value).to eq('false')
expect(page.find_by_id('type_de_piece_justificative_1').find_by_id('delete', visible: false).value).to eq('false')
end end
scenario 'the button Ajouter is at side new line' do scenario 'the button Ajouter is at side new line' do

View file

@ -27,15 +27,15 @@ feature 'config up and down button display', js: true do
visit admin_procedure_path id: procedure.id visit admin_procedure_path id: procedure.id
end end
scenario 'type_de_champ_0 have not up and down button visible' do
expect(page.find_by_id('order_type_de_champ_0_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_0_down_procedure', visible: false).visible?).to be_falsey
end
scenario 'type_de_champ_1 have not up and down button visible' do scenario 'type_de_champ_1 have not up and down button visible' do
expect(page.find_by_id('order_type_de_champ_1_up_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_1_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_1_down_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_1_down_procedure', visible: false).visible?).to be_falsey
end end
scenario 'type_de_champ_2 have not up and down button visible' do
expect(page.find_by_id('order_type_de_champ_2_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_2_down_procedure', visible: false).visible?).to be_falsey
end
end end
context 'when procedure have two type de champs' do context 'when procedure have two type de champs' do
@ -46,20 +46,20 @@ feature 'config up and down button display', js: true do
visit admin_procedure_path id: procedure.id visit admin_procedure_path id: procedure.id
end end
scenario 'type_de_champ_0 have not up visible and down button visible' do scenario 'type_de_champ_1 have not up visible and down button visible' do
expect(page.find_by_id('order_type_de_champ_0_up_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_1_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_0_down_procedure').visible?).to be_truthy expect(page.find_by_id('order_type_de_champ_1_down_procedure').visible?).to be_truthy
end end
scenario 'type_de_champ_1 have up button visible and down button not visible' do scenario 'type_de_champ_2 have up button visible and down button not visible' do
expect(page.find_by_id('order_type_de_champ_1_up_procedure').visible?).to be_truthy expect(page.find_by_id('order_type_de_champ_2_up_procedure').visible?).to be_truthy
expect(page.find_by_id('order_type_de_champ_1_down_procedure', visible: false).visible?).to be_falsey
end
scenario 'type_de_champ_2 have not up and down button visible' do
expect(page.find_by_id('order_type_de_champ_2_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_2_down_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_2_down_procedure', visible: false).visible?).to be_falsey
end end
scenario 'type_de_champ_3 have not up and down button visible' do
expect(page.find_by_id('order_type_de_champ_3_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_3_down_procedure', visible: false).visible?).to be_falsey
end
end end
context 'when procedure have two type de champs into database and one type de champs add to form' do context 'when procedure have two type de champs into database and one type de champs add to form' do
@ -71,25 +71,25 @@ feature 'config up and down button display', js: true do
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
end end
scenario 'type_de_champ_0 have not up visible and down button visible' do scenario 'type_de_champ_1 have not up visible and down button visible' do
expect(page.find_by_id('order_type_de_champ_0_up_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_1_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_0_down_procedure').visible?).to be_truthy
end
scenario 'type_de_champ_1 have up button and down button visible' do
expect(page.find_by_id('order_type_de_champ_1_up_procedure').visible?).to be_truthy
expect(page.find_by_id('order_type_de_champ_1_down_procedure').visible?).to be_truthy expect(page.find_by_id('order_type_de_champ_1_down_procedure').visible?).to be_truthy
end end
scenario 'type_de_champ_2 have up visible and down button not visible' do scenario 'type_de_champ_2 have up button and down button visible' do
expect(page.find_by_id('order_type_de_champ_2_up_procedure').visible?).to be_truthy expect(page.find_by_id('order_type_de_champ_2_up_procedure').visible?).to be_truthy
expect(page.find_by_id('order_type_de_champ_2_down_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_2_down_procedure').visible?).to be_truthy
end end
scenario 'type_de_champ_3 have not up and down button visible' do scenario 'type_de_champ_3 have up visible and down button not visible' do
expect(page.find_by_id('order_type_de_champ_3_up_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_3_up_procedure').visible?).to be_truthy
expect(page.find_by_id('order_type_de_champ_3_down_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_3_down_procedure', visible: false).visible?).to be_falsey
end end
scenario 'type_de_champ_4 have not up and down button visible' do
expect(page.find_by_id('order_type_de_champ_4_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_4_down_procedure', visible: false).visible?).to be_falsey
end
end end
context 'when procedure have two type de champs into database and one type de champs add to form and delete one type_de_champ' do context 'when procedure have two type de champs into database and one type de champs add to form and delete one type_de_champ' do
@ -99,27 +99,27 @@ feature 'config up and down button display', js: true do
before do before do
visit admin_procedure_path id: procedure.id visit admin_procedure_path id: procedure.id
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
page.click_on 'delete_type_de_champ_2_procedure' page.click_on 'delete_type_de_champ_3_procedure'
end end
scenario 'type_de_champ_0 have not up visible and down button visible' do scenario 'type_de_champ_1 have not up visible and down button visible' do
expect(page.find_by_id('order_type_de_champ_0_up_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_1_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_0_down_procedure').visible?).to be_truthy expect(page.find_by_id('order_type_de_champ_1_down_procedure').visible?).to be_truthy
end end
scenario 'type_de_champ_1 have up button visible and down button not visible' do scenario 'type_de_champ_2 have up button visible and down button not visible' do
expect(page.find_by_id('order_type_de_champ_1_up_procedure').visible?).to be_truthy expect(page.find_by_id('order_type_de_champ_2_up_procedure').visible?).to be_truthy
expect(page.find_by_id('order_type_de_champ_1_down_procedure', visible: false).visible?).to be_falsey
end
scenario 'type_de_champ_2 have up and down button not visible' do
expect(page.find_by_id('order_type_de_champ_2_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_2_down_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_2_down_procedure', visible: false).visible?).to be_falsey
end end
scenario 'type_de_champ_3 have not up and down button visible' do scenario 'type_de_champ_3 have up and down button not visible' do
expect(page.find_by_id('order_type_de_champ_3_up_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_3_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_3_down_procedure', visible: false).visible?).to be_falsey expect(page.find_by_id('order_type_de_champ_3_down_procedure', visible: false).visible?).to be_falsey
end end
scenario 'type_de_champ_4 have not up and down button visible' do
expect(page.find_by_id('order_type_de_champ_4_up_procedure', visible: false).visible?).to be_falsey
expect(page.find_by_id('order_type_de_champ_4_down_procedure', visible: false).visible?).to be_falsey
end
end end
end end

View file

@ -18,19 +18,19 @@ feature 'delete a type de champs form', js: true do
let(:type_de_champ) { procedure.types_de_champ.first } let(:type_de_champ) { procedure.types_de_champ.first }
before do before do
page.click_on 'delete_type_de_champ_0_procedure' page.click_on 'delete_type_de_champ_1_procedure'
end end
scenario 'form is mask for the user' do scenario 'form is mask for the user' do
expect(page.find_by_id('type_de_champ_0', visible: false).visible?).to be_falsey expect(page.find_by_id('type_de_champ_1', visible: false).visible?).to be_falsey
end end
scenario 'delete attribut of type de champs is turn to true' do scenario 'delete attribut of type de champs is turn to true' do
expect(page.find_by_id('type_de_champ_0', visible: false).find_by_id('delete', visible: false).value).to eq('true') expect(page.find_by_id('type_de_champ_1', visible: false).find('input[class="destroy"]', visible: false).value).to eq('true')
end end
scenario 'attribut node is to move into div liste_delete_champ' do scenario 'attribut node is to move into div liste_delete_champ' do
expect(page).to have_css('#liste_delete_champ #type_de_champ_0', visible: false) expect(page).to have_css('#liste_delete_champ #type_de_champ_1', visible: false)
end end
end end
@ -41,39 +41,39 @@ feature 'delete a type de champs form', js: true do
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
page.click_on 'delete_type_de_champ_1_procedure'
page.click_on 'delete_type_de_champ_2_procedure' page.click_on 'delete_type_de_champ_2_procedure'
page.click_on 'delete_type_de_champ_3_procedure'
end end
scenario 'form is mask for the user' do scenario 'form is mask for the user' do
expect(page.find_by_id('type_de_champ_1', visible: false).visible?).to be_falsey
expect(page.find_by_id('type_de_champ_2', visible: false).visible?).to be_falsey expect(page.find_by_id('type_de_champ_2', visible: false).visible?).to be_falsey
expect(page.find_by_id('type_de_champ_3', visible: false).visible?).to be_falsey
end end
scenario 'delete attribut of type de champs is turn to true' do scenario 'delete attribut of type de champs is turn to true' do
expect(page.find_by_id('type_de_champ_1', visible: false).find_by_id('delete', visible: false).value).to eq('true') expect(page.find_by_id('type_de_champ_2', visible: false).find('input[class="destroy"]', visible: false).value).to eq('true')
expect(page.find_by_id('type_de_champ_2', visible: false).find_by_id('delete', visible: false).value).to eq('true') expect(page.find_by_id('type_de_champ_3', visible: false).find('input[class="destroy"]', visible: false).value).to eq('true')
end end
scenario 'attribut node is to move into div liste_delete_champ' do scenario 'attribut node is to move into div liste_delete_champ' do
expect(page).to have_css('#liste_delete_champ #type_de_champ_1', visible: false)
expect(page).to have_css('#liste_delete_champ #type_de_champ_2', visible: false) expect(page).to have_css('#liste_delete_champ #type_de_champ_2', visible: false)
expect(page).to have_css('#liste_delete_champ #type_de_champ_3', visible: false)
end end
scenario 'order_place type_de_champ_0_procedure is 1' do scenario 'order_place type_de_champ_1_procedure is 1' do
expect(page.find_by_id('type_de_champ_0').find("input[class='order_place']", visible: false).value).to eq('1') expect(page.find_by_id('type_de_champ_1').find("input[class='order_place']", visible: false).value).to eq('1')
end end
scenario 'order_place type_de_champ_3_procedure is 2' do scenario 'order_place type_de_champ_4_procedure is 2' do
expect(page.find_by_id('type_de_champ_3').find("input[class='order_place']", visible: false).value).to eq('2') expect(page.find_by_id('type_de_champ_4').find("input[class='order_place']", visible: false).value).to eq('2')
end end
scenario 'order_place type_de_champ_4_procedure is 3' do scenario 'order_place type_de_champ_5_procedure is 3' do
expect(page.find_by_id('type_de_champ_4').find("input[class='order_place']", visible: false).value).to eq('3') expect(page.find_by_id('type_de_champ_5').find("input[class='order_place']", visible: false).value).to eq('3')
end end
scenario 'order_place type_de_champ_5_procedure is 4' do scenario 'order_place type_de_champ_6_procedure is 4' do
expect(page.find_by_id('type_de_champ_5').find("input[class='order_place']", visible: false).value).to eq('4') expect(page.find_by_id('type_de_champ_6').find("input[class='order_place']", visible: false).value).to eq('4')
end end
end end
end end

View file

@ -18,15 +18,15 @@ feature 'delete a type de piece_justificative form', js: true do
let(:type_de_piece_justificative) { procedure.types_de_piece_justificative.first } let(:type_de_piece_justificative) { procedure.types_de_piece_justificative.first }
before do before do
page.click_on 'delete_type_de_piece_justificative_0_procedure' page.click_on 'delete_type_de_piece_justificative_1_procedure'
end end
scenario 'form is mask for the user' do scenario 'form is mask for the user' do
expect(page.find_by_id('type_de_piece_justificative_0', visible: false).visible?).to be_falsey expect(page.find_by_id('type_de_piece_justificative_1', visible: false).visible?).to be_falsey
end end
scenario 'delete attribut of type de piece_justificative is turn to true' do scenario 'delete attribut of type de piece_justificative is turn to true' do
expect(page.find_by_id('type_de_piece_justificative_0', visible: false).find_by_id('delete', visible: false).value).to eq('true') expect(page.find_by_id('type_de_piece_justificative_1', visible: false).find('input[class="destroy"]', visible: false).value).to eq('true')
end end
end end
@ -44,8 +44,8 @@ feature 'delete a type de piece_justificative form', js: true do
end end
scenario 'delete attribut of type de piece_justificative is turn to true' do scenario 'delete attribut of type de piece_justificative is turn to true' do
expect(page.find_by_id('type_de_piece_justificative_2', visible: false).find_by_id('delete', visible: false).value).to eq('true') expect(page.find_by_id('type_de_piece_justificative_2', visible: false).find('input[class="destroy"]', visible: false).value).to eq('true')
expect(page.find_by_id('type_de_piece_justificative_3', visible: false).find_by_id('delete', visible: false).value).to eq('true') expect(page.find_by_id('type_de_piece_justificative_3', visible: false).find('input[class="destroy"]', visible: false).value).to eq('true')
end end
end end
end end

View file

@ -17,12 +17,12 @@ feature 'move down button type de champs', js: true do
context 'when procedure have two type de champs' do context 'when procedure have two type de champs' do
before do before do
page.click_on 'order_type_de_champ_0_down_procedure' page.click_on 'order_type_de_champ_1_down_procedure'
end end
scenario 'it inverse the twice type de champs' do scenario 'it inverse the twice type de champs' do
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1');
end end
end end
@ -33,43 +33,43 @@ feature 'move down button type de champs', js: true do
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
end end
context 'when to click on down_button type_de_champ_1' do context 'when to click on down_button type_de_champ_2' do
before do before do
page.click_on 'order_type_de_champ_1_down_procedure' page.click_on 'order_type_de_champ_2_down_procedure'
end end
scenario 'type_de_champ_1 and type_de_champ_2 is reversed' do scenario 'type_de_champ_2 and type_de_champ_3 is reversed' do
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
context 'when to click on up_button type_de_champ_3' do context 'when to click on up_button type_de_champ_4' do
before do before do
page.click_on 'order_type_de_champ_3_down_procedure' page.click_on 'order_type_de_champ_4_down_procedure'
end end
scenario 'type_de_champ_3 and type_de_champ_4 is reversed' do scenario 'type_de_champ_4 and type_de_champ_5 is reversed' do
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
context 'when to click on up_button type_de_champ_0' do context 'when to click on up_button type_de_champ_1' do
before do before do
page.click_on 'order_type_de_champ_0_down_procedure' page.click_on 'order_type_de_champ_1_down_procedure'
end end
scenario 'type_de_champ_0 and type_de_champ_2 is reversed' do scenario 'type_de_champ_1 and type_de_champ_3 is reversed' do
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
end end
end end

View file

@ -22,47 +22,47 @@ feature 'move up and down button type de champs', js: true do
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
end end
# #
context 'when to click on up_button type_de_champ_1 and down_button type_de_champ_0' do context 'when to click on up_button type_de_champ_2 and down_button type_de_champ_1' do
before do before do
page.click_on 'order_type_de_champ_1_up_procedure' page.click_on 'order_type_de_champ_2_up_procedure'
page.click_on 'order_type_de_champ_0_down_procedure' page.click_on 'order_type_de_champ_1_down_procedure'
end end
scenario 'type_de_champ_0 is at order place 3 and type_de_champ_1 is at order place 1 ' do scenario 'type_de_champ_1 is at order place 3 and type_de_champ_2 is at order place 1 ' do
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
context 'when to click on down_button type_de_champ_3 and up_button type_de_champ_4' do context 'when to click on down_button type_de_champ_4 and up_button type_de_champ_5' do
before do before do
page.click_on 'order_type_de_champ_3_down_procedure' page.click_on 'order_type_de_champ_4_down_procedure'
page.click_on 'order_type_de_champ_4_up_procedure' page.click_on 'order_type_de_champ_5_up_procedure'
end end
scenario 'type_de_champ_2 and type_de_champ_3 is reversed' do scenario 'type_de_champ_2 and type_de_champ_3 is reversed' do
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
context 'when to click on up_button type_de_champ_2 and down_button type_de_champ_0 and up_button type_de_champ_4' do context 'when to click on up_button type_de_champ_3 and down_button type_de_champ_1 and up_button type_de_champ_5' do
before do before do
page.click_on 'order_type_de_champ_2_up_procedure' page.click_on 'order_type_de_champ_3_up_procedure'
page.click_on 'order_type_de_champ_0_down_procedure' page.click_on 'order_type_de_champ_1_down_procedure'
page.click_on 'order_type_de_champ_4_up_procedure' page.click_on 'order_type_de_champ_5_up_procedure'
end end
scenario 'type_de_champ_2 and type_de_champ_4 is reversed' do scenario 'type_de_champ_2 and type_de_champ_4 is reversed' do
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
end end
end end

View file

@ -18,12 +18,12 @@ feature 'move up button type de champs', js: true do
context 'when procedure have two type de champs' do context 'when procedure have two type de champs' do
before do before do
page.click_on 'order_type_de_champ_1_up_procedure' page.click_on 'order_type_de_champ_2_up_procedure'
end end
scenario 'it inverse the twice type de champs' do scenario 'it inverse the twice type de champs' do
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1');
end end
end end
@ -34,43 +34,43 @@ feature 'move up button type de champs', js: true do
page.click_on 'add_type_de_champ_procedure' page.click_on 'add_type_de_champ_procedure'
end end
context 'when to click on up_button type_de_champ_1' do context 'when to click on up_button type_de_champ_2' do
before do before do
page.click_on 'order_type_de_champ_1_up_procedure' page.click_on 'order_type_de_champ_2_up_procedure'
end end
scenario 'type_de_champ_0 and type_de_champ_1 is reversed' do scenario 'type_de_champ_1 and type_de_champ_2 is reversed' do
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
context 'when to click on up_button type_de_champ_3' do context 'when to click on up_button type_de_champ_4' do
before do before do
page.click_on 'order_type_de_champ_3_up_procedure' page.click_on 'order_type_de_champ_4_up_procedure'
end end
scenario 'type_de_champ_2 and type_de_champ_3 is reversed' do scenario 'type_de_champ_3 and type_de_champ_4 is reversed' do
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
context 'when to click on up_button type_de_champ_4' do context 'when to click on up_button type_de_champ_5' do
before do before do
page.click_on 'order_type_de_champ_4_up_procedure' page.click_on 'order_type_de_champ_5_up_procedure'
end end
scenario 'type_de_champ_2 and type_de_champ_4 is reversed' do scenario 'type_de_champ_3 and type_de_champ_5 is reversed' do
expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('1'); expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('1');
expect(page.find_by_id('type_de_champ_0').find('input[class="order_place"]', visible: false).value).to eq('2'); expect(page.find_by_id('type_de_champ_1').find('input[class="order_place"]', visible: false).value).to eq('2');
expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('3'); expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('3');
expect(page.find_by_id('type_de_champ_4').find('input[class="order_place"]', visible: false).value).to eq('4'); expect(page.find_by_id('type_de_champ_5').find('input[class="order_place"]', visible: false).value).to eq('4');
expect(page.find_by_id('type_de_champ_2').find('input[class="order_place"]', visible: false).value).to eq('5'); expect(page.find_by_id('type_de_champ_3').find('input[class="order_place"]', visible: false).value).to eq('5');
end end
end end
end end