X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=sdnc-a1-controller%2Foam%2Fconfigbackuprestore%2Fvnfconfigbackupservice%2Fsrc%2Fmain%2Fwebapp%2Fjs%2Fsdnc-controller%2Fsdnc-viewreport-controller.js;fp=sdnc-a1-controller%2Foam%2Fconfigbackuprestore%2Fvnfconfigbackupservice%2Fsrc%2Fmain%2Fwebapp%2Fjs%2Fsdnc-controller%2Fsdnc-viewreport-controller.js;h=951ac5d53b9439a6f0be86899b49eb9b7043c56b;hb=b6fe5a1bbad372357f6b441e1657dd8bbe48dc1a;hp=0000000000000000000000000000000000000000;hpb=4e0c72d8a2570e256911eab7cc34f770a1aa327a;p=nonrtric.git diff --git a/sdnc-a1-controller/oam/configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-viewreport-controller.js b/sdnc-a1-controller/oam/configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-viewreport-controller.js new file mode 100644 index 00000000..951ac5d5 --- /dev/null +++ b/sdnc-a1-controller/oam/configbackuprestore/vnfconfigbackupservice/src/main/webapp/js/sdnc-controller/sdnc-viewreport-controller.js @@ -0,0 +1,519 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : SDNC-FEATURES + * ================================================================================ + * Copyright 2018 TechMahindra + *================================================================================= + * Licensed 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. + * ============LICENSE_END========================================================= + */ + +myApp.controller( + 'ReportController', + [ + '$scope', + '$http', + '$filter', + 'viewReportService', + 'growl', + function($scope, $http, $filter, viewReportService, + growl) { + $scope.isDisabled = true; + $scope.pagination = false; + $scope.selectedDevice; + $scope.ShowResult = false; + $scope.dateValidation = false; + $scope.NoSearchResult = false; + $scope.showError = false; + $scope.errorMessage = ""; + $scope.showSuccess = false; + $scope.successMessage = ""; + $scope.showWarning = false; + $scope.warningMessage = ""; + $scope.showExecutionDetails = true; + $scope.showData = false; + + $scope.gap = 2; + $scope.filteredItems = []; + $scope.groupedItems = []; + $scope.itemsPerPage = 5; + $scope.pagedItems = []; + $scope.currentPage = 0; + + // THIS FUNCTION WILL BE CALLED ON PAGE LOAD + $scope.getAllVNF = function() { + + viewReportService + .getAllVNF() + .then( + function(data) { + if (data != null) { + console.log(data); + $scope.objvnfList = data; + console + .log("ViewConfigCtrl:getAllVNF called" + + $scope.objvnfList); + } else { + $scope.warningMessage = "No VNF is eligible for configuration!!!"; + growl + .error( + $scope.warningMessage, + { + title : 'Warning!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + } + }); + }; + $scope.getAllVNF(); + + $scope.selectVnf = function(selectedValueVnf) { + + if (selectedValueVnf != null + && selectedValueVnf != "") { + console.log("selectedvnf Value", + selectedValueVnf); + var vnfId = selectedValueVnf; + $scope.ShowResult = true; + + } else { + $scope.ShowResult = false; + $scope.showCompare = false; + $scope.showResult = false; + $scope.errorMessage = "Please select a VNF!!!"; + growl.error($scope.errorMessage, { + title : 'Error!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + } + } + + // THIS FUNCTION WILL BE CALLED WHEN USER CLICK + // SUBMIT FROM UI + $scope.getReportsById = function(selectedValueVnf, + startdate, enddate) { + + $scope.ShowResult = true; + if (new Date(startdate) > new Date(enddate)) { + $scope.dateValidation = true; + $scope.showError = true; + $scope.errorMessage = "Start date cannot be greated than End date"; + growl.error($scope.errorMessage, { + title : 'Error!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + return false; + } + var date = new Date(startdate); + if (angular.isDefined(startdate)) { + $scope.startDate = startdate; + } + if (angular.isDefined(enddate)) { + $scope.endDate = enddate; + } + + $scope.startdate1 = $filter('date')( + $scope.startDate, 'dd-MM-yyyy'); + $scope.enddate1 = $filter('date')( + $scope.endDate, 'dd-MM-yyyy'); + if (startdate != null && enddate != null) { + + // service call to fetch the reports start + // date,end date,test name + viewReportService + .getDataById(selectedValueVnf, + $scope.startdate1, + $scope.enddate1) + .then( + function(result) { + console + .log( + "-----------------------------------ReportController::getdata called from controler--", + JSON + .stringify(result.data)); + if (result.status == 200) { + if (result.data != null + && result.data.length >= 1) { + + // in case of + // success, + // build the + // model object + // to store the + // service + // output here + $scope + .createTestReportModel(result.data);// result.data.data + } else { + $scope.ShowResult = false; + $scope.showWarning = true; + $scope.warningMessage = "No result found for specified Date !!"; + growl + .warning( + $scope.warningMessage, + { + title : 'Warning!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + } + } else { + $scope.ShowResult = false; + $scope.showWarning = true; + $scope.warningMessage = "No result found for specified Date !!"; + growl + .warning( + $scope.warningMessage, + { + title : 'Warning!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + } + }, + function(response) { + $scope.ShowError = true; + $scope.errorMessage = "Something went wrong, Please try again !!"; + growl + .error( + $scope.errorMessage, + { + title : 'Error!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + console + .log( + "--ReportController::getdata::Error--", + response); + }); + } + } + + // FUNCTION WILL BE CALLED WHEN USER CLICK DOWNLOAD + // FROM UI + $scope.exportToExcel = function(tableId) { // ex: + // '#my-table' + var exportHref = Excel.tableToExcel(tableId, + 'export'); + $timeout(function() { + location.href = exportHref; + }, 100); // trigger download + + console + .log("--ReportController::exportToexcel--"); + } + + $scope.createTestReportModel = function(result) { + + $scope.showError = false; + $scope.showWarning = false; + $scope.objTestReportModel = result; + $scope.objTestModel = []; + + if ($scope.objTestReportModel.length >= 1) { + for (var i = 0; i < $scope.objTestReportModel.length; i++) { + var objTestReport = {}; + objTestReport.vnfname = $scope.objTestReportModel[i].vnfname; + objTestReport.vnfid = $scope.objTestReportModel[i].vnfid; + objTestReport.versionNo = $scope.objTestReportModel[i].vnfversion; + objTestReport.createdAt = $scope.objTestReportModel[i].creationdate; + objTestReport.updatedAt = $scope.objTestReportModel[i].lastupdated; + objTestReport.status = $scope.objTestReportModel[i].status; + objTestReport.Id = $scope.objTestReportModel[i].id; + // objTestReport.configinfo = + // $scope.objVersionModel[i].configinfo; + $scope.objTestModel.push(objTestReport); + console + .log( + "--ReportController::CreateTestReportModel--", + JSON + .stringify($scope.objTestModel)); + + } + $scope.showresult = true; + $scope.pagination = true; + } + console + .log("--ReportController::createTestReportModel::final TestReportModel--" + + JSON + .stringify($scope.objTestModel)); + $scope.csvOrder = [ 'testname', 'timeStamp', + 'status', 'statistics', 'avgTime', + 'result' ]; + + } + + // THIS FUNCTION WILL BE CALLED WHEN USER CLICK + // SUBMIT FROM UI + $scope.getReports = function(startdate, enddate) { + + $scope.ShowResult = false; + if (new Date(startdate) > new Date(enddate)) { + $scope.dateValidation = true; + $scope.showError = true; + $scope.errorMessage = "Start date cannot be greated than End date"; + growl.error($scope.errorMessage, { + title : 'Error!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + return false; + } + var date = new Date(startdate); + /* + * if (angular.isDefined(deviceName)) { + * $scope.DeviceName = deviceName; } + */ + if (angular.isDefined(startdate)) { + $scope.startDate = startdate; + } + if (angular.isDefined(enddate)) { + $scope.endDate = enddate; + } + + $scope.startdate1 = $filter('date')( + $scope.startDate, 'dd-MM-yyyy'); + $scope.enddate1 = $filter('date')( + $scope.endDate, 'dd-MM-yyyy'); + if (startdate != null && enddate != null) { + + // service call to fetch the reports start + // date,end date,test name + viewReportService + .getData($scope.startdate1, + $scope.enddate1) + .then( + function(result) { + console + .log( + "-----------------------------------ReportController::getdata called from controler--", + JSON + .stringify(result.data)); + if (result.status == 200) { + if (result.data != null + && result.data.length >= 1) { + + // in case of + // success, + // build the + // model object + // to store the + // service + // output here + $scope + .createTestReportModel(result.data);// result.data.data + } else { + $scope.ShowResult = false; + $scope.showWarning = true; + $scope.warningMessage = "No result found for specified Date !!"; + growl + .warning( + $scope.warningMessage, + { + title : 'Warning!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + } + } else { + $scope.ShowResult = false; + $scope.showWarning = true; + $scope.warningMessage = "No result found for specified Date !!"; + growl + .warning( + $scope.warningMessage, + { + title : 'Warning!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + } + }, + function(response) { + $scope.ShowError = true; + $scope.errorMessage = "Something went wrong, Please try again !!"; + growl + .error( + $scope.errorMessage, + { + title : 'Error!', + globalDisableCloseButton : false, + ttl : 7000, + disableCountDown : true + }); + console + .log( + "--ReportController::getdata::Error--", + response); + }); + } + } + + // FUNCTION WILL BE CALLED WHEN USER CLICK DOWNLOAD + // FROM UI + $scope.exportToExcel = function(tableId) { // ex: + // '#my-table' + var exportHref = Excel.tableToExcel(tableId, + 'export'); + $timeout(function() { + location.href = exportHref; + }, 100); // trigger download + + console + .log("--ReportController::exportToexcel--"); + } + + $scope.createTestReportModel = function(result) { + + $scope.showError = false; + $scope.showWarning = false; + $scope.objTestReportModel = result; + $scope.objTestModel = []; + + if ($scope.objTestReportModel.length >= 1) { + for (var i = 0; i < $scope.objTestReportModel.length; i++) { + var objTestReport = {}; + objTestReport.vnfname = $scope.objTestReportModel[i].vnfname; + objTestReport.vnfid = $scope.objTestReportModel[i].vnfid; + objTestReport.versionNo = $scope.objTestReportModel[i].vnfversion; + objTestReport.createdAt = $scope.objTestReportModel[i].creationdate; + objTestReport.updatedAt = $scope.objTestReportModel[i].lastupdated; + objTestReport.status = $scope.objTestReportModel[i].status; + objTestReport.Id = $scope.objTestReportModel[i].id; + // objTestReport.configinfo = + // $scope.objVersionModel[i].configinfo; + $scope.objTestModel.push(objTestReport); + console + .log( + "--ReportController::CreateTestReportModel--", + JSON + .stringify($scope.objTestModel)); + + } + $scope.showresult = true; + $scope.pagination = true; + } + console + .log("--ReportController::createTestReportModel::final TestReportModel--" + + JSON + .stringify($scope.objTestModel)); + $scope.csvOrder = [ 'testname', 'timeStamp', + 'status', 'statistics', 'avgTime', + 'result' ]; + + // init + $scope.sort = { + sortingOrder : 'createdAt', + reverse : false + }; + + var searchMatch = function(haystack, needle) { + if (!needle) { + return true; + } + return haystack.toLowerCase().indexOf( + needle.toLowerCase()) !== -1; + }; + + // init the filtered items + $scope.search = function() { + $scope.filteredItems = $filter('filter')( + $scope.objTestModel, + function(item) { + for ( var attr in item) { + if (searchMatch(item[attr], + $scope.query)) + return true; + } + return false; + }); + // take care of the sorting order + if ($scope.sort.sortingOrder !== '') { + $scope.filteredItems = $filter( + 'orderBy')( + $scope.filteredItems, + $scope.sort.sortingOrder, + $scope.sort.reverse); + } + $scope.currentPage = 0; + // now group by pages + $scope.groupToPages(); + }; + + // calculate page in place + $scope.groupToPages = function() { + $scope.pagedItems = []; + + for (var i = 0; i < $scope.filteredItems.length; i++) { + if (i % $scope.itemsPerPage === 0) { + $scope.pagedItems[Math.floor(i + / $scope.itemsPerPage)] = [ $scope.filteredItems[i] ]; + } else { + $scope.pagedItems[Math.floor(i + / $scope.itemsPerPage)] + .push($scope.filteredItems[i]); + } + } + }; + + $scope.range = function(size, start, end) { + var ret = []; + console.log(size, start, end); + + if (size < end) { + end = size; + start = size - $scope.gap; + } + for (var i = start; i < end; i++) { + ret.push(i); + } + console.log(ret); + return ret; + }; + + $scope.prevPage = function() { + if ($scope.currentPage > 0) { + $scope.currentPage--; + } + }; + + $scope.nextPage = function() { + if ($scope.currentPage < $scope.pagedItems.length - 1) { + $scope.currentPage++; + } + }; + + $scope.setPage = function() { + $scope.currentPage = this.n; + }; + + // functions have been describe process the data + // for display + $scope.search(); + + } + + } ]); \ No newline at end of file