diff --git a/client/src/app-components/articles-list.js b/client/src/app-components/articles-list.js index 586babc3..bcd138e8 100644 --- a/client/src/app-components/articles-list.js +++ b/client/src/app-components/articles-list.js @@ -89,7 +89,7 @@ class ArticlesList extends React.Component { export default connect((store) => { return { - topics: store.articles.topics, + topics: store.articles.topics.map((topic) => {return {...topic, private: topic.private === "1"}}), errored: store.articles.errored, loading: store.articles.loading }; diff --git a/client/src/app-components/ticket-viewer.js b/client/src/app-components/ticket-viewer.js index ee809c80..c48866d9 100644 --- a/client/src/app-components/ticket-viewer.js +++ b/client/src/app-components/ticket-viewer.js @@ -723,13 +723,13 @@ class TicketViewer extends React.Component { export default connect((store) => { return { - userId: store.session.userId, + userId: store.session.userId*1, userStaff: store.session.staff, userDepartments: store.session.userDepartments, staffMembers: store.adminData.staffMembers, staffMembersLoaded: store.adminData.staffMembersLoaded, allowAttachments: store.config['allow-attachments'], - userLevel: store.session.userLevel, + userLevel: store.session.userLevel*1, tags: store.config['tags'] }; })(TicketViewer); diff --git a/client/src/app/admin/panel/tickets/admin-panel-custom-tags-modal.js b/client/src/app/admin/panel/settings/admin-panel-custom-tags-modal.js similarity index 96% rename from client/src/app/admin/panel/tickets/admin-panel-custom-tags-modal.js rename to client/src/app/admin/panel/settings/admin-panel-custom-tags-modal.js index 9db3e6ed..4d06abef 100644 --- a/client/src/app/admin/panel/tickets/admin-panel-custom-tags-modal.js +++ b/client/src/app/admin/panel/settings/admin-panel-custom-tags-modal.js @@ -103,10 +103,7 @@ class AdminPanelCustomTagsModal extends React.Component { } }).then(() => { this.context.closeModal(); - this.setState({ - loading: false, - errors: {} - }); + if(this.props.onTagChange) { this.props.onTagChange(); } @@ -135,10 +132,6 @@ class AdminPanelCustomTagsModal extends React.Component { } }).then(() => { this.context.closeModal(); - this.setState({ - loading: false, - errors: {} - }); if(this.props.onTagCreated) { this.props.onTagCreated(); diff --git a/client/src/app/admin/panel/tickets/admin-panel-custom-tags-modal.scss b/client/src/app/admin/panel/settings/admin-panel-custom-tags-modal.scss similarity index 100% rename from client/src/app/admin/panel/tickets/admin-panel-custom-tags-modal.scss rename to client/src/app/admin/panel/settings/admin-panel-custom-tags-modal.scss diff --git a/client/src/app/admin/panel/settings/admin-panel-custom-tags.js b/client/src/app/admin/panel/settings/admin-panel-custom-tags.js index c74c5bb3..a51992f6 100644 --- a/client/src/app/admin/panel/settings/admin-panel-custom-tags.js +++ b/client/src/app/admin/panel/settings/admin-panel-custom-tags.js @@ -1,7 +1,7 @@ import React from 'react'; import {connect} from 'react-redux'; -import AdminPanelCustomTagsModal from 'app/admin/panel/tickets/admin-panel-custom-tags-modal'; +import AdminPanelCustomTagsModal from 'app/admin/panel/settings/admin-panel-custom-tags-modal'; import i18n from 'lib-app/i18n'; import API from 'lib-app/api-call'; @@ -97,6 +97,6 @@ class AdminPanelCustomTags extends React.Component { export default connect((store) => { return { - tags: store.config['tags'] + tags: store.config['tags'].map((tag) => {return {...tag, id: tag.id*1}}) }; })(AdminPanelCustomTags); diff --git a/client/src/app/admin/panel/settings/admin-panel-email-settings.js b/client/src/app/admin/panel/settings/admin-panel-email-settings.js index fa1d06fe..e46424d2 100644 --- a/client/src/app/admin/panel/settings/admin-panel-email-settings.js +++ b/client/src/app/admin/panel/settings/admin-panel-email-settings.js @@ -150,7 +150,11 @@ class AdminPanelEmailSettings extends React.Component { - +
{i18n('SAVE')} @@ -482,20 +486,20 @@ class AdminPanelEmailSettings extends React.Component { path: '/system/get-settings', data: {allSettings: 1} }).then(result => this.setState({ - headerImage: result.data['mail-template-header-image'], + headerImage: result.data['mail-template-header-image'] || '', emailForm: { - ['server-email']: result.data['server-email'], + ['server-email']: result.data['server-email'] || '', }, smtpForm: { - ['smtp-host']: result.data['smtp-host'], - ['smtp-user']: result.data['smtp-user'], + ['smtp-host']: result.data['smtp-host'] || '', + ['smtp-user']: result.data['smtp-user'] || '', ['smtp-pass']: 'HIDDEN', }, imapForm: { - ['imap-host']: result.data['imap-host'], - ['imap-user']: result.data['imap-user'], + ['imap-host']: result.data['imap-host'] || '', + ['imap-user']: result.data['imap-user'] || '', ['imap-pass']: 'HIDDEN', - ['imap-token']: result.data['imap-token'], + ['imap-token']: result.data['imap-token'] || '', }, })); } diff --git a/client/src/app/admin/panel/staff/admin-panel-departments.js b/client/src/app/admin/panel/staff/admin-panel-departments.js index 7b8ee5fb..6b71b253 100644 --- a/client/src/app/admin/panel/staff/admin-panel-departments.js +++ b/client/src/app/admin/panel/staff/admin-panel-departments.js @@ -204,12 +204,13 @@ class AdminPanelDepartments extends React.Component { const { form, errors, - formLoading - } = this.state + formLoading, + } = this.state; return { - values: form, + values: {...form, private: !!form.private}, errors: errors, + loading: formLoading, onChange: (form) => {this.setState({form, edited: true})}, onValidateErrors: (errors) => {this.setState({errors})}, onSubmit: this.onFormSubmit.bind(this), @@ -220,13 +221,15 @@ class AdminPanelDepartments extends React.Component { getDefaultDepartmentFormProps() { const { - formLoading + formLoading, + defaultDepartment, + defaultDepartmentLocked } = this.state; return { values: { - defaultDepartment: getPublicDepartmentIndexFromDepartmentId(this.state.defaultDepartment), - locked: this.state.defaultDepartmentLocked, + defaultDepartment: getPublicDepartmentIndexFromDepartmentId(defaultDepartment), + locked: defaultDepartmentLocked ? true : false, }, onChange: (formValue) => { this.setState({ diff --git a/client/src/app/admin/panel/staff/admin-panel-view-staff.js b/client/src/app/admin/panel/staff/admin-panel-view-staff.js index 69c3f670..ef0c9113 100644 --- a/client/src/app/admin/panel/staff/admin-panel-view-staff.js +++ b/client/src/app/admin/panel/staff/admin-panel-view-staff.js @@ -32,7 +32,14 @@ class AdminPanelViewStaff extends React.Component { } getProps() { - return _.extend({}, this.state.userData, { + const { userData } = this.state; + const userDataWithNumericLevel = { + ...userData, + level: userData.level*1, + sendEmailOnNewTicket: userData.sendEmailOnNewTicket === "1" + }; + + return _.extend({}, userDataWithNumericLevel, { staffId: this.props.params.staffId * 1, onDelete: this.onDelete.bind(this), onChange: this.retrieveStaff.bind(this) diff --git a/client/src/app/admin/panel/tickets/admin-panel-custom-tags.js b/client/src/app/admin/panel/tickets/admin-panel-custom-tags.js deleted file mode 100644 index 79676a70..00000000 --- a/client/src/app/admin/panel/tickets/admin-panel-custom-tags.js +++ /dev/null @@ -1,96 +0,0 @@ -import React from 'react'; -import {connect} from 'react-redux'; - -import AdminPanelCustomTagsModal from 'app/admin/panel/tickets/admin-panel-custom-tags-modal'; - -import i18n from 'lib-app/i18n'; -import API from 'lib-app/api-call'; -import ConfigActions from 'actions/config-actions'; - -import AreYouSure from 'app-components/are-you-sure'; -import ModalContainer from 'app-components/modal-container'; - -import Icon from 'core-components/icon'; -import Button from 'core-components/button'; -import Header from 'core-components/header'; -import Tag from 'core-components/tag'; - -class AdminPanelCustomTags extends React.Component { - static propTypes = { - tags: React.PropTypes.arrayOf( - React.PropTypes.shape({ - name: React.PropTypes.string, - color: React.PropTypes.string, - id: React.PropTypes.number - }) - ), - }; - - componentDidMount() { - this.retrieveCustomTags(); - } - - render() { - return ( -
-
- {this.renderContent()} -
- ); - } - - renderContent() { - return ( -
-
- -
-
- {this.props.tags.map(this.renderTag.bind(this))} -
-
- ); - } - - renderTag(tag, index) { - return ( -
- -
- ) - } - - openTagModal() { - ModalContainer.openModal( - - ); - } - - onDeleteClick(tagId, event) { - event.preventDefault(); - AreYouSure.openModal(i18n('WILL_DELETE_CUSTOM_RESPONSE'), this.deleteCustomTag.bind(this, tagId)); - } - - deleteCustomTag(tagId) { - API.call({ - path: '/ticket/delete-tag', - data: { - tagId, - } - }).then(() => { - this.retrieveCustomTags() - }); - } - - retrieveCustomTags() { - this.props.dispatch(ConfigActions.updateData()); - } -} - -export default connect((store) => { - return { - tags: store.config['tags'] - }; -})(AdminPanelCustomTags); diff --git a/client/src/app/admin/panel/tickets/admin-panel-custom-tags.scss b/client/src/app/admin/panel/tickets/admin-panel-custom-tags.scss deleted file mode 100644 index d8d8b51c..00000000 --- a/client/src/app/admin/panel/tickets/admin-panel-custom-tags.scss +++ /dev/null @@ -1,18 +0,0 @@ -.admin-panel-custom-tags { - - &__content { - text-align: left; - } - - &__add-button-icon{ - margin-left: 5px; - } - - &__tag-list{ - margin-top: 15px; - } - - &__tag-container{ - margin-top:5px ; - } -} diff --git a/client/src/app/admin/panel/tickets/admin-panel-search-tickets.js b/client/src/app/admin/panel/tickets/admin-panel-search-tickets.js index ca356ff3..5f27efba 100644 --- a/client/src/app/admin/panel/tickets/admin-panel-search-tickets.js +++ b/client/src/app/admin/panel/tickets/admin-panel-search-tickets.js @@ -55,14 +55,14 @@ class AdminPanelSearchTickets extends React.Component { render() { const { listConfig } = this.props; return ( -
-
+
+