diff options
author | Timoney, Dan (dt5972) <dt5972@att.com> | 2018-03-06 09:16:06 -0500 |
---|---|---|
committer | Timoney, Dan (dt5972) <dt5972@att.com> | 2018-03-22 16:56:01 -0400 |
commit | 0e323c085b12c9d5e9a36fac7651102118c5694b (patch) | |
tree | 633450035206c20472e476198f3b862d5c5d0908 /SDNC-GUI-253/webapp/js/sdnc-controller/sdnc-viewreport-controller.js | |
parent | 392955307bdf767eac30447c49617efb8d6dc19a (diff) |
SDNC-253-GUI Patch I
SDNC-253-View All historical Reports Change-Id: I7b73a896697617cc27e2cc14012b5c325b1c0b6e
Issue-ID: SDNC-253
Change-Id: If8dcaed84c8fd4c6ec90898ccdb020d28bf5e2ae
Signed-off-by: Vandana_Chaurse <vc00494508@techmahindra.com>
Signed-off-by: Timoney, Dan (dt5972) <dt5972@att.com>
Diffstat (limited to 'SDNC-GUI-253/webapp/js/sdnc-controller/sdnc-viewreport-controller.js')
-rw-r--r-- | SDNC-GUI-253/webapp/js/sdnc-controller/sdnc-viewreport-controller.js | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/SDNC-GUI-253/webapp/js/sdnc-controller/sdnc-viewreport-controller.js b/SDNC-GUI-253/webapp/js/sdnc-controller/sdnc-viewreport-controller.js new file mode 100644 index 0000000..7fdc2d5 --- /dev/null +++ b/SDNC-GUI-253/webapp/js/sdnc-controller/sdnc-viewreport-controller.js @@ -0,0 +1,171 @@ +/* +* ============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', 'viewReportService', 'growl', function($scope, $http, 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; + + //THIS FUNCTION WILL BE CALLED WHEN USER CLICK SUBMIT FROM UI + $scope.getReports = function(deviceName, 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!' + }); + 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; + } + + //to generate the dynamic file name while downloading the report + //var date = new Date(); + // $scope.fileName = $scope.TestName + " " + $scope.TestName + date.csv; + // console.log("FileName", $scope.fileName); + + if (deviceName != null && startdate != null && enddate != null) { + + //service call to fetch the reports start date,end date,test name + viewReportService.getData($scope.startDate, $scope.endDate, $scope.DeviceName).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); + } else { + $scope.ShowResult = false; + $scope.showWarning = true; + $scope.warningMessage = "No result found for specified Device name !!"; + growl.warning($scope.warningMessage, { + title: 'Warning!' + }); + } + } else { + $scope.ShowResult = false; + $scope.showWarning = true; + $scope.warningMessage = "No result found for specified Device name !!"; + growl.warning($scope.warningMessage, { + title: 'Warning!' + }); + } + }, + function(response) { + 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.testid = $scope.objTestReportModel[i].testid; + objTestReport.deviceid = $scope.objTestReportModel[i].deviceid; + objTestReport.deviceName = $scope.objTestReportModel[i].deviceName; + objTestReport.result = $scope.objTestReportModel[i].result; + objTestReport.timeStamp = $scope.objTestReportModel[i].timeStamp; + objTestReport.testname = $scope.objTestReportModel[i].testName; + + var executionDetails = {}; + $scope.tmp = angular.fromJson($scope.objTestReportModel[i].execuationDetails); + executionDetails = $scope.tmp.output; + + if ($scope.objTestReportModel[i].testName === "Network Layer") { + //fetching the statistics to show in progress bar + var statistics = executionDetails.statistics; + objTestReport.status = executionDetails.status; + objTestReport.statistics = executionDetails.statistics; + statistics = statistics.split("%"); + executionDetails.statistics = statistics[0]; + if (executionDetails.statistics == 0) { + executionDetails.statisticPer = parseInt(executionDetails.statistics) + 50; + } else + executionDetails.statisticPer = executionDetails.statistics; + + console.log("--ReportController::CreateTestReportModel--", executionDetails.statistics); + + //fetching the avg time to show in progress bar + var avgTime = executionDetails.avgTime; + objTestReport.avgTime = executionDetails.avgTime; + avgTime = avgTime.split("="); + var Testtime = avgTime[1]; + executionDetails.avgTime = Testtime.slice(0, -2).trim(); + console.log("--ReportController::CreateTestReportModel--", executionDetails.avgTime); + if (executionDetails.avgTime < 50) { + executionDetails.avgTimePer = parseInt(executionDetails.avgTime) + 10; + } else + executionDetails.avgTimePer = executionDetails.avgTime; + + } + + + objTestReport.executionDetails = executionDetails; + $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', 'deviceName', 'timeStamp', 'status', 'statistics', 'avgTime', 'result']; + + } +}]);
\ No newline at end of file |