Подскажите как динамически делать пункт меню в "Действие" карточки в совмещенном режиме.
В обычном режиме все работает нормально.
attributes: {
"IsCanVisaStatus": {
dataValueType: Terrasoft.DataValueType.BOOLEAN,
value: true, // Значение по умолчанию которое передаеться при загрузке страницы на нашу кнопку
dependencies: [{
columns: ["KtState"], // Отслеживаем изменение поля состояния
methodName: "setCanVisaStatusContract" // и запускаем нашу функция если состояние изменчется
}]
}
},
methods: {
onEntityInitialized: function() {
this.callParent(arguments);
this.setCanVisaStatusContract(); // Запускаем функцию при входе на страницу когда поля уже заполненны
},
getActions: function() {
var actionMenuItems = this.callParent(arguments);
actionMenuItems.addItem(this.getButtonMenuItem({
Type: "Terrasoft.MenuSeparator",
Caption: ""
}));
actionMenuItems.addItem(this.getButtonMenuItem({
"Caption": VisaHelper.resources.localizableStrings.SendToVisaCaption,
"Tag": VisaHelper.SendToVisaMenuItem.methodName,
"Enabled": {"bindTo": "IsCanVisaStatus"} // мониторим через привязку состояние значения атрибута
}));
return actionMenuItems;
},
setCanVisaStatusContract: function(){
var stateId = this.get("KtState").value; // Текущая стадия
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { // Запрос к базе данных о том нужна ли кнопка отправки на визирования
rootSchemaName: "KtContractKarTelState"
});
esq.addColumn("KtCanVisa", "KtCanVisa"); // Сама колонка указывающая что нужна кнопка
esq.getEntity(stateId, function(result) {
if (result.success) {
if (result.entity.get("KtCanVisa") && this.canEntityBeOperated()) { // this.canEntityBeOperated() - стандартный класс отвечает за то что если карточка на в режиме редактирования то false.
this.set("IsCanVisaStatus", true);
} else { // Присваивает атрибуту значение true или false в зависимости от результата запроса
this.set("IsCanVisaStatus", false);
}
}
}, this);
}
}
В отоге весь код работает хорошо но только в обычном режиме карточки, а совмещенном кнопка не видет атрибут хоть по девагу все запускается так же и значения поля в атрибуте меняется по кнопка просто его не видит. Пробовал атрибут вписать в Section - не помогло, атрибут видит кнопка но изменить его не получается.