mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-07 16:44:07 +01:00
Add an Abort / Retry / Skip prompt for long task when one fails
This commit is contained in:
parent
ca7779c825
commit
a2d1131aa5
@ -736,8 +736,39 @@ jQuery.extend(et2_dialog, //(function(){ "use strict"; return
|
||||
switch(response.type)
|
||||
{
|
||||
case 'error':
|
||||
log.append("<div class='message error'>"+response.data+"</div>");
|
||||
break;
|
||||
jQuery("<div class='message error'></div>")
|
||||
.text(response.data)
|
||||
.appendTo(log);
|
||||
|
||||
// Ask to retry / ignore / abort
|
||||
et2_createWidget("dialog", {
|
||||
callback:function(button) {
|
||||
switch(button)
|
||||
{
|
||||
case 'dialog[cancel]':
|
||||
cancel = true;
|
||||
return update.call(index,'');
|
||||
case 'dialog[skip]':
|
||||
// Continue with next index
|
||||
return update.call(index,'');
|
||||
default:
|
||||
// Try again with previous index
|
||||
return update.call(index-1,'');
|
||||
}
|
||||
|
||||
},
|
||||
message: response.data,
|
||||
title: '',
|
||||
buttons: [
|
||||
// These ones will use the callback, just like normal
|
||||
{text: egw.lang("Abort"),id:'dialog[cancel]',},
|
||||
{text: egw.lang("Retry"),id:'dialog[retry]'},
|
||||
{text: egw.lang("Skip"),id:'dialog[skip]', class:"ui-priority-primary", default: true}
|
||||
],
|
||||
dialog_type: et2_dialog.ERROR_MESSAGE
|
||||
}, parent);
|
||||
// Early exit
|
||||
return;
|
||||
default:
|
||||
if(response)
|
||||
{
|
||||
@ -755,6 +786,7 @@ jQuery.extend(et2_dialog, //(function(){ "use strict"; return
|
||||
if(typeof parameters != 'object') parameters = [parameters];
|
||||
|
||||
// Async request, we'll take the next step in the callback
|
||||
// We can't pass index = 0, it looks like false and causes issues
|
||||
egw.json(_menuaction, parameters, update, index+1,true,index+1).sendRequest();
|
||||
}
|
||||
else
|
||||
|
@ -1858,6 +1858,10 @@ div.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button {
|
||||
.long_task .message {
|
||||
height: inherit;
|
||||
}
|
||||
.long_task .message.error {
|
||||
color: white;
|
||||
background-color: red;
|
||||
}
|
||||
div.ui-dialog div.ui-dialog-content > div[id] {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -3494,13 +3494,26 @@ class mail_compose
|
||||
|
||||
// Actually do the merge
|
||||
$folder = $merged_mail_id = null;
|
||||
$results = $this->mail_bo->importMessageToMergeAndSend(
|
||||
$document_merge, Vfs::PREFIX . $_REQUEST['document'],
|
||||
// Send an extra non-numeric ID to force actual send of document
|
||||
// instead of save as draft
|
||||
array((int)$contact_id, ''),
|
||||
$folder,$merged_mail_id
|
||||
);
|
||||
try
|
||||
{
|
||||
$results = $this->mail_bo->importMessageToMergeAndSend(
|
||||
$document_merge, Vfs::PREFIX . $_REQUEST['document'],
|
||||
// Send an extra non-numeric ID to force actual send of document
|
||||
// instead of save as draft
|
||||
array((int)$contact_id, ''),
|
||||
$folder,$merged_mail_id
|
||||
);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$contact = $document_merge->contacts->read((int)$contact_id);
|
||||
//error_log(__METHOD__.' ('.__LINE__.') '.' ID:'.$val.' Data:'.array2string($contact));
|
||||
$email = ($contact['email'] ? $contact['email'] : $contact['email_home']);
|
||||
$nfn = ($contact['n_fn'] ? $contact['n_fn'] : $contact['n_given'].' '.$contact['n_family']);
|
||||
$response->error(lang('Sending mail to "%1" failed', "$nfn <$email>").
|
||||
"\n".$e->getMessage()
|
||||
);
|
||||
}
|
||||
|
||||
if($results['success'])
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user