possibilité de masquer les messages du chat (ref #155)
This commit is contained in:
parent
2a1179ae9a
commit
c49461aa58
|
@ -286,7 +286,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if($curentuser!="anon.") {
|
if($curentuser!="anon.") {
|
||||||
$visitedate=$curentuser->getVisitedate();
|
$visitedate=clone $curentuser->getVisitedate();
|
||||||
if($visitedate) $visitedate->add(new \DateInterval("PT1H"));
|
if($visitedate) $visitedate->add(new \DateInterval("PT1H"));
|
||||||
$now=new \DateTime();
|
$now=new \DateTime();
|
||||||
if($visitedate<$now) {
|
if($visitedate<$now) {
|
||||||
|
|
|
@ -378,7 +378,7 @@ class UserType extends AbstractType
|
||||||
$builder->add('visitedate', DateTimeType::class, [
|
$builder->add('visitedate', DateTimeType::class, [
|
||||||
"label" => 'Date de dernière visite',
|
"label" => 'Date de dernière visite',
|
||||||
"disabled" => true,
|
"disabled" => true,
|
||||||
"required" => ($fields["visite"]["perm"]==2),
|
"required" => ($fields["visite"]["perm"]==2),
|
||||||
"widget" => 'single_text',
|
"widget" => 'single_text',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
{%if user.job %}<b>Métier</b> = {{ user.job }}<br>{%endif%}
|
{%if user.job %}<b>Métier</b> = {{ user.job }}<br>{%endif%}
|
||||||
{%if user.position %}<b>Fonction</b> = {{ user.position }}<br>{%endif%}
|
{%if user.position %}<b>Fonction</b> = {{ user.position }}<br>{%endif%}
|
||||||
{%if user.postaladress %}<b>Adresse</b> = {{ user.postaladress }}<br>{%endif%}
|
{%if user.postaladress %}<b>Adresse</b> = {{ user.postaladress }}<br>{%endif%}
|
||||||
{%if user.visitedate %}<b>Date de dernière visite</b> = {{ user.visitedate|date("d/m/Y H:i") }}<br>{%endif%}
|
{%if user.visitedate %}<b>Date de dernière visite</b> = {{ user.visitedate|date('d/m/Y H:i') }}<br>{%endif%}
|
||||||
{%if user.visitecpt %}<b>Nombre de visites</b> = {{ user.visitecpt }}<br>{%endif%}
|
{%if user.visitecpt %}<b>Nombre de visites</b> = {{ user.visitecpt }}<br>{%endif%}
|
||||||
<br>
|
<br>
|
||||||
{% set fgtitle=false %}
|
{% set fgtitle=false %}
|
||||||
|
|
|
@ -59,8 +59,11 @@ class ChatController extends Controller
|
||||||
$messages=$em->getRepository("CadolesWebsocketBundle:Message")->findBy(["group"=>$group],["submitdate"=>"DESC"],30);
|
$messages=$em->getRepository("CadolesWebsocketBundle:Message")->findBy(["group"=>$group],["submitdate"=>"DESC"],30);
|
||||||
foreach($messages as $message) {
|
foreach($messages as $message) {
|
||||||
$haveread = ($message->getReaders()->contains($user));
|
$haveread = ($message->getReaders()->contains($user));
|
||||||
$message->setHaveread($haveread);
|
$havesee = ($message->getSees()->contains($user));
|
||||||
|
|
||||||
|
$message->setHaveread($haveread);
|
||||||
|
$message->setHavesee($havesee);
|
||||||
|
|
||||||
if(!$haveread) {
|
if(!$haveread) {
|
||||||
$message->addReader($this->getUser());
|
$message->addReader($this->getUser());
|
||||||
$em->persist($message);
|
$em->persist($message);
|
||||||
|
|
|
@ -70,7 +70,18 @@ class Message
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private $havesee;
|
||||||
|
public function getHavesee()
|
||||||
|
{
|
||||||
|
return $this->havesee;
|
||||||
|
}
|
||||||
|
public function setHavesee($havesee) {
|
||||||
|
$this->havesee = $havesee;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -30,6 +30,9 @@
|
||||||
.message-toread {
|
.message-toread {
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
}
|
}
|
||||||
|
.message-see {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
.msgavatar {
|
.msgavatar {
|
||||||
float:left;
|
float:left;
|
||||||
|
@ -63,10 +66,12 @@
|
||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
<div id="topchat" class='row'>
|
<div id="topchat" class='row'>
|
||||||
{{ form_widget(form.message) }}
|
{{ form_widget(form.message) }}
|
||||||
<input id="sendbymail" type="checkbox" id="item_essential" name="item[essential]" style="float:right" class='switch' ></input>
|
<input id="sendbymail" type="checkbox" style="float:right" class='switch' ></input>
|
||||||
<label class="custom-control-label" for="sendbymail">Envoyer par Mail ?</label>
|
<label class="custom-control-label" for="sendbymail" style="color:#{{ colorbodyback }}">Envoyer par Mail ?</label>
|
||||||
<a id="sendbtn" class="btn btn-success" style="margin-top:5px; width:100%; margin-bottom:15px">Envoyer</a>
|
<a id="sendbtn" class="btn btn-success" style="margin-top:5px; width:100%; margin-bottom:15px">Envoyer</a>
|
||||||
<div id="useronline" style="margin-bottom:10px"></div>
|
<div id="useronline" style="margin-bottom:10px"></div>
|
||||||
|
<input id="unsee" type="checkbox" style="float:right" class='switch' onChange="switchsee()"></input>
|
||||||
|
<label class="custom-control-label" for="unsee" style="color:#{{ colorbodyback }}">Afficher les message masquer ?</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,11 +82,20 @@
|
||||||
{% if not message.haveread %}
|
{% if not message.haveread %}
|
||||||
{% set classread="message-toread" %}
|
{% set classread="message-toread" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div id='message-{{message.id}}' class='message row {{classread}}'>
|
|
||||||
|
{% set classsee="" %}
|
||||||
|
{% if message.havesee %}
|
||||||
|
{% set classsee="message-see" %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div id='message-{{message.id}}' class='message row {{classread}} {{classsee}}'>
|
||||||
<div class='msgavatar'>
|
<div class='msgavatar'>
|
||||||
<img style='cursor:pointer' onclick='seeUser({{message.user.id}})' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/{{message.user.avatar}}' class='avatar'><br>
|
<img style='cursor:pointer' onclick='seeUser({{message.user.id}})' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/{{message.user.avatar}}' class='avatar'><br>
|
||||||
{% if fgmanager or message.user == app.user %}
|
{% if fgmanager or message.user == app.user %}
|
||||||
<i class='delmessage fa fa-trash fa-fw' data-id='{{message.id}}' style='cursor: pointer;'></i>
|
<i class='delmessage fa fa-trash fa-fw' data-id='{{message.id}}' title='Supprimer' style='cursor: pointer;'></i>
|
||||||
|
{% endif %}
|
||||||
|
{% if not message.havesee %}
|
||||||
|
<i id="hidemessage-{{message.id}}" class='hidemessage fa fa-eye-slash fa-fw' title='Ne plus afficher' data-id='{{message.id}}' style='cursor: pointer;'></i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class='msgdiv'>
|
<div class='msgdiv'>
|
||||||
|
@ -294,8 +308,10 @@
|
||||||
html+="<div class='msgavatar'>";
|
html+="<div class='msgavatar'>";
|
||||||
html+="<img style='pointer:cursor' onclick='seeUser("+payload.msg.userid+")' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+payload.msg.avatar+"' class='avatar'><br>";
|
html+="<img style='pointer:cursor' onclick='seeUser("+payload.msg.userid+")' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+payload.msg.avatar+"' class='avatar'><br>";
|
||||||
if(payload.msg.userid=={{app.user.id}} || '{{ fgmanager }}'=='1') {
|
if(payload.msg.userid=={{app.user.id}} || '{{ fgmanager }}'=='1') {
|
||||||
html+="<i class='delmessage fa fa-trash fa-fw' data-id='"+payload.msg.id+"' style='cursor: pointer;'></i>";
|
html+="<i class='delmessage fa fa-trash fa-fw' data-id='"+payload.msg.id+"' title='Supprimer' style='cursor: pointer;'></i>";
|
||||||
}
|
}
|
||||||
|
html+="<i id='hidemessage-"+payload.msg.id+"' class='hidemessage fa fa-eye-slash fa-fw' data-id='"+payload.msg.id+"' title='Ne plus afficher' style='cursor: pointer;'></i>";
|
||||||
|
|
||||||
html+="</div>";
|
html+="</div>";
|
||||||
html+="<div class='msgdiv'>"
|
html+="<div class='msgdiv'>"
|
||||||
html+="<div class='msgtitle'>"+payload.msg.lastname+"<br><small>"+new Date(payload.msg.submitdate.date).toLocaleDateString("fr-FR", dateoptions)+"</small></div>";
|
html+="<div class='msgtitle'>"+payload.msg.lastname+"<br><small>"+new Date(payload.msg.submitdate.date).toLocaleDateString("fr-FR", dateoptions)+"</small></div>";
|
||||||
|
@ -350,6 +366,13 @@
|
||||||
isdeco=true;
|
isdeco=true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function switchsee() {
|
||||||
|
$(".message-see").hide();
|
||||||
|
if($("#unsee").bootstrapSwitch('state')) {
|
||||||
|
$(".message-see").show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$( "#sendbtn" ).click(function() {
|
$( "#sendbtn" ).click(function() {
|
||||||
sendbtn();
|
sendbtn();
|
||||||
|
@ -469,6 +492,31 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(document).on('click', '.hidemessage', function(){
|
||||||
|
hidemessage($(this).data("id"));
|
||||||
|
});
|
||||||
|
|
||||||
|
function hidemessage(id) {
|
||||||
|
$.ajax({
|
||||||
|
method: "POST",
|
||||||
|
url: "{{ path('cadoles_websocket_message_see') }}",
|
||||||
|
data: {
|
||||||
|
id:id
|
||||||
|
},
|
||||||
|
success: function() {
|
||||||
|
$("#message-"+id).addClass ("message-see");
|
||||||
|
$("#hidemessage-"+id).remove();
|
||||||
|
|
||||||
|
if(!$("#unsee").bootstrapSwitch('state')) {
|
||||||
|
$("#message-"+id).hide();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#message-"+id).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
$(document).on('click', '#listtoavatar img', function(){
|
$(document).on('click', '#listtoavatar img', function(){
|
||||||
var mail = ";"+$(this).data("mail");
|
var mail = ";"+$(this).data("mail");
|
||||||
$("#mailto").val($("#mailto").val().replace(mail, ""));
|
$("#mailto").val($("#mailto").val().replace(mail, ""));
|
||||||
|
@ -521,8 +569,9 @@
|
||||||
|
|
||||||
function addOnline(userid, useravatar, userlastname, userfirstname) {
|
function addOnline(userid, useravatar, userlastname, userfirstname) {
|
||||||
if(!$("#online"+userid).length) {
|
if(!$("#online"+userid).length) {
|
||||||
html = "<span id='online"+userid+"'>";
|
html = "<span id='online"+userid+"' style='width:70px; height:105px; display:inline-block; text-align: center; font-size: 10px; color:#{{ colorbodyback }}; text-transform: uppercase; line-height:11px;overflow-wrap: break-word;vertical-align:top;'>";
|
||||||
html+= "<img style='cursor:pointer; width:30px; height:30px; margin-right:5px;' onclick='seeUser("+userid+")' title='"+userlastname+" "+userfirstname+"' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+useravatar+"' class='avatar'>";
|
html+= "<img style='cursor:pointer; width:40px; height:40px; margin-bottom:5px;' onclick='seeUser("+userid+")' title='"+userlastname+" "+userfirstname+"' id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+useravatar+"' class='avatar'>";
|
||||||
|
html+= userlastname+" "+userfirstname;
|
||||||
html+= "</span>";
|
html+= "</span>";
|
||||||
$("#useronline").append(html);
|
$("#useronline").append(html);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue