mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
not overwriting call and apply method of egw function/object using callFunc and applyFunc instead, fixes several problems
This commit is contained in:
parent
89d6dc8650
commit
7a060b205b
@ -471,14 +471,12 @@ var exports = {};
|
|||||||
/**
|
/**
|
||||||
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
||||||
*
|
*
|
||||||
* @param {string} _func dot-separated function name
|
* @param {string|Function} _func dot-separated function name
|
||||||
* @param {mixed} ...args variable number of arguments
|
* @param {mixed} ...args variable number of arguments
|
||||||
* @returns {Mixed|Promise}
|
* @returns {Mixed|Promise}
|
||||||
* @deprecated use egw.call(_func, ...) or egw.apply(_func, args)
|
* @deprecated use egw.callFunc(_func, ...) or egw.applyFunc(_func, args)
|
||||||
*/
|
*/
|
||||||
function et2_call(_func)
|
function et2_call(_func)
|
||||||
{
|
{
|
||||||
let args = [].slice.call(arguments); // convert arguments to array
|
return egw.applyFunc(_func, [].slice.call(arguments, 1), this);
|
||||||
let func = args.shift();
|
|
||||||
return egw.apply(func, args, window);
|
|
||||||
}
|
}
|
||||||
|
8
api/js/jsapi/egw_global.d.ts
vendored
8
api/js/jsapi/egw_global.d.ts
vendored
@ -795,20 +795,20 @@ declare interface IegwWndLocal extends IegwGlobal
|
|||||||
/**
|
/**
|
||||||
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
||||||
*
|
*
|
||||||
* @param {string} _func dot-separated function name
|
* @param {string|Function} _func dot-separated function name or function
|
||||||
* @param {mixed} ...args variable number of arguments
|
* @param {mixed} ...args variable number of arguments
|
||||||
* @returns {mixed|Promise}
|
* @returns {mixed|Promise}
|
||||||
*/
|
*/
|
||||||
call(_func : string|Function, ...args : any) : Promise<any>|any
|
callFunc(_func : string|Function, ...args : any) : Promise<any>|any
|
||||||
/**
|
/**
|
||||||
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
||||||
*
|
*
|
||||||
* @param {string} _func dot-separated function name
|
* @param {string|Function} _func dot-separated function name or function
|
||||||
* @param {array} args arguments
|
* @param {array} args arguments
|
||||||
* @param {object} _context
|
* @param {object} _context
|
||||||
* @returns {mixed|Promise}
|
* @returns {mixed|Promise}
|
||||||
*/
|
*/
|
||||||
apply(_func : string|Function, args : Array<any>, _context : Object) : Promise<any>|any
|
applyFunc(_func : string|Function, args : Array<any>, _context : Object) : Promise<any>|any
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a new handler plugin.
|
* Registers a new handler plugin.
|
||||||
|
@ -484,30 +484,27 @@ egw.extend('json', egw.MODULE_WND_LOCAL, function(_app, _wnd)
|
|||||||
/**
|
/**
|
||||||
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
||||||
*
|
*
|
||||||
* @param {string} _func dot-separated function name
|
* @param {string|Function} _func dot-separated function name or function
|
||||||
* @param {mixed} ...args variable number of arguments
|
* @param {mixed} ...args variable number of arguments
|
||||||
* @returns {mixed|Promise}
|
* @returns {mixed|Promise}
|
||||||
*/
|
*/
|
||||||
call: function(_func)
|
callFunc: function(_func)
|
||||||
{
|
{
|
||||||
let args = [].slice.call(arguments); // convert arguments to array
|
return this.applyFunc(_func, [].slice.call(arguments, 1));
|
||||||
let func = args.shift();
|
|
||||||
|
|
||||||
return this.apply(func, args);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
* Call a function specified by it's name (possibly dot separated, eg. "app.myapp.myfunc")
|
||||||
*
|
*
|
||||||
* @param {string} _func dot-separated function name
|
* @param {string|Function} _func dot-separated function name or function
|
||||||
* @param {array} args arguments
|
* @param {array} args arguments
|
||||||
* @param {object} _context
|
* @param {object} _context
|
||||||
* @returns {mixed|Promise}
|
* @returns {mixed|Promise}
|
||||||
*/
|
*/
|
||||||
apply: function(_func, args, _context)
|
applyFunc: function(_func, args, _context)
|
||||||
{
|
{
|
||||||
let parent = _context || window;
|
let parent = _context || window;
|
||||||
let func;
|
let func = _func;
|
||||||
|
|
||||||
if (typeof _func === 'string')
|
if (typeof _func === 'string')
|
||||||
{
|
{
|
||||||
@ -713,7 +710,7 @@ egw.extend('json', egw.MODULE_WND_LOCAL, function(_app, _wnd)
|
|||||||
json.registerJSONPlugin(function(type, res, req) {
|
json.registerJSONPlugin(function(type, res, req) {
|
||||||
if (typeof res.data.func == 'string')
|
if (typeof res.data.func == 'string')
|
||||||
{
|
{
|
||||||
req.egw.apply(res.data.func, res.data.parms, req.egw.window);
|
req.egw.applyFunc(res.data.func, res.data.parms, req.egw.window);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
throw 'Invalid parameters';
|
throw 'Invalid parameters';
|
||||||
|
Loading…
Reference in New Issue
Block a user