Доброе утро, коллеги.
У меня возникла такая проблема. Мне на детали с редактируемым реестром нужно сделать запрет на сохранение при определенном условии. Но чтобы получить это условие необходимо делать esq запрос. Он не успевает выполниться, поэтому метод save срабатывает. Валидацию я пытаюсь сделать с помощью условия в методе save. Вызываю базовую реализацию только тогда, когда условие true. В ином случае пользователь получает сообщение. Подскажите, как поступать в такой ситуации. Можна реализовать на сервере, но как тогда вывести окошко с информацией. Буду очень признателен за помощь, поскольку данный кейс не первый раз вызывает проблемы. Желательно чтобы способ был универсален, без привязки к типу детали.
Нравится
Сделай все проще перехвати событие сохранение или добавление и вызови свой esq в него передай как callbak callParent и если валидация успешная вызывай callParent сохранения
Нужно перекрыть метод asyncValidate, пример ниже
asyncValidate: function(callback, scope) { this.callParent([function(response) { if (!this.validateResponse(response)) { return; } Terrasoft.chain( function(next) { this.validateAccountOrContactFilling(function(response) { if (this.validateResponse(response)) { next(); } }, this); }, function(next) { callback.call(scope, response); next(); }, this); }, this]); }, validateAccountOrContactFilling: function(callback, scope) { var account = this.get("Account"); var contact = this.get("Contact"); var result = { success: true }; if (this.Ext.isEmpty(account) && this.Ext.isEmpty(contact)) { result.message = this.get("Resources.Strings.RequiredContactOrAccountMessage"); result.success = false; } callback.call(scope || this, result); }
Григорий Чех,
А если условие валидации не такое простое, а там esq запрос, как мне реализовать данный пример
Сделай все проще перехвати событие сохранение или добавление и вызови свой esq в него передай как callbak callParent и если валидация успешная вызывай callParent сохранения
Григорий Чех,
Событие сохранения, вы имеете ввиду onSaved?
Это зависит от типа детали Для детали с реестром addRecord
Григорий Чех,
А где это можно посмотреть, чтобы знать на будущее?
Смотреть от кого наследуешь деталь (базового предка) или дальше вверх по иерархии и там смотришь как выполняется сохранение. Можно заглянуть в документацию на академии там далеко не все хоть она и активно дорабатывается