Изменение кнопок в заданиях для определённых карточек
Изменение кнопок в заданиях для определённых карточек¶
Если требуется переименовать вариант завершения, например, “Согласовать” на “Документы получены” везде, т.е. для всех типов документов, в уведомлениях, в листе согласования и т.п., то достаточно изменить строку локализации, добавив её копию в библиотеку локализации с большим приоритетом.
Если же достаточно переименовать только кнопку завершения задания для некоторых карточек (но не для всех), то пишется расширение CardUIExtension, в котором добавляется обработчик ModifyWorkspace. Для заданий типа “Согласование” изменение названия кнопки для варианта завершения “Согласовать” выглядит следующим образом:
public override void Initialized(ICardUIExtensionContext context)
{
context.Model.ModifyTasks((task, model) =>
{
if (task.TaskModel.CardType.ID == DefaultTaskTypes.KrApproveTypeID)
{
task.ModifyWorkspace((t, subscribeToTaskModel) =>
{
ITaskAction approveAction = t.Workspace.Actions
.FirstOrDefault(x =>
x.CompletionOption != null
&& x.CompletionOption.ID == DefaultCompletionOptions.Approve);
if (approveAction != null)
{
// для действий с переходом на форму согласования надо добавить строку ">>"
approveAction.Caption = "Документы получены"
+ (approveAction.Type == TaskActionType.NavigateToForm ? ">>" : null);
}
});
}
});
}