* Preferences: use push to ask every affected client to reload preferences, if affected

This commit is contained in:
Ralf Becker
2020-07-31 09:47:49 +02:00
parent a562cdf502
commit 33e88d25ae
4 changed files with 28 additions and 5 deletions

View File

@ -121,6 +121,24 @@ egw.extend('preferences', egw.MODULE_GLOBAL, function()
}
},
/**
* Endpoint for push to request reload of preference, if loaded and affected
*
* @param _app app-name of prefs to reload
* @param _account_id _account_id 0: allways reload (default or forced prefs), <0: reload if member of group
*/
reload_preferences: function(_app, _account_id)
{
if (typeof _account_id !== 'number') _account_id = parseInt(_account_id);
if (typeof prefs[_app] === 'undefined' || // prefs not loaded
_account_id < 0 && this.user('memberships').indexOf(_account_id) < 0) // no member of this group
{
return;
}
var request = this.json('EGroupware\\Api\\Framework::ajax_get_preference', [_app]);
request.sendRequest();
},
/**
* Call context / open app specific preferences function
*

View File

@ -66,7 +66,7 @@ egw.extend('user', egw.MODULE_GLOBAL, function()
* Get data about current user
*
* @param {string} _field
* - 'account_id','account_lid','person_id','account_status',
* - 'account_id','account_lid','person_id','account_status','memberships'
* - 'account_firstname','account_lastname','account_email','account_fullname','account_phone'
* - 'apps': object with app => data pairs the user has run-rights for
* @return {string|array|null}