Index: trunk/grails-app/controllers/EntryDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/EntryDetailedController.groovy	(revision 822)
+++ trunk/grails-app/controllers/EntryDetailedController.groovy	(revision 826)
@@ -92,15 +92,30 @@
     }
 
-    def createMaintenanceAction = {
+    def ajaxCreate = {
+        if(!params.taskId || !params.entryTypeId) {
+            flash.message = g.message(code:"entry.create.no.params")
+            redirect(controller:"taskDetailed", action:"search")
+            return
+        }
 
-//         if(!params.taskInstance?.id || !params.entryType?.id) {
-//             flash.message = g.message(code:"entry.create.no.params")
-//             redirect(controller:"taskDetailed", action:"search")
-//             return
-//         }
+        def taskInstance = Task.read(params.taskId)
 
-        def taskInstance = Task.read(params.taskInstance.id)
-        println taskInstance
-        render "Done"
+        if(!taskInstance) {
+            flash.message = g.message(code:"task.notFound")
+            redirect(controller:"taskDetailed", action:"search")
+            return
+        }
+
+        // Check for Complete task.
+        if(taskInstance.taskStatus.id == 3) {
+            flash.errorMessage = g.message(code:"task.operationNotPermittedOnCompleteTask")
+            redirect(controller:"taskDetailed", action:"show", id: taskInstance.id)
+            return
+        }
+
+        def entryInstance = new Entry()
+        entryInstance.task = taskInstance
+        entryInstance.entryType = EntryType.read(params.entryTypeId)
+        render(template: "create", model: ['entryInstance': entryInstance])
     }
 
