mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-25 16:19:00 +01:00
* Calendar - avoid hanging in planner if event has an invalid category
This commit is contained in:
parent
21436f6b85
commit
2e9b486931
@ -145,7 +145,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
|
|
||||||
this.cache = {};
|
this.cache = {};
|
||||||
this._deferred_row_updates = {};
|
this._deferred_row_updates = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If user puts the mouse over an event, then we'll set up resizing so
|
* If user puts the mouse over an event, then we'll set up resizing so
|
||||||
* they can adjust the length. Should be a little better on resources
|
* they can adjust the length. Should be a little better on resources
|
||||||
@ -752,11 +752,11 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(typeof rows[label_index] === 'undefined')
|
if(label_index && typeof rows[label_index] === 'undefined')
|
||||||
{
|
{
|
||||||
rows[label_index] = [];
|
rows[label_index] = [];
|
||||||
}
|
}
|
||||||
if(rows[label_index].indexOf(event) === -1)
|
if(label_index && rows[label_index].indexOf(event) === -1)
|
||||||
{
|
{
|
||||||
rows[label_index].push(event);
|
rows[label_index].push(event);
|
||||||
}
|
}
|
||||||
@ -1309,7 +1309,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
/**
|
/**
|
||||||
* Determine if we allow a dropped event to use the invite/change actions,
|
* Determine if we allow a dropped event to use the invite/change actions,
|
||||||
* and enable or disable them appropriately
|
* and enable or disable them appropriately
|
||||||
*
|
*
|
||||||
* @param {egwAction} action
|
* @param {egwAction} action
|
||||||
* @param {et2_calendar_event} event The event widget being dragged
|
* @param {et2_calendar_event} event The event widget being dragged
|
||||||
* @param {egwActionObject} target Planner action object
|
* @param {egwActionObject} target Planner action object
|
||||||
@ -1443,7 +1443,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
_init_links_dnd: function(mgr,actionLinks) {
|
_init_links_dnd: function(mgr,actionLinks) {
|
||||||
|
|
||||||
if (this.options.readonly) return;
|
if (this.options.readonly) return;
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
var drop_action = mgr.getActionById('egw_link_drop');
|
var drop_action = mgr.getActionById('egw_link_drop');
|
||||||
@ -1593,7 +1593,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
}
|
}
|
||||||
actionLinks.push(drop_invite.id);
|
actionLinks.push(drop_invite.id);
|
||||||
actionLinks.push(drop_change_participant.id);
|
actionLinks.push(drop_change_participant.id);
|
||||||
|
|
||||||
// Accept other links, and files dragged from the filemanager
|
// Accept other links, and files dragged from the filemanager
|
||||||
// This does not handle files dragged from the desktop. They are
|
// This does not handle files dragged from the desktop. They are
|
||||||
// handled by et2_nextmatch, since it needs DOM stuff
|
// handled by et2_nextmatch, since it needs DOM stuff
|
||||||
@ -1820,7 +1820,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
labels = this.grouper.row_labels.call(this);
|
labels = this.grouper.row_labels.call(this);
|
||||||
invalidate = false;
|
invalidate = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var im = this.getInstanceManager();
|
var im = this.getInstanceManager();
|
||||||
for(var i = 0; i < data.length; i++)
|
for(var i = 0; i < data.length; i++)
|
||||||
{
|
{
|
||||||
@ -1882,7 +1882,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, this, this.getInstanceManager().execId,this.id);
|
}, this, this.getInstanceManager().execId,this.id);
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1901,7 +1901,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
if(!this.doInvalidate) return;
|
if(!this.doInvalidate) return;
|
||||||
|
|
||||||
this.grid.height(0);
|
this.grid.height(0);
|
||||||
|
|
||||||
var id_list = typeof id === 'undefined' ? Object.keys(this.cache) : [id];
|
var id_list = typeof id === 'undefined' ? Object.keys(this.cache) : [id];
|
||||||
for(var i = 0; i < id_list.length; i++)
|
for(var i = 0; i < id_list.length; i++)
|
||||||
{
|
{
|
||||||
@ -1926,7 +1926,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
// Add 1 to keep the scrollbar, otherwise we need to recalculate the
|
// Add 1 to keep the scrollbar, otherwise we need to recalculate the
|
||||||
// header widths too.
|
// header widths too.
|
||||||
this.grid.height(this.rows[0].scrollHeight+1);
|
this.grid.height(this.rows[0].scrollHeight+1);
|
||||||
|
|
||||||
// Adjust header if there's a scrollbar - Firefox needs this re-calculated,
|
// Adjust header if there's a scrollbar - Firefox needs this re-calculated,
|
||||||
// otherwise the header will be missing the margin space for the scrollbar
|
// otherwise the header will be missing the margin space for the scrollbar
|
||||||
// in some cases
|
// in some cases
|
||||||
@ -2005,7 +2005,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
this.options.group_by = ''+group_by;
|
this.options.group_by = ''+group_by;
|
||||||
|
|
||||||
this.grouper = this.groupers[isNaN(this.options.group_by) ? this.options.group_by : 'category'];
|
this.grouper = this.groupers[isNaN(this.options.group_by) ? this.options.group_by : 'category'];
|
||||||
|
|
||||||
if(old !== this.options.group_by && this.isAttached())
|
if(old !== this.options.group_by && this.isAttached())
|
||||||
{
|
{
|
||||||
this.invalidate(true);
|
this.invalidate(true);
|
||||||
@ -2111,7 +2111,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
|
|
||||||
// Drag to create in progress
|
// Drag to create in progress
|
||||||
if(this.drag_create.start !== null) return;
|
if(this.drag_create.start !== null) return;
|
||||||
|
|
||||||
// Is this click in the event stuff, or in the header?
|
// Is this click in the event stuff, or in the header?
|
||||||
if(!this.options.readonly && this.gridHeader.has(_ev.target).length === 0 && !jQuery(_ev.target).hasClass('calendar_plannerRowHeader'))
|
if(!this.options.readonly && this.gridHeader.has(_ev.target).length === 0 && !jQuery(_ev.target).hasClass('calendar_plannerRowHeader'))
|
||||||
{
|
{
|
||||||
@ -2199,7 +2199,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
|
|
||||||
x = Math.round(x);
|
x = Math.round(x);
|
||||||
y = Math.round(y);
|
y = Math.round(y);
|
||||||
|
|
||||||
// Round to user's preferred event interval
|
// Round to user's preferred event interval
|
||||||
var interval = egw.preference('interval','calendar') || 30;
|
var interval = egw.preference('interval','calendar') || 30;
|
||||||
|
|
||||||
@ -2259,7 +2259,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
}
|
}
|
||||||
} while(row && row.nodeName !== 'BODY');
|
} while(row && row.nodeName !== 'BODY');
|
||||||
if(!row) return false;
|
if(!row) return false;
|
||||||
|
|
||||||
// Restore hidden nodes
|
// Restore hidden nodes
|
||||||
for(var i = 0; i < hidden_nodes.length; i++)
|
for(var i = 0; i < hidden_nodes.length; i++)
|
||||||
{
|
{
|
||||||
@ -2308,10 +2308,10 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
{
|
{
|
||||||
// Only left mouse button
|
// Only left mouse button
|
||||||
if(event.which !== 1) return;
|
if(event.which !== 1) return;
|
||||||
|
|
||||||
// Ignore headers
|
// Ignore headers
|
||||||
if(this.headers.has(event.target).length !== 0) return false;
|
if(this.headers.has(event.target).length !== 0) return false;
|
||||||
|
|
||||||
// Get time at mouse
|
// Get time at mouse
|
||||||
if(this.options.group_by === 'month')
|
if(this.options.group_by === 'month')
|
||||||
{
|
{
|
||||||
@ -2401,7 +2401,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
|||||||
this.div.css('height', this.options.height);
|
this.div.css('height', this.options.height);
|
||||||
// Set height for rows
|
// Set height for rows
|
||||||
this.rows.height(this.div.height() - this.headers.outerHeight());
|
this.rows.height(this.div.height() - this.headers.outerHeight());
|
||||||
|
|
||||||
this.grid.height(this.rows[0].scrollHeight);
|
this.grid.height(this.rows[0].scrollHeight);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user