Skip to content

Commit ca03722

Browse files
author
Vikas Agarwal
committed
Merge branch 'dev' into feature/permalink_for_feeds_messages
* dev: moving best match to the top of the sort list Github issue#405, White spaces are recognized as valid input for NOTES -- Trimmed form field value, before checking if it is empty or not, if it is a string. fixes #876 Github issue#873, Manager does not get manager access immediately after joining the project -- Updated projectNonDirty state as well on every action that can update project Github issue#9, Add favicon.ico -- Used highest resolution favicon image from the archive provided initially in the github issue. favicon-webpack-plugin would take care of generating the icons for other devices and browsers. Update to Connect Terms per Joey's request Github issue#691, Refresh Project Estimate component on change of number of screens -- Fired PROJECT_DIRTY action for every change event fired by the form. Earlier it was firing the PROJECT_DIRTY action only if the form has actually changed its model from the original value. fixes #840
2 parents 999d128 + 5efbe9e commit ca03722

File tree

12 files changed

+68
-19
lines changed

12 files changed

+68
-19
lines changed

docs/dependency-notes.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
This document outlines the dependency concerns faced during the development of the application.
3+
4+
1. We have overridden the version to 1.1.2 of to-ico library which is used indirectly by "favicon-webpack-plugin" which in turn is used for generating the favicons for different devices and browser combinations. This was required because with versions above 1.1.2 to-ico library is using some features from node v5.10+.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
"deep-freeze-node": "^1.1.2",
1919
"eslint": "^2.2.0",
2020
"eslint-plugin-react": "^4.1.0",
21+
"favicons-webpack-plugin": "0.0.7",
22+
"to-ico":"1.1.2",
2123
"ignore-styles": "^1.2.0",
2224
"mocha": "^2.4.5",
2325
"mocha-jsdom": "^1.1.0",

src/components/ConnectTerms/ConnectTerms.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const ConnectTerms = () => (
88
<h1>Terms</h1>
99
<p>This User Agreement (the "<strong>Agreement</strong>") is a contract between you (referred to herein as "<strong>User</strong>") and Topcoder Inc. ("Topcoder") and applies to User's use and viewing of <a href="http://connect.topcoder.com">connect.topcoder.com</a> and related sub-domains ("<strong>Topcoder Connect</strong>") and all services available through Topcoder Connect (the "<strong>Services</strong>"). By visiting Topcoder Connect, User has accepted this Agreement and has agreed to be bound by the terms of this Agreement. Any Custom Software ordered (as defined below) or Services used through Topcoder Connect are also governed by these Terms. Topcoder may amend this Agreement at any time by posting a revised version on Topcoder Connect. The revised version will be effective at the time Topcoder posts it.</p>
1010
<h2>1. Services and Specifications.</h2>
11-
<p>The Services provide for the creation of certain types of mock-ups, prototypes, and application development of computer software applications (the "<b>Deliverables</b>") through Topcoder's crowdsourcing platform (as defined below) through a Topcoder representative or co-pilot (referred to herein as a "<b>User Success Manager</b>"), as further described on Topcoder Connect. To utilize the Services, User has provided specifications with respect to the Deliverables in reasonable detail as prompted in several fields on webpages associated with Topcoder Connect where the User was requested to enter information regarding the intended Deliverable (such information, the "<b>Preliminary Specifications</b>"). After payment of Project Fees (as defined below) associated with the Deliverable, a User Success Manager shall contact User to gather additional information regarding the Deliverables, as may be necessary in Topcoder's sole discretion. Topcoder and User shall mutually agree on a final set of specifications, which shall be referred to herein as the "<b>Specifications</b>". To the extent the parties are not able to reach agreement on the Specifications, including, but not limited to situations where the information provided by User is insufficient to create Specifications or the Preliminary Specifications are outside the scope of the services described on Topcoder Connect, Topcoder shall refund to User any Project Fees paid by User and Topcoder shall have no further liability or obligations under this Agreement.</p>
11+
<p>The Services provide for the creation of certain types of mock-ups, prototypes, and application development of computer software applications (the "<b>Deliverables</b>") through Topcoder's crowdsourcing platform (as defined below) through a Topcoder representative or co-pilot (referred to herein as a "<b>User Success Manager</b>"), as further described on Topcoder Connect. To utilize the Services, User has provided specifications with respect to the Deliverables in reasonable detail as prompted in several fields on webpages associated with Topcoder Connect where the User was requested to enter information regarding the intended Deliverable (such information, the "<b>Preliminary Specifications</b>"). After payment of Project Fees (as defined below) associated with the Deliverable, a User Success Manager shall contact User to gather additional information regarding the Deliverables, as may be necessary in Topcoder's sole discretion. Topcoder and User shall mutually agree on a final set of specifications, which shall be referred to herein as the "<b>Specifications</b>". As part of this process, Topcoder may provide services to User on an hourly basis. To the extent the parties are not able to reach agreement on the Specifications, including, but not limited to situations where the information provided by User is insufficient to create Specifications or the Preliminary Specifications are outside the scope of the services described on Topcoder Connect, Topcoder shall refund to User any Project Fees paid by User (excluding fees associated with hourly services previously provided) and Topcoder shall have no further liability or obligations under this Agreement.</p>
1212
<h2>2. Definitions.</h2>
1313
<p>For the purposes of this Agreement, the following capitalized terms have the meanings assigned to them in this Section 2. Any capitalized terms used in this Agreement but not otherwise defined in this Section shall have the meanings assigned to them elsewhere in this Agreement.</p>
1414
<ul>

src/components/TextInput/TextInput.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@
4545
border-bottom: 1px solid $tc-gray-40;
4646
color: $tc-gray-30;
4747
}
48+
&.error{
49+
border-left: 3px solid $tc-red-70!important;
50+
border-bottom: 1px solid $tc-red-70!important;
51+
background: $tc-gray-neutral-light!important;
52+
}
4853
}
4954

