Browse Source

UI-2111: On user deletion, reassign mobile device to their mobile callflow instead of deleting the callflow

4.3
Joris Tirado 10 years ago
parent
commit
6a17bd72a1
1 changed files with 81 additions and 4 deletions
  1. +81
    -4
      submodules/users/users.js

+ 81
- 4
submodules/users/users.js View File

@ -2925,11 +2925,54 @@ define(function(require){
});
_.each(results.callflows, function(callflow) {
listFnDelete.push(function(callback) {
self.usersDeleteCallflow(callflow.id, function(data) {
callback(null, '');
/*
Special case for users with mobile devices:
reassign mobile devices to their respective mobile callflow instead of just deleting the callflow
*/
if (callflow.type === 'mobile') {
listFnDelete.push(function(mainCallback) {
monster.parallel({
callflow: function(callback) {
self.usersGetCallflow(callflow.id, function(data) {
callback(null, data);
});
},
mobileDevice: function(callback) {
self.usersGetMobileDevice(callflow.numbers[0].slice(2), function(data) {
callback(null, data);
});
}
},
function(err, results) {
var fullCallflow = results.callflow,
mobileDeviceId = results.mobileDevice.id;
delete fullCallflow.owner_id;
$.extend(true, fullCallflow, {
flow: {
module: 'device',
data: {
id: mobileDeviceId
}
}
});
self.usersUpdateCallflow(fullCallflow, function(data) {
mainCallback(null, data);
});
}
);
});
});
}
else {
listFnDelete.push(function(callback) {
self.usersDeleteCallflow(callflow.id, function(data) {
callback(null, '');
});
});
}
});
_.each(results.vmbox, function(vmbox) {
@ -2950,6 +2993,40 @@ define(function(require){
);
},
usersGetCallflow: function(callflowId, callback) {
var self = this;
self.callApi({
resource: 'callflow.get',
data: {
accountId: self.accountId,
callflowId: callflowId
},
success: function(data, status) {
callback(data.data);
}
});
},
usersGetMobileDevice: function(mdn, callback) {
var self = this;
self.callApi({
resource: 'device.list',
data: {
accountId: self.accountId,
data: {
filters: {
'filter_mobile.mdn': mdn
}
}
},
success: function(data, status) {
callback(data.data);
}
});
},
usersDeleteUser: function(userId, callback) {
var self = this;


Loading…
Cancel
Save