From 3bd94b142eb00024eeb52c0e3f4a9f61bed4f3f9 Mon Sep 17 00:00:00 2001 From: alecpl Date: Sun, 14 Sep 2008 08:34:11 +0000 Subject: - use html2text for signatures in Settings/Identities --- program/js/app.js | 43 ++++++++++++++++++++++++++++++-- program/js/editor.js | 33 +++--------------------- program/localization/en_GB/messages.inc | 2 +- program/localization/en_US/messages.inc | 2 +- program/localization/pl_PL/messages.inc | 2 +- program/steps/settings/edit_identity.inc | 2 +- 6 files changed, 48 insertions(+), 36 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index f4f4fc475..d42b8ede8 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3648,13 +3648,21 @@ function rcube_webmail() this.toggle_editor = function(checkbox, textAreaId) { var ischecked = checkbox.checked; + var composeElement = document.getElementById(textAreaId); + if (ischecked) { - tinyMCE.execCommand('mceAddControl', true, textAreaId); + var existingPlainText = composeElement.value; + var htmlText = "
" + existingPlainText + "
"; + composeElement.value = htmlText; + tinyMCE.execCommand('mceAddControl', true, textAreaId); } else { - tinyMCE.execCommand('mceRemoveControl', true, textAreaId); + var thisMCE = tinyMCE.get(textAreaId); + var existingHtml = thisMCE.getContent(); + this.html2plain(existingHtml, textAreaId); + tinyMCE.execCommand('mceRemoveControl', true, textAreaId); } }; @@ -3717,6 +3725,37 @@ function rcube_webmail() } + /********************************************************/ + /********* html to text conversion functions *********/ + /********************************************************/ + + this.html2plain = function(htmlText, id) + { + var http_request = new rcube_http_request(); + var url = this.env.bin_path+'html2text.php'; + var rcmail = this; + + this.set_busy(true, 'converting'); + console.log('HTTP POST: '+url); + + http_request.onerror = function(o) { rcmail.http_error(o); }; + http_request.oncomplete = function(o) { rcmail.set_text_value(o, id); }; + http_request.POST(url, htmlText, 'application/octet-stream'); + } + + this.set_text_value = function(httpRequest, id) + { + this.set_busy(false); + document.getElementById(id).value = httpRequest.get_text(); + console.log(httpRequest.get_text()); + } + + this.handle_conv_error = function(httpRequest) + { + alert('html2text request returned with error ' + httpRequest.xmlhttp.status); + } + + /********************************************************/ /********* remote request methods *********/ /********************************************************/ diff --git a/program/js/editor.js b/program/js/editor.js index 38c9b7168..c4f449c78 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -55,13 +55,10 @@ function rcmail_toggle_editor(toggler) } // do the appropriate conversion - - var composeElement = document.getElementById('compose-body'); - if (selectedEditor == 'html') { - var existingPlainText = composeElement.value; - var htmlText = "
" + existingPlainText + "
"; + var composeElement = document.getElementById('compose-body'); + var htmlText = "
" + composeElement.value + "
"; composeElement.value = htmlText; tinyMCE.execCommand('mceAddControl', true, 'compose-body'); htmlFlag.value = "1"; @@ -69,35 +66,11 @@ function rcmail_toggle_editor(toggler) } else { - rcmail.set_busy(true, 'converting'); var thisMCE = tinyMCE.get('compose-body'); var existingHtml = thisMCE.getContent(); - rcmail_html2plain(existingHtml); + rcmail.html2plain(existingHtml, 'compose-body'); tinyMCE.execCommand('mceRemoveControl', true, 'compose-body'); htmlFlag.value = "0"; rcmail.display_spellcheck_controls(true); } } - -function rcmail_html2plain(htmlText) - { - var http_request = new rcube_http_request(); - - http_request.onerror = function(o) { rcmail_handle_toggle_error(o); }; - http_request.oncomplete = function(o) { rcmail_set_text_value(o); }; - var url = rcmail.env.bin_path+'html2text.php'; - //console.log('HTTP request: ' + url); - http_request.POST(url, htmlText, 'application/octet-stream'); - } - -function rcmail_set_text_value(httpRequest) - { - rcmail.set_busy(false); - var composeElement = document.getElementById('compose-body'); - composeElement.value = httpRequest.get_text(); - } - -function rcmail_handle_toggle_error(httpRequest) - { - alert('html2text request returned with error ' + httpRequest.xmlhttp.status); - } diff --git a/program/localization/en_GB/messages.inc b/program/localization/en_GB/messages.inc index 8ee5d8e24..255aac35e 100644 --- a/program/localization/en_GB/messages.inc +++ b/program/localization/en_GB/messages.inc @@ -66,7 +66,7 @@ $messages['checking'] = 'Checking...'; $messages['nospellerrors'] = 'No spelling errors found'; $messages['folderdeleted'] = 'Folder successfully deleted'; $messages['deletedsuccessfully'] = 'Successfully deleted'; -$messages['converting'] = 'Removing formatting from message...'; +$messages['converting'] = 'Removing formatting...'; $messages['messageopenerror'] = 'Could not load message from server'; $messages['fileuploaderror'] = 'File upload failed'; $messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size'; diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc index a2a955936..c4de6dd98 100644 --- a/program/localization/en_US/messages.inc +++ b/program/localization/en_US/messages.inc @@ -66,7 +66,7 @@ $messages['checking'] = 'Checking...'; $messages['nospellerrors'] = 'No spelling errors found'; $messages['folderdeleted'] = 'Folder successfully deleted'; $messages['deletedsuccessfully'] = "Successfully deleted"; -$messages['converting'] = 'Removing formatting from message...'; +$messages['converting'] = 'Removing formatting...'; $messages['messageopenerror'] = 'Could not load message from server'; $messages['fileuploaderror'] = 'File upload failed'; $messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size'; diff --git a/program/localization/pl_PL/messages.inc b/program/localization/pl_PL/messages.inc index 54fc7710a..986a8590a 100644 --- a/program/localization/pl_PL/messages.inc +++ b/program/localization/pl_PL/messages.inc @@ -71,7 +71,7 @@ $messages['checking'] = 'Sprawdzanie...'; $messages['nospellerrors'] = 'Nie znaleziono błędów w pisowni.'; $messages['folderdeleted'] = 'Folder został pomyślnie usunięty.'; $messages['deletedsuccessfully'] = 'Usunięto'; -$messages['converting'] = 'Konwertowanie wiadomości...'; +$messages['converting'] = 'Konwertowanie tekstu...'; $messages['messageopenerror'] = 'Nie można załadować wiadomości z serwera'; $messages['fileuploaderror'] = 'Załączanie pliku nie powiodło się'; $messages['filesizeerror'] = 'Plik przekracza maksymalną wielkość $size'; diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc index cb9064a5f..46918cb9e 100644 --- a/program/steps/settings/edit_identity.inc +++ b/program/steps/settings/edit_identity.inc @@ -60,7 +60,7 @@ function rcube_identity_form($attrib) return rcube_label('notfound'); // add some labels to client - rcube_add_label('noemailwarning', 'nonamewarning'); + $OUTPUT->add_label('noemailwarning', 'nonamewarning', 'converting'); list($form_start, $form_end) = get_form_tags($attrib, 'save-identity', array('name' => '_iid', 'value' => $IDENTITY_RECORD['identity_id'])); -- cgit v1.2.3