<% /******************************/ /* 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"); %> <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(500); }; 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(); var stopit = 0; var shared = new Object(); function callback(o) { shared = o; var r = "Response:\\n"; for (var i in shared) { r = r + "\\t" + i + " : " + shared[i] + "\\n"; } ta.setText(r); if (shared.start_time == 0) { shared.start_time = shared.nttime; } shared.time_diff = shared.nttime - shared.start_time; shared.rate = shared.counter / (shared.time_diff * 0.0000001); shared.counter++; if (stopit == 0) { server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared); } } function start_call() { srv_printf("Starting calls ... (stopit=%d)\\n", stopit); stopit = 0; shared.counter = 0; shared.start_time = 0; server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared); }; function stop_call() { srv_printf("Stopping calls\\n"); stopit = 1; }; function myButton(name, label, call) { var b = new QxButton(label); b.setWidth("25%"); b.addEventListener("click", call); return b; }; function myCheckBox(label, name, value) { var w = new QxCheckBox(label, value, name, value); w.setWidth("100%"); return w; } var c1 = myCheckBox("Enable The Server", 'checkbox1', false); var c2 = myCheckBox("Another Server", 'checkbox2', true); var t3 = new QxTextField("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(); %>