Index: trunk/grails-app/views/layouts/main.gsp
===================================================================
--- trunk/grails-app/views/layouts/main.gsp	(revision 751)
+++ trunk/grails-app/views/layouts/main.gsp	(revision 798)
@@ -5,4 +5,5 @@
         <link rel="stylesheet" href="${resource(dir:'css',file:'main.css')}" />
         <link rel="shortcut icon" href="${resource(dir:'images',file:'gnuMimsIcon.ico')}" type="image/x-icon" />
+        <g:javascript library="jquery" />
         <g:javascript library="prototype/prototype" />
         <g:javascript library="prototype/effects" />
Index: trunk/grails-app/views/shared/_assetTreeCompact.gsp
===================================================================
--- trunk/grails-app/views/shared/_assetTreeCompact.gsp	(revision 798)
+++ trunk/grails-app/views/shared/_assetTreeCompact.gsp	(revision 798)
@@ -0,0 +1,29 @@
+
+<%--  Fetch to prevent lazy initialization error.  --%>
+<% assetInstance = Asset.read(assetInstance?.id)%>
+
+<div class="static_tree">
+    ${assetInstance?.encodeAsHTML()}
+    <div class="static_tree_compact">
+        <ul>
+        <g:each var="assetSubItem1" in="${assetInstance?.assetSubItems?.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }">
+            <li>
+                ${assetSubItem1?.encodeAsHTML()}
+            </li>
+
+            <div id="treelevel1">
+
+                <ul>
+                <g:each var="assetSubItem2" in="${assetSubItem1.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } }">
+                    <li>
+                        ${assetSubItem2?.encodeAsHTML()}
+                    </li>
+                </g:each> <!--assetSubItem2-->
+                </ul>
+
+            </div>
+
+        </g:each> <!--assetSubItem1-->
+        </ul>
+    </div>
+</div>
Index: trunk/grails-app/views/taskDetailed/show.gsp
===================================================================
--- trunk/grails-app/views/taskDetailed/show.gsp	(revision 751)
+++ trunk/grails-app/views/taskDetailed/show.gsp	(revision 798)
@@ -513,28 +513,40 @@
                                         <tr class="prop">
                                             <td valign="top" class="name">Procedure Id:</td>
-
-                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'id')}</td>
-
-                                        </tr>
-
-                                        <tr class="prop">
-                                            <td valign="top" class="name">Name:</td>
-
-                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'name')}</td>
-
-                                        </tr>
-
-                                        <tr class="prop">
-                                            <td valign="top" class="name">Description:</td>
-
-                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'description')}</td>
-
-                                        </tr>
-
-                                        <tr class="prop">
-                                            <td valign="top" class="name">Is Active:</td>
-
-                                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'isActive')}</td>
-
+                                            <td valign="top" class="value">
+                                                ${fieldValue(bean:taskProcedureInstance, field:'id')}
+                                            </td>
+                                        </tr>
+
+                                        <tr class="prop">
+                                            <td valign="top" class="name">Linked Task:</td>
+                                            <td valign="top" class="value">
+                                                <g:link controller="taskDetailed"
+                                                                action="show"
+                                                                id="${taskProcedureInstance.linkedTask.id}">
+                                                    ${taskProcedureInstance.linkedTask.encodeAsHTML()}
+                                                </g:link>
+                                            </td>
+                                        </tr>
+
+                                        <tr class="prop">
+                                            <td valign="top" class="name">Linked Asset:</td>
+                                            <td valign="top" class="value">
+                                                <g:render template="/shared/assetTreeCompact" model="['assetInstance': taskProcedureInstance.linkedTask.primaryAsset]" />
+                                            </td>
+                                        </tr>
+
+                                        <tr class="prop">
+                                            <td valign="top" class="name">Version:</td>
+                                            <td valign="top" class="value">
+                                                    ${fieldValue(bean:taskProcedureInstance, field:'version')}
+                                            </td>
+                                        </tr>
+
+                                        <tr class="prop">
+                                            <td valign="top" class="name">Last Updated:</td>
+                                            <td valign="top" class="value">
+                                                <g:formatDate date="${taskProcedureInstance.lastUpdated}"
+                                                                            format="EEE, dd-MMM-yyyy"/>
+                                            </td>
                                         </tr>
 
