1) Create client module
define("GlbHtmlEditModule", ["ext-base", "terrasoft", "HtmlEditModule"], function(Ext, Terrasoft) {
Ext.define("Terrasoft.controls.GlbHtmlEdit", {
extend: "Terrasoft.HtmlEdit",
alternateClassName: "Terrasoft.GlbHtmlEdit",
tplSignature: "
{0}: {1}",
signature: false,
setSignature: function(value) {
if (this.signature === value) {
return;
}
this.signature = value;
},
onContentDom: function() {
this.callParent(arguments);
this.setSignature(false);
var editor = this.editor;
if (editor) {
var editorDocument = this.editor.document;
if (editorDocument) {
var el = editorDocument.$;
Ext.EventManager.on(el, "keypress", this.onKeyPress, this);
}
}
},
destroy: function() {
var editor = this.editor;
if (editor) {
var editorDocument = this.editor.document;
if (editorDocument) {
var el = editorDocument.$;
Ext.EventManager.removeListener(el, "keypress", this.onKeyPress, this);
}
}
this.callParent(arguments);
},
onKeyPress: function(e) {
if (!this.enabled || this.readonly) {
return;
}
if (!this.signature && !e.isNavKeyPress() && !e.isSpecialKey()) {
this.setSignature(true);
var editor = this.editor;
var selection = editor.getSelection();
var ranges = selection.getRanges();
var range = ranges[0];
var currentContact = Terrasoft.SysValue.CURRENT_USER_CONTACT.displayValue;
var date = new Date();
var culture = Terrasoft.SysValue.CURRENT_USER_CULTURE ?
Terrasoft.SysValue.CURRENT_USER_CULTURE.displayValue : "";
var signatureHtml = Ext.String.format(this.tplSignature, currentContact,
date.toLocaleString(culture));
var signatureNode = CKEDITOR.dom.element.createFromHtml(signatureHtml);
range.deleteContents();
range.select();
range.insertNode(signatureNode);
var cursorNode = range.getNextNode();
range.selectNodeContents(cursorNode);
selection.selectRanges(ranges);
}
}
});
});
2) On the poge add dependency GlbHtmlEditModule and in diff section change className for your field (Example: Field Notes on Contact page):
{
"operation": "merge",
"parentName": "NotesControlGroup",
"propertyName": "items",
"name": "Notes",
"values": {
"className": "Terrasoft.GlbHtmlEdit"
}
}
3) Result
