Changeset 137 for trunk/grails-app


Ignore:
Timestamp:
Sep 1, 2009, 10:10:43 PM (15 years ago)
Author:
gav
Message:

Update to grails-1.1.1 release.
Fix WorkDone? and Fault entries not showing after update, now using criteria.
Work on TaskRecurringSchedule, add DateUtilService class, regenerate views to suite.
Finally have correct rollback behaviour on TaskRecurringSchedule? domain object updates by using transactions.
Added name to copyright since the license has no meaning without it.

Location:
trunk/grails-app
Files:
2 added
16 edited

Legend:

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

    r136 r137  
    358358
    359359        //Entry #1
    360         entryInstance = new Entry(enteredBy: Person.get(6),
     360        entryInstance = new Entry(enteredBy: Person.get(3),
    361361                                                    task: Task.get(1),
    362362                                                    entryType: EntryType.findByName("Fault"),
     
    611611
    612612        //MaintenanceAction #1
    613         maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, active E-stop S1-S12 and ensure machine cannot run",
     613        maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, activate E-stops S1-S12 and ensure machine cannot run",
    614614                                                                                                        procedureStepNumber: 1,
    615615                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
  • trunk/grails-app/controllers/TaskDetailedController.groovy

    r134 r137  
    3131                        params.order = "desc"
    3232                        params.sort = "id"
     33                       
     34                        def entryWorkDoneList = Entry.withCriteria {
     35                                                                                                                                def entryType = EntryType.findByName("WorkDone")
     36                                                                                                                                eq("entryType", entryType)
     37                                                                                                                                eq("task", taskInstance)
     38                                                                                                                }
     39                       
     40                        def entryFaultList = Entry.withCriteria {
     41                                                                                                                                def entryType = EntryType.findByName("Fault")
     42                                                                                                                                eq("entryType", entryType)
     43                                                                                                                                eq("task", taskInstance)
     44                                                                                                                }
    3345
    3446                        def subTaskInstanceList = Task.findAllByParentTask(taskInstance, params)
     
    5365            }
    5466                       
    55             return [ taskInstance : taskInstance,
     67            return [ taskInstance: taskInstance,
     68                                                        entryWorkDoneList: entryWorkDoneList,
     69                                                        entryFaultList: entryFaultList,
    5670                            taskProcedureInstance: taskProcedureInstance,
    5771                            taskProcedureExits: taskProcedureExits,
  • trunk/grails-app/controllers/TaskRecurringScheduleDetailedController.groovy

    r136 r137  
    11import org.codehaus.groovy.grails.plugins.springsecurity.Secured
    22import org.codehaus.groovy.runtime.TimeCategory
     3import java.text.SimpleDateFormat
    34
    45class TaskRecurringScheduleDetailedController extends BaseController {
    56   
     7        def dateUtilService
     8       
    69    def index = { redirect(action:list,params:params) }
    710
     
    5154        }
    5255        else {
    53             return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ]
     56            return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance]
    5457        }
    5558    }
    5659
    5760    def update = {
    58         def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
    59         if(taskRecurringScheduleInstance) {
    60             if(params.version) {
    61                 def version = params.version.toLong()
    62                 if(taskRecurringScheduleInstance.version > version) {
     61                TaskRecurringSchedule.withTransaction { status ->
     62       
     63                def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
     64                        if(taskRecurringScheduleInstance) {
     65                               
     66                                if(params.version) {
     67                                        def version = params.version.toLong()
     68                                        if(taskRecurringScheduleInstance.version > version) {
     69                                                taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this TaskRecurringSchedule while you were editing.")
     70                                                render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
     71                                                return
     72                                        }
     73                                }
     74                                       
     75                                Date originalDate = taskRecurringScheduleInstance.startDate
     76                                taskRecurringScheduleInstance.properties = params  // Domain object is now 'dirty'.
     77                                Date newDate = taskRecurringScheduleInstance.startDate
     78       
     79                                // If user changes startDate then ensure it is in the future, otherwise it's ok to keep the original date.
     80                                if(originalDate.getTime() != newDate.getTime())
     81                                {
     82                                        if(newDate < dateUtilService.getToday())
     83                                        {
     84                                                status.setRollbackOnly()  // Only allow the transaction to Rollback, preventing flush due to 'dirty'.
     85                                                taskRecurringScheduleInstance.errors.rejectValue("startDate", "taskRecurring.startDate.NotInTheFuture")
     86                                                render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
     87                                                return
     88                                        }
     89                                }
     90                                       
     91                                taskRecurringScheduleInstance.nextTargetStartDate = taskRecurringScheduleInstance.startDate
     92                                taskRecurringScheduleInstance.setNextGenerationDate()
     93                                taskRecurringScheduleInstance.setNextTargetCompletionDate()
    6394                   
    64                     taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this TaskRecurringSchedule while you were editing.")
    65                     render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
    66                     return
    67                 }
    68             }
    69 //             taskRecurringScheduleInstance.properties = params
    70             setUpdateProperties()
    71                    
    72             if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
    73                 flash.message = "TaskRecurringSchedule ${params.id} updated"
    74                 redirect(action:show,id:taskRecurringScheduleInstance.id)
    75             }
    76             else {
    77                 render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
    78             }
    79         }
    80         else {
    81             flash.message = "TaskRecurringSchedule not found with id ${params.id}"
    82             redirect(action:edit,id:params.id)
    83         }
    84     }
     95                                if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save())
     96                                {
     97                                        flash.message = "TaskRecurringSchedule ${params.id} updated"
     98                                        redirect(action:show,id:taskRecurringScheduleInstance.id)
     99                                }
     100                                else
     101                                {
     102                                        render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
     103                                }
     104                        }
     105                        else
     106                        {
     107                                flash.message = "TaskRecurringSchedule not found with id ${params.id}"
     108                                redirect(action:edit,id:params.id)
     109                        }
     110                       
     111                } // end withTransaction                       
     112        } // end update()
    85113       
    86114    def create = {
     
    95123            redirect(controller:"taskDetailed", action:"list")
    96124        }
    97     }
     125    } // end create()
    98126
    99127    def save = {
     
    106134                }
    107135                else {
     136                       
     137                        if(taskRecurringScheduleInstance.startDate < dateUtilService.getToday()) {
     138                                taskRecurringScheduleInstance.errors.rejectValue("startDate", "taskRecurring.startDate.NotInTheFuture")
     139                        }
    108140                       
    109141                        if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
     
    125157                }
    126158
    127     }
    128                
    129     private setUpdateProperties() {
    130         def originalStartDate = taskRecurringScheduleInstance.startDate
    131        
    132         if(taskRecurringScheduleInstance.startDate == params.startDate) {
    133             taskRecurringScheduleInstance.properties = params
    134         }
    135         else {
    136             taskRecurringScheduleInstance.properties = params
    137             taskRecurringScheduleInstance.nextTargetStartDate = params.startDate
    138         }
    139        
    140     }
     159    } // end save()
    141160
    142 /*   
    143     private Date calculateNextDueDate(recurEvery, period, startDate) {
    144         def nextDue = new Date()
    145        
    146         switch (period) {
    147             case "Day(s)":
    148                 use(TimeCategory) {
    149                     nextDue = startDate + recurEvery.days
    150                 }
    151                 return nextDue
    152             case "Week(s)":
    153                 use(TimeCategory) {
    154                     nextDue = startDate + recurEvery.weeks
    155                 }
    156                 return nextDue
    157             case "Month(s)":
    158                 use(TimeCategory) {
    159                     nextDue = startDate + recurEvery.months
    160                 }
    161                 return nextDue
    162             case "Year(s)":
    163                 use(TimeCategory) {
    164                     nextDue = startDate + recurEvery.years
    165                 }
    166                 return nextDue
    167             default:
    168                 return nextDue
    169         }
    170        
    171     }*/
    172161}
  • trunk/grails-app/domain/TaskRecurringSchedule.groovy

    r136 r137  
    2323
    2424    static constraints = {
    25 //              startDate(validator: {return (it > new Date())})
    26         recurEvery(min:0, max:365)
     25        recurEvery(min:1, max:365)
    2726        taskDuration(min:0, max:365)
    2827        generateAhead(min:0, max:365)
     
    3534    }
    3635   
    37     //As of Grails 1.1 this does not fire/pass before validation.
    38     //But setting defaults above and placing this code here in the hope that this will be fixed in future versions.
     36    // As of Grails 1.1.1 this does not fire/pass before validation.
     37    // But setting some defaults above to pass validation and placing this code here
     38        // in the hope that this will be fixed in future versions.
    3939    def beforeInsert = {
    40         def now = new Date()
    41        
    4240        nextTargetStartDate = startDate
    43        
    44         //nextGenerationDate
     41        setNextGenerationDate()
     42        setNextTargetCompletionDate()
     43    }
     44   
     45    public void setNextGenerationDate() {
    4546        switch (generateAheadPeriod.period) {
    4647            case "Day(s)":
     
    6768                break
    6869        }
    69        
     70        def now = new Date()
    7071        if( nextGenerationDate < now) {nextGenerationDate = now}
    71        
    72         //nextTargetCompletionDate
     72    }
     73   
     74    public void setNextTargetCompletionDate() {
    7375        switch (taskDurationPeriod.period) {
    7476            case "Day(s)":
     
    9294                }
    9395                break
    94         default:
     96            default:
    9597                break
    9698        }
    97        
    9899    }
    99 
     100   
    100101}
    101102
  • trunk/grails-app/i18n/messages.properties

    r106 r137  
    1818task.leadPerson=Lead Person
    1919task.leadPerson.help=The primay contact person.
     20   
     21taskRecurring.startDate.NotInTheFuture=Please select a start date that is not in the past, or use original date.
     22taskRecurring.startDate=Start Date
     23taskRecurring.startDate.help=The tartget start date for the first auto generated subTask.
    2024
    2125default.doesnt.match.message=Property [{0}] of class [{1}] with value [{2}] does not match the required pattern [{3}]
  • trunk/grails-app/jobs/TaskRecurringScheduleJob.groovy

    r126 r137  
    11
    22class TaskRecurringScheduleJob {/*
    3 //     def timeout = 5000 // execute job once in 5 seconds
    4     def timeout = 60000
     3    def timeout = 1000 // execute job once in 1 seconds
     4//     def timeout = 60000
    55
    66    def execute() {
    7 //         println "TaskRecurringScheduleJob: tick"
    8 //         println "TaskRecurringScheduleJob: tock"
     7        println "TaskRecurringScheduleJob: tick"
     8        println "TaskRecurringScheduleJob: tock"/*
    99        def recurringScheduleInstanceList = RecurringSchedule.list()
    1010        def now = new Date()
  • trunk/grails-app/views/entryDetailed/edit.gsp

    r98 r137  
    6262
    6363                                <td valign="top" class="value">
    64                                     <input class="duration ${hasErrors(bean:entryInstance,field:'durationHour','errors')}"
     64                                    <input class="time ${hasErrors(bean:entryInstance,field:'durationHour','errors')}"
    6565                                        type="text" id="durationHour" name="durationHour"
    6666                                        value="${fieldValue(bean:entryInstance,field:'durationHour')}" />
    6767                                    :
    68                                     <input class="duration ${hasErrors(bean:entryInstance,field:'durationMinute','errors')}"
     68                                    <input class="time ${hasErrors(bean:entryInstance,field:'durationMinute','errors')}"
    6969                                        type="text" id="durationMinute" name="durationMinute"
    7070                                        value="${fieldValue(bean:entryInstance,field:'durationMinute')}" />
  • trunk/grails-app/views/taskDetailed/show.gsp

    r135 r137  
    158158                        </div>
    159159           
    160            
    161160                        <div class="buttons">
    162161                            <g:form>
     
    186185                                </thead>
    187186                                <tbody>
    188                                 <g:each in="${taskInstance?.entries}" status="i" var="entry">
    189                                     <g:if test="${entry.entryType == EntryType.findByName('Fault')}">
     187                                <g:each in="${entryFaultList}" status="i" var="entry">
    190188                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
    191189                                       
     
    202200           
    203201                                        </tr>
    204                                     </g:if>
    205202                                </g:each>
    206203                                </tbody>
     
    227224                                </thead>
    228225                                <tbody>
    229                                 <g:each in="${taskInstance?.entries}" status="i" var="entry">
    230                                     <g:if test="${entry.entryType == EntryType.findByName('WorkDone')}">
     226                                <g:each in="${entryWorkDoneList}" status="i" var="entry">
    231227                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
    232228           
     
    243239           
    244240                                        </tr>
    245                                     </g:if>
    246241                                </g:each>
    247242                                </tbody>
     
    261256                    </richui:tabContent>
    262257<!-- End Task tab -->
     258
     259
    263260
    264261<!-- Start Task Procedure tab-->
     
    398395                                                                                                <g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd MMM yyyy"/>
    399396                                                                                        </td>
     397                           
     398                                        </tr>
     399                                   
     400                                        <tr class="prop">
     401                                            <td valign="top" class="name">Task Duration:</td>
     402                                           
     403                                            <td valign="top" class="value">
     404                                                ${taskRecurringScheduleInstance?.taskDuration} ${taskRecurringScheduleInstance?.taskDurationPeriod}
     405                                            </td>
     406                                        </tr>
     407                   
     408                                        <tr class="prop">
     409                                            <td valign="top" class="name">Generate Ahead:</td>
     410                                           
     411                                            <td valign="top" class="value">
     412                                                ${taskRecurringScheduleInstance?.generateAhead} ${taskRecurringScheduleInstance?.generateAheadPeriod}
     413                                            </td>
     414                                           
     415                                        </tr>
    400416                                                                                       
    401417                                                                                </tr>
     
    407423                                                                                       
    408424                                                                                </tr>
     425                                       
     426                                    </tbody>
     427                                </table>
     428               
     429                                <table>
     430                                    <tbody>
    409431                       
    410432                                                                                <tr class="prop">
    411                                                                                         <td></td>
    412                                                                                 </tr>
    413                                                                                
    414                                                                                 <tr class="prop">
    415                                                                                         <td></td>
    416                                                                                 </tr>
    417                                
    418                                                                                 <tr class="prop">
    419                                                                                         <td valign="top" class="name">Next Due Date:</td>   
     433                                                                                        <td valign="top" class="name">Next Target Start Date:</td>   
    420434                                                                                                                 
    421435                                                                                        <td valign="top" class="value">
    422                                                                                                 <g:formatDate date="${taskRecurringScheduleInstance.nextDueDate}" format="EEE, dd MMM yyyy"/>
     436                                                                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd MMM yyyy"/>
    423437                                                                                        </td>
    424438                                                                                       
    425439                                                                                </tr>
     440               
     441                                        <tr class="prop">
     442                                            <td valign="top" class="name">Next Target Completion Date:</td>   
     443                                                                     
     444                                            <td valign="top" class="value">
     445                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd MMM yyyy"/>
     446                                            </td>
     447                                           
     448                                        </tr>
     449                       
     450                                        <tr class="prop">
     451                                            <td valign="top" class="name">Next Generation Date:</td>
     452                                           
     453                                            <td valign="top" class="value">
     454                                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd MMM yyyy"/>
     455                                            </td>
     456                                        </tr>
    426457                               
    427458                                                                                <tr class="prop">
  • trunk/grails-app/views/taskRecurringSchedule/create.gsp

    r131 r137  
    4747                            <tr class="prop">
    4848                                <td valign="top" class="name">
     49                                    <label for="generateAhead">Generate Ahead:</label>
     50                                </td>
     51                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'generateAhead','errors')}">
     52                                    <input type="text" id="generateAhead" name="generateAhead" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'generateAhead')}" />
     53                                </td>
     54                            </tr>
     55                       
     56                            <tr class="prop">
     57                                <td valign="top" class="name">
     58                                    <label for="generateAheadPeriod">Generate Ahead Period:</label>
     59                                </td>
     60                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'generateAheadPeriod','errors')}">
     61                                    <g:select optionKey="id" from="${Period.list()}" name="generateAheadPeriod.id" value="${taskRecurringScheduleInstance?.generateAheadPeriod?.id}" ></g:select>
     62                                </td>
     63                            </tr>
     64                       
     65                            <tr class="prop">
     66                                <td valign="top" class="name">
    4967                                    <label for="isEnabled">Is Enabled:</label>
    5068                                </td>
     
    6583                            <tr class="prop">
    6684                                <td valign="top" class="name">
    67                                     <label for="period">Period:</label>
     85                                    <label for="nextGenerationDate">Next Generation Date:</label>
    6886                                </td>
    69                                 <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'period','errors')}">
    70                                     <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${taskRecurringScheduleInstance?.period?.id}" ></g:select>
     87                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'nextGenerationDate','errors')}">
     88                                    <g:datePicker name="nextGenerationDate" value="${taskRecurringScheduleInstance?.nextGenerationDate}" ></g:datePicker>
    7189                                </td>
    7290                            </tr>
     
    7896                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}">
    7997                                    <input type="text" id="recurEvery" name="recurEvery" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'recurEvery')}" />
     98                                </td>
     99                            </tr>
     100                       
     101                            <tr class="prop">
     102                                <td valign="top" class="name">
     103                                    <label for="recurPeriod">Recur Period:</label>
     104                                </td>
     105                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurPeriod','errors')}">
     106                                    <g:select optionKey="id" from="${Period.list()}" name="recurPeriod.id" value="${taskRecurringScheduleInstance?.recurPeriod?.id}" ></g:select>
    80107                                </td>
    81108                            </tr>
  • trunk/grails-app/views/taskRecurringSchedule/edit.gsp

    r131 r137  
    5050                            <tr class="prop">
    5151                                <td valign="top" class="name">
     52                                    <label for="generateAhead">Generate Ahead:</label>
     53                                </td>
     54                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'generateAhead','errors')}">
     55                                    <input type="text" id="generateAhead" name="generateAhead" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'generateAhead')}" />
     56                                </td>
     57                            </tr>
     58                       
     59                            <tr class="prop">
     60                                <td valign="top" class="name">
     61                                    <label for="generateAheadPeriod">Generate Ahead Period:</label>
     62                                </td>
     63                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'generateAheadPeriod','errors')}">
     64                                    <g:select optionKey="id" from="${Period.list()}" name="generateAheadPeriod.id" value="${taskRecurringScheduleInstance?.generateAheadPeriod?.id}" ></g:select>
     65                                </td>
     66                            </tr>
     67                       
     68                            <tr class="prop">
     69                                <td valign="top" class="name">
    5270                                    <label for="isEnabled">Is Enabled:</label>
    5371                                </td>
     
    6886                            <tr class="prop">
    6987                                <td valign="top" class="name">
    70                                     <label for="period">Period:</label>
     88                                    <label for="nextGenerationDate">Next Generation Date:</label>
    7189                                </td>
    72                                 <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'period','errors')}">
    73                                     <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${taskRecurringScheduleInstance?.period?.id}" ></g:select>
     90                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'nextGenerationDate','errors')}">
     91                                    <g:datePicker name="nextGenerationDate" value="${taskRecurringScheduleInstance?.nextGenerationDate}" ></g:datePicker>
    7492                                </td>
    7593                            </tr>
     
    8199                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}">
    82100                                    <input type="text" id="recurEvery" name="recurEvery" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'recurEvery')}" />
     101                                </td>
     102                            </tr>
     103                       
     104                            <tr class="prop">
     105                                <td valign="top" class="name">
     106                                    <label for="recurPeriod">Recur Period:</label>
     107                                </td>
     108                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurPeriod','errors')}">
     109                                    <g:select optionKey="id" from="${Period.list()}" name="recurPeriod.id" value="${taskRecurringScheduleInstance?.recurPeriod?.id}" ></g:select>
    83110                                </td>
    84111                            </tr>
  • trunk/grails-app/views/taskRecurringSchedule/list.gsp

    r131 r137  
    2828                                <th>Last Generated Sub Task</th>
    2929                           
     30                                <g:sortableColumn property="generateAhead" title="Generate Ahead" />
     31                       
     32                                <th>Generate Ahead Period</th>
     33                           
    3034                                <g:sortableColumn property="isEnabled" title="Is Enabled" />
    3135                       
    32                                 <g:sortableColumn property="nextDueDate" title="Next Due Date" />
    33                        
    34                                 <th>Period</th>
    35                            
    3636                        </tr>
    3737                    </thead>
     
    4646                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'lastGeneratedSubTask')}</td>
    4747                       
     48                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'generateAhead')}</td>
     49                       
     50                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'generateAheadPeriod')}</td>
     51                       
    4852                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'isEnabled')}</td>
    49                        
    50                             <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'nextDueDate')}</td>
    51                        
    52                             <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'period')}</td>
    5353                       
    5454                        </tr>
  • trunk/grails-app/views/taskRecurringSchedule/show.gsp

    r131 r137  
    4545                   
    4646                        <tr class="prop">
     47                            <td valign="top" class="name">Generate Ahead:</td>
     48                           
     49                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'generateAhead')}</td>
     50                           
     51                        </tr>
     52                   
     53                        <tr class="prop">
     54                            <td valign="top" class="name">Generate Ahead Period:</td>
     55                           
     56                            <td valign="top" class="value"><g:link controller="period" action="show" id="${taskRecurringScheduleInstance?.generateAheadPeriod?.id}">${taskRecurringScheduleInstance?.generateAheadPeriod?.encodeAsHTML()}</g:link></td>
     57                           
     58                        </tr>
     59                   
     60                        <tr class="prop">
    4761                            <td valign="top" class="name">Is Enabled:</td>
    4862                           
     
    5973                   
    6074                        <tr class="prop">
    61                             <td valign="top" class="name">Period:</td>
     75                            <td valign="top" class="name">Next Generation Date:</td>
    6276                           
    63                             <td valign="top" class="value"><g:link controller="period" action="show" id="${taskRecurringScheduleInstance?.period?.id}">${taskRecurringScheduleInstance?.period?.encodeAsHTML()}</g:link></td>
     77                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'nextGenerationDate')}</td>
    6478                           
    6579                        </tr>
     
    6983                           
    7084                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'recurEvery')}</td>
     85                           
     86                        </tr>
     87                   
     88                        <tr class="prop">
     89                            <td valign="top" class="name">Recur Period:</td>
     90                           
     91                            <td valign="top" class="value"><g:link controller="period" action="show" id="${taskRecurringScheduleInstance?.recurPeriod?.id}">${taskRecurringScheduleInstance?.recurPeriod?.encodeAsHTML()}</g:link></td>
    7192                           
    7293                        </tr>
  • trunk/grails-app/views/taskRecurringScheduleDetailed/create.gsp

    r135 r137  
    5353                                    <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}"
    5454                                                                                id="recurEvery" name="recurEvery" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'recurEvery')}" />
    55                                     <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${taskRecurringScheduleInstance?.period?.id}" ></g:select>
     55                                    <g:select optionKey="id" from="${Period.list()}" name="recurPeriod.id" value="${taskRecurringScheduleInstance?.recurPeriod?.id}" ></g:select>
     56                                </td>
     57                            </tr>   
     58                     
     59                            <tr class="prop">
     60                                <td valign="top" class="name">
     61                                    <label for="recurEvery">Task Duration:</label>
     62                                </td>
     63                                <td valign="top" class="value" >
     64                                    <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'taskDuration','errors')}"
     65                                        id="taskDuration" name="taskDuration" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'taskDuration')}" />
     66                                    <g:select optionKey="id" from="${Period.list()}" name="taskDurationPeriod.id" value="${taskRecurringScheduleInstance?.taskDurationPeriod?.id}" ></g:select>
     67                                </td>
     68                            </tr>   
     69                     
     70                            <tr class="prop">
     71                                <td valign="top" class="name">
     72                                    <label for="recurEvery">Generate Ahead:</label>
     73                                </td>
     74                                <td valign="top" class="value" >
     75                                    <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'generateAhead','errors')}"
     76                                        id="generateAhead" name="generateAhead" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'generateAhead')}" />
     77                                    <g:select optionKey="id" from="${Period.list()}" name="generateAheadPeriod.id" value="${taskRecurringScheduleInstance?.generateAheadPeriod?.id}" ></g:select>
    5678                                </td>
    5779                            </tr>
  • trunk/grails-app/views/taskRecurringScheduleDetailed/edit.gsp

    r135 r137  
    5555                                    <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}"
    5656                                                                                id="recurEvery" name="recurEvery" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'recurEvery')}" />
    57                                     <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${taskRecurringScheduleInstance?.period?.id}" ></g:select>
     57                                    <g:select optionKey="id" from="${Period.list()}" name="recurPeriod.id" value="${taskRecurringScheduleInstance?.recurPeriod?.id}" ></g:select>
    5858                                </td>
    59                             </tr>
     59                            </tr>   
     60                     
     61                            <tr class="prop">
     62                                <td valign="top" class="name">
     63                                    <label for="recurEvery">Task Duration:</label>
     64                                </td>
     65                                <td valign="top" class="value" >
     66                                    <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'taskDuration','errors')}"
     67                                        id="taskDuration" name="taskDuration" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'taskDuration')}" />
     68                                    <g:select optionKey="id" from="${Period.list()}" name="taskDurationPeriod.id" value="${taskRecurringScheduleInstance?.taskDurationPeriod?.id}" ></g:select>
     69                                </td>
     70                            </tr>       
     71                     
     72                            <tr class="prop">
     73                                <td valign="top" class="name">
     74                                    <label for="recurEvery">Generate Ahead:</label>
     75                                </td>
     76                                <td valign="top" class="value" >
     77                                    <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'generateAhead','errors')}"
     78                                        id="generateAhead" name="generateAhead" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'generateAhead')}" />
     79                                    <g:select optionKey="id" from="${Period.list()}" name="generateAheadPeriod.id" value="${taskRecurringScheduleInstance?.generateAheadPeriod?.id}" ></g:select>
     80                                </td>
     81                            </tr>
    6082                       
    6183                            <tr class="prop">
     
    7395                <div class="buttons">
    7496                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
    75                     <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
     97<!--                     <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span> -->
    7698                </div>
    7799            </g:form>
  • trunk/grails-app/views/taskRecurringScheduleDetailed/list.gsp

    r135 r137  
    2828                                <g:sortableColumn property="recurEvery" title="Recur Every" />
    2929                               
    30                                 <g:sortableColumn property="period" title="Period" />
     30                                <g:sortableColumn property="recurPeriod" title="Recur Period" />
    3131                               
    3232                                <g:sortableColumn property="isEnabled" title="Is Enabled" />
     
    4747                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'recurEvery')}</td>
    4848                       
    49                             <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'period')}</td>
     49                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'recurPeriod')}</td>
    5050                       
    5151                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'isEnabled')}</td>
  • trunk/grails-app/views/taskRecurringScheduleDetailed/show.gsp

    r135 r137  
    3939                   
    4040                        <tr class="prop">
     41                            <td valign="top" class="name">Start Date:</td>
     42                           
     43                            <td valign="top" class="value">
     44                                <g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd MMM yyyy"/>
     45                            </td>
     46                        </tr>
     47                   
     48                        <tr class="prop">
    4149                            <td valign="top" class="name">Recur Every:</td>
    4250                           
    4351                            <td valign="top" class="value">
    44                                                                 ${taskRecurringScheduleInstance?.recurEvery} ${taskRecurringScheduleInstance?.period}
     52                                                                ${taskRecurringScheduleInstance?.recurEvery} ${taskRecurringScheduleInstance?.recurPeriod}
    4553                                                        </td>
    4654                           
     
    4856                   
    4957                        <tr class="prop">
    50                             <td valign="top" class="name">Start Date:</td>
     58                            <td valign="top" class="name">Task Duration:</td>
    5159                           
    52                                                         <td valign="top" class="value">
    53                                                                 <g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd MMM yyyy"/>
    54                                                         </td>
     60                            <td valign="top" class="value">
     61                                ${taskRecurringScheduleInstance?.taskDuration} ${taskRecurringScheduleInstance?.taskDurationPeriod}
     62                            </td>
     63                        </tr>
     64                   
     65                        <tr class="prop">
     66                            <td valign="top" class="name">Generate Ahead:</td>
     67                           
     68                            <td valign="top" class="value">
     69                                ${taskRecurringScheduleInstance?.generateAhead} ${taskRecurringScheduleInstance?.generateAheadPeriod}
     70                            </td>
     71                           
    5572                        </tr>
    5673                   
     
    6178                           
    6279                        </tr>
     80                    </tbody>
     81                </table>
     82               
     83                <table>
     84                    <tbody>
     85                        <tr class="prop">
     86                            <td valign="top" class="name">Next Target Start Date:</td>
     87                           
     88                            <td valign="top" class="value">
     89                                                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd MMM yyyy"/>
     90                                                        </td>
     91                           
     92                        </tr>
     93                   
     94                        <tr class="prop">
     95                            <td valign="top" class="name">Next Target Completion Date:</td>
     96                           
     97                            <td valign="top" class="value">
     98                                <g:formatDate date="${taskRecurringScheduleInstance.nextTargetCompletionDate}" format="EEE, dd MMM yyyy"/>
     99                            </td>
     100                           
     101                        </tr>
    63102                       
    64103                        <tr class="prop">
    65                                 <td></td>
    66                                                 </tr>
    67                        
    68                         <tr class="prop">
    69                                 <td></td>
    70                                                 </tr>
    71                    
    72                         <tr class="prop">
    73                             <td valign="top" class="name">Next Due Date:</td>
     104                            <td valign="top" class="name">Next Generation Date:</td>
    74105                           
    75106                            <td valign="top" class="value">
    76                                                                 <g:formatDate date="${taskRecurringScheduleInstance.nextDueDate}" format="EEE, dd MMM yyyy"/>
    77                                                         </td>
    78                            
     107                                <g:formatDate date="${taskRecurringScheduleInstance.nextGenerationDate}" format="EEE, dd MMM yyyy"/>
     108                            </td>
    79109                        </tr>
    80110                                               
     
    105135                    <input type="hidden" name="id" value="${taskRecurringScheduleInstance?.id}" />
    106136                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
    107                     <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
     137<!--                     <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span> -->
    108138                </g:form>
    109139            </div>
Note: See TracChangeset for help on using the changeset viewer.