diff --git a/src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java b/src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java index d90225d54..4cd6caea0 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java @@ -32,6 +32,7 @@ import org.lastaflute.web.callback.ActionRuntime; import org.lastaflute.web.response.HtmlResponse; import org.lastaflute.web.response.render.RenderData; import org.lastaflute.web.token.TxToken; +import org.lastaflute.web.util.LaRequestUtil; import org.lastaflute.web.validation.VaErrorHook; /** @@ -52,8 +53,6 @@ public class AdminScheduledjobAction extends FessAdminAction { @Resource protected JobHelper jobHelper; - private boolean running = false; - // =================================================================================== // Hook // ====== @@ -208,12 +207,13 @@ public class AdminScheduledjobAction extends FessAdminAction { scheduledJobService.getScheduledJob(id).ifPresent(entity -> { loadScheduledJob(form, entity); form.crudMode = crudMode; + LaRequestUtil.getOptionalRequest().ifPresent(request -> { + request.setAttribute("running", entity.isRunning()); + }); }).orElse(() -> { throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), toEditHtml()); }); }); - }).renderWith(data -> { - data.register("running", running); }); } @@ -221,18 +221,14 @@ public class AdminScheduledjobAction extends FessAdminAction { public HtmlResponse confirmfromcreate(final CreateForm form) { validate(form, messages -> {}, toEditHtml()); form.crudMode = CrudMode.CREATE; - return asHtml(path_AdminScheduledjob_ConfirmJsp).renderWith(data -> { - data.register("running", running); - }); + return asHtml(path_AdminScheduledjob_ConfirmJsp); } @Execute(token = TxToken.VALIDATE_KEEP) public HtmlResponse confirmfromupdate(final EditForm form) { validate(form, messages -> {}, toEditHtml()); form.crudMode = CrudMode.EDIT; - return asHtml(path_AdminScheduledjob_ConfirmJsp).renderWith(data -> { - data.register("running", running); - }); + return asHtml(path_AdminScheduledjob_ConfirmJsp); } // ----------------------------------------------------- @@ -282,6 +278,8 @@ public class AdminScheduledjobAction extends FessAdminAction { @Execute public HtmlResponse start(final EditForm form) { + verifyCrudMode(form.crudMode, CrudMode.CONFIRM); + validate(form, messages -> {}, toEditHtml()); final String id = form.id; scheduledJobService.getScheduledJob(id).ifPresent(entity -> { try { @@ -293,14 +291,17 @@ public class AdminScheduledjobAction extends FessAdminAction { }, toEditHtml()); } }).orElse(() -> { - // TODO - }); + throwValidationError(messages -> { + messages.addErrorsFailedToStartJob(GLOBAL, id); + }, toEditHtml()); + }); return redirect(getClass()); } @Execute public HtmlResponse stop(final EditForm form) { verifyCrudMode(form.crudMode, CrudMode.CONFIRM); + validate(form, messages -> {}, toEditHtml()); final String id = form.id; scheduledJobService.getScheduledJob(id).ifPresent(entity -> { try { @@ -313,8 +314,10 @@ public class AdminScheduledjobAction extends FessAdminAction { }, toEditHtml()); } }).orElse(() -> { - // TODO - }); + throwValidationError(messages -> { + messages.addErrorsFailedToStartJob(GLOBAL, id); + }, toEditHtml()); + }); return redirect(getClass()); }