Index: trunk/grails-app/controllers/AssetSubItemDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/AssetSubItemDetailedController.groovy	(revision 274)
+++ trunk/grails-app/controllers/AssetSubItemDetailedController.groovy	(revision 274)
@@ -0,0 +1,161 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class AssetSubItemDetailedController extends BaseController {
+    
+    def index = { redirect(controller: "assetDetailed", params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def show = {
+        def assetSubItemInstance = AssetSubItem.get( params.id )
+
+        if(!assetSubItemInstance) {
+            flash.message = "AssetSubItem not found with id ${params.id}"
+            redirect(controller: "assetDetailed", action: "search")
+        }
+        else { return [ assetSubItemInstance : assetSubItemInstance ] }
+    }
+
+    def delete = {
+        def assetSubItemInstance = AssetSubItem.get( params.id )
+        if(assetSubItemInstance) {
+            try {
+                assetSubItemInstance.delete(flush:true)
+                flash.message = "AssetSubItem ${params.id} deleted"
+                redirect(controller: "assetDetailed", action: "search")
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "AssetSubItem ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "AssetSubItem not found with id ${params.id}"
+            redirect(controller: "assetDetailed", action: "search")
+        }
+    }
+
+    def edit = {
+        def assetSubItemInstance = AssetSubItem.get( params.id )
+
+        if(!assetSubItemInstance) {
+            flash.message = "AssetSubItem not found with id ${params.id}"
+            redirect(controller: "assetDetailed", action: "search")
+        }
+        else {
+            return [ assetSubItemInstance : assetSubItemInstance ]
+        }
+    }
+
+    def update = {
+        def assetSubItemInstance = AssetSubItem.get( params.id )
+        if(assetSubItemInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(assetSubItemInstance.version > version) {
+
+                    assetSubItemInstance.errors.rejectValue("version", "assetSubItem.optimistic.locking.failure", "Another user has updated this AssetSubItem while you were editing.")
+                    render(view:'edit',model:[assetSubItemInstance:assetSubItemInstance])
+                    return
+                }
+            }
+
+            assetSubItemInstance.properties = params
+
+            if(!assetSubItemInstance.asset && !assetSubItemInstance.parentItem) {
+                flash.message = "Either an asset or parentItem is required."
+                render(view:'edit',model:[assetSubItemInstance:assetSubItemInstance])
+                return
+            }
+
+            if(assetSubItemInstance.asset && assetSubItemInstance.parentItem) {
+            flash.message = "Both an asset and parentItem may not be specified at the same time."
+                render(view:'edit',model:[parentItem:parentItem])
+                return
+            }
+
+            if(!assetSubItemInstance.hasErrors() && assetSubItemInstance.save(flush: true)) {
+                flash.message = "AssetSubItem ${params.id} updated"
+
+                if(assetSubItemInstance.asset)
+                    redirect(controller: "assetDetailed", action:"show", id: assetSubItemInstance.asset.id)
+                else {
+                    //Get the top parentItem.
+                    def parentItem = assetSubItemInstance.parentItem
+                    def i = 0
+                    while(parentItem?.parentItem) {
+                        parentItem = parentItem.parentItem
+                        // Protect against infinite recurrsion.
+                        i++
+                        if(i > 100)
+                            break
+                    }
+
+                    if(parentItem.asset)
+                        redirect(controller: "assetDetailed", action:"show", id: parentItem.asset.id)
+                    else
+                        redirect(action:"show", id: assetSubItemInstance.id) // End stop if all else fails.
+                }
+            }
+            else {
+                render(view:'edit',model:[assetSubItemInstance:assetSubItemInstance])
+            }
+        }
+        else {
+            flash.message = "AssetSubItem not found with id ${params.id}"
+            redirect(controller: "assetDetailed", action: "search")
+        }
+    }
+
+    def create = {
+        def assetSubItemInstance = new AssetSubItem()
+        assetSubItemInstance.properties = params
+        return ['assetSubItemInstance':assetSubItemInstance]
+    }
+
+    def save = {
+        def assetSubItemInstance = new AssetSubItem(params)
+
+        if(!assetSubItemInstance.asset && !assetSubItemInstance.parentItem) {
+            flash.message = "Either an asset or parentItem is required."
+            render(view:'create',model:[assetSubItemInstance:assetSubItemInstance])
+            return
+        }
+
+        if(assetSubItemInstance.asset && assetSubItemInstance.parentItem) {
+            flash.message = "Both an asset and parentItem may not be specified at the same time."
+            render(view:'create',model:[assetSubItemInstance:assetSubItemInstance])
+            return
+        }
+
+        if(!assetSubItemInstance.hasErrors() && assetSubItemInstance.save(flush: true)) {
+            flash.message = "AssetSubItem ${assetSubItemInstance.id} created"
+
+            if(assetSubItemInstance.asset)
+                redirect(controller: "assetDetailed", action:"show", id: assetSubItemInstance.asset.id)
+            else {
+                //Get the top parentItem.
+                def parentItem = assetSubItemInstance.parentItem
+                def i = 0
+                while(parentItem?.parentItem) {
+                    parentItem = parentItem.parentItem
+                    // Protect against infinite recurrsion.
+                    i++
+                    if(i > 100)
+                        break
+                }
+
+                if(parentItem.asset)
+                    redirect(controller: "assetDetailed", action:"show", id: parentItem.asset.id)
+                else
+                    redirect(action:"show", id: assetSubItemInstance.id) // End stop if all else fails.
+            }
+
+        }
+        else {
+            render(view:'create',model:[assetSubItemInstance:assetSubItemInstance])
+        }
+    } // end save()
+
+} // end class
Index: trunk/grails-app/controllers/AssetSubItemExtendedAttributeDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/AssetSubItemExtendedAttributeDetailedController.groovy	(revision 274)
+++ trunk/grails-app/controllers/AssetSubItemExtendedAttributeDetailedController.groovy	(revision 274)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class AssetSubItemExtendedAttributeDetailedController extends BaseController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ assetSubItemExtendedAttributeInstanceList: AssetSubItemExtendedAttribute.list( params ), assetSubItemExtendedAttributeInstanceTotal: AssetSubItemExtendedAttribute.count() ]
+    }
+
+    def show = {
+        def assetSubItemExtendedAttributeInstance = AssetSubItemExtendedAttribute.get( params.id )
+
+        if(!assetSubItemExtendedAttributeInstance) {
+            flash.message = "AssetSubItemExtendedAttribute not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ assetSubItemExtendedAttributeInstance : assetSubItemExtendedAttributeInstance ] }
+    }
+
+    def delete = {
+        def assetSubItemExtendedAttributeInstance = AssetSubItemExtendedAttribute.get( params.id )
+        if(assetSubItemExtendedAttributeInstance) {
+            try {
+                assetSubItemExtendedAttributeInstance.delete(flush:true)
+                flash.message = "AssetSubItemExtendedAttribute ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "AssetSubItemExtendedAttribute ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "AssetSubItemExtendedAttribute not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def assetSubItemExtendedAttributeInstance = AssetSubItemExtendedAttribute.get( params.id )
+
+        if(!assetSubItemExtendedAttributeInstance) {
+            flash.message = "AssetSubItemExtendedAttribute not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ assetSubItemExtendedAttributeInstance : assetSubItemExtendedAttributeInstance ]
+        }
+    }
+
+    def update = {
+        def assetSubItemExtendedAttributeInstance = AssetSubItemExtendedAttribute.get( params.id )
+        if(assetSubItemExtendedAttributeInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(assetSubItemExtendedAttributeInstance.version > version) {
+                    
+                    assetSubItemExtendedAttributeInstance.errors.rejectValue("version", "assetSubItemExtendedAttribute.optimistic.locking.failure", "Another user has updated this AssetSubItemExtendedAttribute while you were editing.")
+                    render(view:'edit',model:[assetSubItemExtendedAttributeInstance:assetSubItemExtendedAttributeInstance])
+                    return
+                }
+            }
+            assetSubItemExtendedAttributeInstance.properties = params
+            if(!assetSubItemExtendedAttributeInstance.hasErrors() && assetSubItemExtendedAttributeInstance.save(flush: true)) {
+                flash.message = "AssetSubItemExtendedAttribute ${params.id} updated"
+                redirect(action:show,id:assetSubItemExtendedAttributeInstance.id)
+            }
+            else {
+                render(view:'edit',model:[assetSubItemExtendedAttributeInstance:assetSubItemExtendedAttributeInstance])
+            }
+        }
+        else {
+            flash.message = "AssetSubItemExtendedAttribute not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def create = {
+        def assetSubItemExtendedAttributeInstance = new AssetSubItemExtendedAttribute()
+        assetSubItemExtendedAttributeInstance.properties = params
+        return ['assetSubItemExtendedAttributeInstance':assetSubItemExtendedAttributeInstance]
+    }
+
+    def save = {
+        def assetSubItemExtendedAttributeInstance = new AssetSubItemExtendedAttribute(params)
+        if(!assetSubItemExtendedAttributeInstance.hasErrors() && assetSubItemExtendedAttributeInstance.save(flush: true)) {
+            flash.message = "AssetSubItemExtendedAttribute ${assetSubItemExtendedAttributeInstance.id} created"
+            redirect(action:show,id:assetSubItemExtendedAttributeInstance.id)
+        }
+        else {
+            render(view:'create',model:[assetSubItemExtendedAttributeInstance:assetSubItemExtendedAttributeInstance])
+        }
+    }
+}
Index: trunk/grails-app/views/assetSubItemDetailed/create.gsp
===================================================================
--- trunk/grails-app/views/assetSubItemDetailed/create.gsp	(revision 274)
+++ trunk/grails-app/views/assetSubItemDetailed/create.gsp	(revision 274)
@@ -0,0 +1,78 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create AssetSubItem</title>
+    </head>
+    <body>
+        <div class="nav">
+            <h1>Create Sub Item</h1>
+        </div>
+        <div class="body">
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${assetSubItemInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${assetSubItemInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+
+                            <g:if test="${assetSubItemInstance?.asset}" >
+                                <g:hiddenField name="asset.id" value="${assetSubItemInstance.asset.id}" />
+                                <tr class="prop">
+                                    <td valign="top" class="name">
+                                        <label for="asset">Asset:</label>
+                                    </td>
+                                    <td valign="top" class="value">
+                                        ${assetSubItemInstance.asset.encodeAsHTML()}
+                                    </td>
+                                </tr>
+                            </g:if>
+
+                            <g:if test="${assetSubItemInstance?.parentItem}" >
+                                <g:hiddenField name="parentItem.id" value="${assetSubItemInstance.parentItem.id}" />
+                                <tr class="prop">
+                                    <td valign="top" class="name">
+                                        <label for="asset">Parent Item:</label>
+                                    </td>
+                                    <td valign="top" class="value">
+                                        ${assetSubItemInstance.parentItem.encodeAsHTML()}
+                                    </td>
+                                </tr>
+                            </g:if>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="name">Name:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'name','errors')}">
+                                    <input type="text" maxlength="50" id="name" name="name" value="${fieldValue(bean:assetSubItemInstance,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:assetSubItemInstance,field:'description','errors')}">
+                                    <input type="text" maxlength="100" id="description" name="description" value="${fieldValue(bean:assetSubItemInstance,field:'description')}"/>
+                                </td>
+                            </tr>
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/assetSubItemDetailed/edit.gsp
===================================================================
--- trunk/grails-app/views/assetSubItemDetailed/edit.gsp	(revision 274)
+++ trunk/grails-app/views/assetSubItemDetailed/edit.gsp	(revision 274)
@@ -0,0 +1,132 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit AssetSubItem</title>
+    </head>
+    <body>
+        <div class="nav">
+            <h1>Edit Sub Item</h1>
+        </div>
+        <div class="body">
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${assetSubItemInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${assetSubItemInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${assetSubItemInstance?.id}" />
+                <input type="hidden" name="version" value="${assetSubItemInstance?.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:assetSubItemInstance,field:'name','errors')}">
+                                    <input type="text" maxlength="50" id="name" name="name" value="${fieldValue(bean:assetSubItemInstance,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:assetSubItemInstance,field:'description','errors')}">
+                                    <input type="text" maxlength="100" id="description" name="description" value="${fieldValue(bean:assetSubItemInstance,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:assetSubItemInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${assetSubItemInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="asset">Asset:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'asset','errors')}">
+                                    <g:select optionKey="id" from="${Asset.list()}" name="asset.id" value="${assetSubItemInstance?.asset?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="parentItem">Parent Item:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'parentItem','errors')}">
+                                    <g:select optionKey="id" from="${AssetSubItem.list()}" name="parentItem.id" value="${assetSubItemInstance?.parentItem?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetSubItemExtendedAttributes">Asset Sub Item Extended Attributes:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'assetSubItemExtendedAttributes','errors')}">
+                                    
+<ul>
+<g:each var="a" in="${assetSubItemInstance?.assetSubItemExtendedAttributes?}">
+    <li><g:link controller="assetSubItemExtendedAttributeDetailed" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="assetSubItemExtendedAttributeDetailed" params="['assetSubItem.id':assetSubItemInstance?.id]" action="create">Add AssetSubItemExtendedAttribute</g:link>
+
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="maintenanceActions">Maintenance Actions:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'maintenanceActions','errors')}">
+                                    
+<ul>
+<g:each var="m" in="${assetSubItemInstance?.maintenanceActions?}">
+    <li><g:link controller="maintenanceActionDetailed" action="show" id="${m.id}">${m?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="maintenanceActionDetailed" params="['assetSubItem.id':assetSubItemInstance?.id]" action="create">Add MaintenanceAction</g:link>
+
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="subItems">Sub Items:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemInstance,field:'subItems','errors')}">
+                                    
+<ul>
+<g:each var="s" in="${assetSubItemInstance?.subItems?}">
+    <li><g:link controller="assetSubItemDetailed" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="assetSubItemDetailed" params="['assetSubItem.id':assetSubItemInstance?.id]" action="create">Add AssetSubItem</g:link>
+
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/assetSubItemDetailed/show.gsp
===================================================================
--- trunk/grails-app/views/assetSubItemDetailed/show.gsp	(revision 274)
+++ trunk/grails-app/views/assetSubItemDetailed/show.gsp	(revision 274)
@@ -0,0 +1,115 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show AssetSubItem</title>
+    </head>
+    <body>
+        <div class="nav">
+            <h1>Show Sub Item</h1>
+        </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:assetSubItemInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Name:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:assetSubItemInstance, field:'name')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Description:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:assetSubItemInstance, field:'description')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Is Active:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:assetSubItemInstance, field:'isActive')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Asset:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="assetDetailed" action="show" id="${assetSubItemInstance?.asset?.id}">${assetSubItemInstance?.asset?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Parent Item:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="assetSubItemDetailed" action="show" id="${assetSubItemInstance?.parentItem?.id}">${assetSubItemInstance?.parentItem?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Asset Sub Item Extended Attributes:</td>
+                            
+                            <td  valign="top" style="text-align:left;" class="value">
+                                <ul>
+                                <g:each var="a" in="${assetSubItemInstance.assetSubItemExtendedAttributes}">
+                                    <li><g:link controller="assetSubItemExtendedAttributeDetailed" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
+                                </g:each>
+                                </ul>
+                            </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="${assetSubItemInstance.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">Sub Items:</td>
+                            
+                            <td  valign="top" style="text-align:left;" class="value">
+                                <ul>
+                                <g:each var="s" in="${assetSubItemInstance.subItems}">
+                                    <li><g:link controller="assetSubItemDetailed" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>
+                                </g:each>
+                                </ul>
+                            </td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${assetSubItemInstance?.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>
Index: trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/create.gsp
===================================================================
--- trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/create.gsp	(revision 274)
+++ trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/create.gsp	(revision 274)
@@ -0,0 +1,72 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create AssetSubItemExtendedAttribute</title>
+    </head>
+    <body>
+        <div class="nav">
+            <h1>Create Extended Attribute</h1>
+        </div>
+        <div class="body">
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${assetSubItemExtendedAttributeInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${assetSubItemExtendedAttributeInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="value">Value:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'value','errors')}">
+                                    <input type="text" maxlength="100" id="value" name="value" value="${fieldValue(bean:assetSubItemExtendedAttributeInstance,field:'value')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${assetSubItemExtendedAttributeInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetSubItem">Asset Sub Item:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'assetSubItem','errors')}">
+                                    <g:select optionKey="id" from="${AssetSubItem.list()}" name="assetSubItem.id" value="${assetSubItemExtendedAttributeInstance?.assetSubItem?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="extendedAttributeType">Extended Attribute Type:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'extendedAttributeType','errors')}">
+                                    <g:select optionKey="id" from="${ExtendedAttributeType.list()}" name="extendedAttributeType.id" value="${assetSubItemExtendedAttributeInstance?.extendedAttributeType?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/edit.gsp
===================================================================
--- trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/edit.gsp	(revision 274)
+++ trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/edit.gsp	(revision 274)
@@ -0,0 +1,75 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit AssetSubItemExtendedAttribute</title>
+    </head>
+    <body>
+        <div class="nav">
+            <h1>Edit Extended Attribute</h1>
+        </div>
+        <div class="body">
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${assetSubItemExtendedAttributeInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${assetSubItemExtendedAttributeInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${assetSubItemExtendedAttributeInstance?.id}" />
+                <input type="hidden" name="version" value="${assetSubItemExtendedAttributeInstance?.version}" />
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="value">Value:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'value','errors')}">
+                                    <input type="text" maxlength="100" id="value" name="value" value="${fieldValue(bean:assetSubItemExtendedAttributeInstance,field:'value')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${assetSubItemExtendedAttributeInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetSubItem">Asset Sub Item:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'assetSubItem','errors')}">
+                                    <g:select optionKey="id" from="${AssetSubItem.list()}" name="assetSubItem.id" value="${assetSubItemExtendedAttributeInstance?.assetSubItem?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="extendedAttributeType">Extended Attribute Type:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetSubItemExtendedAttributeInstance,field:'extendedAttributeType','errors')}">
+                                    <g:select optionKey="id" from="${ExtendedAttributeType.list()}" name="extendedAttributeType.id" value="${assetSubItemExtendedAttributeInstance?.extendedAttributeType?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/show.gsp
===================================================================
--- trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/show.gsp	(revision 274)
+++ trunk/grails-app/views/assetSubItemExtendedAttributeDetailed/show.gsp	(revision 274)
@@ -0,0 +1,69 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show AssetSubItemExtendedAttribute</title>
+    </head>
+    <body>
+        <div class="nav">
+            <h1>Show Extended Attribute</h1>
+        </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:assetSubItemExtendedAttributeInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Value:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:assetSubItemExtendedAttributeInstance, field:'value')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Is Active:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:assetSubItemExtendedAttributeInstance, field:'isActive')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Asset Sub Item:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="assetSubItemDetailed" action="show" id="${assetSubItemExtendedAttributeInstance?.assetSubItem?.id}">${assetSubItemExtendedAttributeInstance?.assetSubItem?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Extended Attribute Type:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="extendedAttributeTypeDetailed" action="show" id="${assetSubItemExtendedAttributeInstance?.extendedAttributeType?.id}">${assetSubItemExtendedAttributeInstance?.extendedAttributeType?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${assetSubItemExtendedAttributeInstance?.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>
