Aleksander Machniak
2014-05-05 4d02384dcaba8806113a5554ea2faf2c011d2f4e
Fix Spell button with TinyMCE4
2 files modified
19 ■■■■ changed files
program/js/app.js 14 ●●●● patch | view | raw | blame | history
program/js/editor.js 5 ●●●●● patch | view | raw | blame | history
program/js/app.js
@@ -3540,7 +3540,7 @@
    var ed;
    if (window.tinymce && (ed = tinymce.get(this.env.composebody))) {
      if (ed.plugins && ed.plugins.spellchecker && ed.plugins.spellchecker.active)
      if (ed.plugins && ed.plugins.spellchecker && this.env.spellcheck_active)
        ed.execCommand('mceSpellCheck');
    }
    else if (ed = this.env.spellcheck) {
@@ -3555,8 +3555,8 @@
  {
    var ed, active;
    if (window.tinymce && (ed = tinymce.get(this.env.composebody)) && ed.plugins && ed.plugins.spellchecker)
      active = ed.plugins.spellchecker.active;
    if (window.tinymce && (ed = tinymce.get(this.env.composebody)))
      active = this.env.spellcheck_active;
    else if ((ed = this.env.spellcheck) && ed.state)
      active = ed.state != 'ready' && ed.state != 'no_error_found';
@@ -3571,8 +3571,8 @@
  {
    var ed;
    if (window.tinymce && (ed = tinymce.get(this.env.composebody)) && ed.plugins && ed.plugins.spellchecker)
      return ed.plugins.spellchecker.selectedLang;
    if (window.tinymce && (ed = tinymce.get(this.env.composebody)))
      return ed.settings.spellchecker_language || this.env.spell_lang;
    else if (this.env.spellcheck)
      return GOOGIE_CUR_LANG;
  };
@@ -3581,8 +3581,8 @@
  {
    var ed;
    if (window.tinymce && (ed = tinymce.get(this.env.composebody)) && ed.plugins)
      ed.plugins.spellchecker.selectedLang = lang;
    if (window.tinymce && (ed = tinymce.get(this.env.composebody)))
      ed.settings.spellchecker_language = lang;
    else if (this.env.spellcheck)
      this.env.spellcheck.setCurrentLanguage(lang);
  };
program/js/editor.js
@@ -51,14 +51,15 @@
        + ' | link unlink table | emoticons charmap image media | code searchreplace undo redo',
      spellchecker_rpc_url: '../../../../../?_task=utils&_action=spell_html&_remote=1',
      spellchecker_enable_learn_rpc: config.spelldict, //TODO
      spellchecker_language: rcmail.env.spell_lang,
      accessibility_focus: false
    });
    conf.setup = function(ed) {
      ed.on('init', rcmail_editor_callback);
      // add handler for spellcheck button state update
      ed.on('ProgressState', function(args) {
        if (!args.state)
      ed.on('SpellcheckStart SpellcheckEnd', function(args) {
        rcmail.env.spellcheck_active = args.type == 'spellcheckstart';
          rcmail.spellcheck_state();
      });
      ed.on('keypress', function() {