@@ -34,6 +34,19 @@ let mounted = false;
34
34
35
35
const SEO_PAGE_TITLE = 'Topcoder Challenges' ;
36
36
37
+ const DEVELOP_TRACK_ONLY = [ 'UI_PROTOTYPE_COMPETITION' , 'ASSEMBLY_COMPETITION' , 'FIRST_2_FINISH' , 'BUG_HUNT' , 'CODE' ,
38
+ 'DESIGN_FIRST_2_FINISH' , 'DESIGN' , 'DEVELOPMENT' , 'ARCHITECTURE' , 'CONCEPTUALIZATION' ,
39
+ 'TEST_SCENARIOS' , 'CONTENT_CREATION' , 'TEST_SUITES' , 'SPECIFICATION' , 'RIA_BUILD_COMPETITION' ,
40
+ 'WEB_DESIGNS' , 'WIDGET_OR_MOBILE_SCREEN_DESIGN' , 'APPLICATION_FRONT_END_DESIGN' ,
41
+ 'PRINT_OR_PRESENTATION' , 'IDEA_GENERATION' , 'WIREFRAMES' , 'LOGO_DESIGN' , 'BANNERS_OR_ICONS' ,
42
+ 'STUDIO_OTHER' , 'FRONT_END_FLASH' ] ;
43
+
44
+ const DESIGN_TRACK_ONLY = [ 'WEB_DESIGNS' , 'WIDGET_OR_MOBILE_SCREEN_DESIGN' , 'DESIGN_FIRST_2_FINISH' ,
45
+ 'APPLICATION_FRONT_END_DESIGN' , 'PRINT_OR_PRESENTATION' , 'IDEA_GENERATION' , 'WIREFRAMES' ,
46
+ 'LOGO_DESIGN' , 'BANNERS_OR_ICONS' , 'STUDIO_OTHER' , 'FRONT_END_FLASH' ] ;
47
+
48
+ const DATASCIENCE_TRACK_ONLY = [ 'DEVELOP_MARATHON_MATCH' , 'MARATHON_MATCH' , 'SRM' ] ;
49
+
37
50
export class ListingContainer extends React . Component {
38
51
componentDidMount ( ) {
39
52
const {
@@ -171,6 +184,8 @@ export class ListingContainer extends React.Component {
171
184
selectedCommunityId,
172
185
} = this . props ;
173
186
187
+ const finalTracks = _ . clone ( filter . tracks ) || { } ;
188
+ let finalSubTracks = _ . clone ( filter . subtracks ) ;
174
189
175
190
const f = { } ;
176
191
if ( ! filter ) {
@@ -181,11 +196,34 @@ export class ListingContainer extends React.Component {
181
196
f . keywords = filter . tags . join ( ',' ) ;
182
197
}
183
198
199
+ if ( filter . tracks ) {
200
+ if ( ! ( ! filter . tracks . design && filter . tracks . develop && filter . tracks . data_science ) ) {
201
+ finalSubTracks = [ ] ;
202
+ }
203
+
204
+ if ( filter . tracks . design ) {
205
+ finalSubTracks = _ . concat ( finalSubTracks , DESIGN_TRACK_ONLY ) ;
206
+ }
207
+
208
+ if ( filter . tracks . develop && ! filter . tracks . data_science ) {
209
+ finalSubTracks = _ . concat ( finalSubTracks , DEVELOP_TRACK_ONLY ) ;
210
+ } else if ( ! filter . tracks . develop && filter . tracks . data_science ) {
211
+ if ( ! filter . subtracks ) {
212
+ finalTracks . develop = true ;
213
+ }
214
+ finalSubTracks = _ . concat ( finalSubTracks , DATASCIENCE_TRACK_ONLY ) ;
215
+ }
216
+ }
217
+
184
218
if ( filter . subtracks ) {
185
- f . subTrack = filter . subtracks . join ( ',' ) ;
219
+ finalSubTracks = filter . subtracks ;
186
220
}
187
- if ( filter . tracks ) {
188
- const tracks = Object . keys ( filter . tracks ) . map ( t => t . toUpperCase ( ) ) ;
221
+
222
+ if ( finalSubTracks ) {
223
+ f . subTrack = finalSubTracks . join ( ',' ) ;
224
+ }
225
+ if ( filter . tracks && finalTracks ) {
226
+ const tracks = Object . keys ( finalTracks ) . map ( t => t . toUpperCase ( ) ) ;
189
227
f . track = tracks . join ( ',' ) ;
190
228
}
191
229
if ( filter . text ) {
0 commit comments