| | |
| | | function rcube_text_editor(config, id) |
| | | { |
| | | var ref = this, |
| | | abs_url = location.href.replace(/[?#].*$/, '').replace(/\/$/, ''), |
| | | conf = { |
| | | selector: '#' + ($('#' + id).is('.mce_editor') ? id : 'fake-editor-id'), |
| | | cache_suffix: 's=4010700', |
| | | theme: 'modern', |
| | | language: config.lang, |
| | | content_css: 'program/js/tinymce/roundcube/content.css?v2', |
| | | content_css: rcmail.assets_path('program/js/tinymce/roundcube/content.css'), |
| | | menubar: false, |
| | | statusbar: false, |
| | | toolbar_items_size: 'small', |
| | |
| | | toolbar: 'bold italic underline | alignleft aligncenter alignright alignjustify' |
| | | + ' | bullist numlist outdent indent ltr rtl blockquote | forecolor backcolor | fontselect fontsizeselect' |
| | | + ' | link unlink table | emoticons charmap image media | code searchreplace undo redo', |
| | | spellchecker_rpc_url: '../../../../../?_task=utils&_action=spell_html&_remote=1', |
| | | spellchecker_rpc_url: abs_url + '/?_task=utils&_action=spell_html&_remote=1', |
| | | spellchecker_language: rcmail.env.spell_lang, |
| | | accessibility_focus: false, |
| | | file_browser_callback: function(name, url, type, win) { ref.file_browser_callback(name, url, type); }, |
| | |
| | | }; |
| | | |
| | | // get selected text (if no selection returns all text) from the editor |
| | | this.get_content = function(selected, plain) |
| | | this.get_content = function(args) |
| | | { |
| | | // apply spellcheck changes if spell checker is active |
| | | this.spellcheck_stop(); |
| | | var sigstart, ed = this.editor, text = '', strip = false, |
| | | defaults = {refresh: true, selection: false, nosig: false, format: 'html'}; |
| | | |
| | | var sigstart, ed = this.editor, |
| | | format = plain ? 'text' : 'html', |
| | | text = '', strip = false; |
| | | args = $.extend(defaults, args); |
| | | |
| | | // apply spellcheck changes if spell checker is active |
| | | if (args.refresh) { |
| | | this.spellcheck_stop(); |
| | | } |
| | | |
| | | // get selected text from tinymce editor |
| | | if (ed) { |
| | | ed.getWin().focus(); // correct focus in IE & Chrome |
| | | if (selected) |
| | | text = ed.selection.getContent({format: format}); |
| | | if (args.selection) |
| | | text = ed.selection.getContent({format: args.format}); |
| | | |
| | | if (!text) { |
| | | text = ed.getContent({format: format}); |
| | | strip = true; |
| | | text = ed.getContent({format: args.format}); |
| | | // @todo: strip signature in html mode |
| | | strip = args.format == 'text'; |
| | | } |
| | | } |
| | | // get selected text from compose textarea |
| | | else if (ed = rcube_find_object(this.id)) { |
| | | if (selected && $(ed).is(':focus')) { |
| | | if (args.selection && $(ed).is(':focus')) { |
| | | text = rcmail.get_input_selection(ed).text; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | // strip off signature |
| | | if (strip) { |
| | | // @todo: make this optional |
| | | if (strip && args.nosig) { |
| | | sigstart = text.indexOf('-- \n'); |
| | | if (sigstart > 0) { |
| | | text = text.substring(0, sigstart); |