Добавление детали [Файлы и ссылки] в раздел мобильного приложения
Glossary Item Box
Общие сведения
Деталь [Файлы и ссылки] ([Attachments]) предназначена для хранения файлов и ссылок на web-ресурсы, которые связаны с записью раздела. Деталь доступна во всех разделах bpm'online (см. "Файлы и примечания") и в разделе [Продажи] ([Opportunities]) мобильного приложения.
Деталь [Файлы и ссылки] ([Attachments]) в мобильном приложении реализуется на базе встроенной детали. Встроенная деталь предназначена для удобства редактирования данных, поскольку нет необходимости в переходе на отдельную страницу.
Чтобы добавить деталь на страницу записи раздела мобильного приложения, необходимо выполнить следующие шаги:
1. Создать схему настройки раздела, в которой определить встроенную деталь на основе объекта для детали [Файлы и ссылки] ([Attachments]) раздела.
2. Создать схемы страниц просмотра и редактирования записи раздела мобильного приложения.
3. Добавить информацию о новых схемах в манифест мобильного приложения.
Описание кейса
На страницу редактирования записи раздела [Контакты] ([Contacts]) мобильного приложения добавить деталь [Файлы и ссылки].
Алгоритм выполнения кейса
1. Создать схему настройки раздела, в которой определить встроенную деталь
Для этого необходимо в разделе [Конфигурация] (Configuration) в пользовательском пакете создать новую схему модуля со следующими значениями свойств:
- [Заголовок] ([Title]) — "UsrMobileContactModuleConfig".
- [Название] ([Name]) — "UsrMobileContactModuleConfig".
- [Пакет] ([Package]) — название пользовательского пакета, в котором ведется разработка.
В созданную схему нужно добавить три локализуемые строки (рис. 1), свойства которых приведены в таблице 1.
Рис. 1. — Добавление локализуемой строки в дизайнере схемы модуля
Табл. 1. — Свойства локализуемых строкЛокализуемая строка | Значение | Описание |
---|---|---|
ContactRecordPage_contactFilesDetail_Title | Файлы и ссылки (Attachments) | Заголовок детали. |
ContactRecordPage_contactFilesDetail_Data | Файл (File) | Заголовок поля для файла. |
ContactRecordPage_contactFilesDetail_Link | Ссылка (Link) | Заголовок поля для ссылки. |
На вкладку [Исходный код] ([Source Code]) схемы в дизайнере модуля необходимо добавить следующий исходный код:
// Добавление встроенной детали. Terrasoft.sdk.RecordPage.addEmbeddedDetail("Contact", { name: "contactFilesDetail", position: 5, title: "ContactRecordPage_contactFilesDetail_Title", modelName: "ContactFile", primaryKey: "Id", foreignKey: "Contact", displaySeparator: false }, // Массив конфигурационных объектов колонок детали. [ { name: "Data", displayColumn: "Name", label: "ContactRecordPage_contactFilesDetail_Data", placeHolder: "ContactRecordPage_contactFilesDetail_Data" }, { name: "Type", hidden: true }, { name: "Name", label: "ContactRecordPage_contactFilesDetail_Link", placeHolder: "ContactRecordPage_contactFilesDetail_Link", viewType: Terrasoft.ViewTypes.Url } ]);
После внесения изменений схему необходимо сохранить.
Здесь выполняется вызов метода addEmbeddedDetail(), которому в качестве аргументов передаются:
- Название основного объекта раздела, в который будет добавлена деталь.
- Конфигурационный объект свойств детали.
- Массив конфигурационных объектов свойств колонок детали.
2. Создать схемы страниц просмотра и редактирования записи
Страница записи раздела в мобильном приложении может отображаться в двух режимах — в режиме просмотра и в режиме редактирования. Чтобы деталь корректно отображалась в обоих режимах, необходимо добавить соответствующие контроллеры и представления.
Для корректного отображения детали в режиме просмотра необходимо в пользовательский пакет добавить новую схему модуля со следующими значениями свойств:
- [Заголовок] ([Title]) — "UsrMobileContactPreviewPage".
- [Название] ([Name]) — "UsrMobileContactPreviewPage".
- [Пакет] ([Package]) — название пользовательского пакета, в котором ведется разработка.
На вкладку [Исходный код] ([Source Code]) схемы в дизайнере модуля необходимо добавить следующий исходный код:
// Запоминание просмотренных страниц и разделов. Terrasoft.LastLoadedPageData = { controllerName: "ContactPreviewPage.Controller", viewXType: "contactpreviewpageview" }; // Представление детали в режиме просмотра. Ext.define("ContactPreviewPage.View", { extend: "Terrasoft.view.BasePreviewPage", xtype: "contactpreviewpageview", config: { id: "ContactPreviewPage" } }); // Контроллер детали в режиме просмотра. Ext.define("ContactPreviewPage.Controller", { extend: "FileAndLinksPreviewPage.Controller", statics: { Model: Contact }, config: { refs: { view: "#ContactPreviewPage" } }, fileModel: "ContactFile" });
После внесения изменений схему необходимо сохранить.
Для корректного отображения детали в режиме редактирования необходимо в пользовательский пакет добавить новую схему модуля со следующими значениями свойств:
- [Заголовок] ([Title]) — "UsrMobileContactEditPage".
- [Название] ([Name]) — "UsrMobileContactEditPage".
- [Пакет] ([Package]) — название пользовательского пакета, в котором ведется разработка.
На вкладку [Исходный код] ([Source Code]) схемы в дизайнере модуля необходимо добавить следующий исходный код:
// Запоминание просмотренных страниц и разделов. Terrasoft.LastLoadedPageData = { controllerName: "ContactEditPage.Controller", viewXType: "contacteditpageview" }; // Представление детали в режиме редактирования. Ext.define("ContactEditPage.View", { extend: "Terrasoft.view.BaseEditPage", xtype: "contacteditpageview", config: { id: "ContactEditPage" } }); // Контроллер детали в режиме редактирования. Ext.define("ContactEditPage.Controller", { extend: "FileAndLinksEditPage.Controller", statics: { Model: Contact }, config: { refs: { view: "#ContactEditPage" } }, fileModel: "ContactFile" }, function() { this.addDefaultBusinessRules(); });
После внесения изменений схему необходимо сохранить.
3. Добавить информацию о новых схемах в манифест мобильного приложения
Чтобы внесенные изменения были применены, необходимо добавить информацию о них в манифест мобильного приложения. Для этого необходимо в пользовательском пакете создать расширяющую схему MobileApplicationManifestDefaultWorkplace. Подробнее о манифесте можно узнать из статьи "Манифест мобильного приложения". Как создать замещающую схему, подробно описано в статье "Создание клиентской схемы".
В дизайнере модуля на вкладку [Исходный код] ([Source Code]) расширяющей схемы MobileApplicationManifestDefaultWorkplace необходимо добавить следующий исходный код:
{ "SyncOptions": { "SysSettingsImportConfig": [], // Настройка импорта необходимых моделей. "ModelDataImportConfig": [ // Тип файла. { "Name": "FileType", "SyncColumns": [] }, // Объект детали [Файлы и ссылки] раздела [Контакты]. { "Name": "ContactFile", "SyncByParentObjectWithRights": "Contact", "SyncColumns": [ "Contact", "Type", "Data", "Size" ] } ] }, // Используемые модели. "Models": { "Contact": { // Конфигурирование режима просмотра. "Preview": "UsrMobileContactPreviewPage", // Конфигурирование режима редактирования. "Edit": "UsrMobileContactEditPage", "RequiredModels": [ "ContactFile", "FileType" ], // Конфигурирование раздела. "ModelExtensions": [ "UsrMobileContactModuleConfig" ] } } }
После внесения изменений схему нужно сохранить.
В результате выполнения кейса на странице редактирования записи раздела [Контакты] ([Contacts]) мобильного приложения появится [Файлы и ссылки] ([Attachments]) (рис. 2).
Рис. 2. — Деталь [Файлы и ссылки] ([Attachments]) на странице редактирования контакта