You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ap...@apache.org on 2007/09/09 21:02:13 UTC
svn commit: r574051 [1/4] - in /ofbiz/trunk/specialpurpose/projectmgr: ./
config/ webapp/projectmgr/WEB-INF/ webapp/projectmgr/WEB-INF/actions/
webapp/projectmgr/project/ webapp/projectmgr/project/summary/ widget/
widget/forms/
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="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@ofbizUrl>" >
+ <#else>
+ <form name="CreateTimeSheetForm" method="get" action="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@ofbizUrl>">
+ <#else>
+ <br/>
+ <form name="addPhaseAndAssocForm" method="get" action="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@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>