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 (
-
-
+
+