From ba2e2e91b85b52054fd90cd33e7970555bfbad86 Mon Sep 17 00:00:00 2001 From: Guiqiang Zhang Date: Sun, 3 Jun 2018 09:57:12 +0800 Subject: [PATCH 1/7] fix js error --- src/web/scripts/launch/contestDetailSoftware.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/web/scripts/launch/contestDetailSoftware.js b/src/web/scripts/launch/contestDetailSoftware.js index 35bb4c4bd..00f0e4afe 100644 --- a/src/web/scripts/launch/contestDetailSoftware.js +++ b/src/web/scripts/launch/contestDetailSoftware.js @@ -1322,7 +1322,6 @@ function populateTypeSection() { } */ $('#rContestTypeName').text($("#contestTypes option[value=" + mainWidget.competitionType + mainWidget.softwareCompetition.projectHeader.projectCategory.id +"]").text()); - loadReviewScorecardList(null); $.each(reviewScorecards,function(){ @@ -1656,7 +1655,6 @@ function showTypeSectionDisplay() { } function showTypeSectionEdit() { - $("#reviewerEditDiv").hide(); $("#reviewTypeEditDiv").hide(); @@ -1675,7 +1673,7 @@ function showTypeSectionEdit() { $.each(billingAccounts,function(k, v) { var _cca = v["cca"] == "true" ? true : false; - var _enableEffortHours = value["enableEffortHours"] == "true" ? true : false; + var _enableEffortHours = v["enableEffortHours"] == "true" ? true : false; if (v["id"] == mainWidget.softwareCompetition.projectHeader.getBillingProject()) { if (_cca) { $("#chkboxCCA").attr('disabled','true'); @@ -1698,7 +1696,6 @@ function showTypeSectionEdit() { $('#copilots').data('customized',true); } - if(!$('#milestones').data('customized')) { $('#milestones').sSelect({ddMaxHeight: '220',yscroll: true}); $('#milestones').data('customized',true); @@ -1715,7 +1712,6 @@ function showTypeSectionEdit() { } $('#contestTypes').getSetSSValue(mainWidget.competitionType + mainWidget.softwareCompetition.projectHeader.projectCategory.id); - var projectType = mainWidget.competitionType; var projectCategoryId = mainWidget.softwareCompetition.projectHeader.projectCategory.id; setupReviewerDropdown(projectCategoryId, mainWidget.softwareCompetition.projectHeader.tcDirectProjectId); From a13e8bca0347a5f4df60314c27438826eb12ba26 Mon Sep 17 00:00:00 2001 From: Guiqiang Zhang Date: Mon, 18 Jun 2018 12:03:35 +0800 Subject: [PATCH 2/7] fix missing admin fee property case --- .../contest/ejb/ContestServiceFacadeBean.java | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java b/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java index 90c69f239..daaacc1f5 100644 --- a/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java +++ b/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java @@ -2470,45 +2470,45 @@ private SoftwareContestPaymentResult processContestSaleInternal(TCSubject tcSubj if (competition.getProjectHeader().getProjectCategory().getProjectType().getId() != ProjectType.STUDIO.getId()) { // software competition if (contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.FIRST_PLACE_COST_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.FIRST_PLACE_COST_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.FIRST_PLACE_COST_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.FIRST_PLACE_COST_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.FIRST_PLACE_COST_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.SECOND_PLACE_COST_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.SECOND_PLACE_COST_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.SECOND_PLACE_COST_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.SECOND_PLACE_COST_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.SECOND_PLACE_COST_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.CHECKPOINT_BONUS_COST_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.CHECKPOINT_BONUS_COST_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.CHECKPOINT_BONUS_COST_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.CHECKPOINT_BONUS_COST_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.CHECKPOINT_BONUS_COST_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.RELIABILITY_BONUS_COST_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.RELIABILITY_BONUS_COST_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.RELIABILITY_BONUS_COST_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.RELIABILITY_BONUS_COST_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.RELIABILITY_BONUS_COST_PROJECT_PROPERTY_KEY)); } // checkpoint prizes @@ -2523,21 +2523,21 @@ private SoftwareContestPaymentResult processContestSaleInternal(TCSubject tcSubj // studio competition if (contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.SPEC_REVIEW_COSTS_PROJECT_PROPERTY_KEY)); } if (contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY) != null - && !((String)contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) + && !(contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)).equals("")) { - totalFee += Double.parseDouble((String) contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)); + totalFee += Double.parseDouble(contest.getProperty(ProjectPropertyType.REVIEW_COSTS_PROJECT_PROPERTY_KEY)); } for (Prize prize : competition.getProjectHeader().getPrizes()) { @@ -2567,7 +2567,10 @@ private SoftwareContestPaymentResult processContestSaleInternal(TCSubject tcSubj double totalCost = totalFee; double totalMemberCost = totalFee; - totalMemberCost = totalMemberCost - Double.parseDouble((String) contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY)); + String adminFee = contest.getProperty(ProjectPropertyType.ADMIN_FEE_PROJECT_PROPERTY_KEY); + if (adminFee != null && adminFee.trim().length() != 0) { + totalMemberCost = totalMemberCost - Double.parseDouble(adminFee); + } if (paymentData instanceof TCPurhcaseOrderPaymentData) { From c7ec66cb3bd509fe5e349b5259f48a99920bc73c Mon Sep 17 00:00:00 2001 From: Deddy Syefria Date: Wed, 20 Jun 2018 08:13:01 +0700 Subject: [PATCH 3/7] enable null value for Client effortHours --- .../src/java/main/com/topcoder/clients/model/Client.java | 6 +++--- .../services/view/action/contest/launch/CommonAction.java | 2 +- .../view/action/contest/launch/GetContestAction.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java b/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java index 0d603ec39..5b3b666b5 100644 --- a/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java +++ b/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java @@ -112,7 +112,7 @@ public class Client extends AuditableEntity { *

*/ @Column(name = "enable_effort_hours") - private boolean enableEffortHours; + private Boolean enableEffortHours; /** *

@@ -381,7 +381,7 @@ public void setStartDate(Date startDate) { * * @return whether this client enabled effort hours. */ - public boolean isEffortHoursEnabled() { + public Boolean isEffortHoursEnabled() { return this.enableEffortHours; } @@ -391,7 +391,7 @@ public boolean isEffortHoursEnabled() { * @param enableEffortHours * whether this client enabled effort hours. */ - public void setEnableEffortHours(boolean enableEffortHours) { + public void setEnableEffortHours(Boolean enableEffortHours) { this.enableEffortHours = enableEffortHours; } } diff --git a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java index e6f9586e7..0e15af484 100644 --- a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java +++ b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java @@ -399,7 +399,7 @@ public String getBillingAccountsForProject() { billingAccount.put("cca", String.valueOf(requireCCAs[i])); // Add enableEffortHours for each billing account Client client = billingAccountsByProject.get(i).getClient(); - if (client != null) { + if (client != null && client.isEffortHoursEnabled() != null) { billingAccount.put("enableEffortHours", client.isEffortHoursEnabled()); } else { billingAccount.put("enableEffortHours", false); diff --git a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java index d9c3b814d..4046fbe19 100644 --- a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java +++ b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java @@ -571,7 +571,7 @@ protected void executeAction() throws Exception { billingAccount.put("cca", String.valueOf(requireCCAs[i])); // Add enableEffortHours for each billing account Client client = billingProjects.get(i).getClient(); - if (client != null) { + if (client != null && client.isEffortHoursEnabled() != null) { billingAccount.put("enableEffortHours", client.isEffortHoursEnabled()); } else { billingAccount.put("enableEffortHours", false); From 75eb4bc2b6658641d9bc6c14af4b135df4238cd2 Mon Sep 17 00:00:00 2001 From: Deddy Syefria Date: Wed, 27 Jun 2018 02:00:01 +0700 Subject: [PATCH 4/7] fix ConstestServiceFacadeBean.getSoftwareContestByProjectId if isEffortHoursEnabled = null --- .../service/facade/contest/ejb/ContestServiceFacadeBean.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java b/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java index daaacc1f5..de0fb86e7 100644 --- a/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java +++ b/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java @@ -5959,7 +5959,7 @@ public SoftwareCompetition getSoftwareContestByProjectId(TCSubject tcSubject, lo try { Client client = projectService.getClientByProject(fullProjectData.getProjectHeader().getTcDirectProjectId()); if (client != null) { - effortHoursEnabled = client.isEffortHoursEnabled(); + effortHoursEnabled = client.isEffortHoursEnabled() == null ? false : client.isEffortHoursEnabled(); } } catch (PersistenceFault e) { From 2639e6f9e9297313572c387b87792ce3e452ed8d Mon Sep 17 00:00:00 2001 From: David Messinger Date: Thu, 28 Jun 2018 12:03:29 -0400 Subject: [PATCH 5/7] switched from hours to days (#435) * switched from hours to days * fix frontend issue related to effort days * - Change column name enable_effort_hours to enable_effort_days of table client - Change Effort Estimate label and tooltip --- .../project/ProjectPropertyType.java | 28 +++--- .../clients/dao/ejb3/ProjectDAOBean.java | 28 +++--- .../com/topcoder/clients/model/Client.java | 28 +++--- .../contest/ejb/ContestServiceFacadeBean.java | 94 +++++++++---------- .../service/impl/ProjectServicesImpl.java | 16 ++-- .../test_files/insert.sql | 12 +-- .../action/contest/launch/CommonAction.java | 36 +++---- .../contest/launch/GetContestAction.java | 24 ++--- src/web/WEB-INF/contest-details2.jsp | 6 +- src/web/WEB-INF/includes/contest/editTab.jsp | 18 ++-- .../includes/contest/editTabMarathon.jsp | 8 +- .../includes/contest/editTabSoftware.jsp | 12 +-- .../includes/launch/contestSelection.jsp | 8 +- .../WEB-INF/includes/launch/orderReview.jsp | 6 +- .../includes/launch/orderReviewAlgorithm.jsp | 6 +- .../includes/launch/orderReviewSoftware.jsp | 6 +- src/web/WEB-INF/includes/launch/review.jsp | 6 +- .../includes/launch/reviewAlgorithm.jsp | 6 +- .../includes/launch/reviewSoftware.jsp | 8 +- src/web/WEB-INF/launch-contest.jsp | 4 +- src/web/css/direct/launchcontest.css | 12 ++- src/web/scripts/launch/contestDetail.js | 8 +- .../scripts/launch/contestDetailSoftware.js | 40 ++++---- src/web/scripts/launch/main.js | 30 +++--- src/web/scripts/launch/pages/orderReview.js | 10 +- src/web/scripts/launch/pages/review.js | 6 +- src/web/scripts/launch/pages/selection.js | 12 +-- src/web/scripts/launchcontest.js | 12 +-- 28 files changed, 250 insertions(+), 240 deletions(-) diff --git a/components/project_management/src/java/main/com/topcoder/management/project/ProjectPropertyType.java b/components/project_management/src/java/main/com/topcoder/management/project/ProjectPropertyType.java index 60e78053b..a8dc44ba1 100644 --- a/components/project_management/src/java/main/com/topcoder/management/project/ProjectPropertyType.java +++ b/components/project_management/src/java/main/com/topcoder/management/project/ProjectPropertyType.java @@ -67,7 +67,7 @@ *

* *

- * Version 1.3.0 (Topcoder - Add effort hours field) + * Version 1.3.0 (Topcoder - Add effort days field) *

    *
  • Add {@link #EFFORT_HOURS_ESTIMATE}
  • *
@@ -95,21 +95,21 @@ public class ProjectPropertyType implements Serializable { /** * Represents key for Allow Stock Art property. - * + * * @since 1.2.1 */ public static final String ALLOW_STOCK_ART_KEY = "Allow Stock Art"; - + /** * Represents key for Viewable Submissions Flag property. - * + * * @since 1.2.1 */ public static final String VIEWABLE_SUBMISSIONS_FLAG_KEY_STRING = "Viewable Submissions Flag"; - + /** * Represents key for Viewable Submitters property. - * + * * @since 1.2.1 */ public static final String VIEWABLE_SUBMITTERS_KEY = "Viewable Submitters"; @@ -184,7 +184,7 @@ public class ProjectPropertyType implements Serializable { */ public static final String BILLING_PROJECT_PROJECT_PROPERTY_KEY = "Billing Project"; - + /** *

* Represents the "confidentiality type" project property key @@ -217,7 +217,7 @@ public class ProjectPropertyType implements Serializable { * */ public static final String PUBLIC_PROJECT_PROPERTY_KEY = "Public"; - + /** * Represents the "Rated" project property key * @@ -289,7 +289,7 @@ public class ProjectPropertyType implements Serializable { */ public static final String ROOT_CATALOG_ID_PROJECT_PROPERTY_KEY = "Root Catalog ID"; - + /** * Represents the "Approval Required" project property key * @@ -338,13 +338,13 @@ public class ProjectPropertyType implements Serializable { * */ public static final String COPILOT_COST_PROJECT_PROPERTY_KEY = "Copilot Cost"; - + /** * Represents the "Contest Fee Percentage" project property key * */ public static final String CONTEST_FEE_PERCENTAGE_PROJECT_PROPERTY_KEY = "Contest Fee Percentage"; - + /** * Represents the "Review Feedback Flag" project property key * @@ -372,7 +372,7 @@ public class ProjectPropertyType implements Serializable { */ public static final String ALLOW_MULTIPLE_SUBMISSIONS_PROPERTY_KEY = "Allow multiple submissions"; - + /** * Represents the "CloudSpokes CMC Task" project property key. * @@ -437,9 +437,9 @@ public class ProjectPropertyType implements Serializable { public static final String REVIEW_TYPE_KEY = "Review Type"; /* - * Represent "Effort Hours Estimate" key + * Represent "Effort Days Estimate" key */ - public static final String EFFORT_HOURS_ESTIMATE = "Effort Hours Estimate"; + public static final String EFFORT_HOURS_ESTIMATE = "Effort Days Estimate"; /** * Represents the id of this instance. Only values greater than zero is diff --git a/services/client_project_entities_dao/src/java/main/com/topcoder/clients/dao/ejb3/ProjectDAOBean.java b/services/client_project_entities_dao/src/java/main/com/topcoder/clients/dao/ejb3/ProjectDAOBean.java index 2b605b317..250c6fdd8 100644 --- a/services/client_project_entities_dao/src/java/main/com/topcoder/clients/dao/ejb3/ProjectDAOBean.java +++ b/services/client_project_entities_dao/src/java/main/com/topcoder/clients/dao/ejb3/ProjectDAOBean.java @@ -82,8 +82,8 @@ *

* *

- * Version 1.3 (TC - Add effort hours field) - * - Add enable effort hours field for client + * Version 1.3 (TC - Add effort days field) + * - Add enable effort days field for client *

* *

@@ -124,7 +124,7 @@ public class ProjectDAOBean extends GenericEJB3DAO implements private static final String SELECT_PROJECT = "select p.project_id, p.name, p.po_box_number, p.description, " + " p.active, p.sales_tax, p.payment_terms_id, p.modification_user, p.modification_date, " + " p.creation_date, p.creation_user, p.is_deleted, " - + " cp.client_id, c.name as client_name, p.is_manual_prize_setting, c.code_name, c.enable_effort_hours " + + " cp.client_id, c.name as client_name, p.is_manual_prize_setting, c.code_name, c.enable_effort_days " + " from project as p left join client_project as cp on p.project_id = cp.project_id left join client c " + " on c.client_id = cp.client_id and (c.is_deleted = 0 or c.is_deleted is null) " + " where p.active = 1 and p.start_date <= current and current <= p.end_date "; @@ -135,7 +135,7 @@ public class ProjectDAOBean extends GenericEJB3DAO implements private static final String SELECT_PROJECT_BY_CLIENT_ID = "select p.project_id, p.name, p.po_box_number, p.description, " + " p.active, p.sales_tax, p.payment_terms_id, p.modification_user, p.modification_date, " + " p.creation_date, p.creation_user, p.is_deleted, " - + " cp.client_id, c.name as client_name, p.is_manual_prize_setting, c.code_name, c.enable_effort_hours " + + " cp.client_id, c.name as client_name, p.is_manual_prize_setting, c.code_name, c.enable_effort_days " + " from project as p, client_project as cp, client as c " + " where p.start_date <= current and current <= p.end_date " + " and c.client_id = cp.client_id and (p.is_deleted = 0 or p.is_deleted is null) " @@ -154,8 +154,8 @@ public class ProjectDAOBean extends GenericEJB3DAO implements + " where p.start_date <= current and current <= p.end_date " + " and c.client_id = cp.client_id and (p.is_deleted = 0 or p.is_deleted is null) " + " and p.project_id = cp.project_id "; - - + + /** * The query string used to select project by project id. * @@ -499,8 +499,8 @@ private List convertQueryToListProjects(Query query) { } if (os[16] != null) { - int enableEffortHours = Integer.parseInt(os[16].toString()); - client.setEnableEffortHours(enableEffortHours == 1 ? true : false); + int enableEffortDays = Integer.parseInt(os[16].toString()); + client.setEnableEffortDays(enableEffortDays == 1 ? true : false); } result.add(c); @@ -957,13 +957,13 @@ public List getProjectsByIds(List projectIds) throws DAOException } EntityManager entityManager = Helper.checkEntityManager(getEntityManager()); - + StringBuilder projectIdsClause = new StringBuilder(); - + projectIdsClause.append(" ("); boolean first = true; - + for(int i = 0; i < projectIds.size(); ++i) { if(projectIds.get(i) != null) { @@ -978,11 +978,11 @@ public List getProjectsByIds(List projectIds) throws DAOException } projectIdsClause.append(")"); - - + + try { String queryString = SELECT_PROJECTS_BY_IDS + projectIdsClause.toString(); - + System.out.println(queryString); Query query = entityManager.createNativeQuery(queryString); diff --git a/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java b/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java index 5b3b666b5..f6f1a3f51 100644 --- a/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java +++ b/services/client_project_entities_dao/src/java/main/com/topcoder/clients/model/Client.java @@ -95,7 +95,7 @@ public class Client extends AuditableEntity { /** *

- * This field represents the 'enableEffortHours' property of the Client. + * This field represents the 'enableEffortDays' property of the Client. *

*

* It is default to the default value of this data type when it is not @@ -103,16 +103,16 @@ public class Client extends AuditableEntity { *

*

* Through corresponding getter/setter methods. It is retrieved from - * Client.enableEffortHours [Client.isEffortHoursEnabled()] and in table - * client.enable_effort_hours. + * Client.enableEffortDays [Client.isEffortDaysEnabled()] and in table + * client.enable_effort_days. *

*

* There are no restrictions at this moment. It can take any value. * OPTIONAL. *

*/ - @Column(name = "enable_effort_hours") - private Boolean enableEffortHours; + @Column(name = "enable_effort_days") + private Boolean enableEffortDays; /** *

@@ -377,21 +377,21 @@ public void setStartDate(Date startDate) { } /** - * Gets whether this client enabled effort hours. + * Gets whether this client enabled effort days. * - * @return whether this client enabled effort hours. + * @return whether this client enabled effort days. */ - public Boolean isEffortHoursEnabled() { - return this.enableEffortHours; + public Boolean isEffortDaysEnabled() { + return this.enableEffortDays; } /** - * Sets whether this client enabled effort hours. + * Sets whether this client enabled effort days. * - * @param enableEffortHours - * whether this client enabled effort hours. + * @param enableEffortDays + * whether this client enabled effort days. */ - public void setEnableEffortHours(Boolean enableEffortHours) { - this.enableEffortHours = enableEffortHours; + public void setEnableEffortDays(Boolean enableEffortDays) { + this.enableEffortDays = enableEffortDays; } } diff --git a/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java b/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java index de0fb86e7..8393eb1b5 100644 --- a/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java +++ b/services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java @@ -918,9 +918,9 @@ *

  • Add CONTEST_PRIZE_TYPE_ID
  • * * - * Version 3.13 (Topcoder - Add effort hours field): + * Version 3.13 (Topcoder - Add effort ysfield): *
      - *
    • Add enable effort hours
    • + *
    • Add enable effort days
    • *
    * * @author snow01, pulky, murphydog, waits, BeBetter, hohosky, isv, tangzx, GreatKevin, lmmortal, minhu, GreatKevin, tangzx @@ -1229,17 +1229,17 @@ public class ContestServiceFacadeBean implements ContestServiceFacadeLocal, Cont private final static int GLOBAL_TIMELINE_NOTIFICATION = 29; private final static int GLOBAL_FORUM_WATCH = 30; - + /** * CCA Not set - * + * * @since 1.9.6 */ private final static String CONFIDENTIALITY_PUBLIC = "public"; - + /** * Standard CCA - * + * * @since 1.9.6 */ private final static String CONFIDENTIALITY_STANDARD = "standard_cca"; @@ -1720,13 +1720,13 @@ public class ContestServiceFacadeBean implements ContestServiceFacadeLocal, Cont * @since 1.9.5 */ private static ReviewAuctionType SPEC_REVIEW_TYPE; - + /** * The iterative review type. * */ private static ReviewAuctionType ITERATIVE_REVIEW_TYPE; - + /** * The iterative review type. * @@ -3381,9 +3381,9 @@ public SoftwareCompetition createSoftwareContest(TCSubject tcSubject, SoftwareCo // do not add approver for bug hunt and copilot posting requireApproval = false; } - + checkBillingProjectCCA(contest); - + //update the AssetDTO and update corresponding properties createUpdateAssetDTO(tcSubject, contest); @@ -3605,10 +3605,10 @@ else if (roleId == ResourceRole.RESOURCE_ROLE_OBSERVER_ID) { String cmcTaskId = contest.getProjectHeader().getProperty( ProjectPropertyType.CLOUDSPOKES_CMC_TASK_PROPERTY_KEY); String apiURL = ""; - + if(isStudio(contest)) { apiURL = "http://api.topcoder.com/v2/design/challenges/" + String.valueOf(contest.getProjectHeader().getId()); - } else { + } else { apiURL = "http://api.topcoder.com/v2/develop/challenges/" + String.valueOf(contest.getProjectHeader().getId()); } @@ -3831,7 +3831,7 @@ else if (isDevContest) contest.getProjectHeader().setProperty(ProjectPropertyType.CONFIDENTIALITY_TYPE_PROJECT_PROPERTY_KEY, "standard_cca"); contest.getProjectHeader().setProperty(ProjectPropertyType.TRACK_LATE_DELIVERABLES_PROJECT_PROPERTY_KEY, "false"); } - + if (contest.getProjectHeader().getProjectCategory().getId() == ProjectCategory.BUG_HUNT.getId()) { contest.getProjectHeader().setProperty(ProjectPropertyType.RELIABILITY_BONUS_ELIGIBLE_PROJECT_PROPERTY_KEY, "false"); @@ -4572,7 +4572,7 @@ public SoftwareCompetition updateSoftwareContest(TCSubject tcSubject, SoftwareCo *

    * Updates a SoftwareCompetition in the persistence. *

    - * + * * @param tcSubject TCSubject instance contains the login security info for the current user * @param contest the SoftwareCompetition to update as a contest * @param tcDirectProjectId the TC direct project id. @@ -5955,18 +5955,18 @@ public SoftwareCompetition getSoftwareContestByProjectId(TCSubject tcSubject, lo FullProjectData fullProjectData = this.projectServices.getFullProjectData(projectId); - Boolean effortHoursEnabled = false; + Boolean effortDaysEnabled = false; try { Client client = projectService.getClientByProject(fullProjectData.getProjectHeader().getTcDirectProjectId()); if (client != null) { - effortHoursEnabled = client.isEffortHoursEnabled() == null ? false : client.isEffortHoursEnabled(); + effortDaysEnabled = client.isEffortDaysEnabled() == null ? false : client.isEffortDaysEnabled(); } } catch (PersistenceFault e) { - effortHoursEnabled = false; + effortDaysEnabled = false; } - if(!effortHoursEnabled) { + if(!effortDaysEnabled) { fullProjectData.getProjectHeader().getProperties().remove(ProjectPropertyType.EFFORT_HOURS_ESTIMATE); } @@ -7401,15 +7401,15 @@ else if (autoDevCreating && isDevContest) { //it will link to design contest if it exists, it forwards to project link manager projectServices.linkDevelopmentToDesignContest(newVersionORProject.getProjectHeader().getId()); } - + SoftwareCompetition com = new SoftwareCompetition(); - + com.setProjectHeader(newVersionORProject.getProjectHeader()); com.setProjectPhases(newVersionORProject); com.setProjectResources(newVersionORProject.getResources()); com.setProjectData(newVersionORProject); com.setId(newVersionORProject.getProjectHeader().getId()); - + addReviewAuction(com); logger.debug("Exit createNewVersionForDesignDevContest"); @@ -7504,20 +7504,20 @@ public long reOpenSoftwareContest(TCSubject tcSubject, long projectId, long tcDi // persistContestEligility(reOpendedProject.getProjectHeader(), ce, false); // } persistContestEligility(reOpendedProject.getProjectHeader(), contestEligibilities, false); - - + + reOpenContestId = reOpendedProject.getProjectHeader().getId(); - + SoftwareCompetition com = new SoftwareCompetition(); - + com.setProjectHeader(reOpendedProject.getProjectHeader()); com.setProjectPhases(reOpendedProject); com.setProjectResources(reOpendedProject.getResources()); com.setProjectData(reOpendedProject); com.setId(reOpendedProject.getProjectHeader().getId()); - + addReviewAuction(com); - + return reOpenContestId; } catch (Exception e) { sessionContext.setRollbackOnly(); @@ -8392,7 +8392,7 @@ public void selectCopilot(TCSubject currentUser, long tcDirectProjectId, long co // Find the screener resource for current user; if there is none then create one com.topcoder.management.resource.Resource screener = addPrimaryScreener(currentUser, copilotPostingProjectId, currentUser.getUserId()); - + long screeningPhaseId = getScreening(softwareCompetition).getId(); // we will pass screening for all @@ -8646,7 +8646,7 @@ private boolean hasScreening(SoftwareCompetition SoftwareCompetition) return false; } - + private com.topcoder.project.phases.Phase getScreening(SoftwareCompetition SoftwareCompetition) { Set allPhases = SoftwareCompetition.getProjectPhases().getPhases(); @@ -8658,7 +8658,7 @@ private com.topcoder.project.phases.Phase getScreening(SoftwareCompetition Softw } return null; } - + private com.topcoder.project.phases.Phase getReview(SoftwareCompetition SoftwareCompetition) { Set allPhases = SoftwareCompetition.getProjectPhases().getPhases(); @@ -9087,7 +9087,7 @@ public void saveStudioSubmisionWithRankAndFeedback(TCSubject tcSubject, long pro } else { reviewData = getReview(projectId, reviewerResource.getId(), submissionId); } - + com.topcoder.project.phases.Phase targetPhase = null; for (com.topcoder.project.phases.Phase phase : phases) { if (phase.getPhaseType().getId() == phaseType.getId()) { @@ -9095,7 +9095,7 @@ public void saveStudioSubmisionWithRankAndFeedback(TCSubject tcSubject, long pro break; } } - + Scorecard scorecard = reviewData.getScorecard(); if (reviewData.getReview() == null) { // no review board yet, create a new review @@ -9246,7 +9246,7 @@ public void saveSoftwareCheckpointReviewWithRankAndFeedback(TCSubject tcSubject, * @throws ContestEligibilityPersistenceException if fail to get contest eligibility * @since 1.9.5 */ - private void addReviewAuction(SoftwareCompetition softwareCompetition) throws ReviewAuctionManagerException, ContestEligibilityPersistenceException { + private void addReviewAuction(SoftwareCompetition softwareCompetition) throws ReviewAuctionManagerException, ContestEligibilityPersistenceException { if (isStudio(softwareCompetition)) { return; } @@ -9255,7 +9255,7 @@ private void addReviewAuction(SoftwareCompetition softwareCompetition) throws Re softwareCompetition.getProjectHeader().getProjectCategory().getId())) { return; } - + boolean hasEligibility = contestEligibilityManager.haveEligibility( new Long[]{softwareCompetition.getProjectHeader().getId()}, false).size() > 0; long billingProjectId = getBillingProjectId(softwareCompetition); @@ -9291,20 +9291,20 @@ private void addReviewAuction(SoftwareCompetition softwareCompetition) throws Re reviewAuction.setAuctionType(SPEC_REVIEW_TYPE); reviewAuctionManager.createAuction(reviewAuction); } - + if (hasIterativeReview) { ReviewAuction reviewAuction = new ReviewAuction(); reviewAuction.setProjectId(softwareCompetition.getProjectHeader().getId()); reviewAuction.setAuctionType(ITERATIVE_REVIEW_TYPE); reviewAuctionManager.createAuction(reviewAuction); } - + if (hasReview) { ReviewAuction reviewAuction = new ReviewAuction(); reviewAuction.setProjectId(softwareCompetition.getProjectHeader().getId()); - - - + + + if (softwareCompetition.getProjectHeader().getProjectCategory().getId() == ProjectCategory.DEVELOPMENT.getId()) { reviewAuction.setAuctionType(DEV_REVIEW_TYPE); } else if (softwareCompetition.getProjectHeader().getProjectCategory().getId() == ProjectCategory.CODE.getId()) { @@ -9317,10 +9317,10 @@ private void addReviewAuction(SoftwareCompetition softwareCompetition) throws Re } /** * Check cca status of contest. If billing account must use cca while current property not, the change it - * + * * @param contest the contest * @throws PersistenceException - * + * * @since 1.9.6 */ private void checkBillingProjectCCA(SoftwareCompetition contest) throws PersistenceException { @@ -9338,24 +9338,24 @@ private void checkBillingProjectCCA(SoftwareCompetition contest) throws Persiste } /** * Check if the array of billing project required CCA. - * - * @param billingProjectId + * + * @param billingProjectId * @return boolean status of cca required * @throws PersistenceException if any other error occurs. - * + * * @since 1.9.6 */ public boolean requireBillingProjectCCA(long billingProjectId) throws PersistenceException { return projectManager.requireBillingProjectCCA(billingProjectId); } - + /** * Check if the array of billing project required CCA. - * + * * @param billingProjectId array of billing project id * @return array of boolean status of cca required * @throws PersistenceException if any other error occurs. - * + * * @since 1.2.5 */ public boolean[] requireBillingProjectsCCA(long[] billingProjectIds) throws PersistenceException { diff --git a/services/project_services/src/java/main/com/topcoder/project/service/impl/ProjectServicesImpl.java b/services/project_services/src/java/main/com/topcoder/project/service/impl/ProjectServicesImpl.java index 56a2b9eb9..db3b0e5fc 100644 --- a/services/project_services/src/java/main/com/topcoder/project/service/impl/ProjectServicesImpl.java +++ b/services/project_services/src/java/main/com/topcoder/project/service/impl/ProjectServicesImpl.java @@ -247,7 +247,7 @@ * Changes in v1.4.4 (TC Direct Release Assembly 7) * - add method updateContestSale for updating contest sale. *

    - * + * *

    * Version 1.4.4 (TC Direct Replatforming Release 1) Change notes: *

      @@ -258,7 +258,7 @@ *
    • Add {@link #getAllFileTypes()} method.
    • *
    *

    - * + * *

    * Version 1.4.5 (TC Direct Replatforming Release 2) Change notes: *

      @@ -315,7 +315,7 @@ * software checkpoint management. * *

      - * + * *

      * Version 1.4.10 (Release Assembly - TC Direct Issue Tracking Tab Update Assembly 2 v1.0) change notes: *

        @@ -327,7 +327,7 @@ * Version 1.4.11 (Module Assembly - TC Cockpit - Studio - Final Fixes Integration Part One Assembly) Change notes: *
          *
        1. Added {@link #getReviewsByPhase(long, long)} method.
        2. - *
        3. Updated {@link #updateProject(Project, String, com.topcoder.project.phases.Project, Resource[], Date, String)} + *
        4. Updated {@link #updateProject(Project, String, com.topcoder.project.phases.Project, Resource[], Date, String)} * and {@link #createProjectWithTemplate(Project, com.topcoder.project.phases.Project, Resource[], String)} methods * to properly maintain the Approval phase for Studio contests.
        5. *
        @@ -442,9 +442,9 @@ *

        * *

        - * Version 2.6 (Topcoder - Add effort hours field) + * Version 2.6 (Topcoder - Add effort days field) *

          - *
        • Add enable effort hours
        • + *
        • Add enable effort days
        • *
        *

        * @@ -1839,7 +1839,7 @@ public FullProjectData updateProject(Project projectHeader, String projectHeader * @since 1.4.7 */ public FullProjectData updateProject(Project projectHeader, String projectHeaderReason, - com.topcoder.project.phases.Project projectPhases, Resource[] projectResources, + com.topcoder.project.phases.Project projectPhases, Resource[] projectResources, Date regEndDate, Date multiRoundEndDate, Date endDate, String operator) { Util.log(logger, Level.INFO, "Enters ProjectServicesImpl#updateProject method."); @@ -2790,7 +2790,7 @@ public FullProjectData createProjectWithTemplate(Project projectHeader, com.topc if (regEndDate != null) { adjustPhaseForEndDate(PhaseType.REGISTRATION_PHASE, newProjectPhases, regEndDate); } - + if (multiRoundEndDate != null) { // multiround phase duration adjustPhaseForEndDate(PhaseType.CHECKPOINT_SUBMISSION_PHASE, newProjectPhases, multiRoundEndDate); diff --git a/services/specification_review_service/test_files/insert.sql b/services/specification_review_service/test_files/insert.sql index 43ddb9d4d..2ecb29c28 100644 --- a/services/specification_review_service/test_files/insert.sql +++ b/services/specification_review_service/test_files/insert.sql @@ -1,10 +1,10 @@ INSERT INTO id_sequences(name, next_block_start, block_size, exhausted) - VALUES('resource_id_seq', 1, 1, 0); + VALUES('resource_id_seq', 1, 1, 0); INSERT INTO id_sequences(name, next_block_start, block_size, exhausted) - VALUES('notification_type_id_seq', 1, 1, 0); + VALUES('notification_type_id_seq', 1, 1, 0); INSERT INTO id_sequences(name, next_block_start, block_size, exhausted) VALUES('resource_role_id_seq', 1, 1, 0); - + INSERT INTO id_sequences(name, next_block_start, block_size, exhausted) VALUES('project_id_seq', 1, 1, 0); INSERT INTO id_sequences(name, next_block_start, block_size, exhausted) @@ -261,7 +261,7 @@ INSERT INTO phase_criteria_type_lu(phase_criteria_type_id, name, description, cr INSERT INTO phase_criteria_type_lu(phase_criteria_type_id, name, description, create_user, create_date, modify_user, modify_date) VALUES(6, 'Reviewer Number', 'Reviewer Number', 'System', CURRENT, 'System', CURRENT); INSERT INTO phase_criteria_type_lu(phase_criteria_type_id, name, description, create_user, create_date, modify_user, modify_date) - VALUES(7, 'Post-Mortem Reviewer Number', 'Post-Mortem Reviewer Number', 'System', CURRENT, 'System', CURRENT); + VALUES(7, 'Post-Mortem Reviewer Number', 'Post-Mortem Reviewer Number', 'System', CURRENT, 'System', CURRENT); INSERT INTO resource_role_lu(resource_role_id,phase_type_id,name,description, create_user,create_date,modify_user,modify_date) VALUES (1, NULL, 'Submitter', 'Submitter', 'System', '2006-11-02 20:14:24.000', 'System', '2006-11-02 20:14:24.000'); @@ -502,7 +502,7 @@ insert into project_info_type_lu(project_info_type_id, name, description, create VALUES(44, 'Post-Mortem Required', 'Post-Mortem Required', 'System', CURRENT, 'System', CURRENT); insert into project_info_type_lu(project_info_type_id, name, description, create_user, create_date, modify_user, modify_date) - VALUES(88, 'Effort Hours Estimate', 'Effort Hours Estimate', 'System', CURRENT, 'System', CURRENT); + VALUES(88, 'Effort Days Estimate', 'Effort Days Estimate', 'System', CURRENT, 'System', CURRENT); INSERT INTO submission_type_lu(submission_type_id, name, description, create_user, create_date, modify_user, modify_date) VALUES(1, 'Contest Submission', 'The contest submission', 'System', CURRENT, 'System', CURRENT); @@ -526,7 +526,7 @@ INSERT INTO deliverable_lu (deliverable_id, phase_type_id, resource_role_id, nam VALUES (25, 13, 1, 'Specification Submission', 'Specification Submission', 0, 0, 'System', CURRENT, 'System', CURRENT ); INSERT INTO deliverable_lu (deliverable_id, phase_type_id, resource_role_id, name, description, per_submission, required, create_user, create_date, modify_user, modify_date) VALUES (26, 14, 15, 'Specification Review', 'Specification Review', 1, 1, 'System', CURRENT, 'System', CURRENT ); - + INSERT INTO link_type_lu(link_type_id, link_type_name,allow_overlap) VALUES(1,'Depends On', 0); INSERT INTO link_type_lu(link_type_id, link_type_name,allow_overlap) VALUES(2,'Is Related To', 1); diff --git a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java index 0e15af484..44550acf6 100644 --- a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java +++ b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/CommonAction.java @@ -43,7 +43,7 @@ * *

        Version 1.2 Changes (Module Assembly - Contest Fee Based on % of Member Cost User Part): * - Modified method getBillingProjectContestFees. Added support for fee percentage. - * - If the billing is configured by percentage of member cost, the contest fee will be calculated + * - If the billing is configured by percentage of member cost, the contest fee will be calculated * - as a percentage of the member cost. *

        * @@ -57,7 +57,7 @@ * - Updates method {@link #getBillingAccountsForProject()} to return all the billing accounts of the project without * checking the billing account permission of the users. *

        - * + * *

        * Version 1.5 (Release Assembly - TopCoder Cockpit - Launch Contest Update for Marathon Match) * - New method {@link #getActiveProblemSet()} to return active problems as JSON. @@ -94,9 +94,9 @@ *

        * *

        - * Version 1.10 (Topcoder - Add effort hours field) + * Version 1.10 (Topcoder - Add effort days field) *

          - *
        • Add enable effort hours
        • + *
        • Add enable effort days
        • *
        *

        * @@ -166,7 +166,7 @@ public String getDirectProjectCopilots() throws Exception { Map value = new HashMap(); for (ContestCopilotDTO copilot : copilots) { value.put(String.valueOf(copilot.getUserId()), copilot.getHandle()); - + // current user is one of the copilots if(currentUserId == copilot.getUserId()) { isCurrentUser = true; @@ -281,12 +281,12 @@ public String getDirectProjectContests() { return SUCCESS; } - + /** *

        * Gets the active problems. *

        - * + * * @return the active problems. * @since 1.5 */ @@ -305,7 +305,7 @@ public String getActiveProblemSet() throws Exception { setResult(result); return SUCCESS; } - + /** *

        @@ -348,7 +348,7 @@ public String getContestConfigs() throws Exception { */ public String getBillingProjectContestFees() throws Exception { Map result = new HashMap(); - + // set the percentage info ProjectContestFeePercentage percentage = getContestFeePercentageService().getByProjectId(billingProjectId); if (percentage != null && percentage.isActive()) { @@ -383,26 +383,26 @@ public String getBillingAccountsForProject() { List billingAccountsByProject = getProjectServiceFacade().getBillingAccountsByProject(getDirectProjectId()); List> result = new ArrayList>(); - + long[] billingAccountIds = new long[billingAccountsByProject.size()]; - + for (int i = 0; i < billingAccountIds.length; i++){ billingAccountIds[i] = billingAccountsByProject.get(i).getId(); } - + boolean[] requireCCAs = getContestServiceFacade().requireBillingProjectsCCA(billingAccountIds); - + for (int i = 0; i < billingAccountIds.length; i++){ Map billingAccount = new HashMap(); billingAccount.put("id", String.valueOf(billingAccountsByProject.get(i).getId())); billingAccount.put("name", billingAccountsByProject.get(i).getName()); billingAccount.put("cca", String.valueOf(requireCCAs[i])); - // Add enableEffortHours for each billing account + // Add enableEffortDays for each billing account Client client = billingAccountsByProject.get(i).getClient(); - if (client != null && client.isEffortHoursEnabled() != null) { - billingAccount.put("enableEffortHours", client.isEffortHoursEnabled()); + if (client != null && client.isEffortDaysEnabled() != null) { + billingAccount.put("enableEffortDays", client.isEffortDaysEnabled()); } else { - billingAccount.put("enableEffortHours", false); + billingAccount.put("enableEffortDays", false); } result.add(billingAccount); @@ -440,7 +440,7 @@ public String getCurrentUserRecentProjects() { return SUCCESS; } - + /** *

        * Gets the billing project information. diff --git a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java index 4046fbe19..44000429a 100644 --- a/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java +++ b/src/java/main/com/topcoder/direct/services/view/action/contest/launch/GetContestAction.java @@ -171,7 +171,7 @@ *

      *

      * - *

      + *

      * Version 2.2 BUGR-8788 (TC Cockpit - New Client Billing Config Type) change notes: *

        *
      • change on {@link #billingAccountsForProject} to suuport CCA related for billing account
      • @@ -256,20 +256,20 @@ *
      • Added regEndDate property
      • *
      *

      - * + * *

      * Version 3.3 - Topcoder - Remove JIRA Issues Related Functionality In Direct App v1.0 * - remove JIRA related functionality *

      - * + * *

      * Version 3.4 - Quick72Hrs!! Topcoder - Remove VM Management Feature In Direct App version 1.0 * - remove VM related functionality *

      * *

      - * Version 3.5 - Topcoder - Add effort hours field - * - add enable effort hours + * Version 3.5 - Topcoder - Add effort days field + * - add enable effort days *

      * * @author fabrizyo, FireIce, isv, morehappiness, GreatKevin, minhu, Veve, Ghost_141, GreatKevin, Veve, GreatKevin, TCSCODER @@ -557,9 +557,9 @@ protected void executeAction() throws Exception { // set billing accounts for the direct project List billingProjects = getProjectServiceFacade().getBillingAccountsByProject(softwareCompetition.getProjectHeader().getTcDirectProjectId()); - + long[] billingAccountIds = new long[billingProjects.size()]; - + for (int i = 0; i < billingAccountIds.length; i++){ billingAccountIds[i] = billingProjects.get(i).getId(); } @@ -569,12 +569,12 @@ protected void executeAction() throws Exception { billingAccount.put("id", String.valueOf(billingProjects.get(i).getId())); billingAccount.put("name", billingProjects.get(i).getName()); billingAccount.put("cca", String.valueOf(requireCCAs[i])); - // Add enableEffortHours for each billing account + // Add enableEffortDays for each billing account Client client = billingProjects.get(i).getClient(); - if (client != null && client.isEffortHoursEnabled() != null) { - billingAccount.put("enableEffortHours", client.isEffortHoursEnabled()); + if (client != null && client.isEffortDaysEnabled() != null) { + billingAccount.put("enableEffortDays", client.isEffortDaysEnabled()); } else { - billingAccount.put("enableEffortHours", false); + billingAccount.put("enableEffortDays", false); } billingAccountsForProject.add(billingAccount); } @@ -634,7 +634,7 @@ public String specReviewScheduled() { } return SUCCESS; } - + /** *

      * Gets the project id. diff --git a/src/web/WEB-INF/contest-details2.jsp b/src/web/WEB-INF/contest-details2.jsp index bc55e55f8..d0566f3d8 100644 --- a/src/web/WEB-INF/contest-details2.jsp +++ b/src/web/WEB-INF/contest-details2.jsp @@ -135,7 +135,7 @@ billingAccounts.push({"id": "", "name" : "", "cca" : "", - "enableEffortHours" : "" + "enableEffortDays" : "" }); @@ -172,7 +172,7 @@

      -
      +
      @@ -187,7 +187,7 @@
      -

      in Equated offshore hours = onsite hours * 6 + offshore hours

      +

      onsite efforts in person days * 6 + offshore efforts in person days

      diff --git a/src/web/WEB-INF/includes/contest/editTab.jsp b/src/web/WEB-INF/includes/contest/editTab.jsp index a1f087607..3dd6ee35d 100644 --- a/src/web/WEB-INF/includes/contest/editTab.jsp +++ b/src/web/WEB-INF/includes/contest/editTab.jsp @@ -163,8 +163,8 @@ - Effort Hours Estimate - : + Estimated Effort
      (in Person Days):
      + : @@ -342,18 +342,20 @@


      - Estimated Effort: help - + Estimated Effort
      (in Person Days): 
      help
      +


      Created By +
      +

      + cancel + save +

      +
      -

      - cancel - save -

      diff --git a/src/web/WEB-INF/includes/contest/editTabMarathon.jsp b/src/web/WEB-INF/includes/contest/editTabMarathon.jsp index ee7f667fe..37c8649f2 100644 --- a/src/web/WEB-INF/includes/contest/editTabMarathon.jsp +++ b/src/web/WEB-INF/includes/contest/editTabMarathon.jsp @@ -135,8 +135,8 @@ - Effort Hours Estimate - : + Estimated Effort
      (in Person Days):
      + : @@ -295,8 +295,8 @@

      - Estimated Effort: help - + Estimated Effort
      (in Person Days): 
      help
      +


      Created By diff --git a/src/web/WEB-INF/includes/contest/editTabSoftware.jsp b/src/web/WEB-INF/includes/contest/editTabSoftware.jsp index b74640bc5..520abfd25 100644 --- a/src/web/WEB-INF/includes/contest/editTabSoftware.jsp +++ b/src/web/WEB-INF/includes/contest/editTabSoftware.jsp @@ -88,8 +88,8 @@ - Version 3.3 (Topcoder - Support Points Prize Type For Challenges): - - Add "Points" section. - - - Version 3.4 (Topcoder - Add effort hours field): - - - Add enable effort hours + - Version 3.4 (Topcoder - Add effort days field): + - - Add enable effort days --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -185,8 +185,8 @@ - Effort Hours Estimate - : + Estimated Effort
      (in Person Days):
      + : @@ -369,8 +369,8 @@
      - Estimated Effort: help - + Estimated Effort
      (in Person Days): 
      help
      +


      diff --git a/src/web/WEB-INF/includes/launch/contestSelection.jsp b/src/web/WEB-INF/includes/launch/contestSelection.jsp index 34ba7d279..8d81a028f 100644 --- a/src/web/WEB-INF/includes/launch/contestSelection.jsp +++ b/src/web/WEB-INF/includes/launch/contestSelection.jsp @@ -54,8 +54,8 @@ - Version 2.7 (TOPCODER - SUPPORT TYPEAHEAD FOR TASK ASSIGNEES IN DIRECT APP): - - Move task assign member to use magicSuggest - - - Version 2.8 (Topcoder - Add effort hours field): - - - Add enable effort hours + - Version 2.8 (Topcoder - Add effort days field): + - - Add enable effort days --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -237,8 +237,8 @@
      - - + +
      diff --git a/src/web/WEB-INF/includes/launch/orderReview.jsp b/src/web/WEB-INF/includes/launch/orderReview.jsp index ec387ad0f..ce95d301c 100644 --- a/src/web/WEB-INF/includes/launch/orderReview.jsp +++ b/src/web/WEB-INF/includes/launch/orderReview.jsp @@ -15,7 +15,7 @@ - Version 1.3 - Topcoder - Support Points Prize Type For Challenges - - Add "Challenge Points" section. - - - Version 1.4 (Topcoder - Add effort hours field): + - Version 1.4 (Topcoder - Add effort days field): - - Add enable effort hours --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -59,8 +59,8 @@ Edit - Effort Hours Estimate : - Edit + Effort Days Estimate : + Edit diff --git a/src/web/WEB-INF/includes/launch/orderReviewAlgorithm.jsp b/src/web/WEB-INF/includes/launch/orderReviewAlgorithm.jsp index 1882df800..b4ceba03b 100644 --- a/src/web/WEB-INF/includes/launch/orderReviewAlgorithm.jsp +++ b/src/web/WEB-INF/includes/launch/orderReviewAlgorithm.jsp @@ -8,7 +8,7 @@ - Version 1.1 - Topcoder - Support Points Prize Type For Challenges - - Add "Challenge Points" section. - - - Version 1.2 (Topcoder - Add effort hours field): + - Version 1.2 (Topcoder - Add effort days field): - - Add enable effort hours --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -48,8 +48,8 @@ Edit - Effort Hours Estimate : - Edit + Effort Days Estimate : + Edit diff --git a/src/web/WEB-INF/includes/launch/orderReviewSoftware.jsp b/src/web/WEB-INF/includes/launch/orderReviewSoftware.jsp index 2109256e5..385845c51 100644 --- a/src/web/WEB-INF/includes/launch/orderReviewSoftware.jsp +++ b/src/web/WEB-INF/includes/launch/orderReviewSoftware.jsp @@ -20,7 +20,7 @@ - Version 1.5 - Topcoder - Support Points Prize Type For Challenges - - Add "Challenge Points" section. - - - Version 1.6 (Topcoder - Add effort hours field): + - Version 1.6 (Topcoder - Add effort days field): - - Add enable effort hours --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -60,8 +60,8 @@ Edit - Effort Hours Estimate : - Edit + Effort Days Estimate : + Edit diff --git a/src/web/WEB-INF/includes/launch/review.jsp b/src/web/WEB-INF/includes/launch/review.jsp index 966ea1bc8..3a55ef526 100644 --- a/src/web/WEB-INF/includes/launch/review.jsp +++ b/src/web/WEB-INF/includes/launch/review.jsp @@ -17,7 +17,7 @@ - Version 1.4 (Topcoder - Support Points Prize Type For Challenges): - - Add "Challenge Points" section. - - - Version 1.5 (Topcoder - Add effort hours field): + - Version 1.5 (Topcoder - Add effort days field): - - Add enable effort hours --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -68,8 +68,8 @@ Edit - Effort Hours Estimate : - + Effort Days Estimate : + Edit diff --git a/src/web/WEB-INF/includes/launch/reviewAlgorithm.jsp b/src/web/WEB-INF/includes/launch/reviewAlgorithm.jsp index fd1e89932..af1291fd2 100644 --- a/src/web/WEB-INF/includes/launch/reviewAlgorithm.jsp +++ b/src/web/WEB-INF/includes/launch/reviewAlgorithm.jsp @@ -11,7 +11,7 @@ - Version 1.2 (Topcoder - Support Points Prize Type For Challenges): - - Add "Challenge Points" section. - - - Version 1.3 (Topcoder - Add effort hours field): + - Version 1.3 (Topcoder - Add effort days field): - - Add enable effort hours --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -54,8 +54,8 @@ Edit - Effort Hours Estimate : - Edit + Effort Days Estimate : + Edit diff --git a/src/web/WEB-INF/includes/launch/reviewSoftware.jsp b/src/web/WEB-INF/includes/launch/reviewSoftware.jsp index 052cee3cc..ae5ddbebe 100644 --- a/src/web/WEB-INF/includes/launch/reviewSoftware.jsp +++ b/src/web/WEB-INF/includes/launch/reviewSoftware.jsp @@ -25,8 +25,8 @@ - Version 1.7 (Topcoder - Support Points Prize Type For Challenges): - - Add "Challenge Points" section. - - - Version 1.8 (Topcoder - Add effort hours field): - - - Add enable effort hours + - Version 1.8 (Topcoder - Add effort days field): + - - Add enable effort days --%> <%@ include file="/WEB-INF/includes/taglibs.jsp" %> @@ -72,8 +72,8 @@ Edit - Effort Hours Estimate : - Edit + Effort Days Estimate : + Edit diff --git a/src/web/WEB-INF/launch-contest.jsp b/src/web/WEB-INF/launch-contest.jsp index eeafbc1de..05e6551f2 100644 --- a/src/web/WEB-INF/launch-contest.jsp +++ b/src/web/WEB-INF/launch-contest.jsp @@ -152,7 +152,7 @@
      -
      +
      @@ -167,7 +167,7 @@
      -

      in Equated offshore hours = onsite hours * 6 + offshore hours

      +

      onsite efforts in person days * 6 + offshore efforts in person days

      diff --git a/src/web/css/direct/launchcontest.css b/src/web/css/direct/launchcontest.css index 658d60188..90ee4fd92 100644 --- a/src/web/css/direct/launchcontest.css +++ b/src/web/css/direct/launchcontest.css @@ -309,7 +309,7 @@ margin-left: 14px; font-family: "Source Sans Pro", Arial, Helvetica, sans-serif; font-size: 14px; - line-height: 28px; + line-height: 24px; } #launchContestOut.launchCopilotContest .addNewContest label { @@ -1790,7 +1790,7 @@ a.draft:hover span.right, a.preview:hover span.right { } .overviewData th { - width: 110px; + width: 130px; font-weight: 400; text-align: right; } @@ -3256,6 +3256,10 @@ div.ms-group-display .ms-group-div{ margin-top: 17px; } +.effortEstimateRow { + height: 50px; +} + .dropdown-menu { position: absolute; top: 100%; @@ -3287,3 +3291,7 @@ div.ms-group-display .ms-group-div{ width: 401px; height: 25px; } + +span.name.fixWidthName { + line-height: 24px; +} \ No newline at end of file diff --git a/src/web/scripts/launch/contestDetail.js b/src/web/scripts/launch/contestDetail.js index 3370ef154..fce3c42ff 100644 --- a/src/web/scripts/launch/contestDetail.js +++ b/src/web/scripts/launch/contestDetail.js @@ -19,8 +19,8 @@ * Version 1.1 (Module Assembly - TC Cockpit Contest Milestone Association 1) * - Add support for milestone association with contest in contest detail page. * - * Version 1.2 (Topcoder - Add effort hours field) - * - Add enable effort hours. + * Version 1.2 (Topcoder - Add effort days field) + * - Add enable effort days. * * @author GreatKevin * @version 1.2 @@ -337,8 +337,8 @@ function populateTypeSection() { $('#challegneCreatorLabel').html(mainWidget.competition.contestData.challengeCreator); $('#rChallengeCreator').html(mainWidget.competition.contestData.challengeCreator); - $('#effortHoursEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Hours Estimate']); - $('#rEffortHoursEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Hours Estimate']); + $('#effortDaysEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Days Estimate']); + $('#rEffortDaysEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Days Estimate']); if(isBillingEditable()) { $('#billingAccountDivEdit').show(); diff --git a/src/web/scripts/launch/contestDetailSoftware.js b/src/web/scripts/launch/contestDetailSoftware.js index 00f0e4afe..172b57fbb 100644 --- a/src/web/scripts/launch/contestDetailSoftware.js +++ b/src/web/scripts/launch/contestDetailSoftware.js @@ -143,8 +143,8 @@ * Version 4.5 (Topcoder - Support Points Prize Type For Challenges) * - Add support for points prize type * - * Version 4.6 (Topcoder - Add effort hours field) - * - Add enable effort hours + * Version 4.6 (Topcoder - Add effort days field) + * - Add enable effort days * @author isv, minhu, pvmagacho, GreatKevin, Veve, GreatKevin, TCSCODER * @version 4.6 */ @@ -188,8 +188,8 @@ $(document).ready(function(){ $.each(billingAccounts, function(key, value) { var _cca = value["cca"] == "true" ? true : false; - var _enableEffortHours = value["enableEffortHours"] == "true" ? true : false; - $("#billingProjects").append($('').val(value["id"]).html(value["name"]).data("cca", _cca).data("enableEffortHours", _enableEffortHours)); + var _enableEffortDays = value["enableEffortDays"] == "true" ? true : false; + $("#billingProjects").append($('').val(value["id"]).html(value["name"]).data("cca", _cca).data("enableEffortDays", _enableEffortDays)); }); /* Optgroup 2 columns fix */ if($('.selectDesing optgroup, .selectDesign .newListOptionTitle').length > 0){ @@ -568,7 +568,7 @@ $(document).ready(function(){ $("#chkboxCCA").removeAttr('disabled'); } - if($(this).find(":selected").data("enableEffortHours")) { + if($(this).find(":selected").data("enableEffortDays")) { $('.effortEstimateRow').show(); } else { $('.effortEstimateRow').hide(); @@ -609,9 +609,9 @@ $(document).ready(function(){ } }); $('.effortEstimateRow .helpme').hover(function() { - showPopup(this, 'effortHourToolTip'); + showPopup(this, 'effortDaysToolTip'); }, function() { - $('#effortHourToolTip').hide(); + $('#effortDaysToolTip').hide(); }); }); @@ -890,7 +890,7 @@ function initContest(contestJson) { mainWidget.softwareCompetition.regEndDate = parseDate(contestJson.regEndDate); $('#contestTypeNameText').text(getProjectCategoryById(mainWidget.softwareCompetition.projectHeader.projectCategory.id).name); - mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = contestJson.properties['Effort Hours Estimate']; + mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = contestJson.properties['Effort Days Estimate']; // copilots var copilots = contestJson.copilots; // get copilots data from result @@ -1437,13 +1437,13 @@ function populateTypeSection() { $(".matchRoundId").show(); } - var effortHoursEstimate = parseFloat(p['Effort Hours Estimate']); - if (!isNaN(effortHoursEstimate) && effortHoursEstimate > 0 ) { - $('#rEffortHoursEstimate').text(parseFloat(effortHoursEstimate)); - $('input[name=effortHoursEstimate]').val(effortHoursEstimate); + var effortDaysEstimate = parseFloat(p['Effort Days Estimate']); + if (!isNaN(effortDaysEstimate) && effortDaysEstimate > 0 ) { + $('#rEffortDaysEstimate').text(parseFloat(effortDaysEstimate)); + $('input[name=effortDaysEstimate]').val(effortDaysEstimate); $('.effortEstimateRow').show(); } else { - $('#rEffortHoursEstimate').text(''); + $('#rEffortDaysEstimate').text(''); } if (mainWidget.softwareCompetition.projectHeader.properties.hasOwnProperty(MM_TYPE)) { @@ -1585,7 +1585,7 @@ function validateFieldsTypeSection() { } // validate effort hours estimate - validateEffortHoursEstimate(errors); + validateEffortDaysEstimate(errors); // do NOT need milestone for First2Finish and CODE contest if (categoryId != SOFTWARE_CATEGORY_ID_F2F @@ -1673,12 +1673,12 @@ function showTypeSectionEdit() { $.each(billingAccounts,function(k, v) { var _cca = v["cca"] == "true" ? true : false; - var _enableEffortHours = v["enableEffortHours"] == "true" ? true : false; + var _enableEffortDays = v["enableEffortDays"] == "true" ? true : false; if (v["id"] == mainWidget.softwareCompetition.projectHeader.getBillingProject()) { if (_cca) { $("#chkboxCCA").attr('disabled','true'); } - if(_enableEffortHours) { + if(_enableEffortDays) { $(".effortEstimateRow").show(); } } @@ -2853,7 +2853,7 @@ function showPrizeSectionEdit() { $("#chkboxCCA").removeAttr('disabled'); } - if($(this).find(":selected").data("enableEffortHours")) { + if($(this).find(":selected").data("enableEffortDays")) { $('.effortEstimateRow').show(); } else { $('.effortEstimateRow').hide(); @@ -3633,8 +3633,8 @@ function handleProjectDropDownChange() { $.each(billingAccounts, function(key, value) { var _cca = value["cca"] == "true" ? true : false; - var _enableEffortHours = value["enableEffortHours"] == "true" ? true : false; - $("#billingProjects").append($('').val(value["id"]).text(value["name"]).data("cca", _cca).data("enableEffortHours", _enableEffortHours)); + var _enableEffortDays = value["enableEffortDays"] == "true" ? true : false; + $("#billingProjects").append($('').val(value["id"]).text(value["name"]).data("cca", _cca).data("enableEffortDays", _enableEffortDays)); }); $("#chkboxCCA").removeAttr('checked'); $("#chkboxCCA").removeAttr('disabled'); @@ -3658,7 +3658,7 @@ function handleProjectDropDownChange() { $("#chkboxCCA").removeAttr('disabled'); } - if($(this).find(":selected").data("enableEffortHours")) { + if($(this).find(":selected").data("enableEffortDays")) { $('.effortEstimateRow').show(); } else { $('.effortEstimateRow').hide(); diff --git a/src/web/scripts/launch/main.js b/src/web/scripts/launch/main.js index a1a1d38cf..d508a4cb1 100644 --- a/src/web/scripts/launch/main.js +++ b/src/web/scripts/launch/main.js @@ -133,8 +133,8 @@ * Version 4.6 (Topcoder - Support Points Prize Type For Challenges) * - Add support for points prize type * - * Version 4.7 (Topcoder - Add effort hours field) - * - Add enable effort hours + * Version 4.7 (Topcoder - Add effort days field) + * - Add enable effort days * @author isv, GreatKevin, bugbuka, GreatKevin, Veve, TCSCODER, TCSASSEMBER * @version 4.7 */ @@ -1192,10 +1192,10 @@ function saveAsDraftRequest() { } if($(".effortEstimateRow").is(":visible")) { - var effortHoursEstimate = $("input[name=effortHoursEstimate]").val(); - mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = effortHoursEstimate; + var effortDaysEstimate = $("input[name=effortDaysEstimate]").val(); + mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = effortDaysEstimate; } else { - mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = ''; + mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = ''; } /* @@ -3464,18 +3464,18 @@ function validateFileTypes(errors) { } /** - * Validates effort hours estimate. + * Validates effort days estimate. * @param errors array of errors */ -function validateEffortHoursEstimate(errors) { - if($("input[name=effortHoursEstimate]").is(":visible") - && $("input[name=effortHoursEstimate]").length > 0 - && $.trim($("input[name=effortHoursEstimate]").val()).length > 0) { - var effortHoursEstimate = $("input[name=effortHoursEstimate]").val(); - if(!checkNumber(effortHoursEstimate)) { - errors.push("The Effort Hours Estimate should be a number"); - } else if(effortHoursEstimate == 0) { - errors.push("The Effort Hours Estimate should be positive"); +function validateEffortDaysEstimate(errors) { + if($("input[name=effortDaysEstimate]").is(":visible") + && $("input[name=effortDaysEstimate]").length > 0 + && $.trim($("input[name=effortDaysEstimate]").val()).length > 0) { + var effortDaysEstimate = $("input[name=effortDaysEstimate]").val(); + if(!checkNumber(effortDaysEstimate)) { + errors.push("The Effort Days Estimate should be a number"); + } else if(effortDaysEstimate == 0) { + errors.push("The Effort Days Estimate should be positive"); } } } diff --git a/src/web/scripts/launch/pages/orderReview.js b/src/web/scripts/launch/pages/orderReview.js index 7ff32a23c..5b64846b5 100644 --- a/src/web/scripts/launch/pages/orderReview.js +++ b/src/web/scripts/launch/pages/orderReview.js @@ -51,8 +51,8 @@ * Version 2.4 (Topcoder - Support Points Prize Type For Challenges) * - Add support for points prize type * - * Version 2.5 (Topcoder - Add effort hours field) - * - Add enable effort hours + * Version 2.5 (Topcoder - Add effort days field) + * - Add enable effort days * * @author pvmagacho, GreatKevin, bugbuka, GreatKevin, Veve, GreatKevin * @version 2.5 @@ -71,7 +71,7 @@ function updateOrderReviewAlgorithm() { $('#alorBillingAccount').html((billingProjectId == -1)?"(not selected)":$("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#alorEffortHoursEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate']); + $('#alorEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); $('#alorStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); @@ -144,7 +144,7 @@ function updateOrderReviewSoftware() { $('#sworContestName').html(mainWidget.softwareCompetition.assetDTO.name); $('#sworProjectName').html($("#projects option[value="+ mainWidget.softwareCompetition.projectHeader.tcDirectProjectId +"]").text()); $('#sworBillingAccount').html($("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#sworEffortHoursEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate']); + $('#sworEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); $('#sworStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); //points @@ -296,7 +296,7 @@ function updateOrderReviewStudio() { $('#orBillingAccount').html((billingProjectId == -1)?"(not selected)":$("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#orEffortHoursEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate']); + $('#orEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); $('#orStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); diff --git a/src/web/scripts/launch/pages/review.js b/src/web/scripts/launch/pages/review.js index 3651dfb07..68c9a6d6e 100644 --- a/src/web/scripts/launch/pages/review.js +++ b/src/web/scripts/launch/pages/review.js @@ -43,7 +43,7 @@ function updateReviewAlgorithm() { var billingProjectId = mainWidget.softwareCompetition.projectHeader.getBillingProject(); $('#ralBillingAccount').html((billingProjectId == -1)?" ":$("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#ralEffortHoursEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate']); + $('#ralEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); $('#ralStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); // to do @@ -90,7 +90,7 @@ function updateReviewSoftware() { var billingProjectId = mainWidget.softwareCompetition.projectHeader.getBillingProject(); $('#rswBillingAccount').html((billingProjectId == -1)?" ":$("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#rswEffortHoursEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate']); + $('#rswEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); $('#rswStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); @@ -249,7 +249,7 @@ function updateReviewStudio() { $("#reviewPage .maxSubmissions").show(); } - $('#rEffortHoursEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate']); + $('#rEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); } /** diff --git a/src/web/scripts/launch/pages/selection.js b/src/web/scripts/launch/pages/selection.js index aa749ccdc..36e2b4a3e 100644 --- a/src/web/scripts/launch/pages/selection.js +++ b/src/web/scripts/launch/pages/selection.js @@ -58,7 +58,7 @@ * Version 2.5 (Topcoder - Support Points Prize Type For Challenges) * - Add support for points prize type * - * Version 2.6 (Topcoder - Add Effort Hours Field) + * Version 2.6 (Topcoder - Add Effort Days Field) * - Add support for effort hours estimate * * @version 2.6 @@ -120,7 +120,7 @@ function initCompetitionSelectionCommonData() { var tcProjectId = parseInt($('select#projects').val()); var billingProjectId = parseInt($('select#billingProjects').val()); var isMultiRound = hasMultiRound(categoryId) && ('multi' == $('#roundTypes').val()); - var effortHoursEstimate = $('input#effortHoursEstimate').val(); + var effortDaysEstimate = $('input#effortDaysEstimate').val(); // apply category id data var projectCategory = getProjectCategoryById(categoryId); @@ -143,7 +143,7 @@ function initCompetitionSelectionCommonData() { mainWidget.softwareCompetition.projectHeader.setProjectName(contestName); mainWidget.softwareCompetition.multiRound = isMultiRound; - mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = effortHoursEstimate; + mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = effortDaysEstimate; } function validateFieldsContestSelectionAlgorithm() { @@ -171,7 +171,7 @@ function validateFieldsContestSelectionAlgorithm() { errors.push('Marathon match type is required'); } - validateEffortHoursEstimate(errors); + validateEffortDaysEstimate(errors); // validate schedule if(startDate >= regEndDate) { @@ -264,7 +264,7 @@ function validateFieldsContestSelectionSoftware() { } } - validateEffortHoursEstimate(errors); + validateEffortDaysEstimate(errors); if (regEndDate.getTime() <= startDate.getTime()) { errors.push('Registration end date/time should be larger than Start date/time.'); @@ -413,7 +413,7 @@ function validateFieldsContestSelectionStudio() { validateDirectProjectMilestone(projectMilestoneId, errors); } - validateEffortHoursEstimate(errors); + validateEffortDaysEstimate(errors); if(isMultiRound) { if (checkpointDateHours == 0) { diff --git a/src/web/scripts/launchcontest.js b/src/web/scripts/launchcontest.js index b4b9698f0..388b0e8cd 100644 --- a/src/web/scripts/launchcontest.js +++ b/src/web/scripts/launchcontest.js @@ -82,7 +82,7 @@ * Version 2.12 (Topcoder - Support Points Prize Type For Challenges) * - Fix the bug the round info not properly shown/hidden when changing contest type * - * Version 2.13 (Topcoder - Add effort hours field) + * Version 2.13 (Topcoder - Add effort days field) * - Add support for enable effort hours * @author GreatKevin, csy2012, bugbuka, TCSCODER * @version 2.13 @@ -385,9 +385,9 @@ $(document).ready(function() { }); $('.ms-row.effortEstimateRow .helpme').hover(function() { - showPopup(this, 'effortHourToolTip'); + showPopup(this, 'effortDaysToolTip'); }, function() { - $('#effortHourToolTip').hide(); + $('#effortDaysToolTip').hide(); }); $('#assembly_bug_hunt .helpme').hover(function () { @@ -659,7 +659,7 @@ function handleProjectDropDownChange() { $.each(billingAccounts, function(key, value) { - $("#billingProjects").append($('').val(value["id"]).html(value["name"]).data("cca", (value["cca"] == "true" ? true : false)).data("enableEffortHours", value["enableEffortHours"])); + $("#billingProjects").append($('').val(value["id"]).html(value["name"]).data("cca", (value["cca"] == "true" ? true : false)).data("enableEffortDays", value["enableEffortDays"])); if(value["id"] == $("input[name=CMCBillingID]").val()) { CMCBillingExisting = true; @@ -670,7 +670,7 @@ function handleProjectDropDownChange() { $("#billingProjects").val(0); if(hasCMCBilling && !CMCBillingExisting) { - $("#billingProjects").append($('').val($("input[name=CMCBillingID]").val()).html($("input[name=CMCBillingName]").val()).data("cca", false).data("enableEffortHours", value["enableEffortHours"])); + $("#billingProjects").append($('').val($("input[name=CMCBillingID]").val()).html($("input[name=CMCBillingName]").val()).data("cca", false).data("enableEffortDays", value["enableEffortDays"])); } $("#billingProjects").resetSS(); @@ -683,7 +683,7 @@ function handleProjectDropDownChange() { $("#lccCheckBox").removeAttr('disabled'); } - if($(this).find(":selected").data("enableEffortHours")) { + if($(this).find(":selected").data("enableEffortDays")) { $('.effortEstimateRow').show(); } else { $('.effortEstimateRow').hide(); From 7c3869a063c871b13e5e86565f29680df3523561 Mon Sep 17 00:00:00 2001 From: Deddy Syefria Date: Tue, 3 Jul 2018 12:27:45 +0700 Subject: [PATCH 6/7] Add authorization header on member search ajax request (#440) --- src/web/WEB-INF/includes/jq_1_11_1.jsp | 1 + src/web/scripts/editCockpitProject.js | 3 +++ src/web/scripts/launch/main.js | 3 +++ 3 files changed, 7 insertions(+) diff --git a/src/web/WEB-INF/includes/jq_1_11_1.jsp b/src/web/WEB-INF/includes/jq_1_11_1.jsp index bfdcc5480..e41c01598 100644 --- a/src/web/WEB-INF/includes/jq_1_11_1.jsp +++ b/src/web/WEB-INF/includes/jq_1_11_1.jsp @@ -13,6 +13,7 @@ diff --git a/src/web/scripts/launch/contestDetail.js b/src/web/scripts/launch/contestDetail.js index fce3c42ff..5d9233e15 100644 --- a/src/web/scripts/launch/contestDetail.js +++ b/src/web/scripts/launch/contestDetail.js @@ -337,8 +337,8 @@ function populateTypeSection() { $('#challegneCreatorLabel').html(mainWidget.competition.contestData.challengeCreator); $('#rChallengeCreator').html(mainWidget.competition.contestData.challengeCreator); - $('#effortDaysEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Days Estimate']); - $('#rEffortDaysEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Days Estimate']); + $('#effortDaysEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Hours Estimate']); + $('#rEffortDaysEstimate').html(mainWidget.competition.contestData.projectHeader.properties['Effort Hours Estimate']); if(isBillingEditable()) { $('#billingAccountDivEdit').show(); diff --git a/src/web/scripts/launch/contestDetailSoftware.js b/src/web/scripts/launch/contestDetailSoftware.js index 172b57fbb..cd98eb744 100644 --- a/src/web/scripts/launch/contestDetailSoftware.js +++ b/src/web/scripts/launch/contestDetailSoftware.js @@ -890,7 +890,7 @@ function initContest(contestJson) { mainWidget.softwareCompetition.regEndDate = parseDate(contestJson.regEndDate); $('#contestTypeNameText').text(getProjectCategoryById(mainWidget.softwareCompetition.projectHeader.projectCategory.id).name); - mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = contestJson.properties['Effort Days Estimate']; + mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = contestJson.properties['Effort Hours Estimate']; // copilots var copilots = contestJson.copilots; // get copilots data from result @@ -1437,7 +1437,8 @@ function populateTypeSection() { $(".matchRoundId").show(); } - var effortDaysEstimate = parseFloat(p['Effort Days Estimate']); + // change to days + var effortDaysEstimate = parseFloat(p['Effort Hours Estimate']) / 24; if (!isNaN(effortDaysEstimate) && effortDaysEstimate > 0 ) { $('#rEffortDaysEstimate').text(parseFloat(effortDaysEstimate)); $('input[name=effortDaysEstimate]').val(effortDaysEstimate); @@ -3633,7 +3634,7 @@ function handleProjectDropDownChange() { $.each(billingAccounts, function(key, value) { var _cca = value["cca"] == "true" ? true : false; - var _enableEffortDays = value["enableEffortDays"] == "true" ? true : false; + var _enableEffortDays = value["enableEffortHours"] == "true" ? true : false; $("#billingProjects").append($('').val(value["id"]).text(value["name"]).data("cca", _cca).data("enableEffortDays", _enableEffortDays)); }); $("#chkboxCCA").removeAttr('checked'); diff --git a/src/web/scripts/launch/main.js b/src/web/scripts/launch/main.js index 20f56200f..41bcb2fb6 100644 --- a/src/web/scripts/launch/main.js +++ b/src/web/scripts/launch/main.js @@ -1195,10 +1195,11 @@ function saveAsDraftRequest() { } if($(".effortEstimateRow").is(":visible")) { - var effortDaysEstimate = $("input[name=effortDaysEstimate]").val(); - mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = effortDaysEstimate; + var effortDaysEstimate = $("input[name=effortDaysEstimate]").val().trim(); + if (effortDaysEstimate.length > 0) effortDaysEstimate *= 24; + mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = effortDaysEstimate; } else { - mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = ''; + mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = ''; } /* diff --git a/src/web/scripts/launch/pages/orderReview.js b/src/web/scripts/launch/pages/orderReview.js index 5b64846b5..5aacdfc79 100644 --- a/src/web/scripts/launch/pages/orderReview.js +++ b/src/web/scripts/launch/pages/orderReview.js @@ -70,9 +70,11 @@ function updateOrderReviewAlgorithm() { $('#alorProject').html($("#projects option[value="+ mainWidget.softwareCompetition.projectHeader.tcDirectProjectId +"]").text()); $('#alorBillingAccount').html((billingProjectId == -1)?"(not selected)":$("#billingProjects option[value="+ billingProjectId +"]").text()); - - $('#alorEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); - + if (mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'].toString().length > 0) { + $('#alorEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] / 24 ); + } else { + $('#alorEffortDaysEstimate').html(""); + } $('#alorStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); //points @@ -144,7 +146,11 @@ function updateOrderReviewSoftware() { $('#sworContestName').html(mainWidget.softwareCompetition.assetDTO.name); $('#sworProjectName').html($("#projects option[value="+ mainWidget.softwareCompetition.projectHeader.tcDirectProjectId +"]").text()); $('#sworBillingAccount').html($("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#sworEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); + if (mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'].toString().length > 0) { + $('#sworEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] / 24); + } else { + $('#sworEffortDaysEstimate').html(""); + } $('#sworStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); //points @@ -296,8 +302,11 @@ function updateOrderReviewStudio() { $('#orBillingAccount').html((billingProjectId == -1)?"(not selected)":$("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#orEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); - + if (mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'].toString().length > 0) { + $('#orEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] / 24 ); + } else { + $('#orEffortDaysEstimate').html(""); + } $('#orStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); //points diff --git a/src/web/scripts/launch/pages/review.js b/src/web/scripts/launch/pages/review.js index 68c9a6d6e..9591990e6 100644 --- a/src/web/scripts/launch/pages/review.js +++ b/src/web/scripts/launch/pages/review.js @@ -43,7 +43,11 @@ function updateReviewAlgorithm() { var billingProjectId = mainWidget.softwareCompetition.projectHeader.getBillingProject(); $('#ralBillingAccount').html((billingProjectId == -1)?" ":$("#billingProjects option[value="+ billingProjectId +"]").text()); - $('#ralEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); + if (mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'].toString().length > 0) { + $('#ralEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] / 24); + } else { + $('#ralEffortDaysEstimate').html(""); + } $('#ralStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); // to do @@ -89,9 +93,11 @@ function updateReviewSoftware() { var billingProjectId = mainWidget.softwareCompetition.projectHeader.getBillingProject(); $('#rswBillingAccount').html((billingProjectId == -1)?" ":$("#billingProjects option[value="+ billingProjectId +"]").text()); - - $('#rswEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); - + if (mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'].toString().length > 0) { + $('#rswEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] / 24); + } else { + $('#rswEffortDaysEstimate').html(""); + } $('#rswStartDate').html(formatDateForReview(mainWidget.softwareCompetition.assetDTO.directjsProductionDate)); $('#rswDetailedRequirements').html(mainWidget.softwareCompetition.projectHeader.projectSpec.detailedRequirements); @@ -248,8 +254,11 @@ function updateReviewStudio() { } else { $("#reviewPage .maxSubmissions").show(); } - - $('#rEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate']); + if (mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'].toString().length > 0) { + $('#rEffortDaysEstimate').html(mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] / 24); + } else { + $('#rEffortDaysEstimate').html(""); + } } /** diff --git a/src/web/scripts/launch/pages/selection.js b/src/web/scripts/launch/pages/selection.js index 36e2b4a3e..e7881b096 100644 --- a/src/web/scripts/launch/pages/selection.js +++ b/src/web/scripts/launch/pages/selection.js @@ -120,7 +120,7 @@ function initCompetitionSelectionCommonData() { var tcProjectId = parseInt($('select#projects').val()); var billingProjectId = parseInt($('select#billingProjects').val()); var isMultiRound = hasMultiRound(categoryId) && ('multi' == $('#roundTypes').val()); - var effortDaysEstimate = $('input#effortDaysEstimate').val(); + var effortDaysEstimate = $('input#effortDaysEstimate').val().trim(); // apply category id data var projectCategory = getProjectCategoryById(categoryId); @@ -143,7 +143,9 @@ function initCompetitionSelectionCommonData() { mainWidget.softwareCompetition.projectHeader.setProjectName(contestName); mainWidget.softwareCompetition.multiRound = isMultiRound; - mainWidget.softwareCompetition.projectHeader.properties['Effort Days Estimate'] = effortDaysEstimate; + // change to hours + if (effortDaysEstimate.length > 0) effortDaysEstimate *= 24; + mainWidget.softwareCompetition.projectHeader.properties['Effort Hours Estimate'] = effortDaysEstimate; } function validateFieldsContestSelectionAlgorithm() { diff --git a/src/web/scripts/launchcontest.js b/src/web/scripts/launchcontest.js index 388b0e8cd..e63914c27 100644 --- a/src/web/scripts/launchcontest.js +++ b/src/web/scripts/launchcontest.js @@ -658,8 +658,8 @@ function handleProjectDropDownChange() { $.each(billingAccounts, function(key, value) { - - $("#billingProjects").append($('').val(value["id"]).html(value["name"]).data("cca", (value["cca"] == "true" ? true : false)).data("enableEffortDays", value["enableEffortDays"])); + var _enableEffortDays = value["enableEffortHours"] == "true" ? true : false; + $("#billingProjects").append($('').val(value["id"]).html(value["name"]).data("cca", (value["cca"] == "true" ? true : false)).data("enableEffortDays", _enableEffortDays)); if(value["id"] == $("input[name=CMCBillingID]").val()) { CMCBillingExisting = true;