diff --git a/.circleci/config.yml b/.circleci/config.yml index ae22dbfa33..bdd7e19122 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -305,7 +305,6 @@ workflows: branches: only: - develop - - nursoltan-s-issue-5490 - "approve-smoke-test-on-staging": type: approval requires: diff --git a/src/assets/images/og_image.jpg b/src/assets/images/og_image.jpg deleted file mode 100644 index 0ca276a89d..0000000000 Binary files a/src/assets/images/og_image.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/01-wireframe.jpg b/src/assets/images/open-graph/challenges/01-wireframe.jpg deleted file mode 100644 index 5a85aee620..0000000000 Binary files a/src/assets/images/open-graph/challenges/01-wireframe.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/02-Design-Preview.png b/src/assets/images/open-graph/challenges/02-Design-Preview.png new file mode 100644 index 0000000000..50c5f6e6d1 Binary files /dev/null and b/src/assets/images/open-graph/challenges/02-Design-Preview.png differ diff --git a/src/assets/images/open-graph/challenges/02-ui-design.jpg b/src/assets/images/open-graph/challenges/02-ui-design.jpg deleted file mode 100644 index ea021fcc73..0000000000 Binary files a/src/assets/images/open-graph/challenges/02-ui-design.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/03-Development.png b/src/assets/images/open-graph/challenges/03-Development.png new file mode 100644 index 0000000000..7dde49ad25 Binary files /dev/null and b/src/assets/images/open-graph/challenges/03-Development.png differ diff --git a/src/assets/images/open-graph/challenges/03-ui-prototype.jpg b/src/assets/images/open-graph/challenges/03-ui-prototype.jpg deleted file mode 100644 index 0ca23522f3..0000000000 Binary files a/src/assets/images/open-graph/challenges/03-ui-prototype.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/04-Data-Science.png b/src/assets/images/open-graph/challenges/04-Data-Science.png new file mode 100644 index 0000000000..5524755e25 Binary files /dev/null and b/src/assets/images/open-graph/challenges/04-Data-Science.png differ diff --git a/src/assets/images/open-graph/challenges/04-first-2-finish.jpg b/src/assets/images/open-graph/challenges/04-first-2-finish.jpg deleted file mode 100644 index bf53d6eb87..0000000000 Binary files a/src/assets/images/open-graph/challenges/04-first-2-finish.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/05-QA.png b/src/assets/images/open-graph/challenges/05-QA.png new file mode 100644 index 0000000000..acd6712a26 Binary files /dev/null and b/src/assets/images/open-graph/challenges/05-QA.png differ diff --git a/src/assets/images/open-graph/challenges/05-development.jpg b/src/assets/images/open-graph/challenges/05-development.jpg deleted file mode 100644 index 10f7782dbe..0000000000 Binary files a/src/assets/images/open-graph/challenges/05-development.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/06-Big-Prize.png b/src/assets/images/open-graph/challenges/06-Big-Prize.png new file mode 100644 index 0000000000..8fedf92a11 Binary files /dev/null and b/src/assets/images/open-graph/challenges/06-Big-Prize.png differ diff --git a/src/assets/images/open-graph/challenges/06-for-fun-marathon-match.jpg b/src/assets/images/open-graph/challenges/06-for-fun-marathon-match.jpg deleted file mode 100644 index 7fcfa2fae9..0000000000 Binary files a/src/assets/images/open-graph/challenges/06-for-fun-marathon-match.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/07-sponsored-marathon-match.jpg b/src/assets/images/open-graph/challenges/07-sponsored-marathon-match.jpg deleted file mode 100644 index aa1aa5ec6b..0000000000 Binary files a/src/assets/images/open-graph/challenges/07-sponsored-marathon-match.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/08-single-round-match.jpg b/src/assets/images/open-graph/challenges/08-single-round-match.jpg deleted file mode 100644 index 4e62233a8c..0000000000 Binary files a/src/assets/images/open-graph/challenges/08-single-round-match.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/09-First2Finish.png b/src/assets/images/open-graph/challenges/09-First2Finish.png new file mode 100644 index 0000000000..07993a41a3 Binary files /dev/null and b/src/assets/images/open-graph/challenges/09-First2Finish.png differ diff --git a/src/assets/images/open-graph/challenges/09-big-prizes-challenge.jpg b/src/assets/images/open-graph/challenges/09-big-prizes-challenge.jpg deleted file mode 100644 index a41e8295ed..0000000000 Binary files a/src/assets/images/open-graph/challenges/09-big-prizes-challenge.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/10-lux-challenge.jpg b/src/assets/images/open-graph/challenges/10-lux-challenge.jpg deleted file mode 100644 index e3c4b6701b..0000000000 Binary files a/src/assets/images/open-graph/challenges/10-lux-challenge.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/11-rux-challenge.jpg b/src/assets/images/open-graph/challenges/11-rux-challenge.jpg deleted file mode 100644 index 33ac52c1e1..0000000000 Binary files a/src/assets/images/open-graph/challenges/11-rux-challenge.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/12-24h-ui-prototype-challenge.jpg b/src/assets/images/open-graph/challenges/12-24h-ui-prototype-challenge.jpg deleted file mode 100644 index fcfb590f80..0000000000 Binary files a/src/assets/images/open-graph/challenges/12-24h-ui-prototype-challenge.jpg and /dev/null differ diff --git a/src/assets/images/open-graph/challenges/13-48h-ui-prototype-challenge.jpg b/src/assets/images/open-graph/challenges/13-48h-ui-prototype-challenge.jpg deleted file mode 100644 index ac520c3c7e..0000000000 Binary files a/src/assets/images/open-graph/challenges/13-48h-ui-prototype-challenge.jpg and /dev/null differ diff --git a/src/shared/actions/recruitCRM.js b/src/shared/actions/recruitCRM.js index cc82b1446d..cdcb6d2260 100644 --- a/src/shared/actions/recruitCRM.js +++ b/src/shared/actions/recruitCRM.js @@ -69,7 +69,7 @@ function normalizeRecruitPayload(job, payload) { contact_number: payload.phone, city: payload.city, locality: _.find(payload.country, { selected: true }).label, - salary_expectation: payload.payExpectation, + salary_expectation: _.trim(payload.payExpectation), skill: payload.skills.filter(s => s.selected).map(s => s.label).join(','), custom_fields: [ { diff --git a/src/shared/components/GUIKit/JobListCard/index.jsx b/src/shared/components/GUIKit/JobListCard/index.jsx index 536a4f647e..270dda12de 100644 --- a/src/shared/components/GUIKit/JobListCard/index.jsx +++ b/src/shared/components/GUIKit/JobListCard/index.jsx @@ -8,7 +8,7 @@ import { config, Link } from 'topcoder-react-utils'; import { getSalaryType, getCustomField } from 'utils/gigs'; import { withOptimizely } from '@optimizely/react-sdk'; import './style.scss'; -import IconBlackDuration from 'assets/images/icon-black-duration.svg'; +import IconBlackDuration from 'assets/images/icon-black-calendar.svg'; import IconBlackLocation from 'assets/images/icon-black-location.svg'; import IconBlackPayment from 'assets/images/icon-black-payment.svg'; import iconBlackSkills from 'assets/images/icon-skills.png'; diff --git a/src/shared/components/GUIKit/JobListCard/style.scss b/src/shared/components/GUIKit/JobListCard/style.scss index 9cc3ca808a..cd3b04f59a 100644 --- a/src/shared/components/GUIKit/JobListCard/style.scss +++ b/src/shared/components/GUIKit/JobListCard/style.scss @@ -77,7 +77,7 @@ } &:nth-child(3) { - width: 263px; + width: 345px; @media (max-width: 1280px) { width: auto; @@ -102,6 +102,8 @@ svg, img { margin-right: 7px; + width: 20px; + height: 20px; } } diff --git a/src/shared/components/Gigs/GigApply/index.jsx b/src/shared/components/Gigs/GigApply/index.jsx index a0b5ad7169..9da7f27177 100644 --- a/src/shared/components/Gigs/GigApply/index.jsx +++ b/src/shared/components/Gigs/GigApply/index.jsx @@ -207,9 +207,9 @@ export default function GigApply(props) {

RESUME & SKILLS

{ recruitProfile.resume ? ( -

Upload Your Resume or CV, {recruitProfile.resume.filename}

+

Please upload your resume/CV. Double-check that all of your tech skills are listed in your resume/CV and add them to the tech skills section below, {recruitProfile.resume.filename}

) : ( -

Upload Your Resume or CV

+

Please upload your resume/CV. Double-check that all of your tech skills are listed in your resume/CV and add them to the tech skills section below.

) }
diff --git a/src/shared/containers/Gigs/RecruitCRMJobs.jsx b/src/shared/containers/Gigs/RecruitCRMJobs.jsx index cfb3f2aadf..5a939a9442 100644 --- a/src/shared/containers/Gigs/RecruitCRMJobs.jsx +++ b/src/shared/containers/Gigs/RecruitCRMJobs.jsx @@ -202,11 +202,11 @@ class RecruitCRMJobsContainer extends React.Component { } // Sort controlled by sortBy state jobsToDisplay = jobsToDisplay.sort((a, b) => { - // sort tags first no matter the sortBy - const tagA = getCustomField(a.custom_fields, 'Job Tag'); - const tagB = getCustomField(b.custom_fields, 'Job Tag'); - if (tagB !== 'n/a' && tagA === 'n/a') return Number.MAX_VALUE; - if (tagB === 'n/a' && tagA !== 'n/a') return -Number.MIN_VALUE; + // sort featured gigs first no matter the sortBy + const featuredA = getCustomField(a.custom_fields, 'Featured'); + const featuredB = getCustomField(b.custom_fields, 'Featured'); + if (featuredB !== 'n/a' && featuredA === 'n/a') return Number.MAX_VALUE; + if (featuredB === 'n/a' && featuredA !== 'n/a') return -Number.MIN_VALUE; return new Date(b[sortBy]) - new Date(a[sortBy]); }); // Calc pages @@ -248,6 +248,15 @@ class RecruitCRMJobsContainer extends React.Component {
{hjob.country}
{hjob.name}
${hjob.min_annual_salary} - {hjob.max_annual_salary} / {getSalaryType(hjob.salary_type)}
+ { + getCustomField(hjob.custom_fields, 'Hotlist excerpt') !== 'n/a' ? ( +
+ { + `${getCustomField(hjob.custom_fields, 'Hotlist excerpt').substring(0, CONTENT_PREVIEW_LENGTH)}${getCustomField(hjob.custom_fields, 'Hotlist excerpt').length > CONTENT_PREVIEW_LENGTH ? '...' : ''}` + } +
+ ) : null + } ) : (
diff --git a/src/shared/containers/challenge-detail/index.jsx b/src/shared/containers/challenge-detail/index.jsx index bc4f5b2d62..14eb2d46ee 100644 --- a/src/shared/containers/challenge-detail/index.jsx +++ b/src/shared/containers/challenge-detail/index.jsx @@ -49,30 +49,22 @@ import { getService } from 'services/contentful'; // getRecommendedTags, // } from 'utils/challenge-detail/helper'; -import ogWireframe from - '../../../assets/images/open-graph/challenges/01-wireframe.jpg'; import ogUiDesign from - '../../../assets/images/open-graph/challenges/02-ui-design.jpg'; -import ogUiPrototype from - '../../../assets/images/open-graph/challenges/03-ui-prototype.jpg'; + '../../../assets/images/open-graph/challenges/02-Design-Preview.png'; import ogFirst2Finish from - '../../../assets/images/open-graph/challenges/04-first-2-finish.jpg'; + '../../../assets/images/open-graph/challenges/09-First2Finish.png'; import ogDevelopment from - '../../../assets/images/open-graph/challenges/05-development.jpg'; + '../../../assets/images/open-graph/challenges/03-Development.png'; import ogBigPrizesChallenge from - '../../../assets/images/open-graph/challenges/09-big-prizes-challenge.jpg'; -import ogLuxChallenge from - '../../../assets/images/open-graph/challenges/10-lux-challenge.jpg'; -import ogRuxChallenge from - '../../../assets/images/open-graph/challenges/11-rux-challenge.jpg'; -import og24hUiPrototype from - '../../../assets/images/open-graph/challenges/12-24h-ui-prototype-challenge.jpg'; -import og48hUiPrototype from - '../../../assets/images/open-graph/challenges/13-48h-ui-prototype-challenge.jpg'; + '../../../assets/images/open-graph/challenges/06-Big-Prize.png'; +import ogQAChallenge from + '../../../assets/images/open-graph/challenges/05-QA.png'; +import ogDSChallenge from + '../../../assets/images/open-graph/challenges/04-Data-Science.png'; /* A fallback image, just in case we missed some corner case. */ import ogImage from - '../../../assets/images/og_image.jpg'; + '../../../assets/images/social.png'; import './styles.scss'; @@ -88,9 +80,9 @@ const DAY = 24 * 60 * MIN; */ function getOgImage(challenge) { const { legacy } = challenge; - const { track, subTrack } = legacy; - if (challenge.name.startsWith('LUX -')) return ogLuxChallenge; - if (challenge.name.startsWith('RUX -')) return ogRuxChallenge; + const { subTrack } = legacy; + if (challenge.name.startsWith('LUX -')) return ogBigPrizesChallenge; + if (challenge.name.startsWith('RUX -')) return ogBigPrizesChallenge; if (challenge.prizes) { const totalPrize = challenge.prizes.reduce((p, sum) => p + sum, 0); if (totalPrize > 2500) return ogBigPrizesChallenge; @@ -102,17 +94,22 @@ function getOgImage(challenge) { const submission = (challenge.phases || []) .find(p => p.name === CHALLENGE_PHASE_TYPES.SUBMISSION); if (submission) { - if (submission.duration < 1.1 * DAY) return og24hUiPrototype; - if (submission.duration < 2.1 * DAY) return og48hUiPrototype; + if (submission.duration < 1.1 * DAY) return ogDevelopment; + if (submission.duration < 2.1 * DAY) return ogDevelopment; } - return ogUiPrototype; + return ogDevelopment; } - case SUBTRACKS.WIREFRAMES: return ogWireframe; + case SUBTRACKS.WIREFRAMES: return ogUiDesign; + case SUBTRACKS.QA: + case SUBTRACKS.TEST_SUITES: + return ogQAChallenge; + case SUBTRACKS.DS: return ogDSChallenge; default: } - switch (track) { + switch (challenge.track) { case COMPETITION_TRACKS_V3.DEVELOP: return ogDevelopment; case COMPETITION_TRACKS_V3.DESIGN: return ogUiDesign; + case COMPETITION_TRACKS_V3.DS: return ogDSChallenge; default: return ogImage; } } diff --git a/src/shared/containers/challenge-listing/Listing/index.jsx b/src/shared/containers/challenge-listing/Listing/index.jsx index 05e67311ec..9750569253 100644 --- a/src/shared/containers/challenge-listing/Listing/index.jsx +++ b/src/shared/containers/challenge-listing/Listing/index.jsx @@ -31,7 +31,7 @@ import MetaTags from 'components/MetaTags'; import { USER_GROUP_MAXAGE } from 'config'; import { updateChallengeType } from 'utils/challenge'; -import ogImage from '../../../../assets/images/og_image.jpg'; +import ogImage from '../../../../assets/images/social.png'; import style from './styles.scss'; // const { combine, mapToBackend } = challengeUtils.filter; diff --git a/src/shared/utils/tc.js b/src/shared/utils/tc.js index e1d27d30a0..37514bc606 100644 --- a/src/shared/utils/tc.js +++ b/src/shared/utils/tc.js @@ -31,8 +31,9 @@ export const CHALLENGE_PHASE_TYPES = { */ export const COMPETITION_TRACKS_V3 = { - DESIGN: 'DESIGN', - DEVELOP: 'DEVELOP', + DESIGN: 'Design', + DEVELOP: 'Development', + DS: 'Data Science', }; /* Holds valid subtracks (only some of possible values are included into this @@ -41,6 +42,9 @@ export const SUBTRACKS = { FIRST_2_FINISH: 'FIRST_2_FINISH', UI_PROTOTYPE_COMPETITION: 'UI_PROTOTYPE_COMPETITION', WIREFRAMES: 'WIREFRAMES', + QA: 'BUG_HUNT', + TEST_SUITES: 'TEST_SUITES', + DS: 'DEVELOP_MARATHON_MATCH', }; /**