| // 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.infrastructure = function(module) { |
| module.pluginAPI.extend({ |
| networkServiceProvider: function(args) { |
| var name = args.name; |
| var id = args.id; |
| var state = args.state; |
| var detailView = args.detailView; |
| var listView = args.listView; |
| |
| cloudStack.sections.system.naas.networkProviders.types[id] = detailView; |
| cloudStack.sections.system.subsections[listView.id] = { |
| id: listView.id, |
| title: name, |
| listView: listView |
| }; |
| |
| $(window).bind('cloudStack.system.serviceProviders.makeHarcodedArray', function(event, data) { |
| var nspHardcodingArray = data.nspHardcodingArray; |
| var selectedZoneObj = data.selectedZoneObj; |
| var selectedPhysicalNetworkObj = data.selectedPhysicalNetworkObj; |
| if(selectedZoneObj.networktype == "Advanced"){ |
| var selectedProviderObj = null; |
| $.ajax({ |
| url: createURL('listNetworkServiceProviders'), |
| data: { |
| name: id, //e.g. 'CiscoVnmc' |
| physicalnetworkid: selectedPhysicalNetworkObj.id |
| }, |
| async: false, |
| success: function(json){ |
| var items = json.listnetworkserviceprovidersresponse.networkserviceprovider; |
| if(items != null && items.length > 0) { |
| selectedProviderObj = items[0]; |
| } |
| } |
| }); |
| |
| nspHardcodingArray.push({ |
| id: id, |
| name: name, |
| state: selectedProviderObj? selectedProviderObj.state : 'Absent' |
| }); |
| } |
| }); |
| }, |
| |
| resource: function(args) { |
| var type = args.type; |
| |
| if (type) { |
| return cloudStack.sections.system.subsections[type]; |
| } else { |
| return false; |
| } |
| } |
| }); |
| }; |
| }(jQuery, cloudStack)); |