+
{
{{ displayName }}
-
- {{ domain }}
+
+ {{ contactsCountLabel }}
-
-
+
+
{{ domain }}
-
- {{ description }}
-
-
-
-
- {{ t('COMPANIES.CONTACTS_COUNT', { n: contactsCount }) }}
-
- {{ formattedUpdatedAt }}
+ {{ formattedLastActivityAt }}
diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue b/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue
new file mode 100644
index 000000000..7736ccffd
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompaniesDetailsLayout.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue
index 0eeb42233..f85b613a3 100644
--- a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue
+++ b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/CompanyHeader.vue
@@ -19,22 +19,15 @@ const emit = defineEmits(['search', 'update:sort']);
-
+
{{ headerTitle }}
-
diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue
index 8cf75d555..198a2f278 100644
--- a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue
+++ b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue
@@ -35,6 +35,10 @@ const sortMenus = [
label: t('COMPANIES.SORT_BY.OPTIONS.CREATED_AT'),
value: 'created_at',
},
+ {
+ label: t('COMPANIES.SORT_BY.OPTIONS.LAST_ACTIVITY_AT'),
+ value: 'last_activity_at',
+ },
{
label: t('COMPANIES.SORT_BY.OPTIONS.CONTACTS_COUNT'),
value: 'contacts_count',
@@ -101,6 +105,7 @@ const handleOrderChange = value => {
:model-value="activeSort"
:options="sortMenus"
:label="activeSortLabel"
+ sub-menu-position="left"
@update:model-value="handleSortChange"
/>
@@ -112,6 +117,7 @@ const handleOrderChange = value => {
:model-value="activeOrdering"
:options="orderingMenus"
:label="activeOrderingLabel"
+ sub-menu-position="left"
@update:model-value="handleOrderChange"
/>
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue
new file mode 100644
index 000000000..2ca1b33c4
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyContactsSidebar.vue
@@ -0,0 +1,354 @@
+
+
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.CONTACTS.DIALOGS.ADD.DESCRIPTION') }}
+
+
+
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.CONTACTS.DIALOGS.ADD.CONFIRM_DESCRIPTION') }}
+
+
+
+
+
+
+
+
+ {{ row.badge }}
+
+
+
+
+
+
+
+ {{ row.primary }}
+
+
+ {{ row.secondary }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.SIDEBAR.TABS.CONTACTS') }}
+
+
+ {{ t('COMPANIES.CONTACTS_COUNT', { n: totalContacts }) }}
+
+
+
+
+ {{ t('COMPANIES.DETAIL.CONTACTS.LOADING') }}
+
+
+
+ {{ t('COMPANIES.DETAIL.CONTACTS.EMPTY') }}
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyCustomAttributeItem.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyCustomAttributeItem.vue
new file mode 100644
index 000000000..3328e801e
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyCustomAttributeItem.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ {{ attribute.attributeDisplayName }}
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyCustomAttributes.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyCustomAttributes.vue
new file mode 100644
index 000000000..9ed72169c
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyCustomAttributes.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ t('COMPANIES.DETAIL.ATTRIBUTES.UNUSED_ATTRIBUTES', {
+ count: unusedAttributesCount,
+ })
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.ATTRIBUTES.NO_ATTRIBUTES') }}
+
+
+
+
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.ATTRIBUTES.EMPTY_STATE') }}
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyProfileCard.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyProfileCard.vue
new file mode 100644
index 000000000..1ffbf0c18
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/CompanyProfileCard.vue
@@ -0,0 +1,203 @@
+
+
+
+
+ {{ t('COMPANIES.DETAIL.LOADING') }}
+
+
+
+
+
+
+
+
+ {{ displayName }}
+
+
{{ summary }}
+
+ {{ t('COMPANIES.DETAIL.AVATAR.UPDATING') }}
+
+
+
+
+
+
+ {{ t('COMPANIES.DETAIL.PROFILE.TITLE') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Companies/CompanyDetail/ConfirmCompanyDeleteDialog.vue b/app/javascript/dashboard/components-next/Companies/CompanyDetail/ConfirmCompanyDeleteDialog.vue
new file mode 100644
index 000000000..a689fb079
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Companies/CompanyDetail/ConfirmCompanyDeleteDialog.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/CustomAttributes/DateAttribute.vue b/app/javascript/dashboard/components-next/CustomAttributes/DateAttribute.vue
index ba8090e02..d3342e18a 100644
--- a/app/javascript/dashboard/components-next/CustomAttributes/DateAttribute.vue
+++ b/app/javascript/dashboard/components-next/CustomAttributes/DateAttribute.vue
@@ -134,7 +134,7 @@ const handleInputUpdate = async () => {
:message-type="hasError ? 'error' : 'info'"
autofocus
custom-input-class="h-8 ltr:rounded-r-none rtl:rounded-l-none"
- @keyup.enter="handleInputUpdate"
+ @enter="handleInputUpdate"
/>
diff --git a/app/javascript/dashboard/routes/dashboard/companies/pages/CompanyDetailView.vue b/app/javascript/dashboard/routes/dashboard/companies/pages/CompanyDetailView.vue
new file mode 100644
index 000000000..313df49d3
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/companies/pages/CompanyDetailView.vue
@@ -0,0 +1,236 @@
+
+
+