Changes in / [20:30]


Ignore:
Location:
/trunk
Files:
56 added
17 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • /trunk/doc/DatabaseDesign.tex

    r20 r30  
    3030  \subitem and ease of maintenance.
    3131 \item SVN and FTP/SSH for collaboration.
    32  \item Django python web framework.
     32 \item Grails web framework.
    3333  \item Architecture MVC
    3434%TODO:
  • /trunk/src/grails-app/conf/BootStrap.groovy

    r20 r30  
    1 class BootStrap {
     1import grails.util.GrailsUtil
    22
    3      def init = { servletContext ->
     3class BootStrap
     4{
     5    def init = { servletContext ->
    46
    5         //TypeOfPersonGroup
    6          new TypeOfPersonGroup(name:"Department").save()
    7          new TypeOfPersonGroup(name:"Contractor").save()
    8          new TypeOfPersonGroup(name:"ProjectTeam").save()
    9          
    10          //PersonGroup
    11          new PersonGroup(typeOfPersonGroup:TypeOfPersonGroup.get(1),
    12              name:"Electrical").save()
    13          new PersonGroup(typeOfPersonGroup:TypeOfPersonGroup.get(2),
    14              name:"Kewl AirCon Guys").save()
    15          new PersonGroup(typeOfPersonGroup:TypeOfPersonGroup.get(3),
    16              name:"openMim").save()
    17      }
     7    println "**** BootStrap; GrailsUtil.environment: ${GrailsUtil.environment}"
     8   
     9        switch (GrailsUtil.environment)
     10        {
     11            case "development":
     12                        println "**** BootStrap detected development"
     13                        configureForDevelopment()
     14                        break
     15            case "test":
     16                        println "**** BootStrap detected test"
     17                        configureForTest()
     18                        break
     19            case "production":
     20                        println "**** BootStrap detected production"
     21                        configureForProduction()
     22                        break
     23        }
     24   
     25    }
    1826
    1927    def destroy = {
    20      }
     28    }
     29   
     30    /*
     31        Tasks to do when Grails is running in each environment.
     32    */
     33    void configureForDevelopment()
     34    {
     35        println "BootStrap configureForDevelopment() called"
     36   
     37        //TypeOfPersonGroup
     38        new PersonGroupType(name:"Department").save()
     39        new PersonGroupType(name:"Contractor").save()
     40        new PersonGroupType(name:"ProjectTeam").save()
     41   
     42        //PersonGroup
     43        new PersonGroup(personGroupType:PersonGroupType.findByName("Department"),
     44                        name:"Electrical").save()
     45        new PersonGroup(personGroupType:PersonGroupType.get(2),
     46                        name:"Kewl AirCon Guys").save()
     47        new PersonGroup(personGroupType:PersonGroupType.get(3),
     48                        name:"openMim").save()
     49           
     50        //Person
     51        new Person(personGroup:PersonGroup.get(1),
     52                   firstName:"FirstNameTech1",
     53                   lastName:"LastNameTech1").save()
     54        new Person(personGroup:PersonGroup.get(2),
     55                   firstName:"Joe",
     56                   lastName:"Samples").save()
     57               
     58        //TaskGroup
     59        new TaskGroup(name:"Engineering",
     60                      description:"Engineering task group").save()
     61        new TaskGroup(name:"Production",
     62                      description:"Production task group").save()
     63        new TaskGroup(name:"NewProject(s)",
     64                      description:" ").save()
     65                     
     66       
     67        //Task
     68        new Task(taskGroup:TaskGroup.findByName("Engineering"),
     69                 person:Person.get(1),
     70                 name:"Check specific level sensor",
     71                 description:"Has been noted as problematic, try recallibrating",
     72                 scheduledDate: new Date(),
     73                 targetDate: new Date() ).save()
     74        new Task(taskGroup:TaskGroup.findByName("Production"),
     75                 person:Person.get(2),
     76                 name:"Production Report",
     77                 description:"Production report for specific production run or shift",
     78                 scheduledDate: new Date(),
     79                 targetDate: new Date() ).save()
     80
     81        //EntryType
     82        new EntryType(name:"Fault").save()
     83        new EntryType(name:"WorkDone").save()
     84   
     85    }
     86   
     87    //---------------------------------------------------------
     88    void configureForTest()
     89    {
     90        println "BootStrap configureForTest() called"
     91    }
     92   
     93    //---------------------------------------------------------
     94    void configureForProduction()
     95    {
     96        println "BootStrap configureForProduction() called"
     97    }
     98
    2199}
  • /trunk/src/grails-app/controllers/EntryController.groovy

    r20 r30  
    11class EntryController {
     2   
     3    def index = { redirect(action:list,params:params) }
    24
    3     def scaffold = Entry
     5    // the delete, save and update actions only accept POST requests
     6    def allowedMethods = [delete:'POST', save:'POST', update:'POST']
     7
     8    def list = {
     9        if(!params.max) params.max = 10
     10        [ entryInstanceList: Entry.list( params ) ]
     11    }
     12
     13    def show = {
     14        def entryInstance = Entry.get( params.id )
     15
     16        if(!entryInstance) {
     17            flash.message = "Entry not found with id ${params.id}"
     18            redirect(action:list)
     19        }
     20        else { return [ entryInstance : entryInstance ] }
     21    }
     22
     23    def delete = {
     24        def entryInstance = Entry.get( params.id )
     25        if(entryInstance) {
     26            entryInstance.delete()
     27            flash.message = "Entry ${params.id} deleted"
     28            redirect(action:list)
     29        }
     30        else {
     31            flash.message = "Entry not found with id ${params.id}"
     32            redirect(action:list)
     33        }
     34    }
     35
     36    def edit = {
     37        def entryInstance = Entry.get( params.id )
     38
     39        if(!entryInstance) {
     40            flash.message = "Entry not found with id ${params.id}"
     41            redirect(action:list)
     42        }
     43        else {
     44            return [ entryInstance : entryInstance ]
     45        }
     46    }
     47
     48    def update = {
     49        def entryInstance = Entry.get( params.id )
     50        if(entryInstance) {
     51            entryInstance.properties = params
     52            if(!entryInstance.hasErrors() && entryInstance.save()) {
     53                flash.message = "Entry ${params.id} updated"
     54                redirect(action:show,id:entryInstance.id)
     55            }
     56            else {
     57                render(view:'edit',model:[entryInstance:entryInstance])
     58            }
     59        }
     60        else {
     61            flash.message = "Entry not found with id ${params.id}"
     62            redirect(action:edit,id:params.id)
     63        }
     64    }
     65
     66    def create = {
     67        def entryInstance = new Entry()
     68        entryInstance.properties = params
     69        return ['entryInstance':entryInstance]
     70    }
     71
     72    def save = {
     73        def entryInstance = new Entry(params)
     74        if(!entryInstance.hasErrors() && entryInstance.save()) {
     75            flash.message = "Entry ${entryInstance.id} created"
     76            redirect(action:show,id:entryInstance.id)
     77        }
     78        else {
     79            render(view:'create',model:[entryInstance:entryInstance])
     80        }
     81    }
    482}
  • /trunk/src/grails-app/controllers/ModificationController.groovy

    r20 r30  
    11class ModificationController {
     2   
     3    def index = { redirect(action:list,params:params) }
    24
    3     def scaffold = Modification
     5    // the delete, save and update actions only accept POST requests
     6    def allowedMethods = [delete:'POST', save:'POST', update:'POST']
     7
     8    def list = {
     9        if(!params.max) params.max = 10
     10        [ modificationInstanceList: Modification.list( params ) ]
     11    }
     12
     13    def show = {
     14        def modificationInstance = Modification.get( params.id )
     15
     16        if(!modificationInstance) {
     17            flash.message = "Modification not found with id ${params.id}"
     18            redirect(action:list)
     19        }
     20        else { return [ modificationInstance : modificationInstance ] }
     21    }
     22
     23    def delete = {
     24        def modificationInstance = Modification.get( params.id )
     25        if(modificationInstance) {
     26            modificationInstance.delete()
     27            flash.message = "Modification ${params.id} deleted"
     28            redirect(action:list)
     29        }
     30        else {
     31            flash.message = "Modification not found with id ${params.id}"
     32            redirect(action:list)
     33        }
     34    }
     35
     36    def edit = {
     37        def modificationInstance = Modification.get( params.id )
     38
     39        if(!modificationInstance) {
     40            flash.message = "Modification not found with id ${params.id}"
     41            redirect(action:list)
     42        }
     43        else {
     44            return [ modificationInstance : modificationInstance ]
     45        }
     46    }
     47
     48    def update = {
     49        def modificationInstance = Modification.get( params.id )
     50        if(modificationInstance) {
     51            modificationInstance.properties = params
     52            if(!modificationInstance.hasErrors() && modificationInstance.save()) {
     53                flash.message = "Modification ${params.id} updated"
     54                redirect(action:show,id:modificationInstance.id)
     55            }
     56            else {
     57                render(view:'edit',model:[modificationInstance:modificationInstance])
     58            }
     59        }
     60        else {
     61            flash.message = "Modification not found with id ${params.id}"
     62            redirect(action:edit,id:params.id)
     63        }
     64    }
     65
     66    def create = {
     67        def modificationInstance = new Modification()
     68        modificationInstance.properties = params
     69        return ['modificationInstance':modificationInstance]
     70    }
     71
     72    def save = {
     73        def modificationInstance = new Modification(params)
     74        if(!modificationInstance.hasErrors() && modificationInstance.save()) {
     75            flash.message = "Modification ${modificationInstance.id} created"
     76            redirect(action:show,id:modificationInstance.id)
     77        }
     78        else {
     79            render(view:'create',model:[modificationInstance:modificationInstance])
     80        }
     81    }
    482}
  • /trunk/src/grails-app/controllers/PersonController.groovy

    r20 r30  
    11class PersonController {
     2   
     3    def index = { redirect(action:list,params:params) }
    24
    3     def scaffold = Person
     5    // the delete, save and update actions only accept POST requests
     6    def allowedMethods = [delete:'POST', save:'POST', update:'POST']
     7
     8    def list = {
     9        if(!params.max) params.max = 10
     10        [ personInstanceList: Person.list( params ) ]
     11    }
     12
     13    def show = {
     14        def personInstance = Person.get( params.id )
     15
     16        if(!personInstance) {
     17            flash.message = "Person not found with id ${params.id}"
     18            redirect(action:list)
     19        }
     20        else { return [ personInstance : personInstance ] }
     21    }
     22
     23    def delete = {
     24        def personInstance = Person.get( params.id )
     25        if(personInstance) {
     26            personInstance.delete()
     27            flash.message = "Person ${params.id} deleted"
     28            redirect(action:list)
     29        }
     30        else {
     31            flash.message = "Person not found with id ${params.id}"
     32            redirect(action:list)
     33        }
     34    }
     35
     36    def edit = {
     37        def personInstance = Person.get( params.id )
     38
     39        if(!personInstance) {
     40            flash.message = "Person not found with id ${params.id}"
     41            redirect(action:list)
     42        }
     43        else {
     44            return [ personInstance : personInstance ]
     45        }
     46    }
     47
     48    def update = {
     49        def personInstance = Person.get( params.id )
     50        if(personInstance) {
     51            personInstance.properties = params
     52            if(!personInstance.hasErrors() && personInstance.save()) {
     53                flash.message = "Person ${params.id} updated"
     54                redirect(action:show,id:personInstance.id)
     55            }
     56            else {
     57                render(view:'edit',model:[personInstance:personInstance])
     58            }
     59        }
     60        else {
     61            flash.message = "Person not found with id ${params.id}"
     62            redirect(action:edit,id:params.id)
     63        }
     64    }
     65
     66    def create = {
     67        def personInstance = new Person()
     68        personInstance.properties = params
     69        return ['personInstance':personInstance]
     70    }
     71
     72    def save = {
     73        def personInstance = new Person(params)
     74        if(!personInstance.hasErrors() && personInstance.save()) {
     75            flash.message = "Person ${personInstance.id} created"
     76            redirect(action:show,id:personInstance.id)
     77        }
     78        else {
     79            render(view:'create',model:[personInstance:personInstance])
     80        }
     81    }
    482}
  • /trunk/src/grails-app/controllers/TaskController.groovy

    r20 r30  
    11class TaskController {
     2   
     3    def index = { redirect(action:list,params:params) }
    24
    3     def scaffold = Task
     5    // the delete, save and update actions only accept POST requests
     6    def allowedMethods = [delete:'POST', save:'POST', update:'POST']
     7
     8    def list = {
     9        if(!params.max) params.max = 10
     10        [ taskInstanceList: Task.list( params ) ]
     11    }
     12
     13    def show = {
     14        def taskInstance = Task.get( params.id )
     15
     16        if(!taskInstance) {
     17            flash.message = "Task not found with id ${params.id}"
     18            redirect(action:list)
     19        }
     20        else { return [ taskInstance : taskInstance ] }
     21    }
     22
     23    def delete = {
     24        def taskInstance = Task.get( params.id )
     25        if(taskInstance) {
     26            taskInstance.delete()
     27            flash.message = "Task ${params.id} deleted"
     28            redirect(action:list)
     29        }
     30        else {
     31            flash.message = "Task not found with id ${params.id}"
     32            redirect(action:list)
     33        }
     34    }
     35
     36    def edit = {
     37        def taskInstance = Task.get( params.id )
     38
     39        if(!taskInstance) {
     40            flash.message = "Task not found with id ${params.id}"
     41            redirect(action:list)
     42        }
     43        else {
     44            return [ taskInstance : taskInstance ]
     45        }
     46    }
     47
     48    def update = {
     49        def taskInstance = Task.get( params.id )
     50        if(taskInstance) {
     51            taskInstance.properties = params
     52            if(!taskInstance.hasErrors() && taskInstance.save()) {
     53                flash.message = "Task ${params.id} updated"
     54                redirect(action:show,id:taskInstance.id)
     55            }
     56            else {
     57                render(view:'edit',model:[taskInstance:taskInstance])
     58            }
     59        }
     60        else {
     61            flash.message = "Task not found with id ${params.id}"
     62            redirect(action:edit,id:params.id)
     63        }
     64    }
     65
     66    def create = {
     67        def taskInstance = new Task()
     68        taskInstance.properties = params
     69        return ['taskInstance':taskInstance]
     70    }
     71
     72    def save = {
     73        def taskInstance = new Task(params)
     74        if(!taskInstance.hasErrors() && taskInstance.save()) {
     75            flash.message = "Task ${taskInstance.id} created"
     76            redirect(action:show,id:taskInstance.id)
     77        }
     78        else {
     79            render(view:'create',model:[taskInstance:taskInstance])
     80        }
     81    }
    482}
  • /trunk/src/grails-app/controllers/TaskGroupController.groovy

    r20 r30  
    11class TaskGroupController {
     2   
     3    def index = { redirect(action:list,params:params) }
    24
    3     def scaffold = TaskGroup
     5    // the delete, save and update actions only accept POST requests
     6    def allowedMethods = [delete:'POST', save:'POST', update:'POST']
     7
     8    def list = {
     9        if(!params.max) params.max = 10
     10        [ taskGroupInstanceList: TaskGroup.list( params ) ]
     11    }
     12
     13    def show = {
     14        def taskGroupInstance = TaskGroup.get( params.id )
     15
     16        if(!taskGroupInstance) {
     17            flash.message = "TaskGroup not found with id ${params.id}"
     18            redirect(action:list)
     19        }
     20        else { return [ taskGroupInstance : taskGroupInstance ] }
     21    }
     22
     23    def delete = {
     24        def taskGroupInstance = TaskGroup.get( params.id )
     25        if(taskGroupInstance) {
     26            taskGroupInstance.delete()
     27            flash.message = "TaskGroup ${params.id} deleted"
     28            redirect(action:list)
     29        }
     30        else {
     31            flash.message = "TaskGroup not found with id ${params.id}"
     32            redirect(action:list)
     33        }
     34    }
     35
     36    def edit = {
     37        def taskGroupInstance = TaskGroup.get( params.id )
     38
     39        if(!taskGroupInstance) {
     40            flash.message = "TaskGroup not found with id ${params.id}"
     41            redirect(action:list)
     42        }
     43        else {
     44            return [ taskGroupInstance : taskGroupInstance ]
     45        }
     46    }
     47
     48    def update = {
     49        def taskGroupInstance = TaskGroup.get( params.id )
     50        if(taskGroupInstance) {
     51            taskGroupInstance.properties = params
     52            if(!taskGroupInstance.hasErrors() && taskGroupInstance.save()) {
     53                flash.message = "TaskGroup ${params.id} updated"
     54                redirect(action:show,id:taskGroupInstance.id)
     55            }
     56            else {
     57                render(view:'edit',model:[taskGroupInstance:taskGroupInstance])
     58            }
     59        }
     60        else {
     61            flash.message = "TaskGroup not found with id ${params.id}"
     62            redirect(action:edit,id:params.id)
     63        }
     64    }
     65
     66    def create = {
     67        def taskGroupInstance = new TaskGroup()
     68        taskGroupInstance.properties = params
     69        return ['taskGroupInstance':taskGroupInstance]
     70    }
     71
     72    def save = {
     73        def taskGroupInstance = new TaskGroup(params)
     74        if(!taskGroupInstance.hasErrors() && taskGroupInstance.save()) {
     75            flash.message = "TaskGroup ${taskGroupInstance.id} created"
     76            redirect(action:show,id:taskGroupInstance.id)
     77        }
     78        else {
     79            render(view:'create',model:[taskGroupInstance:taskGroupInstance])
     80        }
     81    }
    482}
  • /trunk/src/grails-app/domain/Entry.groovy

    r20 r30  
    22    Person person
    33    Task task
    4     Date dateTime
     4    EntryType entryType
     5    Date date
    56    Integer duration
    67    String comments
     
    89    static hasMany = [persons: Person]
    910
    10     static belongsTo = [TypeOfEntry, Task, Person]
     11    static belongsTo = [EntryType, Task, Person]
    1112
    1213    static constraints = {
    13         person(blank:false)
    14         task(blank:false)
    15         dateTime(nullable:true)
    16         duration(nullable:true)
    17         comments(maxLength:500)
     14        comments(maxSize:500)
    1815    }
    1916}
  • /trunk/src/grails-app/domain/Modification.groovy

    r20 r30  
    11class Modification {
    22    Person person
    3     TypeOfModification typeOfModification
     3    ModificationType modificationType
    44    Task task
    55    Date dateTime
    66    String comments
    77
    8     static belongsTo = [Person, TypeOfModification, Task]
     8    static belongsTo = [Person, ModificationType, Task]
    99
    1010    static constraints = {
    1111        person()
    12         typeOfModification()
     12        modificationType()
    1313        task()
    1414        dateTime()
  • /trunk/src/grails-app/domain/Person.groovy

    r20 r30  
    77
    88    static hasMany = [modifications : Modification,
    9                         entries : Entry, tasks : Task,
     9                        entries : Entry,
     10                        tasks : Task,
    1011                        personGroups : PersonGroup]
    1112
  • /trunk/src/grails-app/domain/PersonGroup.groovy

    r20 r30  
    11class PersonGroup {
    2     TypeOfPersonGroup typeOfPersonGroup
     2    PersonGroupType personGroupType
    33    String name
    44    String description = ""
     
    77    static hasMany = [persons : Person]
    88
    9     static belongsTo = TypeOfPersonGroup
     9    static belongsTo = PersonGroup
    1010
    1111    String toString() {
  • /trunk/src/grails-app/domain/TaskGroup.groovy

    r20 r30  
    22    String name
    33    String description
    4     boolean isActive
     4    boolean isActive = true
    55
    66    static hasMany = [tasks : Task]
  • /trunk/src/grails-app/views/layouts/main.gsp

    r20 r30  
    11<html>
    22    <head>
    3         <title><g:layoutTitle default="Grails" /></title>
     3        <title><g:layoutTitle default="openMim" /></title>
    44        <link rel="stylesheet" href="${createLinkTo(dir:'css',file:'main.css')}" />
    5         <link rel="shortcut icon" href="${createLinkTo(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
     5        <link rel="shortcut icon" href="${createLinkTo(dir:'images',file:'gnuMimsIcon.ico')}" type="image/x-icon" />
    66        <g:layoutHead />
    77        <g:javascript library="application" />                         
     
    1111            <img src="${createLinkTo(dir:'images',file:'spinner.gif')}" alt="Spinner" />
    1212        </div> 
    13         <div class="logo"><img src="${createLinkTo(dir:'images',file:'grails_logo.jpg')}" alt="Grails" /></div>
     13        <div class="logo"><img src="${createLinkTo(dir:'images',file:'gnuMimsLogo.jpg')}" alt="openMim" /></div>
    1414        <g:layoutBody />               
    1515    </body>     
  • /trunk/src/grails-app/views/personGroup/create.gsp

    r20 r30  
    5656                            <tr class="prop">
    5757                                <td valign="top" class="name">
    58                                     <label for="typeOfPersonGroup">Type Of Person Group:</label>
     58                                    <label for="personGroupType">Person Group Type:</label>
    5959                                </td>
    60                                 <td valign="top" class="value ${hasErrors(bean:personGroupInstance,field:'typeOfPersonGroup','errors')}">
    61                                     <g:select optionKey="id" from="${TypeOfPersonGroup.list()}" name="typeOfPersonGroup.id" value="${personGroupInstance?.typeOfPersonGroup?.id}" ></g:select>
     60                                <td valign="top" class="value ${hasErrors(bean:personGroupInstance,field:'personGroupType','errors')}">
     61                                    <g:select optionKey="id" from="${PersonGroupType.list()}" name="personGroupType.id" value="${personGroupInstance?.personGroupType?.id}" ></g:select>
    6262                                </td>
    6363                            </tr>
  • /trunk/src/grails-app/views/personGroup/edit.gsp

    r20 r30  
    5858                            <tr class="prop">
    5959                                <td valign="top" class="name">
     60                                    <label for="personGroupType">Person Group Type:</label>
     61                                </td>
     62                                <td valign="top" class="value ${hasErrors(bean:personGroupInstance,field:'personGroupType','errors')}">
     63                                    <g:select optionKey="id" from="${PersonGroupType.list()}" name="personGroupType.id" value="${personGroupInstance?.personGroupType?.id}" ></g:select>
     64                                </td>
     65                            </tr>
     66                       
     67                            <tr class="prop">
     68                                <td valign="top" class="name">
    6069                                    <label for="persons">Persons:</label>
    6170                                </td>
     
    7281                            </tr>
    7382                       
    74                             <tr class="prop">
    75                                 <td valign="top" class="name">
    76                                     <label for="typeOfPersonGroup">Type Of Person Group:</label>
    77                                 </td>
    78                                 <td valign="top" class="value ${hasErrors(bean:personGroupInstance,field:'typeOfPersonGroup','errors')}">
    79                                     <g:select optionKey="id" from="${TypeOfPersonGroup.list()}" name="typeOfPersonGroup.id" value="${personGroupInstance?.typeOfPersonGroup?.id}" ></g:select>
    80                                 </td>
    81                             </tr>
    82                        
    8383                        </tbody>
    8484                    </table>
  • /trunk/src/grails-app/views/personGroup/list.gsp

    r20 r30  
    3030                                <g:sortableColumn property="name" title="Name" />
    3131                       
    32                                 <th>Type Of Person Group</th>
     32                                <th>Person Group Type</th>
    3333                           
    3434                        </tr>
     
    4646                            <td>${fieldValue(bean:personGroupInstance, field:'name')}</td>
    4747                       
    48                             <td>${fieldValue(bean:personGroupInstance, field:'typeOfPersonGroup')}</td>
     48                            <td>${fieldValue(bean:personGroupInstance, field:'personGroupType')}</td>
    4949                       
    5050                        </tr>
  • /trunk/src/grails-app/views/personGroup/show.gsp

    r20 r30  
    5252                   
    5353                        <tr class="prop">
    54                             <td valign="top" class="name">Persons:</td>
     54                            <td valign="top" class="name">Person Group Type:</td>
    5555                           
    56                             <td valign="top" class="value">${fieldValue(bean:personGroupInstance, field:'persons')}</td>
     56                            <td valign="top" class="value"><g:link controller="personGroupType" action="show" id="${personGroupInstance?.personGroupType?.id}">${personGroupInstance?.personGroupType?.encodeAsHTML()}</g:link></td>
    5757                           
    5858                        </tr>
    5959                   
    6060                        <tr class="prop">
    61                             <td valign="top" class="name">Type Of Person Group:</td>
     61                            <td valign="top" class="name">Persons:</td>
    6262                           
    63                             <td valign="top" class="value"><g:link controller="typeOfPersonGroup" action="show" id="${personGroupInstance?.typeOfPersonGroup?.id}">${personGroupInstance?.typeOfPersonGroup?.encodeAsHTML()}</g:link></td>
     63                            <td valign="top" class="value">${fieldValue(bean:personGroupInstance, field:'persons')}</td>
    6464                           
    6565                        </tr>
  • /trunk/src/web-app/index.gsp

    r20 r30  
    11<html>
    22    <head>
    3         <title>Welcome to Grails</title>
     3        <title>Welcome to openMim</title>
    44                <meta name="layout" content="main" />
    55    </head>
    66    <body>
    7         <h1 style="margin-left:20px;">Welcome to Grails</h1>
    8         <p style="margin-left:20px;width:80%">Congratulations, you have successfully started your first Grails application! At the moment
    9         this is the default page, feel free to modify it to either redirect to a controller or display whatever
    10         content you may choose. Below is a list of controllers that are currently deployed in this application,
    11         click on each to execute its default action:</p>
     7        <h1 style="margin-left:20px;">Welcome to openMim</h1>
     8        <p style="margin-left:20px;width:80%">
     9        Home
     10        </p>
    1211        <div class="dialog" style="margin-left:20px;width:60%;">
    1312            <ul>
Note: See TracChangeset for help on using the changeset viewer.