@@ -549,4 +561,37 @@
                             </div>
 
+                            <br />
+
+                            <g:if test="${taskProcedureInstance.documentReferences}">
+                                <div class="list">
+                                    <table>
+                                        <thead>
+                                            <tr>
+                                                <th>Document Reference</th>
+                                                <th>Location</th>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                            <g:each in="${taskProcedureInstance.documentReferences}" status="i" var="docRef">
+                                                <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
+
+                                                    <td valign="top" class="name">
+                                                        ${fieldValue(bean:docRef, field:'name')}
+                                                    </td>
+
+                                                    <td  valign="top" style="text-align:left;" class="value">
+                                                        <custom:easyUrl url="${docRef.location}" />
+                                                    </td>
+
+                                                </tr>
+                                            </g:each>
+
+                                        </tbody>
+                                    </table>
+                                </div>
+                            </g:if>
+
+                            <br />
+
                             <div class="list">
                                 <table>
@@ -554,8 +599,8 @@
                                         <tr>
                                             <th>Step</th>
+                                            <th>Assembly</th>
                                             <th>Description</th>
-                                            <th>Reasoning</th>
-                                            <th>Asset</th>
-                                            <th>Sub Item</th>
+                                            <th>Page Ref</th>
+                                            <th>Condition</th>
                                         </tr>
                                     </thead>
@@ -569,17 +614,20 @@
 
                                                 <td  valign="top" style="text-align:left;" class="value">
+                                                    <g:if test="${maintenanceAction.assetSubItem}">
+                                                        ${maintenanceAction.assetSubItem.parentItem?.encodeAsHTML()}
+                                                        --
+                                                        ${maintenanceAction.assetSubItem.encodeAsHTML()}
+                                                    </g:if>
+                                                </td>
+
+                                                <td  valign="top" style="text-align:left;" class="value">
                                                     ${fieldValue(bean:maintenanceAction, field:'description')}
                                                 </td>
 
                                                 <td  valign="top" style="text-align:left;" class="value">
-                                                    ${fieldValue(bean:maintenanceAction, field:'reasoning')}
+                                                    ${fieldValue(bean:maintenanceAction, field:'pageRef')}
                                                 </td>
 
                                                 <td  valign="top" style="text-align:left;" class="value">
-                                                    ${fieldValue(bean:maintenanceAction, field:'asset')}
-                                                </td>
-
-                                                <td  valign="top" style="text-align:left;" class="value">
-                                                    ${fieldValue(bean:maintenanceAction, field:'assetSubItem')}
                                                 </td>
 
