Make sure the opener window is still there before asking about its widgets.

-Fix mail compose save as draft throws an error if the mail tab is closed while saving.
This commit is contained in:
Hadi Nategh 2014-09-23 12:19:28 +00:00
parent f9c81f1af5
commit 0b61fd4184

View File

@ -3229,7 +3229,8 @@ app.classes.mail = AppJS.extend(
{ {
var content = this.et2.getArrayMgr('content'); var content = this.et2.getArrayMgr('content');
var lastDrafted = this.et2.getWidgetById('lastDrafted'); var lastDrafted = this.et2.getWidgetById('lastDrafted');
var folderTree = opener.etemplate2.getByApplication('mail')[0].widgetContainer.getWidgetById('nm[foldertree]'); var folderTree = typeof opener.etemplate2.getByApplication('mail')[0] !='undefined'?
opener.etemplate2.getByApplication('mail')[0].widgetContainer.getWidgetById('nm[foldertree]'): null;
var activeFolder = folderTree?folderTree.getSelectedNode():null; var activeFolder = folderTree?folderTree.getSelectedNode():null;
if (content) if (content)
{ {
@ -3237,14 +3238,17 @@ app.classes.mail = AppJS.extend(
content.data.lastDrafted = _responseData.draftedId; content.data.lastDrafted = _responseData.draftedId;
this.et2.setArrayMgr('content', content); this.et2.setArrayMgr('content', content);
lastDrafted.set_value(_responseData.draftedId); lastDrafted.set_value(_responseData.draftedId);
if (typeof activeFolder.id !='undefined'&& activeFolder && _responseData.draftfolder == activeFolder.id) if (folderTree && activeFolder)
{ {
if (prevDraftedId) if (typeof activeFolder.id !='undefined' && _responseData.draftfolder == activeFolder.id)
{ {
opener.egw_refresh(_responseData.message,'mail', prevDraftedId, 'delete'); if (prevDraftedId)
{
opener.egw_refresh(_responseData.message,'mail', prevDraftedId, 'delete');
}
this.egw.refresh(_responseData.message,'mail',_responseData.draftedId);
} }
this.egw.refresh(_responseData.message,'mail',_responseData.draftedId); }
}
switch (_action) switch (_action)
{ {
case 'button[saveAsDraftAndPrint]': case 'button[saveAsDraftAndPrint]':