I have a function that is called twice with different parameters:
function setArray(chartType, charData, nodeName, meaQuantityId, unitName) {
var legendText = nodeName + '(' + unitName + ')';
var lineData = null;
var scatterData = null;
if (chartType != null) {
switch (chartType) {
case 'line':
{
if (compareGraphData.length > 0) {
for (var i = 0; i < compareGraphData.length; i++) {
if (legendText == compareGraphData[i].legendText) {
legendText = changeLegendText(legendText, i);
}
}
}
lineData = {
type: chartType, //try changing to column, area
showInLegend: true,
legendText: legendText,
toolTipContent: "{label}LS : {y} ",
dataPoints: charData
};
compareGraphData.push(lineData);
break;
}
case 'scatter':
{
if (compareScatterGraphData.length > 0) {
for (var i = 0; i < compareScatterGraphData.length; i++) {
if (legendText == compareScatterGraphData[i].legendText) {
//legendText = changeLegendText(legendText, i);
}
}
}
scatterData = {
type: chartType, //try changing to column, area
showInLegend: true,
legendText: legendText,
toolTipContent: "{label}LS : {y} ",
dataPoints: charData
};
compareScatterGraphData.push(scatterData);
break;
}
}
} else {
var arr = [];
for (var i = 0; i < charData.length; i++) {
arr.push({
'quantityName': charData[0].nodeName,
'data': charData[i].value,
'count': charData[0].count,
'unitName': charData[0].xUnitName,
'meaQuantityId': meaQuantIdForDataTable
});
}
dataView.push(arr);
}
}
function changeLegendText(legendText, i) {
var value = webix.ui({
view: "window",
modal: true,
id: 'id-win-change-channel-Name',
fullscreen: true,
position: function(state) {
state.width = 220;
state.top = 200;
state.left = (window.innerWidth - state.width) / 2;
state.height = 150;
},
head: "Change Alias!",
body: {
padding: 10,
rows: [{
view: 'text',
id: "id-text-change-channel-Name",
value: legendText + '_' + i
}, {
view: 'button',
value: "OK",
click: function() {
channelAliasValue = $$('id-text-change-channel-Name').getValue();
$$('id-win-change-channel-Name').hide();
}
}]
}
}).show();
}
////I call the function like this:
DBService.getGraphData('getGraphData')
.then(function(response){
var charData=response.result;
setArray('line', charData, nodeName, meaQuantityId, unitName);
setArray('line', charData, nodeName, meaQuantityId, unitName);
});
legendText
with the one in the compareGraphData
array. If it is true then a popup comes up with a text box and a button.
I want to stop the execution when the popup comes up and continue the execution after the user clicks on the button.
But the above code doesn't wait for the user event and continue with the next statement.
Can you tell me the best possible way to achieve this?