Здравствуйте! У меня проблема в загрузке изображений после добавления стандартного функционала Примечаний.
Примечания добавлены в деталь. Для детали создан собственный объект. Примечания добавляется в схему карточки детали следующим образом... текст сохраняется, изоражения даже не загружаются. ставил точку останова на методе 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
}
Нравится
Посмотрите в соседнюю тему:
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" },