Index: trunk/grails-app/views/taskProcedureDetailed/_documentReference.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/_documentReference.gsp	(revision 798)
+++ trunk/grails-app/views/taskProcedureDetailed/_documentReference.gsp	(revision 798)
@@ -0,0 +1,27 @@
+
+    <tr id="documentReferenceLazyList${i}" class="docRef-div" <g:if test="${docRef?.toBeDeleted}">style="display:none;"</g:if>>
+
+        <td valign="top" class="value ${hasErrors(bean:docRef,field:'name','errors')}">
+            <g:hiddenField name="documentReferenceLazyList[${i}].toBeDeleted" value="${docRef?.toBeDeleted}"/>
+            <g:hiddenField name='documentReferenceLazyList[${i}].isNew' value="${docRef?.id == null?'true':'false'}"/>
+            <g:textArea name="documentReferenceLazyList[${i}].name"
+                                    value="${docRef?.name}"
+                                    style="width:100%;height:auto;"
+                                    rows="2"
+                                    cols="25"/>
+        </td>
+
+        <td valign="top" class="value ${hasErrors(bean:docRef,field:'location','errors')}">
+            <g:textArea name="documentReferenceLazyList[${i}].location"
+                                    value="${docRef?.location}"
+                                    style="width:100%;height:auto;"
+                                    rows="2"
+                                    cols="25"/>
+        </td>
+
+        <td>
+            <span class="del-docRef">
+                <img src="${resource(dir:'images/skin', file:'database_delete.png')}" />
+            </span>
+        </td>
+    </tr>
Index: trunk/grails-app/views/taskProcedureDetailed/_documentReferences.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/_documentReferences.gsp	(revision 798)
+++ trunk/grails-app/views/taskProcedureDetailed/_documentReferences.gsp	(revision 798)
@@ -0,0 +1,62 @@
+<script type="text/javascript">
+    var docRef_childCount = ${taskProcedureInstance?.documentReferences.size()} + 0;
+    var docRef_wrapperId = "docRef_wrapper";
+    var docRef_cloneId = "documentReferenceLazyList_clone";
+    var docRef_lazyList = "documentReferenceLazyList";
+    var docRef_fields = ["toBeDeleted", "isNew", "name", "location"];
+    var docRef_focusField = "name";
+
+    // Click event on add button.
+    jQuery('.add-docRef').live('click', function() {
+        addChild(docRef_wrapperId, docRef_cloneId, docRef_lazyList, docRef_fields, docRef_focusField, docRef_childCount);
+        docRef_childCount++;
+    });
+
+    // Click event on delete buttons.
+    jQuery('.del-docRef').live('click', function() {
+        //find the parent div
+        var prnt = jQuery(this).parents(".docRef-div");
+        //find the deleted hidden input
+        var delInput = prnt.find("input[id$=toBeDeleted]");
+        //check if this is still not persisted
+        var newValue = prnt.find("input[id$=isNew]").attr('value');
+        //if it is new then i can safely remove from dom
+        if(newValue == 'true'){
+            prnt.remove();
+        }else{
+            //set the deletedFlag to true
+            delInput.attr('value','true');
+            //hide the div
+            prnt.hide();
+        }
+    });
+
+</script>
+
+    <div>
+        <table>
+            <thead>
+                <tr>
+
+                    <th>Document Reference</th>
+                    <th>Location</th>
+                    <th></th>
+
+                </tr>
+            </thead>
+            <tbody id="docRef_wrapper">
+                <g:each var="docRef" in="${taskProcedureInstance.documentReferences}" status="i">
+                        <g:render template="documentReference" model="['docRef': docRef,
+                                                                                                                    'i':i]" />
+                </g:each>
+            </tbody>
+        </table>
+    </div>
+
+    <br />
+
+    <div style="text-align:right;">
+        <span class="buttons add-docRef">
+            <input type="button" class="add" value="Add Document Ref" />
+        </span>
+    </div>
Index: trunk/grails-app/views/taskProcedureDetailed/_maintenanceAction.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/_maintenanceAction.gsp	(revision 798)
+++ trunk/grails-app/views/taskProcedureDetailed/_maintenanceAction.gsp	(revision 798)
@@ -0,0 +1,42 @@
+
+    <tr id="maintenanceActionLazyList${i}" class="ma-div" <g:if test="${ma?.toBeDeleted}">style="display:none;"</g:if>>
+
+        <td valign="top" class="value ${hasErrors(bean:tp,field:/maintenanceActionLazyList[$i].procedureStepNumber/,'errors')}">
+            <g:hiddenField name="maintenanceActionLazyList[${i}].toBeDeleted" value="${ma?.toBeDeleted}"/>
+            <g:hiddenField name='maintenanceActionLazyList[${i}].isNew' value="${ma?.id == null?'true':'false'}"/>
+            <g:textField name="maintenanceActionLazyList[${i}].procedureStepNumber"
+                                    value="${ma?.procedureStepNumber}"
+                                    style="width:3em;"/>
+        </td>
+
+        <td valign="top" class="value ${hasErrors(bean:ma,field:'assetSubItem','errors')}">
+            <g:select optionKey="id"
+                                from="${assemblies}"
+                                name="maintenanceActionLazyList[${i}].assetSubItem.id"
+                                value="${ma?.assetSubItem?.id}"
+                                noSelection="['null':/${g.message(code:'default.none.select.text')}/]">
+            </g:select>
+        </td>
+
+        <td valign="top" class="value ${hasErrors(bean:ma,field:'description','errors')}">
+            <g:textArea name="maintenanceActionLazyList[${i}].description"
+                                    value="${ma?.description}"
+                                    style="width:100%;height:auto;"
+                                    rows="2"
+                                    cols="25"/>
+        </td>
+
+        <td valign="top" class="value ${hasErrors(bean:ma,field:'pageRef','errors')}">
+            <g:textArea name="maintenanceActionLazyList[${i}].pageRef"
+                                    value="${ma?.pageRef}"
+                                    style="width:100%;height:auto;"
+                                    rows="2"
+                                    cols="25"/>
+        </td>
+
+        <td>
+            <span class="del-ma">
+                <img src="${resource(dir:'images/skin', file:'database_delete.png')}" />
+            </span>
+        </td>
+    </tr>
Index: trunk/grails-app/views/taskProcedureDetailed/_maintenanceActions.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/_maintenanceActions.gsp	(revision 798)
+++ trunk/grails-app/views/taskProcedureDetailed/_maintenanceActions.gsp	(revision 798)
@@ -0,0 +1,75 @@
+<script type="text/javascript">
+    var ma_childCount = ${taskProcedureInstance?.maintenanceActions.size()} + 0;
+    var ma_wrapperId = "ma_wrapper";
+    var ma_cloneId = "maintenanceActionLazyList_clone";
+    var ma_lazyList = "maintenanceActionLazyList";
+    var ma_fields = ["toBeDeleted", "isNew", "description", "pageRef", "assetSubItem.id", "procedureStepNumber"];
+    var ma_focusField = "procedureStepNumber";
+
+    // Click event on add button.
+    jQuery('.add-ma').live('click', function() {
+        addChild(ma_wrapperId, ma_cloneId, ma_lazyList, ma_fields, ma_focusField, ma_childCount);
+        ma_childCount++;
+    });
+
+    // Click event on delete buttons.
+    jQuery('.del-ma').live('click', function() {
+        //find the parent div
+        var prnt = jQuery(this).parents(".ma-div");
+        //find the deleted hidden input
+        var delInput = prnt.find("input[id$=toBeDeleted]");
+        //check if this is still not persisted
+        var newValue = prnt.find("input[id$=isNew]").attr('value');
+        //if it is new then i can safely remove from dom
+        if(newValue == 'true'){
+            prnt.remove();
+        }else{
+            //set the deletedFlag to true
+            delInput.attr('value','true');
+            //hide the div
+            prnt.hide();
+        }
+    });
+
+    jQuery(window).load(function() {
+        if(ma_childCount == 0) {
+            addChild(ma_wrapperId, ma_cloneId, ma_lazyList, ma_fields, ma_focusField, ma_childCount);
+            ma_childCount++;
+        }
+    });
+
+</script>
+
+
+
+    <div>
+        <table>
+            <thead>
+                <tr>
+
+                    <th>Step</th>
+                    <th>Assembly</th>
+                    <th>Description</th>
+                    <th>Page Ref</th>
+                    <th></th>
+
+                </tr>
+            </thead>
+            <tbody id="ma_wrapper">
+                <g:each var="ma" in="${taskProcedureInstance.maintenanceActions}" status="i">
+                        <g:render template="maintenanceAction" model="['tp':taskProcedureInstance,
+                                                                                                            'ma': ma,
+                                                                                                            'i':i,
+                                                                                                            'assemblies': assemblies]" />
+                </g:each>
+            </tbody>
+        </table>
+    </div>
+
+    <br />
+
+    <div style="text-align:right;">
+        <span class="buttons add-ma">
+            <input type="button" class="add" value="Add MaintenanceAction" />
+        </span>
+    </div>
Index: trunk/grails-app/views/taskProcedureDetailed/_taskProcedure.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/_taskProcedure.gsp	(revision 798)
+++ trunk/grails-app/views/taskProcedureDetailed/_taskProcedure.gsp	(revision 798)
@@ -0,0 +1,70 @@
+
+<div class="dialog">
+    <table>
+        <tbody>
+
+            <g:if test="${taskProcedureInstance.id}">
+                <tr class="prop">
+                    <td valign="top" class="name">Procedure Id:</td>
+                    <td valign="top" class="value">
+                        ${fieldValue(bean:taskProcedureInstance, field:'id')}
+                    </td>
+                </tr>
+            </g:if>
+
+            <tr class="prop">
+                <td valign="top" class="name">
+                    <label for="taskInstance">Linked Task:</label>
+                </td>
+                <td valign="top" name="taskInstance" class="value">
+                    <g:link controller="taskDetailed" action="show" id="${taskProcedureInstance.linkedTask.id}">
+                        ${taskProcedureInstance.linkedTask.encodeAsHTML()}
+                    </g:link>
+                </td>
+            </tr>
+
+            <tr class="prop">
+                <td valign="top" class="name">Linked Asset:</td>
+                <td valign="top" class="value">
+                    <g:render template="/shared/assetTreeCompact" model="['assetInstance': taskProcedureInstance.linkedTask.primaryAsset]" />
+                </td>
+            </tr>
+
+            <g:if test="${taskProcedureInstance.version}">
+                <tr class="prop">
+                    <td valign="top" class="name">Version:</td>
+                    <td valign="top" class="value">
+                            ${fieldValue(bean:taskProcedureInstance, field:'version')}
+                    </td>
+                </tr>
+
+                <tr class="prop">
+                    <td valign="top" class="name">Created By:</td>
+                    <td valign="top" class="value">
+                            ${fieldValue(bean:taskProcedureInstance, field:'createdBy')}
+                            on
+                            <g:formatDate date="${taskProcedureInstance.dateCreated}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
+                    </td>
+                </tr>
+
+                <tr class="prop">
+                    <td valign="top" class="name">Last Updated By:</td>
+                    <td valign="top" class="value">
+                            ${fieldValue(bean:taskProcedureInstance, field:'lastUpdatedBy')}
+                            on
+                            <g:formatDate date="${taskProcedureInstance.lastUpdated}" format="EEE, dd-MMM-yyyy @ HH:mm"/>
+                    </td>
+                </tr>
+            </g:if>
+
+        </tbody>
+    </table>
+
+    <br />
+    <g:render template="documentReferences" model="['taskProcedureInstance': taskProcedureInstance]" />
+
+    <br />
+    <g:render template="maintenanceActions" model="['taskProcedureInstance': taskProcedureInstance,
+                                                                                        'assemblies': assemblies]" />
+    <br />
+</div>
Index: trunk/grails-app/views/taskProcedureDetailed/create.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/create.gsp	(revision 751)
+++ trunk/grails-app/views/taskProcedureDetailed/create.gsp	(revision 798)
@@ -7,4 +7,5 @@
         <title>Create TaskProcedure</title>
         <nav:resources override="true"/>
