diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-08-05 19:16:49 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:31:21 -0500 |
commit | a2810779352d40911880e84c91f85fe4ccb5d953 (patch) | |
tree | 2fe86aba529384895deba6b1bbfeb584e000385f /swat/esptest | |
parent | 3a02c8b116e80d2fd70b1957a5ed85acb0977b7f (diff) | |
download | samba-a2810779352d40911880e84c91f85fe4ccb5d953.tar.gz samba-a2810779352d40911880e84c91f85fe4ccb5d953.tar.bz2 samba-a2810779352d40911880e84c91f85fe4ccb5d953.zip |
r9135: added a sample page that demonstrates using AJAJ to make remote calls
that update an object
(This used to be commit 678b0cc08f6026fe35b522d5705ab0c1baf3c359)
Diffstat (limited to 'swat/esptest')
-rw-r--r-- | swat/esptest/qooxdoo.esp | 117 | ||||
-rw-r--r-- | swat/esptest/remote.esp | 19 |
2 files changed, 136 insertions, 0 deletions
diff --git a/swat/esptest/qooxdoo.esp b/swat/esptest/qooxdoo.esp new file mode 100644 index 0000000000..5ab39d807d --- /dev/null +++ b/swat/esptest/qooxdoo.esp @@ -0,0 +1,117 @@ +<% + page_header("columns", "ESP qooxdoo test", "esptest"); + + libinclude("encoder.js"); + + var thispage = request.REQUEST_URI; +%> + +<script type="text/javascript" src="/scripting/client/encoder.js"></script> +<script type="text/javascript" src="/scripting/client/call.js"></script> + +<h1>Samba4 qooxdoo test</h1> + + <script type="text/javascript"> + + window.application.main = function() + { + var inlineWidget = new QxInline; + var fieldSet = new QxFieldSet("thefieldset"); + + with(fieldSet) + { + setWidth("40%"); + setMinHeight(400); + setBottom(48); + setMinWidth(700); + }; + + var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%"); + gl.setEdge(0); + gl.setCellPaddingTop(3); + gl.setCellPaddingBottom(3); + + inlineWidget.add(fieldSet); + + var d = this.getClientWindow().getDocument(); + + function myCheckBox(label, name, value) { + var w = new QxCheckBox(label, value, name, value); + w.setWidth("100%"); + return w; + } + + function myTextField(name, value) { + var w = new QxTextField(value); + return w; + } + + var stopit = 0; + var shared = new Object(); + shared.counter = 0; + + function callback(o) { + shared = o; + var r = "Response:\\n"; + for (var i in shared) { + r = r + "\\t" + i + " : " + shared[i] + "\\n"; + } + ta.setText(r); + shared.counter++; + if (stopit == 0) { + server_call('remote.esp', 'testfunc', callback, shared); + } + } + + function start_call() { + server_call('remote.esp', 'printf', null, + "Starting calls ... (stopit=%d)\\n", stopit); + stopit = 0; + server_call('remote.esp', 'testfunc', callback, shared); + }; + + function stop_call() { + server_call('remote.esp', 'printf', null, "Stopping calls\\n"); + stopit = 1; + }; + + function myButton(name, label, call) { + var b = new QxButton(label); + b.setWidth("25%"); + b.setVerticalAlign("top"); + b.name = name; + b.addEventListener("click", call); + return b; + }; + + var c1 = myCheckBox("Enable The Server", 'checkbox1', false); + var c2 = myCheckBox("Another Server", 'checkbox2', true); + var t3 = myTextField("mytext", "hello"); + var b1 = myButton("send", "Make Call", start_call); + var b2 = myButton("stop", "Stop Call", stop_call); + var ta = new QxTextArea; + ta.setText("initial text"); + ta.setWidth("80%"); + ta.setHeight(150); + ta.setVerticalAlign("top"); + + gl.add(c1, { row : 1, col : 1 }); + gl.add(c2, { row : 2, col : 1 }); + gl.add(t3, { row : 3, col : 1, scaleHorizontal: true }); + gl.add(b1, { row : 4, col : 1 }); + gl.add(ta, { row : 5, col : 1 }); + gl.add(b2, { row : 6, col : 1 }); + + fieldSet.add(gl); + + inlineWidget.add(fieldSet); + + d.add(inlineWidget, "canvas"); + }; + + </script> + + + <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div> + +<% page_footer() %> diff --git a/swat/esptest/remote.esp b/swat/esptest/remote.esp new file mode 100644 index 0000000000..c0f12147a8 --- /dev/null +++ b/swat/esptest/remote.esp @@ -0,0 +1,19 @@ +<% +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(); +%> |