Merge pull request #6861 from totten/master-getsrt-setting
[civicrm-core.git] / js / wysiwyg / crm.ckeditor.js
index fe7fc499d8ff881744f9e07cc61258ee9feaf849..16ddad99162fb5516b81effc554eb3d693d08fc4 100644 (file)
       browseUrl = CRM.config.userFrameworkResourceURL + "packages/kcfinder/browse.php?cms=civicrm",
       uploadUrl = CRM.config.userFrameworkResourceURL + "packages/kcfinder/upload.php?cms=civicrm";
     if ($(item).length) {
-      editor = CKEDITOR.replace($(item)[0]);
+      editor = CKEDITOR.replace($(item)[0], {
+        filebrowserBrowseUrl: browseUrl + '&type=files',
+        filebrowserImageBrowseUrl: browseUrl + '&type=images',
+        filebrowserFlashBrowseUrl: browseUrl + '&type=flash',
+        filebrowserUploadUrl: uploadUrl + '&type=files',
+        filebrowserImageUploadUrl: uploadUrl + '&type=images',
+        filebrowserFlashUploadUrl: uploadUrl + '&type=flash',
+        customConfig: CRM.config.CKEditorCustomConfig
+      });
     }
     if (editor) {
-      editor.config.filebrowserBrowseUrl = browseUrl + '&type=files';
-      editor.config.filebrowserImageBrowseUrl = browseUrl + '&type=images';
-      editor.config.filebrowserFlashBrowseUrl = browseUrl + '&type=flash';
-      editor.config.filebrowserUploadUrl = uploadUrl + '&type=files';
-      editor.config.filebrowserImageUploadUrl = uploadUrl + '&type=images';
-      editor.config.filebrowserFlashUploadUrl = uploadUrl + '&type=flash';
       editor.on('focus', function() {
         $(item).trigger('focus');
       });
       editor.on('insertText', function() {
         $(item).trigger("keypress");
       });
+      var debounce = null;
+      _.each(['key', 'pasteState'], function(evName) {
+        editor.on(evName, function(evt) {
+          if (debounce) clearTimeout(debounce);
+          debounce = setTimeout(function() {
+            editor.updateElement();
+            $(item).trigger("change");
+          }, 50);
+        });
+      });
       editor.on('pasteState', function() {
         $(item).trigger("paste");
       });
+      // Hide CiviCRM menubar when editor is fullscreen
+      editor.on('maximize', function (e) {
+        $('#civicrm-menu').toggle(e.data === 2);
+      });
     }
   };
   CRM.wysiwyg.destroy = function(item) {