+        <g:javascript src="dynamicOneToMany.js" />
     </head>
     <body>
@@ -13,60 +14,17 @@
         </div>
         <div class="body">
-            <g:if test="${flash.message}">
-            <div class="message">${flash.message}</div>
-            </g:if>
+            <g:render template="/shared/messages" />
+
             <g:hasErrors bean="${taskProcedureInstance}">
-            <div class="errors">
-                <g:renderErrors bean="${taskProcedureInstance}" as="list" />
-            </div>
+                <div class="errors">
+                    <g:renderErrors bean="${taskProcedureInstance}" as="list" />
+                </div>
             </g:hasErrors>
+
             <g:form action="save" method="post" >
-            <input type="hidden" name="taskInstance.id" value="${taskInstance?.id}" />
+                <input type="hidden" name="linkedTask.id" value="${taskProcedureInstance.linkedTask.id}" />
 
-                <div class="dialog">
-                    <table>
-                        <tbody>
+                <g:render template="taskProcedure" model="['taskProcedureInstance': taskProcedureInstance]" />
 
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="name">Name:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'name','errors')}">
-                                    <input type="text"  class="description" maxlength="75" id="name" name="name" value="${fieldValue(bean:taskProcedureInstance,field:'name')}"/>
-                                </td>
-                            </tr>
-
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="description">Description:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'description','errors')}">
-                                    <input type="text"  class="description" maxlength="100" id="description" name="description" value="${fieldValue(bean:taskProcedureInstance,field:'description')}"/>
-                                </td>
-                            </tr>
-
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="isActive">Is Active:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'isActive','errors')}">
-                                    <g:checkBox name="isActive" value="${taskProcedureInstance?.isActive}" ></g:checkBox>
-                                </td>
-                            </tr>
-
-                            <g:if test="${taskInstance}">
-                                <tr class="prop">
-                                    <td valign="top" class="name">
-                                        <label for="taskInstance">Linking with Task:</label>
-                                    </td>
-                                    <td valign="top" name="taskInstance" class="value">
-                                        ${taskInstance}
-                                    </td>
-                                </tr>
-                            </g:if>
-
-                        </tbody>
-                    </table>
-                </div>
                 <div class="buttons">
                     <span class="button"><input class="save" type="submit" value="Create" /></span>
