- Timestamp:
- Sep 1, 2009, 10:10:43 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/.classpath
r104 r137 13 13 <classpathentry kind="output" path="web-app/WEB-INF/classes"/> 14 14 <classpathentry kind="var" path="GRAILS_HOME/ant/lib/ant.jar"/> 15 <classpathentry kind="var" path="GRAILS_HOME/lib/slf4j-api-1.5.6.jar" /> 16 <classpathentry kind="var" path="GRAILS_HOME/lib/jasper-runtime-5.5.15.jar" /> 17 <classpathentry kind="var" path="GRAILS_HOME/lib/jsp-api-2.0.jar" /> 18 <classpathentry kind="var" path="GRAILS_HOME/lib/sitemesh-2.4.jar" /> 19 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-codec-1.3.jar" /> 20 <classpathentry kind="var" path="GRAILS_HOME/lib/oro-2.0.8.jar" /> 21 <classpathentry kind="var" path="GRAILS_HOME/lib/backport-util-concurrent-3.0.jar" /> 22 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-dbcp-1.2.1.jar" /> 23 <classpathentry kind="var" path="GRAILS_HOME/lib/start.jar" /> 24 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-junit-1.7.0.jar" /> 25 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-1.7.0.jar" /> 26 <classpathentry kind="var" path="GRAILS_HOME/lib/hsqldb-1.8.0.5.jar" /> 27 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-plus-6.1.14.jar" /> 28 <classpathentry kind="var" path="GRAILS_HOME/lib/slf4j-log4j12-1.5.6.jar" /> 29 <classpathentry kind="var" path="GRAILS_HOME/lib/junit-3.8.2.jar" /> 30 <classpathentry kind="var" path="GRAILS_HOME/lib/spring-webmvc-2.5.6.jar" /> 31 <classpathentry kind="var" path="GRAILS_HOME/lib/org.springframework.webflow-2.0.3.RELEASE.jar" /> 32 <classpathentry kind="var" path="GRAILS_HOME/lib/jstl-2.4.jar" /> 33 <classpathentry kind="var" path="GRAILS_HOME/lib/ehcache-1.5.0.jar" /> 34 <classpathentry kind="var" path="GRAILS_HOME/lib/xpp3_min-1.1.3.4.O.jar" /> 35 <classpathentry kind="var" path="GRAILS_HOME/lib/ivy-2.0.0.jar" /> 36 <classpathentry kind="var" path="GRAILS_HOME/lib/jsp-api-2.1.jar" /> 37 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-util-6.1.14.jar" /> 38 <classpathentry kind="var" path="GRAILS_HOME/lib/jline-0.9.91.jar" /> 39 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-naming-6.1.14.jar" /> 40 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-nodeps-1.7.0.jar" /> 41 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-collections-3.2.jar" /> 42 <classpathentry kind="var" path="GRAILS_HOME/lib/standard-2.4.jar" /> 43 <classpathentry kind="var" path="GRAILS_HOME/lib/spring-2.5.6.jar" /> 44 <classpathentry kind="var" path="GRAILS_HOME/lib/jasper-compiler-jdt-5.5.15.jar" /> 45 <classpathentry kind="var" path="GRAILS_HOME/lib/log4j-1.2.15.jar" /> 46 <classpathentry kind="var" path="GRAILS_HOME/lib/groovy-all-1.6.3.jar" /> 47 <classpathentry kind="var" path="GRAILS_HOME/lib/svnkit-1.2.0.jar" /> 48 <classpathentry kind="var" path="GRAILS_HOME/lib/jcl-over-slf4j-1.5.6.jar" /> 49 <classpathentry kind="var" path="GRAILS_HOME/lib/jta-1.1.jar" /> 50 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-6.1.14.jar" /> 15 51 <classpathentry kind="var" path="GRAILS_HOME/lib/cglib-nodep-2.1_3.jar" /> 16 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-junit-1.7.0.jar" />17 <classpathentry kind="var" path="GRAILS_HOME/lib/org.springframework.webflow-2.0.3.RELEASE.jar" />18 <classpathentry kind="var" path="GRAILS_HOME/lib/junit-3.8.2.jar" />19 52 <classpathentry kind="var" path="GRAILS_HOME/lib/spring-test-2.5.6.jar" /> 53 <classpathentry kind="var" path="GRAILS_HOME/lib/standard-2.3.jar" /> 54 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-el-1.0.jar" /> 55 <classpathentry kind="var" path="GRAILS_HOME/lib/org.springframework.binding-2.0.3.RELEASE.jar" /> 56 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-validator-1.3.0.jar" /> 57 <classpathentry kind="var" path="GRAILS_HOME/lib/oscache-2.4.1.jar" /> 58 <classpathentry kind="var" path="GRAILS_HOME/lib/org.springframework.js-2.0.3.RELEASE.jar" /> 59 <classpathentry kind="var" path="GRAILS_HOME/lib/serializer.jar" /> 60 <classpathentry kind="var" path="GRAILS_HOME/lib/ognl-2.6.9.jar" /> 61 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-trax.jar" /> 62 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-launcher-1.7.0.jar" /> 63 <classpathentry kind="var" path="GRAILS_HOME/lib/jsr107cache-1.0.jar" /> 64 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-fileupload-1.2.1.jar" /> 65 <classpathentry kind="var" path="GRAILS_HOME/lib/jstl-2.3.jar" /> 66 <classpathentry kind="var" path="GRAILS_HOME/lib/servlet-api-2.5-6.1.14.jar" /> 67 <classpathentry kind="var" path="GRAILS_HOME/lib/jasper-compiler-5.5.15.jar" /> 68 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-lang-2.4.jar" /> 69 <classpathentry kind="var" path="GRAILS_HOME/lib/ejb3-persistence-3.3.0.jar" /> 70 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-beanutils-1.7.0.jar" /> 20 71 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-io-1.4.jar" /> 21 <classpathentry kind="var" path="GRAILS_HOME/lib/standard-2.4.jar" /> 22 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-collections-3.2.jar" /> 23 <classpathentry kind="var" path="GRAILS_HOME/lib/jcl-over-slf4j-1.5.6.jar" /> 24 <classpathentry kind="var" path="GRAILS_HOME/lib/spring-webmvc-2.5.6.jar" /> 25 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-validator-1.3.0.jar" /> 26 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-util-6.1.14.jar" /> 27 <classpathentry kind="var" path="GRAILS_HOME/lib/jta-1.1.jar" /> 72 <classpathentry kind="var" path="GRAILS_HOME/lib/gant_groovy1.6-1.6.0.jar" /> 28 73 <classpathentry kind="var" path="GRAILS_HOME/lib/antlr-2.7.6.jar" /> 29 <classpathentry kind="var" path="GRAILS_HOME/lib/jsp-api-2.0.jar" />30 74 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-cli-1.0.jar" /> 31 <classpathentry kind="var" path="GRAILS_HOME/lib/servlet-api-2.5-6.1.14.jar" />32 <classpathentry kind="var" path="GRAILS_HOME/lib/oscache-2.4.1.jar" />33 <classpathentry kind="var" path="GRAILS_HOME/lib/slf4j-api-1.5.6.jar" />34 <classpathentry kind="var" path="GRAILS_HOME/lib/standard-2.3.jar" />35 <classpathentry kind="var" path="GRAILS_HOME/lib/ivy-2.0.0.jar" />36 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-1.7.0.jar" />37 <classpathentry kind="var" path="GRAILS_HOME/lib/start.jar" />38 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-nodeps-1.7.0.jar" />39 <classpathentry kind="var" path="GRAILS_HOME/lib/ehcache-1.5.0.jar" />40 <classpathentry kind="var" path="GRAILS_HOME/lib/hsqldb-1.8.0.5.jar" />41 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-el-1.0.jar" />42 <classpathentry kind="var" path="GRAILS_HOME/lib/groovy-all-1.6.0.jar" />43 <classpathentry kind="var" path="GRAILS_HOME/lib/jstl-2.3.jar" />44 <classpathentry kind="var" path="GRAILS_HOME/lib/serializer.jar" />45 <classpathentry kind="var" path="GRAILS_HOME/lib/jsr107cache-1.0.jar" />46 75 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-pool-1.2.jar" /> 47 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-lang-2.4.jar" /> 48 <classpathentry kind="var" path="GRAILS_HOME/lib/jstl-2.4.jar" /> 49 <classpathentry kind="var" path="GRAILS_HOME/lib/org.springframework.js-2.0.3.RELEASE.jar" /> 50 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-beanutils-1.7.0.jar" /> 51 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-plus-6.1.14.jar" /> 52 <classpathentry kind="var" path="GRAILS_HOME/lib/oro-2.0.8.jar" /> 53 <classpathentry kind="var" path="GRAILS_HOME/lib/slf4j-log4j12-1.5.6.jar" /> 54 <classpathentry kind="var" path="GRAILS_HOME/lib/backport-util-concurrent-3.0.jar" /> 55 <classpathentry kind="var" path="GRAILS_HOME/lib/jline-0.9.91.jar" /> 56 <classpathentry kind="var" path="GRAILS_HOME/lib/jasper-runtime-5.5.15.jar" /> 57 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-trax.jar" /> 58 <classpathentry kind="var" path="GRAILS_HOME/lib/log4j-1.2.15.jar" /> 59 <classpathentry kind="var" path="GRAILS_HOME/lib/xpp3_min-1.1.3.4.O.jar" /> 60 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-fileupload-1.1.1.jar" /> 61 <classpathentry kind="var" path="GRAILS_HOME/lib/jasper-compiler-5.5.15.jar" /> 62 <classpathentry kind="var" path="GRAILS_HOME/lib/gant_groovy1.6-1.6.0.jar" /> 63 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-naming-6.1.14.jar" /> 64 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-dbcp-1.2.1.jar" /> 65 <classpathentry kind="var" path="GRAILS_HOME/lib/jasper-compiler-jdt-5.5.15.jar" /> 66 <classpathentry kind="var" path="GRAILS_HOME/lib/commons-codec-1.3.jar" /> 67 <classpathentry kind="var" path="GRAILS_HOME/lib/org.springframework.binding-2.0.3.RELEASE.jar" /> 68 <classpathentry kind="var" path="GRAILS_HOME/lib/spring-2.5.6.jar" /> 69 <classpathentry kind="var" path="GRAILS_HOME/lib/jsp-api-2.1.jar" /> 70 <classpathentry kind="var" path="GRAILS_HOME/lib/ognl-2.6.9.jar" /> 71 <classpathentry kind="var" path="GRAILS_HOME/lib/svnkit-1.2.0.jar" /> 72 <classpathentry kind="var" path="GRAILS_HOME/lib/sitemesh-2.4.jar" /> 73 <classpathentry kind="var" path="GRAILS_HOME/lib/jetty-6.1.14.jar" /> 74 <classpathentry kind="var" path="GRAILS_HOME/lib/ant-launcher-1.7.0.jar" /> 75 <classpathentry kind="var" path="GRAILS_HOME/lib/ejb3-persistence-3.3.0.jar" /> 76 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-spring-1.1.jar" /> 77 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-crud-1.1.jar" /> 78 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-web-1.1.jar" /> 79 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-bootstrap-1.1.jar" /> 80 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-webflow-1.1.jar" /> 81 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-resources-1.1.jar" /> 82 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-gorm-1.1.jar" /> 83 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-test-1.1.jar" /> 84 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-scripts-1.1.jar" /> 85 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-core-1.1.jar" /> 76 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-test-1.1.1.jar" /> 77 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-scripts-1.1.1.jar" /> 78 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-bootstrap-1.1.1.jar" /> 79 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-gorm-1.1.1.jar" /> 80 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-resources-1.1.1.jar" /> 81 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-crud-1.1.1.jar" /> 82 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-webflow-1.1.1.jar" /> 83 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-core-1.1.1.jar" /> 84 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-spring-1.1.1.jar" /> 85 <classpathentry kind="var" path="GRAILS_HOME/dist/grails-web-1.1.1.jar" /> 86 86 </classpath> -
trunk/README
r104 r137 1 GnuMims - A web application providing a Maintenance and Inventory Management Solution. 2 Copyright (C) <2009> <Gavin Kromhout> 3 1 4 This program is free software: you can redistribute it and/or modify 2 5 it under the terms of the GNU Affero General Public License as published by -
trunk/application.properties
r126 r137 1 1 #utf-8 2 # Mon May 04 19:08:49EST 20092 #Tue May 19 13:36:38 EST 2009 3 3 plugins.acegi=0.5.1 4 4 app.version= … … 7 7 plugins.richui=0.6 8 8 app.servlet.version=2.4 9 plugins.hibernate=1.1 9 plugins.hibernate=1.1.1 10 10 app.name=gnuMims 11 app.grails.version=1.1 11 app.grails.version=1.1.1 -
trunk/gnuMims.launch
r104 r137 10 10 <listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> 11 11 <listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="gnuMims" path="1" type="4"/> "/> 12 <listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="GRAILS_HOME/dist/grails-bootstrap-1.1. jar" path="3" type="3"/> "/>13 <listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="GRAILS_HOME/lib/groovy-all-1.6. 0.jar" path="3" type="3"/> "/>12 <listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="GRAILS_HOME/dist/grails-bootstrap-1.1.1.jar" path="3" type="3"/> "/> 13 <listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="GRAILS_HOME/lib/groovy-all-1.6.3.jar" path="3" type="3"/> "/> 14 14 </listAttribute> 15 15 <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/> -
trunk/grails-app/conf/BootStrap.groovy
r136 r137 358 358 359 359 //Entry #1 360 entryInstance = new Entry(enteredBy: Person.get( 6),360 entryInstance = new Entry(enteredBy: Person.get(3), 361 361 task: Task.get(1), 362 362 entryType: EntryType.findByName("Fault"), … … 611 611 612 612 //MaintenanceAction #1 613 maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, activ e E-stopS1-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", 614 614 procedureStepNumber: 1, 615 615 maintenancePolicy: MaintenancePolicy.get(1), -
trunk/grails-app/controllers/TaskDetailedController.groovy
r134 r137 31 31 params.order = "desc" 32 32 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 } 33 45 34 46 def subTaskInstanceList = Task.findAllByParentTask(taskInstance, params) … … 53 65 } 54 66 55 return [ taskInstance : taskInstance, 67 return [ taskInstance: taskInstance, 68 entryWorkDoneList: entryWorkDoneList, 69 entryFaultList: entryFaultList, 56 70 taskProcedureInstance: taskProcedureInstance, 57 71 taskProcedureExits: taskProcedureExits, -
trunk/grails-app/controllers/TaskRecurringScheduleDetailedController.groovy
r136 r137 1 1 import org.codehaus.groovy.grails.plugins.springsecurity.Secured 2 2 import org.codehaus.groovy.runtime.TimeCategory 3 import java.text.SimpleDateFormat 3 4 4 5 class TaskRecurringScheduleDetailedController extends BaseController { 5 6 7 def dateUtilService 8 6 9 def index = { redirect(action:list,params:params) } 7 10 … … 51 54 } 52 55 else { 53 return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance 56 return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance] 54 57 } 55 58 } 56 59 57 60 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() 63 94 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() 85 113 86 114 def create = { … … 95 123 redirect(controller:"taskDetailed", action:"list") 96 124 } 97 } 125 } // end create() 98 126 99 127 def save = { … … 106 134 } 107 135 else { 136 137 if(taskRecurringScheduleInstance.startDate < dateUtilService.getToday()) { 138 taskRecurringScheduleInstance.errors.rejectValue("startDate", "taskRecurring.startDate.NotInTheFuture") 139 } 108 140 109 141 if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) { … … 125 157 } 126 158 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() 141 160 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.days150 }151 return nextDue152 case "Week(s)":153 use(TimeCategory) {154 nextDue = startDate + recurEvery.weeks155 }156 return nextDue157 case "Month(s)":158 use(TimeCategory) {159 nextDue = startDate + recurEvery.months160 }161 return nextDue162 case "Year(s)":163 use(TimeCategory) {164 nextDue = startDate + recurEvery.years165 }166 return nextDue167 default:168 return nextDue169 }170 171 }*/172 161 } -
trunk/grails-app/domain/TaskRecurringSchedule.groovy
r136 r137 23 23 24 24 static constraints = { 25 // startDate(validator: {return (it > new Date())}) 26 recurEvery(min:0, max:365) 25 recurEvery(min:1, max:365) 27 26 taskDuration(min:0, max:365) 28 27 generateAhead(min:0, max:365) … … 35 34 } 36 35 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. 39 39 def beforeInsert = { 40 def now = new Date()41 42 40 nextTargetStartDate = startDate 43 44 //nextGenerationDate 41 setNextGenerationDate() 42 setNextTargetCompletionDate() 43 } 44 45 public void setNextGenerationDate() { 45 46 switch (generateAheadPeriod.period) { 46 47 case "Day(s)": … … 67 68 break 68 69 } 69 70 def now = new Date() 70 71 if( nextGenerationDate < now) {nextGenerationDate = now} 71 72 //nextTargetCompletionDate 72 } 73 74 public void setNextTargetCompletionDate() { 73 75 switch (taskDurationPeriod.period) { 74 76 case "Day(s)": … … 92 94 } 93 95 break 94 default:96 default: 95 97 break 96 98 } 97 98 99 } 99 100 100 101 } 101 102 -
trunk/grails-app/i18n/messages.properties
r106 r137 18 18 task.leadPerson=Lead Person 19 19 task.leadPerson.help=The primay contact person. 20 21 taskRecurring.startDate.NotInTheFuture=Please select a start date that is not in the past, or use original date. 22 taskRecurring.startDate=Start Date 23 taskRecurring.startDate.help=The tartget start date for the first auto generated subTask. 20 24 21 25 default.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 1 1 2 2 class TaskRecurringScheduleJob {/* 3 // def timeout = 5000 // execute job once in 5seconds4 def timeout = 600003 def timeout = 1000 // execute job once in 1 seconds 4 // def timeout = 60000 5 5 6 6 def execute() { 7 //println "TaskRecurringScheduleJob: tick"8 // println "TaskRecurringScheduleJob: tock" 7 println "TaskRecurringScheduleJob: tick" 8 println "TaskRecurringScheduleJob: tock"/* 9 9 def recurringScheduleInstanceList = RecurringSchedule.list() 10 10 def now = new Date() -
trunk/grails-app/views/entryDetailed/edit.gsp
r98 r137 62 62 63 63 <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')}" 65 65 type="text" id="durationHour" name="durationHour" 66 66 value="${fieldValue(bean:entryInstance,field:'durationHour')}" /> 67 67 : 68 <input class=" duration${hasErrors(bean:entryInstance,field:'durationMinute','errors')}"68 <input class="time ${hasErrors(bean:entryInstance,field:'durationMinute','errors')}" 69 69 type="text" id="durationMinute" name="durationMinute" 70 70 value="${fieldValue(bean:entryInstance,field:'durationMinute')}" /> -
trunk/grails-app/views/taskDetailed/show.gsp
r135 r137 158 158 </div> 159 159 160 161 160 <div class="buttons"> 162 161 <g:form> … … 186 185 </thead> 187 186 <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"> 190 188 <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/> 191 189 … … 202 200 203 201 </tr> 204 </g:if>205 202 </g:each> 206 203 </tbody> … … 227 224 </thead> 228 225 <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"> 231 227 <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/> 232 228 … … 243 239 244 240 </tr> 245 </g:if>246 241 </g:each> 247 242 </tbody> … … 261 256 </richui:tabContent> 262 257 <!-- End Task tab --> 258 259 263 260 264 261 <!-- Start Task Procedure tab--> … … 398 395 <g:formatDate date="${taskRecurringScheduleInstance.startDate}" format="EEE, dd MMM yyyy"/> 399 396 </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> 400 416 401 417 </tr> … … 407 423 408 424 </tr> 425 426 </tbody> 427 </table> 428 429 <table> 430 <tbody> 409 431 410 432 <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> 420 434 421 435 <td valign="top" class="value"> 422 <g:formatDate date="${taskRecurringScheduleInstance.next DueDate}" format="EEE, dd MMM yyyy"/>436 <g:formatDate date="${taskRecurringScheduleInstance.nextTargetStartDate}" format="EEE, dd MMM yyyy"/> 423 437 </td> 424 438 425 439 </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> 426 457 427 458 <tr class="prop"> -
trunk/grails-app/views/taskRecurringSchedule/create.gsp
r131 r137 47 47 <tr class="prop"> 48 48 <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"> 49 67 <label for="isEnabled">Is Enabled:</label> 50 68 </td> … … 65 83 <tr class="prop"> 66 84 <td valign="top" class="name"> 67 <label for=" period">Period:</label>85 <label for="nextGenerationDate">Next Generation Date:</label> 68 86 </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> 71 89 </td> 72 90 </tr> … … 78 96 <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}"> 79 97 <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> 80 107 </td> 81 108 </tr> -
trunk/grails-app/views/taskRecurringSchedule/edit.gsp
r131 r137 50 50 <tr class="prop"> 51 51 <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"> 52 70 <label for="isEnabled">Is Enabled:</label> 53 71 </td> … … 68 86 <tr class="prop"> 69 87 <td valign="top" class="name"> 70 <label for=" period">Period:</label>88 <label for="nextGenerationDate">Next Generation Date:</label> 71 89 </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> 74 92 </td> 75 93 </tr> … … 81 99 <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}"> 82 100 <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> 83 110 </td> 84 111 </tr> -
trunk/grails-app/views/taskRecurringSchedule/list.gsp
r131 r137 28 28 <th>Last Generated Sub Task</th> 29 29 30 <g:sortableColumn property="generateAhead" title="Generate Ahead" /> 31 32 <th>Generate Ahead Period</th> 33 30 34 <g:sortableColumn property="isEnabled" title="Is Enabled" /> 31 35 32 <g:sortableColumn property="nextDueDate" title="Next Due Date" />33 34 <th>Period</th>35 36 36 </tr> 37 37 </thead> … … 46 46 <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'lastGeneratedSubTask')}</td> 47 47 48 <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'generateAhead')}</td> 49 50 <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'generateAheadPeriod')}</td> 51 48 52 <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>53 53 54 54 </tr> -
trunk/grails-app/views/taskRecurringSchedule/show.gsp
r131 r137 45 45 46 46 <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"> 47 61 <td valign="top" class="name">Is Enabled:</td> 48 62 … … 59 73 60 74 <tr class="prop"> 61 <td valign="top" class="name"> Period:</td>75 <td valign="top" class="name">Next Generation Date:</td> 62 76 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> 64 78 65 79 </tr> … … 69 83 70 84 <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> 71 92 72 93 </tr> -
trunk/grails-app/views/taskRecurringScheduleDetailed/create.gsp
r135 r137 53 53 <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}" 54 54 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> 56 78 </td> 57 79 </tr> -
trunk/grails-app/views/taskRecurringScheduleDetailed/edit.gsp
r135 r137 55 55 <input type="text" class="time ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}" 56 56 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> 58 58 </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> 60 82 61 83 <tr class="prop"> … … 73 95 <div class="buttons"> 74 96 <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> --> 76 98 </div> 77 99 </g:form> -
trunk/grails-app/views/taskRecurringScheduleDetailed/list.gsp
r135 r137 28 28 <g:sortableColumn property="recurEvery" title="Recur Every" /> 29 29 30 <g:sortableColumn property=" period" title="Period" />30 <g:sortableColumn property="recurPeriod" title="Recur Period" /> 31 31 32 32 <g:sortableColumn property="isEnabled" title="Is Enabled" /> … … 47 47 <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'recurEvery')}</td> 48 48 49 <td>${fieldValue(bean:taskRecurringScheduleInstance, field:' period')}</td>49 <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'recurPeriod')}</td> 50 50 51 51 <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'isEnabled')}</td> -
trunk/grails-app/views/taskRecurringScheduleDetailed/show.gsp
r135 r137 39 39 40 40 <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"> 41 49 <td valign="top" class="name">Recur Every:</td> 42 50 43 51 <td valign="top" class="value"> 44 ${taskRecurringScheduleInstance?.recurEvery} ${taskRecurringScheduleInstance?. period}52 ${taskRecurringScheduleInstance?.recurEvery} ${taskRecurringScheduleInstance?.recurPeriod} 45 53 </td> 46 54 … … 48 56 49 57 <tr class="prop"> 50 <td valign="top" class="name"> Start Date:</td>58 <td valign="top" class="name">Task Duration:</td> 51 59 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 55 72 </tr> 56 73 … … 61 78 62 79 </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> 63 102 64 103 <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> 74 105 75 106 <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> 79 109 </tr> 80 110 … … 105 135 <input type="hidden" name="id" value="${taskRecurringScheduleInstance?.id}" /> 106 136 <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> --> 108 138 </g:form> 109 139 </div> -
trunk/web-app/WEB-INF/sitemesh.xml
r55 r137 2 2 <page-parsers> 3 3 <parser content-type="text/html" 4 class="com.opensymphony.module.sitemesh.parser. FastPageParser" />4 class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" /> 5 5 <parser content-type="text/html;charset=ISO-8859-1" 6 class="com.opensymphony.module.sitemesh.parser. FastPageParser" />6 class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" /> 7 7 <parser content-type="text/html;charset=UTF-8" 8 class="com.opensymphony.module.sitemesh.parser. FastPageParser" />8 class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" /> 9 9 </page-parsers> 10 10 -
trunk/web-app/WEB-INF/tld/grails.tld
r56 r137 10 10 <uri>http://grails.codehaus.org/tags</uri> 11 11 12 <tag>13 <description>14 Includes a javascript src file, library or inline script15 if the tag has no src or library attributes its assumed to be an inline script16 </description>17 <name>javascript</name>18 <tag-class>org.codehaus.groovy.grails.plugins.web.taglib.JavascriptTagLib</tag-class>19 <body-content>JSP</body-content>20 <attribute>21 <description>A predefined JavaScript or AJAX library to load</description>22 <name>library</name>23 <required>false</required>24 <rtexprvalue>true</rtexprvalue>25 </attribute>26 <attribute>27 <description>A custom (or unknown to Grails) JavaScript source file</description>28 <name>src</name>29 <required>false</required>30 <rtexprvalue>true</rtexprvalue>31 </attribute>32 <attribute>33 <description>Since 0.6 Specifies the full base url to prepend to the library name</description>34 <name>base</name>35 <required>false</required>36 <rtexprvalue>true</rtexprvalue>37 </attribute>38 <dynamic-attributes>false</dynamic-attributes>39 </tag>40 41 <!--42 <tag>43 <description>44 </description>45 <name></name>46 <tag-class></tag-class>47 <body-content></body-content>48 <attribute>49 <description></description>50 <name></name>51 <required></required>52 <rtexprvalue></rtexprvalue>53 </attribute>54 </tag>55 -->56 <tag>57 <description>Escapes a javasacript string replacing single/double quotes and new lines58 </description>59 <name>escapeJavascript</name>60 <tag-class>org.codehaus.groovy.grails.plugins.web.taglib.JavascriptTagLib</tag-class>61 <body-content>JSP</body-content>62 </tag>63 64 <tag>65 <description>Creates a form submit button that submits the current form to a remote ajax call66 </description>67 <name>submitToRemote</name>68 <tag-class>org.codehaus.groovy.grails.plugins.web.taglib.JavascriptTagLib</tag-class>69 <body-content>JSP</body-content>70 <attribute>71 <name>name</name>72 <required>true</required>73 <rtexprvalue>true</rtexprvalue>74 </attribute>75 <attribute>76 <name>value</name>77 <required>false</required>78 <rtexprvalue>true</rtexprvalue>79 </attribute>80 <attribute>81 <name>id</name>82 <required>false</required>83 <rtexprvalue>true</rtexprvalue>84 </attribute>85 <attribute>86 <name>class</name>87 <required>false</required>88 <rtexprvalue>true</rtexprvalue>89 </attribute>90 </tag>91 92 <tag>93 <description>A field that sends its value to a remote link94 </description>95 <name>remoteField</name>96 <tag-class>org.codehaus.groovy.grails.plugins.web.taglib.JavascriptTagLib</tag-class>97 <body-content>JSP</body-content>98 <attribute>99 <name>name</name>100 <required>true</required>101 <rtexprvalue>true</rtexprvalue>102 </attribute>103 <attribute>104 <name>value</name>105 <required>false</required>106 <rtexprvalue>true</rtexprvalue>107 </attribute>108 <attribute>109 <name>paramName</name>110 <required>false</required>111 <rtexprvalue>true</rtexprvalue>112 </attribute>113 <attribute>114 <name>before</name>115 <required>false</required>116 <rtexprvalue>true</rtexprvalue>117 </attribute>118 <attribute>119 <name>after</name>120 <required>false</required>121 <rtexprvalue>true</rtexprvalue>122 </attribute>123 <attribute>124 <name>action</name>125 <required>false</required>126 <rtexprvalue>true</rtexprvalue>127 </attribute>128 <attribute>129 <name>controller</name>130 <required>false</required>131 <rtexprvalue>true</rtexprvalue>132 </attribute>133 <attribute>134 <name>id</name>135 <required>false</required>136 <rtexprvalue>true</rtexprvalue>137 </attribute>138 <attribute>139 <name>params</name>140 <required>false</required>141 <rtexprvalue>true</rtexprvalue>142 </attribute>143 <attribute>144 <name>asynchronous</name>145 <required>false</required>146 <rtexprvalue>true</rtexprvalue>147 </attribute>148 <attribute>149 <name>method</name>150 <required>false</required>151 <rtexprvalue>true</rtexprvalue>152 </attribute>153 <attribute>154 <name>update</name>155 <required>false</required>156 <rtexprvalue>true</rtexprvalue>157 </attribute>158 <attribute>159 <name>onSuccess</name>160 <required>false</required>161 <rtexprvalue>true</rtexprvalue>162 </attribute>163 <attribute>164 <name>onFailure</name>165 <required>false</required>166 <rtexprvalue>true</rtexprvalue>167 </attribute>168 <attribute>169 <name>onComplete</name>170 <required>false</required>171 <rtexprvalue>true</rtexprvalue>172 </attribute>173 <attribute>174 <name>onLoading</name>175 <required>false</required>176 <rtexprvalue>true</rtexprvalue>177 </attribute>178 <attribute>179 <name>onLoaded</name>180 <required>false</required>181 <rtexprvalue>true</rtexprvalue>182 </attribute>183 <attribute>184 <name>onUninitialized</name>185 <required>false</required>186 <rtexprvalue>true</rtexprvalue>187 </attribute>188 <attribute>189 <name>on_ERROR_CODE</name>190 <required>false</required>191 <rtexprvalue>true</rtexprvalue>192 </attribute>193 <dynamic-attributes>true</dynamic-attributes>194 </tag>195 <tag>196 <description>197 Enables the storing of a value into the given ${var}198 </description>199 <name>set</name>200 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovySetTag</tag-class>201 <body-content>JSP</body-content>202 <attribute>203 <description>The value to store</description>204 <name>value</name>205 <required>true</required>206 <rtexprvalue>true</rtexprvalue>207 </attribute>208 <attribute>209 <description>The name of the variable to store the value in</description>210 <name>var</name>211 <required>true</required>212 <rtexprvalue>true</rtexprvalue>213 </attribute>214 <dynamic-attributes>false</dynamic-attributes>215 </tag>216 217 <tag>218 <description>219 Enables the storing of a value into the given ${var} into the page context220 </description>221 <name>def</name>222 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyDefTag</tag-class>223 <body-content>JSP</body-content>224 <attribute>225 <description>The value to store</description>226 <name>value</name>227 <required>true</required>228 <rtexprvalue>true</rtexprvalue>229 </attribute>230 <attribute>231 <description>The name of the variable to store the value in</description>232 <name>var</name>233 <required>true</required>234 <rtexprvalue>true</rtexprvalue>235 </attribute>236 <dynamic-attributes>false</dynamic-attributes>237 </tag>238 239 <tag>240 <description>241 Logical if tag to test whether the given condition is true242 </description>243 <name>if</name>244 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyIfTag</tag-class>245 <body-content>JSP</body-content>246 <attribute>247 <description>The condition to test</description>248 <name>test</name>249 <required>true</required>250 <rtexprvalue>true</rtexprvalue>251 </attribute>252 <dynamic-attributes>false</dynamic-attributes>253 </tag>254 255 <tag>256 <description>257 Logical else tag as fallback if the if condition fails258 </description>259 <name>else</name>260 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyElseTag</tag-class>261 <body-content>JSP</body-content>262 <dynamic-attributes>false</dynamic-attributes>263 </tag>264 265 <tag>266 <description>267 Logical elseif tag to test whether the given condition is true268 </description>269 <name>elseif</name>270 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyElseIfTag</tag-class>271 <body-content>JSP</body-content>272 <attribute>273 <description>The condition to test</description>274 <name>test</name>275 <required>true</required>276 <rtexprvalue>true</rtexprvalue>277 </attribute>278 <dynamic-attributes>false</dynamic-attributes>279 </tag>280 281 <tag>282 <description>283 Tag to loop over a collection while the test expression returns true284 </description>285 <name>while</name>286 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyWhileTag</tag-class>287 <body-content>JSP</body-content>288 <attribute>289 <description>The condition to test</description>290 <name>test</name>291 <required>true</required>292 <rtexprvalue>true</rtexprvalue>293 </attribute>294 <dynamic-attributes>false</dynamic-attributes>295 </tag>296 297 <tag>298 <description>Iterates over the given collection</description>299 <name>each</name>300 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyEachTag</tag-class>301 <body-content>JSP</body-content>302 <attribute>303 <description>The collection to iterate over</description>304 <name>in</name>305 <required>true</required>306 <rtexprvalue>true</rtexprvalue>307 </attribute>308 <attribute>309 <description>An optional var-name to reference onto the elements</description>310 <name>var</name>311 <required>false</required>312 <rtexprvalue>true</rtexprvalue>313 </attribute>314 <attribute>315 <name>status</name>316 <required>false</required>317 <rtexprvalue>true</rtexprvalue>318 </attribute>319 <dynamic-attributes>true</dynamic-attributes>320 </tag>321 322 <tag>323 <description>Iterates over the given collection</description>324 <name>findAll</name>325 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyFindAllTag</tag-class>326 <body-content>JSP</body-content>327 <attribute>328 <description>The collection to iterate over</description>329 <name>in</name>330 <required>true</required>331 <rtexprvalue>true</rtexprvalue>332 </attribute>333 <attribute>334 <description>An optional var-name to reference onto the elements</description>335 <name>var</name>336 <required>false</required>337 <rtexprvalue>true</rtexprvalue>338 </attribute>339 <attribute>340 <description>The expression to filter the elements to iterate over</description>341 <name>expr</name>342 <required>true</required>343 <rtexprvalue>true</rtexprvalue>344 </attribute>345 <attribute>346 <name>status</name>347 <required>false</required>348 <rtexprvalue>true</rtexprvalue>349 </attribute>350 <dynamic-attributes>true</dynamic-attributes>351 </tag>352 353 <tag>354 <description>Iterates over the given collection and collects the elements355 you want to work with</description>356 <name>collect</name>357 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyCollectTag</tag-class>358 <body-content>JSP</body-content>359 <attribute>360 <description>The collection to iterate over</description>361 <name>in</name>362 <required>true</required>363 <rtexprvalue>true</rtexprvalue>364 </attribute>365 <attribute>366 <description>An optional var-name to reference onto the elements</description>367 <name>var</name>368 <required>false</required>369 <rtexprvalue>true</rtexprvalue>370 </attribute>371 <attribute>372 <description>The expression to use to collect the elements. The373 expression must retur true to add the element to the374 collection</description>375 <name>expr</name>376 <required>true</required>377 <rtexprvalue>true</rtexprvalue>378 </attribute>379 <attribute>380 <name>status</name>381 <required>false</required>382 <rtexprvalue>true</rtexprvalue>383 </attribute>384 <dynamic-attributes>false</dynamic-attributes>385 </tag>386 387 <tag>388 <description>Iterates over the given collection and filters the elements389 with a regular expression</description>390 <name>grep</name>391 <tag-class>org.codehaus.groovy.grails.web.taglib.GroovyGrepTag</tag-class>392 <body-content>JSP</body-content>393 <attribute>394 <description>The collection to iterate over</description>395 <name>in</name>396 <required>true</required>397 <rtexprvalue>true</rtexprvalue>398 </attribute>399 <attribute>400 <description>An optional var-name to reference onto the elements</description>401 <name>var</name>402 <required>false</required>403 <rtexprvalue>true</rtexprvalue>404 </attribute>405 <attribute>406 <description>The regular expression to filter the element with. The407 filter is a simple Groovy Regex</description>408 <name>filter</name>409 <required>true</required>410 <rtexprvalue>true</rtexprvalue>411 </attribute>412 <attribute>413 <name>status</name>414 <required>false</required>415 <rtexprvalue>true</rtexprvalue>416 </attribute>417 <dynamic-attributes>false</dynamic-attributes>418 </tag>419 420 12 421 13 <tag>
Note: See TracChangeset
for help on using the changeset viewer.