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 {
                             <FormField name="imap-host" label={i18n('IMAP_SERVER')} fieldProps={{size: 'large'}}/>
                             <FormField name="imap-user" label={i18n('IMAP_USER')} fieldProps={{size: 'large'}}/>
                             <FormField name="imap-pass" label={i18n('IMAP_PASSWORD')} fieldProps={{size: 'large'}}/>
-                            <FormField name="imap-token" label={i18n('IMAP_TOKEN')} infoMessage={i18n('IMAP_TOKEN_DESCRIPTION')} fieldProps={{size: 'large', icon: 'refresh', onIconClick: this.generateImapToken.bind(this)}}/>
+                            <FormField
+                                name="imap-token"
+                                label={i18n('IMAP_TOKEN')}
+                                infoMessage={i18n('IMAP_TOKEN_DESCRIPTION')}
+                                fieldProps={{size: 'large', icon: 'refresh', onIconClick: this.generateImapToken.bind(this)}}/>
                             <div className="admin-panel-email-settings__server-form-buttons">
                                 <SubmitButton className="admin-panel-email-settings__submit" type="secondary"
                                               size="small">{i18n('SAVE')}</SubmitButton>
@@ -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 (
-            <div className="admin-panel-custom-tags">
-                <Header title={i18n('CUSTOM_TAGS')} description={i18n('CUSTOM_TAGS_DESCRIPTION')} />
-                {this.renderContent()}
-            </div>
-        );
-    }
-
-    renderContent() {
-        return (
-            <div className="admin-panel-custom-tags__content">
-                <div>
-                    <Button onClick={this.openTagModal.bind(this)}  type="secondary">
-                        {i18n('ADD_CUSTOM_TAG')}<Icon className="admin-panel-custom-tags__add-button-icon" name="plus"/>
-                    </Button>
-                </div>
-                <div className="admin-panel-custom-tags__tag-list">
-                    {this.props.tags.map(this.renderTag.bind(this))}
-                </div>
-            </div>
-        );
-    }
-
-    renderTag(tag, index) {
-        return (
-            <div key={index} className="admin-panel-custom-tags__tag-container" >
-                <Tag color={tag.color} name={tag.name} onRemoveClick={this.onDeleteClick.bind(this, tag.id)} size='large' showDeleteButton />
-            </div>
-        )
-    }
-
-    openTagModal() {
-        ModalContainer.openModal(
-            <AdminPanelCustomTagsModal onTagCreated={this.retrieveCustomTags.bind(this)}/>
-        );
-    }
-
-    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 (
-            <div className="admin-panel-all-tickets">
-                <div className="admin-panel-all-tickets__container">
+            <div className="admin-panel-search-tickets">
+                <div className="admin-panel-search-tickets__container">
                     <Header
-                        className="admin-panel-all-tickets__container__header"
+                        className="admin-panel-search-tickets__container__header"
                         title={listConfig.title !== undefined ? listConfig.title : i18n('SEARCH_TICKETS')}
                         description={i18n('SEARCH_TICKETS_DESCRIPTION')} />
                     <Button
-                        className="admin-panel-all-tickets__container__show-filters-button"
+                        className="admin-panel-search-tickets__container__show-filters-button"
                         size="auto"
                         type="tertiary"
                         onClick={this.onChangeShowFilters.bind(this)}>
diff --git a/client/src/app/admin/panel/tickets/admin-panel-search-tickets.scss b/client/src/app/admin/panel/tickets/admin-panel-search-tickets.scss
index 1d687b9c..137d4cf6 100644
--- a/client/src/app/admin/panel/tickets/admin-panel-search-tickets.scss
+++ b/client/src/app/admin/panel/tickets/admin-panel-search-tickets.scss
@@ -1,5 +1,5 @@
 
-.admin-panel-all-tickets {
+.admin-panel-search-tickets {
 
     &__container {
         display: flex;
diff --git a/client/src/app/main/dashboard/dashboard-list-articles/dashboard-list-articles-page.js b/client/src/app/main/dashboard/dashboard-list-articles/dashboard-list-articles-page.js
index 26f37ac4..052f30f5 100644
--- a/client/src/app/main/dashboard/dashboard-list-articles/dashboard-list-articles-page.js
+++ b/client/src/app/main/dashboard/dashboard-list-articles/dashboard-list-articles-page.js
@@ -142,7 +142,7 @@ export default connect((store) => {
     return {
         isLogged: store.session.logged,
         config: store.config,
-        topics: store.articles.topics,
+        topics: store.articles.topics.map((topic) => {return {...topic, private: topic.private === "1" ? true : false}}),
         loading: store.articles.loading
     };
 })(DashboardListArticlesPage);
diff --git a/client/src/core-components/autocomplete.js b/client/src/core-components/autocomplete.js
index 9118924e..61781ad5 100644
--- a/client/src/core-components/autocomplete.js
+++ b/client/src/core-components/autocomplete.js
@@ -106,7 +106,7 @@ class Autocomplete extends React.Component {
         if(items !== undefined) {
             const list = this.getUnselectedList(items, this.getSelectedItems());
 
-            dropdownList = list.filter(s => _.includes(s.name, this.state.inputValue));
+            dropdownList = list.filter(s => _.includes(s.name.toLowerCase(), this.state.inputValue.toLowerCase()));
         } else {
             dropdownList = this.getUnselectedList(this.state.itemsFromQuery, this.getSelectedItems());
         }
diff --git a/client/src/core-components/checkbox.js b/client/src/core-components/checkbox.js
index 10f3b625..2ec4d6ec 100644
--- a/client/src/core-components/checkbox.js
+++ b/client/src/core-components/checkbox.js
@@ -10,7 +10,7 @@ class CheckBox extends React.Component {
 
     static propTypes = {
         alignment: React.PropTypes.string,
-        label: React.PropTypes.string,
+        label: React.PropTypes.node,
         value: React.PropTypes.bool,
         wrapInLabel: React.PropTypes.bool,
         onChange: React.PropTypes.func
diff --git a/client/src/core-components/form-field.js b/client/src/core-components/form-field.js
index 2a6e4d50..2be23fbe 100644
--- a/client/src/core-components/form-field.js
+++ b/client/src/core-components/form-field.js
@@ -148,43 +148,53 @@ class FormField extends React.Component {
 
     getFieldProps() {
         const {
+            fieldProps,
             error,
             name,
+            placeholder,
             onBlur,
             required,
-            placeholder,
             field,
-            fieldProps,
-            value
+            value,
+            decorator
         } = this.props;
+
         let props = _.extend({}, fieldProps, {
             disabled: this.isDisabled(),
             errored: !!error,
-            name: name,
-            placeholder: placeholder,
+            name,
+            placeholder,
             key: 'nativeField',
             onChange: this.onChange.bind(this),
-            onBlur: onBlur,
+            onBlur,
             ref: 'nativeField',
-            required: required
+            required
         });
 
         if(field === 'select') {
             props.selectedIndex = value;
         }
-        if(field == 'date-range') {
+
+        if(decorator === 'textarea') {
+            delete props.errored;
+        }
+
+        if(field === 'date-range') {
             props.value = {
                 startDate: value[0],
                 endDate: value[1],
                 valid: false,
             };
         }
-        if(field == 'tag-selector') {
+        
+        if(field === 'tag-selector') {
             props.values = value;
         }
-        if(field == 'autocomplete') {
+        
+        if(field === 'autocomplete') {
             props.values = value;
         }
+        
         props.value = value;
 
         return props;
diff --git a/client/src/core-components/input.js b/client/src/core-components/input.js
index e33543a7..9fd679e7 100644
--- a/client/src/core-components/input.js
+++ b/client/src/core-components/input.js
@@ -59,6 +59,7 @@ class Input extends React.Component {
         delete props.inputType;
         delete props.errored;
         delete props.password;
+        delete props.onIconClick;
 
         return props;
     }