// https://civicrm.org/licensing
(function($, _) {
function getInstance(item) {
- var name = $(item).attr("name");
- return CKEDITOR.instances[name];
+ var name = $(item).attr("name"),
+ id = $(item).attr("id");
+ if (name && CKEDITOR.instances[name]) {
+ return CKEDITOR.instances[name];
+ }
+ if (id && CKEDITOR.instances[id]) {
+ return CKEDITOR.instances[id];
+ }
}
-
CRM.wysiwyg.supportsFileUploads = true;
- CRM.wysiwyg.create = function(item) {
- //var browseUrl = CRM.config.userFrameworkResourceUrl + "packages/kcfinder/browse.php";
- 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('blur', function(){
+ 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");
+ });
+ editor.on('pasteState', function() {
+ $(item).trigger("paste");
});
}
};
editor.updateElement();
}
};
- CRM.wysiwyg.val = function(item) {
+ CRM.wysiwyg.getVal = function(item) {
var editor = getInstance(item);
if (editor) {
return editor.getData();
return $(item).val();
}
};
- CRM.wysiwyg.insertText = function(item, text) {
+ CRM.wysiwyg.setVal = function(item, val) {
+ var editor = getInstance(item);
+ if (editor) {
+ return editor.setData(val);
+ } else {
+ return $(item).val(val);
+ }
+ };
+ CRM.wysiwyg.insert = function(item, text) {
var editor = getInstance(item);
if (editor) {
editor.insertText(text);
+ } else {
+ CRM.wysiwyg._insertIntoTextarea(item, text);
}
};
- CRM.wysiwyg.insertHTML = function(item, html) {
+ CRM.wysiwyg.focus = function(item) {
var editor = getInstance(item);
if (editor) {
- editor.insertText(html);
+ editor.focus();
+ } else {
+ $(item).focus();
}
};
+
})(CRM.$, CRM._);