• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/swat2/scripting/client/
1/*
2	client side js functions for remote calls into the server
3
4	Copyright Andrew Tridgell 2005
5	released under the GNU GPL Version 3 or later
6*/
7
8var __call = new Object();
9
10/*
11  we can't use the qooxdoo portability layer for this, as it assumes
12  you are using an XML transport, so instead replicate the portability
13  code for remote calls here. Don't look too closely or you will go
14  blind.
15*/
16__call._activex = window.ActiveXObject && !(new QxClient).isOpera() ? true : false;
17__call._activexobj = null;
18__call._ok = QxXmlHttpLoader._http || QxXmlHttpLoader._activex;
19
20if (__call._activex) {
21	var servers = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
22	for (var i=0; i<servers.length; i++) {
23		try {
24			var o = new ActiveXObject(servers[i] + ".XMLHTTP");
25			__call._activexobj = servers[i];
26			o = null;
27		} catch(ex) {};
28	};
29};
30
31/*
32  return a http object ready for a remote call
33*/
34function __http_object() {
35	return __call._activex ?
36		new ActiveXObject(__call._activexobj + ".XMLHTTP") :
37		new XMLHttpRequest();
38}
39
40/*
41	usage:
42
43	  vserver_call(url, func, callback, args);
44
45	'func' is a function name to call on the server
46	any additional arguments are passed to func() on the server
47
48	The callback() function is called with the returned
49	object. 'callback' may be null.
50*/
51function vserver_call_url(url, func, callback, args) {
52	var args2 = new Object();
53	args2.length = args.length;
54	var i;
55	for (i=0;i<args.length;i++) {
56		args2[i] = args[i];
57	}
58	var req = __http_object();
59	req.open("POST", url, true);
60	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
61	req.send("ajaj_func=" + func + "&ajaj_args=" + encodeObject(args2));
62	req.onreadystatechange = function() {
63		if (4 == req.readyState && callback != null) {
64			var o = decodeObject(req.responseText);
65			callback(o.res);
66		}
67	}
68}
69
70
71/*
72	usage:
73
74	  server_call_url(url, func, callback, ...);
75
76	'func' is a function name to call on the server
77	any additional arguments are passed to func() on the server
78
79	The callback() function is called with the returned
80	object. 'callback' may be null.
81*/
82function server_call_url(url, func, callback) {
83	var args = new Object();
84	var i;
85	for (i=3;i<arguments.length;i++) {
86		args[i-3] = arguments[i];
87	}
88	args.length = i-3;
89	vserver_call_url(url, func, callback, args);
90}
91
92
93/*
94	call printf on the server
95*/
96function srv_printf() {
97	vserver_call_url('/scripting/general_calls.esp', 'srv_printf', null, arguments);
98}
99
100/*
101	usage:
102
103	  server_call(func, callback, ...);
104
105	'func' is a function name to call on the server
106	any additional arguments are passed to func() on the server
107
108	The callback() function is called with the returned
109	object. 'callback' may be null.
110*/
111function server_call(func, callback) {
112	var args = new Array(arguments.length-2);
113	var i;
114	for (i=0;i<args.length;i++) {
115		args[i] = arguments[i+1];
116	}
117	vserver_call_url("@request.REQUEST_URI", func, callback, args);
118}
119