3 Copyright 2017, Huawei Technologies Co., Ltd.
\r
5 Licensed under the Apache License, Version 2.0 (the "License");
\r
6 you may not use this file except in compliance with the License.
\r
7 You may obtain a copy of the License at
\r
9 http://www.apache.org/licenses/LICENSE-2.0
\r
11 Unless required by applicable law or agreed to in writing, software
\r
12 distributed under the License is distributed on an "AS IS" BASIS,
\r
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
14 See the License for the specific language governing permissions and
\r
15 limitations under the License.
\r
19 var app = angular.module("lcApp", ["ui.router", "ngTable"])/*, 'ui.bootstrap', 'ui.bootstrap.modal'*/
\r
21 /*.run(function($rootScope, $location, $state, LoginService) {
\r
22 $rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams){
\r
23 if (toState.authenticate && !LoginService.isAuthenticated()){
\r
24 // User isn’t authenticated
\r
25 $state.transitionTo("login");
\r
26 event.preventDefault();
\r
30 .run(function($rootScope, $location, $state, $stateParams) {
\r
31 $rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams){
\r
32 console.log("STATE CHANGE toState " + JSON.stringify(toState));
\r
33 console.log("STATE CHANGE fromState " + JSON.stringify(toParams));
\r
34 if($stateParams.id && toState.name == "home.lcTabs" && toParams.id == fromParams.id) {
\r
35 //$state.transitionTo("home.lcTabs.detailInfo");
\r
36 $state.go('home.lcTabs.detailInfo', {'id': toParams.id});
\r
37 event.preventDefault();
\r
40 $rootScope.$on('$viewContentLoaded', function() {
\r
46 /*.provider('modalState', function($stateProvider) {
\r
47 var provider = this;
\r
48 this.$get = function() {
\r
51 this.state = function(stateName, options) {
\r
53 $stateProvider.state(stateName, {
\r
55 onEnter: function($modal, $state) {
\r
56 modalInstance = $modal.open(options);
\r
57 modalInstance.result['finally'](function() {
\r
58 modalInstance = null;
\r
59 if ($state.$current.name === stateName) {
\r
64 onExit: function() {
\r
65 if (modalInstance) {
\r
66 modalInstance.close();
\r
74 .config(function($stateProvider, $urlRouterProvider, $urlMatcherFactoryProvider){/*modalStateProvider*/
\r
75 //$routeProvider.caseInsensitiveMatch = true;
\r
76 $urlMatcherFactoryProvider.caseInsensitive(true);
\r
77 $urlRouterProvider.otherwise('/home');
\r
78 //$locationProvider.html5Mode(true).hashPrefix('!');
\r
84 templateUrl : "templates/home.html",
\r
85 controller : "homeCtrl"
\r
88 .state("home.lcTabs", {
\r
90 templateUrl : "templates/lctabs.html",
\r
91 controller : "lcTabsCtrl"
\r
93 .state("home.lcTabs.detailInfo", {
\r
94 url : "/detailInfo",
\r
95 templateUrl : "templates/detailInfo.html",
\r
96 controller : "detailInfoCtrl"
\r
98 /*.state("home.lcTabs.detailInfo1", {
\r
99 url : "/detailInfo",
\r
100 templateUrl : "templates/detailInfo.html",
\r
101 controller : "detailInfoCtrl"
\r
103 .state("home.lcTabs.topo", {
\r
105 templateUrl : "templates/topo.html",
\r
106 controller : "topoCtrl"
\r
108 .state("home.lcTabs.inputData", {
\r
109 url : "/inputData",
\r
110 templateUrl : "templates/inputData.html",
\r
111 controller : "inputDataCtrl"
\r
113 .state("home.lcTabs.detailInfo.nfvoDetail", {
\r
114 url : "/nfvoDetailInfo",
\r
115 templateUrl: "templates/nfvoDetail.html",
\r
116 controller: "nfvoDetailCtrl"
\r
119 .state("home.lcTabs.detailInfo.vpnManager", {
\r
120 url : "/vpnManager",
\r
121 templateUrl : "templates/vpnManager.html",
\r
122 controller : "vpnManagerCtrl"
\r
124 .state("home.lcTabs.detailInfo.vpnManager.overlayVPN", {
\r
125 url: "/overlayVPN",
\r
126 templateUrl : "templates/overlayVPN.html",
\r
127 controller : "overlayVPNCtrl"
\r
129 .state("home.lcTabs.detailInfo.vpnManager.underlayVPN", {
\r
130 url: "/underlayVPN",
\r
131 templateUrl : "templates/underlayVPN_L3.html",
\r
132 controller : "underlayVPNCtrl"
\r
135 .state("home.lcTabs.detailInfo.vpnManager.overlayVPN.overlayTabs", {
\r
136 url: "/overlayTabs/:overlayId",
\r
137 templateUrl : "templates/overlayTabs.html",
\r
138 controller : "overlayTabsCtrl"
\r
140 .state("home.lcTabs.detailInfo.vpnManager.overlayVPN.overlayTabs.vpnConnections", {
\r
141 url: "/vpnConnections",
\r
142 templateUrl : "templates/vpnConnections.html",
\r
143 controller : "vpnConnectionsCtrl"
\r
145 .state("home.lcTabs.detailInfo.vpnManager.overlayVPN.overlayTabs.vpnGateway", {
\r
146 url: "/vpnGateway",
\r
147 templateUrl : "templates/vpnGateway.html",
\r
148 controller : "vpnGatewayCtrl"
\r
150 .state("home.lcTabs.detailInfo.vpnManager.overlayVPN.overlayTabs.siteList", {
\r
152 templateUrl : "templates/siteList.html",
\r
153 controller : "siteListCtrl"
\r
155 .state("home.lcTabs.detailInfo.vpnManager.overlayVPN.overlayTabs.vpcList", {
\r
157 templateUrl : "templates/vpcList.html",
\r
158 controller : "vpcListCtrl"
\r
160 /*modalStateProvider.state("home.lcTabs1", {
\r
162 templateUrl: 'templates/lctabs.html'
\r
167 .controller('homeCtrl', function($scope, $compile, $state, $log, $timeout, DataService, NgTableParams) {
\r
168 $scope.param="lctableData";
\r
169 $scope.init = function() {
\r
170 jQuery.i18n.properties({
\r
171 language : 'en-US',
\r
172 name : 'lcm-template-parameters-i18n',
\r
176 if(!DataService.getTableDataLoaded()) {
\r
177 DataService.loadGetServiceData()
\r
178 .then(function (response) {
\r
179 if (response.data) {
\r
180 $scope.tableData = response.data;
\r
181 var tableData = response.data;
\r
183 //$timeout(loadTableData, 0);
\r
186 $scope.error = "Error!";
\r
188 //$timeout(loadTableData, 0);
\r
190 }, function (reason) {
\r
191 $scope.error = "Error ! " + reason;
\r
193 //$timeout(loadTableData, 0);
\r
195 DataService.setTableDataLoaded();
\r
197 $('#scalingTypeIn').on("change", function (e) {
\r
198 var value = $(e.target).val();
\r
199 if ('on' === value) {
\r
200 $('#scalingTypeIn').attr("checked", "checked");
\r
201 $('#scalingTypeOut').removeAttr("checked");
\r
204 $('#scalingTypeOut').on("change", function (e) {
\r
205 var value = $(e.target).val();
\r
206 if ('on' === value) {
\r
207 $('#scalingTypeOut').attr("checked", "checked");
\r
208 $('#scalingTypeIn').removeAttr("checked");
\r
214 $scope.callLcTab = function(id) {
\r
215 /*console.log("Call ME as hi" + id);
\r
216 $scope.param="lcTabData";
\r
217 DataService.getAllData($scope.param)
\r
218 .then(function (data) {
\r
220 $scope.lctabsData = data;
\r
221 console.log("bye"+data.id);
\r
225 $scope.error = "Incorrect username/password !";
\r
227 }, function (reason) {
\r
228 $scope.error = "Incorrect username/password !";
\r
231 $scope.row_id = id;*/
\r
233 $scope.callModal = function(id) {
\r
234 console.log("Call ME as " + id);
\r
235 // $scope.row_id = id;
\r
236 //$state.go('home.lcTabs', {'id': id});
\r
237 //$("#popupModal").modal();
\r
238 /*$state.go('home.lcTabs.detailInfo', {'id': id});*/
\r
241 function loadTabData() {
\r
242 console.log("hi tab");
\r
243 var tab_tpl = $(lcmModelTemplate).filter('#tabs').html();
\r
244 var html = Mustache.to_html(tab_tpl, $scope.lctabsData.tabData);
\r
245 $('#lctabArea').html(html);
\r
248 function loadTableData() {
\r
249 console.log("In loadData()");
\r
251 var def_button_tpl = $(lcmModelTemplate).filter('#defaultButtons').html();
\r
252 var def_iconbutton_tpl = $(lcmModelTemplate).filter('#defaultIconButtons').html();
\r
253 /*var add_data = {"title":"Add", "clickAction":"showAddModal()"};*/
\r
254 var add_data = {"title":"Create", "type":"btn btn-default", "gType": "glyphicon-plus", "iconPosition":"left", "clickAction":"showAddModal()"};
\r
255 var delete_data = {"title":"Delete Selected", "clickAction":"deleteData()"};
\r
256 var addhtml = Mustache.to_html(def_iconbutton_tpl, add_data);
\r
257 var deletehtml = Mustache.to_html(def_button_tpl, delete_data);
\r
258 $('#lcTableAction').html($compile(addhtml)($scope));
\r
259 //$('#lcTableAction').append($compile(deletehtml)($scope));
\r
261 $scope.checkboxes = { 'checked': false, items: {} };
\r
263 $scope.tableParams = new NgTableParams({count: 5, sorting: {name: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
264 }, { counts:[5, 10, 15], dataset: $scope.tableData});
\r
266 $scope.$watch('checkboxes.checked', function(value) {
\r
267 $scope.checkboxes.items = [];
\r
268 angular.forEach($scope.tableParams.data, function(item) {
\r
269 if (angular.isDefined(item.id)) {
\r
270 $scope.checkboxes.items[item.id] = value;
\r
275 $scope.tableParams_tpDetails = new NgTableParams({count: 5, sorting: {tp_name: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
276 }, { counts:[5, 10, 15], dataset: $scope.tableData});
\r
279 $scope.selectedRow = null; // initialize our variable to null
\r
280 $scope.setClickedRow = function(index, id){ //function that sets the value of selectedRow to current index
\r
281 $scope.selectedRow = index;
\r
282 console.log("Selected Row : " +id+" is "+ $scope.selectedRow);
\r
283 //$state.go('home.lcTabs', {'id': id});
\r
284 $state.go('home.lcTabs.detailInfo', {'id': id});
\r
289 var text = $(lcmModelTemplate).filter('#textfield').html();
\r
290 var number = $(lcmModelTemplate).filter('#numeric').html();
\r
291 var dropDown = $(lcmModelTemplate).filter('#simpleDropdownTmpl').html();
\r
293 var dataText = {"ErrMsg" : {"errmsg" : "Service name is required.", "modalVar":"lifecycleData.serviceName", "placeholder":"", "errtag":"lcnameErr", "errfunc":"validatename", "required":true}};
\r
295 $('#myModal .serviceName').html($compile(Mustache.to_html(text, dataText.ErrMsg))($scope));
\r
297 var serviceDescriptionText = {"ErrMsg" : {"errmsg" : "Description is required.", "modalVar":"lifecycleData.description", "placeholder":"", "errtag":"lctemplateErr", "errfunc":"validatetemplate", "required":true}};
\r
299 $('#myModal .serviceDescription').html($compile(Mustache.to_html(text, serviceDescriptionText.ErrMsg))($scope));
\r
301 //var creatorText = {"ErrMsg" : {"textboxErr" : "Creator is required.", "modalVar":"lifecycleData.creator", "placeholder":"Creator"}};
\r
303 "dropSimple_data": {
\r
304 "title": "--Select--",
\r
306 {"itemLabel": "1.1"}, {"itemLabel": "1.2"}
\r
310 $('#myModal #plainDropDown').html($compile(Mustache.to_html(dropDown, $scope.data.dropSimple_data))($scope));*/
\r
312 DataService.generateTemplatesComponent()
\r
313 .then(function (tmplatesResponse) {
\r
314 console.log("Data Template :: ");
\r
315 $log.info(tmplatesResponse);
\r
316 var templatesInfo = translateToTemplatesInfo(tmplatesResponse);
\r
317 document.getElementById("svcTempl").innerHTML = templatesInfo;
\r
318 // $scope.optionsValue = tmplatesResponse;
\r
319 /* var dropSimple_data = {
\r
320 "errmsg" : "Service template is required.",
\r
321 "modalVar" : "lifecycleData.optSelect",
\r
322 "labelField" : "templateName",
\r
323 "optionsValue" : JSON.stringify(templatesInfo),
\r
324 "errtag":"lcdropdownErr",
\r
325 "errfunc":"validatedropdown",
\r
328 //$('#myModal #plainDropDown').html($compile(Mustache.to_html(dropDown, dropSimple_data))($scope));
\r
329 }, function (reason) {
\r
330 $scope.error = "Error ! " + reason;
\r
334 //$('#myModal .creator').html($compile(Mustache.to_html(text, creatorText.ErrMsg))($scope));
\r
336 var modelSubmit_data = {"title":"Submit", "clickAction":"saveData()"};
\r
337 var modelSubmit_html = Mustache.to_html(def_button_tpl, modelSubmit_data);
\r
338 $('#myModal #footerBtns').html($compile(modelSubmit_html)($scope));
\r
340 var modelDelete_data = {"title":"Close", "clickAction":"closeModal()"};
\r
341 var modelDelete_html = Mustache.to_html(def_button_tpl, modelDelete_data);
\r
342 $('#myModal #footerBtns').append($compile(modelDelete_html)($scope));
\r
348 * generate templates html string
\r
352 function translateToTemplatesInfo(templates) {
\r
353 var options = '<option value="select">--select--</option>';
\r
355 for (i = 0; i < templates.length; i += 1) {
\r
356 var option = '<option value="' + templates[i].serviceTemplateId + '">' + templates[i].templateName
\r
358 options = options + option;
\r
364 $scope.validatetextbox = function (value){
\r
365 if($scope.lifecycleData.service_name) {
\r
366 $scope.textboxErr = false;
\r
369 $scope.textboxErr = true;
\r
373 $scope.checkAll = function() {
\r
374 console.log("Checked ..");
\r
375 angular.forEach($scope.tableData, function(data) {
\r
376 //data.select = $scope.selectAll;
\r
377 $scope.checkboxes.items[data.id]
\r
380 $scope.test = function(id) {
\r
381 $state.go('home.lcTabs.detailInfo', {'id': id});
\r
385 $scope.validatename = function (value){
\r
386 if($scope.lifecycleData.serviceName) {
\r
387 $scope.lcnameErr = false;
\r
390 $scope.lcnameErr = true;
\r
395 $scope.validatetemplate = function (value){
\r
396 if($scope.lifecycleData.description) {
\r
397 $scope.lctemplateErr = false;
\r
400 $scope.lctemplateErr = true;
\r
402 $scope.validatedropdown = function (value){
\r
403 if($scope.lifecycleData.optSelect || $("#svcTempl").val()) {
\r
404 $scope.lcdropdownErr = false;
\r
407 $scope.lcdropdownErr = true;
\r
410 $scope.templateParam = function() {
\r
412 // var template = $scope.lifecycleData.optSelect;
\r
414 template.serviceTemplateId = $("#svcTempl").val();
\r
415 var lastSelTempCreateParam = DataService.getCreateParamJsonObj();
\r
416 if(template == undefined){
\r
417 document.getElementById("templateParameters").innerHTML = "";
\r
420 //if the template not changed, no need to update the page.
\r
421 if(lastSelTempCreateParam.templateId == template.serviceTemplateId && document.getElementById("templateParameters").innerHTML != ""){
\r
424 $.when(DataService.generateCreateParameters(template))
\r
425 .then(function (tmplatesParamResponse) {
\r
426 console.log("Data Param Template :: ");
\r
427 $log.info(tmplatesParamResponse);
\r
428 document.getElementById("templateParameters").innerHTML = tmplatesParamResponse;
\r
429 }, function (reason) {
\r
430 $scope.error = "Error ! " + reason;
\r
438 $scope.showAddModal = function() {
\r
439 console.log("Showing Modal to Add data");
\r
440 //$scope.lifecycleData = {};
\r
441 //$scope.textboxErr = false;
\r
442 //$("#myModal").modal();
\r
443 $("#myModal").modal({}).draggable();
\r
445 $scope.closeModal = function() {
\r
446 console.log("Closing Modal...");
\r
447 $('#myModal').modal('hide');
\r
451 $scope.editData = function(id) {
\r
452 $scope.textboxErr = false;
\r
453 $scope.ipv4Err = false;
\r
454 $scope.numericErr = false;
\r
455 console.log("To be edited : " + id);
\r
456 var dataFound = false;
\r
457 angular.forEach($scope.tableData, function(data) {
\r
459 if (data.id == id) {
\r
460 console.log("Found : " + data.id);
\r
461 $scope.lifecycleData = data;
\r
462 /*$scope.province.province_name = data.province_name;
\r
463 $scope.province.ip = data.ip;
\r
464 $scope.province.port = data.port;*/
\r
466 $("#myModal").modal();
\r
473 $scope.saveData = function() {
\r
474 //collect service base info
\r
475 var serviceBaseInfo = {
\r
476 'name' : $scope.lifecycleData.serviceName,
\r
477 'description' : $scope.lifecycleData.description,
\r
478 //'templateId' : $scope.lifecycleData.optSelect.serviceTemplateId
\r
479 'templateId' : $("#svcTempl").val()
\r
482 $.when(DataService.createService(serviceBaseInfo))
\r
483 .then(function (response) {
\r
484 $log.info(response);
\r
485 if(response.status === 'checkfailed'){
\r
487 }else if (response.status === 'finished') {
\r
488 $.when(queryService(response.serviceId)).then(function(serviceInstance){
\r
489 $scope.tableData.push(serviceInstance);
\r
491 $scope.tableParams.reload();
\r
492 $('#myModal').modal('hide');
\r
495 showErrorMessage('Create service failed',response);
\r
499 $scope.deleteIndividualData = function(id){
\r
500 var deleteHandle = function(result) {
\r
502 var remove = function() {
\r
504 for(var i= 0; i < $scope.tableData.length; i++){
\r
505 if($scope.tableData[i].serviceId === id){
\r
510 $scope.tableData.splice(pos, 1);
\r
512 $scope.tableParams.reload();
\r
514 $.when(DataService.deleteService(id))
\r
515 .then(function(response) {
\r
516 if (response.status === 'finished') {
\r
519 showErrorMessage('Delete service failed',response);
\r
524 bootbox.confirm("Do you confirm to delete service?", deleteHandle);
\r
527 $scope.scaleData = function (id) {
\r
528 var nsInstanceId = id;
\r
529 $('#scaleNS').click(
\r
531 var scaleIn = $('#scalingTypeIn').attr('checked');
\r
532 var scaleType = scaleIn === undefined ? 'SCALE_OUT' : 'SCALE_IN';
\r
533 var aspectId = $('#scalingAspect').val();
\r
534 var numberOfSteps = $('#numberOfSteps').val();
\r
535 var resultHandleFun = function(response) {
\r
536 if (response.status === 'finished') {
\r
537 console.log('scale successfully!');
\r
539 console.log('Scaling service failed! ' + response);
\r
540 //showErrorMessage('Scaling service failed',response);
\r
543 DataService.scaleService(nsInstanceId, scaleType, aspectId, numberOfSteps, resultHandleFun);
\r
544 $('#scaleNS').unbind('click');
\r
547 $('#scaleOptionDialog').modal();
\r
552 .controller('lcTabsCtrl', function($scope, $state, $stateParams) {
\r
553 //console.log("$stateParams.id:: " + $stateParams.id);
\r
554 //$state.transitionTo("home.lcTabs({id: "+$stateParams.id+"})");
\r
557 $state.go('home.lcTabs.detailInfo', {'id': $stateParams.id});
\r
561 .controller('detailInfoCtrl', function($scope, $stateParams, $compile, DataService) {
\r
562 console.log("detailInfoCtrl --> $stateParams.id:: " + $stateParams.id);
\r
563 //$scope.currentId = $stateParams.id;
\r
564 $scope.rightPanelHeader = "VPN Manager";
\r
565 var rowData = DataService.getSavedLCData($stateParams.id);
\r
567 if(rowData.serviceType === "SDNO" || rowData.serviceType === "NFVO"){
\r
568 jsonData[0] = {"id": $stateParams.id, "name": rowData.serviceType};
\r
571 jsonData = DataService.loadServiceTopoSequence($stateParams.id);
\r
573 $(".accordion").html("");
\r
574 for (var i = 0; i < jsonData.length; i++) {
\r
575 //console.log("jsonData Name: " + jsonData[i].name);
\r
576 if (jsonData[i].name == "SDNO") {
\r
577 //$("#sdnoLink").text(jsonData[i].name.toUpperCase());
\r
578 //console.log("Adding Accordian to SDNO");
\r
579 $(".accordion").append($compile(addAccordionData("sdno", jsonData[i].name.toUpperCase(), jsonData[i].id))($scope));
\r
581 else if (jsonData[i].name == "NFVO") {
\r
582 //console.log("Adding Accordian to NFVO");
\r
583 $(".accordion").append($compile(addAccordionData("nfvo", jsonData[i].name.toUpperCase(), jsonData[i].id))($scope));
\r
590 function addAccordionData(type, text, id) {
\r
591 console.log("id:"+id);
\r
593 content += '<div class="panel panel-default"><div class="panel-heading">';
\r
594 content += '<h6 class="panel-title">';
\r
595 content += '<a style="text-decoration:none;" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne_'+type+'" ui-sref=".vpnManager" ui-sref-active="link_active_DetailInfo" href="#/home/lcTabs/'+id+'/detailInfo/vpnManager">';
\r
596 content += '<span id="sdnoLink">'+text+'</span></a>';
\r
597 content += '</h6></div>';
\r
598 if(type == "sdno") {
\r
599 content += '<div id="collapseOne_' + type + '" class="panel-collapse collapse in">';
\r
601 content += '<div id="collapseOne_' + type + '" class="panel-collapse collapse">';
\r
603 //content += '<div id="collapseOne_' + type + '" class="panel-collapse collapse" ui-sref=".vpnManager" ui-sref-active="link_active_DetailInfo">';
\r
605 content += '<ul class="list-group nomargin">';
\r
607 if(type == "sdno") {
\r
608 /*content += '<li id="overLink" class="list-group-item selected textAlign"><span class="glyphicon glyphicon-pencil text-primary pencilimg"></span><a ui-sref=".overlayVPN" ui-sref-active="link_active_DetailInfo" href="#/home/lcTabs/'+id+'/detailInfo/overlayVPN">Overlay VPN</a>';
\r
609 content += '</li>';
\r
610 content += '<li id="underLink" class="list-group-item textAlign"><span class="glyphicon glyphicon-pencil text-primary pencilimg"></span><a ui-sref=".underlayVPN" ui-sref-active="link_active_DetailInfo" href="#/home/lcTabs/'+id+'/detailInfo/underlayVPN">Underlay VPN</a>';
\r
611 content += '</li>';*/
\r
613 else if(type == "gso"){
\r
614 //content += '<li id="linkgso" class="list-group-item textAlign"><!--<span class="glyphicon glyphicon-pencil text-primary"></span>--><span class="glyphicon glyphicon-pencil text-primary pencilimg"></span><span>OPEN-O</span></li>';
\r
616 else if(type == "nfvo"){
\r
617 //content += '<li id="linknfvo" class="list-group-item textAlign"><span class="glyphicon glyphicon-pencil text-primary pencilimg"></span><span>ZTE</span></li>';
\r
619 content += '</ul></div></div>';
\r
624 .controller('topoCtrl', function($scope, $stateParams, $log, DataService) {
\r
625 console.log("vpnManagerCtrl --> $stateParams.id:: " + $stateParams.id);
\r
626 $scope.msg = $stateParams.id;
\r
629 /*-------------------------------------------------------------------------------VPN Manager---------------------------------------------------------------------*/
\r
631 .controller('vpnManagerCtrl', function($scope, $stateParams, $log, DataService) {
\r
632 console.log("vpnManagerCtrl --> $stateParams.id:: " + $stateParams.id);
\r
633 //$scope.rightPanelHeader = "VPN Manager";
\r
634 /*var vtab_tpl = $(lcmModelTemplate).filter('#vtabs').html();
\r
637 "tablabel": "Overlay VPN",
\r
640 "tablabel": "Underlay VPN",
\r
644 var html = Mustache.to_html(vtab_tpl, vTabData);
\r
645 $('#vpnLinks').html(html);*/
\r
649 /*-------------------------------------------------------------------------------OverlayVPN---------------------------------------------------------------------*/
\r
651 .controller("overlayVPNCtrl", function($scope, $rootScope, $compile, DataService, NgTableParams){
\r
652 $scope.message = "Overlay VPN";
\r
654 $scope.init = function() {
\r
655 //console.log("Overlay VPN... ng-init + " + $rootScope.lcmModelTemplate);
\r
656 DataService.getOverlayData()
\r
657 .then(function(data){
\r
658 $scope.overlayData = data.overlayData;
\r
659 console.log("Data: ");
\r
661 }, function(reason){
\r
662 $scope.message = "Error is :" + JSON.stringify(reason);
\r
665 function loadButtons() {
\r
666 //console.log("Got it : " + $scope.$parent.getTemplate("defaultButtons"));
\r
667 /*var def_button_tpl = $(lcmModelTemplate).filter('#defaultButtons').html();
\r
668 console.log("template: " + def_button_tpl);
\r
670 var delete_data = {"title":"Delete Selected", "clickAction":"deleteData()"};
\r
671 var deletehtml = Mustache.to_html(def_button_tpl, delete_data);
\r
672 $('div.overlayAction').html($compile(deletehtml)($scope));*/
\r
674 $scope.tableParams = new NgTableParams({count: 3, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
675 }, { counts:[], dataset: $scope.overlayData});
\r
677 $scope.checkboxes = { 'checked': false, items: {} };
\r
679 $scope.$watch('checkboxes.checked', function(value) {
\r
680 $scope.checkboxes.items = [];
\r
681 angular.forEach($scope.tableParams.data, function(item) {
\r
682 if (angular.isDefined(item.id)) {
\r
683 $scope.checkboxes.items[item.id] = value;
\r
688 $scope.checkAll = function() {
\r
689 console.log("Checked ..");
\r
690 angular.forEach($scope.overlayData, function(data) {
\r
691 $scope.checkboxes.items[user.id]
\r
695 $scope.rowHighilited=function(row)
\r
697 $scope.selectedRow = row;
\r
702 /*-------------------------------------------------------------------------------UnderlayVPN---------------------------------------------------------------------*/
\r
704 .controller("underlayVPNCtrl", function($scope, $rootScope, $compile, DataService, NgTableParams){
\r
705 $scope.message = "Underlay VPN";
\r
706 $scope.tpTableShowing = false;
\r
708 $scope.init = function() {
\r
709 //console.log("Underlay VPN... ng-init + " + $rootScope.lcmModelTemplate);
\r
710 DataService.getUnderlayData()
\r
711 .then(function(response){
\r
712 $scope.underlayVPN = response.data.underlayVPN;
\r
713 console.log("Data: ");
\r
715 }, function(reason){
\r
716 $scope.message = "Error is :" + JSON.stringify(reason);
\r
719 function loadButtons() {
\r
720 /*var def_button_tpl = $(lcmModelTemplate).filter('#defaultButtons').html();
\r
721 //console.log("template: " + def_button_tpl);
\r
723 var delete_data = {"title":"Delete Selected", "clickAction":"deleteData()"};
\r
724 var deletehtml = Mustache.to_html(def_button_tpl, delete_data);
\r
725 $('div.underlayAction').html($compile(deletehtml)($scope));*/
\r
727 $scope.tableParams = new NgTableParams({count: 5, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
728 }, { counts:[5, 10], dataset: $scope.underlayVPN});
\r
730 $scope.checkboxes = { 'checked': false, items: {} };
\r
732 $scope.$watch('checkboxes.checked', function(value) {
\r
733 $scope.checkboxes.items = [];
\r
734 angular.forEach($scope.tableParams.data, function(item) {
\r
735 if (angular.isDefined(item.id)) {
\r
736 $scope.checkboxes.items[item.id] = value;
\r
741 /*$scope.tableParams_tpDetails = new NgTableParams({count: 5, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
742 }, { counts:[5, 10], dataset: $scope.underlayVPN.tp_details});*/
\r
744 $scope.checkAll = function() {
\r
745 console.log("Checked ..");
\r
746 angular.forEach($scope.underlayVPN.underlayData, function(data) {
\r
747 $scope.checkboxes.items[data.id]
\r
751 $scope.loadTPLinkData = function(id, row){
\r
752 $scope.selectedRow = row;
\r
753 $scope.tpTableShowing = true;
\r
754 console.log("Underlay table row click");
\r
755 var tp_detData = DataService.getTPLinkData(id);
\r
756 $scope.tableParams_tpDetails = new NgTableParams({count: 5, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
757 }, { counts:[5, 10], dataset: tp_detData});
\r
760 $scope.rowHighilited=function(row)
\r
762 $scope.selectedRow = row;
\r
767 .controller('inputDataCtrl', function($scope, $stateParams, $log, DataService) {
\r
768 console.log("inputDataCtrl --> $stateParams.id:: " + $stateParams.id);
\r
769 var rowData = DataService.getSavedLCData($stateParams.id);
\r
770 $scope.inputData = rowData.inputParameters;
\r
771 $log.info($scope.inputData);
\r
772 $("div.inputDataElements").html("");
\r
773 $("div.inputDataElements").append(convertInputsToUI('', 'show', $scope.inputData));
\r
777 .controller('nfvoDetailCtrl', function($scope, $stateParams, $compile, DataService) {
\r
778 console.log("nfvoDetailCtrl --> $stateParams.id:: " + $stateParams.id);
\r
779 //$scope.currentId = $stateParams.id;
\r
781 var jsonData = DataService.loadNfvoServiceDetails($stateParams.id);
\r
782 var table_tpl = $(lcmModelTemplate).filter('#table').html();
\r
783 var vnfData = fetchDataForVnf(jsonData);
\r
784 $('#vnfInfoTable').html(Mustache.to_html(table_tpl, vnfData));
\r
786 var vlData = fetchDataForVl(jsonData);
\r
787 $('#vlInfoTable').html(Mustache.to_html(table_tpl, vlData));
\r
789 var vnffgData = fetchDataForVnffg(jsonData);
\r
790 $('#vnffgInfoTable').html(Mustache.to_html(table_tpl, vnffgData));
\r
792 function fetchDataForVnf(jsonData) {
\r
793 var header = ["Vnf instance Name"];
\r
794 var rowData = jsonData.vnfInfoId.map(function (vnfInfo) {
\r
795 return {"values": [vnfInfo.vnfInstanceName]}
\r
797 return {"itemHeader": header,"rowitem": rowData,"striped": false,"border": true,"hover": true,"condensed": false,"filter": false,"action": "","searchField": ""}
\r
800 function fetchDataForVl(jsonData) {
\r
801 var header = ["Network Resource Name","Link Port Resource Name"];
\r
802 var rowData = jsonData.vlInfo.map(function (vl) {
\r
803 return {"values": [vl.networkResource.resourceName, vl.linkPortResource.resourceName]}
\r
805 return {"itemHeader": header,"rowitem": rowData,"striped": false,"border": true,"hover": true,"condensed": false,"filter": false,"action": "","searchField": ""}
\r
808 function fetchDataForVnffg(jsonData) {
\r
809 var header = ["vnfInstanceId of vnffg instance","vlInstanceId of vnffg instance","cpInstanceId of vnffg instance", "nfpInstanceId of vnffg instance"];
\r
810 var rowData = jsonData.vnffgInfo.map(function (vnffg) {
\r
811 return {"values": [vnffg.vnfId, vnffg.virtualLinkId, vnffg.cpId, vnffg.nfp]}
\r
813 return {"itemHeader": header,"rowitem": rowData,"striped": false,"border": true,"hover": true,"condensed": false,"filter": false,"action": "","searchField": ""}
\r
818 .controller('overlayTabsCtrl', function($scope, $state) {
\r
819 $state.go('home.lcTabs.detailInfo.vpnManager.overlayVPN.overlayTabs.vpnConnections');
\r
822 .controller('vpnConnectionsCtrl', function($scope, $stateParams, NgTableParams, DataService) {
\r
823 $scope.message = "VPN Connections";
\r
824 var rowData = DataService.getOverlayVPNConnData($stateParams.overlayId, "vpnConnections");
\r
825 $scope.vpnConnTable = new NgTableParams({count: 5, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
826 }, { counts:[5, 10], dataset: rowData});
\r
829 .controller('vpnGatewayCtrl', function($scope, $stateParams, NgTableParams, DataService) {
\r
830 $scope.message = "VPN Gateway";
\r
831 var rowData = DataService.getOverlayVPNConnData($stateParams.overlayId, "vpnGateways");
\r
832 $scope.vpnGateTable = new NgTableParams({count: 5, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
833 }, { counts:[5, 10], dataset: rowData});
\r
836 .controller('siteListCtrl', function($scope, $stateParams, NgTableParams, DataService) {
\r
837 $scope.message = "Site List";
\r
838 //var rowData = DataService.getSiteListData();
\r
839 DataService.getSiteListData()
\r
840 .then(function (response) {
\r
841 $scope.siteListData = response.sites;
\r
842 $scope.siteTable = new NgTableParams({count: 5, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
843 }, { counts:[5, 10], dataset: $scope.siteListData});
\r
844 }, function (reason) {
\r
845 $scope.message = "Error is :" + JSON.stringify(reason);
\r
849 .controller('vpcListCtrl', function($scope, $stateParams, NgTableParams, DataService) {
\r
850 $scope.message = "VPN List";
\r
851 var rowData = DataService.getOverlayVPNConnData($stateParams.overlayId, "vpcList");
\r
852 $scope.vpcListTable = new NgTableParams({count: 5, sorting: {id: 'asc'} //{page: 1,count: 10,filter: {name: 'M'},sorting: {name: 'desc'}
\r
853 }, { counts:[5, 10], dataset: rowData});
\r
860 var lcmModelTemplate = "";
\r
861 function loadTemplate() {
\r
863 $.get('/openoui/framework/template.html', function (template) {
\r
864 lcmModelTemplate += template;
\r
866 $.get('/openoui/framework/templateContainer.html', function (template) {
\r
867 lcmModelTemplate += template;
\r
869 $.get('/openoui/framework/templateWidget.html', function (template) {
\r
870 //console.log("Template is : "+template);
\r
871 lcmModelTemplate += template;
\r
873 $.get('/openoui/framework/templateNotification.html', function (template) {
\r
874 lcmModelTemplate += template;
\r
876 $.get('/openoui/framework/templateFunctional.html', function (template) {
\r
877 lcmModelTemplate += template;
\r