r9227: cleanup and simplify the AJAJ code
authorAndrew Tridgell <tridge@samba.org>
Wed, 10 Aug 2005 06:58:05 +0000 (06:58 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:31:34 +0000 (13:31 -0500)
source/scripting/libjs/server_call.js
swat/esptest/qooxdoo.esp
swat/esptest/registry.esp
swat/esptest/registry_calls.esp [deleted file]
swat/esptest/remote.esp [deleted file]
swat/scripting/general_calls.esp

index 316e764a531d8b53bc6639ba54d83571741c1f1e..a8c08780f9e66f623279571b22efd8c95846fedc 100644 (file)
@@ -21,20 +21,20 @@ function __register_call(name, func)
 */
 function __run_call() {
        var c = this;
-       var name = form['func'];
+       var name = form['ajaj_func'];
        if (name == undefined) {
-               println("no function name given in run_call");
+               /* no function to run */
                return;
        }
-       var args = form['args'];
+       var args = form['ajaj_args'];
        if (args == undefined) {
                println("no function arguments given in run_call");
-               return;
+               exit(0);
        }
        args = decodeObject(args);
        if (c.calls[name] == undefined) {
                println("undefined remote call " + name);
-               return;
+               exit(0);
        }
        var f = c.calls[name];
        var res;
@@ -59,11 +59,12 @@ function __run_call() {
                res = f(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
        } else {
                println("too many arguments for remote call: " + name);
-               return;
+               exit(0);
        }
        var repobj = new Object();
        repobj.res = res;
        write(encodeObject(repobj));
+       exit(0);
 }
 
 
index 76d3236fc97c7db50fbc64e1ad0e07797f47b5d5..554a4e90d5d9510403840df23861f869eeacbf87 100644 (file)
@@ -1,4 +1,26 @@
-<% 
+<%
+/******************************/
+/* server side AJAJ functions */
+libinclude("server_call.js");
+
+/* this is a call that the client js code can make - it just adds
+   some more elements to the passed object, then returns the object */
+function testfunc(x) {
+       var sys = sys_init();
+       x.nttime = sys.nttime();
+       x.timestring = sys.httptime(x.nttime);
+       return x;
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('testfunc', testfunc);
+
+/* run the function that was asked for */
+call.run();
+
+  /***********************/
+  /* now the main page */
   page_header("columns", "ESP qooxdoo test", "esptest"); 
 %>
 
@@ -48,7 +70,7 @@
            shared.rate = shared.counter / (shared.time_diff * 0.0000001);
            shared.counter++;
            if (stopit == 0) {
-                   server_call('remote.esp', 'testfunc', callback, shared);
+                   server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
            }
     }
 
@@ -57,7 +79,7 @@
            stopit = 0;
            shared.counter = 0;
            shared.start_time = 0;
-           server_call('remote.esp', 'testfunc', callback, shared);
+           server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
     };
 
     function stop_call() { 
index 2b6a2144734f5fc76dc6d0ffb068696de814fbb2..6adeb78b8195ff609a5485e7fd46d61d692e6143 100644 (file)
@@ -1,4 +1,38 @@
-<% 
+<%
+/******************************/
+/* server side AJAJ functions */
+libinclude("base.js");
+libinclude("winreg.js");
+libinclude("server_call.js");
+
+/* 
+   server side call to return a listing of elements in a winreg path
+*/
+function enum_path(binding, path) {
+       printf("enum_path(%s, %s)\n", binding, path);
+       var reg = winreg_init();
+       security_init(reg);
+
+       reg.credentials = session.authinfo.credentials;
+
+       var status = reg.connect(binding);
+       if (status.is_ok != true) {
+               printVars(status);
+               return undefined;
+       }
+       var list = winreg_enum_path(reg, path);
+       return list;
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('enum_path', enum_path);
+
+/* run the function that was asked for */
+call.run();
+
+  /***********************/
+  /* now the main page */
   page_header("columns", "ESP registry edit", "esptest"); 
 %>
 
@@ -33,7 +67,7 @@ function folder_list(t, list) {
 
 function folder_click(t) {
        if (!t.populated) {
-               server_call("registry_calls.esp", 'enum_path', 
+               server_call_url("@@request.REQUEST_URI", 'enum_path', 
                            function(list) { folder_list(t, list); }, 
                            t.binding, t.reg_path);
        }
@@ -54,8 +88,10 @@ function registry_tree(binding) {
         setWidth(400);
         setHeight(400);
         setTop(20);
-       addEventListener("click", function() { folder_click(t); });
       }
+      t.addEventListener("click", function() { 
+             var el = this; folder_click(el); 
+      });
       return t;
 }
 
diff --git a/swat/esptest/registry_calls.esp b/swat/esptest/registry_calls.esp
deleted file mode 100644 (file)
index a5c1ae7..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<%
-libinclude("base.js");
-libinclude("winreg.js");
-libinclude("server_call.js");
-
-/* 
-   server side call to return a listing of elements in a winreg path
-*/
-function enum_path(binding, path) {
-       printf("enum_path(%s, %s)\n", binding, path);
-       if (path == "\\") {
-               printf("IN ROOT\n");
-               var list = new Array("HKLM", "HKCR", "HKPD");
-               return list;
-       }
-       printf("binding=%s path=%s\n", binding, path);
-       var reg = winreg_init();
-       security_init(reg);
-
-       reg.credentials = session.authinfo.credentials;
-
-       var status = reg.connect(binding);
-       if (status.is_ok != true) {
-               printVars(status);
-               return undefined;
-       }
-       var list = winreg_enum_path(reg, path);
-       return list;
-}
-
-/* register a call for clients to make */
-var call = servCallObj();
-call.add('enum_path', enum_path);
-
-/* run the function that was asked for */
-call.run();
-%>
diff --git a/swat/esptest/remote.esp b/swat/esptest/remote.esp
deleted file mode 100644 (file)
index c0f1214..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<%
-libinclude("server_call.js");
-
-/* this is a call that the client js code can make - it just adds
-   some more elements to the passed object, then returns the object */
-function testfunc(x) {
-       var sys = sys_init();
-       x.nttime = sys.nttime();
-       x.timestring = sys.httptime(x.nttime);
-       return x;
-}
-
-/* register a call for clients to make */
-var call = servCallObj();
-call.add('testfunc', testfunc);
-
-/* run the function that was asked for */
-call.run();
-%>
index 3a78ff6bbb93a76ea6fadafb21b7e9b07e1dc7b0..f17c43205ab1456320d4b4b6c6838fabfda61547 100644 (file)
@@ -12,7 +12,6 @@ var call = servCallObj();
 */
 function srv_printf()
 {
-       println("in srv_printf");
        var s = string_init();
        print(s.vsprintf(arguments));
        return undefined;