diff --git a/app/controllers/api/v1/accounts/contacts_controller.rb b/app/controllers/api/v1/accounts/contacts_controller.rb index c1e90d957..d476c744c 100644 --- a/app/controllers/api/v1/accounts/contacts_controller.rb +++ b/app/controllers/api/v1/accounts/contacts_controller.rb @@ -7,16 +7,14 @@ class Api::V1::Accounts::ContactsController < Api::V1::Accounts::BaseController before_action :fetch_contact, only: [:show, :update] def index - contacts = Current.account.contacts.where.not(email: [nil, '']).or(Current.account.contacts.where.not(phone_number: [nil, ''])) - @contacts_count = contacts.count - @contacts = fetch_contact_last_seen_at(contacts) + @contacts_count = resolved_contacts.count + @contacts = fetch_contact_last_seen_at(resolved_contacts) end def search render json: { error: 'Specify search string with parameter q' }, status: :unprocessable_entity if params[:q].blank? && return - contacts = Current.account.contacts.where.not(email: [nil, '']).or(Current.account.contacts.where.not(phone_number: [nil, ''])) - .where('name LIKE :search OR email LIKE :search', search: "%#{params[:q]}%") + contacts = resolved_contacts.where('name LIKE :search OR email LIKE :search', search: "%#{params[:q]}%") @contacts_count = contacts.count @contacts = fetch_contact_last_seen_at(contacts) end @@ -53,6 +51,13 @@ class Api::V1::Accounts::ContactsController < Api::V1::Accounts::BaseController private + def resolved_contacts + @resolved_contacts ||= Current.account.contacts + .where.not(email: [nil, '']) + .or(Current.account.contacts.where.not(phone_number: [nil, ''])) + .order('LOWER(name)') + end + def set_current_page @current_page = params[:page] || 1 end diff --git a/app/javascript/dashboard/components/layout/Sidebar.vue b/app/javascript/dashboard/components/layout/Sidebar.vue index 77b12d9f8..1357ff104 100644 --- a/app/javascript/dashboard/components/layout/Sidebar.vue +++ b/app/javascript/dashboard/components/layout/Sidebar.vue @@ -286,6 +286,7 @@ export default { }, }, mounted() { + this.$store.dispatch('labels/get'); this.$store.dispatch('inboxes/get'); }, methods: { diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json index 3dab6ac0b..684a56ee5 100644 --- a/app/javascript/dashboard/i18n/locale/en/contact.json +++ b/app/javascript/dashboard/i18n/locale/en/contact.json @@ -108,8 +108,7 @@ "Phone Number", "Conversations", "Last Contacted" - ], - "EDIT_BUTTON": "Edit" + ] } } } diff --git a/app/javascript/dashboard/i18n/locale/en/contactsPage.json b/app/javascript/dashboard/i18n/locale/en/contactsPage.json deleted file mode 100644 index e8345a3e2..000000000 --- a/app/javascript/dashboard/i18n/locale/en/contactsPage.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "CONTACTS_PAGE": { - "HEADER": "Contacts", - "SEARCH_BUTTON": "Search", - "SEARCH_INPUT_PLACEHOLDER": "Search for contacts", - "LIST": { - "404": "There are no canned responses available in this account.", - "TITLE": "Manage canned responses", - "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to tickets.", - "TABLE_HEADER": [ - "Name", - "Phone Number", - "Conversations", - "Last Contacted" - ], - "EDIT_BUTTON": "Edit", - "VIEW_BUTTON": "View" - - } - } -} diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json index b1363f2aa..adab59092 100644 --- a/app/javascript/dashboard/i18n/locale/en/settings.json +++ b/app/javascript/dashboard/i18n/locale/en/settings.json @@ -121,7 +121,7 @@ "SIDEBAR": { "CONVERSATIONS": "Conversations", "REPORTS": "Reports", - "CONTACTS": "Contacts", + "CONTACTS": "Contacts (Beta)", "SETTINGS": "Settings", "HOME": "Home", "AGENTS": "Agents", diff --git a/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsTable.vue b/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsTable.vue index d34902d62..0579c2394 100644 --- a/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsTable.vue +++ b/app/javascript/dashboard/routes/dashboard/contacts/components/ContactsTable.vue @@ -29,17 +29,21 @@ {{ contactItem.name }}
- {{ contactItem.email || '--' }} + {{ contactItem.email || '---' }}
-