Ignore:
Timestamp:
Dec 27, 2009, 9:56:42 PM (14 years ago)
Author:
gav
Message:

Refactor AssignedPerson to use a serviced controller.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/AssignedPersonDetailedController.groovy

    r241 r249  
    33class AssignedPersonDetailedController extends BaseController {
    44
    5     def index = { redirect(action:list,params:params) }
     5    def assignedPersonService
     6
     7    def index = {
     8        flash.message = g.message(code: "assignedPerson.task.not.found")
     9        redirect(controller:"taskDetailed", action:"search")
     10    }
    611
    712    // the delete, save and update actions only accept POST requests
     
    914
    1015    def list = {
    11         params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
    12         [ assignedPersonInstanceList: AssignedPerson.list( params ), assignedPersonInstanceTotal: AssignedPerson.count() ]
     16            def result = assignedPersonService.list(params)
     17            if(!result.error) {
     18                return [ assignedPersonInstanceList: result.assignedPersonInstanceList,
     19                                assignedPersonInstanceTotal: result.assignedPersonInstanceTotal ]
     20            }
     21
     22            flash.message = g.message(code: result.error.code, args: result.error.args)
     23            redirect( controller: "appCore", action: "start" )
    1324    }
    1425
    1526    def show = {
    16         def assignedPersonInstance = AssignedPerson.get( params.id )
     27        def result = assignedPersonService.show(params)
    1728
    18         if(!assignedPersonInstance) {
    19             flash.message = "AssignedPerson not found with id ${params.id}"
    20             redirect(action:list)
    21         }
    22         else { return [ assignedPersonInstance : assignedPersonInstance ] }
     29        if(!result.error)
     30            return [ assignedPersonInstance: result.assignedPersonInstance ]
     31
     32        flash.message = g.message(code: result.error.code, args: result.error.args)
     33
     34        if(params.task?.id)
     35            redirect(controller:"taskDetailed", action:"show", id: params.task.id)
     36
     37        redirect(controller:"taskDetailed", action:"search")
    2338    }
    2439
    2540    def delete = {
    26         def assignedPersonInstance = AssignedPerson.get( params.id )
    27         if(assignedPersonInstance) {
    28             try {
    29                 def taskId = assignedPersonInstance.task.id
    30                 assignedPersonInstance.delete()
    31                 flash.message = "AssignedPerson ${params.id} deleted"
    32                 redirect(controller:"taskDetailed", action:"show", id: taskId)
    33             }
    34             catch(org.springframework.dao.DataIntegrityViolationException e) {
    35                 flash.message = "AssignedPerson ${params.id} could not be deleted"
    36                 redirect(action:show,id:params.id)
    37             }
     41        def result = assignedPersonService.delete(params)
     42
     43        if(!result.error) {
     44            flash.message = g.message(code: "default.delete.success", args: ["AssignedPerson", params.id])
     45            redirect(controller:"taskDetailed", action:"show", id: params.task?.id)
     46            return
    3847        }
    39         else {
    40             flash.message = "AssignedPerson not found with id ${params.id}"
    41             redirect(action:list)
     48
     49        flash.message = g.message(code: result.error.code, args: result.error.args)
     50
     51        if(result.error.code == "default.not.found") {
     52            redirect(controller:"taskDetailed", action:"show", id: params.task?.id)
     53            return
    4254        }
     55
     56        redirect(action:show, id: params.id)
    4357    }
    4458
    4559    def edit = {
    46         def assignedPersonInstance = AssignedPerson.get( params.id )
     60        def result = assignedPersonService.edit(params)
    4761
    48         if(!assignedPersonInstance) {
    49             flash.message = "AssignedPerson not found with id ${params.id}"
    50             redirect(action:list)
    51         }
    52         else {
    53             return [ assignedPersonInstance : assignedPersonInstance ]
    54         }
     62        if(!result.error)
     63            return [ assignedPersonInstance : result.assignedPersonInstance ]
     64
     65        flash.message = g.message(code: result.error.code, args: result.error.args)
     66
     67        redirect(controller:"taskDetailed", action:"show", id: params.task?.id)
     68
    5569    }
    5670
    5771    def update = {
    58         def assignedPersonInstance = AssignedPerson.get( params.id )
    59         if(assignedPersonInstance) {
    60             if(params.version) {
    61                 def version = params.version.toLong()
    62                 if(assignedPersonInstance.version > version) {
     72        def result = assignedPersonService.update(params)
    6373
    64                     assignedPersonInstance.errors.rejectValue("version", "assignedPerson.optimistic.locking.failure", "Another user has updated this AssignedPerson while you were editing.")
    65                     render(view:'edit',model:[assignedPersonInstance:assignedPersonInstance])
    66                     return
    67                 }
    68             }
    69             assignedPersonInstance.properties = params
    70             if(!assignedPersonInstance.hasErrors() && assignedPersonInstance.save(flush: true)) {
    71                 flash.message = "AssignedPerson ${params.id} updated"
    72                 redirect(action:show,id:assignedPersonInstance.id)
    73             }
    74             else {
    75                 render(view:'edit',model:[assignedPersonInstance:assignedPersonInstance])
    76             }
     74        if(!result.error) {
     75            flash.message = g.message(code: "default.update.success", args: ["AssignedPerson", params.id])
     76            redirect(action:show, id: params.id)
     77            return
    7778        }
    78         else {
    79             flash.message = "AssignedPerson not found with id ${params.id}"
    80             redirect(action:edit,id:params.id)
     79
     80        if(result.error.code == "default.not.found") {
     81            flash.message = g.message(code: result.error.code, args: result.error.args)
     82            redirect(controller:"taskDetailed", action:"show", id: params.task?.id)
     83            return
    8184        }
     85
     86        render(view:'edit', model:[assignedPersonInstance: result.assignedPersonInstance.attach()])
    8287    }
    8388
    8489    def create = {
    85         if(!params.task?.id) {
    86             flash.message = "Please select a task and then 'Add Assigned Person'"
    87             redirect(controller: "taskDetailed", action: search)
     90        def result = assignedPersonService.create(params)
     91
     92        if(!result.error)
     93            return [assignedPersonInstance: result.assignedPersonInstance]
     94
     95        if(result.error.code == "assignedPerson.task.not.found") {
     96            flash.message = g.message(code: result.error.code, args: result.error.args)
     97            redirect(controller: "taskDetailed", action: "search")
     98            return
    8899        }
    89         else {
    90             def assignedPersonInstance = new AssignedPerson()
    91             assignedPersonInstance.properties = params
    92             return ['assignedPersonInstance':assignedPersonInstance]
    93         }
     100
     101        flash.message = g.message(code: result.error.code, args: result.error.args)
     102        redirect(controller:"taskDetailed", action:"show", id: params.task?.id)
    94103    }
    95104
    96105    def save = {
    97         def assignedPersonInstance = new AssignedPerson(params)
     106        def result = assignedPersonService.save(params)
    98107
    99         if(!assignedPersonInstance.hasErrors() && assignedPersonInstance.save(flush: true)) {
    100             flash.message = "AssignedPerson ${assignedPersonInstance.id} created"
    101             redirect(controller:"taskDetailed", action:"show", id: params.task.id)
     108        if(!result.error) {
     109            flash.message = g.message(code: "default.create.success", args: ["AssignedPerson", result.assignedPersonInstance.id])
     110            redirect(controller:"taskDetailed", action:"show", id: result.assignedPersonInstance.task.id)
     111            return
    102112        }
    103         else {
    104             render(view:'create',model:[assignedPersonInstance:assignedPersonInstance])
    105         }
     113
     114        render(view:'edit', model:[assignedPersonInstance: result.assignedPersonInstance])
    106115    }
     116
    107117}
Note: See TracChangeset for help on using the changeset viewer.