summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2008-09-14 08:34:11 +0000
committeralecpl <alec@alec.pl>2008-09-14 08:34:11 +0000
commit3bd94b142eb00024eeb52c0e3f4a9f61bed4f3f9 (patch)
tree9fafe145993e5afbf5cbe962c16c4517da39653f
parent14c5b8e1323c029a17abc4ead8999d508c86ac5b (diff)
- use html2text for signatures in Settings/Identities
-rw-r--r--program/js/app.js43
-rw-r--r--program/js/editor.js33
-rw-r--r--program/localization/en_GB/messages.inc2
-rw-r--r--program/localization/en_US/messages.inc2
-rw-r--r--program/localization/pl_PL/messages.inc2
-rw-r--r--program/steps/settings/edit_identity.inc2
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 = "<pre>" + existingPlainText + "</pre>";
+ 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);
}
};
@@ -3718,6 +3726,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 = "<pre>" + existingPlainText + "</pre>";
+ var composeElement = document.getElementById('compose-body');
+ var htmlText = "<pre>" + composeElement.value + "</pre>";
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']));