diff options
-rw-r--r-- | program/js/app.js | 19 | ||||
-rw-r--r-- | program/localization/en_US/messages.inc | 1 | ||||
-rw-r--r-- | program/localization/pt_BR/messages.inc | 2 | ||||
-rw-r--r-- | program/steps/mail/compose.inc | 8 | ||||
-rw-r--r-- | skins/default/images/display/loading_blue.gif | bin | 754 -> 847 bytes | |||
-rw-r--r-- | skins/default/templates/compose.html | 2 |
6 files changed, 26 insertions, 6 deletions
diff --git a/program/js/app.js b/program/js/app.js index 016162fdf..879c9aa15 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1631,7 +1631,7 @@ function rcube_webmail() add_url += '&_search='+this.env.search_request; // set page=1 if changeing to another mailbox - if (!page && this.env.mailbox != mbox) + if (!page && this.env.mailbox != mbox) { page = 1; this.env.current_page = page; @@ -2176,7 +2176,10 @@ function rcube_webmail() var list = this.gui_objects.attachmentlist.getElementsByTagName("li"); for (i=0;i<list.length;i++) if (!String(list[i].id).match(/^rcmfile/)) + { + alert(this.get_label('notuploadedwarning')); return false; + } } // display localized warning for missing subject @@ -2484,10 +2487,12 @@ function rcube_webmail() // hide upload form this.show_attachment_form(false); - // display upload indicator + // display upload indicator and cancel button var content = this.get_label('uploading'); if (this.env.loadingicon) content = '<img src="'+this.env.loadingicon+'" alt="" />'+content; + if (this.env.cancelicon) + content = '<a title="'+this.get_label('cancel')+'" onclick="return rcmail.cancel_attachment_upload(\''+ts+'\', \''+frame_name+'\');" href="#cancelupload"><img src="'+this.env.cancelicon+'" alt="" /></a>'+content; this.add2attachment_list(ts, content); } @@ -2535,6 +2540,16 @@ function rcube_webmail() return true; }; + this.cancel_attachment_upload = function(name, frame_name) + { + if (!name || !frame_name) + return false; + + this.remove_from_attachment_list(name); + $("iframe[name='"+frame_name+"']").remove(); + return false; + }; + // send remote request to add a new contact this.add_contact = function(value) { diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc index 3bc513213..6fc7be862 100644 --- a/program/localization/en_US/messages.inc +++ b/program/localization/en_US/messages.inc @@ -69,6 +69,7 @@ $messages['notsentwarning'] = 'Message has not been sent. Do you want to discard $messages['noldapserver'] = 'Please select an ldap server to search'; $messages['nocontactsreturned'] = 'No contacts were found'; $messages['nosearchname'] = 'Please enter a contact name or email address'; +$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.'; $messages['searchsuccessful'] = '$nr messages found'; $messages['searchnomatch'] = 'Search returned no matches'; $messages['searching'] = 'Searching...'; diff --git a/program/localization/pt_BR/messages.inc b/program/localization/pt_BR/messages.inc index 752a19820..14585a1df 100644 --- a/program/localization/pt_BR/messages.inc +++ b/program/localization/pt_BR/messages.inc @@ -32,6 +32,7 @@ $messages['nomessagesfound'] = 'Nenhuma mensagem foi encontrada'; $messages['loggedout'] = 'Sua sessão foi finalizada com sucesso. Até breve!'; $messages['mailboxempty'] = 'A caixa de mensagens está vazia'; $messages['loading'] = 'Carregando...'; +$messages['uploading'] = 'Enviando anexo...'; $messages['loadingdata'] = 'Carregando informações...'; $messages['checkingmail'] = 'Verificando se há novas mensagens...'; $messages['sendingmessage'] = 'Enviando mensagem...'; @@ -72,6 +73,7 @@ $messages['notsentwarning'] = 'A mensagem não foi enviada, deseja excluí-la?'; $messages['noldapserver'] = 'Por favor, selecione um servidor LDAP para a pesquisa'; $messages['nocontactsreturned'] = 'Nenhum contato foi encontrado'; $messages['nosearchname'] = 'Por favor, informe o nome do contado ou seu endereço de e-mail'; +$messages['notuploadedwarning'] = 'Há anexos ainda não enviados. Aguarde ou cancele o envio.'; $messages['searchsuccessful'] = '$nr mensagens encontradas'; $messages['searchnomatch'] = 'A pesquisa não encontrou resultados'; $messages['searching'] = 'Pesquisando...'; diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index e3c7fda16..c894da776 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -92,9 +92,9 @@ if (!is_array($_SESSION['compose']) || $_SESSION['compose']['id'] != get_input_v // add some labels to client -$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', - 'nobodywarning', 'notsentwarning', 'savingmessage', 'sendingmessage', 'messagesaved', - 'converting', 'editorwarning', 'searching', 'uploading', 'fileuploaderror'); +$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', 'cancel', + 'nobodywarning', 'notsentwarning', 'notuploadedwarning', 'savingmessage', 'sendingmessage', + 'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'fileuploaderror'); // add config parameters to client script if (!empty($CONFIG['drafts_mbox'])) { @@ -809,6 +809,8 @@ function rcmail_compose_attachment_list($attrib) if ($attrib['deleteicon']) $_SESSION['compose']['deleteicon'] = $CONFIG['skin_path'] . $attrib['deleteicon']; + if ($attrib['cancelicon']) + $OUTPUT->set_env('cancelicon', $CONFIG['skin_path'] . $attrib['cancelicon']); if ($attrib['loadingicon']) $OUTPUT->set_env('loadingicon', $CONFIG['skin_path'] . $attrib['loadingicon']); diff --git a/skins/default/images/display/loading_blue.gif b/skins/default/images/display/loading_blue.gif Binary files differindex 52c9ee49f..2ea6b19ae 100644 --- a/skins/default/images/display/loading_blue.gif +++ b/skins/default/images/display/loading_blue.gif diff --git a/skins/default/templates/compose.html b/skins/default/templates/compose.html index 6441332ae..a5d7dcc71 100644 --- a/skins/default/templates/compose.html +++ b/skins/default/templates/compose.html @@ -93,7 +93,7 @@ <div id="compose-attachments"> <div id="attachment-title"><roundcube:label name="attachments" /></div> -<roundcube:object name="composeAttachmentList" deleteIcon="/images/icons/delete.png" loadingIcon="/images/display/loading_blue.gif" /> +<roundcube:object name="composeAttachmentList" deleteIcon="/images/icons/delete.png" cancelIcon="/images/icons/delete.png" loadingIcon="/images/display/loading_blue.gif" /> <p><roundcube:button command="add-attachment" imagePas="/images/buttons/add_pas.png" imageSel="/images/buttons/add_sel.png" imageAct="/images/buttons/add_act.png" width="23" height="18" title="addattachment" /></p> </div> |