Добрый день!
Есть ли какая-то возможность сделать изменение текста в комментариях?
Дело в том, что туда можно копировать все что угодно, и форматировать нельзя (изменить шрифт, добавить ссылку и т.п.). Можно ли как-то прикрутить стандартную панельку для редактирования текста?
Нравится
Для ввода форматируемого текста используется сторонний компонент CKEditor. Чуть больше о нём есть в обсуждении.
А пример работы с ним в карточке есть в разделе базы знаний, схема KnowledgeBasePageV2 пакета UIv2, поле Notes типа RICH_TEXT. Обратите внимание на применяемые в нём отдельные функции для работы с изображениями insertImagesToKnowledgeBase и initializeHtmlEditor в нём и на подключенные к компоненту два поля объекта: Notes и NotHtmlNote.
Зверев Александр,
А какую схему править, если не секрет? Или это какой-то модуль и я не могу его поменять (версия 7.13.0)?
Вероятно, и не одну. Та же лента отображается и в правой панели, и как деталь раздела, и как элемент истории обращения (как в старом, так и новом виде).
Зверев Александр,
Нашел нужную схему, она для моих целей всего одна. На ней следующий код:
{
"operation": "merge",
"parentName": "ModulePageContainer",
"name": "BodyContainer",
"propertyName": "items",
"values": {
"id": "SocialMessageBodyContainer",
"itemType": this.Terrasoft.ViewItemType.CONTAINER,
"wrapClass": ["body-container"]
}
},
{
"operation": "insert",
"name": "SocialMessagePublisherEdit",
"parentName": "BodyContainer",
"propertyName": "items",
"values": {
"generateId": false,
"className": "Terrasoft.ESNHtmlEdit",
"itemType": this.Terrasoft.ViewItemType.MODEL_ITEM,
"dataValueType": this.Terrasoft.DataValueType.TEXT,
"contentType": this.Terrasoft.ContentType.RICH_TEXT,
"labelConfig": {
"visible": false
},
"value": {
"bindTo": "Message"
},
"placeholder": {
"bindTo": "WritePostHintText"
},
"classes": {
"htmlEditClass": ["postMessage", "placeholderOpacity"]
},
"markerValue": "SocialMessagePublisherEdit",
"prepareList": {bindTo: "prepareEntitiesExpandableList"},
"list": {bindTo: "entitiesList"},
"listViewItemRender": {bindTo: "onEntitiesListViewItemRender"},
"height": "100px",
"autoGrow": true,
"autoGrowMinHeight": 100
}
}Самое забавное, что как я не старался - не получается "проявить" необходимые инструменты редактирования, как у обычных rich_text полей
В коде упоминается ESNHtmlEdit, реализованный в отдельной схеме ESNHtmlEditModule. Там тоже используются механизмы CKEDITOR.
В итоге получилось следующее:
define("SocialMessagePublisherPage", ["ESNHtmlEditModule", "SocialMentionUtilities", "css!SocialMessagePublisherModule"
], function() {
return {
entitySchemaName: "SocialMessage",
diff: /**SCHEMA_DIFF*/[
{
// Операция добавления компонента на страницу.
"operation": "insert",
// Мета-имя родительского контейнера, в который добавляется поле.
"parentName": "BodyContainer",
// Поле добавляется в коллекцию компонентов
// родительского элемента.
"propertyName": "items",
// Имя колонки схемы, к которой привязан компонент.
"name": "Message",
"values": {
// Заголовок поля.
"contentType": this.Terrasoft.ContentType.RICH_TEXT,
"labelConfig": {
"visible": false
},
// Расположение поля.
"layout": {
// Номер столбца.
"column": 0,
// Номер строки.
"row": 5,
// Диапазон занимаемых столбцов.
"colSpan": 12
},
"height": "100px",
"styles": {
"background-color": "white"
},
"controlConfig": { //здесь и ниже код для того, чтобы в примечания можно было добавлять картинки
"imageLoaded": {
"bindTo": "insertImagesToNotes"
},
"images": {
"bindTo": "NotesImagesCollection"
}
}
}
},
{
"operation": "remove",
"name": "SocialMessagePublisherEdit",
"parentName": "BodyContainer",
"propertyName": "items"
}
]/**SCHEMA_DIFF*/
};
});