001 /** 002 * Copyright 2005-2014 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package edu.sampleu.travel; 017 018 import org.kuali.rice.krad.web.controller.TransactionalDocumentControllerBase; 019 import org.kuali.rice.krad.web.form.DocumentFormBase; 020 import org.springframework.stereotype.Controller; 021 import org.springframework.validation.BindingResult; 022 import org.springframework.web.bind.annotation.ModelAttribute; 023 import org.springframework.web.bind.annotation.RequestMapping; 024 import org.springframework.web.servlet.ModelAndView; 025 026 import javax.servlet.http.HttpServletRequest; 027 import javax.servlet.http.HttpServletResponse; 028 029 /** 030 * @author Kuali Rice Team (rice.collab@kuali.org) 031 */ 032 @Controller 033 @RequestMapping(value = "/approval") 034 public class TravelAuthorizationController extends TransactionalDocumentControllerBase { 035 036 @Override 037 protected TravelAuthorizationForm createInitialForm(HttpServletRequest request) { 038 return new TravelAuthorizationForm(); 039 } 040 041 /** 042 * Showcase the dialog feature by confirming with the user that he really wants to route the document. 043 */ 044 @Override 045 public ModelAndView route(@ModelAttribute("KualiForm") DocumentFormBase form, BindingResult result, 046 HttpServletRequest request, HttpServletResponse response) { 047 048 String dialog = "TravelAuthorization-RouteConfirmationDialog"; 049 if (!hasDialogBeenAnswered(dialog, form)) { 050 return showDialog(dialog, form, request, response); 051 } 052 boolean dialogAnswer = getBooleanDialogResponse(dialog, form, request, response); 053 if (dialogAnswer) { 054 return super.route(form, result, request, response); 055 } else { 056 resetDialogStatus(dialog, form); 057 return getUIFModelAndView(form); 058 } 059 060 } 061 }