diff --git a/app/javascript/dashboard/i18n/locale/en/integrations.json b/app/javascript/dashboard/i18n/locale/en/integrations.json
index 071c95604..41f63d0a2 100644
--- a/app/javascript/dashboard/i18n/locale/en/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/en/integrations.json
@@ -537,6 +537,8 @@
"CONVERSATION": "Conversation #{id}"
},
"SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
"BULK_APPROVE_BUTTON": "Approve",
"BULK_DELETE_BUTTON": "Delete",
"BULK_APPROVE": {
diff --git a/app/javascript/dashboard/routes/dashboard/captain/responses/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/responses/Index.vue
index 258e1c0c9..e771e72ed 100644
--- a/app/javascript/dashboard/routes/dashboard/captain/responses/Index.vue
+++ b/app/javascript/dashboard/routes/dashboard/captain/responses/Index.vue
@@ -157,6 +157,13 @@ const bulkCheckbox = computed({
},
});
+const buildSelectedCountLabel = computed(() => {
+ const count = responses.value?.length || 0;
+ return bulkSelectionState.value.allSelected
+ ? t('CAPTAIN.RESPONSES.UNSELECT_ALL', { count })
+ : t('CAPTAIN.RESPONSES.SELECT_ALL', { count });
+});
+
const handleCardHover = (isHovered, id) => {
hoveredCard.value = isHovered ? id : null;
};
@@ -270,7 +277,11 @@ onMounted(() => {
@@ -306,13 +317,18 @@ onMounted(() => {
>
-
-
+
+
+
+
+ {{ buildSelectedCountLabel }}
+
+
{{
$t('CAPTAIN.RESPONSES.SELECTED', {
@@ -322,17 +338,23 @@ onMounted(() => {
-