Author: apatel
Date: Sun Sep 9 12:02:11 2007 New Revision: 574051 URL: http://svn.apache.org/viewvc?rev=574051&view=rev Log: Adding forms and screens for Project management. Most of the forms are intentionally done using freemarker so we have more control over UI. Planning to use Ajax/Effects where makes sense. Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/AssociatedParties.bsh ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ChildWorkEffort.bsh ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListFilteredTasks.bsh ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListProjectsByDateRange.bsh ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListTimeSheetByDateRange.bsh ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/EditTimeEntry.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editProjectskills.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editTimeSheet.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editphaseandassoc.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editproject.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editprojectandassoc.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/edittask.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/edittaskandassoc.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/edittasklist.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/edittasklistandassoc.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/edittaskskills.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/findtasks.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/listTimeSheetByDateRange.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/listprojectsbydaterange.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/listtasksbydaterange.ftl ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/summary/ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/summary/projectinfo.ftl ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml ofbiz/trunk/specialpurpose/projectmgr/widget/TaskScreens.xml ofbiz/trunk/specialpurpose/projectmgr/widget/TimeSheetScreens.xml ofbiz/trunk/specialpurpose/projectmgr/widget/WorkEffortTrees.xml ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TaskForms.xml ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TimeSheetForms.xml Modified: ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties ofbiz/trunk/specialpurpose/projectmgr/ofbiz-component.xml ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml ofbiz/trunk/specialpurpose/projectmgr/widget/CommonScreens.xml ofbiz/trunk/specialpurpose/projectmgr/widget/Menus.xml Modified: ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties?rev=574051&r1=574050&r2=574051&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties (original) +++ ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties Sun Sep 9 12:02:11 2007 @@ -23,6 +23,71 @@ # Override Page and Label title +PageTitleAddProject=Add Project +PageTitleAddPhase=Add Phase +PageTitleAddSkill=Add Skill +PageTitleAddSubProject=Add Sub Project +PageTitleAddSubTask=Add Sub Task +PageTitleAddTask=Add Task +PageTitleEditProject=Edit Project +PageTitleEditPhase=Edit Phase +PageTitleEditSkill=Edit Skill +PageTitleEditSubProject=Edit Sub Project +PageTitleEditSubTask=Edit Sub Task +PageTitleEditTask=Edit Task +PageTitleFindProject=Find Project +PageTitleFindPhase=Find Phase +PageTitleFindSubProject=Find Sub Project +PageTitleFindSubTask=Find Sub Task +PageTitleFindTask=Find Task +PageTitleUnassignedTask=Unassigned Task +PageTitleAddPartyAssign=Add Party Assign +PageTitleListPartyAssigns=Party Assigns ProjectMgrCompanyName=Ofbiz Company ProjectMgrCompanySubtitle=Project +ProjectMgrEditPatySkill=Edit PatySkill +ProjectMgrEditPoject=Edit Poject +ProjectMgrEditTask=Edit Task +ProjectMgrEstimatedCost=Estimated Cost +ProjectMgrEstimatedDuration=Estimated Duration +ProjectMgrEstimatedNumPeople=Estimated People +ProjectMgrFilterOn=Filter on +ProjectMgrNewProject=New Project +ProjectMgrNewSubProject=New Sub Project +ProjectMgrNewSubTask=New Sub Task +ProjectMgrNewTask=New Task +ProjectMgrPartyList=List of Parties +ProjectMgrProjectName=Project Name +ProjectMgrProjectSummary=Project Summary +ProjectMgrPhases=Phases +ProjectMgrPhaseList=List of Phase +ProjectMgrSkillStandards=Skill Standards +ProjectMgrSkillType=Skill Type +ProjectMgrSubProjectName=Sub Project Name +ProjectMgrSubProjects=Sub Projects +ProjectMgrSubTaskName=Sub Task Name +ProjectMgrSubProjectList=List of SubProject +ProjectMgrSubTasks=Sub Tasks +ProjectMgrTaskName=Task Name +ProjectMgrTasks=Tasks +ProjectMgrTaskList=List of Task +ProjectMgrTreeDetails=TreeDetails +ProjectMgrParties=Parties +ProjectMgrWorkEffortAssocTypeId=Association Type +ProjectMgrWorkEffortTypeId=Type +ProjectMgrWorkEffortPurposeTypeId=Purpose Type +ProjectMgrWorkEffortId=Id +ProjectMgrWorkEffortScopeEnumId=Scope +ProjectMgrWorkEffortEstimatedStartDate=Estimated StartDate +ProjectMgrWorkEffortEstimatedCompletionDate=Estimated CompletionDate +ProjectMgrWorkEffortActualStartDate=Actual StartDate +ProjectMgrWorkEffortActualCompletionDate=Actual CompletionDate +ProjectMgrWorkEffortIdFrom=Id From +ProjectMgrWorkEffortIdTo=Id To +ProjectMgrPartyRoleTypeId=Role Type Id +ProjectMgrTaskNotAssignedPhase=Task not assigned to Phase/Iteration +ProjectMgrToFindTask=To Find Task Give Range +ProjectMgrToFindProject=To Find Project Give Range +ProjectMgrTimeEntries=Add/Edit Time Entries +PageTitleListTimeEntries=List Time Entries for Modified: ofbiz/trunk/specialpurpose/projectmgr/ofbiz-component.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/ofbiz-component.xml?rev=574051&r1=574050&r2=574051&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/ofbiz-component.xml (original) +++ ofbiz/trunk/specialpurpose/projectmgr/ofbiz-component.xml Sun Sep 9 12:02:11 2007 @@ -25,6 +25,8 @@ <classpath type="dir" location="script"/> <classpath type="dir" location="config"/> <classpath type="jar" location="build/lib/*"/> + <entity-resource type="data" reader-name="seed" loader="main" location="data/ProjectMgrTypeData.xml"/> + <service-resource type="model" loader="main" location="servicedef/services.xml"/> <webapp name="projectmgr" title="Project" Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/AssociatedParties.bsh URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/AssociatedParties.bsh?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/AssociatedParties.bsh (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/AssociatedParties.bsh Sun Sep 9 12:02:11 2007 @@ -0,0 +1,30 @@ +/* +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.util.*; +import java.lang.*; +import org.ofbiz.entity.*; +import org.ofbiz.base.util.*; +import org.ofbiz.base.util.UtilMisc; +import org.ofbiz.entity.util.EntityUtil; +import javolution.util.FastMap; + +associatedParties = delegator.findByAnd("WorkEffortPartyAssignment", UtilMisc.toMap("workEffortId", workEffortId)); +context.put("associatedParties", associatedParties); Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ChildWorkEffort.bsh URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ChildWorkEffort.bsh?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ChildWorkEffort.bsh (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ChildWorkEffort.bsh Sun Sep 9 12:02:11 2007 @@ -0,0 +1,121 @@ +/* +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.util.*; +import java.lang.*; +import org.ofbiz.entity.*; +import org.ofbiz.base.util.*; +import org.ofbiz.base.util.UtilMisc; +import org.ofbiz.entity.util.EntityUtil; +import javolution.util.FastMap; + +workEffortIdFrom = parameters.get("workEffortIdFrom"); + +workEffortTypeId = parameters.get("workEffortTypeId"); + +if(workEffortIdFrom != null) { + List workEffortAssocs = delegator.findByAnd("WorkEffortAssocView", UtilMisc.toMap("workEffortIdFrom", workEffortIdFrom, "workEffortAssocTypeId", "WORK_EFF_BREAKDOWN")); + if(workEffortAssoc != null) { + List childProjects = new LinkedList(); + List childTasks = new LinkedList(); + List childPhases = new LinkedList(); + itr = workEffortAssocs.iterator(); + while(itr.hasNext()) { + GenericValue workEffortAssoc = itr.next(); + workEffortIdTo = workEffortAssoc.get("workEffortIdTo"); + GenericValue workEffort = delegator.findByPrimaryKey("WorkEffort", UtilMisc.toMap("workEffortId", workEffortIdTo)); + String workEffortTypeId = workEffort.get("workEffortTypeId"); + if(workEffortTypeId.equals("PROJECT")) { + Map projectMap = FastMap.newInstance(); + projectMap.put("currentStatusId", workEffort.getString("currentStatusId")); + projectMap.put("fromDate", workEffortAssoc.getString("fromDate")); + projectMap.put("workEffortId", workEffort.getString("workEffortId")); + projectMap.put("workEffortName", workEffort.getString("workEffortName")); + projectMap.put("priority", workEffort.getString("priority")); + projectMap.put("workEffortToActualStartDate", workEffortAssoc.getString("workEffortToActualStartDate")); + projectMap.put("workEffortToActualCompletionDate", workEffortAssoc.getString("workEffortToActualCompletionDate")); + projectMap.put("description", workEffort.getString("description")); + projectMap.put("workEffortTypeId", workEffort.getString("workEffortTypeId")); + projectMap.put("workEffortPurposeTypeId", workEffort.getString("workEffortPurposeTypeId")); + projectMap.put("workEffortAssocTypeId", "WORK_EFF_BREAKDOWN"); + childProjects.add(projectMap); + context.put("projects", childProjects); + } + else { + if(workEffortTypeId.equals("TASK")) { + Map taskMap = FastMap.newInstance(); + taskMap.put("currentStatusId", workEffort.getString("currentStatusId")); + taskMap.put("fromDate", workEffortAssoc.getString("fromDate")); + taskMap.put("workEffortId", workEffort.getString("workEffortId")); + taskMap.put("workEffortName", workEffort.getString("workEffortName")); + taskMap.put("priority", workEffort.getString("priority")); + taskMap.put("workEffortToActualStartDate", workEffortAssoc.getString("workEffortToActualStartDate")); + taskMap.put("workEffortToActualCompletionDate", workEffortAssoc.getString("workEffortToActualCompletionDate")); + taskMap.put("description", workEffort.getString("description")); + taskMap.put("workEffortTypeId", workEffort.getString("workEffortTypeId")); + taskMap.put("workEffortPurposeTypeId", workEffort.getString("workEffortPurposeTypeId")); + taskMap.put("workEffortAssocTypeId", "WORK_EFF_BREAKDOWN"); + childTasks.add(taskMap); + context.put("tasks", childTasks); + } + else { + if(workEffortTypeId.equals("PHASE")) { + Map phaseMap = FastMap.newInstance(); + phaseMap.put("currentStatusId", workEffort.getString("currentStatusId")); + phaseMap.put("fromDate", workEffortAssoc.getString("fromDate")); + phaseMap.put("workEffortId", workEffort.getString("workEffortId")); + phaseMap.put("workEffortName", workEffort.getString("workEffortName")); + phaseMap.put("workEffortToActualStartDate", workEffortAssoc.getString("workEffortToActualStartDate")); + phaseMap.put("workEffortToActualCompletionDate", workEffortAssoc.getString("workEffortToActualCompletionDate")); + phaseMap.put("description", workEffort.getString("description")); + phaseMap.put("workEffortAssocTypeId", "WORK_EFF_BREAKDOWN"); + phaseMap.put("workEffortTypeId", workEffort.getString("workEffortTypeId")); + phaseMap.put("workEffortPurposeTypeId", workEffort.getString("workEffortPurposeTypeId")); + childPhases.add(phaseMap); + context.put("phases", childPhases); + } + } + } + } + } +} +else { + if (workEffortTypeId.equals("TASK")) { + List tasks = delegator.findByAnd("WorkEffort", UtilMisc.toMap("workEffortTypeId", workEffortTypeId)); + List unAssignedTasks = new LinkedList(); + itr = tasks.iterator(); + while (itr.hasNext()) { + GenericValue task = itr.next(); + workEffortId = task.get("workEffortId"); + GenericValue workEffortAssoc = EntityUtil.getFirst(delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdTo", workEffortId))); + if (workEffortAssoc == null) { + unAssignedTasks.add(UtilMisc.toMap("workEffortId", task.getString("workEffortId"), + "workEffortTypeId", task.getString("workEffortTypeId"), + "workEffortPurposeTypeId", task.getString("workEffortPurposeTypeId"))); + context.put("tasks", unAssignedTasks); + } + } + } + else { + List projects = delegator.findByAnd("WorkEffort", UtilMisc.toMap("workEffortTypeId", workEffortTypeId)); + context.put("projects", projects); + } +} + Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListFilteredTasks.bsh URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListFilteredTasks.bsh?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListFilteredTasks.bsh (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListFilteredTasks.bsh Sun Sep 9 12:02:11 2007 @@ -0,0 +1,171 @@ +/* +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.util.*; +import java.lang.*; +import org.ofbiz.entity.*; +import org.ofbiz.base.util.*; +import org.ofbiz.base.util.UtilMisc; +import javolution.util.FastMap; + +import org.ofbiz.entity.util.*; +import org.ofbiz.base.util.*; +import org.ofbiz.entity.condition.*; +import java.sql.Timestamp; + +fromDate = parameters.get("fromDate"); +thruDate = parameters.get("thruDate"); + +workEffortTypeId = parameters.get("workEffortTypeId"); +workEffortIdFrom = parameters.get("workEffortIdFrom"); +findAll = parameters.get("findAll"); +if (findAll == null) { + findAll = "N"; +} +if (filterTaskNotAssigned == null) { +filterTaskNotAssigned = "N"; +} + +if (filterTaskNotAssigned.equals("Y")) { + workEffortAssocs = delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdFrom", workEffortIdFrom)); + if (workEffortAssocs != null) { + List phases = new LinkedList(); + List tasks = new LinkedList(); + List unassignedTasks = new LinkedList(); + itr = workEffortAssocs.iterator(); + while(itr.hasNext()) { + GenericValue workEffortAssoc = itr.next(); + workEffortIdTo = workEffortAssoc.get("workEffortIdTo"); + GenericValue workEffort = delegator.findByPrimaryKey("WorkEffort", UtilMisc.toMap("workEffortId", workEffortIdTo)); + String workEffortTypeId = workEffort.get("workEffortTypeId"); + if(workEffortTypeId.equals("PHASE")) { + phases.add(workEffort); + } + if(workEffortTypeId.equals("TASK")) { + tasks.add(workEffort); + } + } + if(tasks != null && tasks.size()>0) { + taskItr = tasks.iterator(); + while(taskItr.hasNext()) { + boolean outerFlag = false; + boolean innerFlag = false; + GenericValue task = taskItr.next(); + if(phases != null && phases.size()>0) { + phaseItr = phases.iterator(); + while(phaseItr.hasNext()) { + GenericValue phase = phaseItr.next(); + workEffortIdFrom = phase.get("workEffortId"); + workEffortAssocs = delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdFrom", workEffortIdFrom)); + if(workEffortAssocs != null) { + workEffortAssocItr = workEffortAssocs.iterator(); + while(workEffortAssocItr.hasNext()) { + GenericValue workEffortAssoc = workEffortAssocItr.next(); + if(workEffortAssoc.get("workEffortIdTo").equals(task.get("workEffortId"))) { + innerFlag = true; + outerFlag = true; + } + if(innerFlag) { + break; + } + } + } + if(outerFlag) { + break; + } + } + if(!innerFlag) { + Map taskMap = FastMap.newInstance(); + taskMap.put("currentStatusId", task.getString("currentStatusId")); + taskMap.put("workEffortId", task.getString("workEffortId")); + taskMap.put("workEffortName", task.getString("workEffortName")); + taskMap.put("priority", task.getString("priority")); + taskMap.put("description", task.getString("description")); + taskMap.put("workEffortTypeId", task.getString("workEffortTypeId")); + taskMap.put("workEffortPurposeTypeId", task.getString("workEffortPurposeTypeId")); + taskMap.put("workEffortAssocTypeId", "WORK_EFF_BREAKDOWN"); + unassignedTasks.add(taskMap); + } + } + } + context.put("tasks", unassignedTasks); + } + } +}else { + if(workEffortTypeId.equals("TASK")) { + if ( !(UtilValidate.isEmpty(fromDate) || UtilValidate.isEmpty(thruDate))) { + conditions = UtilMisc.toList(new EntityExpr("workEffortTypeId", EntityOperator.EQUALS, "TASK")); + conditions.add(new EntityExpr("createdStamp", EntityOperator.GREATER_THAN_EQUAL_TO, fromDate )); + conditions.add(new EntityExpr("createdStamp", EntityOperator.LESS_THAN_EQUAL_TO, thruDate )); + allConditions = new EntityConditionList( conditions, EntityOperator.AND ); + orderBy = UtilMisc.toList("createdStamp DESC"); + listProjects = delegator.findByConditionCache("WorkEffort", allConditions, null, orderBy ); + List projects = new LinkedList(); + itr = listProjects.iterator(); + while (itr.hasNext()) { + GenericValue project = itr.next(); + workEffortId = project.get("workEffortId"); + GenericValue workEffortAssoc = EntityUtil.getFirst(delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdTo", workEffortId))); + if (workEffortAssoc == null) { + projects.add(UtilMisc.toMap("workEffortId", project.getString("workEffortId"), + "workEffortName", project.getString("workEffortName"), + "workEffortTypeId", project.getString("workEffortTypeId"), + "workEffortPurposeTypeId", project.getString("workEffortPurposeTypeId"))); + context.put("projects", projects); + } + } + } else { + if (findAll.equals("Y")){ + List workEffortAssocs = delegator.findByAnd("WorkEffortAssocView", UtilMisc.toMap("workEffortIdFrom", workEffortIdFrom)); + List tasks = new LinkedList(); + if(workEffortAssocs != null) { + itr = workEffortAssocs.iterator(); + while (itr.hasNext()) { + GenericValue workEffortAssoc = itr.next(); + GenericValue task = delegator.findByPrimaryKey("WorkEffort", UtilMisc.toMap("workEffortId", workEffortAssoc.get("workEffortIdTo"))); + workEffortTypeId = task.get("workEffortTypeId"); + if(workEffortTypeId.equals("TASK")) { + Map taskMap = FastMap.newInstance(); + taskMap.put("currentStatusId", task.getString("currentStatusId")); + taskMap.put("fromDate", workEffortAssoc.getString("fromDate")); + taskMap.put("workEffortId", task.getString("workEffortId")); + taskMap.put("workEffortName", task.getString("workEffortName")); + taskMap.put("priority", task.getString("priority")); + taskMap.put("description", task.getString("description")); + taskMap.put("workEffortTypeId", task.getString("workEffortTypeId")); + taskMap.put("workEffortToActualStartDate", workEffortAssoc.getString("workEffortToActualStartDate")); + taskMap.put("workEffortToActualCompletionDate", workEffortAssoc.getString("workEffortToActualCompletionDate")); + taskMap.put("workEffortPurposeTypeId", task.getString("workEffortPurposeTypeId")); + taskMap.put("workEffortAssocTypeId", "WORK_EFF_BREAKDOWN"); + tasks.add(taskMap); + context.put("tasks", tasks); + } + } + } + } else { + List tasks = null; + context.put("tasks", tasks); + } + } + } else { + List unassignedTasks = null; + context.put("tasks", unassignedTasks); + } +} Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListProjectsByDateRange.bsh URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListProjectsByDateRange.bsh?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListProjectsByDateRange.bsh (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListProjectsByDateRange.bsh Sun Sep 9 12:02:11 2007 @@ -0,0 +1,131 @@ +/* +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.util.*; +import java.lang.*; +import org.ofbiz.entity.*; +import org.ofbiz.base.util.*; +import org.ofbiz.base.util.UtilMisc; + + +import org.ofbiz.entity.util.*; +import org.ofbiz.base.util.*; +import org.ofbiz.entity.condition.*; +import java.sql.Timestamp; + +fromDate = parameters.get("fromDate"); +thruDate = parameters.get("thruDate"); + +workEffortTypeId = parameters.get("workEffortTypeId"); +findAll = parameters.get("findAll"); +if (findAll == null) { + findAll = "N"; +} +if(workEffortTypeId.equals("PROJECT")) { + if ( !(UtilValidate.isEmpty(fromDate) || UtilValidate.isEmpty(thruDate))) { + conditions = UtilMisc.toList(new EntityExpr("workEffortTypeId", EntityOperator.EQUALS, "PROJECT")); + conditions.add(new EntityExpr("createdStamp", EntityOperator.GREATER_THAN_EQUAL_TO, fromDate )); + conditions.add(new EntityExpr("createdStamp", EntityOperator.LESS_THAN_EQUAL_TO, thruDate )); + allConditions = new EntityConditionList( conditions, EntityOperator.AND ); + orderBy = UtilMisc.toList("createdStamp DESC"); + listProjects = delegator.findByConditionCache("WorkEffort", allConditions, null, orderBy ); + List projects = new LinkedList(); + itr = listProjects.iterator(); + while (itr.hasNext()) { + GenericValue project = itr.next(); + workEffortId = project.get("workEffortId"); + GenericValue workEffortAssoc = EntityUtil.getFirst(delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdTo", workEffortId))); + if (workEffortAssoc == null) { + projects.add(UtilMisc.toMap("workEffortId", project.getString("workEffortId"), + "workEffortName", project.getString("workEffortName"), + "workEffortTypeId", project.getString("workEffortTypeId"), + "workEffortPurposeTypeId", project.getString("workEffortPurposeTypeId"))); + context.put("projects", projects); + } + } + } else { + if (findAll.equals("Y") ){ + List listProjects = delegator.findByAnd("WorkEffort", UtilMisc.toMap("workEffortTypeId", workEffortTypeId)); + List projects = new LinkedList(); + itr = listProjects.iterator(); + while (itr.hasNext()) { + GenericValue project = itr.next(); + workEffortId = project.get("workEffortId"); + GenericValue workEffortAssoc = EntityUtil.getFirst(delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdTo", workEffortId))); + if (workEffortAssoc == null) { + projects.add(UtilMisc.toMap("workEffortId", project.getString("workEffortId"), + "workEffortName", project.getString("workEffortName"), + "workEffortTypeId", project.getString("workEffortTypeId"), + "workEffortPurposeTypeId", project.getString("workEffortPurposeTypeId"))); + context.put("projects", projects); + } + } + } else { + List projects=null; + context.put("projects", projects); + } + } +} else { + if ( !(UtilValidate.isEmpty(fromDate) || UtilValidate.isEmpty(thruDate))) { + + conditions = UtilMisc.toList(new EntityExpr("workEffortTypeId", EntityOperator.EQUALS, "TASK")); + conditions.add(new EntityExpr("createdStamp", EntityOperator.GREATER_THAN_EQUAL_TO, fromDate )); + conditions.add(new EntityExpr("createdStamp", EntityOperator.LESS_THAN_EQUAL_TO, thruDate )); + + allConditions = new EntityConditionList( conditions, EntityOperator.AND ); + orderBy = UtilMisc.toList("createdStamp DESC"); + tasks = delegator.findByConditionCache("WorkEffort", allConditions, null, orderBy ); + List unAssignedTasks = new LinkedList(); + itr = tasks.iterator(); + while (itr.hasNext()) { + GenericValue task = itr.next(); + workEffortId = task.get("workEffortId"); + GenericValue workEffortAssoc = EntityUtil.getFirst(delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdTo", workEffortId))); + if (workEffortAssoc == null) { + unAssignedTasks.add(UtilMisc.toMap("workEffortId", task.getString("workEffortId"), + "workEffortName", task.getString("workEffortName"), + "workEffortTypeId", task.getString("workEffortTypeId"), + "workEffortPurposeTypeId", task.getString("workEffortPurposeTypeId"))); + context.put("tasks", unAssignedTasks); + } + } + } else { + if (findAll.equals("Y") ){ + List tasks = delegator.findByAnd("WorkEffort", UtilMisc.toMap("workEffortTypeId", workEffortTypeId)); + List unAssignedTasks = new LinkedList(); + itr = tasks.iterator(); + while (itr.hasNext()) { + GenericValue task = itr.next(); + workEffortId = task.get("workEffortId"); + GenericValue workEffortAssoc = EntityUtil.getFirst(delegator.findByAnd("WorkEffortAssoc", UtilMisc.toMap("workEffortIdTo", workEffortId))); + if (workEffortAssoc == null) { + unAssignedTasks.add(UtilMisc.toMap("workEffortId", task.getString("workEffortId"), + "workEffortName", task.getString("workEffortName"), + "workEffortTypeId", task.getString("workEffortTypeId"), + "workEffortPurposeTypeId", task.getString("workEffortPurposeTypeId"))); + context.put("tasks", unAssignedTasks); + } + } + } else { + List unAssignedTasks=null; + context.put("tasks", unAssignedTasks); + } +} +} Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListTimeSheetByDateRange.bsh URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListTimeSheetByDateRange.bsh?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListTimeSheetByDateRange.bsh (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ListTimeSheetByDateRange.bsh Sun Sep 9 12:02:11 2007 @@ -0,0 +1,54 @@ +/* +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.util.*; +import java.lang.*; +import org.ofbiz.entity.*; +import org.ofbiz.base.util.*; +import org.ofbiz.base.util.UtilMisc; +import org.ofbiz.entity.util.*; +import org.ofbiz.entity.condition.*; +import java.sql.Timestamp; + +fromDate = parameters.get("fromDate"); +thruDate = parameters.get("thruDate"); + +findAll = parameters.get("findAll"); +if (findAll == null) { + findAll = "N"; +} +List timeSheetList = new LinkedList(); +if ( !(UtilValidate.isEmpty(fromDate) || UtilValidate.isEmpty(thruDate))) { + List conditions = new LinkedList(); + conditions.add(new EntityExpr("createdStamp", EntityOperator.GREATER_THAN_EQUAL_TO, fromDate )); + conditions.add(new EntityExpr("createdStamp", EntityOperator.LESS_THAN_EQUAL_TO, thruDate )); + allConditions = new EntityConditionList( conditions, EntityOperator.AND ); + orderBy = UtilMisc.toList("createdStamp DESC"); + timeSheetList = delegator.findByConditionCache("Timesheet", allConditions, null, orderBy ); + context.put("timeSheetList", timeSheetList); +} else { + if (findAll.equals("Y")) { + timeSheetList = delegator.findAll("Timesheet"); + context.put("timeSheetList", timeSheetList); + }else { + timeSheetList = null; + context.put("timeSheetList", timeSheetList); + } +} 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=574051&r1=574050&r2=574051&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml (original) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml Sun Sep 9 12:02:11 2007 @@ -23,7 +23,8 @@ <include location="component://product/webapp/catalog/WEB-INF/controller.xml"/> <include location="component://order/webapp/ordermgr/WEB-INF/controller.xml"/> <include location="component://accounting/webapp/accounting/WEB-INF/controller.xml"/> - <include location="component://workeffort/webapp/workeffort/WEB-INF/controller.xml"/> + <include location="component://workeffort/webapp/workeffort/WEB-INF/controller.xml"/> + <include location="component://humanres/webapp/humanres/WEB-INF/controller.xml"/> <description>Project Management Component Site Configuration File</description> <errorpage>/error/error.jsp</errorpage> @@ -34,16 +35,310 @@ <security https="true" auth="true"/> <response name="success" type="view" value="main"/> </request-map> - - + + <request-map uri="FindProject"> + <security https="true" auth="true"/> + <response name="success" type="view" value="FindProject"/> + </request-map> + <request-map uri="FindProjectByRange"> + <security https="true" auth="true"/> + <response name="success" type="view" value="FindProjectByRange"/> + </request-map> + <request-map uri="EditProject"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditProject"/> + </request-map> + <request-map uri="createProject"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffort"/> + <response name="success" type="view" value="EditProject"/> + <response name="error" type="view" value="EditProject"/> + </request-map> + <request-map uri="updateProject"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffort"/> + <response name="success" type="view" value="EditProject"/> + <response name="error" type="view" value="EditProject"/> + </request-map> + <request-map uri="deleteProject"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteWorkEffort"/> + <response name="success" type="view" value="FindProject"/> + <response name="error" type="view" value="FindProject"/> + </request-map> + <request-map uri="ChildWorkEfforts"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ChildWorkEfforts"/> + </request-map> + <request-map uri="EditProjectAndAssoc"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditProjectAndAssoc"/> + </request-map> + <request-map uri="createProjectAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindProject"/> + <response name="error" type="view" value="FindProject"/> + </request-map> + <request-map uri="updateProjectAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindProject"/> + <response name="error" type="view" value="FindProject"/> + </request-map> + <request-map uri="FindTask"> + <security https="true" auth="true"/> + <response name="success" type="view" value="FindTask"/> + </request-map> + <request-map uri="EditTask"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditTask"/> + </request-map> + <request-map uri="createTask"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffort"/> + <response name="success" type="view" value="EditTask"/> + <response name="error" type="view" value="EditTask"/> + </request-map> + <request-map uri="updateTask"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffort"/> + <response name="success" type="view" value="EditTask"/> + <response name="error" type="view" value="EditTask"/> + </request-map> + <request-map uri="deleteTask"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteWorkEffort"/> + <response name="success" type="view" value="FindTask"/> + <response name="error" type="view" value="FindTask"/> + </request-map> + <request-map uri="EditTaskAndAssoc"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditTaskAndAssoc"/> + <response name="error" type="view" value="EditTaskAndAssoc"/> + </request-map> + <request-map uri="createTaskAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindTask"/> + <response name="error" type="view" value="FindTask"/> + </request-map> + <request-map uri="updateTaskAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindTask"/> + <response name="error" type="view" value="FindTask"/> + </request-map> + <request-map uri="FindTaskList"> + <security https="true" auth="true"/> + <response name="success" type="view" value="FindTaskList"/> + <response name="error" type="view" value="FindTaskList"/> + </request-map> + <request-map uri="FindTaskByRange"> + <security https="true" auth="true"/> + <response name="success" type="view" value="FindTaskByRange"/> + </request-map> + <request-map uri="EditTaskList"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditTaskList"/> + <response name="error" type="view" value="EditTaskList"/> + </request-map> + <request-map uri="createTaskList"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffort"/> + <response name="success" type="view" value="EditTaskList"/> + <response name="error" type="view" value="EditTaskList"/> + </request-map> + <request-map uri="deleteTaskList"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteWorkEffort"/> + <response name="success" type="view" value="FindTaskList"/> + <response name="error" type="view" value="FindTaskList"/> + </request-map> + <request-map uri="EditTaskListAndAssoc"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditTaskListAndAssoc"/> + <response name="error" type="view" value="EditTaskListAndAssoc"/> + </request-map> + <request-map uri="createTaskListAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindTaskList"/> + <response name="error" type="view" value="FindTaskList"/> + </request-map> + <request-map uri="updateTaskListAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindTaskList"/> + <response name="error" type="view" value="FindTaskList"/> + </request-map> + <request-map uri="ChildTaskWorkEfforts"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ChildTaskWorkEfforts"/> + </request-map> + <request-map uri="FindPhase"> + <security https="true" auth="true"/> + <response name="success" type="view" value="FindPhase"/> + </request-map> + <request-map uri="createPhaseAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindPhase"/> + <response name="error" type="view" value="FindPhase"/> + </request-map> + <request-map uri="updatePhaseAndAssoc"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffortAndAssoc"/> + <response name="success" type="view" value="FindPhase"/> + <response name="error" type="view" value="FindPhase"/> + </request-map> + <request-map uri="projectView"> + <security https="true" auth="true"/> + <response name="success" type="view" value="projectView"/> + <response name="error" type="view" value="projectView"/> + </request-map> + <request-map uri="EditProjectSkills"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditProjectSkills"/> + </request-map> + <request-map uri="createProjectSkillStandard"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffortSkillStandard"/> + <response name="success" type="view" value="EditProjectSkills"/> + <response name="error" type="view" value="EditProjectSkills"/> + </request-map> + <request-map uri="updateWorkEffortSkillStandard"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffortSkillStandard"/> + <response name="success" type="view" value="EditProjectSkills"/> + <response name="error" type="view" value="EditProjectSkills"/> + </request-map> + <request-map uri="deleteWorkEffortSkillStandard"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteWorkEffortSkillStandard"/> + <response name="success" type="view" value="EditProjectSkills"/> + <response name="error" type="view" value="EditProjectSkills"/> + </request-map> + <request-map uri="EditTaskSkills"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditTaskSkills"/> + </request-map> + <request-map uri="createTaskSkillStandard"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffortSkillStandard"/> + <response name="success" type="view" value="EditTaskSkills"/> + <response name="error" type="view" value="EditTaskSkills"/> + </request-map> + <request-map uri="updateTaskSkillStandard"> + <security https="true" auth="true"/> + <event type="service" invoke="updateWorkEffortSkillStandard"/> + <response name="success" type="view" value="EditTaskSkills"/> + <response name="error" type="view" value="EditTaskSkills"/> + </request-map> + <request-map uri="projectView"> + <security https="true" auth="true"/> + <response name="success" type="view" value="projectView"/> + <response name="error" type="view" value="projectView"/> + </request-map> + <request-map uri="ListWorkEffortPartyAssigns"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ListWorkEffortPartyAssigns"/> + <response name="error" type="view" value="ListWorkEffortPartyAssigns"/> + </request-map> + <request-map uri="createWorkEffortPartyAssign"> + <security https="true" auth="true"/> + <event type="service" invoke="assignPartyToWorkEffort"/> + <response name="success" type="view" value="ListWorkEffortPartyAssigns"/> + <response name="error" type="view" value="ListWorkEffortPartyAssigns"/> + </request-map> + <request-map uri="updateWorkEffortPartyAssign"> + <security https="true" auth="true"/> + <event type="service" invoke="updatePartyToWorkEffortAssignment"/> + <response name="success" type="view" value="ListWorkEffortPartyAssigns"/> + <response name="error" type="view" value="ListWorkEffortPartyAssigns"/> + </request-map> + <request-map uri="EditTimeEntries"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditTimeEntries"/> + <response name="error" type="view" value="EditTimeEntries"/> + </request-map> + <request-map uri="createTimeEntry"> + <security https="true" auth="true"/> + <event type="service" invoke="createTimeEntry"/> + <response name="success" type="view" value="EditTimeEntries"/> + <response name="error" type="view" value="EditTimeEntries"/> + </request-map> + <request-map uri="updateTimeEntry"> + <security https="true" auth="true"/> + <event type="service" invoke="updateTimeEntry"/> + <response name="success" type="view" value="EditTimeEntries"/> + <response name="error" type="view" value="EditTimeEntries"/> + </request-map> + <request-map uri="deleteTimeEntry"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteTimeEntry"/> + <response name="success" type="view" value="EditTimeEntries"/> + <response name="error" type="view" value="EditTimeEntries"/> + </request-map> + <request-map uri="FindTimeSheet"> + <security https="true" auth="true"/> + <response name="success" type="view" value="FindTimeSheet"/> + <response name="error" type="view" value="FindTimeSheet"/> + </request-map> + <request-map uri="EditTimeSheet"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditTimeSheet"/> + <response name="error" type="view" value="FindTimeSheet"/> + </request-map> + <request-map uri="createTimesheets"> + <security https="true" auth="true"/> + <event type="service" invoke="createTimesheets"/> + <response name="success" type="view" value="FindTimeSheet"/> + <response name="error" type="view" value="FindTimeSheet"/> + </request-map> + <request-map uri="updateTimeSheet"> + <security https="true" auth="true"/> + <event type="service" invoke="updateTimesheet"/> + <response name="success" type="view" value="EditTimeSheet"/> + <response name="error" type="view" value="EditTimeSheet"/> + </request-map> + <request-map uri="deleteTimeSheet"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteTimesheet"/> + <response name="success" type="view" value="FindTimeSheet"/> + <response name="error" type="view" value="FindTimeSheet"/> + </request-map> <!-- end of request mappings --> <!-- View Mappings --> <view-map name="error" page="/error/error.jsp"/> - <view-map name="main" type="screen" page="component://order/widget/ordermgr/RequestScreens.xml#FindRequest"/> + <view-map name="main" type="screen" page="component://projectmgr/widget/TaskScreens.xml#FindTaskByRange"/> <view-map name="login" type="screen" page="component://projectmgr/widget/CommonScreens.xml#login"/> <view-map name="requirePasswordChange" type="screen" page="component://projectmgr/widget/CommonScreens.xml#requirePasswordChange"/> - + <view-map name="FindProject" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#FindProject"/> + <view-map name="FindProjectByRange" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#FindProjectByRange"/> + <view-map name="EditProject" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditProject"/> + <view-map name="EditWorkEffort" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditProject"/> + <view-map name="ChildWorkEfforts" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#ChildWorkEfforts"/> + <view-map name="EditProjectAndAssoc" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditProjectAndAssoc"/> + <view-map name="FindTask" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#FindTask"/> + <view-map name="FindTaskByRange" type="screen" page="component://projectmgr/widget/TaskScreens.xml#FindTaskByRange"/> + <view-map name="EditTask" type="screen" page="component://projectmgr/widget/TaskScreens.xml#EditTask"/> + <view-map name="AddTaskAndAssoc" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#AddTaskAndAssoc"/> + <view-map name="EditTaskAndAssoc" type="screen" page="component://projectmgr/widget/TaskScreens.xml#EditTaskAndAssoc"/> + <view-map name="FindTaskList" type="screen" page="component://projectmgr/widget/TaskScreens.xml#FindTaskList"/> + <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="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"/> + <view-map name="projectView" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#ProjectSummary"/> + <view-map name="EditPartySkills" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditPartySkills"/> + <view-map name="EditTimeEntries" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditTimeEntries"/> + <view-map name="FindTimeSheet" type="screen" page="component://projectmgr/widget/TimeSheetScreens.xml#FindTimeSheet"/> + <view-map name="EditTimeSheet" type="screen" page="component://projectmgr/widget/TimeSheetScreens.xml#EditTimeSheet"/> <!-- end of view mappings --> </site-conf> Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/EditTimeEntry.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/EditTimeEntry.ftl?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/EditTimeEntry.ftl (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/EditTimeEntry.ftl Sun Sep 9 12:02:11 2007 @@ -0,0 +1,88 @@ +<#-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<div class="screenlet"> + <div class="screenlet-title-bar"> + <ul> + <li class="head3"> ${uiLabelMap.PageTitleAddTimeEntry}</li> + </ul> + <br class="clear" /> + </div> + <div class="screenlet-body"> + <form name="editTimeEntryForm" action="<@ofbizUrl>createTimeEntry</@ofbizUrl>"> + <table width="100%" cellpadding="2" cellspacing="0" border="1"> + <tr> + <td><input type="hidden" name="workEffortId" value="${parameters.workEffortId?if_exists}"/></td> + </tr> + <tr> + <td class="label" >${uiLabelMap.PartyPartyId}</td> + <td> + <input type="text" name="partyId" value=""/> + <a href="javascript:call_fieldlookup2(document.editTimeEntryForm.partyId,'LookupPerson');"> + <img src='/images/fieldlookup.gif' width='15' height='14' border='0' alt='Click here For Field Lookup'/> + </a> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonFromDate}</td> + <td> + <input type="text" size="20" name="fromDate"/> + <a href="javascript:call_cal(document.editTimeEntryForm.fromDate, '${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonThruDate}</td> + <td> + <input type="text" size="20" name="thruDate"/> + <a href="javascript:call_cal(document.editTimeEntryForm.thruDate, '${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.TimesheetRateType}</td> + <td> + <#assign rateTypes = delegator.findAll("RateType")> + <select name="rateTypeId" class="selectBox"> + <#list rateTypes as rateType> + <option value="${rateType.rateTypeId}">${rateType.description}</option> + </#list> + </select> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.TimesheetTimesheetId}</td> + <td> + <input type="text" name="timesheetId" value=""/> + <a href="javascript:call_fieldlookup2(document.editTimeEntryForm.timesheetId,'LookupTimesheet');"> + <img src='/images/fieldlookup.gif' width='15' height='14' border='0' alt='Click here For Field Lookup'/> + </a> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.TimesheetHours}</td> + <td><input type="text" name="hours" value=""/></td> + </tr> + <tr> + <td> </td> + <td> + <input type="submit" name="submit" value="${uiLabelMap.CommonSave}"/> + </td> + </tr> + </table> + </form> + </div> +</div> Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editProjectskills.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editProjectskills.ftl?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editProjectskills.ftl (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editProjectskills.ftl Sun Sep 9 12:02:11 2007 @@ -0,0 +1,65 @@ +<#-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="screenlet"> + <div class="screenlet-title-bar"> + <ul> + <li class="head3"> ${uiLabelMap.PageTitleAddSkill}</li> + </ul> + <br class="clear" /> + </div> + <div class="screenlet-body"> + <form name="editProjectSkillForm" action="<@ofbizUrl>createProjectSkillStandard</@ofbizUrl>"> + <table width="100%" cellpadding="2" cellspacing="0" border="1"> + <tr> + <td><input type="hidden" name="workEffortId" value="${parameters.workEffortId?if_exists}"/></td> + </tr> + <tr> + <td class="label">${uiLabelMap.ProjectMgrSkillType}</td> + <td> + <#assign skillTypes = delegator.findAll("SkillType")> + <select name="skillTypeId" class="selectBox"> + <#list skillTypes as skillType> + <option value="${skillType.skillTypeId}">${skillType.description}</option> + </#list> + </select><span class="tooltip">${uiLabelMap.CommonRequired}</span></td> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.ProjectMgrEstimatedNumPeople}</td> + <td><input type="text" name="estimatedNumPeople" value=""/></td> + </tr> + <tr> + <td class="label" >${uiLabelMap.ProjectMgrEstimatedDuration}</td> + <td><input type="text" name="estimatedDuration" value=""/></td> + </tr> + <tr> + <td class="label" >${uiLabelMap.ProjectMgrEstimatedCost}</td> + <td><input type="text" name="estimatedCost" value=""/></td> + </tr> + <tr> + <td> </td> + <td> + <input type="submit" name="submit" value="${uiLabelMap.CommonSave}"/> + </td> + </tr> + </table> + </form> + </div> +</div> Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editTimeSheet.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editTimeSheet.ftl?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editTimeSheet.ftl (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editTimeSheet.ftl Sun Sep 9 12:02:11 2007 @@ -0,0 +1,125 @@ +<#-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="screenlet"> + <div class="screenlet-title-bar"> + <ul> + <#if timesheet?exists> + <li class="head3"> ${uiLabelMap.PageTitleEditTimesheet} # ${timesheet.timesheetId?if_exists}</li> + <#else> + <li class="head3"> ${uiLabelMap.PageTitleAddTimesheet}</li> + </#if> + </ul> + <br class="clear" /> + </div> + <div class="screenlet-body"> + <#if timesheet?exists> + <form name="CreateTimeSheetForm" method="get" action="<@ofbizUrl>updateTimeSheet</@ofbizUrl>" > + <#else> + <form name="CreateTimeSheetForm" method="get" action="<@ofbizUrl>createTimesheets</@ofbizUrl>" > + </#if> + <table width="100%" cellpadding="2" cellspacing="0" border="0"> + <#if timesheet?exists> + <td><input type="hidden" name="timesheetId" value="${timesheet.timesheetId?if_exists}"/></td> + </#if> + <#if timesheet?exists> + <tr> + <td class="label">${uiLabelMap.TimesheetTimesheetId}</td> + <td>${timesheet.timesheetId?if_exists}</td> + </tr> + </#if> + <tr> + <td class="label">${uiLabelMap.PartyParty}</td> + <#if timesheet?exists> + <td> + <#assign partyDetail = delegator.findByPrimaryKeyCache("PartyNameView", Static["org.ofbiz.base.util.UtilMisc"].toMap("partyId",timesheet.partyId?if_exists))> + [${timesheet.partyId?if_exists}] ${partyDetail.firstName?if_exists} ${partyDetail.middleName?if_exists} ${partyDetail.lastName?if_exists} + </td> + <#else> + <td> + <select name="partyIdList" class="selectBox" size="6" multiple="multiple"> + <#assign partyList = delegator.findAll("Party", Static["org.ofbiz.base.util.UtilMisc"].toList("partyId"))> + <#list partyList as party> + <#assign partyDetail = delegator.findByPrimaryKeyCache("PartyNameView", Static["org.ofbiz.base.util.UtilMisc"].toMap("partyId", party.partyId?if_exists))> + <option value="${party.partyId?if_exists}">[${partyDetail.partyId?if_exists}] ${partyDetail.firstName?if_exists} ${partyDetail.middleName?if_exists} ${partyDetail.lastName?if_exists}</option> + </#list> + </select> + </td> + </#if> + </tr> + <tr> + <td class="label">${uiLabelMap.ClientPartyId}</td> + <#if timesheet?exists> + <td><input type="text" name="clientPartyId" value="${timesheet.clientPartyId?if_exists}"/> + <a href="javascript:call_fieldlookup2(document.CreateTimeSheetForm.clientPartyId,'LookupPartyName');"><img src='/images/fieldlookup.gif' width='15' height='14' border='0' alt='Click here For Field Lookup'/></a></td> + </td> + <#else> + <td><input type="text" name="clientPartyId" value=""/> + <a href="javascript:call_fieldlookup2(document.CreateTimeSheetForm.clientPartyId,'LookupPartyName');"><img src='/images/fieldlookup.gif' width='15' height='14' border='0' alt='Click here For Field Lookup'/></a></td> + </td> + </#if> + </tr> + <tr> + <td class="label">${uiLabelMap.CommonFromDate}</td> + <#if timesheet?exists> + <td> + <input type="text" size="20" name="fromDate" value="${timesheet.fromDate?if_exists}" class="field text"> + <a href="javascript:call_cal(document.CreateTimeSheetForm.fromDate, null);"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + <#else> + <td> + <input type="text" size="20" name="fromDate" class="field text"> + <a href="javascript:call_cal(document.CreateTimeSheetForm.fromDate, null);"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + <td> </td> + </#if> + </tr> + <tr> + <td class="label">${uiLabelMap.CommonThruDate}</td> + <#if timesheet?exists> + <td> + <input type="text" size="20" name="thruDate" value="${timesheet.thruDate?if_exists}" class="field text"> + <a href="javascript:call_cal(document.CreateTimeSheetForm.thruDate, null);"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + <#else> + <td> + <input type="text" size="20" name="thruDate" class="field text"> + <a href="javascript:call_cal(document.CreateTimeSheetForm.thruDate, null);"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + </#if> + <td> </td> + </tr> + <tr> + <td class="label">${uiLabelMap.CommonComments}</td> + <#if timesheet?exists> + <td><input type="text" size="35" name="comments" value="${timesheet.comments?if_exists}"/></td> + <#else> + <td><input type="text" size="35" name="comments" value=""/></td> + </#if> + </tr> + <tr> + <td> </td> + <td> + <a href="javascript:document.CreateTimeSheetForm.submit()" class="buttontext">${uiLabelMap.CommonSave}</a> + </td> + </tr> + </table> + </forms> + </div> +</div> Added: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editphaseandassoc.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editphaseandassoc.ftl?rev=574051&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editphaseandassoc.ftl (added) +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/editphaseandassoc.ftl Sun Sep 9 12:02:11 2007 @@ -0,0 +1,193 @@ +<#-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<div class="screenlet"> + <div class="screenlet-title-bar"> + <ul> + <#if project?has_content> + <li class="head3"> ${uiLabelMap.PageTitleEditPhase} #${project.workEffortName?if_exists} ${uiLabelMap.CommonInformation}</li> + <#else> + <li class="head3"> ${uiLabelMap.PageTitleAddPhase}</li> + </#if> + </ul> + <br class="clear" /> + </div> + <div class="screenlet-body"> + <#assign workEffortIdFrom = parameters.workEffortIdFrom> + <#if phase?has_content> + <form name="addPhaseAndAssocForm" method="get" action="<@ofbizUrl>updatePhaseAndAssoc</@ofbizUrl>"> + <#else> + <br/> + <form name="addPhaseAndAssocForm" method="get" action="<@ofbizUrl>createPhaseAndAssoc</@ofbizUrl>"> + </#if> + <table width="100%" cellpadding="2" cellspacing="0"> + <tr> + <#if !(phase?exists)> + <td><input type="hidden" name="workEffortTypeId" value="${parameters.workEffortTypeId?if_exists}"/></td> + <#else> + <td><input type="hidden" name="workEffortTypeId" value="${phase.workEffortTypeId?if_exists}"/></td> + <td><input type="hidden" name="workEffortId" value="${phase.workEffortId?if_exists}"/></td> + <td><input type="hidden" name="workEffortName" value="${phase.workEffortName?if_exists}"/></td> + </#if> + </tr> + <tr> + <td class="label" >${uiLabelMap.ProjectMgrWorkEffortIdFrom}</td> + <#assign workEffort=delegator.findByPrimaryKey("WorkEffort", Static["org.ofbiz.base.util.UtilMisc"].toMap("workEffortId", workEffortIdFrom?if_exists ))> + <td>${(workEffort.workEffortName)?if_exists} [${(workEffort.workEffortId)?if_exists}]<span class="tooltip">${uiLabelMap.CommonNotModifRecreat}</td> + <td><input type="hidden" name="workEffortIdFrom" value="${workEffortIdFrom?if_exists}"/></td> + <td><input type="hidden" name="workEffortParentId" value="${workEffortIdFrom?if_exists}"/></td> + </tr> + <tr> + <td class="label" >${uiLabelMap.ProjectMgrWorkEffortAssocTypeId}</td> + <td> + <select class="selectBox" name="workEffortAssocTypeId"> + <#assign WorkEffortAssocTypes = delegator.findAll("WorkEffortAssocType", Static["org.ofbiz.base.util.UtilMisc"].toList("description"))> + <#list WorkEffortAssocTypes as WorkEffortAssocType> + <option value="${WorkEffortAssocType.workEffortAssocTypeId?if_exists}">${WorkEffortAssocType.description?if_exists}</option> + </#list> + </select> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonSequenceNum}</td> + <td><input type="text" name="sequenceNum" value=""/></td> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonFromDate}</td> + <td> + <input type="text" size="20" name="fromDate"/> + <a href="javascript:call_cal(document.addProjectAndAssocForm.fromDate, '${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonThruDate}</td> + <td> + <input type="text" size="20" name="thruDate"/> + <a href="javascript:call_cal(document.addProjectAndAssocForm.thruDate, '${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"></a> + </td> + </tr> + <tr> + <td width="20%"> + Enter the WorkEffort Details below + </td> + </tr> + <tr> + <#if phase?exists> + <td class="label" >${uiLabelMap.ProjectMgrWorkEffortId}</td> + <td>${phase.workEffortId?if_exists}</td> + </#if> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonName}*</td> + <#if phase?exists> + <td>${phase.workEffortName?if_exists}<span class="tooltip">${uiLabelMap.CommonRequired}</span></td> + <#else> + <td><input type="text" name="workEffortName" value=""/><span class="tooltip">${uiLabelMap.CommonRequired}</span></td> + </#if> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonDescription}</td> + <#if phase?exists> + <td><input type="text" name="description" value="${phase.description?if_exists}"/></td> + <#else> + <td><input type="text" name="description" value=""/></td> + </#if> + </tr> + <tr> + <td class="label" >${uiLabelMap.CommonStatus}*</td> + <td> + <select name="currentStatusId" class="selectBox"> + <#if phase?exists> + <#assign currentStatusId = phase.currentStatusId?if_exists> + <#assign statusValidChangeToDetailList = delegator.findByAnd("StatusValidChangeToDetail", Static["org.ofbiz.base.util.UtilMisc"].toMap("statusId", currentStatusId))> + <#list statusValidChangeToDetailList as statusValidChangeToDetail> + <option SELECTED value="${currentStatusId}">${currentStatusId}</option> + <option value=${statusValidChangeToDetail.statusId}>[${uiLabelMap.WorkEffortGeneral}]${statusValidChangeToDetail.description}</option> + </#list> + <#else> + <#assign statusItemGenrals = delegator.findByAnd("StatusItem", Static["org.ofbiz.base.util.UtilMisc"].toMap("statusTypeId", "CALENDAR_STATUS"))> + <#assign statusItemTasks = delegator.findByAnd("StatusItem", Static["org.ofbiz.base.util.UtilMisc"].toMap("statusTypeId", "TASK_STATUS"))> + <#assign statusItemEvents = delegator.findByAnd("StatusItem", Static["org.ofbiz.base.util.UtilMisc"].toMap("statusTypeId", "EVENT_STATUS"))> + <#list statusItemGenrals as statusItem> + <option value="${statusItem.statusId?if_exists}">[${uiLabelMap.WorkEffortGeneral}]${statusItem.description}</option> + </#list> + <#list statusItemTasks as statusItem> + <option value="${statusItem.statusId?if_exists}">[${uiLabelMap.WorkEffortTask}]${statusItem.description}</option> + </#list> + <#list statusItemEvents as statusItem> + <option value="${statusItem.statusId?if_exists}">[${uiLabelMap.WorkEffortEvent}]${statusItem.description}</option> + </#list> + </#if> + </select><span class="tooltip">${uiLabelMap.CommonRequired}</span> + </td> + </tr> + <tr> + <td class="label">${uiLabelMap.WorkEffortEstimatedStartDate}</td> + <td> + <#if phase?exists> + <input type="text" name="estimatedStartDate" value="${phase.estimatedStartDate?if_exists}"/> + <#else> + <input type="text" name="estimatedStartDate" value=""/> + </#if> + <a href="javascript:call_cal(document.addPhaseAndAssocForm.estimatedStartDate,'${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"/></a> + </td> + </tr> + <tr> + <td class="label">${uiLabelMap.WorkEffortEstimatedCompletionDate}</td> + <td> + <#if phase?exists> + <input type="text" name="estimatedCompletionDate" value="${phase.estimatedCompletionDate?if_exists}"/> + <#else> + <input type="text" name="estimatedCompletionDate" value=""/> + </#if> + <a href="javascript:call_cal(document.addPhaseAndAssocForm.estimatedCompletionDate,'${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"/></a> + </td> + </tr> + <tr> + <td class="label">${uiLabelMap.FormFieldTitle_actualStartDate}</td> + <td> + <#if phase?exists> + <input type="text" name="actualStartDate" value="${phase.actualStartDate?if_exists}"/> + <#else> + <input type="text" name="actualStartDate" value=""/> + </#if> + <a href="javascript:call_cal(document.addPhaseAndAssocForm.actualStartDate,'${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"/></a> + </td> + </tr> + <tr> + <td class="label">${uiLabelMap.FormFieldTitle_actualCompletionDate}</td> + <td> + <#if phase?exists> + <input type="text" name="actualCompletionDate" value="${phase.actualCompletionDate?if_exists}"/> + <#else> + <input type="text" name="actualCompletionDate" value=""/> + </#if> + <a href="javascript:call_cal(document.addPhaseAndAssocForm.actualCompletionDate,'${nowTimestamp?string}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"/></a> + </td> + </tr> + <tr> + <td> </td> + <td> + <input type="submit" name="submit" value="${uiLabelMap.CommonSave}"/> + </td> + </tr> + </table> + </form> + </div> +</div> |
Free forum by Nabble | Edit this page |