| | |
| | | abs_url = location.href.replace(/[?#].*$/, '').replace(/\/$/, ''), |
| | | conf = { |
| | | selector: '#' + ($('#' + id).is('.mce_editor') ? id : 'fake-editor-id'), |
| | | cache_suffix: 's=4010700', |
| | | cache_suffix: 's=4010900', |
| | | theme: 'modern', |
| | | language: config.lang, |
| | | content_css: rcmail.assets_path('program/js/tinymce/roundcube/content.css'), |
| | |
| | | if (config.spellcheck_observer) { |
| | | this.spellchecker.spelling_state_observer = this.spellcheck_observer = config.spellcheck_observer; |
| | | } |
| | | } |
| | | |
| | | // secure spellchecker requests with Roundcube token |
| | | // Note: must be registered only once (#1490311) |
| | | if (!tinymce.registered_request_token) { |
| | | tinymce.registered_request_token = true; |
| | | tinymce.util.XHR.on('beforeSend', function(e) { |
| | | e.xhr.setRequestHeader('X-Roundcube-Request', rcmail.env.request_token); |
| | | }); |
| | | } |
| | | |
| | | // minimal editor |
| | |
| | | ed.on('keypress', function() { |
| | | rcmail.compose_type_activity++; |
| | | }); |
| | | // secure spellchecker requests with Roundcube token |
| | | tinymce.util.XHR.on('beforeSend', function(e) { |
| | | e.xhr.setRequestHeader('X-Roundcube-Request', rcmail.env.request_token); |
| | | }); |
| | | }; |
| | | |
| | | // textarea identifier |
| | |
| | | |
| | | if (rcmail.env.action != 'compose') { |
| | | return; |
| | | } |
| | | |
| | | var area = $('#' + this.id), |
| | | height = $('div.mce-toolbar-grp:first', area.parent()).height(); |
| | | |
| | | // the editor might be still not fully loaded, making the editing area |
| | | // inaccessible, wait and try again (#1490310) |
| | | if (height > 200 || height > area.height()) { |
| | | return setTimeout(function () { ref.init_callback(event); }, 300); |
| | | } |
| | | |
| | | var css = {}, |
| | |
| | | |
| | | // Focus previously focused element |
| | | if (fe && fe.id != this.id) { |
| | | // use setTimeout() for IE9 (#1488541) |
| | | window.setTimeout(function() { |
| | | window.focus(); // for WebKit (#1486674) |
| | | fe.focus(); |
| | | rcmail.env.compose_focus_elem = null; |
| | | }, 10); |
| | | window.focus(); // for WebKit (#1486674) |
| | | fe.focus(); |
| | | rcmail.env.compose_focus_elem = null; |
| | | } |
| | | } |
| | | |
| | | window.setTimeout(function() { |
| | | // set tabIndex and set focus to element that was focused before |
| | | ref.tabindex(fe && fe.id == ref.id); |
| | | // Trigger resize (needed for proper editor resizing in some browsers) |
| | | $(window).resize(); |
| | | }, 100); |
| | | // set tabIndex and set focus to element that was focused before |
| | | ref.tabindex(fe && fe.id == ref.id); |
| | | // Trigger resize (needed for proper editor resizing in some browsers) |
| | | $(window).resize(); |
| | | }; |
| | | |
| | | // set tabIndex on tinymce editor |
| | |
| | | input.val(data); |
| | | tinymce.execCommand('mceAddEditor', false, ref.id); |
| | | |
| | | setTimeout(function() { |
| | | if (ref.editor) { |
| | | var body = $(ref.editor.getBody()); |
| | | if (rcmail.env.default_font) |
| | | body.css('font-family', rcmail.env.default_font); |
| | | // #1486593 |
| | | ref.tabindex(true); |
| | | // put cursor on start of the compose body |
| | | ref.editor.selection.setCursorLocation(body.children().first().get(0)); |
| | | } |
| | | }, 500); |
| | | if (ref.editor) { |
| | | var body = $(ref.editor.getBody()); |
| | | // #1486593 |
| | | ref.tabindex(true); |
| | | // put cursor on start of the compose body |
| | | ref.editor.selection.setCursorLocation(body.children().first().get(0)); |
| | | } |
| | | }; |
| | | |
| | | // convert to html |