arnaucube
arnaucube/comunicationLeapPublic Self-hosted repository
comunicationLeap/functions.js
functions.jsRaw
  1var ABB_Web_Users;
  2var ABB_Unity_Users;
  3var ABB_Robotstudio_Users;
  4var ABB_Rooms;
  5var actualDraggingUnityUser;
  6
  7
  8    jQuery(function($)
  9    {
 10        var socket=io.connect();
 11        var $nickForm=$('#setNick');
 12        var $nickError=$('#nickError');
 13        var $nickBox=$('#nickname');
 14        var $users2=$('#users2');
 15        var $usersStations=$('#usersStations');
 16        var $usersUnity=$('#usersUnity');
 17        var $RSrooms=$('#RSrooms');
 18        var $messageForm=$('#send-message');
 19        var $messageBox=$('#message');
 20        var $chat=$('#chat');
 21            $nickForm.submit(function(e)
 22            {
 23            e.preventDefault();
 24            socket.emit('newuser',$nickBox.val(),function(data){
 25                if(data){
 26                $('#nickWrap').hide();
 27                $('#contentWrap').show();
 28                }else{
 29                    $nickError.html('That username is already taken:Try Again!');
 30                }
 31            });
 32            $nickBox.val('');
 33            });
 34            $messageForm.submit(function(e)
 35            {
 36                e.preventDefault();
 37                socket.emit('sendmessage',$messageBox.val());
 38                $messageBox.val('');
 39            });
 40            socket.on('newmessage',function(data){
 41                $chat.append('<b>'+data.nick+':</b>'+data.msg+"<br/>");
 42            });
 43            socket.on('usernames',function(data){
 44                ABB_Web_Users=data.ABB_Web_Users;
 45                var jsonStr = JSON.stringify(data);
 46                var html='';
 47                /*for (i=0;i<jsonStr.length;i++){
 48                    html+=jsonStr[i];
 49                }*/
 50                //html+=jsonStr[i];
 51                html="ABB_Web_Users: ";
 52                for(i=0; i<ABB_Web_Users.length; i++)
 53                {
 54                    html+="<div class='nom'>" + ABB_Web_Users[i] + "</div>";
 55                }
 56
 57                $users2.html(html);
 58                console.log(html);
 59                UpdateAllInfo();
 60            });
 61            socket.on('stationnames',function(data){
 62                ABB_Robotstudio_Users=data.ABB_Robotstudio_Users;
 63                var jsonStr = JSON.stringify(data);
 64                var html='';
 65                /*for (i=0;i<jsonStr.length;i++){
 66                    html+=jsonStr[i]
 67                }*/
 68                //document.getElementById("usersStations").innerHTML = cars;
 69                html="ABB_Robotstudio_Users: ";
 70                for(i=0; i<ABB_Robotstudio_Users.length; i++)
 71                {
 72                    html+="<div class='nom'>" + ABB_Robotstudio_Users[i] + "</div>";
 73                }
 74                $usersStations.html(html);
 75                console.log(html);
 76                UpdateAllInfo();
 77            });
 78            socket.on('Unitynames',function(data){
 79                ABB_Unity_Users=data.ABB_Unity_Users;
 80                var jsonStr = JSON.stringify(data);
 81                var html='';
 82                /*for (i=0;i<jsonStr.length;i++){
 83                    html+=jsonStr[i]
 84                }*/
 85                //docuament.getElementById("usersStations").innerHTML = cars;
 86                html="ABB_Unity_Users: ";
 87                for(i=0; i<ABB_Unity_Users.length; i++)
 88                {
 89                    html+="<div id='"+ABB_Unity_Users[i]+"' class='nom' draggable='true' ondragstart='drag(event, this.id)'>" + ABB_Unity_Users[i] + "</div>";
 90                }
 91                $usersUnity.html(html);
 92                console.log(html);
 93                UpdateAllInfo();
 94            });
 95            socket.on('rooms',function(data){
 96                ABB_Rooms=data.ABB_Rooms;
 97                var jsonStr = JSON.stringify(data);
 98                var html='';
 99                /*for (i=0;i<jsonStr.length;i++){
100                    html+=jsonStr[i]
101                }*/
102                html="ABB_Rooms: ";
103                for(i=0; i<ABB_Rooms.length; i++)
104                {
105                    html+="<div class='nom'>" + ABB_Rooms[i] + "</div>";
106                }
107                //document.getElementById("usersStations").innerHTML = cars;
108                $RSrooms.html(html);
109                console.log(html);
110                UpdateAllInfo();
111            });
112    });
113    function NoWindowsApanyo(){
114        //ABB_Unity_Users=["uu1"];
115        ABB_Rooms=["room1", "room2"];
116        ABB_Robotstudio_Users=["rb1", "rb2"];
117
118        UpdateUnityUsersAvailable();
119    }
120    function GenerateRandomId()
121    {
122        idgenerated=Math.random();
123        idgenerated=idgenerated*100;
124        idgenerated=Math.round(idgenerated);
125        idgenerated=idgenerated.toString();
126        return(idgenerated);
127    }
128    function OnLoadHTML(){
129        var socket=io.connect();
130        idg=GenerateRandomId();
131        socket.emit('newuser',idg,function(data){});
132        UpdateUnityUsersAvailable();
133    }
134    function UpdateUnityUsersAvailable(){
135        if(ABB_Unity_Users!=undefined)
136        {
137            html="ABB_Unity_Users: ";
138            for(i=0; i<ABB_Unity_Users.length; i++)
139            {
140                html+="<div id='"+ABB_Unity_Users[i]+"' class='nom' draggable='true' ondragstart='drag(event, this.id)'>" + ABB_Unity_Users[i] + "</div>";
141            }
142            document.getElementById('usersUnity').innerHTML=html;
143        }
144    }
145    function UpdateAllInfo(){
146
147        //NoWindowsApanyo();
148
149        document.getElementById("systeminfo").innerHTML="";
150        saux="";
151        if(ABB_Rooms!=undefined)
152        {
153            saux+="System info<br>";
154            for(i=0; i<ABB_Rooms.length; i++)
155            {
156                saux+="<div id='"+ABB_Rooms[i]+"' class='Room' ondrop='drop(event, this.id)' ondragover='allowDrop(event)'>" + ABB_Rooms[i];
157                if(ABB_Robotstudio_Users!=undefined)
158                {
159                    for(j=0; j<ABB_Robotstudio_Users.length; j++)
160                    {
161                        saux+="	<div class='Robotstudio_User'>" + ABB_Robotstudio_Users[j] + "</div>";
162                    }
163                }
164    /*			if(ABB_Unity_Users!=undefined)
165                {
166                    for(j=0; j<ABB_Unity_Users.length; j++)
167                    {
168                        saux+="	<div class='Unity_User'>" + ABB_Unity_Users[j] + "</div>";
169                    }
170                }*/
171
172
173                saux+="</div>";
174            }
175        }
176        document.getElementById('systeminfo').innerHTML=saux;
177    }
178
179
180    function RemoveFromUnityUsersArray(unityusergiv){
181        for(var i=0; i<ABB_Unity_Users.length; i++)
182        {
183            if(ABB_Unity_Users[i]==unityusergiv)
184            {
185                ABB_Unity_Users.splice(i, 1);
186            }
187        }
188    }
189
190    function allowDrop(ev) {
191        ev.preventDefault();
192    }
193
194    function drag(ev, idUnityUser) {
195        ev.dataTransfer.setData("text", ev.target.id);
196            actualDraggingUnityUser=idUnityUser;
197    }
198
199    function drop(ev, idRoom) {
200        ev.preventDefault();
201            cont="";
202            cont+="<div id='"+ actualDraggingUnityUser +"' class='nom'>" + actualDraggingUnityUser + "</div>";
203            document.getElementById(idRoom).innerHTML+=cont;
204            RemoveFromUnityUsersArray(actualDraggingUnityUser);
205            UpdateUnityUsersAvailable();
206            //AQUÍ LA FUNCIÓ DE QUE UN UNITY ES CONECTA A UN ROOM:
207            UnityToRoom(idRoom, actualDraggingUnityUser);
208    }
209    function UnityToRoom(room, unity){
210        //funció de quan un unity es conecta a un room
211        //aqí lu del socet emit cap al server avisant de que el unity està a la room
212        //a la variable room i a la variable unity hi tens la info de quin unity es conecta a quin room
213        alert("El user: " + unity + " es conecta a la room: " + room);
214        //aqí pots posar la info de qin unityuser es conecta a qina room a una array o algu
215    }