diff --git a/src/actions/challenges.js b/src/actions/challenges.js
index 7c7e3d66..943cc558 100644
--- a/src/actions/challenges.js
+++ b/src/actions/challenges.js
@@ -88,7 +88,7 @@ export function loadChallengesByPage (page, projectId, status, filterChallengeNa
}
if (selfService) {
filters.selfService = true
- if (userHandle && filters.status.toUpperCase() !== CHALLENGE_STATUS.DRAFT) {
+ if (userHandle && filters.status.toUpperCase() !== CHALLENGE_STATUS.DRAFT && filters.status.toUpperCase() !== CHALLENGE_STATUS.NEW) {
filters.selfServiceCopilot = userHandle
}
}
diff --git a/src/components/ChallengeEditor/Description-Field/index.js b/src/components/ChallengeEditor/Description-Field/index.js
index 0b3c187c..2bdb4235 100644
--- a/src/components/ChallengeEditor/Description-Field/index.js
+++ b/src/components/ChallengeEditor/Description-Field/index.js
@@ -42,7 +42,13 @@ class DescriptionField extends Component {
}
})
} else {
- this.ref.current.innerHTML = challenge[type] ? marked(challenge[type]) : ''
+ if (challenge.legacy.selfService) {
+ const regex = new RegExp('{{[a-zA-Z0-9.]+}}', 'g')
+ const newDescription = challenge[type] ? challenge[type].replace(regex, 'MISSING DATA FROM INTAKE FORM') : ''
+ this.ref.current.innerHTML = marked(newDescription)
+ } else {
+ this.ref.current.innerHTML = challenge[type] ? marked(challenge[type]) : ''
+ }
}
}
diff --git a/src/components/ChallengeEditor/index.js b/src/components/ChallengeEditor/index.js
index 1f0b67ba..405239a8 100644
--- a/src/components/ChallengeEditor/index.js
+++ b/src/components/ChallengeEditor/index.js
@@ -1605,7 +1605,7 @@ class ChallengeEditor extends Component {
)}
-
Public specification *
+
Public specification*
Access specification templates here
diff --git a/src/components/ChallengesComponent/ChallengeList/index.js b/src/components/ChallengesComponent/ChallengeList/index.js
index e739e1d1..88634a4a 100644
--- a/src/components/ChallengesComponent/ChallengeList/index.js
+++ b/src/components/ChallengesComponent/ChallengeList/index.js
@@ -20,6 +20,7 @@ import Message from '../Message'
import {
CHALLENGE_STATUS
} from '../../../config/constants'
+import { checkAdmin } from '../../../util/tc'
require('bootstrap/scss/bootstrap.scss')
@@ -105,6 +106,9 @@ class ChallengeList extends Component {
}
getHandle () {
+ if (checkAdmin(this.props.auth.token)) {
+ return null
+ }
return this.props.auth && this.props.auth.user ? this.props.auth.user.handle : null
}
@@ -130,9 +134,11 @@ class ChallengeList extends Component {
let selectedTab = 0
switch (status) {
case CHALLENGE_STATUS.APPROVED:
- case CHALLENGE_STATUS.NEW:
selectedTab = 1
break
+ case CHALLENGE_STATUS.NEW:
+ selectedTab = selfService ? 3 : 1
+ break
case CHALLENGE_STATUS.DRAFT:
selectedTab = 2
break
@@ -194,7 +200,8 @@ class ChallengeList extends Component {
break
}
case 3: {
- this.directUpdateSearchParam(searchText, CHALLENGE_STATUS.COMPLETED)
+ const status = selfService ? CHALLENGE_STATUS.NEW : CHALLENGE_STATUS.COMPLETED
+ this.directUpdateSearchParam(searchText, status)
break
}
case 4: {
@@ -203,12 +210,18 @@ class ChallengeList extends Component {
}
}
}}>
+ {
+ selfService &&
Total Challenges: {totalChallenges}
+ }
{(selfService ? 'Assigned challenges' : 'Active')}
{(selfService ? 'Approved' : 'New')}
{this.getStatusTextFunc(selfService)(CHALLENGE_STATUS.DRAFT)}
{(!selfService && Completed)}
{(!selfService && Cancelled)}
+ {
+ selfService && checkAdmin(this.props.auth.token) && Draft
+ }
diff --git a/src/containers/Challenges/index.js b/src/containers/Challenges/index.js
index 929403cb..df479e4c 100644
--- a/src/containers/Challenges/index.js
+++ b/src/containers/Challenges/index.js
@@ -15,6 +15,7 @@ import { loadProject } from '../../actions/projects'
import { loadProjects, setActiveProject, resetSidebarActiveParams } from '../../actions/sidebar'
import { CHALLENGE_STATUS } from '../../config/constants'
import styles from './Challenges.module.scss'
+import { checkAdmin } from '../../util/tc'
class Challenges extends Component {
constructor (props) {
@@ -48,7 +49,8 @@ class Challenges extends Component {
reloadChallenges (props) {
const { activeProjectId, projectDetail: reduxProjectInfo, projectId, challengeProjectId, loadProject, selfService } = props
if (activeProjectId !== challengeProjectId || selfService) {
- this.props.loadChallengesByPage(1, projectId ? parseInt(projectId) : -1, CHALLENGE_STATUS.ACTIVE, '', selfService)
+ const isAdmin = checkAdmin(this.props.auth.token)
+ this.props.loadChallengesByPage(1, projectId ? parseInt(projectId) : -1, CHALLENGE_STATUS.ACTIVE, '', selfService, isAdmin ? null : this.props.auth.user.handle)
if (!selfService && (!reduxProjectInfo || `${reduxProjectInfo.id}` !== projectId)
) {
loadProject(projectId)
@@ -68,6 +70,7 @@ class Challenges extends Component {
}
render () {
+ console.log('im here', this.props.auth)
const {
challenges,
isLoading,
@@ -103,23 +106,27 @@ class Challenges extends Component {
return (
-
-
- this.updateProjectName(e.target.value)}
- value={searchProjectName}
- />
-
-
-
+ {
+ !selfService && (
+
+
+ this.updateProjectName(e.target.value)}
+ value={searchProjectName}
+ />
+
+
+
+ )
+ }
{
activeProjectId === -1 && !selfService &&
No project selected. Select one below
}