Добрый день!
Есть ли какая-то возможность сделать изменение текста в комментариях?
Дело в том, что туда можно копировать все что угодно, и форматировать нельзя (изменить шрифт, добавить ссылку и т.п.). Можно ли как-то прикрутить стандартную панельку для редактирования текста?
Нравится
Для ввода форматируемого текста используется сторонний компонент 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*/ }; });