|
29 | 29 |
|
30 | 30 | var userHandle = UserService.getUserIdentity().handle;
|
31 | 31 |
|
| 32 | + var error = null; |
| 33 | + |
32 | 34 | return ChallengeService.getUserChallenges(userHandle, params)
|
33 | 35 | .then(function(challenge) {
|
34 |
| - challenge = challenge[0]; |
| 36 | + challenge = challenge[0].plain(); |
35 | 37 |
|
36 | 38 | if (!challenge) {
|
37 |
| - // TODO: There should be a challenge, redirect? |
38 |
| - alert('User is not associated with this challenge.'); |
| 39 | + setErrorMessage('challenge', 'This is not a valid challenge. Use your browser\'s back button to return.'); |
| 40 | + return { |
| 41 | + error: error, |
| 42 | + challenge: null |
| 43 | + }; |
39 | 44 | }
|
40 | 45 | var phaseType;
|
41 | 46 | var phaseId;
|
|
57 | 62 | return false;
|
58 | 63 | });
|
59 | 64 |
|
| 65 | + if (!isPhaseSubmission) { |
| 66 | + setErrorMessage('phase', 'Submission phases are not currently open for this challenge.') |
| 67 | + } |
| 68 | + |
60 | 69 | var isSubmitter = _.some(challenge.userDetails.roles, function(role) {
|
61 | 70 | return role === 'Submitter';
|
62 | 71 | });
|
63 | 72 |
|
64 |
| - if (!isPhaseSubmission || !isSubmitter) { |
65 |
| - // TODO: Where do we redirect if you can't submit? |
66 |
| - alert('You should not have access to this page'); |
| 73 | + if (!isSubmitter) { |
| 74 | + setErrorMessage('submitter', 'You do not have a submitter role for this challenge.') |
67 | 75 | }
|
68 | 76 |
|
69 | 77 | return {
|
| 78 | + error: error, |
70 | 79 | challenge: challenge,
|
71 | 80 | phaseType: phaseType,
|
72 | 81 | phaseId: phaseId
|
73 | 82 | };
|
74 | 83 | })
|
75 | 84 | .catch(function(err) {
|
76 |
| - console.log('ERROR GETTING CHALLENGE: ', err); |
77 |
| - alert('There was an error accessing this page'); |
78 |
| - // TODO: Where do we redirect if there is an error? |
| 85 | + setErrorMessage('challenge', 'There was an error getting information for this challenge.'); |
| 86 | + |
| 87 | + return { |
| 88 | + error: error, |
| 89 | + challenge: null |
| 90 | + }; |
79 | 91 | });
|
| 92 | + |
| 93 | + function setErrorMessage(type, message) { |
| 94 | + // Sets the error as the first error encountered |
| 95 | + if (!error) { |
| 96 | + error = { |
| 97 | + type: type, |
| 98 | + message: message |
| 99 | + }; |
| 100 | + } |
| 101 | + } |
80 | 102 | }]
|
81 | 103 | }
|
82 | 104 | },
|
|
85 | 107 | abstract: true,
|
86 | 108 | template: '<ui-view/>'
|
87 | 109 | },
|
| 110 | + 'submissions.file.error': { |
| 111 | + url: '', |
| 112 | + templateUrl: 'submissions/submission-error/submission-error.html', |
| 113 | + }, |
88 | 114 | 'submissions.file.design': {
|
89 | 115 | url:'',
|
90 | 116 | templateUrl: 'submissions/submit-design-files/submit-design-files.html',
|
|
96 | 122 | templateUrl: 'submissions/submit-develop-files/submit-develop-files.html',
|
97 | 123 | controller: 'SubmitDevelopFilesController',
|
98 | 124 | controllerAs: 'vm',
|
99 |
| - }, |
| 125 | + } |
100 | 126 | };
|
101 | 127 |
|
102 | 128 | for (var name in states) {
|
|
0 commit comments