From 126bd12745267eb6bdfad18ab01e39e75db4aa61 Mon Sep 17 00:00:00 2001 From: raxelsen Date: Wed, 20 Jun 2018 12:33:00 +0200 Subject: [PATCH] TT#38781 Update conversations list when call ends What has been done: - TT#39012, Ensure scroll to top behavior after list is reloaded - TT#38962, Implement callState watcher that dispatches action when call has ended - TT#39046, Implement dedicated reload action with retry mechanism - TT#38961, Implement dedicated reload mutation with call item handling - TT#39150, Fix existing test and create new one Change-Id: I8316de60be890c9236e5eda13a9acfe59586e7dd --- src/api/conversations.js | 31 ---- .../pages/Conversations/Conversations.vue | 41 +++++- src/locales/en.json | 3 +- src/store/call.js | 2 - src/store/conversations.js | 136 ++++++++++++------ t/store/conversations.js | 130 +++++++++++++++-- 6 files changed, 241 insertions(+), 102 deletions(-) diff --git a/src/api/conversations.js b/src/api/conversations.js index 362e804c..fda50642 100644 --- a/src/api/conversations.js +++ b/src/api/conversations.js @@ -3,37 +3,6 @@ import { saveAs } from 'file-saver' import Vue from 'vue' import { getList } from './common' -// export function getConversations(id, page, rows) { -// return new Promise((resolve, reject) => { -// let params = { subscriber_id: id, page: page, rows: rows, -// order_by: 'timestamp', order_by_direction: 'desc' }; -// Vue.http.get('api/conversations/', { params: params }) -// .then(result => { -// let jsonBody = getJsonBody(result.body); -// if (_.has(jsonBody, "_embedded.ngcp:conversations")) { -// let list = []; -// _.forEach(jsonBody._embedded['ngcp:conversations'], function(item) { -// let inputString = `${item.type}${item.call_type}${item.id}`; -// let id = crypto.createHash('sha256').update(inputString).digest('base64'); -// item._id = id; -// delete item._links; -// if (item.type == 'call') { -// item.type = item.call_type != 'call' ? 'callforward' -// : item.type; -// } -// list.push(item); -// }); -// resolve(list); -// } -// else { -// reject(new Error('No items returned for this page.')) -// } -// }).catch((err) => { -// reject(err); -// }); -// }); -// } - export function getConversations(id, page, rows) { return getList({ path: 'api/conversations/', diff --git a/src/components/pages/Conversations/Conversations.vue b/src/components/pages/Conversations/Conversations.vue index 63622553..6e5d185b 100644 --- a/src/components/pages/Conversations/Conversations.vue +++ b/src/components/pages/Conversations/Conversations.vue @@ -36,7 +36,6 @@