1) Добавила новое действие.
Требуется реализовать переход на другую страницу при нажатии на данное действие.
Не могли бы вы подсказать как это сделать?
2) Не могу найти какая страница отвечает стандартному действию "Права доступа"
2) Деталь "Права доступа" в разделе (если речь идет о 5.X) отображается в том случае, если объект раздела администрируется по записям.
Я очень извиняюсь, здесь как я понимаю редактируется карточка. При редактировании раздела надо поступать аналогично? Просто при изменении раздела открывается окно для написания javascript кода, а для карточки c#.
1. Как сделать по кнопке переход в другой раздел — описано здесь.
2. В линейке 5.Х код всех окнон: карточек, реестров, разделов написан на C#. На JS есть только отдельные вкрапления внутри C#. Пожалуйста, покажите скриншот, чтобы понять, что Вы хотите изменить.
Сабина, для добавления действия в раздел достаточно переопределить метод getSectionActions. Например, как это сделано в разделе «Контакты» (ContactSectionV2).
Сабина, для добавления действия в раздел достаточно переопределить метод getSectionActions. Например, как это сделано в разделе «Контакты» (ContactSectionV2).
Спасибо, но вопрос ведь не в добавлении, а в реализации перехода на другую страницу.
Или там что-то подобное реализовано?
Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).
Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).
this.methods.onSchedulerView = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.view(tag, recordId);
это оно?
Можно создать для одного раздела две разные страницы вида?(одна уже реализована в базовом)
"Исаева Сабина" написал:
Вильшанский Дмитрий пишет:
Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).
this.methods.onSchedulerView = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.view(tag, recordId);
это оно?
Можно создать для одного раздела две разные страницы вида?(одна уже реализована в базовом)
Вам нужен метод getSectionActions.
Конечно можно, у раздела может быть несколько страниц редактирования.
Посмотрите базовый функционал в разделе «Активности». Например, в разделе есть страницы с типом «Задача», «E-mail».
"Исаева Сабина" написал:
Вильшанский Дмитрий пишет:
Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).
this.methods.onSchedulerView = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.view(tag, recordId);
это оно?
Можно создать для одного раздела две разные страницы вида?(одна уже реализована в базовом)
Вам нужен метод getSectionActions.
Конечно можно, у раздела может быть несколько страниц редактирования.
Посмотрите базовый функционал в разделе «Активности». Например, в разделе есть страницы с типом «Задача», «E-mail».
this.methods.onSchedulerCopy = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.copy(tag, recordId);
};
this.methods.onSchedulerDelete = function() {
prepareEdit(this);
this.onDelete();
};
вот они они как я понимаю.
А как они связываются?
т.е как система понимает что вызывать при данной операции? (в каком месте эта привязка осуществляется? )
Страница определяется в результате вызова функции prepareEdit(this). Внутри этой функции происходит поиск карточки редактирования, соответствующей текущему модулю. Если страница найдена, она сохраняется в переменную tag, которая используется в вызове this.copy.
this.methods.onSchedulerView = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.view(tag, recordId);
};
this.methods.onSchedulerEdit = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.edit(tag, recordId);
};
this.methods.onSchedulerCopy = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.copy(tag, recordId);
};
Сабина, посмотрите, пожалуйста, реализацию функции prepareEdit. В ней происходит поиск карточек редактирования, соответствующих текущему разделу. Сами карточки регистрируются в системной таблице SysModuleEdit, но при старте системы информация о них сохраняется в отдельную коллекцию для каждого раздела. Сами разделы сохраняются в Terrasoft.configuration.ModuleStructure, а получить карточки редактирования, соответствующие модулю, можно следующим образом (пример для раздела "Активности"):
var pages = Terrasoft.configuration.ModuleStructure[Activity.name].pages;
Далее в зависимости от типа выбранной активности определяется соответствующая ей карточка редактирования.
Если карточка не зарегистрирована в SysModuleEdit, система не сможет получить к ней доступ.