--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/client/c_server_exchange.js Mon Nov 23 15:14:29 2009 +0100
@@ -0,0 +1,82 @@
+//frames['text_view_comment_frames'].gtest.myFunc()
+var gtest = {
+ renaud : 'RENAUD',
+ random : Math.random(),
+ bernard : 'BERNARD',
+ myFunc : function() {
+ doExchange("theServerFun", {}, null, this.myRetFunc, this, ['foo', 'bar'])
+ },
+ myRetFunc : function(args) {
+ CY.log('this.renaud : ' + this.renaud) ;
+ CY.log('this.random : ' + this.random) ;
+ CY.log('arg.returned : ' + args.returned) ;
+ CY.log(args.returned) ;
+ CY.log('arg.success : ' + args.success) ;
+ CY.log(args.success) ;
+ //CY.log('arg.success : ' + arg.success) ;
+ }
+} ;
+
+
+// clientArgs should be an array
+doExchange = function(serverFun, obj, formId, retFunc, clientContext, clientArgs, inCaseErrorMsg) {
+ obj['fun'] = serverFun ;
+ obj['key'] = sv_key ;
+// obj['adminKey'] = sv_adminKey ;
+
+ var cfg = {
+ method: "POST",
+ data: urlEncode(obj),
+// headers: { 'X-Transaction': 'POST Example'},
+ on: {
+// start: gtH.start,
+// complete: gtH.complete,
+ success: function(id, oResponse, args){ // args will be {success:clientArgs etc ...
+ var ret = {};
+ if (oResponse.responseText)
+ ret = CY.JSON.parse(oResponse.responseText);
+
+ if (gLayout.isInFrame() && ('msg' in ret))
+ parent.f_enqueueMsg(ret['msg']) ;
+
+ args['returned'] = ret ;
+ args['successfull'] = true ;
+
+ retFunc.call(clientContext, args);
+ },
+ failure: function(id, oResponse, args){ // args will be {success:clientArgs etc ...
+ if (gLayout.isInFrame())
+ parent.f_enqueueErrorMsg(gettext('error:') + inCaseErrorMsg) ;
+
+ args['successfull'] = false ;
+ retFunc.call(clientContext, args);
+ }
+ },
+// context: gtH,
+ arguments: {
+// start: 'foo',
+// complete: 'bar',
+ success: clientArgs,
+ failure: clientArgs
+ }
+ } ;
+ if (formId != null)
+ cfg['form'] = {'id':formId};
+ CY.io(sv_client_url, cfg);
+
+} ;
+
+// TODO try to get a stack trace instead of passing an obj
+warn_server = function(obj) {
+ obj['fun'] = "warn" ;
+ obj['key'] = sv_key ;
+
+ var obj2 = CY.UA ;
+
+ var cfg = {
+ method: "POST",
+ data: urlEncode(CY.merge(obj, obj2))
+ } ;
+ CY.io('/client/', cfg);
+} ;
+