Здравствуйте! У меня проблема в загрузке изображений после добавления стандартного функционала Примечаний.
Примечания добавлены в деталь. Для детали создан собственный объект. Примечания добавляется в схему карточки детали следующим образом... текст сохраняется, изоражения даже не загружаются. ставил точку останова на методе insertImagesToNotes. он не выполняется. хотя должен, как он делает на стандартных страницах. почему?

        {
                "operation": "insert",
                "name": "UsrNotes",
                "values": {
                        "contentType": 4,
                        "layout": {
                                "column": 0,
                                "row": 0,
                                "colSpan": 24
                        },
                        "labelConfig": {
                                "visible": false
                        },
                        "controlConfig": {
                                "imageLoaded": {
                                        "bindTo": "insertImagesToNotes"
                                },
                                "images": {
                                        "bindTo": "NotesImagesCollection"
                                }
                        }
                },
                "parentName": "NotesControlGroup",
                "propertyName": "items",
                "index": 0
        }

 

Нравится

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

Посмотрите в соседнюю тему:
http://www.community.terrasoft.ru/forum/topic/11374

Примечания, это по сути, строка неограниченной длины с доп. атрибутом
contentType: Terrasoft.ContentType.RICH_TEXT,

Каким образом вы могли пытаться подгружать картинку в строку неограниченной длины, если панель со специальными для этого кнопками, появляется только для элементов RICH_TEXT

У меня такая панель появляется. Прописал
contentType: Terrasoft.ContentType.RICH_TEXT
ничего не изменилось.
Может какие-то зависимости нужно указать для модуля или еще что-то?

Зависимость на странице редактирования раздела, только на сам объект в котором хранятся данные раздела.
Ведь данные детали примечания, не хранятся в каком-то отдельном объекте. Они хранятся в отдельной колонке объекта раздела.

Вот смотрите, пошагово, я создал новый раздел мастером разделов, называется он UsrTestSection, в объекте я добавляю новую колонку "UsrNotes"

Создал новую вкладку для моей детали, все так же, в мастере, в схеме появился контейнер для нее "UsrTestSectionPage3Tab"
строчкой ниже, я добавляю в него поле с типом RICH_TEXT и ссылкой на колонку объекта раздела (!).
Вот итоговый код всей замещающей схемы страницы редактирования раздела.

define('UsrTestSectionPage', ['UsrTestSectionPageResources', 'GeneralDetails'],
function(resources, GeneralDetails) {
	return {
		entitySchemaName: 'UsrTestSection',
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
	{
		"operation": "insert",
		"name": "UsrName",
		"values": {
			"layout": {
				"column": 0,
				"row": 0,
				"colSpan": 24
			}
		},
		"parentName": "Header",
		"propertyName": "items",
		"index": 0
	},
	{
		"operation": "insert",
		"name": "GeneralInfoTab",
		"values": {
			"caption": {
				"bindTo": "Resources.Strings.GeneralInfoTabCaption"
			},
			"items": []
		},
		"parentName": "Tabs",
		"propertyName": "tabs",
		"index": 0
	},
	{
		"operation": "insert",
		"name": "UsrTestSectionPage3Tab",
		"values": {
			"items": [],
			"caption": {
				"bindTo": "Resources.Strings.UsrTestSectionPage3TabCaption"
			}
		},
		"parentName": "Tabs",
		"propertyName": "tabs",
		"index": 2
	},
	{
		"operation": "insert",
		"parentName": "UsrTestSectionPage3Tab",
		"propertyName": "items",
		"name": "UsrNotes",
		"values": {
			contentType: Terrasoft.ContentType.RICH_TEXT,
			"layout": {column: 0, row: 0, colSpan: 24},
			"labelConfig": {
				"visible": false
			},
			"controlConfig": {
				"imageLoaded": {
					"bindTo": "insertImagesToNotes"
				},
				"images": {
					"bindTo": "NotesImagesCollection"
				}
			}
		}
	}
]/**SCHEMA_DIFF*/,
		attributes: {},
		methods: {},
		rules: {},
		userCode: {}
	};
});

Все. В итоге у меня полностью рабочее поле примечаний для записей моего нового раздела.

Сравните все что делали вы, с тем что описано выше, попробуйте сделать все с нуля, так же как это делал я, и когда у вас это получится, вы найдете ту возможную мелочь что упустили ;)

Из вашего вступления больше всего смущает фраза "Для детали создан собственный объект."
Этого делать не нужно, данная деталь добавляется кодом в схеме редактирования карточки раздела. А данные хранятся в объекте раздела. (см. комментарий выше)

Да сделал как Вы написали. и так даже работает. но отличие в том что, мои примечания находятся не в разделе..а в детале. Еще раз опишу ситуацию..
Есть раздел контакты

В нем есть "деталь расчет зп водителя". именно под эту деталь создал объект

И когда для этой детали я жму кнопки (добавить/изменить) открывается такая страница

именно здесь находится вкладка Примечания. и здесь вставка картинки по прежнему не работает

В таком случае все верно. У базовой детали от которой наследуются все остальные, просто нет необходимых атрибутов, методов и миксинов. В отличие от страниц которые наследуются от BaseModulePageV2. Но это можно исправить, посмотрев что реализовано в BaseModulePageV2 и воссоздать это у себя в схеме детали. Далее я покажу основные аспекты, и приведу полный код своего примера. В основе всего я создал объект для детали, на основании Base object with notes (Base), но можно наверно и от обычного базового объекта, а потом добавлять строку неограниченной(!) длины (у вас на скриншоте она ограничена). После я создал деталь мастером деталей, и в автоматически созданной схеме "UsrUsrMyDetail1Page", в конфигураторе, добавляю:

1. зависимость на "NotesUtilities" для requirejs;

2. атрибут:

attributes: {
        "NotesImagesCollection": {dataValueType: Terrasoft.DataValueType.COLLECTION}
},

3. миксин:

mixins: {
        NotesUtilities: "Terrasoft.NotesUtilities" 
},

4. методы:

methods: { 
        onNotesImagesUploadComplete: function() {
                this.hideBodyMask(); 
                this.updateFileDetail(); 
        }, 
        onNotesImagesUpload: function() { 
                this.showBodyMask(); 
        },
        init: function(callback, scope) {
                this.callParent(arguments); 
                this.mixins.NotesUtilities.initNotesImagesCollection.call(this);
        } 
}

5. Ну и само поле для наших заметок:

{
        "operation": "insert",
        "parentName": "Header",
        "propertyName": "items",
        "name": "Notes",
        "bindTo": "Notes",
        "values": {
               contentType: Terrasoft.ContentType.RICH_TEXT, 
               "layout" : {column: 0, row: 1, colSpan: 24}, 
               "controlConfig": { 
                      "imageLoaded": { 
                                "bindTo": "insertImagesToNotes" 
                      },
                      "images": { 
                                "bindTo": "NotesImagesCollection" 
                      } 
               } 
         },
         "index": 1 
} 

Полный код схемы карточки детали во вложении. Итог работы:

Добрый день!

Не нашла вложения, где есть полный код страницы.. И еще - что нужно сделать в этом пункте конкретно? 

1. зависимость на "NotesUtilities" для requirejs;

Речь о коде в начале:

mixins: {
	NotesUtilities: "Terrasoft.NotesUtilities"
},

 

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