diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/client/c_server_exchange.js --- /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); +} ; +