forked from extern/egroupware
Admin: Make sure account is in select_options to avoid having to load it
This commit is contained in:
parent
34172704dc
commit
9da38628a0
@ -645,27 +645,38 @@ class AdminApp extends EgwApp
|
|||||||
*/
|
*/
|
||||||
_acl_dialog(content, sel_options?, etemplate?, app?, callback? : Function)
|
_acl_dialog(content, sel_options?, etemplate?, app?, callback? : Function)
|
||||||
{
|
{
|
||||||
if(typeof content == 'undefined') content = {};
|
if(typeof content == 'undefined')
|
||||||
|
{
|
||||||
|
content = {};
|
||||||
|
}
|
||||||
|
|
||||||
// Determine which application we're running as
|
// Determine which application we're running as
|
||||||
app = app ? app : egw.app_name();
|
app = app ? app : egw.app_name();
|
||||||
// can be either admin or preferences!
|
// can be either admin or preferences!
|
||||||
if (app != 'admin') app = 'preferences';
|
if(app != 'admin')
|
||||||
|
{
|
||||||
|
app = 'preferences';
|
||||||
|
}
|
||||||
// Get by ID, since this.et2 isn't always the ACL list
|
// Get by ID, since this.et2 isn't always the ACL list
|
||||||
var et2 = etemplate ? etemplate : etemplate2.getById('admin-acl').widgetContainer;
|
var et2 = etemplate ? etemplate : etemplate2.getById('admin-acl').widgetContainer;
|
||||||
var className = app+'_acl';
|
var className = app + '_acl';
|
||||||
var acl_rights : any = {};
|
var acl_rights : any = {};
|
||||||
var readonlys : any = {acl: {}};
|
var readonlys : any = {acl: {}};
|
||||||
var modifications : any = {};
|
var modifications : any = {};
|
||||||
|
|
||||||
// Select options are already here, just pull them and pass along
|
// Select options are already here, just pull them and pass along
|
||||||
sel_options = et2.getArrayMgr('sel_options').data||{};
|
sel_options = {
|
||||||
|
...{
|
||||||
|
acl_account: [],
|
||||||
|
acl_location: []
|
||||||
|
}, ...(et2.getArrayMgr('sel_options').data || {})
|
||||||
|
};
|
||||||
|
|
||||||
// Some defaults
|
// Some defaults
|
||||||
if(et2 && et2.getWidgetById('nm'))
|
if(et2 && et2.getWidgetById('nm'))
|
||||||
{
|
{
|
||||||
// This is which checkboxes are available for each app
|
// This is which checkboxes are available for each app
|
||||||
acl_rights = et2.getWidgetById('nm').getArrayMgr('content').getEntry('acl_rights')||{};
|
acl_rights = et2.getWidgetById('nm').getArrayMgr('content').getEntry('acl_rights') || {};
|
||||||
|
|
||||||
if(!content.acl_appname)
|
if(!content.acl_appname)
|
||||||
{
|
{
|
||||||
@ -736,14 +747,22 @@ class AdminApp extends EgwApp
|
|||||||
{
|
{
|
||||||
readonlys.acl_account = true;
|
readonlys.acl_account = true;
|
||||||
}
|
}
|
||||||
|
let wait = []
|
||||||
if(content.acl_location)
|
if(content.acl_location)
|
||||||
{
|
{
|
||||||
sel_options.acl_location = jQuery.extend({},sel_options.acl_location);
|
wait.push(this.egw.link_title('api-accounts', content.acl_location, true).then(title =>
|
||||||
this.egw.link_title('api-accounts', content.acl_location, true).then(title => {
|
{
|
||||||
sel_options.acl_location[content.acl_location] = title;
|
sel_options.acl_location.push({value: content.acl_location, label: title});
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure new accounts are in the list, client side cache won't have them
|
||||||
|
wait.push(this.egw.link_title('api-accounts', content.acl_account, true).then(title =>
|
||||||
|
{
|
||||||
|
sel_options.acl_account.push({value: content.acl_account, label: title});
|
||||||
|
sel_options.acl_location.push({value: content.acl_account, label: title});
|
||||||
|
}));
|
||||||
|
|
||||||
var dialog_options = {
|
var dialog_options = {
|
||||||
callback: (_button_id, _value) =>
|
callback: (_button_id, _value) =>
|
||||||
{
|
{
|
||||||
@ -848,10 +867,13 @@ class AdminApp extends EgwApp
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create the dialog
|
// Create the dialog
|
||||||
this.acl_dialog = new Et2Dialog(app);
|
Promise.all(wait).then(() =>
|
||||||
this.acl_dialog.transformAttributes(dialog_options);
|
{
|
||||||
|
this.acl_dialog = new Et2Dialog(app);
|
||||||
|
this.acl_dialog.transformAttributes(dialog_options);
|
||||||
|
|
||||||
document.body.appendChild(<LitElement><unknown>this.acl_dialog);
|
document.body.appendChild(<LitElement><unknown>this.acl_dialog);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user