merged cont.
[opensuse:yast-rest-service.git] / webservice / public / javascripts / notifier.workers.js
1 /*
2 #--
3 # Webyast Webservice framework
4 #
5 # Copyright (C) 2009, 2010 Novell, Inc. 
6 #   This library is free software; you can redistribute it and/or modify
7 # it only under the terms of version 2.1 of the GNU Lesser General Public
8 # License as published by the Free Software Foundation. 
9 #
10 #   This library is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
13 # details. 
14 #
15 #   You should have received a copy of the GNU Lesser General Public
16 # License along with this library; if not, write to the Free Software 
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 #++
19 */
20
21 function XHRrequest(module, id, auth_token) {
22   var xhr = new XMLHttpRequest();
23   
24   self.module = module;
25   self.auth_token = auth_token;
26   
27   if(typeof id !== 'undefined') { 
28     self.id = id;
29     var url = '/notifier?plugin='+self.module+'&id='+self.id; 
30   } else {
31     var url = '/notifier?plugin='+self.module;
32   }
33   
34   if(xhr) {    
35     xhr.open('get', url);
36     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
37     xhr.send(self.auth_token);
38     
39     xhr.onreadystatechange = function() {
40       if(xhr.readyState == 4) {
41         if (xhr.status == 200) {
42           postMessage(xhr.responseText);
43           if(self.id !='#') {
44             setTimeout(XHRrequest, 5000, self.module, self.id, self.auth_token);
45           } else {
46             setTimeout(XHRrequest, 5000, self.module, self.auth_token);
47           }
48         } else {
49           postMessage(xhr.status);
50           self.close();
51         }
52       }
53     }
54   }
55 }
56
57 onmessage = function(event) {
58   var target = event.data;
59   XHRrequest(target.module, target.id, target.AUTH_TOKEN);
60 }