Merge branch 'Aufinal/websockets' into 'master'
K-Fêt : - Ajout d'une classe générale pour les websockets See merge request !204
This commit is contained in:
commit
fafa7e536e
2 changed files with 49 additions and 11 deletions
|
@ -27,6 +27,53 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Generic Websocket class and k-psul ws instanciation
|
||||
*/
|
||||
|
||||
class KfetWebsocket {
|
||||
|
||||
static get defaults() {
|
||||
return {"relative_url": "", "default_msg": {}, "handlers": []};
|
||||
}
|
||||
|
||||
constructor(data) {
|
||||
$.extend(this, this.constructor.defaults, data);
|
||||
}
|
||||
|
||||
get url() {
|
||||
var websocket_protocol = window.location.protocol == 'https:' ? 'wss' : 'ws';
|
||||
var location_host = window.location.host;
|
||||
var location_url = window.location.pathname.startsWith('/gestion/') ? location_host + '/gestion' : location_host;
|
||||
|
||||
return websocket_protocol+"://" + location_url + this.relative_url ;
|
||||
}
|
||||
|
||||
add_handler(handler) {
|
||||
if (!this.socket)
|
||||
this.listen();
|
||||
|
||||
this.handlers.push(handler);
|
||||
}
|
||||
|
||||
listen() {
|
||||
var that = this;
|
||||
this.socket = new ReconnectingWebSocket(this.url);
|
||||
|
||||
this.socket.onmessage = function(e) {
|
||||
var data = $.extend({}, that.default_msg, JSON.parse(e.data));
|
||||
for (let handler of that.handlers) {
|
||||
handler(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var OperationWebSocket = new KfetWebsocket({
|
||||
'relative_url': '/ws/k-fet/k-psul/',
|
||||
'default_msg': {'opegroups':[],'opes':[],'checkouts':[],'articles':[]},
|
||||
});
|
||||
|
||||
function dateUTCToParis(date) {
|
||||
return moment.tz(date, 'UTC').tz('Europe/Paris');
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
<script type="text/javascript" src="{% static 'kfet/js/moment.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'kfet/js/moment-fr.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'kfet/js/moment-timezone-with-data-2010-2020.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'kfet/js/kfet.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'kfet/js/history.js' %}"></script>
|
||||
{% endblock %}
|
||||
|
||||
|
@ -1321,15 +1320,7 @@ $(document).ready(function() {
|
|||
// Synchronization
|
||||
// -----
|
||||
|
||||
websocket_msg_default = {'opegroups':[],'opes':[],'checkouts':[],'articles':[]}
|
||||
|
||||
var websocket_protocol = window.location.protocol == 'https:' ? 'wss' : 'ws';
|
||||
var location_host = window.location.host;
|
||||
var location_url = window.location.pathname.startsWith('/gestion/') ? location_host + '/gestion' : location_host;
|
||||
socket = new ReconnectingWebSocket(websocket_protocol+"://" + location_url + "/ws/k-fet/k-psul/");
|
||||
socket.onmessage = function(e) {
|
||||
data = $.extend({}, websocket_msg_default, JSON.parse(e.data));
|
||||
|
||||
OperationWebSocket.add_handler(function(data) {
|
||||
for (var i=0; i<data['opegroups'].length; i++) {
|
||||
if (data['opegroups'][i]['add']) {
|
||||
khistory.addOpeGroup(data['opegroups'][i]);
|
||||
|
@ -1360,7 +1351,7 @@ $(document).ready(function() {
|
|||
settings['addcost_amount'] = parseFloat(data['addcost']['amount']);
|
||||
displayAddcost();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// -----
|
||||
// General
|
||||
|
|
Loading…
Reference in a new issue