5055
.input-lg,

src/components/TopBar/TopBarContainer.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,11 @@ class TopBarContainer extends React.Component {
7777

7878
applyFilters(filter) {
7979
const criteria = _.assign({}, this.props.criteria, filter)
80-
if (criteria && criteria.keyword)
80+
if (criteria && criteria.keyword) {
8181
criteria.keyword = encodeURIComponent(criteria.keyword)
82+
// force sort criteria to best match
83+
criteria.sort = 'best match'
84+
}
8285
this.routeWithParams(criteria, 1)
8386
}
8487

src/favicon.png

15.4 KB
Loading

src/index.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<!DOCTYPE html>
22
<html>
33
<head>
4-
<link ref="icon" href="/favicon/favicon.ico" />
54
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
65
<meta http-equiv="X-UA-Compatible" content="IE=edge">
76
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

src/projects/detail/components/EditProjectForm.jsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,15 @@ class EditProjectForm extends Component {
135135
this.props.submitHandler(model)
136136
}
137137

138-
handleChange(change, isChanged) {
139-
if (isChanged) {
140-
this.props.fireProjectDirty(change)
141-
}
138+
/**
139+
* Handles the change event of the form.
140+
*
141+
* @param change changed form model in flattened form
142+
* @param isChanged flag that indicates if form actually changed from initial model values
143+
*/
144+
handleChange(change) {
145+
// removed check for isChanged argument to fire the PROJECT_DIRTY event for every change in the form
146+
this.props.fireProjectDirty(change)
142147
}
143148

144149

src/projects/detail/components/ProjectSpecSidebar.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ const calcProgress = (project, subSection) => {
3434
return [validScreens.length, screens.length]//TODO we should do range comparison here
3535
} else {
3636
// assuming there is only one question
37-
return [_.isEmpty(_.get(project, subSection.fieldName, null)) ? 0 : 1, 1]
37+
let val = _.get(project, subSection.fieldName, null)
38+
if (val && typeof val.trim === 'function') {
39+
val = val.trim()
40+
}
41+
return [_.isEmpty(val) ? 0 : 1, 1]
3842
}
3943
}
4044

src/projects/list/components/Projects/ProjectListProjectColHeader.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import _ from 'lodash'
33
import { Dropdown, DropdownItem } from 'appirio-tech-react-components'
44

55
const options = [
6+
{ val: 'best match', label: 'Best Match' },
67
{ val: 'createdAt desc', label: 'Latest first' },
78
{ val: 'createdAt', label: 'Oldest first' },
89
{ val: 'name', label: 'Name A-Z' }
9-
// { val: 'name desc', label: 'Name Z-A' }
1010
]
1111

1212
const ProjectListProjectColHeader = ({currentSortField, sortHandler}) => {

0 commit comments

Comments
 (0)