From d1e6e8445112952404147eae4f596de01f8f13c0 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Thu, 9 Feb 2012 16:41:15 -0800 Subject: [PATCH] bug 13554: network menu - network page - Edit network - if network type is Isolated and network offering is changed, pop up a dialog box "Do you want to keep the current guest network CIDR unchanged?". Choosing Yes button will send "changecidr=false" to updateNetwork API. Choosing Cancel button will send "changecidr=true" to updateNetwork API. --- ui/scripts/network.js | 94 ++++++++++++++++++++++++++++++++----------- 1 file changed, 71 insertions(+), 23 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index 809bb351a2b..699bf5df7ab 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -348,32 +348,80 @@ var array1 = []; array1.push("&name=" + todb(args.data.name)); array1.push("&displaytext=" + todb(args.data.displaytext)); - - //args.data.networkofferingid is null when networkofferingid field is hidden - if(args.data.networkofferingid != null && args.data.networkofferingid != args.context.networks[0].networkofferingid) - array1.push("&networkofferingid=" + todb(args.data.networkofferingid)); - + //args.data.networkdomain is null when networkdomain field is hidden if(args.data.networkdomain != null && args.data.networkdomain != args.context.networks[0].networkdomain) array1.push("&networkdomain=" + todb(args.data.networkdomain)); - - $.ajax({ - url: createURL("updateNetwork&id=" + args.context.networks[0].id + array1.join("")), - dataType: "json", - success: function(json) { - var jid = json.updatenetworkresponse.jobid; - args.response.success( - {_custom: - {jobId: jid, - getUpdatedItem: function(json) { - var item = json.queryasyncjobresultresponse.jobresult.network; - return {data: item}; - } - } - } - ); - } - }); + + //args.data.networkofferingid is null when networkofferingid field is hidden + if(args.data.networkofferingid != null && args.data.networkofferingid != args.context.networks[0].networkofferingid) { + array1.push("&networkofferingid=" + todb(args.data.networkofferingid)); + + if(args.context.networks[0].type == "Isolated") { //Isolated network + cloudStack.dialog.confirm({ + message: 'Do you want to keep the current guest network CIDR unchanged?', + action: function() { //"Yes" button is clicked + array1.push("&changecidr=false"); + $.ajax({ + url: createURL("updateNetwork&id=" + args.context.networks[0].id + array1.join("")), + dataType: "json", + success: function(json) { + var jid = json.updatenetworkresponse.jobid; + args.response.success( + {_custom: + {jobId: jid, + getUpdatedItem: function(json) { + var item = json.queryasyncjobresultresponse.jobresult.network; + return {data: item}; + } + } + } + ); + } + }); + }, + cancelAction: function() { //"Cancel" button is clicked + array1.push("&changecidr=true"); + $.ajax({ + url: createURL("updateNetwork&id=" + args.context.networks[0].id + array1.join("")), + dataType: "json", + success: function(json) { + var jid = json.updatenetworkresponse.jobid; + args.response.success( + {_custom: + {jobId: jid, + getUpdatedItem: function(json) { + var item = json.queryasyncjobresultresponse.jobresult.network; + return {data: item}; + } + } + } + ); + } + }); + } + }); + return; + } + } + + $.ajax({ + url: createURL("updateNetwork&id=" + args.context.networks[0].id + array1.join("")), + dataType: "json", + success: function(json) { + var jid = json.updatenetworkresponse.jobid; + args.response.success( + {_custom: + {jobId: jid, + getUpdatedItem: function(json) { + var item = json.queryasyncjobresultresponse.jobresult.network; + return {data: item}; + } + } + } + ); + } + }); }, notification: { poll: pollAsyncJobResult