- use html2text for signatures in Settings/Identities

release-0.6
alecpl 16 years ago
parent 14c5b8e132
commit 3bd94b142e

@ -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);
}
};
@ -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 *********/
/********************************************************/

@ -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);
}

@ -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';

@ -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';

@ -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';

@ -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']));

Loading…
Cancel
Save