Hi Hans,
in my opinion it would be better to remove all the automatica timestamp fields from demo/seed data (lastUpdatedStamp, lastUpdatedTxStamp, createdStamp, createdTxStamp). Jacopo PS: thanks for all the work you are doing in this area [hidden email] wrote: > Author: hansbak > Date: Sun Dec 16 01:43:35 2007 > New Revision: 604589 > > URL: http://svn.apache.org/viewvc?rev=604589&view=rev > Log: > added resource demo data, renamed some screens, improved the project resource assignment > > Modified: > ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties > ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml > ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml > ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml > ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml > ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml > > Modified: ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties > URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties?rev=604589&r1=604588&r2=604589&view=diff > ============================================================================== > --- ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties (original) > +++ ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties Sun Dec 16 01:43:35 2007 > @@ -24,7 +24,7 @@ > # Override Page and Label title > PageTitleAddDependencyAfter=Add Dependency After the current Task > PageTitleAddDependencyBefore=Add Dependency before the current Task > -PageTitleAddPartyAssign=Add Party Assign > +PageTitleAddPartyAssign=Add Resource Assignment > PageTitleAddProject=Add Project > PageTitleAddPhase=Add Phase > PageTitleAddProjectNotes=Add Project Notes > @@ -49,7 +49,7 @@ > PageTitleFindSubProject=Find Sub Project > PageTitleFindSubTask=Find Sub Task > PageTitleFindTask=Find Task > -PageTitleListPartyAssigns=Party Assigns > +PageTitleListPartyAssigns=Current Resource Assignments > PageTitleListProjectNotes=List Project Notes > PageTitleListResources=Resources > PageTitleListTaskNotes=List Task Notes > > Modified: ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml?rev=604589&r1=604588&r2=604589&view=diff > ============================================================================== > --- ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml (original) > +++ ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml Sun Dec 16 01:43:35 2007 > @@ -1,5 +1,29 @@ > <?xml version="1.0" encoding="UTF-8"?> > <entity-engine-xml> > + > + <!-- Resources --> > + <!-- Demo Employee1 --> > + <Party partyId="DemoEmployee1" partyTypeId="PERSON" statusId="PARTY_ENABLED" createdDate="2007-12-16 10:01:45.941" createdByUserLogin="admin" lastModifiedDate="2007-12-16 10:01:45.941" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-16 10:01:46.118" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.118" createdTxStamp="2007-12-16 10:01:45.919"/> > + <Person partyId="DemoEmployee1" firstName="Peter" lastName="Manager" lastUpdatedStamp="2007-12-16 10:01:46.483" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.483" createdTxStamp="2007-12-16 10:01:45.919"/> > + <UserLogin userLoginId="DemoEmployee1" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" lastUpdatedStamp="2007-12-16 10:01:47.444" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:47.444" createdTxStamp="2007-12-16 10:01:45.919" partyId="10010"/> > + <PartyRole partyId="DemoEmployee1" roleTypeId="EMPLOYEE"/> > + <PartyContactMech partyId="DemoEmployee1" contactMechId="9020" fromDate="2007-12-16 10:01:48.933" roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/> > + <PartyContactMech partyId="DemoEmployee1" contactMechId="9001" fromDate="2007-12-16 10:01:48.933" roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/> > + <PartyContactMech partyId="DemoEmployee1" contactMechId="9023" fromDate="2007-12-16 10:01:48.933" roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/> > + <PartyRole partyId="DemoEmployee1" roleTypeId="PROVIDER_MANAGER"/> > + <!-- Demo Employee2 --> > + <Party partyId="DemoEmployee2" partyTypeId="PERSON" statusId="PARTY_ENABLED" createdDate="2007-12-16 10:01:45.941" createdByUserLogin="admin" lastModifiedDate="2007-12-16 10:01:45.941" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-16 10:01:46.118" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.118" createdTxStamp="2007-12-16 10:01:45.919"/> > + <Person partyId="DemoEmployee2" firstName="Jo" lastName="Analist" lastUpdatedStamp="2007-12-16 10:01:46.483" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.483" createdTxStamp="2007-12-16 10:01:45.919"/> > + <PartyRole partyId="DemoEmployee2" roleTypeId="EMPLOYEE"/> > + <UserLogin userLoginId="DemoEmployee2" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" lastUpdatedStamp="2007-12-16 10:01:47.444" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:47.444" createdTxStamp="2007-12-16 10:01:45.919" partyId="10010"/> > + <PartyContactMech partyId="DemoEmployee2" contactMechId="9020" fromDate="2007-12-16 10:01:48.933" roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/> > + <PartyContactMech partyId="DemoEmployee2" contactMechId="9001" fromDate="2007-12-16 10:01:48.933" roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/> > + <PartyContactMech partyId="DemoEmployee2" contactMechId="9023" fromDate="2007-12-16 10:01:48.933" roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/> > + <PartyRole partyId="DemoEmployee2" roleTypeId="PROVIDER_ANALYST"/> > + <!-- Demo customer --> > + <PartyRole partyId="DemoCustomer" roleTypeId="CLIENT_MANAGER"/> > + > + <!-- Demo project, phases and tasks --> > <WorkEffort workEffortId="9000" workEffortTypeId="PROJECT" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 15:07:52.901" scopeEnumId="WES_PUBLIC" workEffortName="Demo Project" estimatedStartDate="2007-12-18 00:00:00.0" estimatedCompletionDate="2007-12-05 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 15:07:52.901" createdByUserLogin="admin" lastModifiedDate="2007-12-15 07:47:57.609" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-15 07:47:57.615" lastUpdatedTxStamp="2007-12-15 07:47:57.175" createdStamp="2007-12-14 15:07:52.901" createdTxStamp="2007-12-14 15:07:52.435"/> > <WorkEffort workEffortId="9001" workEffortTypeId="PHASE" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:14.226" workEffortParentId="9000" workEffortName="phase1" revisionNumber="1" createdDate="2007-12-14 16:45:14.226" createdByUserLogin="admin" lastModifiedDate="2007-12-14 16:45:14.226" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 16:45:14.226" lastUpdatedTxStamp="2007-12-14 16:45:13.956" createdStamp="2007-12-14 16:45:14.226" createdTxStamp="2007-12-14 16:45:13.956"/> > <WorkEffort workEffortId="9002" workEffortTypeId="TASK" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:21.831" workEffortParentId="9001" scopeEnumId="WES_PUBLIC" workEffortName="task1" estimatedStartDate="2007-12-03 00:00:00.0" estimatedCompletionDate="2007-12-05 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 16:45:21.831" createdByUserLogin="admin" lastModifiedDate="2007-12-14 17:15:47.898" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 17:15:47.9" lastUpdatedTxStamp="2007-12-14 17:15:47.659" createdStamp="2007-12-14 16:45:21.833" createdTxStamp="2007-12-14 16:45:21.827"/> > @@ -8,6 +32,7 @@ > <WorkEffort workEffortId="9005" workEffortTypeId="TASK" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:50.84" workEffortParentId="9004" scopeEnumId="WES_PUBLIC" workEffortName="task3" estimatedStartDate="2007-12-16 00:00:00.0" estimatedCompletionDate="2007-12-17 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 16:45:50.84" createdByUserLogin="admin" lastModifiedDate="2007-12-14 17:16:11.232" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 17:16:11.233" lastUpdatedTxStamp="2007-12-14 17:16:11.218" createdStamp="2007-12-14 16:45:50.841" createdTxStamp="2007-12-14 16:45:50.559"/> > <WorkEffort workEffortId="9006" workEffortTypeId="TASK" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:58.857" workEffortParentId="9004" scopeEnumId="WES_PUBLIC" workEffortName="task4" estimatedStartDate="2007-12-18 00:00:00.0" estimatedCompletionDate="2007-12-20 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 16:45:58.857" createdByUserLogin="admin" lastModifiedDate="2007-12-14 17:16:24.359" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 17:16:24.36" lastUpdatedTxStamp="2007-12-14 17:16:24.143" createdStamp="2007-12-14 16:45:58.858" createdTxStamp="2007-12-14 16:45:58.846"/> > > + <!-- task dependencies --> > <WorkEffortAssoc workEffortIdFrom="9002" workEffortIdTo="9003" workEffortAssocTypeId="WORK_EFF_DEPENDENCY" sequenceNum="0" fromDate="2007-12-15 07:48:47.856" lastUpdatedStamp="2007-12-15 07:48:47.857" lastUpdatedTxStamp="2007-12-15 07:48:47.636" createdStamp="2007-12-15 07:48:47.857" createdTxStamp="2007-12-15 07:48:47.636"/> > <WorkEffortAssoc workEffortIdFrom="9003" workEffortIdTo="9005" workEffortAssocTypeId="WORK_EFF_DEPENDENCY" sequenceNum="0" fromDate="2007-12-15 07:56:09.61" lastUpdatedStamp="2007-12-15 07:56:09.61" lastUpdatedTxStamp="2007-12-15 07:56:09.414" createdStamp="2007-12-15 07:56:09.61" createdTxStamp="2007-12-15 07:56:09.414"/> > <WorkEffortAssoc workEffortIdFrom="9005" workEffortIdTo="9006" workEffortAssocTypeId="WORK_EFF_DEPENDENCY" sequenceNum="0" fromDate="2007-12-15 07:56:18.588" lastUpdatedStamp="2007-12-15 07:56:18.588" lastUpdatedTxStamp="2007-12-15 07:56:18.556" createdStamp="2007-12-15 07:56:18.588" createdTxStamp="2007-12-15 07:56:18.556"/> > > Modified: ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml?rev=604589&r1=604588&r2=604589&view=diff > ============================================================================== > --- ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml (original) > +++ ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml Sun Dec 16 01:43:35 2007 > @@ -20,7 +20,40 @@ > > <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> > - > + > + <simple-method method-name="projectScheduler" short-description="Project Schulers sets the planningdates according task requirements and available resources"> > + <!-- > + theory behind the program > + - - - - - - - - - - - - - > + > + Assumptions for tasks and resources > + 1. a workday has 8 hours > + 2. a workweek has 40 hours and 5 days > + 3. The default order of the Tasks is by name > + 4. The default order of the tasks can be modified by the priority > + > + The steps of the program are: > + 1. read all tasks into a list with the following fields: > + name, id, length in hours, sequence > + for critical path processing: > + * ES - Earliest Start time > + * EF - Earliest Finish time > + * LS - Latest Start time > + * LF - Latest Finish time > + > + EF = LF task is on the critical path > + > + > + The program will allocate certain values for certain facts to indicate the importance > + and add the values to the sequence field. > + > + order by name: 10 for every position > + priority 1000 for every number > + > + The system will then sort the list by sequence and will insert the planned dates > + according the startdate and sat and sundays. > + --> > + </simple-method> > > <simple-method method-name="updateTimeEntryByWorkeffort" short-description="Update workeffort by workeffort and timesheetId "> > <if-empty field-name="parameters.workEffortId"> > > Modified: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml?rev=604589&r1=604588&r2=604589&view=diff > ============================================================================== > --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml (original) > +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml Sun Dec 16 01:43:35 2007 > @@ -431,7 +431,7 @@ > <view-map name="EditTaskList" type="screen" page="component://projectmgr/widget/TaskScreens.xml#EditTaskList"/> > <view-map name="EditTaskListAndAssoc" type="screen" page="component://projectmgr/widget/TaskScreens.xml#EditTaskListAndAssoc"/> > <view-map name="ChildTaskWorkEfforts" type="screen" page="component://projectmgr/widget/TaskScreens.xml#ChildTaskWorkEfforts"/> > - <view-map name="ListWorkEffortPartyAssigns" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#ListWorkEffortPartyAssigns"/> > + <view-map name="ListWorkEffortPartyAssigns" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditProjectParties"/> > <view-map name="FindPhase" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#FindPhase"/> > <view-map name="EditProjectSkills" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditProjectSkills"/> > <view-map name="EditTaskSkills" type="screen" page="component://projectmgr/widget/TaskScreens.xml#EditTaskSkills"/> > > Modified: ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml?rev=604589&r1=604588&r2=604589&view=diff > ============================================================================== > --- ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml (original) > +++ ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml Sun Dec 16 01:43:35 2007 > @@ -370,7 +370,7 @@ > </widgets> > </section> > </screen> > - <screen name="ListWorkEffortPartyAssigns"> > + <screen name="EditProjectParties"> > <section> > <actions> > <set field="titleProperty" value="PageTitleListWorkEffortPartyAssigns"/> > @@ -384,13 +384,13 @@ > <decorator-screen name="CommonProjectDecorator" location="${parameters.mainDecoratorLocation}"> > <decorator-section name="body"> > <container style="screenlet"> > - <container style="screenlet-title-bar"><label style="boxhead">${uiLabelMap.PageTitleListWorkEffortPartyAssigns}</label></container> > + <container style="screenlet-title-bar"><label style="boxhead">${uiLabelMap.PageTitleListPartyAssigns}</label></container> > <container style="screenlet-body"> > - <include-form name="ListWorkEffortPartyAssigns" location="component://projectmgr/widget/forms/ProjectForms.xml"/> > + <include-form name="EditWorkEffortPartyAssigns" location="component://projectmgr/widget/forms/ProjectForms.xml"/> > </container> > </container> > <container style="screenlet"> > - <container style="screenlet-title-bar"><label style="boxhead">${uiLabelMap.PageTitleAddWorkEffortPartyAssign}</label></container> > + <container style="screenlet-title-bar"><label style="boxhead">${uiLabelMap.PageTitleAddPartyAssign}</label></container> > <container style="screenlet-body"> > <include-form name="AddWorkEffortPartyAssign" location="component://projectmgr/widget/forms/ProjectForms.xml"/> > </container> > > Modified: ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml?rev=604589&r1=604588&r2=604589&view=diff > ============================================================================== > --- ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml (original) > +++ ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml Sun Dec 16 01:43:35 2007 > @@ -284,33 +284,42 @@ > <hyperlink also-hidden="false" description="${uiLabelMap.CommonDelete}" target="deleteProjectSkillStandard?workEffortId=${workEffortId}&skillTypeId=${skillTypeId}"/> > </field> > </form> > - <form name="ListWorkEffortPartyAssigns" separate-columns="false" target="updateWorkEffortPartyAssign" title="" type="list" paginate-target="ListWorkEffortPartyAssigns"> > + <form name="EditWorkEffortPartyAssigns" target="deleteWorkEffortPartyAssign" title="" type="list" paginate-target="ListWorkEffortPartyAssigns"> > <actions> > <entity-condition entity-name="WorkEffortPartyAssignment"> > <condition-expr field-name="workEffortId" operator="equals" env-name="projectId"/> > <order-by field-name="roleTypeId"/> > </entity-condition> > - </actions> > - <field name="workEffortId"><hidden/></field> > + </actions> > + <field name="workEffortId"><hidden value="${projectId}"/></field> > <field name="projectId"><hidden/></field> > <field name="partyId" widget-style="buttontext"> > <display-entity entity-name="PartyNameView" description="${firstName} ${middleName} ${lastName} ${groupName}"> > <sub-hyperlink target="/partymgr/control/viewprofile?partyId=${partyId}" target-type="inter-app" description="${partyId}" link-style="buttontext"/> > </display-entity> > </field> > - <field name="fromDate"><display type="date"/></field> > - <field name="roleTypeId" title="${uiLabelMap.PartyRoleType}"> > - <display-entity entity-name="RoleType"/> > - </field> > - <field name="thruDate"><date-time type="date"/></field> > - <field name="submitButton" title="${uiLabelMap.CommonSave}" widget-style="smallSubmit"><submit button-type="button"/></field> > + <field name="roleTypeId" title="${uiLabelMap.PartyRoleType}"> > + <display-entity entity-name="RoleType"/> > + </field> > + <field name="fromDate" title="${uiLabelMap.CommonFromDate}"><display type="date"/></field> > + <field name="thruDate" title="${uiLabelMap.CommonThruDate}"><display type="date"/></field> > + <field name="deleteButton" widget-style="smallSubmit"><submit button-type="button"/></field> > </form> > <form name="AddWorkEffortPartyAssign" target="createWorkEffortPartyAssign" title="" type="single"> > <field name="projectId"><hidden/></field> > - <field name="partyId"><lookup target-form-name="LookupPartyName"/></field> > <field name="statusId"><hidden value="PRTYASGN_ASSIGNED"/></field> > <field name="workEffortId"><hidden value="${projectId}"/></field> > - <field name="roleTypeId" title="${uiLabelMap.PartyRoleType}"> > + <field entry-name="xx" name="partyId"> > + <drop-down> > + <entity-options entity-name="PartyRoleDetailAndPartyDetail" description="${firstName} ${middleName} ${lastName} ${groupName}"> > + <entity-constraint name="parentTypeId" value="PROJECT_TEAM"/> > + <entity-order-by field-name="lastName"/> > + <entity-order-by field-name="groupName"/> > + <entity-order-by field-name="roleTypeId"/> > + </entity-options> > + </drop-down> > + </field> > + <field entry-name="xx" name="roleTypeId" title="${uiLabelMap.PartyRoleType}"> > <drop-down> > <entity-options entity-name="RoleType" description="${description}"> > <entity-constraint name="parentTypeId" value="PROJECT_TEAM"/> > @@ -318,9 +327,8 @@ > </entity-options> > </drop-down> > </field> > - <field name="fromDate"><date-time type="date"/></field> > - > - <field name="thruDate"><date-time type="date"/></field> > + <field entry-name="xx" name="fromDate"><date-time type="date"/></field> > + <field entry-name="xx" name="thruDate"><date-time type="date"/></field> > <field name="submitButton" title="${uiLabelMap.CommonAdd}" widget-style="smallSubmit"><submit button-type="button"/></field> > </form> > <form name="ListTimeEntries" type="list" list-name="timesheetEntries" target="updateTimeEntry" paginate-target="EditTimeEntries"> > |
Free forum by Nabble | Edit this page |