@@ -74,4 +32,14 @@
             </g:form>
         </div>
+        <table style="display:none;">
+            <g:render template="documentReference" model="['docRef': null,
+                                                                                                        'i': '_clone']" />
+        </table>
+        <table style="display:none;">
+            <g:render template="maintenanceAction" model="['tp': null,
+                                                                                                'ma': null,
+                                                                                                'i': '_clone',
+                                                                                                'assemblies': assemblies]" />
+        </table>
     </body>
 </html>
Index: trunk/grails-app/views/taskProcedureDetailed/edit.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/edit.gsp	(revision 751)
+++ trunk/grails-app/views/taskProcedureDetailed/edit.gsp	(revision 798)
@@ -7,4 +7,5 @@
         <title>Edit TaskProcedure</title>
         <nav:resources override="true"/>
+        <g:javascript src="dynamicOneToMany.js" />
     </head>
     <body>
@@ -13,87 +14,35 @@
         </div>
         <div class="body">
-            <g:if test="${flash.message}">
-            <div class="message">${flash.message}</div>
-            </g:if>
+            <g:render template="/shared/messages" />
+
             <g:hasErrors bean="${taskProcedureInstance}">
-            <div class="errors">
-                <g:renderErrors bean="${taskProcedureInstance}" as="list" />
-            </div>
+                <div class="errors">
+                    <g:renderErrors bean="${taskProcedureInstance}" as="list" />
+                </div>
             </g:hasErrors>
