123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- var lines;
- var subscription;
- var ws;
- var acts = {};
- var transitions = [];
- var lastpos;
- var sub = 'topic' + '=' + 'activity' + '&' +// {{{
- 'events' + '=' + 'calling' + '&' +
- 'topic' + '=' + 'condition' + '&' +
- 'events' + '=' + 'eval' + '&' +
- 'topic' + '=' + 'dataelements' + '&' +
- 'events' + '=' + 'change' + '&' +
- 'topic' + '=' + 'position' + '&' +
- 'events' + '=' + 'change';// }}}
- function transdraw() {
- var buff = [];
- while (transitions.length > 0) {
- var trans = transitions.shift();
- if (acts[trans.unmark] && acts[trans.at]) {
- $(lines).each(function(k,val){
- if (val['From'] == acts[trans.unmark] && val['To'] == acts[trans.at]) {
- changelines('green','red');
- drawline(val['From'],val['To'],val['Between'],'green');
- }
- });
- } else {
- buff.push(trans);
- }
- }
- transitions = buff;
- }
- function transdraw2(station) {
- if (lastpos) {
- $(lines).each(function(k,val){
- if (val['From'] == lastpos && val['To'] == station) {
- changelines('green','red');
- drawline(val['From'],val['To'],val['Between'],'green');
- //console.log(lastpos);
- }
- });
- }
- lastpos = station;
- }
- function websocket() { //{{{
- var url = $('body').attr('current-instance');
- var Socket = "MozWebSocket" in window ? MozWebSocket : WebSocket;
- if (ws) ws.close();
- ws = new Socket(url.replace(/http/,'ws') + "/notifications/subscriptions/" + subscription + "/ws/");
- ws.onopen = function() {
- console.log("monitoring", "opened", "");
- };
- ws.onmessage = function(e) {
- data = $.parseXML(e.data);
- if ($('event > topic',data).length > 0) {
- switch($('event > topic',data).text()) {
- case 'condition':
- var data = JSON.parse($('event > notification',data).text());
- if (data.condition == "true") {
- $('#detailcolumn .stations').append($('<div class="station-condition">' + data.code + '</div>'));
- }
- case 'dataelements':
- var data = JSON.parse($('event > notification',data).text());
- var schrott = data.values.schrott;
- var schrott_value = (JSON.parse(schrott)["schrott"]);
- var schrott_percent = schrott_value*100;
- console.log(data);
- if (data.label == 'Identifikation 110'){
- $('#detailcolumn .instance').append($('<br> <div class="station-id"> Predicted Scrap Probability: ' + schrott_percent.toFixed(2) + ' %</div>'));
- }
- case 'position':
- // var data = JSON.parse($('event > notification',data).text());
- // if (data.unmark && data.at) {
- // transitions.push({unmark: data.unmark[0], at: data.at[0]});
- // transdraw();
- // }
- break;
- case 'activity':
- var data = JSON.parse($('event > notification',data).text());
- var activity = data.activity;
- var label = data.label;
- var station = label.match(/ ([\d\/-]+)$/)[1];
- if (station.split('/').length > 1) {
- station = station.split('/')[0];
- $(station.split('/')).each(function(k,val){
- acts[activity] = val;
- });
- } else {
- acts[activity] = station;
- }
- $('g.node[data-id=' + station + ']').addClass('active');
- transdraw2(station);
- $('#detailcolumn .stations').append($('<div class="station-id">' + station + '</div>'));
- break;
- }
- }
- if ($('vote > topic',data).length > 0) {
- }
- };
- ws.onclose = function() {
- console.log("monitoring", "closed", "server down i assume.");
- };
- } //}}}
- $(document).ready(function(){
- // $("#graphcolumn .draw").on('click','g.node',getnode);
- // $("#graphcolumn .draw").click('click',getpos);
- $.get("nodes.yaml", function(res) {
- var nodes = jsyaml.load(res);
- $(nodes).each(function(k,val){
- drawnode(val['ID'],val['X'],val['Y'],val['Name']);
- });
- });
- $.get("lines.yaml", function(res) {
- lines = jsyaml.load(res);
- });
- $('#run').click(function(){
- $('#detailcolumn .stations').empty();
- $('#graphcolumn .draw .lines').empty();
- $('#graphcolumn .draw .texts g.node.active').removeClass('active');
- $.ajax({
- type: "POST",
- url: "https://centurio.work/flow/start/url/",
- data: { info: "OEBB Sim", behavior: "fork_ready", url: "https://centurio.work/customers/oebb/processes/Fulltest_3.6.xml" },
- success: function(url){
- url = url['CPEE-INSTANCE-URL'];
- $('#detailcolumn .instance').show();
- $('#detailcolumn .instance a').text(url);
- $('#detailcolumn .instance a').attr('href','https://centurio.work/customers/oebb/?monitor=' + url);
- $('body').attr('current-instance',url);
- $.ajax({
- type: "POST",
- url: url + "/notifications/subscriptions/",
- data: sub,
- success: function(res){
- res = res.unserialize();
- $.each(res,function(a,b){
- if (b[0] == 'key') {
- subscription = b[1];
- }
- });
- websocket();
- }
- });
- }
- });
- });
- });
|