diff --git a/client/src/app/main/dashboard/dashboard-edit-profile/dashboard-edit-profile-page.js b/client/src/app/main/dashboard/dashboard-edit-profile/dashboard-edit-profile-page.js index 3cfb7621..10c85f55 100644 --- a/client/src/app/main/dashboard/dashboard-edit-profile/dashboard-edit-profile-page.js +++ b/client/src/app/main/dashboard/dashboard-edit-profile/dashboard-edit-profile-page.js @@ -1,14 +1,121 @@ import React from 'react'; +import API from 'lib-app/api-call'; + +import Header from 'core-components/header'; +import Form from 'core-components/form'; +import FormField from 'core-components/form-field'; +import SubmitButton from 'core-components/submit-button'; +import ModalContainer from 'app/modal-container'; +import AreYouSure from 'app-components/are-you-sure'; +import Message from 'core-components/message'; +import i18n from 'lib-app/i18n'; + class DashboardEditProfilePage extends React.Component { + state= { + loadingEmail: false, + loadingPass: false, + messageEmail:'', + messagePass:'' + }; + + render() { return ( -
- DASHBOARD EDIT PROFILE +
+
+
Edit Email
+
+ + CHANGE EMAIL + {this.renderMessageEmail()} + +
Edit password
+
+ + + + CHANGE PASSWORD + {this.renderMessagePass()} +
); } + renderMessageEmail() { + switch (this.state.messageEmail) { + case 'success': + return {i18n('EMAIL_CHANGED')}; + case 'fail': + return {i18n('EMAIL_EXISTS')}; + default: + return null; + } + + } + renderMessagePass() { + switch (this.state.messagePass) { + case 'success': + return {i18n('PASSWORD_CHANGED')}; + case 'fail': + return {i18n('OLD_PASSWORD_INCORRECT')}; + default: + return null; + } + } + onSubmitEditEmail(formState) { + ModalContainer.openModal(); + } + + onSubmitEditPassword(formState) { + ModalContainer.openModal(); + } + + callEditEmailAPI(formState){ + this.setState({ + loadingEmail: true + }); + API.call({ + path: "/user/edit-email", + data: { + newEmail: formState.newEmail + } + }).then(function () { + this.setState({ + loadingEmail: false, + messageEmail: "success" + }); + }.bind(this)).catch(function (){ + this.setState({ + loadingEmail: false, + messageEmail: 'fail' + }) + }.bind(this)); + } + + callEditPassAPI(formState){ + this.setState({ + loadingPass: true + }); + API.call({ + path: "/user/edit-password", + data: { + oldPassword: formState.oldPassword, + newPassword: formState.password + } + }).then(function () { + this.setState({ + loadingPass: false, + messagePass: "success" + }); + }.bind(this)).catch(function (){ + this.setState({ + loadingPass: false, + messagePass: 'fail' + }) + }.bind(this)); + } + } export default DashboardEditProfilePage; diff --git a/client/src/app/main/dashboard/dashboard-edit-profile/dashboard-edit-profile-page.scss b/client/src/app/main/dashboard/dashboard-edit-profile/dashboard-edit-profile-page.scss new file mode 100644 index 00000000..d42e3ec5 --- /dev/null +++ b/client/src/app/main/dashboard/dashboard-edit-profile/dashboard-edit-profile-page.scss @@ -0,0 +1,13 @@ +@import '../../../../scss/vars'; + +.edit-profile-page { + &__title { + color: $dark-grey; + font-size: 20px; + text-align: left; + } + &__message{ + margin-top: 20px; + margin-bottom: 20px; + } +} \ No newline at end of file diff --git a/client/src/app/main/dashboard/dashboard-list-tickets/dashboard-list-tickets-page.js b/client/src/app/main/dashboard/dashboard-list-tickets/dashboard-list-tickets-page.js index f033fb93..e4ef056a 100644 --- a/client/src/app/main/dashboard/dashboard-list-tickets/dashboard-list-tickets-page.js +++ b/client/src/app/main/dashboard/dashboard-list-tickets/dashboard-list-tickets-page.js @@ -6,6 +6,7 @@ import i18n from 'lib-app/i18n'; import Header from 'core-components/header'; import Table from 'core-components/table'; import Button from 'core-components/button'; +import Tooltip from 'core-components/tooltip'; class DashboardListTicketsPage extends React.Component { static propTypes = { @@ -58,7 +59,11 @@ class DashboardListTicketsPage extends React.Component { let titleText = (ticket.unread) ? ticket.title + ' (1)' : ticket.title; return { - number: '#' + ticket.ticketNumber, + number: ( + + {'#' + ticket.ticketNumber} + + ), title: (