Skip to content

Commit 5835f12

Browse files
marioskranitsasThomasKranitsas
authored andcommitted
Updates on Self-Service dashboard
1 parent f78bd0e commit 5835f12

File tree

5 files changed

+49
-23
lines changed

5 files changed

+49
-23
lines changed

src/actions/challenges.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export function loadChallengesByPage (page, projectId, status, filterChallengeNa
8888
}
8989
if (selfService) {
9090
filters.selfService = true
91-
if (userHandle && filters.status.toUpperCase() !== CHALLENGE_STATUS.DRAFT) {
91+
if (userHandle && filters.status.toUpperCase() !== CHALLENGE_STATUS.DRAFT && filters.status.toUpperCase() !== CHALLENGE_STATUS.NEW) {
9292
filters.selfServiceCopilot = userHandle
9393
}
9494
}

src/components/ChallengeEditor/Description-Field/index.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@ class DescriptionField extends Component {
4242
}
4343
})
4444
} else {
45-
this.ref.current.innerHTML = challenge[type] ? marked(challenge[type]) : ''
45+
if (challenge.legacy.selfService) {
46+
const regex = new RegExp('{{[a-zA-Z0-9.]+}}', 'g')
47+
const newDescription = challenge[type] ? challenge[type].replace(regex, '<span style="color:red">MISSING DATA FROM INTAKE FORM</span>') : ''
48+
this.ref.current.innerHTML = marked(newDescription)
49+
} else {
50+
this.ref.current.innerHTML = challenge[type] ? marked(challenge[type]) : ''
51+
}
4652
}
4753
}
4854

src/components/ChallengeEditor/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1605,7 +1605,7 @@ class ChallengeEditor extends Component {
16051605
)}
16061606
</div>
16071607
<div className={styles.group}>
1608-
<div className={styles.title}>Public specification <span>*</span></div>
1608+
<div className={styles.title}>Public specification<span>*</span></div>
16091609
<div className={styles.templateLink}>
16101610
<i>Access specification templates <a href='https://github.com/topcoder-platform-templates/specification-templates' target='_blank'>here</a></i>
16111611
</div>

src/components/ChallengesComponent/ChallengeList/index.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import Message from '../Message'
2020
import {
2121
CHALLENGE_STATUS
2222
} from '../../../config/constants'
23+
import { checkAdmin } from '../../../util/tc'
2324

2425
require('bootstrap/scss/bootstrap.scss')
2526

@@ -105,6 +106,9 @@ class ChallengeList extends Component {
105106
}
106107

107108
getHandle () {
109+
if (checkAdmin(this.props.auth.token)) {
110+
return null
111+
}
108112
return this.props.auth && this.props.auth.user ? this.props.auth.user.handle : null
109113
}
110114

@@ -130,9 +134,11 @@ class ChallengeList extends Component {
130134
let selectedTab = 0
131135
switch (status) {
132136
case CHALLENGE_STATUS.APPROVED:
133-
case CHALLENGE_STATUS.NEW:
134137
selectedTab = 1
135138
break
139+
case CHALLENGE_STATUS.NEW:
140+
selectedTab = selfService ? 3 : 1
141+
break
136142
case CHALLENGE_STATUS.DRAFT:
137143
selectedTab = 2
138144
break
@@ -194,7 +200,8 @@ class ChallengeList extends Component {
194200
break
195201
}
196202
case 3: {
197-
this.directUpdateSearchParam(searchText, CHALLENGE_STATUS.COMPLETED)
203+
const status = selfService ? CHALLENGE_STATUS.NEW : CHALLENGE_STATUS.COMPLETED
204+
this.directUpdateSearchParam(searchText, status)
198205
break
199206
}
200207
case 4: {
@@ -203,12 +210,18 @@ class ChallengeList extends Component {
203210
}
204211
}
205212
}}>
213+
{
214+
selfService && <h4>Total Challenges: {totalChallenges}</h4>
215+
}
206216
<TabList>
207217
<Tab>{(selfService ? 'Assigned challenges' : 'Active')}</Tab>
208218
<Tab>{(selfService ? 'Approved' : 'New')}</Tab>
209219
<Tab>{this.getStatusTextFunc(selfService)(CHALLENGE_STATUS.DRAFT)}</Tab>
210220
{(!selfService && <Tab>Completed</Tab>)}
211221
{(!selfService && <Tab>Cancelled</Tab>)}
222+
{
223+
selfService && checkAdmin(this.props.auth.token) && <Tab>Draft</Tab>
224+
}
212225
</TabList>
213226
<TabPanel />
214227
<TabPanel />

src/containers/Challenges/index.js

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { loadProject } from '../../actions/projects'
1515
import { loadProjects, setActiveProject, resetSidebarActiveParams } from '../../actions/sidebar'
1616
import { CHALLENGE_STATUS } from '../../config/constants'
1717
import styles from './Challenges.module.scss'
18+
import { checkAdmin } from '../../util/tc'
1819

1920
class Challenges extends Component {
2021
constructor (props) {
@@ -48,7 +49,8 @@ class Challenges extends Component {
4849
reloadChallenges (props) {
4950
const { activeProjectId, projectDetail: reduxProjectInfo, projectId, challengeProjectId, loadProject, selfService } = props
5051
if (activeProjectId !== challengeProjectId || selfService) {
51-
this.props.loadChallengesByPage(1, projectId ? parseInt(projectId) : -1, CHALLENGE_STATUS.ACTIVE, '', selfService)
52+
const isAdmin = checkAdmin(this.props.auth.token)
53+
this.props.loadChallengesByPage(1, projectId ? parseInt(projectId) : -1, CHALLENGE_STATUS.ACTIVE, '', selfService, isAdmin ? null : this.props.auth.user.handle)
5254
if (!selfService && (!reduxProjectInfo || `${reduxProjectInfo.id}` !== projectId)
5355
) {
5456
loadProject(projectId)
@@ -68,6 +70,7 @@ class Challenges extends Component {
6870
}
6971

7072
render () {
73+
console.log('im here', this.props.auth)
7174
const {
7275
challenges,
7376
isLoading,
@@ -103,23 +106,27 @@ class Challenges extends Component {
103106
return (
104107
<Fragment>
105108
<div className={styles.projectSearch}>
106-
<div className={styles.projectSearchHeader}>
107-
<label>Switch Project</label>
108-
<DebounceInput
109-
minLength={2}
110-
debounceTimeout={300}
111-
placeholder='Search projects (Enter project id or project title in double quotes or any text from project)'
112-
onChange={(e) => this.updateProjectName(e.target.value)}
113-
value={searchProjectName}
114-
/>
115-
<input
116-
type='checkbox'
117-
label='My Projects'
118-
checked={onlyMyProjects}
119-
onChange={this.toggleMyProjects}
120-
/>
121-
<label>My Projects</label>
122-
</div>
109+
{
110+
!selfService && (
111+
<div className={styles.projectSearchHeader}>
112+
<label>Switch Project</label>
113+
<DebounceInput
114+
minLength={2}
115+
debounceTimeout={300}
116+
placeholder='Search projects (Enter project id or project title in double quotes or any text from project)'
117+
onChange={(e) => this.updateProjectName(e.target.value)}
118+
value={searchProjectName}
119+
/>
120+
<input
121+
type='checkbox'
122+
label='My Projects'
123+
checked={onlyMyProjects}
124+
onChange={this.toggleMyProjects}
125+
/>
126+
<label>My Projects</label>
127+
</div>
128+
)
129+
}
123130
{
124131
activeProjectId === -1 && !selfService && <div>No project selected. Select one below</div>
125132
}

0 commit comments

Comments
 (0)