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
+
+
Edit password
+
);
}
+ 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: (