Добрый день.
Следуя инструкции на академии добавил действие на страницу карточки.
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 не срабатывает.
Подскажите, что еще нужно доделать, чтоб доступность действия изменялась при смене статуса.
Нравится
Решил проблему с помощью отправки сообщения в раздел и привязки доступности к атрибуту.