Ignore:
Timestamp:
Dec 27, 2009, 8:13:08 PM (14 years ago)
Author:
gav
Message:

Refactor AssignedGroup to use a serviced controller.

File:
1 edited

Legend:

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

    r242 r247  
    33class AssignedGroupDetailedController extends BaseController {
    44
    5     def index = { redirect(action:list,params:params) }
     5    def assignedGroupService
     6
     7    def index = {
     8        flash.message = g.message(code: "assignedGroup.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         [ assignedGroupInstanceList: AssignedGroup.list( params ), assignedGroupInstanceTotal: AssignedGroup.count() ]
     16            def result = assignedGroupService.list(params)
     17            if(!result.error) {
     18                return [ assignedGroupInstanceList: result.assignedGroupInstanceList,
     19                                assignedGroupInstanceTotal: result.assignedGroupInstanceTotal ]
     20            }
     21
     22            flash.message = g.message(code: result.error.code, args: result.error.args)
     23            redirect( url: resource(dir:'') )
    1324    }
    1425
    1526    def show = {
    16         def assignedGroupInstance = AssignedGroup.get( params.id )
     27        def result = assignedGroupService.show(params)
    1728
    18         if(!assignedGroupInstance) {
    19             flash.message = "AssignedGroup not found with id ${params.id}"
    20             redirect(action:list)
    21         }
    22         else { return [ assignedGroupInstance : assignedGroupInstance ] }
     29        if(!result.error)
     30            return [ assignedGroupInstance: result.assignedGroupInstance ]
     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 assignedGroupInstance = AssignedGroup.get( params.id )
    27         if(assignedGroupInstance) {
    28             try {
    29                 def taskId = assignedGroupInstance.task.id
    30                 assignedGroupInstance.delete()
    31                 flash.message = "AssignedGroup ${params.id} deleted"
    32                 redirect(controller:"taskDetailed", action:"show", id: taskId)
    33             }
    34             catch(org.springframework.dao.DataIntegrityViolationException e) {
    35                 flash.message = "AssignedGroup ${params.id} could not be deleted"
    36                 redirect(action:show,id:params.id)
    37             }
     41        def result = assignedGroupService.delete(params)
     42
     43        if(!result.error) {
     44            flash.message = g.message(code: "default.delete.success", args: ["AssignedGroup", params.id])
     45            redirect(controller:"taskDetailed", action:"show", id: params.task?.id)
     46            return
    3847        }
    39         else {
    40             flash.message = "AssignedGroup 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 assignedGroupInstance = AssignedGroup.get( params.id )
     60        def result = assignedGroupService.edit(params)
    4761
    48         if(!assignedGroupInstance) {
    49             flash.message = "AssignedGroup not found with id ${params.id}"
    50             redirect(action:list)
    51         }
    52         else {
    53             return [ assignedGroupInstance : assignedGroupInstance ]
    54         }
     62        if(!result.error)
     63            return [ assignedGroupInstance : result.assignedGroupInstance ]
     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 assignedGroupInstance = AssignedGroup.get( params.id )
    59         if(assignedGroupInstance) {
    60             if(params.version) {
    61                 def version = params.version.toLong()
    62                 if(assignedGroupInstance.version > version) {
     72        def result = assignedGroupService.update(params)
    6373
    64                     assignedGroupInstance.errors.rejectValue("version", "assignedGroup.optimistic.locking.failure", "Another user has updated this AssignedGroup while you were editing.")
    65                     render(view:'edit',model:[assignedGroupInstance:assignedGroupInstance])
    66                     return
    67                 }
    68             }
    69             assignedGroupInstance.properties = params
    70             if(!assignedGroupInstance.hasErrors() && assignedGroupInstance.save(flush: true)) {
    71                 flash.message = "AssignedGroup ${params.id} updated"
    72                 redirect(action:show,id:assignedGroupInstance.id)
    73             }
    74             else {
    75                 render(view:'edit',model:[assignedGroupInstance:assignedGroupInstance])
    76             }
     74        if(!result.error) {
     75            flash.message = g.message(code: "default.update.success", args: ["AssignedGroup", params.id])
     76            redirect(action:show, id: params.id)
     77            return
    7778        }
    78         else {
    79             flash.message = "AssignedGroup 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:[assignedGroupInstance: result.assignedGroupInstance.attach()])
    8287    }
    8388
    8489    def create = {
    85         if(!params.task?.id) {
    86             flash.message = "Please select a task and then 'Add Assigned Group'"
     90        def result = assignedGroupService.create(params)
     91
     92        if(!result.error)
     93            return [assignedGroupInstance: result.assignedGroupInstance]
     94
     95        if(result.error.code == "assignedGroup.task.not.found") {
     96            flash.message = g.message(code: result.error.code, args: result.error.args)
    8797            redirect(controller: "taskDetailed", action: "search")
     98            return
    8899        }
    89         else {
    90             def assignedGroupInstance = new AssignedGroup()
    91             assignedGroupInstance.properties = params
    92             return ['assignedGroupInstance':assignedGroupInstance]
    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 assignedGroupInstance = new AssignedGroup(params)
     106        def result = assignedGroupService.save(params)
    98107
    99         if(!assignedGroupInstance.hasErrors() && assignedGroupInstance.save(flush: true)) {
    100             flash.message = "AssignedGroup ${assignedGroupInstance.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: ["AssignedGroup", result.assignedGroupInstance.id])
     110            redirect(controller:"taskDetailed", action:"show", id: result.assignedGroupInstance.task.id)
     111            return
    102112        }
    103         else {
    104             render(view:'create',model:[assignedGroupInstance:assignedGroupInstance])
    105         }
     113
     114        render(view:'edit', model:[assignedGroupInstance: result.assignedGroupInstance])
    106115    }
     116
    107117}
Note: See TracChangeset for help on using the changeset viewer.