From 086aa36ffedc7a1d6269f10991a5a9d9bdc9dd55 Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Mon, 11 May 2026 23:15:25 +0530 Subject: [PATCH] feat(companies): add notes and history to company details (#14401) --- app/javascript/dashboard/api/companies.js | 8 ++ .../Companies/CompaniesDetailsLayout.vue | 18 ++- .../CompanyDetail/CompanyContactsSidebar.vue | 6 +- .../CompanyDetail/CompanyHistorySidebar.vue | 67 ++++++++++ .../CompanyDetail/CompanyNotesSidebar.vue | 114 ++++++++++++++++++ .../dashboard/i18n/locale/en/companies.json | 10 +- .../companies/pages/CompanyDetailView.vue | 69 +++++++++++ .../dashboard/store/storeFactory.js | 7 +- app/javascript/dashboard/stores/companies.js | 85 +++++++++++++ config/routes.rb | 2 + .../v1/accounts/companies/base_controller.rb | 24 ++++ .../accounts/companies/contacts_controller.rb | 22 +--- .../companies/conversations_controller.rb | 15 +++ .../v1/accounts/companies/notes_controller.rb | 11 ++ .../conversations/index.json.jbuilder | 5 + .../companies/notes/index.json.jbuilder | 8 ++ 16 files changed, 440 insertions(+), 31 deletions(-) create mode 100644 app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyHistorySidebar.vue create mode 100644 app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyNotesSidebar.vue create mode 100644 enterprise/app/controllers/api/v1/accounts/companies/base_controller.rb create mode 100644 enterprise/app/controllers/api/v1/accounts/companies/conversations_controller.rb create mode 100644 enterprise/app/controllers/api/v1/accounts/companies/notes_controller.rb create mode 100644 enterprise/app/views/api/v1/accounts/companies/conversations/index.json.jbuilder create mode 100644 enterprise/app/views/api/v1/accounts/companies/notes/index.json.jbuilder diff --git a/app/javascript/dashboard/api/companies.js b/app/javascript/dashboard/api/companies.js index b98a59983..a45b21d68 100644 --- a/app/javascript/dashboard/api/companies.js +++ b/app/javascript/dashboard/api/companies.js @@ -28,6 +28,14 @@ class CompanyAPI extends ApiClient { return axios.get(`${this.url}/${id}/contacts?${buildParams({ page })}`); } + listNotes(id) { + return axios.get(`${this.url}/${id}/notes`); + } + + listConversations(id) { + return axios.get(`${this.url}/${id}/conversations`); + } + searchContacts(id, query = '', page = 1) { const requestURL = `${this.url}/${id}/contacts/search?${buildParams({ q: query, page })}`; return axios.get(requestURL); diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue b/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue index 7736ccffd..14b5e62d9 100644 --- a/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue +++ b/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue @@ -56,9 +56,14 @@ const closeMobileSidebar = () => {
{
- +
+ +
+
+ +
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue index 7e0d162dc..ce2a68da1 100644 --- a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue +++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue @@ -169,7 +169,7 @@ const handleContactSelect = contactId => {