Fix missing calendar owner labels when they weren't in the default options

This commit is contained in:
Nathan Gray 2016-04-04 21:36:44 +00:00
parent c6501b6a88
commit d02a1d31a6
2 changed files with 18 additions and 59 deletions

View File

@ -324,42 +324,11 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
// Labels for the rows
row_labels: function() {
var labels = [];
var accounts = egw.accounts();
var already_added = [];
for(var i = 0; i < this.options.owner.length; i++)
{
var user = this.options.owner[i];
if(parseInt(user) === 0)
{
// 0 means current user
user = egw.user('account_id');
}
if (isNaN(user)) // resources
{
var planner = this;
var label = egw.link_title('resources',user.match(/\d+/)[0],function(name) {
for(var j = 0; j < labels.length; j++)
{
if(labels[j].id == this)
{
labels[j].label = name;
break;
}
}
var row = planner.getWidgetById('planner_row_'+this);
if(row && row.set_label)
{
row.set_label(name);
}
},user);
if(!label) label = user;
if(already_added.indexOf(user) < 0)
{
labels.push({id: user, label: label, data: {participants:user,owner:''}});
already_added.push(''+user);
}
}
else if (user < 0) // groups
if (user < 0) // groups
{
egw.accountData(user,'account_fullname',true,function(result) {
for(var id in result)
@ -374,15 +343,11 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
}
else // users
{
user = parseInt(user);
for(var j = 0; j < accounts.length && already_added.indexOf(''+user) < 0; j++)
var label = this._get_owner_name(user);
if(already_added.indexOf(user) < 0)
{
if(accounts[j].value === user)
{
labels.push({id: user, label: accounts[j].label, data: {participants:user,owner:user}});
already_added.push(''+user);
break;
}
labels.push({id: user, label: label, data: {participants:user,owner:''}});
already_added.push(''+user);
}
}
}

View File

@ -308,28 +308,13 @@ var et2_calendar_view = (function(){ "use strict"; return et2_valueWidget.extend
* @memberOf et2_calendar_view
*/
_get_owner_name: function _get_owner_name(user) {
var label = undefined;
if(parseInt(user) === 0)
{
// 0 means current user
user = egw.user('account_id');
}
if (isNaN(user)) // resources or contact
{
var application = 'home-accounts';
switch(user[0])
{
case 'c':
application = 'addressbook';
break;
case 'r':
application = 'resources';
break;
}
// This might not have a value right away
// send an empty function or it won't ask the server
user = egw.link_title(application,user.match(/\d+/)[0], function() {}, this);
}
else // users
if (!isNaN(user))
{
user = parseInt(user);
var accounts = egw.accounts('both');
@ -337,12 +322,21 @@ var et2_calendar_view = (function(){ "use strict"; return et2_valueWidget.extend
{
if(accounts[j].value === user)
{
user = accounts[j].label;
label = accounts[j].label;
break;
}
}
}
return user;
if(typeof label === 'undefined')
{
// Not found? Ask the sidebox owner widget, it gets updated
if(app.calendar && app.calendar.sidebox_et2 && app.calendar.sidebox_et2.getWidgetById('owner'))
{
user = app.calendar.sidebox_et2.getWidgetById('owner').options.select_options.find(function(element) {return element.id == user;}) || {};
label = user.label;
}
}
return label;
},
/**