/* * Copyright 2012 Kazumune Katagiri. (http://d.hatena.ne.jp/nemuzuka) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package jp.co.nemuzuka.controller.project.management.ajax; import java.text.SimpleDateFormat; import java.util.Date; import jp.co.nemuzuka.core.annotation.ActionForm; import jp.co.nemuzuka.core.annotation.ProjectAdmin; import jp.co.nemuzuka.core.annotation.ProjectMember; import jp.co.nemuzuka.core.annotation.TokenCheck; import jp.co.nemuzuka.core.annotation.Validation; import jp.co.nemuzuka.core.controller.JsonController; import jp.co.nemuzuka.core.entity.JsonResult; import jp.co.nemuzuka.form.MilestoneForm; import jp.co.nemuzuka.service.MilestoneService; import jp.co.nemuzuka.service.TicketMstService; import jp.co.nemuzuka.service.impl.MilestoneServiceImpl; import jp.co.nemuzuka.service.impl.TicketMstServiceImpl; import jp.co.nemuzuka.utils.ConvertUtils; import jp.co.nemuzuka.utils.DateTimeUtils; import org.slim3.controller.validator.Validators; import org.slim3.util.ApplicationMessage; /** * マイルストーン登録・更新Controller. * @author kazumune */ public class MilestoneExecuteController extends JsonController { /** ActionForm. */ @ActionForm protected MilestoneForm form; protected MilestoneService milestoneService = MilestoneServiceImpl.getInstance(); protected TicketMstService ticketMstService = TicketMstServiceImpl.getInstance(); /* (非 Javadoc) * @see jp.co.nemuzuka.core.controller.JsonController#execute() */ @Override @TokenCheck @ProjectAdmin @ProjectMember @Validation(method="validate", input="jsonError") protected Object execute() throws Exception { JsonResult errorResult = validator(); if(errorResult != null) { return errorResult; } //登録・更新する milestoneService.put(form, getUserInfo().selectedProject); ticketMstService.initRefreshStartTime(getUserInfo().selectedProject); JsonResult result = new JsonResult(); result.getInfoMsg().add(ApplicationMessage.get("info.success")); return result; } /** * 相関チェック. * @return エラーが存在する場合、JsonResultのインスタンス。エラーが存在しない場合、null */ private JsonResult validator() { SimpleDateFormat sdf = DateTimeUtils.createSdf("yyyyMMdd"); Date startDate = ConvertUtils.toDate(form.startDate, sdf); Date endDate = ConvertUtils.toDate(form.endDate, sdf); if(startDate != null && endDate != null) { long startTime = startDate.getTime(); long endTime = endDate.getTime(); if(startTime > endTime) { return createErrorMsg("validator.check.between", "終了日","開始日","日付"); } } return null; } /** * validate設定. * @return validate */ protected Validators validate() { Validators v = new Validators(request); v.add("milestoneName", v.required(), v.maxlength(128)); v.add("startDate", v.dateType("yyyyMMdd")); v.add("endDate", v.dateType("yyyyMMdd")); return v; } }