+
             <g:form method="post" >
                 <input type="hidden" name="id" value="${taskProcedureInstance?.id}" />
                 <input type="hidden" name="version" value="${taskProcedureInstance?.version}" />
-                <div class="dialog">
-                    <table>
-                        <tbody>
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="name">Name:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'name','errors')}">
-                                    <input type="text"  class="description" maxlength="75" id="name" name="name" value="${fieldValue(bean:taskProcedureInstance,field:'name')}"/>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="description">Description:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'description','errors')}">
-                                    <input type="text"  class="description" maxlength="100" id="description" name="description" value="${fieldValue(bean:taskProcedureInstance,field:'description')}"/>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="isActive">Is Active:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'isActive','errors')}">
-                                    <g:checkBox name="isActive" value="${taskProcedureInstance?.isActive}" ></g:checkBox>
-                                </td>
-                            </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')}">
-                                    
-<ul>
-<g:each var="m" in="${taskProcedureInstance?.maintenanceActions?}">
-    <li><g:link controller="maintenanceActionDetailed" action="show" id="${m.id}">${m?.encodeAsHTML()}</g:link></li>
-</g:each>
-</ul>
-<g:link controller="maintenanceActionDetailed" params="['taskProcedure.id':taskProcedureInstance?.id]" action="create">+Add MaintenanceAction</g:link>
 
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="tasks">Tasks:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'tasks','errors')}">
-                                    
-<ul>
-<g:each var="t" in="${taskProcedureInstance?.tasks?}">
-    <li><g:link controller="taskDetailed" action="show" id="${t.id}">${t?.encodeAsHTML()}</g:link></li>
-</g:each>
-</ul>
-<g:link controller="taskDetailed" params="['taskProcedure.id':taskProcedureInstance?.id]" action="create">+Add Task</g:link>
+                <g:render template="taskProcedure" model="['taskProcedureInstance': taskProcedureInstance]" />
 
-                                </td>
-                            </tr> 
-                        
-                        </tbody>
-                    </table>
-                </div>
                 <div class="buttons">
                     <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="cancel" value="Cancel" action="Show"/></span>
                     <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
                 </div>
             </g:form>
         </div>
+        <table style="display:none;">
+            <g:render template="documentReference" model="['docRef': null,
+                                                                                                        'i': '_clone']" />
+        </table>
+        <table style="display:none;">
+            <g:render template="maintenanceAction" model="['tp': null,
+                                                                                                'ma': null,
+                                                                                                'i': '_clone',
+                                                                                                'assemblies': assemblies]" />
+        </table>
     </body>
 </html>
