From cb7885f5d9abe8b8906ee535b34bee778a9ee3ff Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 26 Dec 2016 01:07:40 -0300 Subject: [PATCH] Ivan - Add messages to staff editor [skip ci] --- .../src/app/admin/panel/staff/staff-editor.js | 50 ++++++++++++++++--- .../app/admin/panel/staff/staff-editor.scss | 4 ++ client/src/data/languages/en.js | 5 +- 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/client/src/app/admin/panel/staff/staff-editor.js b/client/src/app/admin/panel/staff/staff-editor.js index 4a8905a7..c8b663cf 100644 --- a/client/src/app/admin/panel/staff/staff-editor.js +++ b/client/src/app/admin/panel/staff/staff-editor.js @@ -9,6 +9,7 @@ import TicketList from 'app-components/ticket-list'; import Form from 'core-components/form'; import FormField from 'core-components/form-field'; import SubmitButton from 'core-components/submit-button'; +import Message from 'core-components/message'; class StaffEditor extends React.Component { static propTypes = { @@ -26,12 +27,14 @@ class StaffEditor extends React.Component { state = { email: this.props.email, level: this.props.level - 1, + message: null, departments: this.getUserDepartments() }; render() { return (
+ {(this.state.message) ? this.renderMessage() : null}
@@ -67,12 +70,12 @@ class StaffEditor extends React.Component {
-
this.setState({email: form.email})} onSubmit={this.onSubmit.bind(this)}> + this.setState({email: form.email})} onSubmit={this.onSubmit.bind(this, 'EMAIL')}> {i18n('UPDATE_EMAIL')} -
+ {i18n('UPDATE_PASSWORD')} @@ -100,11 +103,36 @@ class StaffEditor extends React.Component { ); } + renderMessage() { + let messageType = (this.state.message === 'FAIL') ? 'error' : 'success'; + let message = null; + + switch (this.state.message) { + case 'EMAIL': + message = 'EMAIL_CHANGED'; + break; + case 'PASSWORD': + message = 'PASSWORD_CHANGED'; + break; + case 'LEVEL': + message = 'LEVEL_UPDATED'; + break; + case 'DEPARTMENTS': + message = 'DEPARTMENTS_UPDATED'; + break; + case 'FAIL': + message = 'FAILED_EDIT_STAFF'; + break; + } + + return {i18n(message)}; + } + renderLevelForm() { return (
- this.setState({level: form.level})} onSubmit={this.onSubmit.bind(this)}> + this.setState({level: form.level})} onSubmit={this.onSubmit.bind(this, 'LEVEL')}> this.setState({departments: form.departments})} onSubmit={this.onSubmit.bind(this)}> + this.setState({departments: form.departments})} onSubmit={this.onSubmit.bind(this, 'DEPARTMENTS')}> {i18n('UPDATE_DEPARTMENTS')} @@ -171,7 +199,7 @@ class StaffEditor extends React.Component { return SessionStore.getDepartments().map(department => department.name); } - onSubmit(form) { + onSubmit(eventType, form) { let departments; if(form.departments) { @@ -189,7 +217,17 @@ class StaffEditor extends React.Component { level: (form.level !== undefined) ? form.level + 1 : null, departments: departments && JSON.stringify(departments) } - }).then(this.props.onChange); + }).then((result) => { + window.scrollTo(0,0); + this.setState({message: eventType}); + + if(this.props.onChange) { + this.props.onChange(); + } + }).catch((result) => { + window.scrollTo(0,0); + this.setState({message: 'FAIL'}); + }); } } diff --git a/client/src/app/admin/panel/staff/staff-editor.scss b/client/src/app/admin/panel/staff/staff-editor.scss index 43883a9d..7c070a7c 100644 --- a/client/src/app/admin/panel/staff/staff-editor.scss +++ b/client/src/app/admin/panel/staff/staff-editor.scss @@ -122,4 +122,8 @@ &__separator { margin: 3px 0; } + + &__message { + margin-bottom: 20px; + } } \ No newline at end of file diff --git a/client/src/data/languages/en.js b/client/src/data/languages/en.js index 7ab3af00..3b6b6d54 100644 --- a/client/src/data/languages/en.js +++ b/client/src/data/languages/en.js @@ -179,5 +179,8 @@ export default { 'WILL_LOSE_CHANGES': 'You haven\'t save. Your changes will be lost.', 'WILL_DELETE_CUSTOM_RESPONSE': 'The custom response will be deleted.', 'WILL_DELETE_DEPARTMENT': 'The department will be deleted. All the tickets will be transfer to the department selected.', - 'NO_STAFF_ASSIGNED': 'No staff member is assigned to this department.' + 'NO_STAFF_ASSIGNED': 'No staff member is assigned to this department.', + 'LEVEL_UPDATED': 'Level has been updated successfully.', + 'DEPARTMENTS_UPDATED': 'Departments have been updated successfully.', + 'FAILED_EDIT_STAFF': 'An error occurred while trying to edit staff member.' };