X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=program%2Fjs%2Feditor.js;h=63186fb02e5de3c6e90cfefe82b2a8c9d3537f35;hb=76507f7c63a660742e76889ad6e3919f3dde3bb0;hp=df68cdd4124028237f8a3cddbe92bac284bf4a5c;hpb=ade1655456ffdb799be8081f57ec90a408b99dd9;p=roundcube.git diff --git a/program/js/editor.js b/program/js/editor.js index df68cdd..63186fb 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -1,9 +1,9 @@ /* +-----------------------------------------------------------------------+ - | RoundCube editor js library | + | Roundcube editor js library | | | - | This file is part of the RoundCube web development suite | - | Copyright (C) 2006, RoundCube Dev, - Switzerland | + | This file is part of the Roundcube web development suite | + | Copyright (C) 2006, The Roundcube Dev Team | | Licensed under the GNU GPL | | | +-----------------------------------------------------------------------+ @@ -13,105 +13,119 @@ $Id: editor.js 000 2006-05-18 19:12:28Z roundcube $ */ -// Initialize the message editor - -function rcmail_editor_init(skin_path) - { - tinyMCE.init({ mode : 'specific_textareas', - accessibility_focus : false, - apply_source_formatting : true, - theme : 'advanced', - plugins : 'emotions,media,nonbreaking,table,searchreplace,spellchecker,visualchars', - theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,link,unlink,emotions,forecolor,backcolor,formatselect,fontselect,fontsizeselect', - theme_advanced_buttons2 : 'undo,redo,image,media,hr,charmap,code,nonbreaking,visualchars,separator,search,replace,spellchecker,separator,tablecontrols', - theme_advanced_buttons3 : '', - theme_advanced_toolbar_location : 'top', - theme_advanced_toolbar_align : 'left', - extended_valid_elements : 'font[face|size|color|style],span[id|class|align|style]', - content_css : skin_path + '/editor_content.css', - popups_css : skin_path + '/editor_popup.css', - editor_css : skin_path + '/editor_ui.css' - }); - } - -// Set the state of the HTML/Plain toggles based on the _is_html field value -function rcmail_set_editor_toggle_states() - { - // set the editor toggle based on the state of the editor - - var htmlFlag = document.getElementsByName('_is_html')[0]; - var toggles = document.getElementsByName('_editorSelect'); - for(var t=0; t"; - composeElement.value = htmlText; - tinyMCE.execCommand('mceAddControl', true, '_message'); - htmlFlag.value = "1"; - } + if (select.tagName != 'SELECT') + ishtml = select.checked; else - { - rcmail.set_busy(true, 'converting'); - var thisMCE = tinyMCE.getInstanceById('_message'); - var existingHtml = tinyMCE.getContent(); - rcmail_html2plain(existingHtml); - tinyMCE.execCommand('mceRemoveControl', true, '_message'); - htmlFlag.value = "0"; - } - } + ishtml = select.value == 'html'; -function rcmail_html2plain(htmlText) - { - var http_request = new rcube_http_request(); + var res = rcmail.command('toggle-editor', {id:textAreaId, mode:ishtml?'html':'plain'}); - 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'); + if (ishtml) { + // #1486593 + setTimeout("rcmail_editor_tabindex(true);", 500); + if (flagElement && (flag = rcube_find_object(flagElement))) + flag.value = '1'; } + else if (res) { + if (flagElement && (flag = rcube_find_object(flagElement))) + flag.value = '0'; -function rcmail_set_text_value(httpRequest) - { - rcmail.set_busy(false); - var composeElement = document.getElementById('compose-body'); - composeElement.value = httpRequest.get_text(); + if (rcmail.env.composebody) + rcube_find_object(rcmail.env.composebody).focus(); } - -function rcmail_handle_toggle_error(httpRequest) - { - alert('html2text request returned with error ' + httpRequest.xmlhttp.status); + else { // !res + if (select.tagName == 'SELECT') + select.value = 'html'; + else if (select.tagName == 'INPUT') + select.checked = true; } +}