Добрый день.
Следуя инструкции на академии добавил действие на страницу карточки.
getActions: function() {
var actionMenuItems = this.callParent(arguments);
actionMenuItems.addItem(this.getButtonMenuItem({
Type: "Terrasoft.MenuSeparator",
Caption: ""
}));
actionMenuItems.addItem(this.getButtonMenuItem({
"Caption": {bindTo: "Resources.Strings.SendTTForApprovalCaption"},
"Tag": "onSendTTForApprovalClick",
"Enabled": {bindTo: "isSendTTForApprovalEnabled"}
}));
return actionMenuItems;
},
isSendTTForApprovalEnabled: function() {
return !Ext.isEmpty(this.get("Status")) ?
this.get("Status").value === JSConstants.Change.Status.WritingTTId :
false;
}
Также добавил локализируемую строку и метод, на который биндится свойство enabled, на страницу раздела
isSendTTForApprovalEnabled: function(activeRowId) {
activeRowId = this.get("ActiveRow");
var gridData = this.get("GridData");
var selectedChange = gridData.get(activeRowId);
var status = selectedChange.get("Status");
return status.value === JSConstants.Change.Status.WritingTTId;
}
В итоге, при открытии карточки в обычном режиме доступность действия меняется в зависимости от статуса, а если статус менять в совмещенном режиме, то доступность не меняется. При чем, сам измененный статус верно отображается в вертикальном реестре. В отладчике посмотрел, что при смене статуса точка остановки в методе isSendTTForApprovalEnabled не срабатывает.
Подскажите, что еще нужно доделать, чтоб доступность действия изменялась при смене статуса.