Изменение текста в комментариях (ленте)

Добрый день!

Есть ли какая-то возможность сделать изменение текста в комментариях?

Дело в том, что туда можно копировать все что угодно, и форматировать нельзя (изменить шрифт, добавить ссылку и т.п.). Можно ли как-то прикрутить стандартную панельку для редактирования текста?
 

Нравится

6 комментариев

Для ввода форматируемого текста используется сторонний компонент 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*/
	};
});

Показать все комментарии