Index: trunk/grails-app/services/AssignedGroupService.groovy
===================================================================
--- trunk/grails-app/services/AssignedGroupService.groovy	(revision 252)
+++ trunk/grails-app/services/AssignedGroupService.groovy	(revision 254)
@@ -4,38 +4,4 @@
 
     def personService
-
-    def list(params) {
-        def result = [:]
-        def fail = { Map m ->
-            result.error = [ code: m.code, args: ["AssignedGroup"] ]
-            return result
-        }
-
-        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
-        result.assignedGroupInstanceList = AssignedGroup.list(params)
-        result.assignedGroupInstanceTotal = AssignedGroup.count()
-
-        if(!result.assignedGroupInstanceList || !result.assignedGroupInstanceTotal)
-            return fail(code:"default.list.failure")
-
-        // Success.
-        return result
-    }
-
-    def show(params) {
-        def result = [:]
-        def fail = { Map m ->
-            result.error = [ code: m.code, args: ["AssignedGroup", params.id] ]
-            return result
-        }
-
-        result.assignedGroupInstance = AssignedGroup.get(params.id)
-
-        if(!result.assignedGroupInstance)
-            return fail(code:"default.not.found")
-
-        // Success.
-        return result
-    }
 
     def delete(params) {
@@ -86,4 +52,7 @@
             return fail(code:"default.not.found")
 
+        result.personGroup = result.assignedGroupInstance.personGroup
+        result.personsInGroup = result.personGroup.persons
+
         // Success.
         return result
@@ -101,4 +70,12 @@
                 return result
             }
+
+            result.personGroup = PersonGroup.get(params.personGroup.id)
+
+            // Prevent a null property reference.
+            if(!result.personGroup)
+                return fail(code:"personGroup.not.found")
+
+            result.personsInGroup = result.personGroup.persons
 
             result.assignedGroupInstance = AssignedGroup.get(params.id)
@@ -144,4 +121,7 @@
         result.assignedGroupInstance.properties = params
 
+        result.personGroup = PersonGroup.list().sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name)}[0] // Get the first result.
+        result.personsInGroup = result.personGroup.persons
+
         // success
         return result
@@ -153,4 +133,5 @@
 
             def fail = { Map m ->
+                status.setRollbackOnly()
                 if(result.assignedGroupInstance && m.field)
                     result.assignedGroupInstance.errors.rejectValue(m.field, m.code)
@@ -159,10 +140,19 @@
             }
 
-            result.assignedGroupInstance = new AssignedGroup(params)
+            result.personGroup = PersonGroup.get(params.personGroup.id)
+
+            // Prevent a null property reference.
+            if(!result.personGroup)
+                return fail(code:"personGroup.not.found")
+
+            result.personsInGroup = result.personGroup.persons
+
+            result.assignedGroupInstance = new AssignedGroup()
+            result.assignedGroupInstance.properties = params
 
             if(result.assignedGroupInstance.hasErrors() || !result.assignedGroupInstance.save())
                 return fail(code:"default.create.failure")
 
-            // Record a taskModification for every one except "system".
+            // Record a taskModification for everyone except "system".
             if(personService.currentUser.id != 1) {
                 def taskModification = new TaskModification(person: personService.currentUser,
@@ -174,5 +164,5 @@
             }
 
-            // success
+            // Success.
             return result
 
@@ -180,3 +170,22 @@
     } // end save()
 
+    def personsInGroup(params) {
+        def result = [:]
+
+        def fail = { Map m ->
+            result.error = [ code: m.code, args: ["PersonGroup", params.personGroup?.id] ]
+            return result
+        }
+
+        result.personGroup = PersonGroup.get(params.personGroup?.id)
+
+        if(!result.personGroup)
+            return fail(code:"default.not.found")
+
+        result.personsInGroup = result.personGroup.persons
+
+        // Success.
+        return result
+    }
+
 } // end class
