diff --git a/app/javascript/dashboard/i18n/locale/en/report.json b/app/javascript/dashboard/i18n/locale/en/report.json
index 0b234ec16..ba7af3120 100644
--- a/app/javascript/dashboard/i18n/locale/en/report.json
+++ b/app/javascript/dashboard/i18n/locale/en/report.json
@@ -86,20 +86,49 @@
"MONTH": "Month",
"YEAR": "Year"
},
- "GROUP_BY_DAY_OPTIONS": [{ "id": 1, "groupBy": "Day" }],
+ "GROUP_BY_DAY_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "Day"
+ }
+ ],
"GROUP_BY_WEEK_OPTIONS": [
- { "id": 1, "groupBy": "Day" },
- { "id": 2, "groupBy": "Week" }
+ {
+ "id": 1,
+ "groupBy": "Day"
+ },
+ {
+ "id": 2,
+ "groupBy": "Week"
+ }
],
"GROUP_BY_MONTH_OPTIONS": [
- { "id": 1, "groupBy": "Day" },
- { "id": 2, "groupBy": "Week" },
- { "id": 3, "groupBy": "Month" }
+ {
+ "id": 1,
+ "groupBy": "Day"
+ },
+ {
+ "id": 2,
+ "groupBy": "Week"
+ },
+ {
+ "id": 3,
+ "groupBy": "Month"
+ }
],
"GROUP_BY_YEAR_OPTIONS": [
- { "id": 2, "groupBy": "Week" },
- { "id": 3, "groupBy": "Month" },
- { "id": 4, "groupBy": "Year" }
+ {
+ "id": 2,
+ "groupBy": "Week"
+ },
+ {
+ "id": 3,
+ "groupBy": "Month"
+ },
+ {
+ "id": 4,
+ "groupBy": "Year"
+ }
],
"BUSINESS_HOURS": "Business Hours"
},
@@ -431,6 +460,17 @@
"STATUS": "Status"
}
},
+ "TEAM_CONVERSATIONS": {
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_AGENTS": "There is no data available",
+ "TABLE_HEADER": {
+ "AGENT": "Team",
+ "OPEN": "open",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Status"
+ }
+ },
"AGENT_STATUS": {
"HEADER": "Agent status",
"ONLINE": "Online",
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/LiveReports.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/LiveReports.vue
index 8a5a001bb..2cf0668ba 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/reports/LiveReports.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/LiveReports.vue
@@ -65,11 +65,22 @@
/>
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/store/modules/reports.js b/app/javascript/dashboard/store/modules/reports.js
index c5969e554..3e92486c7 100644
--- a/app/javascript/dashboard/store/modules/reports.js
+++ b/app/javascript/dashboard/store/modules/reports.js
@@ -47,10 +47,12 @@ const state = {
isFetchingAccountConversationMetric: false,
isFetchingAccountConversationsHeatmap: false,
isFetchingAgentConversationMetric: false,
+ isFetchingTeamConversationMetric: false,
},
accountConversationMetric: {},
accountConversationHeatmap: [],
agentConversationMetric: [],
+ teamConversationMetric: [],
},
};
@@ -70,6 +72,9 @@ const getters = {
getAgentConversationMetric(_state) {
return _state.overview.agentConversationMetric;
},
+ getTeamConversationMetric(_state) {
+ return _state.overview.teamConversationMetric;
+ },
getOverviewUIFlags($state) {
return $state.overview.uiFlags;
},
@@ -156,6 +161,21 @@ export const actions = {
commit(types.default.TOGGLE_AGENT_CONVERSATION_METRIC_LOADING, false);
});
},
+ fetchTeamConversationMetric({ commit }) {
+ commit(types.default.TOGGLE_TEAM_CONVERSATION_METRIC_LOADING, true);
+ liveReports
+ .getGroupedConversations({ groupBy: 'team_id' })
+ .then(agentConversationMetric => {
+ commit(
+ types.default.SET_TEAM_CONVERSATION_METRIC,
+ agentConversationMetric.data
+ );
+ commit(types.default.TOGGLE_TEAM_CONVERSATION_METRIC_LOADING, false);
+ })
+ .catch(() => {
+ commit(types.default.TOGGLE_TEAM_CONVERSATION_METRIC_LOADING, false);
+ });
+ },
downloadAgentReports(_, reportObj) {
return Report.getAgentReports(reportObj)
.then(response => {
@@ -255,9 +275,15 @@ const mutations = {
[types.default.SET_AGENT_CONVERSATION_METRIC](_state, metricData) {
_state.overview.agentConversationMetric = metricData;
},
+ [types.default.SET_TEAM_CONVERSATION_METRIC](_state, metricData) {
+ _state.overview.teamConversationMetric = metricData;
+ },
[types.default.TOGGLE_AGENT_CONVERSATION_METRIC_LOADING](_state, flag) {
_state.overview.uiFlags.isFetchingAgentConversationMetric = flag;
},
+ [types.default.TOGGLE_TEAM_CONVERSATION_METRIC_LOADING](_state, flag) {
+ _state.overview.uiFlags.isFetchingTeamConversationMetric = flag;
+ },
};
export default {
diff --git a/app/javascript/dashboard/store/mutation-types.js b/app/javascript/dashboard/store/mutation-types.js
index 0d4f0c010..235d6b6ad 100644
--- a/app/javascript/dashboard/store/mutation-types.js
+++ b/app/javascript/dashboard/store/mutation-types.js
@@ -171,8 +171,11 @@ export default {
TOGGLE_ACCOUNT_CONVERSATION_METRIC_LOADING:
'TOGGLE_ACCOUNT_CONVERSATION_METRIC_LOADING',
SET_AGENT_CONVERSATION_METRIC: 'SET_AGENT_CONVERSATION_METRIC',
+ SET_TEAM_CONVERSATION_METRIC: 'SET_TEAM_CONVERSATION_METRIC',
TOGGLE_AGENT_CONVERSATION_METRIC_LOADING:
'TOGGLE_AGENT_CONVERSATION_METRIC_LOADING',
+ TOGGLE_TEAM_CONVERSATION_METRIC_LOADING:
+ 'TOGGLE_TEAM_CONVERSATION_METRIC_LOADING',
// Conversation Metadata
SET_CONVERSATION_METADATA: 'SET_CONVERSATION_METADATA',