"js/Common.js",
"js/crm.ajax.js",
);
+ // add wysiwyg editor
$editorID = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
'editor_id'
);
$editor = CRM_Utils_Array::value($editorID,
CRM_Core_OptionGroup::values('wysiwyg_editor')
);
- $items[] = "js/wysiwyg/crm.textarea.js";
+ $items[] = "js/wysiwyg/crm.wysiwyg.js";
if ($editor == "CKEditor") {
$items[] = "bower_components/ckeditor/ckeditor.js";
$items[] = "js/wysiwyg/crm.ckeditor.js";
$(this).data('crm-initial-value', $(this).is(':checkbox, :radio') ? $(this).prop('checked') : $(this).val());
});
$('textarea.crm-wysiwyg', e.target).each(function() {
- CRM.wysiwyg.create(this);
+ if ($(this).hasClass("collapsed")) {
+ CRM.wysiwyg.createPlain(this);
+ } else {
+ CRM.wysiwyg.create(this);
+ }
})
})
.on('dialogopen', function(e) {
return CKEDITOR.instances[name];
}
- CRM.wysiwyg = {
- supportsFileUploads: true,
- 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]);
- 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';
- }
- },
- destroy: function(item) {
- var editor = getInstance(item);
- if (editor) {
- editor.destroy();
- }
- },
- updateElement: function(item) {
- var editor = getInstance(item);
- if (editor) {
- editor.updateElement();
- }
- },
- val: function(item) {
- var editor = getInstance(item);
- if (editor) {
- return editor.getData();
- } else {
- return $(item).val();
- }
- },
+ 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]);
+ 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(){
+ $(item).trigger("blur");
+ });
+ }
+ };
+ CRM.wysiwyg.destroy = function(item) {
+ var editor = getInstance(item);
+ if (editor) {
+ editor.destroy();
+ }
+ };
+ CRM.wysiwyg.updateElement = function(item) {
+ var editor = getInstance(item);
+ if (editor) {
+ editor.updateElement();
+ }
+ };
+ CRM.wysiwyg.val = function(item) {
+ var editor = getInstance(item);
+ if (editor) {
+ return editor.getData();
+ } else {
+ return $(item).val();
+ }
+ };
+ CRM.wysiwyg.insertText = function(item, text) {
+ var editor = getInstance(item);
+ if (editor) {
+ editor.insertText(text);
+ }
+ };
+ CRM.wysiwyg.insertHTML = function(item, html) {
+ var editor = getInstance(item);
+ if (editor) {
+ editor.insertText(html);
+ }
};
})(CRM.$, CRM._);
+++ /dev/null
-// https://civicrm.org/licensing
-(function($, _) {
- CRM.wysiwyg = {
- supportsFileUploads: false,
- create: _.noop,
- destroy: _.noop,
- updateElement: _.noop,
- val: function(item) {
- return $(item).val();
- },
- };
-})(CRM.$, CRM._);
--- /dev/null
+// https://civicrm.org/licensing
+(function($, _) {
+ function openWysiwyg(item) {
+ $(item).show();
+ $(item).next('.replace-plain').hide();
+ CRM.wysiwyg.create(item);
+ $(item).on( 'blur', function( e ) {
+ CRM.wysiwyg.updateElement(item);
+ CRM.wysiwyg.destroy(item);
+ $(item).hide().next('.replace-plain').show().html($(item).val());
+ });
+ };
+ CRM.wysiwyg = {};
+ CRM.wysiwyg['supportsFileUploads'] = false;
+ CRM.wysiwyg.create = _.noop;
+ CRM.wysiwyg.destroy = _.noop;
+ CRM.wysiwyg.updateElement = _.noop;
+ CRM.wysiwyg.val = function(item) {
+ return $(item).val();
+ };
+ CRM.wysiwyg.insertText = _.noop;
+ CRM.wysiwyg.insertHTML = _.noop;
+ CRM.wysiwyg.createPlain = function(item) {
+ $(item)
+ .hide()
+ .after('<div class="replace-plain" tabindex="0" title="Click to edit"></div>');
+ $(item).next('.replace-plain').click(function(){
+ openWysiwyg(item);
+ });
+ $(item).next('.replace-plain').keypress(function(){
+ openWysiwyg(item);
+ });
+ };
+})(CRM.$, CRM._);
$.datepicker._defaults.dateFormat = CRM.config.dateInputFormat = {$config->dateInputFormat|@json_encode};
CRM.config.timeIs24Hr = {if $config->timeInputFormat eq 2}true{else}false{/if};
CRM.config.ajaxPopupsEnabled = {$ajaxPopupsEnabled|@json_encode};
- CRM.config.userFrameworkResourceUrl = {$config->userFrameworkResourceUrl|@json_encode};
+ CRM.config.userFrameworkResourceURL = {$config->userFrameworkResourceURL|@json_encode};
// Merge entityRef settings
CRM.config.entityRef = $.extend({ldelim}{rdelim}, {$entityRef|@json_encode}, CRM.config.entityRef || {ldelim}{rdelim});
{* include wysiysg editor files *}
{if $includeWysiwygEditor}
-
-
{if $defaultWysiwygEditor eq 1}
<script>
{* this version of tinymce requires jquery *}
</script>
<script type="text/javascript" src="{$config->resourceBase}packages/tinymce/jscripts/tiny_mce/jquery.tinymce.js"></script>
<script type="text/javascript" src="{$config->resourceBase}packages/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
- {elseif $defaultWysiwygEditor eq 2}
-
{/if}
{/if}