diff options
Diffstat (limited to 'program/js')
| -rw-r--r-- | program/js/app.js | 43 | ||||
| -rw-r--r-- | program/js/editor.js | 33 | 
2 files changed, 44 insertions, 32 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); -  } | 
