diff --git a/src/api/projectMemberInvites.js b/src/api/projectMemberInvites.js index f6250d44a..660c0c8bc 100644 --- a/src/api/projectMemberInvites.js +++ b/src/api/projectMemberInvites.js @@ -22,7 +22,8 @@ export function updateProjectMemberInvite(projectId, member) { * @return {object} project member invite returned by api */ export function createProjectMemberInvite(projectId, member) { - const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/invite/` + const fields = 'id,projectId,userId,email,role,status,createdAt,updatedAt,createdBy,updatedBy,handle,firstName,lastName,photoURL' + const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/invite/?fields=` + encodeURIComponent(fields) return axios({ method: 'post', url, @@ -38,6 +39,16 @@ export function createProjectMemberInvite(projectId, member) { }) } +export function getProjectMemberInvites(projectId) { + const fields = 'id,projectId,userId,email,role,status,createdAt,updatedAt,createdBy,updatedBy,handle,firstName,lastName,photoURL' + const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/invites/?fields=` + + encodeURIComponent(fields) + return axios.get(url) + .then( resp => { + return resp.data.result.content + }) +} + /** * Get a project member invite based on project's id * @param {integer} projectId unique identifier of the project diff --git a/src/api/projectMembers.js b/src/api/projectMembers.js index 9c1bbc0ca..9eed57488 100644 --- a/src/api/projectMembers.js +++ b/src/api/projectMembers.js @@ -51,7 +51,9 @@ export function addProjectMember(projectId, newMember) { export function updateProjectMember(projectId, memberId, updatedProps) { - const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/${memberId}/` + const fields = 'id,userId,role,isPrimary,deletedAt,createdAt,updatedAt,deletedBy,createdBy,updatedBy,handle,firstName,lastName,photoURL,workingHourStart,workingHourEnd,timeZone' + const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/${memberId}/?fields=` + + encodeURIComponent(fields) return axios.patch(url, { param: updatedProps }) .then(resp => { return resp.data.result.content @@ -66,3 +68,23 @@ export function removeProjectMember(projectId, memberId) { return memberId }) } + +export function getProjectMembers(projectId) { + const fields = 'id,userId,role,isPrimary,deletedAt,createdAt,updatedAt,deletedBy,createdBy,updatedBy,handle,firstName,lastName,photoURL,workingHourStart,workingHourEnd,timeZone' + const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/?fields=` + + encodeURIComponent(fields) + return axios.get(url) + .then( resp => { + return resp.data.result.content + }) +} + +export function getProjectMember(projectId, memberId) { + const fields = 'id,userId,role,isPrimary,deletedAt,createdAt,updatedAt,deletedBy,createdBy,updatedBy,handle,firstName,lastName,photoURL,workingHourStart,workingHourEnd,timeZone' + const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/${memberId}?fields=` + + encodeURIComponent(fields) + return axios.get(url) + .then( resp => { + return resp.data.result.content + }) +} \ No newline at end of file diff --git a/src/api/templates.js b/src/api/templates.js index e883989bb..a5e87ea6e 100644 --- a/src/api/templates.js +++ b/src/api/templates.js @@ -93,13 +93,19 @@ export function updateProjectsMetadata(metadataId, type, data) { return axios.patch(`${PROJECTS_API_URL}/v4/projects/metadata/${type}/${key}/versions/${version}`, { param: tmpdata }) - .then(resp => _.get(resp.data, 'result.content', {})) + .then(resp => { + const versionMetadata = _.get(resp.data, 'result.content', {}) + return { type, versionMetadata } + }) } else { const path = type !== 'milestoneTemplates' ? 'projects' : 'timelines' return axios.patch(`${PROJECTS_API_URL}/v4/${path}/metadata/${type}/${metadataId}`, { param: data }) - .then(resp => _.get(resp.data, 'result.content', {})) + .then(resp => { + const metadata = _.get(resp.data, 'result.content', {}) + return { type, metadata } + }) } } diff --git a/src/assets/icons/daylight.svg b/src/assets/icons/daylight.svg new file mode 100644 index 000000000..f2f3a5171 --- /dev/null +++ b/src/assets/icons/daylight.svg @@ -0,0 +1,13 @@ + + + + daylight + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/moon.svg b/src/assets/icons/moon.svg new file mode 100644 index 000000000..12cc3e46f --- /dev/null +++ b/src/assets/icons/moon.svg @@ -0,0 +1,13 @@ + + + + moon + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/src/components/AuthenticatedComponent.jsx b/src/components/AuthenticatedComponent.jsx index 620b27f0c..bc615d97a 100644 --- a/src/components/AuthenticatedComponent.jsx +++ b/src/components/AuthenticatedComponent.jsx @@ -22,8 +22,8 @@ export function requiresAuthentication(Component) { this.setState({isLoggedIn: true}) }).catch((error) => { console.log(error) - // FIXME should we include hash, search etc - const redirectBackToUrl = window.location.origin + this.props.location.pathname + // we have to to redirect to the same page, so we use the whole URL + const redirectBackToUrl = encodeURIComponent(window.location.href) const newLocation = ACCOUNTS_APP_LOGIN_URL + '?retUrl=' + redirectBackToUrl console.log('redirecting... ', newLocation) window.location = newLocation diff --git a/src/components/ProjectStatus/editableProjectStatus.js b/src/components/ProjectStatus/editableProjectStatus.js index 339956bed..68347116b 100644 --- a/src/components/ProjectStatus/editableProjectStatus.js +++ b/src/components/ProjectStatus/editableProjectStatus.js @@ -10,7 +10,8 @@ import { PROJECT_STATUS_ACTIVE, PROJECT_STATUS_COMPLETED, PROJECT_STATUS_CANCELLED, - TOOLTIP_DEFAULT_DELAY + TOOLTIP_DEFAULT_DELAY, + PROJECT_STATUS_DRAFT } from '../../config/constants' import CarretDownNormal9px from '../../assets/icons/arrow-9px-carret-down-normal.svg' @@ -63,7 +64,7 @@ const hocStatusDropdown = (CompositeComponent, statusList, projectCanBeActive) =
Project Status