Procházet zdrojové kódy

fix #598 add job status check

Shinsuke Sugaya před 9 roky
rodič
revize
fd2e05a3a6

+ 6 - 0
src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java

@@ -184,6 +184,7 @@ public class AdminSchedulerAction extends FessAdminAction {
                     form.crudMode = crudMode;
                     LaRequestUtil.getOptionalRequest().ifPresent(request -> {
                         request.setAttribute("running", entity.isRunning());
+                        request.setAttribute("enabled", entity.isEnabled());
                     });
                 }).orElse(() -> {
                     throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), () -> asListHtml());
@@ -266,6 +267,11 @@ public class AdminSchedulerAction extends FessAdminAction {
         validate(form, messages -> {}, () -> asDetailsHtml(id));
         verifyToken(() -> asDetailsHtml(id));
         scheduledJobService.getScheduledJob(id).ifPresent(entity -> {
+            if(!entity.isEnabled()||entity.isRunning()){
+                throwValidationError(messages -> {
+                    messages.addErrorsFailedToStartJob(GLOBAL, entity.getName());
+                }, () -> asDetailsHtml(id));
+            }
             try {
                 entity.start();
                 saveInfo(messages -> messages.addSuccessJobStarted(GLOBAL, entity.getName()));

+ 1 - 1
src/main/webapp/WEB-INF/view/admin/scheduler/admin_scheduler_details.jsp

@@ -163,7 +163,7 @@
 											<la:message key="labels.scheduledjob_button_stop" />
 										</button>
 									</c:if>
-									<c:if test="${!running}">
+									<c:if test="${!running && enabled}">
 										<button type="submit" class="btn btn-success" name="start"
 											value="<la:message key="labels.scheduledjob_button_start" />">
 											<i class="fa fa-play-circle"></i>