| [118] | 1 | import org.codehaus.groovy.grails.plugins.springsecurity.Secured | 
|---|
 | 2 |  | 
|---|
| [122] | 3 | class PeriodController extends BaseAppAdminController { | 
|---|
| [118] | 4 |      | 
|---|
 | 5 |     def index = { redirect(action:list,params:params) } | 
|---|
 | 6 |  | 
|---|
 | 7 |     // the delete, save and update actions only accept POST requests | 
|---|
 | 8 |     static allowedMethods = [delete:'POST', save:'POST', update:'POST'] | 
|---|
 | 9 |  | 
|---|
 | 10 |     def list = { | 
|---|
 | 11 |         params.max = Math.min( params.max ? params.max.toInteger() : 10,  100) | 
|---|
| [122] | 12 |         [ periodInstanceList: Period.list( params ), periodInstanceTotal: Period.count() ] | 
|---|
| [118] | 13 |     } | 
|---|
 | 14 |  | 
|---|
 | 15 |     def show = { | 
|---|
| [122] | 16 |         def periodInstance = Period.get( params.id ) | 
|---|
| [118] | 17 |  | 
|---|
| [122] | 18 |         if(!periodInstance) { | 
|---|
 | 19 |             flash.message = "Period not found with id ${params.id}" | 
|---|
| [118] | 20 |             redirect(action:list) | 
|---|
 | 21 |         } | 
|---|
| [122] | 22 |         else { return [ periodInstance : periodInstance ] } | 
|---|
| [118] | 23 |     } | 
|---|
 | 24 |  | 
|---|
 | 25 |     def delete = { | 
|---|
| [122] | 26 |         def periodInstance = Period.get( params.id ) | 
|---|
 | 27 |         if(periodInstance) { | 
|---|
| [118] | 28 |             try { | 
|---|
| [122] | 29 |                 periodInstance.delete() | 
|---|
 | 30 |                 flash.message = "Period ${params.id} deleted" | 
|---|
| [118] | 31 |                 redirect(action:list) | 
|---|
 | 32 |             } | 
|---|
 | 33 |             catch(org.springframework.dao.DataIntegrityViolationException e) { | 
|---|
| [122] | 34 |                 flash.message = "Period ${params.id} could not be deleted" | 
|---|
| [118] | 35 |                 redirect(action:show,id:params.id) | 
|---|
 | 36 |             } | 
|---|
 | 37 |         } | 
|---|
 | 38 |         else { | 
|---|
| [122] | 39 |             flash.message = "Period not found with id ${params.id}" | 
|---|
| [118] | 40 |             redirect(action:list) | 
|---|
 | 41 |         } | 
|---|
 | 42 |     } | 
|---|
 | 43 |  | 
|---|
 | 44 |     def edit = { | 
|---|
| [122] | 45 |         def periodInstance = Period.get( params.id ) | 
|---|
| [118] | 46 |  | 
|---|
| [122] | 47 |         if(!periodInstance) { | 
|---|
 | 48 |             flash.message = "Period not found with id ${params.id}" | 
|---|
| [118] | 49 |             redirect(action:list) | 
|---|
 | 50 |         } | 
|---|
 | 51 |         else { | 
|---|
| [122] | 52 |             return [ periodInstance : periodInstance ] | 
|---|
| [118] | 53 |         } | 
|---|
 | 54 |     } | 
|---|
 | 55 |  | 
|---|
 | 56 |     def update = { | 
|---|
| [122] | 57 |         def periodInstance = Period.get( params.id ) | 
|---|
 | 58 |         if(periodInstance) { | 
|---|
| [118] | 59 |             if(params.version) { | 
|---|
 | 60 |                 def version = params.version.toLong() | 
|---|
| [122] | 61 |                 if(periodInstance.version > version) { | 
|---|
| [118] | 62 |                      | 
|---|
| [122] | 63 |                     periodInstance.errors.rejectValue("version", "period.optimistic.locking.failure", "Another user has updated this Period while you were editing.") | 
|---|
 | 64 |                     render(view:'edit',model:[periodInstance:periodInstance]) | 
|---|
| [118] | 65 |                     return | 
|---|
 | 66 |                 } | 
|---|
 | 67 |             } | 
|---|
| [122] | 68 |             periodInstance.properties = params | 
|---|
 | 69 |             if(!periodInstance.hasErrors() && periodInstance.save()) { | 
|---|
 | 70 |                 flash.message = "Period ${params.id} updated" | 
|---|
 | 71 |                 redirect(action:show,id:periodInstance.id) | 
|---|
| [118] | 72 |             } | 
|---|
 | 73 |             else { | 
|---|
| [122] | 74 |                 render(view:'edit',model:[periodInstance:periodInstance]) | 
|---|
| [118] | 75 |             } | 
|---|
 | 76 |         } | 
|---|
 | 77 |         else { | 
|---|
| [122] | 78 |             flash.message = "Period not found with id ${params.id}" | 
|---|
| [118] | 79 |             redirect(action:edit,id:params.id) | 
|---|
 | 80 |         } | 
|---|
 | 81 |     } | 
|---|
 | 82 |  | 
|---|
 | 83 |     def create = { | 
|---|
| [122] | 84 |         def periodInstance = new Period() | 
|---|
 | 85 |         periodInstance.properties = params | 
|---|
 | 86 |         return ['periodInstance':periodInstance] | 
|---|
| [118] | 87 |     } | 
|---|
 | 88 |  | 
|---|
 | 89 |     def save = { | 
|---|
| [122] | 90 |         def periodInstance = new Period(params) | 
|---|
 | 91 |         if(!periodInstance.hasErrors() && periodInstance.save()) { | 
|---|
 | 92 |             flash.message = "Period ${periodInstance.id} created" | 
|---|
 | 93 |             redirect(action:show,id:periodInstance.id) | 
|---|
| [118] | 94 |         } | 
|---|
 | 95 |         else { | 
|---|
| [122] | 96 |             render(view:'create',model:[periodInstance:periodInstance]) | 
|---|
| [118] | 97 |         } | 
|---|
 | 98 |     } | 
|---|
 | 99 | } | 
|---|