001/** 002 * Copyright 2005-2018 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 */ 016package org.kuali.rice.krad.document; 017 018import org.kuali.rice.krad.rules.rule.event.SaveDocumentEvent; 019import org.kuali.rice.krad.web.controller.UifControllerBase; 020import org.kuali.rice.krad.web.form.DocumentFormBase; 021import org.kuali.rice.krad.web.form.UifFormBase; 022import org.kuali.rice.krad.web.service.ControllerService; 023import org.springframework.beans.factory.annotation.Autowired; 024import org.springframework.beans.factory.annotation.Qualifier; 025import org.springframework.web.bind.annotation.RequestMapping; 026import org.springframework.web.bind.annotation.RequestMethod; 027import org.springframework.web.servlet.ModelAndView; 028 029import javax.servlet.http.HttpServletResponse; 030 031/** 032 * Base controller class for all KRAD document view screens working with document models. 033 * 034 * <p>Provides default controller implementations for the standard document actions including: doc handler 035 * (retrieve from doc search and action list), save, route (and other KEW actions)</p> 036 * 037 * @author Kuali Rice Team (rice.collab@kuali.org) 038 */ 039public abstract class DocumentControllerBase extends UifControllerBase { 040 041 /** 042 * {@inheritDoc} 043 */ 044 @Override 045 protected abstract DocumentFormBase createInitialForm(); 046 047 /** 048 * @see DocumentControllerService#docHandler(org.kuali.rice.krad.web.form.DocumentFormBase) 049 */ 050 @RequestMapping(params = "methodToCall=docHandler") 051 public ModelAndView docHandler(DocumentFormBase form) throws Exception { 052 return getControllerService().docHandler(form); 053 } 054 055 /** 056 * @see DocumentControllerService#reload(org.kuali.rice.krad.web.form.DocumentFormBase) 057 */ 058 @RequestMapping(params = "methodToCall=reload") 059 public ModelAndView reload(DocumentFormBase form) throws Exception { 060 return getControllerService().reload(form); 061 } 062 063 /** 064 * @see DocumentControllerService#recall(org.kuali.rice.krad.web.form.DocumentFormBase) 065 */ 066 @RequestMapping(params = "methodToCall=recall") 067 public ModelAndView recall(DocumentFormBase form) { 068 return getControllerService().recall(form); 069 } 070 071 /** 072 * @see DocumentControllerService#save(org.kuali.rice.krad.web.form.DocumentFormBase) 073 */ 074 @Override 075 @RequestMapping(params = "methodToCall=save") 076 public ModelAndView save(UifFormBase form) { 077 return getControllerService().save((DocumentFormBase) form); 078 } 079 080 /** 081 * @see DocumentControllerService#save(org.kuali.rice.krad.web.form.DocumentFormBase, 082 * org.kuali.rice.krad.rules.rule.event.SaveDocumentEvent) 083 */ 084 protected ModelAndView save(DocumentFormBase form, SaveDocumentEvent saveDocumentEvent) { 085 return getControllerService().save(form, saveDocumentEvent); 086 } 087 088 /** 089 * @see DocumentControllerService#complete(org.kuali.rice.krad.web.form.DocumentFormBase) 090 */ 091 @RequestMapping(params = "methodToCall=complete") 092 public ModelAndView complete(DocumentFormBase form) { 093 return getControllerService().complete(form); 094 } 095 096 /** 097 * @see DocumentControllerService#route(org.kuali.rice.krad.web.form.DocumentFormBase) 098 */ 099 @RequestMapping(params = "methodToCall=route") 100 public ModelAndView route(DocumentFormBase form) { 101 return getControllerService().route(form); 102 } 103 104 /** 105 * @see DocumentControllerService#blanketApprove(org.kuali.rice.krad.web.form.DocumentFormBase) 106 */ 107 @RequestMapping(params = "methodToCall=blanketApprove") 108 public ModelAndView blanketApprove(DocumentFormBase form) { 109 return getControllerService().blanketApprove(form); 110 } 111 112 /** 113 * @see DocumentControllerService#approve(org.kuali.rice.krad.web.form.DocumentFormBase) 114 */ 115 @RequestMapping(params = "methodToCall=approve") 116 public ModelAndView approve(DocumentFormBase form) { 117 return getControllerService().approve(form); 118 } 119 120 /** 121 * @see DocumentControllerService#disapprove(org.kuali.rice.krad.web.form.DocumentFormBase) 122 */ 123 @RequestMapping(params = "methodToCall=disapprove") 124 public ModelAndView disapprove(DocumentFormBase form) { 125 return getControllerService().disapprove(form); 126 } 127 128 /** 129 * @see DocumentControllerService#fyi(org.kuali.rice.krad.web.form.DocumentFormBase) 130 */ 131 @RequestMapping(params = "methodToCall=fyi") 132 public ModelAndView fyi(DocumentFormBase form) { 133 return getControllerService().fyi(form); 134 } 135 136 /** 137 * @see DocumentControllerService#acknowledge(org.kuali.rice.krad.web.form.DocumentFormBase) 138 */ 139 @RequestMapping(params = "methodToCall=acknowledge") 140 public ModelAndView acknowledge(DocumentFormBase form) { 141 return getControllerService().acknowledge(form); 142 } 143 144 /** 145 * @see DocumentControllerService#sendAdHocRequests(org.kuali.rice.krad.web.form.DocumentFormBase) 146 */ 147 @RequestMapping(params = "methodToCall=sendAdHocRequests") 148 public ModelAndView sendAdHocRequests(DocumentFormBase form) { 149 return getControllerService().sendAdHocRequests(form); 150 } 151 152 /** 153 * @see DocumentControllerService#supervisorFunctions(org.kuali.rice.krad.web.form.DocumentFormBase) 154 */ 155 @RequestMapping(params = "methodToCall=supervisorFunctions") 156 public ModelAndView supervisorFunctions(DocumentFormBase form) { 157 return getControllerService().supervisorFunctions(form); 158 } 159 160 /** 161 * {@inheritDoc} 162 * 163 * @see DocumentControllerService#close(org.kuali.rice.krad.web.form.DocumentFormBase) 164 */ 165 @RequestMapping(params = "methodToCall=close") 166 public ModelAndView close(DocumentFormBase form) { 167 return getControllerService().close(form); 168 } 169 170 /** 171 * @see DocumentControllerService#insertNote(org.kuali.rice.krad.web.form.DocumentFormBase) 172 */ 173 @RequestMapping(method = RequestMethod.POST, params = "methodToCall=insertNote") 174 public ModelAndView insertNote(DocumentFormBase form) { 175 return getControllerService().insertNote(form); 176 } 177 178 /** 179 * @see DocumentControllerService#deleteNote(org.kuali.rice.krad.web.form.DocumentFormBase) 180 */ 181 @RequestMapping(method = RequestMethod.POST, params = "methodToCall=deleteNote") 182 public ModelAndView deleteNote(DocumentFormBase form) { 183 return getControllerService().deleteNote(form); 184 } 185 186 /** 187 * {@inheritDoc} 188 * 189 * @see DocumentControllerService#superUserTakeActions(org.kuali.rice.krad.web.form.DocumentFormBase) 190 */ 191 @RequestMapping(params = "methodToCall=superUserTakeActions") 192 public ModelAndView superUserTakeActions(DocumentFormBase form) { 193 return getControllerService().superUserTakeActions(form); 194 } 195 196 /** 197 * {@inheritDoc} 198 * 199 * @see DocumentControllerService#superUserApprove(org.kuali.rice.krad.web.form.DocumentFormBase) 200 */ 201 @RequestMapping(params = "methodToCall=superUserApprove") 202 public ModelAndView superUserApprove(DocumentFormBase form) { 203 return getControllerService().superUserApprove(form); 204 } 205 206 /** 207 * {@inheritDoc} 208 * 209 * @see DocumentControllerService#superUserDisapprove(org.kuali.rice.krad.web.form.DocumentFormBase) 210 */ 211 @RequestMapping(params = "methodToCall=superUserDisapprove") 212 public ModelAndView superUserDisapprove(DocumentFormBase form) { 213 return getControllerService().superUserDisapprove(form); 214 } 215 216 /** 217 * @see DocumentControllerService#downloadAttachment(org.kuali.rice.krad.web.form.DocumentFormBase, 218 * javax.servlet.http.HttpServletResponse) 219 */ 220 @RequestMapping(method = RequestMethod.POST, params = "methodToCall=downloadAttachment") 221 public ModelAndView downloadAttachment(DocumentFormBase form, HttpServletResponse response) { 222 return getControllerService().downloadAttachment(form, response); 223 } 224 225 /** 226 * @see DocumentControllerService#cancelAttachment(org.kuali.rice.krad.web.form.DocumentFormBase) 227 */ 228 @RequestMapping(method = RequestMethod.POST, params = "methodToCall=cancelAttachment") 229 public ModelAndView cancelAttachment(DocumentFormBase form) { 230 return getControllerService().cancelAttachment(form); 231 } 232 233 @Override 234 protected DocumentControllerService getControllerService() { 235 return (DocumentControllerService) super.getControllerService(); 236 } 237 238 @Override 239 @Autowired 240 @Qualifier("documentControllerService") 241 public void setControllerService(ControllerService controllerService) { 242 super.setControllerService(controllerService); 243 } 244 245}