Index: trunk/grails-app/controllers/AssignedPersonDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/AssignedPersonDetailedController.groovy	(revision 144)
+++ trunk/grails-app/controllers/AssignedPersonDetailedController.groovy	(revision 147)
@@ -2,5 +2,5 @@
 
 class AssignedPersonDetailedController extends BaseController {
-    
+
     def index = { redirect(action:list,params:params) }
 
@@ -27,7 +27,8 @@
         if(assignedPersonInstance) {
             try {
+                def taskId = assignedPersonInstance.task.id
                 assignedPersonInstance.delete()
                 flash.message = "AssignedPerson ${params.id} deleted"
-                redirect(action:list)
+                redirect(controller:"taskDetailed", action:"show", id: taskId)
             }
             catch(org.springframework.dao.DataIntegrityViolationException e) {
@@ -60,5 +61,5 @@
                 def version = params.version.toLong()
                 if(assignedPersonInstance.version > version) {
-                    
+
                     assignedPersonInstance.errors.rejectValue("version", "assignedPerson.optimistic.locking.failure", "Another user has updated this AssignedPerson while you were editing.")
                     render(view:'edit',model:[assignedPersonInstance:assignedPersonInstance])
@@ -82,20 +83,21 @@
 
     def create = {
-		if(!params.task?.id) {
-			flash.message = "Please select a task and then 'Add Assigned Person'"
-			redirect(controller: "taskDetailed", action: list)
-		}
-		else {
-        def assignedPersonInstance = new AssignedPerson()
-        assignedPersonInstance.properties = params
-        return ['assignedPersonInstance':assignedPersonInstance]
-		}
+        if(!params.task?.id) {
+            flash.message = "Please select a task and then 'Add Assigned Person'"
+            redirect(controller: "taskDetailed", action: list)
+        }
+        else {
+            def assignedPersonInstance = new AssignedPerson()
+            assignedPersonInstance.properties = params
+            return ['assignedPersonInstance':assignedPersonInstance]
+        }
     }
 
     def save = {
         def assignedPersonInstance = new AssignedPerson(params)
+
         if(!assignedPersonInstance.hasErrors() && assignedPersonInstance.save()) {
             flash.message = "AssignedPerson ${assignedPersonInstance.id} created"
-            redirect(action:show,id:assignedPersonInstance.id)
+            redirect(controller:"taskDetailed", action:"show", id: params.task.id)
         }
         else {
Index: trunk/grails-app/controllers/EntryDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/EntryDetailedController.groovy	(revision 144)
+++ trunk/grails-app/controllers/EntryDetailedController.groovy	(revision 147)
@@ -4,5 +4,5 @@
 
     def authenticateService
-    
+
     def index = { redirect(action:list,params:params) }
 
Index: trunk/grails-app/controllers/PersonController.groovy
===================================================================
--- trunk/grails-app/controllers/PersonController.groovy	(revision 144)
+++ trunk/grails-app/controllers/PersonController.groovy	(revision 147)
@@ -4,5 +4,6 @@
 class PersonController extends BaseAppAdminController {
 
-	def authenticateService
+    def authenticateService
+    def filterService
 
 	// the delete, save and update actions only accept POST requests
@@ -13,12 +14,23 @@
 	}
 
-	def list = {
-		if (!params.max) {
-			params.max = 10
-		}
-		[personList: Person.list(params)]
-	}
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100 )
+
+        if(!params.filter)
+        { return [personList: Person.list(params), personTotal: Person.count()] }
+
+        // filterPane:
+        return[ personList: filterService.filter( params, Person ),
+            personTotal: filterService.count( params, Person ),
+            filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params),
+            params:params ]
+    }
 
 	def show = {
+
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Show)
+        { params.action='show' }
+
 		def person = Person.get(params.id)
 		if (!person) {
@@ -46,14 +58,17 @@
 		if (person) {
 			def authPrincipal = authenticateService.principal()
-			//avoid self-delete if the logged-in user is an admin
+			// Avoid self-delete.
 			if (!(authPrincipal instanceof String) && authPrincipal.username == person.loginName) {
-				flash.message = "You can not delete yourself, please login as another admin and try again"
+				flash.message = "You cannot delete yourself, please login as another manager and try again."
+                redirect(action:show,id:params.id)
 			}
 			else {
 				//first, delete this person from Persons_Authorities table.
 				Authority.findAll().each { it.removeFromPersons(person) }
-                
+                person.isActive = false
+                person.save(flush: true)
+
                 try {
-                    person.delete()
+                    person.delete(flush: true)
                     flash.message = "Person $params.id deleted."
                     redirect(action:list)
@@ -72,4 +87,8 @@
 	def edit = {
 
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Edit)
+        { params.action='edit' }
+
 		def person = Person.get(params.id)
 		if (!person) {
@@ -78,5 +97,5 @@
 			return
 		}
-
+        flash.message = "To allow login at least the 'ROLE_AppUser' authority must be given."
 		return buildPersonModel(person)
 	}
@@ -126,4 +145,5 @@
 
 	def create = {
+        flash.message = "To allow login at least the 'ROLE_AppUser' authority must be given."
 		[person: new Person(params), authorityList: Authority.list()]
 	}
Index: trunk/grails-app/controllers/TaskDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskDetailedController.groovy	(revision 144)
+++ trunk/grails-app/controllers/TaskDetailedController.groovy	(revision 147)
@@ -202,5 +202,5 @@
 
     def show = {
-        
+
         // In the case of an actionSubmit button, rewrite action name from 'index'.
         if(params._action_Show)
@@ -286,5 +286,5 @@
 
     def edit = {
-        
+
         // In the case of an actionSubmit button, rewrite action name from 'index'.
         if(params._action_Edit)
Index: trunk/grails-app/controllers/TaskProcedureDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskProcedureDetailedController.groovy	(revision 144)
+++ trunk/grails-app/controllers/TaskProcedureDetailedController.groovy	(revision 147)
@@ -2,5 +2,5 @@
 
 class TaskProcedureDetailedController extends BaseController {
-    
+
     def index = { redirect(action:list,params:params) }
 
@@ -10,7 +10,15 @@
     def list = {
         params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
-        [ taskProcedureInstanceList: TaskProcedure.list( params ), taskProcedureInstanceTotal: TaskProcedure.count() ]
+
+        if(!params.filter)
+        { return [taskProcedureInstanceList: TaskProcedure.list(params), taskProcedureInstanceTotal: TaskProcedure.count()] }
+
+        // filterPane:
+        return[ taskProcedureInstanceList: filterService.filter( params, TaskProcedure ),
+            taskProcedureInstanceTotal: filterService.count( params, TaskProcedure ),
+            filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params),
+            params:params ]
     }
-	
+
     def search = {
         redirect(action:list)
@@ -18,4 +26,9 @@
 
     def show = {
+
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Show)
+        { params.action='show' }
+
         def taskProcedureInstance = TaskProcedure.get( params.id )
 
@@ -47,4 +60,9 @@
 
     def edit = {
+
+        // In the case of an actionSubmit button, rewrite action name from 'index'.
+        if(params._action_Edit)
+        { params.action='edit' }
+
         def taskProcedureInstance = TaskProcedure.get( params.id )
 
@@ -64,5 +82,5 @@
                 def version = params.version.toLong()
                 if(taskProcedureInstance.version > version) {
-                    
+
                     taskProcedureInstance.errors.rejectValue("version", "taskProcedure.optimistic.locking.failure", "Another user has updated this TaskProcedure while you were editing.")
                     render(view:'edit',model:[taskProcedureInstance:taskProcedureInstance])
@@ -86,23 +104,28 @@
 
     def create = {
-		def taskInstance = Task.get(params.taskInstance?.id)
-		
-        def taskProcedureInstance = new TaskProcedure()
-        taskProcedureInstance.properties = params
-        return ['taskProcedureInstance':taskProcedureInstance,
-						taskInstance: taskInstance]
+        if(params.taskInstance?.id) {
+            def taskInstance = Task.get(params.taskInstance.id)
+
+            def taskProcedureInstance = new TaskProcedure()
+            taskProcedureInstance.properties = params
+            return ['taskProcedureInstance':taskProcedureInstance,
+                            taskInstance: taskInstance]
+        } else {
+            flash.message = "Please select a task, then the Procedure tab.'"
+            redirect(controller:"taskDetailed", action:"list")
+        }
     }
 
     def save = {
         def taskProcedureInstance = new TaskProcedure(params)
-		def taskInstance = Task.get(params.taskInstance.id)
-				
+        def taskInstance = Task.get(params.taskInstance.id)
+
         if(!taskProcedureInstance.hasErrors() && taskProcedureInstance.save()) {
-			taskProcedureInstance.addToTasks(taskInstance)
-            flash.message = "TaskProcedure ${taskProcedureInstance.id} created"
+            taskProcedureInstance.addToTasks(taskInstance)
+            flash.message = "TaskProcedure ${taskProcedureInstance.id} created."
             redirect(action:show,id:taskProcedureInstance.id)
         }
         else {
-            render(view:'create',model:[taskProcedureInstance:taskProcedureInstance])
+            render(view:'create',model:[taskProcedureInstance:taskProcedureInstance, taskInstance: taskInstance])
         }
     }
