Merge pull request #6394 from colemanw/CRM-14599
[civicrm-core.git] / js / wysiwyg / crm.ckeditor.js
index ea4eafe16c0e4b4b7d27519184de3b0b0e9a85e8..5d418e57b39a93cb942ebf42eab332c54918e72c 100644 (file)
@@ -1,8 +1,8 @@
 // https://civicrm.org/licensing
 (function($, _) {
   function getInstance(item) {
-    var name = $(item).attr("name");
-    var id = $(item).attr("id");
+    var name = $(item).attr("name"),
+      id = $(item).attr("id");
     if (name && CKEDITOR.instances[name]) {
       return CKEDITOR.instances[name];
     }
     }
   }
   CRM.wysiwyg.supportsFileUploads =  true;
-  CRM.wysiwyg.create =  function(item) {
-    var browseUrl = CRM.config.userFrameworkResourceURL + "packages/kcfinder/browse.php";
-    var uploadUrl = CRM.config.userFrameworkResourceURL + "packages/kcfinder/upload.php";
-    var editor = CKEDITOR.replace($(item)[0]);
+  CRM.wysiwyg.create = function(item) {
+    var editor,
+      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], {
+        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+'?cms=civicrm&type=files';
-      editor.config.filebrowserImageBrowseUrl = browseUrl+'?cms=civicrm&type=images';
-      editor.config.filebrowserFlashBrowseUrl = browseUrl+'?cms=civicrm&type=flash';
-      editor.config.filebrowserUploadUrl = uploadUrl+'?cms=civicrm&type=files';
-      editor.config.filebrowserImageUploadUrl = uploadUrl+'?cms=civicrm&type=images';
-      editor.config.filebrowserFlashUploadUrl = uploadUrl+'?cms=civicrm&type=flash';
+      editor.on('focus', function() {
+        $(item).trigger('focus');
+      });
       editor.on('blur', function() {
         editor.updateElement();
         $(item).trigger("blur");
+        $(item).trigger("change");
       });
       editor.on('insertText', function() {
         $(item).trigger("keypress");
     if (editor) {
       editor.insertText(text);
     } else {
-      CRM.wysiwyg.insertIntoTextarea(item, text);
+      CRM.wysiwyg._insertIntoTextarea(item, text);
     }
   };
   CRM.wysiwyg.focus = function(item) {
     var editor = getInstance(item);
     if (editor) {
       editor.focus();
+    } else {
+      $(item).focus();
     }
   };