93f6aaa1056cb18ff27108721896d6915a267fe5
[scilab.git] / scilab / node / static / main.js
1 // connect to server
2 var socket = io();
3
4 //socket events management
5 socket.on('disconnect', function () {
6     setInfo('Connection lost');
7 });
8
9 socket.on('status', function (msg) {
10     switch(msg.data) {
11         case 'ready':
12         case 'reconnection':
13             setInfo('Scilab is ready');
14             resetLogger();
15             //reset "scilab" page
16             var parent = document.getElementById('scilab');
17             parent.innerHTML = '';
18             break;
19         default:
20             setInfo('Scilab is busy');
21             break;
22     }
23     setLogger("<font color='black'>" +  msg.data + '</font>');
24 });
25
26 socket.on('graphic_create', function (msg) {
27     //setLogger('<font color="green">' +  msg + '</font>');
28     eval(msg);
29 });
30
31 socket.on('graphic_delete', function (msg) {
32     //setLogger('<font color="red">' + msg + '</font>');
33     eval(msg);
34 });
35
36 socket.on('graphic_update', function (msg) {
37     //setLogger('<font color="orange">' +  msg + '</font>');
38     eval(msg);
39 });
40
41 socket.on('graphic_reconnection', function (msg) {
42         var scilab = document.getElementById('scilab');
43         switch(msg) {
44                 case 'start':
45                         console.log('hidden');
46                         scilab.style.visibility = 'hidden';
47                         break;
48                 case 'end' :
49                         console.log('visible');
50                         scilab.style.visibility = 'visible';
51                         break;
52         }
53 });
54
55 function onPushButton() {
56     var id = getUID(this.id); //ignore "uid"
57     socket.emit('callback', {uid:id});
58 }
59
60 function onCheckBox() {
61     var id = getUID(this.id); //ignore "uid"
62     socket.emit('callback', {uid:id, value:this.checked});
63 }
64
65 function onRadioButton() {
66     var id = getUID(this.id); //ignore "uid"
67     socket.emit('callback', {uid:id, value:this.checked});
68 }
69
70 function onListBox() {
71     var id = getUID(this.id); //ignore "uid"
72     var data = [];
73     for(var i = 0 ; i < this.options.length; ++i) {
74         if(this.options[i].selected) {
75             data.push(i);
76         }
77     }
78     socket.emit('callback', {uid:id, value:data});
79 }
80
81 function onComboBox() {
82 }
83
84 function onTab() {
85     var li = this.parentNode;
86     var ul = li.parentNode;
87
88     var k = 0;
89     var elem = li;
90     while(elem=elem.previousSibling){k++;}
91
92     var id = parseInt(ul.id.substring(3)); //ignore "uid"
93     socket.emit('callback', {uid:id, value:k});
94 }
95
96 function onSlider() {
97     var id = getUID(this.id); //ignore "uid"
98     socket.emit('callback', {uid:id, value:parseFloat(this.value)});
99 }
100
101 function onEditBox() {
102     var id = getUID(this.id); //ignore "uid"
103     socket.emit('callback', {uid:id, value:this.value});
104 }
105
106 function onSpinner() {
107     var id = getUID(this.id); //ignore "uid"
108     socket.emit('callback', {uid:id, value:parseFloat(this.value)});
109 }
110
111 //tools
112
113 function unload() {
114         socket.close();
115 }
116
117 function setInfo(data) {
118     document.getElementById('infobar').innerHTML = data;
119 }
120
121 function resetLogger() {
122     var objDiv = document.getElementById('logger');
123     objDiv.innerHTML = '';
124 }
125
126 function setLogger(data) {
127     var objDiv = document.getElementById('logger');
128     objDiv.innerHTML += data + '</br>';
129     objDiv.scrollTop = objDiv.scrollHeight;
130 }