Index: branches/features/taskProcedureRework/grails-app/controllers/TaskProcedureDetailedController.groovy
===================================================================
--- branches/features/taskProcedureRework/grails-app/controllers/TaskProcedureDetailedController.groovy	(revision 759)
+++ branches/features/taskProcedureRework/grails-app/controllers/TaskProcedureDetailedController.groovy	(revision 760)
@@ -98,4 +98,10 @@
             }
             taskProcedureInstance.properties = params
+
+            def toBeDeleted = taskProcedureInstance.maintenanceActions.findAll {it._deleted}
+            if(toBeDeleted) {
+                taskProcedureInstance.maintenanceActions.removeAll(toBeDeleted)
+            }
+
             if(!taskProcedureInstance.hasErrors() && taskProcedureInstance.save(flush: true)) {
                 flash.message = "TaskProcedure ${params.id} updated"
Index: branches/features/taskProcedureRework/grails-app/domain/MaintenanceAction.groovy
===================================================================
--- branches/features/taskProcedureRework/grails-app/domain/MaintenanceAction.groovy	(revision 759)
+++ branches/features/taskProcedureRework/grails-app/domain/MaintenanceAction.groovy	(revision 760)
@@ -10,4 +10,7 @@
     String reasoning = ""
     Integer procedureStepNumber
+
+    boolean deleted
+    static transients = [ 'deleted' ]
 
 //     static hasMany = []
Index: branches/features/taskProcedureRework/grails-app/domain/TaskProcedure.groovy
===================================================================
--- branches/features/taskProcedureRework/grails-app/domain/TaskProcedure.groovy	(revision 759)
+++ branches/features/taskProcedureRework/grails-app/domain/TaskProcedure.groovy	(revision 760)
@@ -1,9 +1,16 @@
+import org.apache.commons.collections.list.LazyList;
+import org.apache.commons.collections.FactoryUtils;
+
 class TaskProcedure {
 
     Task parentTask
-
+    List maintenanceActions = new ArrayList()
     static hasMany = [tasks: Task, maintenanceActions: MaintenanceAction]
 
     static mappedBy = [tasks:"taskProcedure"]
+
+    static mapping = {
+        maintenanceActions cascade:"all,delete-orphan"
+    }
 
 //     static belongsTo = []
@@ -15,3 +22,7 @@
         "${this.id}"
     }
+
+    def getExpandableMaintenanceActionList() {
+        return LazyList.decorate(maintenanceActions, FactoryUtils.instantiateFactory(MaintenanceAction.class))
+    }
 }
Index: branches/features/taskProcedureRework/grails-app/services/CreateDataService.groovy
===================================================================
--- branches/features/taskProcedureRework/grails-app/services/CreateDataService.groovy	(revision 759)
+++ branches/features/taskProcedureRework/grails-app/services/CreateDataService.groovy	(revision 760)
@@ -140,5 +140,5 @@
         createDemoAssignedPersons()
         createDemoTaskProcedure()
-        createDemoMaintenanceActions()
+        //createDemoMaintenanceActions()
         createDemoTaskRecurringSchedules()
 
Index: branches/features/taskProcedureRework/grails-app/views/taskDetailed/show.gsp
===================================================================
--- branches/features/taskProcedureRework/grails-app/views/taskDetailed/show.gsp	(revision 759)
+++ branches/features/taskProcedureRework/grails-app/views/taskDetailed/show.gsp	(revision 760)
@@ -518,4 +518,13 @@
                                         </tr>
 
+                        <tr class="prop">
+                            <td valign="top" class="name">Parent Task:</td>
+                            <td valign="top" class="value">
+                                <g:link controller="taskDetailed" action="show" id="${taskProcedureInstance.parentTask.id}">
+                                    ${taskProcedureInstance.parentTask.encodeAsHTML()}
+                                </g:link>
+                            </td>
+                        </tr>
+
                                     </tbody>
                                 </table>
Index: branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/_maintenanceActions.gsp
===================================================================
--- branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/_maintenanceActions.gsp	(revision 760)
+++ branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/_maintenanceActions.gsp	(revision 760)
@@ -0,0 +1,26 @@
+<script type="text/javascript">
+    var childCount = ${taskProcedureInstance?.maintenanceActions.size()} + 0;
+
+    function addChild() {
+        var htmlId = "maintenanceAction" + childCount;
+        var deleteIcon = "${resource(dir:'images/skin', file:'database_delete.png')}";
+        var templateHtml = "<div id='" + htmlId + "' name='" + htmlId + "'>\n";
+        templateHtml += "<input type='text' id='expandableMaintenanceActionList[" + childCount + "].description' name='expandableMaintenanceActionList[" + childCount + "].description' />\n";
+        templateHtml += "<span onClick='$(\"#" + htmlId + "\").remove();'><img src='" + deleteIcon + "' /></span>\n";
+        templateHtml += "</div>\n";
+        $("#childList").append(templateHtml);
+        childCount++;
+    }
+</script>
+
+<div id="childList">
+    <g:each var="m" in="${taskProcedureInstance.maintenanceActions}" status="i">
+        <div id="maintenanceAction${i}">
+            <g:hiddenField name='expandableMaintenanceActionList[${i}].id' value='${maintenanceAction.id}'/>
+            <g:textField name='expandableMaintenanceActionList[${i}].description' value='${maintenanceAction.description}'/>
+            <input type="hidden" name='expandableMaintenanceActionList[${i}].deleted' id='expandableMaintenanceActionList[${i}].deleted' value='false'/>
+            <span onClick="$('#expandableMaintenanceActionList\\[${i}\\]\\.deleted').val('true'); $('#maintenanceAction${i}').hide()"><img src="${resource(dir:'images/skin', file:'database_delete.png')}" /></span>
+        </div>
+    </g:each>
+</div>
+<input type="button" value="Add MaintenanceAction" onclick="addChild();" />
Index: branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/create.gsp
===================================================================
--- branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/create.gsp	(revision 759)
+++ branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/create.gsp	(revision 760)
@@ -6,4 +6,5 @@
         <meta name="layout" content="main" />
         <title>Create TaskProcedure</title>
+        <g:javascript library="jquery" plugin="jquery"/>
         <nav:resources override="true"/>
     </head>
@@ -21,4 +22,5 @@
             </div>
             </g:hasErrors>
+
             <g:form action="save" method="post" >
             <input type="hidden" name="parentTask.id" value="${taskInstance.id}" />
@@ -39,4 +41,13 @@
                             </tr>
 
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="maintenanceActions">Maintenance Actions:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'maintenanceActions','errors')}">
+                                    <g:render template="maintenanceActions" model="['taskProcedureInstance': taskProcedureInstance]" />
+                                </td>
+                            </tr>
+
                         </tbody>
                     </table>
Index: branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/show.gsp
===================================================================
--- branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/show.gsp	(revision 759)
+++ branches/features/taskProcedureRework/grails-app/views/taskProcedureDetailed/show.gsp	(revision 760)
@@ -26,8 +26,6 @@
 
                         <tr class="prop">
-                            <td valign="top" class="name">
-                                <label for="taskInstance">Parent Task:</label>
-                            </td>
-                            <td valign="top" name="taskInstance" class="value">
+                            <td valign="top" class="name">Parent Task:</td>
+                            <td valign="top" class="value">
                                 <g:link controller="taskDetailed" action="show" id="${taskProcedureInstance.parentTask.id}">
                                     ${taskProcedureInstance.parentTask.encodeAsHTML()}
