Как проверить данные перед сохранением задачи (Before Task Edit Trigger)
Чтобы проверять данные перед сохранением существующей задачи, нужно подключить к ее процессу триггер Before Edit Task.
Он должен соответствовать интерфейсу com.trackstudio.external.TaskTrigger и располагаться в папке
./etc/plugins/scripts/before_edit_task/
Ниже пример триггера, который проверяет, указан ли для задачи правильный deadline. Для того, чтобы указать пользователю на ошибку и не сохранять задачу, мы выбрасываем в триггере UserException. При этом пользователь возвращается на страницу редактирования задачи. Данные остаются введенными.
package scripts.before_edit_task;
import com.trackstudio.exception.GranException;
import com.trackstudio.exception.UserException;
import com.trackstudio.external.TaskTrigger;
import com.trackstudio.secured.SecuredTaskTriggerBean;
import java.util.Calendar;
public class CheckDeadline implements TaskTrigger {
public SecuredTaskTriggerBean execute(SecuredTaskTriggerBean securedTaskTriggerBean) throws GranException {
Calendar deadline = securedTaskTriggerBean.getDeadline();
Calendar now = Calendar.getInstance();
if (deadline == null || deadline.before(now)) throw new UserException("Укажите срок выполнения задачи");
return securedTaskTriggerBean;
}
}
С помощью триггеров Before Edit Task обычно выполняются действия, которые необходимо совершить до сохранения задачи, так, чтобы если эти действия завершились неуспешно, пользователь вернулся бы на страницу ввода и мог повторить действия.