source: trunk/grails-app/controllers/InventoryLocationDetailedController.groovy @ 387

Last change on this file since 387 was 377, checked in by gav, 15 years ago

Svn move InventoryLocation and InventoryStore controllers and views to detailed and complete detailing.

File size: 4.5 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3@Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_InventoryManager'])
4class InventoryLocationDetailedController extends BaseController {
5
6    // the delete, save and update actions only accept POST requests
7    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
8
9    @Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_InventoryManager', 'ROLE_InventoryUser'])
10    def index = { redirect(action:list,params:params) }
11
12    @Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_InventoryManager', 'ROLE_InventoryUser'])
13    def list = {
14        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
15        [ inventoryLocationInstanceList: InventoryLocation.list( params ), inventoryLocationInstanceTotal: InventoryLocation.count() ]
16    }
17
18    @Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_InventoryManager', 'ROLE_InventoryUser'])
19    def show = {
20
21        // In the case of an actionSubmit button, rewrite action name from 'index'.
22        if(params._action_Show)
23            params.action='show'
24
25        def inventoryLocationInstance = InventoryLocation.get( params.id )
26
27        if(!inventoryLocationInstance) {
28            flash.message = "InventoryLocation not found with id ${params.id}"
29            redirect(action:list)
30        }
31        else { return [ inventoryLocationInstance : inventoryLocationInstance ] }
32    }
33
34    def delete = {
35        def inventoryLocationInstance = InventoryLocation.get( params.id )
36        if(inventoryLocationInstance) {
37            try {
38                inventoryLocationInstance.delete(flush:true)
39                flash.message = "InventoryLocation ${params.id} deleted"
40                redirect(action:list)
41            }
42            catch(org.springframework.dao.DataIntegrityViolationException e) {
43                flash.message = "InventoryLocation ${params.id} could not be deleted"
44                redirect(action:show,id:params.id)
45            }
46        }
47        else {
48            flash.message = "InventoryLocation not found with id ${params.id}"
49            redirect(action:list)
50        }
51    }
52
53    def edit = {
54
55        // In the case of an actionSubmit button, rewrite action name from 'index'.
56        if(params._action_Edit)
57            params.action='edit'
58
59        def inventoryLocationInstance = InventoryLocation.get( params.id )
60
61        if(!inventoryLocationInstance) {
62            flash.message = "InventoryLocation not found with id ${params.id}"
63            redirect(action:list)
64        }
65        else {
66            return [ inventoryLocationInstance : inventoryLocationInstance ]
67        }
68    }
69
70    def update = {
71        def inventoryLocationInstance = InventoryLocation.get( params.id )
72        if(inventoryLocationInstance) {
73            if(params.version) {
74                def version = params.version.toLong()
75                if(inventoryLocationInstance.version > version) {
76                   
77                    inventoryLocationInstance.errors.rejectValue("version", "inventoryLocation.optimistic.locking.failure", "Another user has updated this InventoryLocation while you were editing.")
78                    render(view:'edit',model:[inventoryLocationInstance:inventoryLocationInstance])
79                    return
80                }
81            }
82            inventoryLocationInstance.properties = params
83            if(!inventoryLocationInstance.hasErrors() && inventoryLocationInstance.save(flush: true)) {
84                flash.message = "InventoryLocation ${params.id} updated"
85                redirect(action:show,id:inventoryLocationInstance.id)
86            }
87            else {
88                render(view:'edit',model:[inventoryLocationInstance:inventoryLocationInstance])
89            }
90        }
91        else {
92            flash.message = "InventoryLocation not found with id ${params.id}"
93            redirect(action:list)
94        }
95    }
96
97    def create = {
98        def inventoryLocationInstance = new InventoryLocation()
99        inventoryLocationInstance.properties = params
100        return ['inventoryLocationInstance':inventoryLocationInstance]
101    }
102
103    def save = {
104        def inventoryLocationInstance = new InventoryLocation(params)
105        if(!inventoryLocationInstance.hasErrors() && inventoryLocationInstance.save(flush: true)) {
106            flash.message = "InventoryLocation ${inventoryLocationInstance.id} created"
107            redirect(action:show,id:inventoryLocationInstance.id)
108        }
109        else {
110            render(view:'create',model:[inventoryLocationInstance:inventoryLocationInstance])
111        }
112    }
113}
Note: See TracBrowser for help on using the repository browser.