2019-07-16 12:10:32 +02:00
|
|
|
{% extends '@CadolesCore/base.html.twig' %}
|
|
|
|
|
|
|
|
{% block localstyle %}
|
2019-07-17 11:50:37 +02:00
|
|
|
{% if framed %}
|
|
|
|
{% if border %}
|
|
|
|
#page-wrapper {
|
|
|
|
padding: 5px 25px 10px 15px;
|
|
|
|
background: transparent;
|
|
|
|
}
|
|
|
|
{% else %}
|
|
|
|
#page-wrapper {
|
|
|
|
padding: 5px 25px 0px 15px;
|
|
|
|
background: transparent;
|
|
|
|
}
|
|
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
|
|
#page-wrapper { padding-top:20px; padding-bottom:30px; }
|
|
|
|
{% endif %}
|
|
|
|
|
2019-07-16 12:10:32 +02:00
|
|
|
.message {
|
|
|
|
padding:10px;
|
|
|
|
margin-top: 5px;
|
2019-07-17 11:50:37 +02:00
|
|
|
background-color: #{{ colorbodyback }};
|
|
|
|
color: #{{ colorbodyfont }};
|
2019-07-16 12:10:32 +02:00
|
|
|
}
|
|
|
|
.msgavatar {
|
|
|
|
float:left;
|
|
|
|
height:40px;
|
2019-07-19 16:51:11 +02:00
|
|
|
text-align: center;
|
2019-07-16 12:10:32 +02:00
|
|
|
}
|
|
|
|
.msgdiv {
|
|
|
|
float:left;
|
|
|
|
padding-left:10px;
|
|
|
|
}
|
|
|
|
.msgtitle {
|
|
|
|
line-height: 12px;
|
|
|
|
margin-bottom: 10px;
|
|
|
|
}
|
2019-07-17 11:50:37 +02:00
|
|
|
#cke_1_bottom{ display:none }
|
2019-07-16 12:10:32 +02:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block pagewrapper %}
|
2019-07-17 11:50:37 +02:00
|
|
|
{{ form_start(form) }}
|
|
|
|
<div class='row'>
|
|
|
|
{{ form_widget(form.message) }}
|
|
|
|
<a id="sendbtn" class="btn btn-success" style="margin-top:5px; width:100%; margin-bottom:15px">Envoyer</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{{ form_end(form) }}
|
2019-07-16 12:10:32 +02:00
|
|
|
|
2019-07-17 11:50:37 +02:00
|
|
|
<div class="mychat">
|
|
|
|
{% for message in messages %}
|
2019-07-17 17:06:05 +02:00
|
|
|
<div id='message-{{message.id}}' class='message row'>
|
|
|
|
<div class='msgavatar'>
|
|
|
|
<img id='user_avatar_img' src='/{{ alias }}/uploads/avatar/{{message.user.avatar}}' class='avatar'><br>
|
2019-07-19 16:51:11 +02:00
|
|
|
{% if fgmanager or message.user == app.user %}
|
|
|
|
<i class='delmessage fa fa-trash fa-fw' data-id='{{message.id}}' style='cursor: pointer;'></i>
|
|
|
|
{% endif %}
|
2019-07-17 17:06:05 +02:00
|
|
|
</div>
|
2019-07-17 11:50:37 +02:00
|
|
|
<div class='msgdiv'>
|
|
|
|
<div class='msgtitle'>
|
|
|
|
{{message.user.lastname}} {{message.user.firstname}}<br>
|
|
|
|
<small>{{message.submitdate|date('d/m/Y H:i')}}</small>
|
|
|
|
</div>
|
|
|
|
<div class='msgtopic'>{{message.topic | raw}}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endfor %}
|
2019-07-16 12:10:32 +02:00
|
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block localexternalscript %}
|
|
|
|
<script src="/{{alias}}/bundles/goswebsocket/js/vendor/autobahn.min.js"></script>
|
|
|
|
<script src="/{{alias}}/bundles/goswebsocket/js/gos_web_socket_client.js"></script>
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block localjavascript %}
|
|
|
|
$(document).ready(function(){
|
|
|
|
var dateoptions = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit" };
|
|
|
|
|
|
|
|
|
|
|
|
{% if app.user %}
|
|
|
|
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:{{ gos_web_socket_server_port }}";
|
|
|
|
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:5555";
|
|
|
|
|
|
|
|
var webSocket = WS.connect(_WS_URI);
|
|
|
|
|
|
|
|
webSocket.on("socket/connect", function (session) {
|
|
|
|
|
|
|
|
session.call("websocket/rpc/update_connection_data", {"userkey": "{{userkey}}" }).then(
|
|
|
|
function (result)
|
|
|
|
{
|
2019-07-19 16:51:11 +02:00
|
|
|
//console.log("RPC Valid!", result);
|
2019-07-16 12:10:32 +02:00
|
|
|
},
|
|
|
|
function (error, desc)
|
|
|
|
{
|
2019-07-19 16:51:11 +02:00
|
|
|
//console.log("RPC Error", error, desc);
|
2019-07-16 12:10:32 +02:00
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
//the callback function in "subscribe" is called everytime an event is published in that channel.
|
|
|
|
session.subscribe("websocket/channel/{{groupid}}", function (uri, payload) {
|
2019-07-17 11:50:37 +02:00
|
|
|
if(payload.msg) {
|
2019-07-17 17:06:05 +02:00
|
|
|
html ="<div id='message-"+payload.msg.id+"' class='message row'>";
|
|
|
|
html+="<div class='msgavatar'>";
|
|
|
|
html+="<img id='user_avatar_img' src='/{{ alias }}/uploads/avatar/"+payload.msg.avatar+"' class='avatar'><br>";
|
2019-07-19 16:51:11 +02:00
|
|
|
if(payload.msg.userid=={{app.user.id}} || '{{ fgmanager }}'=='1') {
|
2019-07-17 17:06:05 +02:00
|
|
|
html+="<i class='delmessage fa fa-trash fa-fw' data-id='"+payload.msg.id+"' style='cursor: pointer;'></i>";
|
|
|
|
}
|
|
|
|
html+="</div>";
|
2019-07-17 11:50:37 +02:00
|
|
|
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='msgtopic'>"+payload.msg.message+"</div>";
|
|
|
|
html+="</div>";
|
|
|
|
html+="</div>";
|
|
|
|
$(".mychat").prepend(html);
|
|
|
|
|
2019-07-19 16:51:11 +02:00
|
|
|
//console.log("Received message by "+payload.msg.userid+" = ",payload.msg);
|
2019-07-17 11:50:37 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if(payload.log) {
|
|
|
|
console.log("Received message", payload.log);
|
|
|
|
}
|
2019-07-17 17:06:05 +02:00
|
|
|
|
|
|
|
if(payload.del) {
|
|
|
|
$("#message-"+payload.del).remove();
|
|
|
|
}
|
|
|
|
|
|
|
|
if(payload.alert) {
|
|
|
|
alert(payload.alert);
|
|
|
|
}
|
2019-07-16 12:10:32 +02:00
|
|
|
});
|
|
|
|
|
2019-07-17 11:50:37 +02:00
|
|
|
$( "#sendbtn" ).click(function() {
|
|
|
|
var data = CKEDITOR.instances["chat_message"].getData();
|
2019-07-17 17:06:05 +02:00
|
|
|
if(data) {
|
|
|
|
event={type: "add", message: data};
|
|
|
|
session.publish("websocket/channel/{{groupid}}", event);
|
|
|
|
CKEDITOR.instances["chat_message"].setData('');
|
2019-07-19 16:51:11 +02:00
|
|
|
|
|
|
|
event={type: "add", group:{{groupid}}};
|
|
|
|
parent.parent.counter(event);
|
2019-07-17 17:06:05 +02:00
|
|
|
}
|
|
|
|
});
|
2019-07-17 11:50:37 +02:00
|
|
|
|
2019-07-17 17:06:05 +02:00
|
|
|
$(document).on('click', '.delmessage', function(){
|
|
|
|
id=$(this).data("id");
|
|
|
|
event={type: "del", id: id};
|
|
|
|
session.publish("websocket/channel/{{groupid}}", event);
|
2019-07-19 16:51:11 +02:00
|
|
|
|
|
|
|
|
2019-07-17 15:13:49 +02:00
|
|
|
});
|
2019-07-16 12:10:32 +02:00
|
|
|
})
|
|
|
|
{% endif %}
|
|
|
|
});
|
2019-07-17 17:06:05 +02:00
|
|
|
|
2019-07-16 12:10:32 +02:00
|
|
|
{% endblock %}
|