$scope.services = [];\r
if (response.data && angular.isArray(response.data.services)) {\r
wholeData = response.data.services;\r
- $scope.services = $scope.filterDataWithHigerVersion(wholeData);\r
+ $scope.services = $scope.filterDataWithHigherVersion(wholeData);\r
$scope.viewPerPage=10;\r
$scope.totalPage=$scope.services.length/$scope.viewPerPage;\r
$scope.sortBy=COMPONENT.NAME;\r
$scope.scrollViewPerPage=2;\r
$scope.currentPage=1;\r
$scope.searchCategory;\r
- $scope.searchString="";\r
$scope.currentPageNum=1;\r
$scope.isSpinnerVisible = false;\r
$scope.isProgressVisible = false;\r
}, function errorCallback(response) {\r
console.log("Error: " + response);\r
});\r
- }\r
- $scope.isFiltered=function(arr,obj){\r
- var filtered = false;\r
- if(arr.length>0){\r
- for(var i=0;i<arr.length;i++){\r
- if((arr[i].name == obj.name) && (obj.invariantUUID == arr[i].invariantUUID)){\r
- filtered = true;\r
- }\r
- }\r
- }\r
- return filtered;\r
- }\r
+ };\r
+\r
var wholeData=[];\r
- $scope.filterDataWithHigerVersion = function(serviceData){\r
- var fiterDataServices = [];\r
- for(var i=0;i<serviceData.length;i++){\r
- var higherVersion = serviceData[i];\r
- if(!$scope.isFiltered(fiterDataServices,serviceData[i])){\r
- for(var j=i;j<serviceData.length;j++){\r
- if((serviceData[i].invariantUUID.trim() == serviceData[j].invariantUUID.trim()) && (serviceData[i].name.trim() == serviceData[j].name.trim()) && (parseFloat(serviceData[j].version.trim())>=parseFloat(serviceData[i].version.trim()))){\r
- var data = $scope.isThisHigher(fiterDataServices,serviceData[j]);\r
- if(data.isHigher){\r
- fiterDataServices[data.index] = serviceData[j];\r
- }\r
- }\r
- }\r
- }\r
- }\r
- return fiterDataServices;\r
- }\r
\r
- $scope.isThisHigher = function(arr,obj){\r
- var returnObj = {\r
- isHigher:false,\r
- index:0\r
- };\r
- if(arr.length>0){\r
- var isNotMatched = true;\r
- for(var i=0;i<arr.length;i++){\r
- if((arr[i].name == obj.name) && (arr[i].invariantUUID == obj.invariantUUID ) && (arr[i].version<obj.version) ){\r
- isNotMatched = false;\r
- returnObj = {\r
- isHigher:true,\r
- index:i\r
- };\r
+ $scope.filterDataWithHigherVersion = function(serviceData){\r
+ var delimiter = '$$';\r
+ var fiterDataServices = {};\r
+ for(var i=0;i<serviceData.length;i++) {\r
+ var index = serviceData[i].invariantUUID.trim() + delimiter + serviceData[i].name.trim();\r
+ if(!fiterDataServices[index]) {\r
+ var hasPreviousVersion = false;\r
+ fiterDataServices[index] = {\r
+ service: serviceData[i],\r
+ hasPreviousVersion: false\r
+ };\r
+ }\r
+ else {\r
+ fiterDataServices[index].hasPreviousVersion = true;\r
+ if(parseFloat(serviceData[i].version.trim())>parseFloat(fiterDataServices[index].service.version.trim())) {\r
+ fiterDataServices[index].service = serviceData[i];\r
}\r
}\r
- if(isNotMatched && !$scope.isFiltered(arr,obj)){\r
- returnObj = {\r
- isHigher:true,\r
- index:arr.length\r
- };\r
- }\r
- }else{\r
- returnObj = {\r
- isHigher:true,\r
- index:0\r
- }\r
}\r
- return returnObj;\r
- }\r
+ return Object.keys(fiterDataServices).map(function(key) {\r
+ var service = fiterDataServices[key].service;\r
+ service.hasPreviousVersion = fiterDataServices[key].hasPreviousVersion;\r
+ return service;\r
+ });\r
+ };\r
\r
$scope.init = function() {\r
var msecs = PropertyService.retrieveMsoMaxPollingIntervalMsec();\r