Changeset 39 for trunk/src/grails-app


Ignore:
Timestamp:
Jan 27, 2009, 11:02:59 PM (16 years ago)
Author:
gav
Message:

Setup Boostrap and DataSource? so that we have demo data in prod env for deployin
g demo. Adjust the entry domain and rebuild views and controller.

Location:
trunk/src/grails-app
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/grails-app/conf/BootStrap.groovy

    r34 r39  
    55    def init = { servletContext ->
    66
    7     println "**** BootStrap; GrailsUtil.environment: ${GrailsUtil.environment}"
     7    println "**** BootStrap GrailsUtil.environment = ${GrailsUtil.environment}"
    88   
    99        switch (GrailsUtil.environment)
    1010        {
    1111            case "development":
    12                         println "**** BootStrap detected development"
    13                         configureForDevelopment()
     12                        bootStrapDemoData()
    1413                        break
    1514            case "test":
    16                         println "**** BootStrap detected test"
    17                         configureForTest()
    1815                        break
    1916            case "production":
    20                         println "**** BootStrap detected production"
    21                         configureForProduction()
     17                        bootStrapDemoData()
    2218                        break
    2319        }
     
    2723    def destroy = {
    2824    }
    29    
    30     /*
    31         Tasks to do when Grails is running in each environment.
    32     */
    33     void configureForDevelopment()
     25
     26    //Insert some demo/startup data.
     27    void bootStrapDemoData()
    3428    {
    35         println "BootStrap configureForDevelopment() called"
     29        println "BootStrapping demo data..."
    3630   
    3731        //TypeOfPersonGroup
     
    5044        //Person
    5145        new Person(personGroup:PersonGroup.get(1),
    52                    firstName:"FirstNameTech1",
    53                    lastName:"LastNameTech1").save()
     46                   firstName:"Craig",
     47                   lastName:"SuperTech").save()
    5448        new Person(personGroup:PersonGroup.get(2),
    5549                   firstName:"Joe",
    5650                   lastName:"Samples").save()
     51        new Person(personGroup:PersonGroup.get(1),
     52                   firstName:"Production",
     53                   lastName:"Mann").save()
    5754               
    5855        //TaskGroup
     
    8279        new EntryType(name:"Fault").save()
    8380        new EntryType(name:"WorkDone").save()
     81        new EntryType(name:"Production Report").save()
    8482
    8583        //ModificationType
     
    9391        new ModificationType(name:"AssignedToModified").save()
    9492        new ModificationType(name:"NameModified").save()
    95 
    96 
     93       
     94        println "BootStrapping demo data...completed."
    9795   
    98     }
    99    
    100     //---------------------------------------------------------
    101     void configureForTest()
    102     {
    103         println "BootStrap configureForTest() called"
    104     }
    105    
    106     //---------------------------------------------------------
    107     void configureForProduction()
    108     {
    109         println "BootStrap configureForProduction() called"
    11096    }
    11197
  • trunk/src/grails-app/conf/DataSource.groovy

    r16 r39  
    1010    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'
    1111}
    12 // environment specific settings
     12
     13//environment specific settings
     14//create-drop:  drop tables and data between sessions, then insert from Bootstrap.
     15//create:       drop data between sessions, can't explain the rest.
     16//update:       keep data, update tables as required, keeps inserting from BootStrap.
    1317environments {
    1418        development {
     
    2630        production {
    2731                dataSource {
    28                         dbCreate = "update"
    29                         url = "jdbc:hsqldb:file:prodDb;shutdown=true"
     32                        //Delete dbCreate line after setup!
     33            dbCreate = "create-drop"
     34                        //url = "jdbc:hsqldb:file:prodDb;shutdown=true"
     35            url = "jdbc:hsqldb:mem:devDB"
    3036                }
    3137        }
  • trunk/src/grails-app/domain/Entry.groovy

    r25 r39  
    44    EntryType entryType
    55    Date date
    6     Integer duration
     6    Integer durationHours = 0
     7    Integer durationMinutes = 0
    78    String comments
    8 
    9     static hasMany = [persons: Person]
    109
    1110    static belongsTo = [EntryType, Task, Person]
    1211
    1312    static constraints = {
     13        task()
    1414        comments(maxSize:500)
     15        date()
     16        durationHours(min:0)
     17        durationMinutes(min:0,max:59)
     18       
    1519    }
    1620}
  • trunk/src/grails-app/views/entry/create.gsp

    r25 r39  
    2929                            <tr class="prop">
    3030                                <td valign="top" class="name">
     31                                    <label for="task">Task:</label>
     32                                </td>
     33                                <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'task','errors')}">
     34                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${entryInstance?.task?.id}" ></g:select>
     35                                </td>
     36                            </tr>
     37                       
     38                            <tr class="prop">
     39                                <td valign="top" class="name">
    3140                                    <label for="comments">Comments:</label>
    3241                                </td>
     
    4756                            <tr class="prop">
    4857                                <td valign="top" class="name">
    49                                     <label for="duration">Duration:</label>
     58                                    <label for="durationHours">Duration Hours:</label>
    5059                                </td>
    51                                 <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'duration','errors')}">
    52                                     <input type="text" id="duration" name="duration" value="${fieldValue(bean:entryInstance,field:'duration')}" />
     60                                <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'durationHours','errors')}">
     61                                    <input type="text" id="durationHours" name="durationHours" value="${fieldValue(bean:entryInstance,field:'durationHours')}" />
     62                                </td>
     63                            </tr>
     64                       
     65                            <tr class="prop">
     66                                <td valign="top" class="name">
     67                                    <label for="durationMinutes">Duration Minutes:</label>
     68                                </td>
     69                                <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'durationMinutes','errors')}">
     70                                    <input type="text" id="durationMinutes" name="durationMinutes" value="${fieldValue(bean:entryInstance,field:'durationMinutes')}" />
    5371                                </td>
    5472                            </tr>
     
    7290                            </tr>
    7391                       
    74                             <tr class="prop">
    75                                 <td valign="top" class="name">
    76                                     <label for="task">Task:</label>
    77                                 </td>
    78                                 <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'task','errors')}">
    79                                     <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${entryInstance?.task?.id}" ></g:select>
    80                                 </td>
    81                             </tr>
    82                        
    8392                        </tbody>
    8493                    </table>
  • trunk/src/grails-app/views/entry/edit.gsp

    r25 r39  
    3131                            <tr class="prop">
    3232                                <td valign="top" class="name">
     33                                    <label for="task">Task:</label>
     34                                </td>
     35                                <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'task','errors')}">
     36                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${entryInstance?.task?.id}" ></g:select>
     37                                </td>
     38                            </tr>
     39                       
     40                            <tr class="prop">
     41                                <td valign="top" class="name">
    3342                                    <label for="comments">Comments:</label>
    3443                                </td>
     
    4958                            <tr class="prop">
    5059                                <td valign="top" class="name">
    51                                     <label for="duration">Duration:</label>
     60                                    <label for="durationHours">Duration Hours:</label>
    5261                                </td>
    53                                 <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'duration','errors')}">
    54                                     <input type="text" id="duration" name="duration" value="${fieldValue(bean:entryInstance,field:'duration')}" />
     62                                <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'durationHours','errors')}">
     63                                    <input type="text" id="durationHours" name="durationHours" value="${fieldValue(bean:entryInstance,field:'durationHours')}" />
     64                                </td>
     65                            </tr>
     66                       
     67                            <tr class="prop">
     68                                <td valign="top" class="name">
     69                                    <label for="durationMinutes">Duration Minutes:</label>
     70                                </td>
     71                                <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'durationMinutes','errors')}">
     72                                    <input type="text" id="durationMinutes" name="durationMinutes" value="${fieldValue(bean:entryInstance,field:'durationMinutes')}" />
    5573                                </td>
    5674                            </tr>
     
    7492                            </tr>
    7593                       
    76                             <tr class="prop">
    77                                 <td valign="top" class="name">
    78                                     <label for="persons">Persons:</label>
    79                                 </td>
    80                                 <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'persons','errors')}">
    81                                    
    82 <ul>
    83 <g:each var="p" in="${entryInstance?.persons?}">
    84     <li><g:link controller="person" action="show" id="${p.id}">${p?.encodeAsHTML()}</g:link></li>
    85 </g:each>
    86 </ul>
    87 <g:link controller="person" params="['entry.id':entryInstance?.id]" action="create">Add Person</g:link>
    88 
    89                                 </td>
    90                             </tr>
    91                        
    92                             <tr class="prop">
    93                                 <td valign="top" class="name">
    94                                     <label for="task">Task:</label>
    95                                 </td>
    96                                 <td valign="top" class="value ${hasErrors(bean:entryInstance,field:'task','errors')}">
    97                                     <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${entryInstance?.task?.id}" ></g:select>
    98                                 </td>
    99                             </tr>
    100                        
    10194                        </tbody>
    10295                    </table>
  • trunk/src/grails-app/views/entry/list.gsp

    r25 r39  
    2424                                <g:sortableColumn property="id" title="Id" />
    2525                       
     26                                <th>Task</th>
     27                           
    2628                                <g:sortableColumn property="comments" title="Comments" />
    2729                       
    2830                                <g:sortableColumn property="date" title="Date" />
    2931                       
    30                                 <g:sortableColumn property="duration" title="Duration" />
     32                                <g:sortableColumn property="durationHours" title="Duration Hours" />
    3133                       
    32                                 <th>Entry Type</th>
    33                            
    34                                 <th>Person</th>
    35                            
     34                                <g:sortableColumn property="durationMinutes" title="Duration Minutes" />
     35                       
    3636                        </tr>
    3737                    </thead>
     
    4242                            <td><g:link action="show" id="${entryInstance.id}">${fieldValue(bean:entryInstance, field:'id')}</g:link></td>
    4343                       
     44                            <td>${fieldValue(bean:entryInstance, field:'task')}</td>
     45                       
    4446                            <td>${fieldValue(bean:entryInstance, field:'comments')}</td>
    4547                       
    4648                            <td>${fieldValue(bean:entryInstance, field:'date')}</td>
    4749                       
    48                             <td>${fieldValue(bean:entryInstance, field:'duration')}</td>
     50                            <td>${fieldValue(bean:entryInstance, field:'durationHours')}</td>
    4951                       
    50                             <td>${fieldValue(bean:entryInstance, field:'entryType')}</td>
    51                        
    52                             <td>${fieldValue(bean:entryInstance, field:'person')}</td>
     52                            <td>${fieldValue(bean:entryInstance, field:'durationMinutes')}</td>
    5353                       
    5454                        </tr>
  • trunk/src/grails-app/views/entry/show.gsp

    r25 r39  
    3131                   
    3232                        <tr class="prop">
     33                            <td valign="top" class="name">Task:</td>
     34                           
     35                            <td valign="top" class="value"><g:link controller="task" action="show" id="${entryInstance?.task?.id}">${entryInstance?.task?.encodeAsHTML()}</g:link></td>
     36                           
     37                        </tr>
     38                   
     39                        <tr class="prop">
    3340                            <td valign="top" class="name">Comments:</td>
    3441                           
     
    4552                   
    4653                        <tr class="prop">
    47                             <td valign="top" class="name">Duration:</td>
     54                            <td valign="top" class="name">Duration Hours:</td>
    4855                           
    49                             <td valign="top" class="value">${fieldValue(bean:entryInstance, field:'duration')}</td>
     56                            <td valign="top" class="value">${fieldValue(bean:entryInstance, field:'durationHours')}</td>
     57                           
     58                        </tr>
     59                   
     60                        <tr class="prop">
     61                            <td valign="top" class="name">Duration Minutes:</td>
     62                           
     63                            <td valign="top" class="value">${fieldValue(bean:entryInstance, field:'durationMinutes')}</td>
    5064                           
    5165                        </tr>
     
    6579                        </tr>
    6680                   
    67                         <tr class="prop">
    68                             <td valign="top" class="name">Persons:</td>
    69                            
    70                             <td valign="top" class="value">${fieldValue(bean:entryInstance, field:'persons')}</td>
    71                            
    72                         </tr>
    73                    
    74                         <tr class="prop">
    75                             <td valign="top" class="name">Task:</td>
    76                            
    77                             <td valign="top" class="value"><g:link controller="task" action="show" id="${entryInstance?.task?.id}">${entryInstance?.task?.encodeAsHTML()}</g:link></td>
    78                            
    79                         </tr>
    80                    
    8181                    </tbody>
    8282                </table>
Note: See TracChangeset for help on using the changeset viewer.