Вопрос
У меня проблема в загрузке изображений после добавления стандартного функционала Примечаний.
Примечания добавлены в деталь. Для детали создан собственный объект. Примечания добавляется в схему карточки детали следующим образом... текст сохраняется, изоражения даже не загружаются. Метод insertImagesToNotes не выполняется. Почему?
Ответ
У базовой детали от которой наследуются все остальные, нет необходимых атрибутов, методов и миксинов. В отличие от страниц которые наследуются от BaseModulePageV2.
Это можно исправить, посмотрев что реализовано в BaseModulePageV2 и воссоздать это у себя в схеме детали.
Для этого необходимо создать объект для детали, на основании Base object with notes (Base), создать мастером деталей деталь на основании этого объекта.
В конфигураторе, в схеме карточки детали добавить:
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. Поле для заметок в diff:
{
"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
}
Код тестовой схемы для страницы редактирования детали:
define("UsrUsrMyDetail1Page", ["NotesUtilities"], function() {
return {
entitySchemaName: "UsrMyDetail",
details: {},
attributes: {
"NotesImagesCollection": {dataValueType: Terrasoft.DataValueType.COLLECTION}
},
mixins: {
NotesUtilities: "Terrasoft.NotesUtilities"
},
diff: [{
"operation": "insert",
"name": "UsrIntbcb7788a-2890-4358-bff3-102e82ea7889",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 0,
"layoutName": "Header"
},
"labelConfig": {},
"enabled": true,
"bindTo": "UsrInt"
},
"parentName": "Header",
"propertyName": "items",
"index": 0
},
{
"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
}],
methods: {
onNotesImagesUploadComplete: function() {
this.hideBodyMask();
this.updateFileDetail();
},
onNotesImagesUpload: function() {
this.showBodyMask();
},
init: function(callback, scope) {
this.callParent(arguments);
this.mixins.NotesUtilities.initNotesImagesCollection.call(this);
}
},
rules: {}
};
});