ninegate/src/ninegate-1.0/src/Cadoles/WebsocketBundle/Resources/views/Chat/client.html.twig

144 lines
5.5 KiB
Twig
Raw Normal View History

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" };
2019-07-23 15:32:35 +02:00
{% if websocket_activate and app.user %}
2019-07-16 12:10:32 +02:00
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:{{ gos_web_socket_server_port }}";
var webSocket = WS.connect(_WS_URI);
2019-07-23 15:32:35 +02:00
webSocket.on("socket/connect", function (session) {
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) {
2019-07-23 15:32:35 +02:00
event={mykey: "{{userkey}}", type: "add", message: data};
2019-07-17 17:06:05 +02:00
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");
2019-07-23 15:32:35 +02:00
event={mykey: "{{userkey}}", type: "del", id: id};
2019-07-17 17:06:05 +02:00
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 %}