Refactor code for private type de champ
This commit is contained in:
parent
116dd0d94f
commit
ddb64878c8
13 changed files with 93 additions and 71 deletions
|
@ -4,16 +4,19 @@ class Admin::TypesDeChampController < AdminController
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@procedure.types_de_champ.destroy(params[:id])
|
@procedure.types_de_champ.destroy(params[:id])
|
||||||
|
create_facade
|
||||||
render 'show', format: :js
|
render 'show', format: :js
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
render json: { message: 'Champ not found' }, status: 404
|
render json: { message: 'Champ not found' }, status: 404
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
create_facade
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@procedure.update_attributes(update_params)
|
@procedure.update_attributes(update_params)
|
||||||
|
create_facade
|
||||||
flash.now.notice = 'Modifications sauvegardées'
|
flash.now.notice = 'Modifications sauvegardées'
|
||||||
render 'show', format: :js
|
render 'show', format: :js
|
||||||
end
|
end
|
||||||
|
@ -27,6 +30,7 @@ class Admin::TypesDeChampController < AdminController
|
||||||
def move_up
|
def move_up
|
||||||
index = params[:index].to_i - 1
|
index = params[:index].to_i - 1
|
||||||
if @procedure.switch_types_de_champ index
|
if @procedure.switch_types_de_champ index
|
||||||
|
create_facade
|
||||||
render 'show', format: :js
|
render 'show', format: :js
|
||||||
else
|
else
|
||||||
render json: {}, status: 400
|
render json: {}, status: 400
|
||||||
|
@ -35,9 +39,16 @@ class Admin::TypesDeChampController < AdminController
|
||||||
|
|
||||||
def move_down
|
def move_down
|
||||||
if @procedure.switch_types_de_champ params[:index].to_i
|
if @procedure.switch_types_de_champ params[:index].to_i
|
||||||
|
create_facade
|
||||||
render 'show', format: :js
|
render 'show', format: :js
|
||||||
else
|
else
|
||||||
render json: {}, status: 400
|
render json: {}, status: 400
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def create_facade
|
||||||
|
@types_de_champ_facade = AdminTypesDeChampFacades.new false, @procedure
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -4,19 +4,22 @@ class Admin::TypesDeChampPrivateController < AdminController
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@procedure.types_de_champ_private.destroy(params[:id])
|
@procedure.types_de_champ_private.destroy(params[:id])
|
||||||
render 'show', format: :js
|
create_facade
|
||||||
|
render 'admin/types_de_champ/show', format: :js
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
render json: { message: 'Champ not found' }, status: 404
|
render json: { message: 'Champ not found' }, status: 404
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
create_facade
|
||||||
|
render 'admin/types_de_champ/show'
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@procedure.update_attributes(update_params)
|
@procedure.update_attributes(update_params)
|
||||||
|
create_facade
|
||||||
flash.now.notice = 'Modifications sauvegardées'
|
flash.now.notice = 'Modifications sauvegardées'
|
||||||
render 'show', format: :js
|
render 'admin/types_de_champ/show', format: :js
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_params
|
def update_params
|
||||||
|
@ -28,7 +31,8 @@ class Admin::TypesDeChampPrivateController < AdminController
|
||||||
def move_up
|
def move_up
|
||||||
index = params[:index].to_i - 1
|
index = params[:index].to_i - 1
|
||||||
if @procedure.switch_types_de_champ_private index
|
if @procedure.switch_types_de_champ_private index
|
||||||
render 'show', format: :js
|
create_facade
|
||||||
|
render 'admin/types_de_champ/show', format: :js
|
||||||
else
|
else
|
||||||
render json: {}, status: 400
|
render json: {}, status: 400
|
||||||
end
|
end
|
||||||
|
@ -36,9 +40,16 @@ class Admin::TypesDeChampPrivateController < AdminController
|
||||||
|
|
||||||
def move_down
|
def move_down
|
||||||
if @procedure.switch_types_de_champ_private params[:index].to_i
|
if @procedure.switch_types_de_champ_private params[:index].to_i
|
||||||
render 'show', format: :js
|
create_facade
|
||||||
|
render 'admin/types_de_champ/show', format: :js
|
||||||
else
|
else
|
||||||
render json: {}, status: 400
|
render json: {}, status: 400
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def create_facade
|
||||||
|
@types_de_champ_facade = AdminTypesDeChampFacades.new true, @procedure
|
||||||
|
end
|
||||||
end
|
end
|
48
app/facades/admin_types_de_champ_facades.rb
Normal file
48
app/facades/admin_types_de_champ_facades.rb
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
class AdminTypesDeChampFacades
|
||||||
|
include Rails.application.routes.url_helpers
|
||||||
|
|
||||||
|
def initialize private, procedure
|
||||||
|
@private = private
|
||||||
|
@procedure = procedure
|
||||||
|
end
|
||||||
|
|
||||||
|
def private
|
||||||
|
@private
|
||||||
|
end
|
||||||
|
|
||||||
|
def active
|
||||||
|
@private ? 'Champs privés' : 'Champs'
|
||||||
|
end
|
||||||
|
|
||||||
|
def url
|
||||||
|
@private ? admin_procedure_types_de_champ_private_path(@procedure) : admin_procedure_types_de_champ_path(@procedure)
|
||||||
|
end
|
||||||
|
|
||||||
|
def types_de_champ
|
||||||
|
@private ? @procedure.types_de_champ_private_ordered.decorate : @procedure.types_de_champ_ordered.decorate
|
||||||
|
end
|
||||||
|
|
||||||
|
def new_type_de_champ
|
||||||
|
@private ? TypeDeChampPrivate.new.decorate : TypeDeChampPublic.new.decorate
|
||||||
|
end
|
||||||
|
|
||||||
|
def fields_for_var
|
||||||
|
@private ? :types_de_champ_private : :types_de_champ
|
||||||
|
end
|
||||||
|
|
||||||
|
def move_up_url ff
|
||||||
|
@private ? move_up_admin_procedure_types_de_champ_private_path(@procedure, ff.index) : move_up_admin_procedure_types_de_champ_path(@procedure, ff.index)
|
||||||
|
end
|
||||||
|
|
||||||
|
def move_down_url ff
|
||||||
|
@private ? move_down_admin_procedure_types_de_champ_private_path(@procedure, ff.index) : move_down_admin_procedure_types_de_champ_path(@procedure, ff.index)
|
||||||
|
end
|
||||||
|
|
||||||
|
def delete_url ff
|
||||||
|
@private ? admin_procedure_type_de_champ_private_path(@procedure, ff.object.id) : admin_procedure_type_de_champ_path(@procedure, ff.object.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
def add_button_id
|
||||||
|
@private ? :add_type_de_champ_private : :add_type_de_champ
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,4 +1,4 @@
|
||||||
= f.fields_for :types_de_champ, types_de_champ, remote: true do |ff|
|
= f.fields_for @types_de_champ_facade.fields_for_var, types_de_champ, remote: true do |ff|
|
||||||
.form-inline{class:"#{ff.object.object.type_champ == 'header_section' ? 'header_section' : ''}"}
|
.form-inline{class:"#{ff.object.object.type_champ == 'header_section' ? 'header_section' : ''}"}
|
||||||
.form-group.libelle
|
.form-group.libelle
|
||||||
%h4 Libellé
|
%h4 Libellé
|
||||||
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
.form-group.type
|
.form-group.type
|
||||||
%h4 Type
|
%h4 Type
|
||||||
= ff.select :type_champ, TypeDeChampPublic.type_champs, {}, {class: 'form-control type_champ'}
|
= ff.select :type_champ, TypeDeChamp.type_champs, {}, {class: 'form-control type_champ'}
|
||||||
|
|
||||||
.form-group.description
|
.form-group.description
|
||||||
%h4 Description
|
%h4 Description
|
||||||
|
@ -21,17 +21,18 @@
|
||||||
= ff.hidden_field :order_place, value: ff.index
|
= ff.hidden_field :order_place, value: ff.index
|
||||||
= ff.hidden_field :type
|
= ff.hidden_field :type
|
||||||
= ff.hidden_field :id
|
= ff.hidden_field :id
|
||||||
|
|
||||||
- unless ff.object.id.nil?
|
- unless ff.object.id.nil?
|
||||||
.form-group
|
.form-group
|
||||||
%br
|
%br
|
||||||
= ff.object.button_up(index: ff.index, url: move_up_admin_procedure_types_de_champ_path(@procedure, ff.index))
|
= ff.object.button_up(index: ff.index, url: @types_de_champ_facade.move_up_url(ff), private: @types_de_champ_facade.private)
|
||||||
= ff.object.button_down(index: ff.index, url: move_down_admin_procedure_types_de_champ_path(@procedure, ff.index))
|
= ff.object.button_down(index: ff.index, url: @types_de_champ_facade.move_down_url(ff), private: @types_de_champ_facade.private)
|
||||||
|
|
||||||
.form-group
|
.form-group
|
||||||
%br
|
%br
|
||||||
- if ff.object.id.nil?
|
- if ff.object.id.nil?
|
||||||
= f.submit "Ajouter le champ", class: 'btn btn-success', id: :add_type_de_champ
|
= f.submit "Ajouter le champ", class: 'btn btn-success', id: @types_de_champ_facade.add_button_id
|
||||||
- else
|
- else
|
||||||
= link_to("", admin_procedure_type_de_champ_path(@procedure, ff.object.id), method: :delete, remote: true, id: "delete_type_de_champ_#{ff.object.id}", class: %w(form-control btn btn-danger fa fa-trash-o) )
|
= link_to("", @types_de_champ_facade.delete_url(ff), method: :delete, remote: true, id: "delete_type_de_champ_#{ff.object.id}", class: %w(form-control btn btn-danger fa fa-trash-o) )
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
= form_for [:admin, @procedure], url: admin_procedure_types_de_champ_path(@procedure) , remote: true do |f|
|
= form_for [:admin, @procedure], url: @types_de_champ_facade.url , remote: true do |f|
|
||||||
= render partial: 'fields', locals: { types_de_champ: @procedure.types_de_champ_ordered.decorate, f: f }
|
= render partial: 'admin/types_de_champ/fields', locals: { types_de_champ: @types_de_champ_facade.types_de_champ, f: f }
|
||||||
= f.submit "Enregistrer", class: 'btn btn-success', id: :save
|
= f.submit "Enregistrer", class: 'btn btn-success', id: :save
|
||||||
%hr
|
%hr
|
||||||
#new_type_de_champ
|
#new_type_de_champ
|
||||||
= render partial: 'fields', locals: { types_de_champ: TypeDeChampPublic.new.decorate, f: f }
|
= render partial: 'admin/types_de_champ/fields', locals: { types_de_champ: @types_de_champ_facade.new_type_de_champ, f: f }
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
=render partial: 'admin/procedures/head', locals: {active: 'Champs'}
|
=render partial: 'admin/procedures/head', locals: {active: @types_de_champ_facade.active}
|
||||||
|
|
||||||
#liste_champ
|
#liste_champ
|
||||||
= render partial: 'form'
|
= render partial: 'admin/types_de_champ/form'
|
|
@ -1,5 +1,5 @@
|
||||||
<% flash.each do |type, message| %>
|
<% flash.each do |type, message| %>
|
||||||
$("#flash_message").html("<div class=\"alert alert-success move_up\" style=\"display: block:\"> <%= message.html_safe %></div>").children().fadeOut(5000)
|
$("#flash_message").html("<div class=\"alert alert-success move_up\" style=\"display: block:\"> <%= message.html_safe %></div>").children().fadeOut(5000)
|
||||||
<% end %>
|
<% end %>
|
||||||
$('#liste_champ').html("<%= escape_javascript(render partial: 'form', locals: { procedure: @procedure, types_de_champ: @types_de_champ } ) %>");
|
$('#liste_champ').html("<%= escape_javascript(render partial: 'admin/types_de_champ/form', locals: { procedure: @procedure, types_de_champ: @types_de_champ } ) %>");
|
||||||
on_change_type_de_champ_select ();
|
on_change_type_de_champ_select ();
|
|
@ -1,38 +0,0 @@
|
||||||
= f.fields_for :types_de_champ_private, types_de_champ_private, remote: true do |ff|
|
|
||||||
.form-inline{class:"#{ff.object.object.type_champ == 'header_section' ? 'header_section' : ''}"}
|
|
||||||
.form-group.libelle
|
|
||||||
%h4 Libellé
|
|
||||||
= ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé'
|
|
||||||
|
|
||||||
.form-group.type
|
|
||||||
%h4 Type
|
|
||||||
= ff.select :type_champ, TypeDeChampPrivate.type_champs, {}, {class: 'form-control type_champ'}
|
|
||||||
|
|
||||||
.form-group.description
|
|
||||||
%h4 Description
|
|
||||||
= ff.text_area :description, class: 'form-control description', placeholder: 'Description'
|
|
||||||
|
|
||||||
.form-group.mandatory
|
|
||||||
%h4 Obligatoire ?
|
|
||||||
.center
|
|
||||||
= ff.check_box :mandatory, placeholder: 'Obligatoire ?'
|
|
||||||
|
|
||||||
.form-group
|
|
||||||
= ff.hidden_field :order_place, value: ff.index
|
|
||||||
= ff.hidden_field :type
|
|
||||||
= ff.hidden_field :id
|
|
||||||
|
|
||||||
- unless ff.object.id.nil?
|
|
||||||
.form-group
|
|
||||||
%br
|
|
||||||
= ff.object.button_up(index: ff.index, url: move_up_admin_procedure_types_de_champ_private_path(@procedure, ff.index), private: true)
|
|
||||||
= ff.object.button_down(index: ff.index, url: move_down_admin_procedure_types_de_champ_private_path(@procedure, ff.index), private: true)
|
|
||||||
|
|
||||||
.form-group
|
|
||||||
%br
|
|
||||||
- if ff.object.id.nil?
|
|
||||||
= f.submit "Ajouter le champ", class: 'btn btn-success', id: :add_type_de_champ_private
|
|
||||||
- else
|
|
||||||
= link_to("", admin_procedure_type_de_champ_private_path(@procedure, ff.object.id), method: :delete, remote: true, id: "delete_type_de_champ_private_#{ff.object.id}", class: %w(form-control btn btn-danger fa fa-trash-o) )
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
= form_for [:admin, @procedure], url: admin_procedure_types_de_champ_private_path(@procedure) , remote: true do |f|
|
|
||||||
= render partial: 'fields', locals: { types_de_champ_private: @procedure.types_de_champ_private_ordered.decorate, f: f }
|
|
||||||
= f.submit "Enregistrer", class: 'btn btn-success', id: :save
|
|
||||||
%hr
|
|
||||||
#new_type_de_champ
|
|
||||||
= render partial: 'fields', locals: { types_de_champ_private: TypeDeChampPrivate.new.decorate, f: f }
|
|
|
@ -1,4 +0,0 @@
|
||||||
=render partial: 'admin/procedures/head', locals: {active: 'Champs privés'}
|
|
||||||
|
|
||||||
#liste_champ
|
|
||||||
= render partial: 'form'
|
|
|
@ -1,5 +0,0 @@
|
||||||
<% flash.each do |type, message| %>
|
|
||||||
$("#flash_message").html("<div class=\"alert alert-success move_up\" style=\"display: block:\"> <%= message.html_safe %></div>").children().fadeOut(5000)
|
|
||||||
<% end %>
|
|
||||||
$('#liste_champ').html("<%= escape_javascript(render partial: 'form', locals: { procedure: @procedure, types_de_champ: @types_de_champ } ) %>");
|
|
||||||
on_change_type_de_champ_select ();
|
|
|
@ -11,6 +11,7 @@ describe 'admin/types_de_champ/show.html.haml', type: :view do
|
||||||
before do
|
before do
|
||||||
procedure.reload
|
procedure.reload
|
||||||
assign(:procedure, procedure)
|
assign(:procedure, procedure)
|
||||||
|
assign(:types_de_champ_facade, AdminTypesDeChampFacades.new(false, procedure))
|
||||||
render
|
render
|
||||||
end
|
end
|
||||||
it 'sorts by order place' do
|
it 'sorts by order place' do
|
||||||
|
@ -22,6 +23,7 @@ describe 'admin/types_de_champ/show.html.haml', type: :view do
|
||||||
subject do
|
subject do
|
||||||
procedure.reload
|
procedure.reload
|
||||||
assign(:procedure, procedure)
|
assign(:procedure, procedure)
|
||||||
|
assign(:types_de_champ_facade, AdminTypesDeChampFacades.new(false, procedure))
|
||||||
render
|
render
|
||||||
rendered
|
rendered
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'admin/types_de_champ_private/show.html.haml', type: :view do
|
describe 'admin/types_de_champ/show.html.haml', type: :view do
|
||||||
let(:procedure) { create(:procedure) }
|
let(:procedure) { create(:procedure) }
|
||||||
|
|
||||||
describe 'fields sorted' do
|
describe 'fields sorted' do
|
||||||
|
@ -11,6 +11,7 @@ describe 'admin/types_de_champ_private/show.html.haml', type: :view do
|
||||||
before do
|
before do
|
||||||
procedure.reload
|
procedure.reload
|
||||||
assign(:procedure, procedure)
|
assign(:procedure, procedure)
|
||||||
|
assign(:types_de_champ_facade, AdminTypesDeChampFacades.new(true, procedure))
|
||||||
render
|
render
|
||||||
end
|
end
|
||||||
it 'sorts by order place' do
|
it 'sorts by order place' do
|
||||||
|
@ -22,6 +23,7 @@ describe 'admin/types_de_champ_private/show.html.haml', type: :view do
|
||||||
subject do
|
subject do
|
||||||
procedure.reload
|
procedure.reload
|
||||||
assign(:procedure, procedure)
|
assign(:procedure, procedure)
|
||||||
|
assign(:types_de_champ_facade, AdminTypesDeChampFacades.new(true, procedure))
|
||||||
render
|
render
|
||||||
rendered
|
rendered
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue