source: trunk/grails-app/controllers/MaintenanceActionDetailedController.groovy @ 127

Last change on this file since 127 was 124, checked in by gav, 16 years ago

Detail controller and views for Asset, AssetExtendedAttribute?, PlannedMaintenance?, MaintenanceAction?, RecurringSchedule?, SystemSection?.
Some minor work on Task controller and views.
Change PlannedMaintenance? relationship, adjust ERD, Bootstrap and Domain classes to suite.

File size: 4.3 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3class MaintenanceActionDetailedController extends BaseController {
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)
12        [ maintenanceActionInstanceList: MaintenanceAction.list( params ), maintenanceActionInstanceTotal: MaintenanceAction.count() ]
13    }
14
15    def show = {
16        def maintenanceActionInstance = MaintenanceAction.get( params.id )
17
18        if(!maintenanceActionInstance) {
19            flash.message = "MaintenanceAction not found with id ${params.id}"
20            redirect(action:list)
21        }
22        else { return [ maintenanceActionInstance : maintenanceActionInstance ] }
23    }
24
25    def delete = {
26        def maintenanceActionInstance = MaintenanceAction.get( params.id )
27        if(maintenanceActionInstance) {
28            try {
29                maintenanceActionInstance.delete()
30                flash.message = "MaintenanceAction ${params.id} deleted"
31                redirect(action:list)
32            }
33            catch(org.springframework.dao.DataIntegrityViolationException e) {
34                flash.message = "MaintenanceAction ${params.id} could not be deleted"
35                redirect(action:show,id:params.id)
36            }
37        }
38        else {
39            flash.message = "MaintenanceAction not found with id ${params.id}"
40            redirect(action:list)
41        }
42    }
43
44    def edit = {
45        def maintenanceActionInstance = MaintenanceAction.get( params.id )
46
47        if(!maintenanceActionInstance) {
48            flash.message = "MaintenanceAction not found with id ${params.id}"
49            redirect(action:list)
50        }
51        else {
52            return [ maintenanceActionInstance : maintenanceActionInstance ]
53        }
54    }
55
56    def update = {
57        def maintenanceActionInstance = MaintenanceAction.get( params.id )
58        if(maintenanceActionInstance) {
59            if(params.version) {
60                def version = params.version.toLong()
61                if(maintenanceActionInstance.version > version) {
62                   
63                    maintenanceActionInstance.errors.rejectValue("version", "maintenanceAction.optimistic.locking.failure", "Another user has updated this MaintenanceAction while you were editing.")
64                    render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
65                    return
66                }
67            }
68            maintenanceActionInstance.properties = params
69            if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
70                flash.message = "MaintenanceAction ${params.id} updated"
71                redirect(action:show,id:maintenanceActionInstance.id)
72            }
73            else {
74                render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
75            }
76        }
77        else {
78            flash.message = "MaintenanceAction not found with id ${params.id}"
79            redirect(action:edit,id:params.id)
80        }
81    }
82
83    def create = {
84        try {
85            def plannedMaintenanceInstance = PlannedMaintenance.get(params.plannedMaintenanceInstance.id)
86            def maintenanceActionInstance = new MaintenanceAction()
87            maintenanceActionInstance.plannedMaintenance = plannedMaintenanceInstance
88            return ['maintenanceActionInstance':maintenanceActionInstance]
89        }
90        catch(Exception e) {
91            flash.message = "Please select a PlannedMaintenance, then 'Add action'"
92            redirect(controller:"plannedMaintenanceDetailed", action:"list")
93        }
94    }
95
96    def save = {
97        def maintenanceActionInstance = new MaintenanceAction(params)
98        if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
99            flash.message = "MaintenanceAction ${maintenanceActionInstance.id} created"
100            redirect(controller:"plannedMaintenanceDetailed", action:"show", id: params.plannedMaintenance.id)
101        }
102        else {
103            render(view:'create',model:[maintenanceActionInstance:maintenanceActionInstance])
104        }
105    }
106}
Note: See TracBrowser for help on using the repository browser.