Flux de commentaires par champs
This commit is contained in:
parent
305410f7a3
commit
96ca5113f7
14 changed files with 181 additions and 5 deletions
13
app/assets/javascripts/dossier_commentaires_modal.js
Normal file
13
app/assets/javascripts/dossier_commentaires_modal.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
$(document).ready(function () {
|
||||
var modal = $("#modalCommentairesDossierParChamp");
|
||||
var body = modal.find(".modal-body");
|
||||
var originalBody = body.html();
|
||||
|
||||
modal.on("show.bs.modal", function (e) {
|
||||
body.load(e.relatedTarget.getAttribute("data-href"));
|
||||
});
|
||||
|
||||
$("#modalCommentairesDossierParChamp").on("hidden.bs.modal", function (e) {
|
||||
body.html(originalBody);
|
||||
});
|
||||
});
|
|
@ -1,7 +1,20 @@
|
|||
class CommentairesController < ApplicationController
|
||||
def index
|
||||
@facade = DossierFacades.new(
|
||||
params[:dossier_id],
|
||||
(current_gestionnaire || current_user).email,
|
||||
params[:champs_id]
|
||||
)
|
||||
render layout: false
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
flash.alert = t('errors.messages.dossier_not_found')
|
||||
redirect_to url_for(controller: '/')
|
||||
end
|
||||
|
||||
def create
|
||||
@commentaire = Commentaire.new
|
||||
@commentaire.dossier = Dossier.find(params['dossier_id'])
|
||||
@commentaire.champ = @commentaire.dossier.champs.find(params[:champ_id]) if params[:champ_id]
|
||||
|
||||
if is_gestionnaire?
|
||||
@commentaire.email = current_gestionnaire.email
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
class DossierFacades
|
||||
|
||||
#TODO rechercher en fonction de la personne/email
|
||||
def initialize dossier_id, email
|
||||
def initialize(dossier_id, email, champ_id = nil)
|
||||
@dossier = Dossier.where(archived: false).find(dossier_id)
|
||||
@email = email
|
||||
@champ_id = champ_id
|
||||
end
|
||||
|
||||
def dossier
|
||||
|
@ -26,8 +27,16 @@ class DossierFacades
|
|||
@dossier.ordered_pieces_justificatives
|
||||
end
|
||||
|
||||
def champ_id
|
||||
@champ_id
|
||||
end
|
||||
|
||||
def commentaires
|
||||
@dossier.ordered_commentaires.all.decorate
|
||||
if @champ_id
|
||||
@dossier.ordered_commentaires.where(champ_id: @champ_id).decorate
|
||||
else
|
||||
@dossier.ordered_commentaires.all.decorate
|
||||
end
|
||||
end
|
||||
|
||||
def commentaire_email
|
||||
|
@ -61,4 +70,4 @@ class DossierFacades
|
|||
def followers
|
||||
Gestionnaire.joins(:follows).where("follows.dossier_id=#{@dossier.id}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
class Champ < ActiveRecord::Base
|
||||
belongs_to :dossier
|
||||
belongs_to :type_de_champ
|
||||
has_many :commentaires
|
||||
|
||||
delegate :libelle, :type_champ, :order_place, :mandatory, :description, :drop_down_list, to: :type_de_champ
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
class Commentaire < ActiveRecord::Base
|
||||
belongs_to :dossier
|
||||
belongs_to :champ
|
||||
|
||||
belongs_to :piece_justificative
|
||||
end
|
||||
|
|
1
app/views/backoffice/commentaires/index.html.haml
Normal file
1
app/views/backoffice/commentaires/index.html.haml
Normal file
|
@ -0,0 +1 @@
|
|||
= render partial: '/users/recapitulatif/commentaires_flux'
|
|
@ -63,6 +63,12 @@
|
|||
%tr
|
||||
%th{ style: 'width:25%' }
|
||||
=champ.libelle
|
||||
-if gestionnaire_signed_in?
|
||||
=link_to "COM", "", "data-href" => backoffice_dossier_commentaires_path(@facade.dossier, champs_id: champ.id),
|
||||
"data-toggle" => "modal", "data-target" => "#modalCommentairesDossierParChamp"
|
||||
-else
|
||||
=link_to "COM", "", "data-href" => users_dossier_commentaires_path(@facade.dossier, champs_id: champ.id),
|
||||
"data-toggle" => "modal", "data-target" => "#modalCommentairesDossierParChamp"
|
||||
%td
|
||||
-unless champ.decorate.value.blank?
|
||||
=champ.decorate.value.html_safe
|
||||
|
@ -114,3 +120,18 @@
|
|||
%button.action_button.btn.btn-warning
|
||||
%i.fa.fa-circle-o
|
||||
|
||||
#modalCommentairesDossierParChamp.modal.fade{"tabindex" => -1, "role" => "dialog"}
|
||||
.modal-dialog{"role" => "document"}
|
||||
.modal-content
|
||||
.modal-header
|
||||
%button.close{"data-dismiss" => "modal", "aria-label" => "Fermer"}
|
||||
%span{"aria-hidden" => true}
|
||||
×
|
||||
.modal-title
|
||||
Commentaires
|
||||
.modal-body
|
||||
%p
|
||||
Chargement des commentaires en cours...
|
||||
.modal-footer
|
||||
%button.btn.btn-primary{"data-dismiss" => "modal"}
|
||||
Fermer
|
||||
|
|
1
app/views/users/commentaires/index.html.haml
Normal file
1
app/views/users/commentaires/index.html.haml
Normal file
|
@ -0,0 +1 @@
|
|||
= render partial: '/users/recapitulatif/commentaires_flux'
|
|
@ -1,6 +1,6 @@
|
|||
.content#commentaires_flux{style:'width:100%;'}
|
||||
%div#commentaire_new{style: 'width:80%; margin-left:auto; margin-right:auto; margin-bottom:7%'}
|
||||
= form_tag(url_for({ controller: 'commentaires', action: :create, dossier_id: @facade.dossier.id }), class: 'form-inline', method: 'POST', multipart: true) do
|
||||
= form_tag(url_for({ controller: 'commentaires', action: :create, dossier_id: @facade.dossier.id, champ_id: @facade.champ_id }), class: 'form-inline', method: 'POST', multipart: true) do
|
||||
%textarea.form-control{id: 'texte_commentaire', class: 'wysihtml5', name: 'texte_commentaire', style: 'width: 100%; margin-bottom:2%', rows: '5', placeholder:"Commentaire"}
|
||||
%h4.text-primary{style: 'margin-top: 0px'} Ajout un fichier
|
||||
= file_field_tag "piece_justificative[content]", accept: PieceJustificative.accept_format, style: 'float: left; margin-left: 20px'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue