From d4299760e32db886f3e98178353155d3ad030ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Guti=C3=A9rrez?= Date: Tue, 11 Dec 2018 15:23:28 -0600 Subject: [PATCH] UI-3273: Update main callflow on user save only if exists (#108) --- submodules/users/users.js | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/submodules/users/users.js b/submodules/users/users.js index 723b76c..d0f23be 100644 --- a/submodules/users/users.js +++ b/submodules/users/users.js @@ -1003,29 +1003,40 @@ define(function(require) { } }, callflow: function(callback) { - if (isUserNameDifferent || shouldUpdateTimeout) { - self.usersGetMainCallflow(userToSave.id, function(mainCallflow) { + if (!isUserNameDifferent && !shouldUpdateTimeout) { + callback(null, null); + return; + } + + monster.waterfall([ + function(waterfallCallback) { + self.usersGetMainCallflow(userToSave.id, function(mainCallflow) { + waterfallCallback(null, mainCallflow); + }); + }, + function(mainCallflow, waterfallCallback) { + if (_.isNil(mainCallflow)) { + waterfallCallback(null, null); + return; + } + if (isUserNameDifferent) { mainCallflow.name = newName + self.appFlags.users.smartPBXCallflowString; } - if (shouldUpdateTimeout) { - if ('flow' in mainCallflow) { - var flow = mainCallflow.flow; - while (flow.module !== 'user' && '_' in flow.children) { - flow = flow.children._; - } - flow.data.timeout = parseInt(userToSave.extra.ringingTimeout); + if (shouldUpdateTimeout && 'flow' in mainCallflow) { + var flow = mainCallflow.flow; + while (flow.module !== 'user' && '_' in flow.children) { + flow = flow.children._; } + flow.data.timeout = parseInt(userToSave.extra.ringingTimeout); } self.usersUpdateCallflow(mainCallflow, function(updatedCallflow) { callback(null, updatedCallflow); }); - }); - } else { - callback(null, null); - } + } + ], callback); } }, function(error, results) { monster.ui.toast({