diff --git a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig index 110acd2c..9537d684 100644 --- a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig +++ b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig @@ -55,14 +55,15 @@ font-size:12px; } - .btnreplymessage { + .btnreplymessage, .btnreplymessagemail { padding: 5px; background-color: #{{ colorbodyfont }}; color : #{{ colorbodyback }}; border-radius:5px; cursor:pointer; + margin-right:5px; } - .btnreplymessage:hover { + .btnreplymessage:hover, .btnreplymessagemail:hover { color : #{{ colorbodyback }}; } .replymessage { display:none} @@ -168,6 +169,7 @@ Répondre + Répondre par Mail
Envoyer @@ -199,6 +201,7 @@ {{ form_widget(form.messagemail) }}
Envoyer + Envoyer @@ -386,6 +389,7 @@ html+="
"+payload.msg.message+"
"; html+="
"; html+="Répondre"; + html+="Répondre par Mail"; html+="
"; html+=""; html+="Envoyer"; @@ -492,7 +496,9 @@ $("#listtoavatar").append($("")); {%endif%} {% endfor %} - + + $("#sendbtnmail").show(); + $("#sendbtnmailreply").hide(); $('#mymodal-sendmail').modal('show'); } else { @@ -568,12 +574,58 @@ else alert("Sujet, corps et destinataire(s) obligatoire"); } + $( "#sendbtnmailreply" ).click(function() { + sendbtnmailreply(); + }); + + function sendbtnmailreply() { + var data = CKEDITOR.instances["chat_messagemail"].getData(); + var subject=$("#mailsuject").val(); + var mailto=$("#mailto").val(); + + if(data&&subject&&mailto) { + + try { + // Flager que l'envoit c'est fait + tosendmail=false; + $("#sendbtnmailreply").html("Envoyer"); + $("#sendbtnmailreply").removeClass("btn-danger"); + $("#sendbtnmailreply").css('cursor','auto'); + + // Push envent sur le websocket + id=$("#sendbtnmailreply").data("id"); + event={mykey: "{{userkey}}", type: "reply", message: data, parent: id, mail: "true", to: mailto, subject: subject}; + session.publish("websocket/channel/{{groupid}}", event); + CKEDITOR.instances["chat_message"].setData(''); + + // Cacher la popup + $("#sendbymail").bootstrapSwitch('state',false); + $('#mymodal-sendmail').modal('hide'); + } + catch(error) { + // L'envoi ne s'est pas fait + console.log("Retry to send reply"); + + // On flag le fait de retenter l'envoit à la reconnexion + tosendmail=true; + + // On signal que l'envoi est en cours sur le bouton + $("#sendbtnmailreply").html("Envoi en cours"); + $("#sendbtnmailreply").addClass("btn-danger"); + $("#sendbtnmailreply").css('cursor','progress'); + } + + } + else alert("Sujet, corps et destinataire(s) obligatoire"); + } + $(document).on('click', '.delmessage', function(){ delmessage($(this).data("id")); }); function delmessage(id) { try { + console.log("cestk"+id); // Flager que l'envoit c'est fait todelete=false; idtodelete=null; @@ -626,6 +678,27 @@ $("#replymessage-"+id+" textarea").focus(); } + $(document).on('click', '.btnreplymessagemail', function(){ + CKEDITOR.instances["chat_messagemail"].setData(""); + $("#mailsuject").val("{{app.session.get('appname')}} = Notification {{ group.label }}"); + $("#mailto").val(""); + $("#listtoavatar").html(""); + + {% for user in group.users %} + {%if(user.user!=app.user)%} + $("#mailto").val($("#mailto").val()+";{{user.user.email}}"); + $("#listtoavatar").append($("")); + {%endif%} + {% endfor %} + + $("#sendbtnmail").hide(); + $("#sendbtnmailreply").show(); + $("#sendbtnmailreply").data("id",$(this).data("id")); + + $('#mymodal-sendmail').modal('show'); + }); + + $(document).on('click', '.sendreply', function(){ sendreply($(this).data("id")); }); @@ -697,6 +770,7 @@ html+="
"; html+="Répondre"; + html+="Répondre par Mail"; html+="
"; html+=""; html+="Envoyer"; diff --git a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php index f9e800e4..86e15d8e 100644 --- a/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php +++ b/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Topic/WebsocketTopic.php @@ -154,6 +154,29 @@ class WebsocketTopic implements TopicInterface if($event["type"]=="reply") { $parent=$this->em->getRepository("CadolesWebsocketBundle:Message")->find($event["parent"]); if($parent) { + if(array_key_exists("mail",$event)) { + $mail = $this->container->get('cadoles.core.service.mail'); + if($mail) { + $pages=$group->getPages(); + $pageid=$pages[0]->getId(); + $cplt="

Attention pour répondre à ce message : n’utilisez pas votre mail mais rendez vous dans ce groupe sur Transnum et utilisez le fil de conversation (chat)
"; + $url="https://".$this->container->getParameter('weburl')."/".$this->container->getParameter('alias').$this->container->get('router')->generate('cadoles_core_redirect', ['route'=>'cadoles_core_home','id'=>$pageid]); + $cplturl="
".$url.""; + $mail_params=array( + "subject" => $event["subject"], + "body_html"=>$event["message"].$cplt.$cplturl, + "body_text"=>strip_tags($event["message"].$cplt.$url) + ); + + // Transformer la liste des destinataires en tableau : [0] tjr vide on l'unset + $to=explode(";",$event["to"]); + unset($to[0]); + + $mail->sendEmail("template", $mail_params, $to, $this->container->getParameter('noreply'), $user->getLastname()." ".$user->getFirstname()); + $event["message"].="
Notification envoyée par mail"; + } + } + $message=new Message(); $message->setTopic($event["message"]); $message->setUser($user);