Технические вопросы
Разработка

Обработка события btnOKOnClick в карточке редактирования действия процесса

Здравствуйте!

Каким образом происходит вызов предупреждающего окошка о отсутствии шаблона в действии "Отправка E-mail"?

Обработчики событий для кнопок btnOK и btnCancel окна wnd_SendEmailActionEdit не назначены (как и в базовом окне - wnd_BaseEdit)
Каким образом можно добавить дополнительные проверки такого характера или убрать старые?

Нравится

4 комментария

Геннадий, вызов данного предупреждающего окна реализован в теле функции function CheckCanSave() сервиса wnd_SendEmailActionEditScript:
[javascript]
function CheckCanSave() {
if (!CheckRequiredControlCondition(edtTemplate, !!edtTemplate.Value,
edtTemplate.Caption)) {
return;
}
return true;
}
[/javascript]
Реализовать дополнительные проверки можно по аналогии:
[javascript]
function CheckCanSave() {
if (!CheckRequiredControlCondition(edtTemplate, !!edtTemplate.Value,
edtTemplate.Caption)) {
return;
}
if (!CheckRequiredControlCondition(edtDataset, !!edtDataset.Value,
edtDataset.Caption)) {
return;
}
return true;
}
[/javascript]

Спасибо, Наталья, помогло!
А в какой момент происходит вызов этого метода?

Вызов происходит при нажатии на кнопку 'btnOK'. Обработчик события 'OnClick' для кнопки создается динамически, в функции function PrepareWorkflowActionEditWindow(Window) сервиса scr_WorkflowActionUtils:
[javascript]
function PrepareWorkflowActionEditWindow(Window) {
......
var Control = Window.ComponentsByName('btnOK');
if (Control) {
SetObjectEventDispatcher(Window, Control, Control.InstanceID, 'OnClick',
'scr_WorkflowActionUtils.WFActionEditWindowOKButtonClick');
}
......
}
[/javascript]

Функция WFActionEditWindowOKButtonClick имеет вид:

[javascript]
function WFActionEditWindowOKButtonClick(Control) {
var Window = Control.ParentWindow;
Control.ModalResult = wmrNone;
if (!Window.ScriptControl.CodeObject.CheckCanSave()) {
return;
}

Window.ScriptControl.CodeObject.SaveParameters(Window.Attributes('Item'));
Window.Notify(Window, MSG_OK, null);
Control.ModalResult = wmrOK;
Window.Close();
}
[/javascript]

Большое спасибо, Наталия!

Показать все комментарии