cloudstack/ui/modules/vnmcAsa1000v/vnmcAsa1000v.js

184 lines
6.6 KiB
JavaScript

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
(function($, cloudStack) {
cloudStack.modules.vnmcAsa1000v = function(module) {
module.vnmcNetworkProvider.addDevice({
id: 'asa1000v',
title: 'ASA 1000v',
listView: {
id: 'asa1000vDevices',
fields: {
hostname: { label: 'label.host' },
insideportprofile: { label: 'Inside Port Profile' }
},
dataProvider: function(args) {
$.ajax({
url: createURL('listCiscoAsa1000vResources'),
data: {
physicalnetworkid: args.context.physicalNetworks[0].id
},
success: function(json){
var items = json.listCiscoAsa1000vResources.CiscoAsa1000vResource;
args.response.success({ data: items });
}
});
},
actions: {
add: {
label: 'Add CiscoASA1000v Resource',
messages: {
notification: function(args) {
return 'Add CiscoASA1000v Resource';
}
},
createForm: {
title: 'Add CiscoASA1000v Resource',
fields: {
hostname: {
label: 'label.host',
validation: { required: true }
},
insideportprofile: {
label: 'Inside Port Profile',
validation: { required: true }
},
clusterid: {
label: 'label.cluster',
validation: { required: true },
select: function(args){
$.ajax({
url: createURL('listClusters'),
data: {
zoneid: args.context.zones[0].id
},
success: function(json) {
var objs = json.listclustersresponse.cluster;
var items = [];
if(objs != null) {
for(var i = 0; i < objs.length; i++){
items.push({id: objs[i].id, description: objs[i].name});
}
}
args.response.success({data: items});
}
});
}
}
}
},
action: function(args) {
var data = {
physicalnetworkid: args.context.physicalNetworks[0].id,
hostname: args.data.hostname,
insideportprofile: args.data.insideportprofile,
clusterid: args.data.clusterid
};
$.ajax({
url: createURL('addCiscoAsa1000vResource'),
data: data,
success: function(json){
var item = json.addCiscoAsa1000vResource.CiscoAsa1000vResource;
args.response.success({data: item});
},
error: function(data) {
args.response.error(parseXMLHttpResponse(data));
}
});
},
notification: {
poll: function(args) {
args.complete();
}
}
}
},
detailView: {
name: 'CiscoASA1000v details',
actions: {
remove: {
label: 'delete CiscoASA1000v',
messages: {
confirm: function(args) {
return 'Please confirm you want to delete CiscoASA1000v';
},
notification: function(args) {
return 'delete CiscoASA1000v';
}
},
action: function(args) {
$.ajax({
url: createURL('deleteCiscoAsa1000vResource'),
data: {
resourceid: args.context.asa1000vDevices[0].resourceid
},
success: function(json) {
args.response.success();
},
error: function(data) {
args.response.error(parseXMLHttpResponse(data));
}
});
},
notification: {
poll: function(args) {
args.complete();
}
}
}
},
tabs: {
details: {
title: 'label.details',
fields: [
{
hostname: {
label: 'label.host'
}
},
{
insideportprofile: { label: 'Inside Port Profile' },
RESOURCE_NAME: { label: 'Resource Name' },
resourceid: { label: 'Resource ID' }
}
],
dataProvider: function(args) {
$.ajax({
url: createURL('listCiscoAsa1000vResources'),
data: {
resourceid: args.context.asa1000vDevices[0].resourceid
},
success: function(json) {
var item = json.listCiscoAsa1000vResources.CiscoAsa1000vResource[0];
args.response.success({ data: item });
}
});
}
}
}
}
}
});
};
}(jQuery, cloudStack));