CS-13091: Enable/disable physical network UI actions

Conflicts:

	ui/index.jsp
This commit is contained in:
Brian Federle 2012-05-24 12:15:58 -07:00
parent 036c7a0dce
commit ff3c236776
4 changed files with 99 additions and 5 deletions

View File

@ -1,4 +1,8 @@
#new labels (begin) **********************************************************************************************
label.action.enable.physical.network=Enable physical network
label.action.disable.physical.network=Disable physical network
message.action.enable.physical.network=Please confirm that you want to enable this physical network.
message.action.disable.physical.network=Please confirm that you want to disable this physical network.
label.ipaddress=IP Address
label.vcdcname=vCenter DC name
label.vcipaddress=vCenter IP Address

View File

@ -1659,6 +1659,10 @@ dictionary = {
'message.edit.traffic.type': '<fmt:message key="message.edit.traffic.type"/>',
'label.label': '<fmt:message key="label.label"/>',
'message.configure.all.traffic.types': '<fmt:message key="message.configure.all.traffic.types"/>',
'label.action.enable.physical.network': '<fmt:message key="label.action.enable.physical.network"/>',
'label.action.disable.physical.network': '<fmt:message key="label.action.disable.physical.network"/>',
'message.action.enable.physical.network': '<fmt:message key="message.action.enable.physical.network"/>',
'message.action.disable.physical.network': '<fmt:message key="message.action.disable.physical.network"/>',
'label.ipaddress': '<fmt:message key="label.ipaddress"/>',
'label.vcdcname': '<fmt:message key="label.vcdcname"/>',
'label.vcipaddress': '<fmt:message key="label.vcipaddress"/>',

View File

@ -1827,7 +1827,81 @@
notification: {
poll: pollAsyncJobResult
}
}
},
enable: {
label: 'label.action.enable.physical.network',
messages: {
confirm: function(args) {
return 'message.action.enable.physical.network';
},
notification: function(args) {
return 'label.action.enable.physical.network';
}
},
action: function(args) {
$.ajax({
url: createURL('updatePhysicalNetwork'),
data: {
id: args.context.physicalNetworks[0].id,
state: 'Enabled'
},
success: function(json) {
args.response.success({
_custom: {
jobId: json.updatephysicalnetworkresponse.jobid,
getUpdatedItem: function(json) {
return {
state: 'Enabled'
};
},
getActionFilter: function() {
return cloudStack.actionFilter.physicalNetwork;
}
}
});
},
error: function(json) { args.response.error(parseXMLHttpResponse(json)); }
});
},
notification: { poll: pollAsyncJobResult }
},
disable: {
label: 'label.action.disable.physical.network',
messages: {
confirm: function(args) {
return 'message.action.disable.physical.network';
},
notification: function(args) {
return 'label.action.disable.physical.network';
}
},
action: function(args) {
$.ajax({
url: createURL('updatePhysicalNetwork'),
data: {
id: args.context.physicalNetworks[0].id,
state: 'Disabled'
},
success: function(json) {
args.response.success({
_custom: {
jobId: json.updatephysicalnetworkresponse.jobid,
getUpdatedItem: function(json) {
return {
state: 'Disabled'
};
},
getActionFilter: function() {
return cloudStack.actionFilter.physicalNetwork;
}
}
});
},
error: function(json) { args.response.error(parseXMLHttpResponse(json)); }
});
},
notification: { poll: pollAsyncJobResult }
}
}
},
dataProvider: function(args) {
@ -1839,6 +1913,7 @@
success: function(json) {
physicalNetworkObjs = json.listphysicalnetworksresponse.physicalnetwork;
args.response.success({
actionFilter: cloudStack.actionFilter.physicalNetwork,
data: json.listphysicalnetworksresponse.physicalnetwork
});
}
@ -9235,7 +9310,17 @@
}
);
}
}
};
cloudStack.actionFilter.physicalNetwork = function(args) {
var state = args.context.item.state;
if (state == 'Enabled') {
return ['disable', 'remove'];
} else if (state == 'Disabled') {
return ['enable', 'remove'];
}
return [];
};
})($, cloudStack);

View File

@ -295,11 +295,12 @@
response: {
success: function(args) {
var data = args.data;
var actionFilter = args.actionFilter;
$chart.listView({
listView: $.extend(true, {}, cloudStack.sections.system.naas.networks.listView, {
dataProvider: function(args) {
args.response.success({ data: data });
args.response.success({ actionFilter: actionFilter, data: data });
},
detailView: {
tabs: {