mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-23 07:09:20 +01:00
Keep hooked sidebox templates from other applications (resources) up to date as state changes
This commit is contained in:
parent
9252607705
commit
d07ab5285f
@ -70,6 +70,10 @@ app.classes.calendar = AppJS.extend(
|
||||
// date in the current view.
|
||||
sidebox_changes_views: ['day','week','month'],
|
||||
|
||||
// Calendar allows other apps to hook into the sidebox. We keep these etemplates
|
||||
// up to date as state is changed.
|
||||
sidebox_hooked_templates: [],
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@ -112,6 +116,7 @@ app.classes.calendar = AppJS.extend(
|
||||
var date = this.sidebox_et2.getWidgetById('date');
|
||||
$j(window).off('resize.calendar'+date.dom_id);
|
||||
}
|
||||
this.sidebox_hooked_templates = null;
|
||||
|
||||
egw_unregisterGlobalShortcut(jQuery.ui.keyCode.PAGE_UP, false, false, false);
|
||||
egw_unregisterGlobalShortcut(jQuery.ui.keyCode.PAGE_DOWN, false, false, false);
|
||||
@ -147,6 +152,7 @@ app.classes.calendar = AppJS.extend(
|
||||
{
|
||||
case 'calendar.sidebox':
|
||||
this.sidebox_et2 = _et2.widgetContainer;
|
||||
this.sidebox_hooked_templates.push(this.sidebox_et2);
|
||||
$j(_et2.DOMContainer).hide();
|
||||
this._setup_sidebox_filters();
|
||||
break;
|
||||
@ -1976,9 +1982,18 @@ app.classes.calendar = AppJS.extend(
|
||||
this._sortable();
|
||||
|
||||
/* Update sidebox widgets to show current value*/
|
||||
if(this.sidebox_et2)
|
||||
if(this.sidebox_hooked_templates.length)
|
||||
{
|
||||
this.sidebox_et2.iterateOver(function(widget) {
|
||||
for(var j = 0; j < this.sidebox_hooked_templates.length; j++)
|
||||
{
|
||||
var sidebox = this.sidebox_hooked_templates[j];
|
||||
// Remove any destroyed or not valid templates
|
||||
if(!sidebox.getInstanceManager || !sidebox.getInstanceManager())
|
||||
{
|
||||
this.sidebox_hooked_templates.splice(j,1,0);
|
||||
continue;
|
||||
}
|
||||
sidebox.iterateOver(function(widget) {
|
||||
if(widget.id == 'view')
|
||||
{
|
||||
// View widget has a list of state settings, which require special handling
|
||||
@ -2022,6 +2037,7 @@ app.classes.calendar = AppJS.extend(
|
||||
}
|
||||
},this,et2_valueWidget);
|
||||
}
|
||||
}
|
||||
|
||||
// If current state matches a favorite, hightlight it
|
||||
this.highlight_favorite();
|
||||
@ -2904,6 +2920,22 @@ app.classes.calendar = AppJS.extend(
|
||||
this.setState({state:this.state});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var app_name = _name.split('.')[0];
|
||||
if(app_name && app_name != 'calendar' && egw.app(app_name))
|
||||
{
|
||||
// A template from another application? Keep it up to date as state changes
|
||||
this.sidebox_hooked_templates.push(_et2.widgetContainer);
|
||||
// If it leaves (or reloads) remove it
|
||||
$j(_et2.DOMContainer).one('clear',jQuery.proxy(function() {
|
||||
if(app.calendar)
|
||||
{
|
||||
app.calendar.sidebox_hooked_templates.splice(this,1,0);
|
||||
}
|
||||
},this.sidebox_hooked_templates.length -1));
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user