Index: trunk/grails-app/views/taskProcedureDetailed/list.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/list.gsp	(revision 751)
+++ trunk/grails-app/views/taskProcedureDetailed/list.gsp	(revision 798)
@@ -37,15 +37,11 @@
                         <thead>
                             <tr>
-                            
+
                                 <g:sortableColumn property="id" title="Id"  params="${filterParams}" />
-                            
-                                <g:sortableColumn property="name" title="Name"  params="${filterParams}" />
-                            
-                                <g:sortableColumn property="description" title="Description"  params="${filterParams}" />
-                            
-                                <g:sortableColumn property="isActive" title="Is Active"  params="${filterParams}" />
+                                <th>Description</th>
+                                <th>Asset</th>
 
                                 <th></th>
-                            
+
                             </tr>
                         </thead>
@@ -53,13 +49,11 @@
                         <g:each in="${taskProcedureInstanceList}" status="i" var="taskProcedureInstance">
                             <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/taskProcedureDetailed/show/${taskProcedureInstance.id}"'/>
-                            
+
                                 <td>${fieldValue(bean:taskProcedureInstance, field:'id')}</td>
-                            
-                                <td>${fieldValue(bean:taskProcedureInstance, field:'name')}</td>
-                            
-                                <td>${fieldValue(bean:taskProcedureInstance, field:'description')}</td>
-                            
-                                <td>${fieldValue(bean:taskProcedureInstance, field:'isActive')}</td>
-                                
+
+                                <td>${taskProcedureInstance.description.encodeAsHTML()}</td>
+
+                                <td>${taskProcedureInstance.asset?.encodeAsHTML()}</td>
+
                                 <td>
                                     <g:link action="show" id="${taskProcedureInstance.id}">
@@ -67,5 +61,5 @@
                                     </g:link>
                                 </td>
-                            
+
                             </tr>
                         </g:each>
@@ -83,5 +77,7 @@
                                     action="list"
                                     class="overlayPane"
-                                    excludeProperties="" />
+                                    additionalProperties="id"
+                                    excludeProperties=""
+                                    associatedProperties="linkedTask.description" />
         </div>
     </body>
Index: trunk/grails-app/views/taskProcedureDetailed/show.gsp
===================================================================
--- trunk/grails-app/views/taskProcedureDetailed/show.gsp	(revision 751)
+++ 	(revision )
@@ -1,89 +1,0 @@
-
-
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-        <meta name="layout" content="main" />
-        <title>Show TaskProcedure</title>
-        <nav:resources override="true"/>
-    </head>
-    <body>
-        <div class="nav">
-            <nav:renderSubItems group="navAlt"/>
-        </div>
-        <div class="body">
-            <g:if test="${flash.message}">
-            <div class="message">${flash.message}</div>
-            </g:if>
-            <div class="dialog">
-                <table>
-                    <tbody>
-
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Id:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'id')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Name:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'name')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Description:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'description')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Is Active:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'isActive')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Maintenance Actions:</td>
-                            
-                            <td  valign="top" style="text-align:left;" class="value">
-                                <ul>
-                                <g:each var="m" in="${taskProcedureInstance.maintenanceActions}">
-                                    <li><g:link controller="maintenanceActionDetailed" action="show" id="${m.id}">${m?.encodeAsHTML()}</g:link></li>
-                                </g:each>
-                                </ul>
-                            </td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Tasks:</td>
-                            
-                            <td  valign="top" style="text-align:left;" class="value">
-                                <ul>
-                                <g:each var="t" in="${taskProcedureInstance.tasks}">
-                                    <li><g:link controller="taskDetailed" action="show" id="${t.id}">${t?.encodeAsHTML()}</g:link></li>
-                                </g:each>
-                                </ul>
-                            </td>
-                            
-                        </tr>
-                    
-                    </tbody>
-                </table>
-            </div>
-            <div class="buttons">
-                <g:form>
-                    <input type="hidden" name="id" value="${taskProcedureInstance?.id}" />
-                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
-                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
-                </g:form>
-            </div>
-        </div>
-    </body>
-</html>
