-
Notifications
You must be signed in to change notification settings - Fork 141
/
constants.js
1236 lines (1048 loc) · 58 KB
/
constants.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import { getCookie } from '../helpers/cookie'
/*
* ACTIONS
*/
// Auth
export const LOAD_USER_SUCCESS = 'LOAD_USER_SUCCESS'
export const LOAD_USER_FAILURE = 'LOAD_USER_FAILURE'
export const LOAD_USER_CREDENTIAL = 'LOAD_USER_CREDENTIAL'
export const LOAD_USER_CREDENTIAL_PENDING = 'LOAD_USER_CREDENTIAL_PENDING'
export const LOAD_USER_CREDENTIAL_SUCCESS = 'LOAD_USER_CREDENTIAL_SUCCESS'
export const LOAD_USER_CREDENTIAL_FAILURE = 'LOAD_USER_CREDENTIAL_FAILURE'
// Load_CHALLEGNES
export const LOAD_CHALLEGNES = 'LOAD_CHALLEGNES'
export const LOAD_CHALLEGNES_PENDING = 'LOAD_CHALLEGNES_PENDING'
export const LOAD_CHALLEGNES_SUCCESS = 'LOAD_CHALLEGNES_SUCCESS'
export const LOAD_CHALLEGNES_FAILURE = 'Load_CHALLEGNES_FAILURE'
// Load organization configs
export const LOAD_ORG_CONFIG_SUCCESS = 'LOAD_ORG_CONFIG_SUCCESS'
export const LOAD_ORG_CONFIG_FAILURE = 'LOAD_ORG_CONFIG_FAILURE'
// Notifications
export const GET_NOTIFICATIONS_PENDING = 'GET_NOTIFICATIONS_PENDING'
export const GET_NOTIFICATIONS_SUCCESS = 'GET_NOTIFICATIONS_SUCCESS'
export const GET_NOTIFICATIONS_FAILURE = 'GET_NOTIFICATIONS_FAILURE'
export const SET_NOTIFICATIONS_FILTER_BY = 'SET_NOTIFICATIONS_FILTER_BY'
export const MARK_ALL_NOTIFICATIONS_READ = 'MARK_ALL_NOTIFICATIONS_READ'
export const TOGGLE_NOTIFICATION_READ = 'TOGGLE_NOTIFICATION_READ'
export const TOGGLE_NOTIFICATION_SEEN = 'TOGGLE_NOTIFICATION_SEEN'
export const MARK_ALL_NOTIFICATIONS_SEEN = 'MARK_ALL_NOTIFICATIONS_SEEN'
export const VIEW_OLDER_NOTIFICATIONS_SUCCESS = 'VIEW_OLDER_NOTIFICATIONS_SUCCESS'
export const HIDE_OLDER_NOTIFICATIONS_SUCCESS = 'HIDE_OLDER_NOTIFICATIONS_SUCCESS'
export const NOTIFICATIONS_PENDING = 'NOTIFICATIONS_PENDING'
export const MARK_NOTIFICATIONS_READ = 'MARK_NOTIFICATIONS_READ'
// Settings
export const GET_SYSTEM_SETTINGS_PENDING = 'GET_SYSTEM_SETTINGS_PENDING'
export const GET_SYSTEM_SETTINGS_SUCCESS = 'GET_SYSTEM_SETTINGS_SUCCESS'
export const GET_SYSTEM_SETTINGS_FAILURE = 'GET_SYSTEM_SETTINGS_FAILURE'
export const CHECK_EMAIL_AVAILABILITY_PENDING = 'CHECK_EMAIL_AVAILABILITY_PENDING'
export const CHECK_EMAIL_AVAILABILITY_SUCCESS = 'CHECK_EMAIL_AVAILABILITY_SUCCESS'
export const CHECK_EMAIL_AVAILABILITY_FAILURE = 'CHECK_EMAIL_AVAILABILITY_FAILURE'
export const CHANGE_EMAIL_PENDING = 'CHANGE_EMAIL_PENDING'
export const CHANGE_EMAIL_SUCCESS = 'CHANGE_EMAIL_SUCCESS'
export const CHANGE_EMAIL_FAILURE = 'CHANGE_EMAIL_FAILURE'
export const CHANGE_PASSWORD_PENDING = 'CHANGE_PASSWORD_PENDING'
export const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS'
export const CHANGE_PASSWORD_FAILURE = 'CHANGE_PASSWORD_FAILURE'
export const RESET_PASSWORD_PENDING = 'RESET_PASSWORD_PENDING'
export const RESET_PASSWORD_SUCCESS = 'RESET_PASSWORD_SUCCESS'
export const RESET_PASSWORD_FAILURE = 'RESET_PASSWORD_FAILURE'
export const GET_NOTIFICATION_SETTINGS_PENDING = 'GET_NOTIFICATION_SETTINGS_PENDING'
export const GET_NOTIFICATION_SETTINGS_SUCCESS = 'GET_NOTIFICATION_SETTINGS_SUCCESS'
export const GET_NOTIFICATION_SETTINGS_FAILURE = 'GET_NOTIFICATION_SETTINGS_FAILURE'
export const SAVE_NOTIFICATION_SETTINGS_PENDING = 'SAVE_NOTIFICATION_SETTINGS_PENDING'
export const SAVE_NOTIFICATION_SETTINGS_SUCCESS = 'SAVE_NOTIFICATION_SETTINGS_SUCCESS'
export const SAVE_NOTIFICATION_SETTINGS_FAILURE = 'SAVE_NOTIFICATION_SETTINGS_FAILURE'
export const GET_PROFILE_SETTINGS_PENDING = 'GET_PROFILE_SETTINGS_PENDING'
export const GET_PROFILE_SETTINGS_SUCCESS = 'GET_PROFILE_SETTINGS_SUCCESS'
export const GET_PROFILE_SETTINGS_RESET = 'GET_PROFILE_SETTINGS_RESET'
export const GET_PROFILE_SETTINGS_FAILURE = 'GET_PROFILE_SETTINGS_FAILURE'
export const SAVE_PROFILE_SETTINGS_PENDING = 'SAVE_PROFILE_SETTINGS_PENDING'
export const SAVE_PROFILE_SETTINGS_SUCCESS = 'SAVE_PROFILE_SETTINGS_SUCCESS'
export const SAVE_PROFILE_SETTINGS_FAILURE = 'SAVE_PROFILE_SETTINGS_FAILURE'
export const CLEAR_PROFILE_SETTINGS_PHOTO = 'CLEAR_PROFILE_SETTINGS_PHOTO'
export const SAVE_PROFILE_PHOTO_SUCCESS = 'SAVE_PROFILE_PHOTO_SUCCESS'
export const SAVE_PROFILE_PHOTO_FAILURE = 'SAVE_PROFILE_PHOTO_FAILURE'
export const SAVE_PROFILE_PHOTO_PENDING = 'SAVE_PROFILE_PHOTO_PENDING'
// Search Term
export const SET_SEARCH_TERM = 'SET_SEARCH_TERM'
export const SET_SEARCH_TAG = 'SET_SEARCH_TAG'
export const RESET_SEARCH_TERM = 'RESET_SEARCH_TERM'
// Project Search
export const CLEAR_PROJECT_SEARCH = 'CLEAR_PROJECT_SEARCH'
export const PROJECT_SEARCH = 'PROJECT_SEARCH'
export const PROJECT_SEARCH_FAILURE = 'PROJECT_SEARCH_FAILURE'
export const PROJECT_SEARCH_SUCCESS = 'PROJECT_SEARCH_SUCCESS'
export const PROJECT_SEARCH_PENDING = 'PROJECT_SEARCH_PENDING'
export const LOAD_MORE_PROJECTS = 'LOAD_MORE_PROJECTS'
export const GET_PROJECTS = 'GET_PROJECTS'
export const GET_PROJECTS_PENDING = 'GET_PROJECTS_PENDING'
export const GET_PROJECTS_SUCCESS = 'GET_PROJECTS_SUCCESS'
export const GET_PROJECTS_FAILURE = 'GET_PROJECTS_FAILURE'
export const SET_PROJECTS_SEARCH_CRITERIA = 'SET_PROJECTS_SEARCH_CRITERIA'
export const SET_PROJECTS_INFINITE_AUTOLOAD = 'SET_PROJECTS_INFINITE_AUTOLOAD'
export const SET_PROJECTS_LIST_VIEW = 'SET_PROJECTS_LIST_VIEW'
// milestones
export const CREATE_TIMELINE_MILESTONE = 'CREATE_TIMELINE_MILESTONE'
export const CREATE_TIMELINE_MILESTONE_SUCCESS = 'CREATE_TIMELINE_MILESTONE_SUCCESS'
export const CREATE_TIMELINE_MILESTONE_FAILURE = 'CREATE_TIMELINE_MILESTONE_FAILURE'
export const CREATE_TIMELINE_MILESTONE_PENDING = 'CREATE_TIMELINE_MILESTONE_PENDING'
// project phases
export const CREATE_PROJECT_PHASE = 'CREATE_PROJECT_PHASE'
export const CREATE_PROJECT_PHASE_FAILURE = 'CREATE_PROJECT_PHASE_FAILURE'
export const CREATE_PROJECT_PHASE_SUCCESS = 'CREATE_PROJECT_PHASE_SUCCESS'
export const CREATE_PROJECT_PHASE_PENDING = 'CREATE_PROJECT_PHASE_PENDING'
// project phases and timeline and milestones
export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES'
export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_FAILURE = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_FAILURE'
export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_SUCCESS = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_SUCCESS'
export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_PENDING = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_PENDING'
// Delete project
export const DELETE_PROJECT = 'DELETE_PROJECT'
export const DELETE_PROJECT_PENDING = 'DELETE_PROJECT_PENDING'
export const DELETE_PROJECT_SUCCESS = 'DELETE_PROJECT_SUCCESS'
export const DELETE_PROJECT_FAILURE = 'DELETE_PROJECT_FAILURE'
// Project Search Suggestions (Typeahead)
export const CLEAR_PROJECT_SUGGESTIONS_SEARCH = 'CLEAR_PROJECT_SUGGESTIONS_SEARCH'
export const PROJECT_SUGGESTIONS_SEARCH_FAILURE = 'PROJECT_SUGGESTIONS_SEARCH_FAILURE'
export const PROJECT_SUGGESTIONS_SEARCH_SUCCESS = 'PROJECT_SUGGESTIONS_SEARCH_SUCCESS'
// project billingAccount
export const LOAD_PROJECT_BILLING_ACCOUNT = 'LOAD_PROJECT_BILLING_ACCOUNT'
export const LOAD_PROJECT_BILLING_ACCOUNT_PENDING = 'LOAD_PROJECT_BILLING_ACCOUNT_PENDING'
export const LOAD_PROJECT_BILLING_ACCOUNT_FAILURE = 'LOAD_PROJECT_BILLING_ACCOUNT_FAILURE'
export const LOAD_PROJECT_BILLING_ACCOUNT_SUCCESS = 'LOAD_PROJECT_BILLING_ACCOUNT_SUCCESS'
// Project Dashboard
export const LOAD_PROJECT_DASHBOARD = 'LOAD_PROJECT_DASHBOARD'
export const LOAD_PROJECT_DASHBOARD_PENDING = 'LOAD_PROJECT_DASHBOARD_PENDING'
export const LOAD_PROJECT_DASHBOARD_FAILURE = 'LOAD_PROJECT_DASHBOARD_FAILURE'
export const LOAD_PROJECT_DASHBOARD_SUCCESS = 'LOAD_PROJECT_DASHBOARD_SUCCESS'
// Direct Project Data
export const LOAD_ADDITIONAL_PROJECT_DATA = 'LOAD_ADDITIONAL_PROJECT_DATA'
export const LOAD_ADDITIONAL_PROJECT_DATA_PENDING = 'LOAD_ADDITIONAL_PROJECT_DATA_PENDING'
export const LOAD_ADDITIONAL_PROJECT_DATA_FAILURE = 'LOAD_ADDITIONAL_PROJECT_DATA_FAILURE'
export const LOAD_ADDITIONAL_PROJECT_DATA_SUCCESS = 'LOAD_ADDITIONAL_PROJECT_DATA_SUCCESS'
// Project Topics Load
export const LOAD_PROJECT_FEEDS = 'LOAD_PROJECT_FEEDS'
export const LOAD_PROJECT_FEEDS_PENDING = 'LOAD_PROJECT_FEEDS_PENDING'
export const LOAD_PROJECT_FEEDS_FAILURE = 'LOAD_PROJECT_FEEDS_FAILURE'
export const LOAD_PROJECT_FEEDS_SUCCESS = 'LOAD_PROJECT_FEEDS_SUCCESS'
// Topics Load
export const LOAD_TOPIC = 'LOAD_TOPIC'
export const LOAD_TOPIC_PENDING = 'LOAD_TOPIC_PENDING'
export const LOAD_TOPIC_FAILURE = 'LOAD_TOPIC_FAILURE'
export const LOAD_TOPIC_SUCCESS = 'LOAD_TOPIC_SUCCESS'
// project topics load with members
export const LOAD_PROJECT_FEEDS_MEMBERS = 'LOAD_PROJECT_FEEDS_MEMBERS'
export const LOAD_PROJECT_FEEDS_MEMBERS_PENDING = 'LOAD_PROJECT_FEEDS_MEMBERS_PENDING'
export const LOAD_PROJECT_FEEDS_MEMBERS_SUCCESS = 'LOAD_PROJECT_FEEDS_MEMBERS_SUCCESS'
export const LOAD_PROJECT_FEEDS_MEMBERS_FAILURE = 'LOAD_PROJECT_FEEDS_MEMBERS_FAILURE'
// Topics load with members
export const LOAD_TOPIC_MEMBERS = 'LOAD_TOPIC_MEMBERS'
export const LOAD_TOPIC_MEMBERS_PENDING = 'LOAD_TOPIC_MEMBERS_PENDING'
export const LOAD_TOPIC_MEMBERS_SUCCESS = 'LOAD_TOPIC_MEMBERS_SUCCESS'
export const LOAD_TOPIC_MEMBERS_FAILURE = 'LOAD_TOPIC_MEMBERS_FAILURE'
// Create Project Topic
export const CREATE_PROJECT_FEED = 'CREATE_PROJECT_FEED'
export const CREATE_PROJECT_FEED_PENDING = 'CREATE_PROJECT_FEED_PENDING'
export const CREATE_PROJECT_FEED_SUCCESS = 'CREATE_PROJECT_FEED_SUCCESS'
export const CREATE_PROJECT_FEED_FAILURE = 'CREATE_PROJECT_FEED_FAILURE'
// Save Project Topic
export const SAVE_PROJECT_FEED = 'SAVE_PROJECT_FEED'
export const SAVE_PROJECT_FEED_PENDING = 'SAVE_PROJECT_FEED_PENDING'
export const SAVE_PROJECT_FEED_SUCCESS = 'SAVE_PROJECT_FEED_SUCCESS'
export const SAVE_PROJECT_FEED_FAILURE = 'SAVE_PROJECT_FEED_FAILURE'
// Delete Project Topic
export const DELETE_PROJECT_FEED = 'DELETE_PROJECT_FEED'
export const DELETE_PROJECT_FEED_PENDING = 'DELETE_PROJECT_FEED_PENDING'
export const DELETE_PROJECT_FEED_SUCCESS = 'DELETE_PROJECT_FEED_SUCCESS'
export const DELETE_PROJECT_FEED_FAILURE = 'DELETE_PROJECT_FEED_FAILURE'
export const LOAD_PROJECT_FEED_COMMENTS = 'LOAD_PROJECT_FEED_COMMENTS'
export const LOAD_PROJECT_FEED_COMMENTS_PENDING = 'LOAD_PROJECT_FEED_COMMENTS_PENDING'
export const LOAD_PROJECT_FEED_COMMENTS_SUCCESS = 'LOAD_PROJECT_FEED_COMMENTS_SUCCESS'
export const LOAD_PROJECT_FEED_COMMENTS_FAILURE = 'LOAD_PROJECT_FEED_COMMENTS_FAILURE'
// Create Topic Post
export const CREATE_PROJECT_FEED_COMMENT = 'CREATE_PROJECT_FEED_COMMENT'
export const CREATE_PROJECT_FEED_COMMENT_PENDING = 'CREATE_PROJECT_FEED_COMMENT_PENDING'
export const CREATE_PROJECT_FEED_COMMENT_SUCCESS = 'CREATE_PROJECT_FEED_COMMENT_SUCCESS'
export const CREATE_PROJECT_FEED_COMMENT_FAILURE = 'CREATE_PROJECT_FEED_COMMENT_FAILURE'
// Create Topic Post
export const CREATE_TOPIC_POST = 'CREATE_TOPIC_POST'
export const CREATE_TOPIC_POST_PENDING = 'CREATE_TOPIC_POST_PENDING'
export const CREATE_TOPIC_POST_SUCCESS = 'CREATE_TOPIC_POST_SUCCESS'
export const CREATE_TOPIC_POST_FAILURE = 'CREATE_TOPIC_POST_FAILURE'
// Save Topic Post
export const SAVE_PROJECT_FEED_COMMENT = 'SAVE_PROJECT_FEED_COMMENT'
export const SAVE_PROJECT_FEED_COMMENT_PENDING = 'SAVE_PROJECT_FEED_COMMENT_PENDING'
export const SAVE_PROJECT_FEED_COMMENT_SUCCESS = 'SAVE_PROJECT_FEED_COMMENT_SUCCESS'
export const SAVE_PROJECT_FEED_COMMENT_FAILURE = 'SAVE_PROJECT_FEED_COMMENT_FAILURE'
// Save Topic Post
export const UPDATE_TOPIC_POST = 'UPDATE_TOPIC_POST'
export const UPDATE_TOPIC_POST_PENDING = 'UPDATE_TOPIC_POST_PENDING'
export const UPDATE_TOPIC_POST_SUCCESS = 'UPDATE_TOPIC_POST_SUCCESS'
export const UPDATE_TOPIC_POST_FAILURE = 'UPDATE_TOPIC_POST_FAILURE'
// Get Topic Post
export const GET_PROJECT_FEED_COMMENT = 'GET_PROJECT_FEED_COMMENT'
export const GET_PROJECT_FEED_COMMENT_PENDING = 'GET_PROJECT_FEED_COMMENT_PENDING'
export const GET_PROJECT_FEED_COMMENT_SUCCESS = 'GET_PROJECT_FEED_COMMENT_SUCCESS'
export const GET_PROJECT_FEED_COMMENT_FAILURE = 'GET_PROJECT_FEED_COMMENT_FAILURE'
// Delete Topic Post
export const DELETE_PROJECT_FEED_COMMENT = 'DELETE_PROJECT_FEED_COMMENT'
export const DELETE_PROJECT_FEED_COMMENT_PENDING = 'DELETE_PROJECT_FEED_COMMENT_PENDING'
export const DELETE_PROJECT_FEED_COMMENT_SUCCESS = 'DELETE_PROJECT_FEED_COMMENT_SUCCESS'
export const DELETE_PROJECT_FEED_COMMENT_FAILURE = 'DELETE_PROJECT_FEED_COMMENT_FAILURE'
// Delete Topic Post
export const DELETE_TOPIC_POST = 'DELETE_TOPIC_POST'
export const DELETE_TOPIC_POST_PENDING = 'DELETE_TOPIC_POST_PENDING'
export const DELETE_TOPIC_POST_SUCCESS = 'DELETE_TOPIC_POST_SUCCESS'
export const DELETE_TOPIC_POST_FAILURE = 'DELETE_TOPIC_POST_FAILURE'
export const EXPAND_PROJECT_PHASE = 'EXPAND_PROJECT_PHASE'
export const COLLAPSE_PROJECT_PHASE = 'COLLAPSE_PROJECT_PHASE'
export const COLLAPSE_ALL_PROJECT_PHASES = 'COLLAPSE_ALL_PROJECT_PHASES'
// Project Sort
export const PROJECT_SORT = 'PROJECT_SORT'
export const PROJECT_SORT_FAILURE = 'PROJECT_SORT_FAILURE'
export const PROJECT_SORT_SUCCESS = 'PROJECT_SORT_SUCCESS'
export const PROJECT_SORT_PENDING = 'PROJECT_SORT_PENDING'
// Project Load
export const LOAD_PROJECT = 'LOAD_PROJECT'
export const LOAD_PROJECT_PENDING = 'LOAD_PROJECT_PENDING'
export const LOAD_PROJECT_FAILURE = 'LOAD_PROJECT_FAILURE'
export const LOAD_PROJECT_SUCCESS = 'LOAD_PROJECT_SUCCESS'
export const LOAD_PROJECT_MEMBER_INVITE = 'LOAD_PROJECT_MEMBER_INVITE'
export const LOAD_PROJECT_MEMBER_INVITE_PENDING = 'LOAD_PROJECT_MEMBER_INVITE_PENDING'
export const LOAD_PROJECT_MEMBER_INVITE_FAILURE = 'LOAD_PROJECT_MEMBER_INVITE_FAILURE'
export const LOAD_PROJECT_MEMBER_INVITE_SUCCESS = 'LOAD_PROJECT_MEMBER_INVITE_SUCCESS'
export const CREATE_PROJECT = 'CREATE_PROJECT'
export const CREATE_PROJECT_PENDING = 'CREATE_PROJECT_PENDING'
export const CREATE_PROJECT_SUCCESS = 'CREATE_PROJECT_SUCCESS'
export const CREATE_PROJECT_FAILURE = 'CREATE_PROJECT_FAILURE'
export const UPDATE_PROJECT = 'UPDATE_PROJECT'
export const UPDATE_PROJECT_PENDING = 'UPDATE_PROJECT_PENDING'
export const UPDATE_PROJECT_SUCCESS = 'UPDATE_PROJECT_SUCCESS'
export const UPDATE_PROJECT_FAILURE = 'UPDATE_PROJECT_FAILURE'
export const CREATE_SCOPE_CHANGE_REQUEST = 'CREATE_SCOPE_CHANGE_REQUEST'
export const CREATE_SCOPE_CHANGE_REQUEST_PENDING = 'CREATE_SCOPE_CHANGE_REQUEST_PENDING'
export const CREATE_SCOPE_CHANGE_REQUEST_SUCCESS = 'CREATE_SCOPE_CHANGE_REQUEST_SUCCESS'
export const CREATE_SCOPE_CHANGE_REQUEST_FAILURE = 'CREATE_SCOPE_CHANGE_REQUEST_FAILURE'
export const APPROVE_SCOPE_CHANGE = 'APPROVE_SCOPE_CHANGE'
export const APPROVE_SCOPE_CHANGE_PENDING = 'APPROVE_SCOPE_CHANGE_PENDING'
export const APPROVE_SCOPE_CHANGE_SUCCESS = 'APPROVE_SCOPE_CHANGE_SUCCESS'
export const APPROVE_SCOPE_CHANGE_FAILURE = 'APPROVE_SCOPE_CHANGE_FAILURE'
export const REJECT_SCOPE_CHANGE = 'REJECT_SCOPE_CHANGE'
export const REJECT_SCOPE_CHANGE_PENDING = 'REJECT_SCOPE_CHANGE_PENDING'
export const REJECT_SCOPE_CHANGE_SUCCESS = 'REJECT_SCOPE_CHANGE_SUCCESS'
export const REJECT_SCOPE_CHANGE_FAILURE = 'REJECT_SCOPE_CHANGE_FAILURE'
export const CANCEL_SCOPE_CHANGE = 'CANCEL_SCOPE_CHANGE'
export const CANCEL_SCOPE_CHANGE_PENDING = 'CANCEL_SCOPE_CHANGE_PENDING'
export const CANCEL_SCOPE_CHANGE_SUCCESS = 'CANCEL_SCOPE_CHANGE_SUCCESS'
export const CANCEL_SCOPE_CHANGE_FAILURE = 'CANCEL_SCOPE_CHANGE_FAILURE'
export const ACTIVATE_SCOPE_CHANGE = 'ACTIVATE_SCOPE_CHANGE'
export const ACTIVATE_SCOPE_CHANGE_PENDING = 'ACTIVATE_SCOPE_CHANGE_PENDING'
export const ACTIVATE_SCOPE_CHANGE_SUCCESS = 'ACTIVATE_SCOPE_CHANGE_SUCCESS'
export const ACTIVATE_SCOPE_CHANGE_FAILURE = 'ACTIVATE_SCOPE_CHANGE_FAILURE'
export const UPDATE_PHASE = 'UPDATE_PHASE'
export const UPDATE_PHASE_PENDING = 'UPDATE_PHASE_PENDING'
export const UPDATE_PHASE_FAILURE = 'UPDATE_PHASE_FAILURE'
export const UPDATE_PHASE_SUCCESS = 'UPDATE_PHASE_SUCCESS'
export const DELETE_PROJECT_PHASE = 'DELETE_PROJECT_PHASE'
export const DELETE_PROJECT_PHASE_PENDING = 'DELETE_PROJECT_PHASE_PENDING'
export const DELETE_PROJECT_PHASE_FAILURE = 'DELETE_PROJECT_PHASE_FAILURE'
export const DELETE_PROJECT_PHASE_SUCCESS = 'DELETE_PROJECT_PHASE_SUCCESS'
export const DELETE_BULK_PROJECT_PHASE = 'DELETE_BULK_PROJECT_PHASE'
export const DELETE_BULK_PROJECT_PHASE_PENDING = 'DELETE_BULK_PROJECT_PHASE_PENDING'
export const DELETE_BULK_PROJECT_PHASE_FAILURE = 'DELETE_BULK_PROJECT_PHASE_FAILURE'
export const DELETE_BULK_PROJECT_PHASE_SUCCESS = 'DELETE_BULK_PROJECT_PHASE_SUCCESS'
export const UPDATE_PRODUCT = 'UPDATE_PRODUCT'
export const UPDATE_PRODUCT_PENDING = 'UPDATE_PRODUCT_PENDING'
export const UPDATE_PRODUCT_SUCCESS = 'UPDATE_PRODUCT_SUCCESS'
export const UPDATE_PRODUCT_FAILURE = 'UPDATE_PRODUCT_FAILURE'
export const PROJECT_DIRTY = 'PROJECT_DIRTY'
export const PROJECT_DIRTY_UNDO = 'PROJECT_DIRTY_UNDO'
export const PHASE_DIRTY = 'PHASE_DIRTY'
export const PHASE_DIRTY_UNDO = 'PHASE_DIRTY_UNDO'
export const PRODUCT_DIRTY = 'PRODUCT_DIRTY'
export const PRODUCT_DIRTY_UNDO = 'PRODUCT_DIRTY_UNDO'
export const LOAD_PROJECT_PHASES = 'LOAD_PROJECT_PHASES'
export const LOAD_PROJECT_PHASES_PENDING = 'LOAD_PROJECT_PHASES_PENDING'
export const LOAD_PROJECT_PHASES_FAILURE = 'LOAD_PROJECT_PHASES_FAILURE'
export const LOAD_PROJECT_PHASES_SUCCESS = 'LOAD_PROJECT_PHASES_SUCCESS'
export const CUSTOMER_APPROVE_MILESTONE_PENDING = 'CUSTOMER_APPROVE_MILESTONE_PENDING'
export const CUSTOMER_APPROVE_MILESTONE_FINISHED = 'CUSTOMER_APPROVE_MILESTONE_FINISHED'
export const CUSTOMER_APPROVE_MILESTONE_SUCCESS = 'CUSTOMER_APPROVE_MILESTONE_SUCCESS'
export const CUSTOMER_APPROVE_MILESTONE_FAILURE = 'CUSTOMER_APPROVE_MILESTONE_FAILURE'
export const CUSTOMER_APPROVE_MILESTONE_APPROVE_SUCCESS = 'CUSTOMER_APPROVE_MILESTONE_APPROVE_SUCCESS'
export const CUSTOMER_APPROVE_MILESTONE_APPROVE_FAILURE = 'CUSTOMER_APPROVE_MILESTONE_APPROVE_FAILURE'
export const CUSTOMER_APPROVE_MILESTONE_REJECT_SUCCESS = 'CUSTOMER_APPROVE_MILESTONE_REJECT_SUCCESS'
export const CUSTOMER_APPROVE_MILESTONE_REJECT_FAILURE = 'CUSTOMER_APPROVE_MILESTONE_REJECT_FAILURE'
export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES'
export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_PENDING = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_PENDING'
export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_FAILURE = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_FAILURE'
export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_SUCCESS = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_SUCCESS'
export const UPDATE_PRODUCT_TIMELINE = 'UPDATE_PRODUCT_TIMELINE'
export const UPDATE_PRODUCT_TIMELINE_PENDING = 'UPDATE_PRODUCT_TIMELINE_PENDING'
export const UPDATE_PRODUCT_TIMELINE_FAILURE = 'UPDATE_PRODUCT_TIMELINE_FAILURE'
export const UPDATE_PRODUCT_TIMELINE_SUCCESS = 'UPDATE_PRODUCT_TIMELINE_SUCCESS'
export const UPDATE_PRODUCT_MILESTONE = 'UPDATE_PRODUCT_MILESTONE'
export const UPDATE_PRODUCT_MILESTONE_PENDING = 'UPDATE_PRODUCT_MILESTONE_PENDING'
export const UPDATE_PRODUCT_MILESTONE_FAILURE = 'UPDATE_PRODUCT_MILESTONE_FAILURE'
export const UPDATE_PRODUCT_MILESTONE_SUCCESS = 'UPDATE_PRODUCT_MILESTONE_SUCCESS'
export const BULK_UPDATE_PRODUCT_MILESTONES = 'BULK_UPDATE_PRODUCT_MILESTONES'
export const BULK_UPDATE_PRODUCT_MILESTONES_PENDING = 'BULK_UPDATE_PRODUCT_MILESTONES_PENDING'
export const BULK_UPDATE_PRODUCT_MILESTONES_FAILURE = 'BULK_UPDATE_PRODUCT_MILESTONES_FAILURE'
export const BULK_UPDATE_PRODUCT_MILESTONES_SUCCESS = 'BULK_UPDATE_PRODUCT_MILESTONES_SUCCESS'
export const COMPLETE_PRODUCT_MILESTONE = 'COMPLETE_PRODUCT_MILESTONE'
export const COMPLETE_PRODUCT_MILESTONE_PENDING = 'COMPLETE_PRODUCT_MILESTONE_PENDING'
export const COMPLETE_PRODUCT_MILESTONE_FAILURE = 'COMPLETE_PRODUCT_MILESTONE_FAILURE'
export const COMPLETE_PRODUCT_MILESTONE_SUCCESS = 'COMPLETE_PRODUCT_MILESTONE_SUCCESS'
export const SUBMIT_FINAL_FIXES_REQUEST = 'SUBMIT_FINAL_FIXES_REQUEST'
export const SUBMIT_FINAL_FIXES_REQUEST_PENDING = 'SUBMIT_FINAL_FIXES_REQUEST_PENDING'
export const SUBMIT_FINAL_FIXES_REQUEST_FAILURE = 'SUBMIT_FINAL_FIXES_REQUEST_FAILURE'
export const SUBMIT_FINAL_FIXES_REQUEST_SUCCESS = 'SUBMIT_FINAL_FIXES_REQUEST_SUCCESS'
export const EXTEND_PRODUCT_MILESTONE = 'EXTEND_PRODUCT_MILESTONE'
export const EXTEND_PRODUCT_MILESTONE_PENDING = 'EXTEND_PRODUCT_MILESTONE_PENDING'
export const EXTEND_PRODUCT_MILESTONE_FAILURE = 'EXTEND_PRODUCT_MILESTONE_FAILURE'
export const EXTEND_PRODUCT_MILESTONE_SUCCESS = 'EXTEND_PRODUCT_MILESTONE_SUCCESS'
export const LOAD_MEMBERS = 'LOAD_MEMBERS'
export const LOAD_MEMBERS_PENDING = 'LOAD_MEMBERS_PENDING'
export const LOAD_MEMBERS_SUCCESS = 'LOAD_MEMBERS_SUCCESS'
export const LOAD_MEMBERS_FAILURE = 'LOAD_MEMBERS_FAILURE'
export const LOAD_MEMBER_SUGGESTIONS = 'LOAD_MEMBER_SUGGESTIONS'
export const LOAD_MEMBER_SUGGESTIONS_PENDING = 'LOAD_MEMBER_SUGGESTIONS_PENDING'
export const LOAD_MEMBER_SUGGESTIONS_SUCCESS = 'LOAD_MEMBER_SUGGESTIONS_SUCCESS'
export const LOAD_MEMBER_SUGGESTIONS_FAILURE = 'LOAD_MEMBER_SUGGESTIONS_FAILURE'
export const CLEAR_MEMBER_SUGGESTIONS = 'CLEAR_MEMBER_SUGGESTIONS'
export const ADD_PROJECT_MEMBER = 'ADD_PROJECT_MEMBER'
export const ADD_PROJECT_MEMBER_PENDING = 'ADD_PROJECT_MEMBER_PENDING'
export const ADD_PROJECT_MEMBER_SUCCESS = 'ADD_PROJECT_MEMBER_SUCCESS'
export const ADD_PROJECT_MEMBER_FAILURE = 'ADD_PROJECT_MEMBER_FAILURE'
export const INVITE_CUSTOMER = 'INVITE_CUSTOMER'
export const INVITE_CUSTOMER_PENDING = 'INVITE_CUSTOMER_PENDING'
export const INVITE_CUSTOMER_SUCCESS = 'INVITE_CUSTOMER_SUCCESS'
export const INVITE_CUSTOMER_FAILURE = 'INVITE_CUSTOMER_FAILURE'
export const REMOVE_CUSTOMER_INVITE = 'REMOVE_CUSTOMER_INVITE'
export const REMOVE_CUSTOMER_INVITE_PENDING = 'REMOVE_CUSTOMER_INVITE_PENDING'
export const REMOVE_CUSTOMER_INVITE_SUCCESS = 'REMOVE_CUSTOMER_INVITE_SUCCESS'
export const REMOVE_CUSTOMER_INVITE_FAILURE = 'REMOVE_CUSTOMER_INVITE_FAILURE'
export const INVITE_TOPCODER_MEMBER = 'INVITE_TOPCODER_MEMBER'
export const INVITE_TOPCODER_MEMBER_PENDING = 'INVITE_TOPCODER_MEMBER_PENDING'
export const INVITE_TOPCODER_MEMBER_SUCCESS = 'INVITE_TOPCODER_MEMBER_SUCCESS'
export const INVITE_TOPCODER_MEMBER_FAILURE = 'INVITE_TOPCODER_MEMBER_FAILURE'
export const REMOVE_TOPCODER_MEMBER_INVITE = 'REMOVE_TOPCODER_MEMBER_INVITE'
export const REMOVE_TOPCODER_MEMBER_INVITE_PENDING = 'REMOVE_TOPCODER_MEMBER_INVITE_PENDING'
export const REMOVE_TOPCODER_MEMBER_INVITE_SUCCESS = 'REMOVE_TOPCODER_MEMBER_INVITE_SUCCESS'
export const REMOVE_TOPCODER_MEMBER_INVITE_FAILURE = 'REMOVE_TOPCODER_MEMBER_INVITE_FAILURE'
export const ACCEPT_OR_REFUSE_INVITE = 'ACCEPT_OR_REFUSE_INVITE'
export const ACCEPT_OR_REFUSE_INVITE_PENDING = 'ACCEPT_OR_REFUSE_INVITE_PENDING'
export const ACCEPT_OR_REFUSE_INVITE_FAILURE = 'ACCEPT_OR_REFUSE_INVITE_FAILURE'
export const ACCEPT_OR_REFUSE_INVITE_SUCCESS = 'ACCEPT_OR_REFUSE_INVITE_SUCCESS'
export const ADD_PROJECT_MEMBERS = 'ADD_PROJECT_MEMBERS'
export const ADD_PROJECT_MEMBERS_PENDING = 'ADD_PROJECT_MEMBERS_PENDING'
export const ADD_PROJECT_MEMBERS_SUCCESS = 'ADD_PROJECT_MEMBERS_SUCCESS'
export const ADD_PROJECT_MEMBERS_FAILURE = 'ADD_PROJECT_MEMBERS_FAILURE'
export const REMOVE_PROJECT_MEMBER = 'REMOVE_PROJECT_MEMBER'
export const REMOVE_PROJECT_MEMBER_PENDING = 'REMOVE_PROJECT_MEMBER_PENDING'
export const REMOVE_PROJECT_MEMBER_SUCCESS = 'REMOVE_PROJECT_MEMBER_SUCCESS'
export const REMOVE_PROJECT_MEMBER_FAILURE = 'REMOVE_PROJECT_MEMBER_FAILURE'
export const UPDATE_PROJECT_MEMBER = 'UPDATE_PROJECT_MEMBER'
export const UPDATE_PROJECT_MEMBER_PENDING = 'UPDATE_PROJECT_MEMBER_PENDING'
export const UPDATE_PROJECT_MEMBER_SUCCESS = 'UPDATE_PROJECT_MEMBER_SUCCESS'
export const UPDATE_PROJECT_MEMBER_FAILURE = 'UPDATE_PROJECT_MEMBER_FAILURE'
export const CLEAR_LOADED_PROJECT = 'CLEAR_LOADED_PROJECT'
export const LOAD_PROJECT_MEMBERS = 'LOAD_PROJECT_MEMBERS'
export const LOAD_PROJECT_MEMBERS_PENDING = 'LOAD_PROJECT_MEMBERS_PENDING'
export const LOAD_PROJECT_MEMBERS_SUCCESS = 'LOAD_PROJECT_MEMBERS_SUCCESS'
export const LOAD_PROJECT_MEMBERS_FAILURE = 'LOAD_PROJECT_MEMBERS_FAILURE'
export const LOAD_PROJECT_MEMBER_INVITES = 'LOAD_PROJECT_MEMBER_INVITES'
export const LOAD_PROJECT_MEMBER_INVITES_PENDING = 'LOAD_PROJECT_MEMBER_INVITES_PENDING'
export const LOAD_PROJECT_MEMBER_INVITES_SUCCESS = 'LOAD_PROJECT_MEMBER_INVITES_SUCCESS'
export const LOAD_PROJECT_MEMBER_INVITES_FAILURE = 'LOAD_PROJECT_MEMBER_INVITES_FAILURE'
export const LOAD_PROJECT_MEMBER = 'LOAD_PROJECT_MEMBER'
export const LOAD_PROJECT_MEMBER_PENDING = 'LOAD_PROJECT_MEMBER_PENDING'
export const LOAD_PROJECT_MEMBER_SUCCESS = 'LOAD_PROJECT_MEMBER_SUCCESS'
export const LOAD_PROJECT_MEMBER_FAILURE = 'LOAD_PROJECT_MEMBER_FAILURE'
// Project attachments
export const ADD_PROJECT_ATTACHMENT = 'ADD_PROJECT_ATTACHMENT'
export const DISCARD_PROJECT_ATTACHMENT = 'DISCARD_PROJECT_ATTACHMENT'
export const UPLOAD_PROJECT_ATTACHMENT_FILES = 'UPLOAD_PROJECT_ATTACHMENT_FILES'
export const CHANGE_ATTACHMENT_PERMISSION = 'CHANGE_ATTACHMENT_PERMISSION'
export const ADD_PROJECT_ATTACHMENT_PENDING = 'ADD_PROJECT_ATTACHMENT_PENDING'
export const ADD_PROJECT_ATTACHMENT_SUCCESS = 'ADD_PROJECT_ATTACHMENT_SUCCESS'
export const ADD_PROJECT_ATTACHMENT_FAILURE = 'ADD_PROJECT_ATTACHMENT_FAILURE'
export const REMOVE_PROJECT_ATTACHMENT = 'REMOVE_PROJECT_ATTACHMENT'
export const REMOVE_PROJECT_ATTACHMENT_PENDING = 'REMOVE_PROJECT_ATTACHMENT_PENDING'
export const REMOVE_PROJECT_ATTACHMENT_SUCCESS = 'REMOVE_PROJECT_ATTACHMENT_SUCCESS'
export const REMOVE_PROJECT_ATTACHMENT_FAILURE = 'REMOVE_PROJECT_ATTACHMENT_FAILURE'
export const UPDATE_PROJECT_ATTACHMENT = 'UPDATE_PROJECT_ATTACHMENT'
export const UPDATE_PROJECT_ATTACHMENT_PENDING = 'UPDATE_PROJECT_ATTACHMENT_PENDING'
export const UPDATE_PROJECT_ATTACHMENT_SUCCESS = 'UPDATE_PROJECT_ATTACHMENT_SUCCESS'
export const UPDATE_PROJECT_ATTACHMENT_FAILURE = 'UPDATE_PROJECT_ATTACHMENT_FAILURE'
export const REMOVE_PENDING_ATTACHMENT = 'REMOVE_PENDING_ATTACHMENT'
export const UPDATE_PENDING_ATTACHMENT = 'UPDATE_PENDING_ATTACHMENT'
// Product attachments
export const ADD_PRODUCT_ATTACHMENT = 'ADD_PRODUCT_ATTACHMENT'
export const ADD_PRODUCT_ATTACHMENT_PENDING = 'ADD_PRODUCT_ATTACHMENT_PENDING'
export const ADD_PRODUCT_ATTACHMENT_SUCCESS = 'ADD_PRODUCT_ATTACHMENT_SUCCESS'
export const ADD_PRODUCT_ATTACHMENT_FAILURE = 'ADD_PRODUCT_ATTACHMENT_FAILURE'
export const REMOVE_PRODUCT_ATTACHMENT = 'REMOVE_PRODUCT_ATTACHMENT'
export const REMOVE_PRODUCT_ATTACHMENT_PENDING = 'REMOVE_PRODUCT_ATTACHMENT_PENDING'
export const REMOVE_PRODUCT_ATTACHMENT_SUCCESS = 'REMOVE_PRODUCT_ATTACHMENT_SUCCESS'
export const REMOVE_PRODUCT_ATTACHMENT_FAILURE = 'REMOVE_PRODUCT_ATTACHMENT_FAILURE'
export const UPDATE_PRODUCT_ATTACHMENT = 'UPDATE_PRODUCT_ATTACHMENT'
export const UPDATE_PRODUCT_ATTACHMENT_PENDING = 'UPDATE_PRODUCT_ATTACHMENT_PENDING'
export const UPDATE_PRODUCT_ATTACHMENT_SUCCESS = 'UPDATE_PRODUCT_ATTACHMENT_SUCCESS'
export const UPDATE_PRODUCT_ATTACHMENT_FAILURE = 'UPDATE_PRODUCT_ATTACHMENT_FAILURE'
// Templates
export const LOAD_PROJECTS_METADATA = 'LOAD_PROJECTS_METADATA'
export const LOAD_PROJECTS_METADATA_PENDING = 'LOAD_PROJECTS_METADATA_PENDING'
export const LOAD_PROJECTS_METADATA_SUCCESS = 'LOAD_PROJECTS_METADATA_SUCCESS'
export const LOAD_PROJECTS_METADATA_FAILURE = 'LOAD_PROJECTS_METADATA_FAILURE'
export const ADD_PROJECTS_METADATA = 'ADD_PROJECT_METADATA'
export const ADD_PROJECTS_METADATA_PENDING = 'ADD_PROJECT_METADATA_PENDING'
export const ADD_PROJECTS_METADATA_SUCCESS = 'ADD_PROJECT_METADATA_SUCCESS'
export const ADD_PROJECTS_METADATA_FAILURE = 'ADD_PROJECT_METADATA_FAILURE'
export const CREATE_PROJECT_TEMPLATE = 'CREATE_PROJECT_TEMPLATE'
export const CREATE_PROJECT_TEMPLATE_PENDING = 'CREATE_PROJECT_TEMPLATE_PENDING'
export const CREATE_PROJECT_TEMPLATE_SUCCESS = 'CREATE_PROJECT_TEMPLATE_SUCCESS'
export const CREATE_PROJECT_TEMPLATE_FAILURE = 'CREATE_PROJECT_TEMPLATE_FAILURE'
export const CREATE_PRODUCT_TEMPLATE = 'CREATE_PRODUCT_TEMPLATE'
export const CREATE_PRODUCT_TEMPLATE_PENDING = 'CREATE_PRODUCT_TEMPLATE_PENDING'
export const CREATE_PRODUCT_TEMPLATE_SUCCESS = 'CREATE_PRODUCT_TEMPLATE_SUCCESS'
export const CREATE_PRODUCT_TEMPLATE_FAILURE = 'CREATE_PRODUCT_TEMPLATE_FAILURE'
export const CREATE_PROJECT_TYPE = 'CREATE_PROJECT_TYPE'
export const CREATE_PROJECT_TYPE_PENDING = 'CREATE_PROJECT_TYPE_PENDING'
export const CREATE_PROJECT_TYPE_SUCCESS = 'CREATE_PROJECT_TYPE_SUCCESS'
export const CREATE_PROJECT_TYPE_FAILURE = 'CREATE_PROJECT_TYPE_FAILURE'
export const CREATE_FORM = 'CREATE_FORM'
export const CREATE_FORM_PENDING = 'CREATE_FORM_PENDING'
export const CREATE_FORM_SUCCESS = 'CREATE_FORM_SUCCESS'
export const CREATE_FORM_FAILURE = 'CREATE_FORM_FAILURE'
export const CREATE_PLAN_CONFIG = 'CREATE_PLAN_CONFIG'
export const CREATE_PLAN_CONFIG_PENDING = 'CREATE_PLAN_CONFIG_PENDING'
export const CREATE_PLAN_CONFIG_SUCCESS = 'CREATE_PLAN_CONFIG_SUCCESS'
export const CREATE_PLAN_CONFIG_FAILURE = 'CREATE_PLAN_CONFIG_FAILURE'
export const CREATE_PRICE_CONFIG = 'CREATE_PRICE_CONFIG'
export const CREATE_PRICE_CONFIG_PENDING = 'CREATE_PRICE_CONFIG_PENDING'
export const CREATE_PRICE_CONFIG_SUCCESS = 'CREATE_PRICE_CONFIG_SUCCESS'
export const CREATE_PRICE_CONFIG_FAILURE = 'CREATE_PRICE_CONFIG_FAILURE'
export const LOAD_VERSION_OPTION_LIST = 'LOAD_VERSION_OPTION_LIST'
export const LOAD_VERSION_OPTION_LIST_PENDING = 'LOAD_VERSION_OPTION_LIST_PENDING'
export const LOAD_VERSION_OPTION_LIST_SUCCESS = 'LOAD_VERSION_OPTION_LIST_SUCCESS'
export const LOAD_PROJECTS_METADATA_REVISION_LIST = 'LOAD_PROJECTS_METADATA_REVISION_LIST'
export const LOAD_PROJECTS_METADATA_REVISION_LIST_PENDING = 'LOAD_PROJECTS_METADATA_REVISION_LIST_PENDING'
export const LOAD_PROJECTS_METADATA_REVISION_LIST_SUCCESS = 'LOAD_PROJECTS_METADATA_REVISION_LIST_SUCCESS'
export const LOAD_PROJECT_METADATA_WITH_VERSION = 'LOAD_PROJECT_METADATA_WITH_VERSION'
export const LOAD_PROJECT_METADATA_WITH_VERSION_PENDING = 'LOAD_PROJECT_METADATA_WITH_VERSION_PENDING'
export const LOAD_PROJECT_METADATA_WITH_VERSION_SUCCESS = 'LOAD_PROJECT_METADATA_WITH_VERSION_SUCCESS'
export const CREATE_MILESTONE_TEMPLATE = 'CREATE_MILESTONE_TEMPLATE'
export const CREATE_MILESTONE_TEMPLATE_PENDING = 'CREATE_MILESTONE_TEMPLATE_PENDING'
export const CREATE_MILESTONE_TEMPLATE_SUCCESS = 'CREATE_MILESTONE_TEMPLATE_SUCCESS'
export const CREATE_MILESTONE_TEMPLATE_FAILURE = 'CREATE_MILESTONE_TEMPLATE_FAILURE'
export const CREATE_PRODUCT_CATEGORY = 'CREATE_PRODUCT_CATEGORY'
export const CREATE_PRODUCT_CATEGORY_PENDING = 'CREATE_PRODUCT_CATEGORY_PENDING'
export const CREATE_PRODUCT_CATEGORY_SUCCESS = 'CREATE_PRODUCT_CATEGORY_SUCCESS'
export const CREATE_PRODUCT_CATEGORY_FAILURE = 'CREATE_PRODUCT_CATEGORY_FAILURE'
export const UPDATE_PROJECTS_METADATA = 'UPDATE_PROJECT_METADATA'
export const UPDATE_PROJECTS_METADATA_PENDING = 'UPDATE_PROJECT_METADATA_PENDING'
export const UPDATE_PROJECTS_METADATA_SUCCESS = 'UPDATE_PROJECT_METADATA_SUCCESS'
export const UPDATE_PROJECTS_METADATA_FAILURE = 'UPDATE_PROJECT_METADATA_FAILURE'
export const REMOVE_PROJECTS_METADATA = 'REMOVE_PROJECT_METADATA'
export const REMOVE_PROJECTS_METADATA_PENDING = 'REMOVE_PROJECT_METADATA_PENDING'
export const REMOVE_PROJECTS_METADATA_SUCCESS = 'REMOVE_PROJECT_METADATA_SUCCESS'
export const REMOVE_PROJECTS_METADATA_FAILURE = 'REMOVE_PROJECT_METADATA_FAILURE'
export const REMOVE_PRODUCT_TEMPLATE = 'REMOVE_PRODUCT_TEMPLATE'
export const REMOVE_PRODUCT_TEMPLATE_PENDING = 'REMOVE_PRODUCT_TEMPLATE_PENDING'
export const REMOVE_PRODUCT_TEMPLATE_SUCCESS = 'REMOVE_PRODUCT_TEMPLATE_SUCCESS'
export const REMOVE_PRODUCT_TEMPLATE_FAILURE = 'REMOVE_PRODUCT_TEMPLATE_FAILURE'
export const REMOVE_PRODUCT_CATEGORY = 'REMOVE_PRODUCT_CATEGORY'
export const REMOVE_PRODUCT_CATEGORY_PENDING = 'REMOVE_PRODUCT_CATEGORY_PENDING'
export const REMOVE_PRODUCT_CATEGORY_SUCCESS = 'REMOVE_PRODUCT_CATEGORY_SUCCESS'
export const REMOVE_PRODUCT_CATEGORY_FAILURE = 'REMOVE_PRODUCT_CATEGORY_FAILURE'
export const REMOVE_PROJECT_TEMPLATE = 'REMOVE_PROJECT_TEMPLATE'
export const REMOVE_PROJECT_TEMPLATE_PENDING = 'REMOVE_PROJECT_TEMPLATE_PENDING'
export const REMOVE_PROJECT_TEMPLATE_SUCCESS = 'REMOVE_PROJECT_TEMPLATE_SUCCESS'
export const REMOVE_PROJECT_TEMPLATE_FAILURE = 'REMOVE_PROJECT_TEMPLATE_FAILURE'
export const REMOVE_PROJECT_TYPE = 'REMOVE_PROJECT_TYPE'
export const REMOVE_PROJECT_TYPE_PENDING = 'REMOVE_PROJECT_TYPE_PENDING'
export const REMOVE_PROJECT_TYPE_SUCCESS = 'REMOVE_PROJECT_TYPE_SUCCESS'
export const REMOVE_PROJECT_TYPE_FAILURE = 'REMOVE_PROJECT_TYPE_FAILURE'
export const PROJECT_TEMPLATES_SORT = 'PROJECT_TEMPLATES_SORT'
export const PRODUCT_TEMPLATES_SORT = 'PRODUCT_TEMPLATES_SORT'
export const PROJECT_TYPES_SORT = 'PROJECT_TYPES_SORT'
export const FORM_SORT = 'FORM_SORT'
export const PLAN_CONFIG_SORT = 'PLAN_CONFIG_SORT'
export const PRICE_CONFIG_SORT = 'PRICE_CONFIG_SORT'
export const PRODUCT_CATEGORIES_SORT = 'PRODUCT_CATEGORIES_SORT'
export const MILESTONE_TEMPLATES_SORT = 'MILESTONE_TEMPLATES_SORT'
export const THREAD_MESSAGES_PAGE_SIZE = 3
/*
* Project status
*/
export const PROJECT_STATUS_DRAFT = 'draft'
export const PROJECT_STATUS_IN_REVIEW = 'in_review'
export const PROJECT_STATUS_REVIEWED = 'reviewed'
export const PROJECT_STATUS_ACTIVE = 'active'
export const PROJECT_STATUS_COMPLETED = 'completed'
export const PROJECT_STATUS_CANCELLED = 'cancelled'
export const PROJECT_STATUS_PAUSED = 'paused'
/*
* Scope change request status
*/
export const SCOPE_CHANGE_REQ_STATUS_PENDING = 'pending'
export const SCOPE_CHANGE_REQ_STATUS_APPROVED = 'approved'
export const SCOPE_CHANGE_REQ_STATUS_REJECTED = 'rejected'
export const SCOPE_CHANGE_REQ_STATUS_ACTIVATED = 'activated'
export const SCOPE_CHANGE_REQ_STATUS_CANCELED = 'canceled'
/*
* Project Attachment types
*/
export const ATTACHMENT_TYPE_FILE = 'file'
export const ATTACHMENT_TYPE_LINK = 'link'
export const PHASE_STATUS_DRAFT = 'draft'
export const PHASE_STATUS_IN_REVIEW = 'in_review'
export const PHASE_STATUS_REVIEWED = 'reviewed'
export const PHASE_STATUS_ACTIVE = 'active'
export const PHASE_STATUS_COMPLETED = 'completed'
export const PHASE_STATUS_CANCELLED = 'cancelled'
export const PHASE_STATUS_PAUSED = 'paused'
export const PHASE_APPROVAL_APPROVE = 'approve'
export const PHASE_APPROVAL_REJECT = 'reject'
export const PROJECT_STATUS = [
// {color: 'gray', name: 'Draft', fullName: 'Project is in draft', value: PROJECT_STATUS_DRAFT, order: 2, dropDownOrder: 1 },
{color: 'gray', name: 'In review', fullName: 'Project is in review', value: PROJECT_STATUS_IN_REVIEW, order: 3, dropDownOrder: 2, isSpecial: true },
{color: 'gray', name: 'Reviewed', fullName: 'Project is reviewed', value: PROJECT_STATUS_REVIEWED, order: 4, dropDownOrder: 3, isSpecial: true },
{color: 'green', name: 'Active', fullName: 'Project is active', value: PROJECT_STATUS_ACTIVE, order: 1, dropDownOrder: 4, isSpecial: false },
{color: 'black', name: 'Completed', fullName: 'Project is completed', value: PROJECT_STATUS_COMPLETED, order: 5, dropDownOrder: 5, isSpecial: false },
{color: 'black', name: 'Cancelled', fullName: 'Project is canceled', value: PROJECT_STATUS_CANCELLED, order: 6, dropDownOrder: 6, isSpecial: true },
{color: 'red', name: 'Paused', fullName: 'Project is paused', value: PROJECT_STATUS_PAUSED, order: 7, dropDownOrder: 7, isSpecial: true }
]
export const PHASE_STATUS = [
{color: 'gray', name: 'Draft', fullName: 'Phase is in draft', value: PHASE_STATUS_DRAFT, order: 2, dropDownOrder: 1 },
// {color: 'gray', name: 'In review', fullName: 'Phase is in review', value: PHASE_STATUS_IN_REVIEW, order: 3, dropDownOrder: 2 },
{color: 'gray', name: 'Planned', fullName: 'Phase is reviewed', value: PHASE_STATUS_REVIEWED, order: 4, dropDownOrder: 3 },
{color: 'green', name: 'Published', fullName: 'Phase is active', value: PHASE_STATUS_ACTIVE, order: 1, dropDownOrder: 4 },
{color: 'black', name: 'Completed', fullName: 'Phase is completed', value: PHASE_STATUS_COMPLETED, order: 5, dropDownOrder: 5 },
// {color: 'black', name: 'Cancelled', fullName: 'Phase is canceled', value: PHASE_STATUS_CANCELLED, order: 6, dropDownOrder: 6 },
// {color: 'red', name: 'Paused', fullName: 'Phase is paused', value: PHASE_STATUS_PAUSED, order: 7, dropDownOrder: 7 }
]
export const PHASE_STATUS_OPTIONS = [
{ label: 'Draft', value: PHASE_STATUS_DRAFT },
{ label: 'In Review', value: PHASE_STATUS_IN_REVIEW },
{ label: 'Reviewed', value: PHASE_STATUS_REVIEWED },
{ label: 'Active', value: PHASE_STATUS_ACTIVE },
{ label: 'Completed', value: PHASE_STATUS_COMPLETED },
{ label: 'Cancelled', value: PHASE_STATUS_CANCELLED },
{ label: 'Paused', value: PHASE_STATUS_PAUSED },
]
// this defines default criteria to filter projects for projects list
export const PROJECT_LIST_DEFAULT_CRITERIA = {
sort: 'lastActivityAt desc'
}
export const NOTIFICATION_TYPE = {
WARNING: 'warning',
NEW_PROJECT: 'new-project',
UPDATES: 'updates',
NEW_POSTS: 'new-posts',
REVIEW_PENDING: 'review-pending',
MEMBER_ADDED: 'member-added'
}
/*
* Project member invite status
*/
export const PROJECT_MEMBER_INVITE_STATUS_ACCEPTED = 'accepted'
export const PROJECT_MEMBER_INVITE_STATUS_REFUSED = 'refused'
export const PROJECT_MEMBER_INVITE_STATUS_CANCELED = 'canceled'
export const PROJECT_MEMBER_INVITE_STATUS_PENDING = 'pending'
export const PROJECT_MEMBER_INVITE_STATUS_REQUESTED = 'requested'
export const PROJECT_MEMBER_INVITE_STATUS_REQUEST_APPROVED = 'request_approved'
export const PROJECT_MEMBER_INVITE_STATUS_REQUEST_REJECTED = 'request_rejected'
// projects list view types
export const PROJECTS_LIST_VIEW = {
GRID: 'grid',
CARD: 'card'
}
/*
* Project member role
*/
export const PROJECT_ROLE_COPILOT = 'copilot'
export const PROJECT_ROLE_MANAGER = 'manager'
export const PROJECT_ROLE_ACCOUNT_MANAGER = 'account_manager'
export const PROJECT_ROLE_CUSTOMER = 'customer'
export const PROJECT_ROLE_OWNER = 'owner'
export const PROJECT_ROLE_MEMBER = 'member' // this is need for notifications
export const PROJECT_ROLE_ACCOUNT_EXECUTIVE = 'account_executive'
export const PROJECT_ROLE_PROGRAM_MANAGER = 'program_manager'
export const PROJECT_ROLE_SOLUTION_ARCHITECT = 'solution_architect'
export const PROJECT_ROLE_PROJECT_MANAGER = 'project_manager'
/*
* Events
*/
export const EVENT_ROUTE_CHANGE = 'event.route_change'
/*
* User Roles
*/
export const ROLE_TOPCODER_USER = 'Topcoder User'
export const ROLE_CONNECT_COPILOT = 'Connect Copilot'
export const ROLE_CONNECT_MANAGER = 'Connect Manager'
export const ROLE_CONNECT_ACCOUNT_MANAGER = 'Connect Account Manager'
export const ROLE_CONNECT_ADMIN = 'Connect Admin'
export const ROLE_ADMINISTRATOR = 'administrator'
export const ROLE_CONNECT_COPILOT_MANAGER = 'Connect Copilot Manager'
export const ROLE_BUSINESS_DEVELOPMENT_REPRESENTATIVE = 'Business Development Representative'
export const ROLE_PRESALES = 'Presales'
export const ROLE_ACCOUNT_EXECUTIVE = 'Account Executive'
export const ROLE_PROGRAM_MANAGER = 'Program Manager'
export const ROLE_SOLUTION_ARCHITECT = 'Solution Architect'
export const ROLE_PROJECT_MANAGER = 'Project Manager'
export const ADMIN_ROLES = [ROLE_ADMINISTRATOR, ROLE_CONNECT_ADMIN]
export const MANAGER_ROLES = [
...ADMIN_ROLES,
ROLE_CONNECT_MANAGER,
ROLE_CONNECT_ACCOUNT_MANAGER,
ROLE_CONNECT_COPILOT_MANAGER,
ROLE_BUSINESS_DEVELOPMENT_REPRESENTATIVE,
ROLE_PRESALES,
ROLE_ACCOUNT_EXECUTIVE,
ROLE_PROGRAM_MANAGER,
ROLE_SOLUTION_ARCHITECT,
ROLE_PROJECT_MANAGER,
]
/**
* Is user has any of these roles, it means such a user is not a customer.
*/
export const NON_CUSTOMER_ROLES = [
ROLE_CONNECT_COPILOT,
ROLE_CONNECT_MANAGER,
ROLE_CONNECT_ACCOUNT_MANAGER,
ROLE_CONNECT_ADMIN,
ROLE_ADMINISTRATOR,
ROLE_CONNECT_COPILOT_MANAGER,
ROLE_BUSINESS_DEVELOPMENT_REPRESENTATIVE,
ROLE_PRESALES,
ROLE_ACCOUNT_EXECUTIVE,
ROLE_PROGRAM_MANAGER,
ROLE_SOLUTION_ARCHITECT,
ROLE_PROJECT_MANAGER,
]
// to be able to start the Connect App we should pass at least the dummy value for `FILE_PICKER_API_KEY`
// but if we want to test file uploading we should provide the real value in `FILE_PICKER_API_KEY` env variable
export const FILE_PICKER_API_KEY = process.env.FILE_PICKER_API_KEY || 'DUMMY'
// FIXME .. remove defaults
export const FILE_PICKER_SUBMISSION_CONTAINER_NAME = process.env.FILE_PICKER_SUBMISSION_CONTAINER_NAME || 'submission-staging-dev'
export const FILE_PICKER_CNAME = process.env.FILE_PICKER_CNAME || 'fs.topcoder.com'
export const FILE_PICKER_FROM_SOURCES = process.env.FILE_PICKER_FROM_SOURCES || ['local_file_system', 'googledrive', 'dropbox']
export const PROJECT_ATTACHMENTS_FOLDER = process.env.PROJECT_ATTACHMENTS_FOLDER || 'PROJECT_ATTACHMENTS'
export const FILE_PICKER_ACCEPT = process.env.FILE_PICKER_ACCEPT || ['.bmp', '.gif', '.jpg', '.tex', '.xls', '.xlsx', '.doc', '.docx', '.zip', '.txt', '.pdf', '.png', '.ppt', '.pptx', '.rtf', '.csv']
export const SEGMENT_KEY = process.env.CONNECT_SEGMENT_KEY
export const CHALLENGE_ID_MAPPING = 'challengeGuid'
/*
* URLs
*/
export const DOMAIN = process.env.domain || 'topcoder.com'
export const CONNECT_DOMAIN = `connect.${DOMAIN}`
export const CONNECT_MAIN_PAGE_URL = `https://connect.${DOMAIN}`
export const ACCOUNTS_APP_CONNECTOR_URL = process.env.ACCOUNTS_APP_CONNECTOR_URL
export const ACCOUNTS_APP_LOGIN_URL = process.env.ACCOUNTS_APP_LOGIN_URL || `https://accounts-auth0.${DOMAIN}`
export const ACCOUNTS_APP_REGISTER_URL = process.env.ACCOUNTS_APP_REGISTER_URL || `https://accounts-auth0.${DOMAIN}`
export const TC_API_URL = `https://api.${DOMAIN}`
export const DIRECT_PROJECT_URL = `https://www.${DOMAIN}/direct/projectOverview?formData.projectId=`
export const WORK_MANAGER_APP = `https://challenges.${DOMAIN}/projects`
export const CHALLENGE_DETAIL_APP = `https://www.${DOMAIN}/challenges`
export const SALESFORCE_PROJECT_LEAD_LINK = process.env.SALESFORCE_PROJECT_LEAD_LINK
export const SALESFORCE_BILLING_ACCOUNT_LINK = process.env.SALESFORCE_BILLING_ACCOUNT_LINK
export const TC_NOTIFICATION_URL = process.env.TC_NOTIFICATION_URL || `${TC_API_URL}/v5/notifications`
// Uncomment if you run TC Notifications locally
// export const TC_NOTIFICATION_URL = 'http://localstho:4000/v5/notifications'
export const TC_CDN_URL = process.env.TC_CDN_URL || `https://community-app.${DOMAIN}/api/cdn/public`
export const TYPEFORM_URL = process.env.TYPEFORM_URL || 'https://topcoder.typeform.com/to/vgqiBXdk'
export const RESET_PASSWORD_URL = `https://accounts.${DOMAIN}/member/reset-password`
export const VERIFY_EMAIL_URL = `http://www.${DOMAIN}/settings/account/changeEmail`
export const TOPCODER_CONNECT_TERMS_URL = `https://connect.${DOMAIN}/terms`
export const PROJECT_NAME_MAX_LENGTH = 255
export const PROJECT_REF_CODE_MAX_LENGTH = 32
export const BUSINESS_UNIT_MAX_LENGTH = 20
export const COST_CENTRE_MAX_LENGTH = 20
export const PROJECT_FEED_TYPE_PRIMARY = 'PRIMARY'
export const PROJECT_FEED_TYPE_MESSAGES = 'MESSAGES'
export const DISCOURSE_BOT_USERID = 'system'
export const CODER_BOT_USERID = 'CoderBot'
export const TC_SYSTEM_USERID = parseInt(process.env.TC_SYSTEM_USERID || '0', 10)
export const CODER_BOT_USER_FNAME = 'Coder'
export const CODER_BOT_USER_LNAME = 'the Bot'
export const CONNECT_USER_HANDLE = 'connectuser'
export const CONNECT_USER_FNAME = 'Connect'
export const CONNECT_USER_LNAME = 'User'
export const CONNECT_USER = {
firstName: CONNECT_USER_FNAME,
lastName: CONNECT_USER_LNAME,
}
export const PROJECT_MAX_COLORS = 5
export const AUTOCOMPLETE_TRIGGER_LENGTH = 3
export const AUTOCOMPLETE_DEBOUNCE_TIME_MS = 150
// Toggle this flag to enable/disable maintenance mode
export const MAINTENANCE_MODE = process.env.MAINTENANCE_MODE
export const LS_INCOMPLETE_PROJECT = 'incompleteProject'
export const LS_INCOMPLETE_WIZARD = 'incompleteWizard'
export const LS_INCOMPLETE_PROJECT_QUERY_PARAMS = 'incompleteProjectQueryParams'
/**
* These query params are special during project creating wizard.
* They have some special code to handle them.
*/
export const SPECIAL_QUERY_PARAMS = ['returnUrl', 'refCode']
export const PROJECTS_API_URL = process.env.PROJECTS_API_URL || TC_API_URL
// for local testing Connect App with Project Service, comment the previous line and uncomment the next one
// export const PROJECTS_API_URL = 'http://localhost:8001'
export const CONNECT_MESSAGE_API_URL = process.env.CONNECT_MESSAGE_API_URL || TC_API_URL
export const NEW_PROJECT_PATH = '/new-project'
// Analytics constants
export const GA_CLICK_ID = '_gclid'
export const GA_CLIENT_ID = '_gacid'
// ToolTip
export const TOOLTIP_DEFAULT_DELAY = 300 // in ms
// Projects list
export const PROJECTS_LIST_PER_PAGE = 20
/*eslint-disable camelcase */
//Project type to icon name mapping
export const PROJECT_ICON_MAP = {
app: 'product-cat-app',
application_development: 'product-app-app',
website: 'product-cat-website',
website_development: 'product-website-website',
chatbot: 'product-cat-chatbot',
watson_chatbot: 'product-chatbot-watson',
generic_chatbot: 'product-chatbot-chatbot',
visual_design: 'product-cat-design',
wireframes: 'product-design-wireframes',
visual_design_concepts: 'product-design-app-visual',
visual_design_prod: 'product-design-app-visual',
infographic: 'product-design-infographic',
generic_design: 'product-design-other',
app_dev: 'product-cat-development',
visual_prototype: 'product-dev-prototype',
frontend_dev: 'product-dev-front-end-dev',
api_dev: 'product-dev-integration',
generic_dev: 'product-dev-other',
quality_assurance: 'product-cat-qa',
real_world_testing: 'product-qa-crowd-testing',
mobility_testing: 'product-qa-mobility-testing',
performance_testing: 'product-qa-website-performance',
digital_accessability: 'product-qa-digital-accessability',
open_source_automation: 'product-qa-os-automation',
consulting_adivisory: 'product-qa-consulting'
}
/*eslint-enable */
//Project sort options
export const SORT_OPTIONS = [
//{ val: 'updatedAt desc', field: 'updatedAt' },
{ val: 'lastActivityAt desc', field: 'lastActivityAt' },
{ val: 'createdAt', field: 'createdAt' },
{ val: 'createdAt desc', field: 'createdAt' }
]
// map project date field to corresponding user field
export const DATE_TO_USER_FIELD_MAP = {
createdAt: 'createdBy',
//updatedAt: 'updatedBy',
lastActivityAt: 'lastActivityUserId',
}
// Notifications
export const REFRESH_NOTIFICATIONS_INTERVAL = 1000 * 60 * 1 // 1 minute interval
export const NOTIFICATIONS_DROPDOWN_PER_SOURCE = 5
export const NOTIFICATIONS_NEW_PER_SOURCE = 10
export const NOTIFICATIONS_LIMIT = 1000
export const SUPER_TEST_COOKIE_TAG = 'super-test'
// 60px of primary toolbar height + 50px of secondary toolbar height + 10px to make some margin
export const SCROLL_TO_MARGIN = 60 + 50 + 10
export const SCROLL_TO_DURATION = 500 // ms
// Settings
export const MAX_USERNAME_LENGTH = 15
export const EMAIL_AVAILABILITY_CHECK_DEBOUNCE = 300 /* in ms */
export const PASSWORD_MIN_LENGTH = 8
export const PASSWORD_REG_EXP = /^(?=.*[a-z])(?=.*[^a-z]).+$/i
// Screen breakpoints
export const SCREEN_BREAKPOINT_LG = 1360
export const SCREEN_BREAKPOINT_RG = 992
export const SCREEN_BREAKPOINT_MD = 768
export const SCREEN_BREAKPOINT_SM = 640
export const SCREEN_BREAKPOINT_XS = 320
export const NOTIFICATION_SETTINGS_PERIODS = [
{ text: 'Off', value: 'off' },
{ text: 'Immediately', value: 'immediately' },
// { text: 'Hourly', value: 'hourly' },
{ text: 'Daily', value: 'daily' },
// { text: 'Weekly', value: 'weekly' },
{ text: 'Every other day', value: 'everyOtherDay' },
]
if (getCookie(SUPER_TEST_COOKIE_TAG) !== undefined) {
NOTIFICATION_SETTINGS_PERIODS.push({ text: 'Every 10 minutes', value: 'every10minutes' })
}
// date time formats
export const POST_TIME_FORMAT = 'h:mm a'
// max time difference between consecutive posts to bundle posts by same user
export const POSTS_BUNDLE_TIME_DIFF = 1000 * 60 * 10 // 10 min difference
// possible statuses of milestones
export const MILESTONE_STATUS = {
UNPLANNED: 'in_review',
PLANNED: 'reviewed',
ACTIVE: 'active',
BLOCKED: 'paused',
COMPLETED: 'completed',
CANCELLED: 'cancelled'
}
export const MILESTONE_STATUS_TEXT = [
{status: 'reviewed', textValue: 'plannedText' },
{status: 'active', textValue: 'activeText' },
{status: 'paused', textValue: 'blockedText' },
{status: 'completed', textValue: 'completedText' }
]
// minimum designs to select during checkpoint type milestone
export const MIN_CHECKPOINT_REVIEW_DESIGNS = 5
// minimum winner designs to select during final-designs milestone
export const MIN_WINNER_DESIGNS = 2
// default additional desgin cost to select during final-designs milestone
export const DEFAULT_ADDITIONAL_DESIGN_COST = 100
// the delay in milliseconds we are giving to ElasticSearch of Project Service to reindex changes
export const ES_REINDEX_DELAY = 5000
// project_catalog_url organization configuration name
export const PROJECT_CATALOG_URL = 'project_catalog_url'
// list of link types which are supported by milestones
export const MILESTONE_LINK_SUPPORTED_TYPES = [
{ title: 'Any', value: '' },
{ title: 'Document', value: 'document' },
{ title: 'Zipped file', value: 'zip' },
{ title: 'Marvel link', value: 'marvelapp' },
{ title: 'GitHub link', value: 'github' },
{ title: 'Heroku link', value: 'heroku' },
{ title: 'Invoice', value: 'invoice' }
]
// Notifications event types
export const EVENT_TYPE = {
POST: {
UPDATED: 'connect.notification.project.post.edited',
CREATED: 'connect.notification.project.post.created',
DELETED: 'connect.notification.project.post.deleted',
MENTION: 'connect.notification.project.post.mention',
},
MEMBER: {
JOINED: 'connect.notification.project.member.joined',
LEFT: 'connect.notification.project.member.left',
REMOVED: 'connect.notification.project.member.removed',
MANAGER_JOINED: 'connect.notification.project.member.managerJoined',
COPILOT_JOINED: 'connect.notification.project.member.copilotJoined',
ASSIGNED_AS_OWNER: 'connect.notification.project.member.assignedAsOwner',
INVITE_REQUESTED: 'connect.notification.project.member.invite.requested',
INVITE_APPROVED: 'connect.notification.project.member.invite.approved',
INVITE_REFUSED: 'connect.notification.project.member.invite.rejected',