fix not working callback syntax with egw.jsonq() and changing callback to promise (after the fix)

This commit is contained in:
ralf 2022-05-02 16:21:23 +02:00
parent b4dd66b80f
commit 3777ba7691
2 changed files with 7 additions and 3 deletions

View File

@ -1673,7 +1673,10 @@ export class et2_link_string extends expose(class et2_link_string extends et2_va
{ {
_value.only_app = this.options.only_app; _value.only_app = this.options.only_app;
} }
this.egw().jsonq('EGroupware\\Api\\Etemplate\\Widget\\Link::ajax_link_list', [_value], this.set_value, this); this.egw().jsonq('EGroupware\\Api\\Etemplate\\Widget\\Link::ajax_link_list', [_value]).then(_value =>
{
this.set_value(_value);
});
return; return;
} }

View File

@ -148,15 +148,16 @@ egw.extend('jsonq', egw.MODULE_GLOBAL, function()
// as objects and loosing parameters which are undefined // as objects and loosing parameters which are undefined
// JSON.stringify([123,undefined]) --> '{"0":123}' instead of '[123,null]' // JSON.stringify([123,undefined]) --> '{"0":123}' instead of '[123,null]'
parameters: _parameters ? [].concat(_parameters) : [], parameters: _parameters ? [].concat(_parameters) : [],
callbeforesend: _sender ? _callbeforesend.bind(_sender) : _callbeforesend, callbeforesend: _callbeforesend && _sender ? _callbeforesend.bind(_sender) : _callbeforesend,
}; };
let promise = new Promise(resolve => { let promise = new Promise(resolve => {
jsonq_queue[uid].resolve = resolve; jsonq_queue[uid].resolve = resolve;
}); });
if (typeof _callback === 'function') if (typeof _callback === 'function')
{ {
const callback = _callback.bind(_sender);
promise = promise.then(_data => { promise = promise.then(_data => {
_callback.bind(_sender)(_data); callback(_data);
return _data; return _data;
}); });
} }