You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2017/02/15 16:33:09 UTC
ambari git commit: AMBARI-20025 Incorrect work of filters on Versions
page of Admin View. (ababiichuk)
Repository: ambari
Updated Branches:
refs/heads/trunk 45842645c -> d75756efa
AMBARI-20025 Incorrect work of filters on Versions page of Admin View. (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d75756ef
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d75756ef
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d75756ef
Branch: refs/heads/trunk
Commit: d75756efa7bcecb09d0ee73db6c29b018ba964fc
Parents: 4584264
Author: ababiichuk <ab...@hortonworks.com>
Authored: Wed Feb 15 17:29:05 2017 +0200
Committer: ababiichuk <ab...@hortonworks.com>
Committed: Wed Feb 15 18:41:52 2017 +0200
----------------------------------------------------------------------
.../stackVersions/StackVersionsListCtrl.js | 56 +++++++++++++-------
.../ui/admin-web/app/scripts/services/Stack.js | 15 ++++--
.../stackVersions/StackversionsListCtrl_test.js | 38 +++++++++----
3 files changed, 76 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/d75756ef/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
index 1de8817..2990cef 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/controllers/stackVersions/StackVersionsListCtrl.js
@@ -77,29 +77,47 @@ angular.module('ambariAdminConsole')
$scope.resetPagination();
};
- $scope.fetchRepoClusterStatus = function () {
- var clusterName = ($scope.clusters && $scope.clusters.length > 0) ? $scope.clusters[0].Clusters.cluster_name : null; // only support one cluster at the moment
- if (clusterName) {
- angular.forEach($scope.repos, function (repo) {
- Cluster.getRepoVersionStatus(clusterName, repo.id).then(function (response) {
- repo.status = response.status;
- repo.totalHosts = response.totalHosts;
- repo.currentHosts = response.currentHosts;
- repo.installedHosts = response.installedHosts;
- repo.stackVersionId = response.stackVersionId;
- repo.cluster = (repo.status == 'current' || repo.status == 'installed') ? clusterName : '';
+ $scope.fetchRepoClusterStatus = function (allRepos) {
+ if (allRepos && allRepos.length) {
+ var clusterName = ($scope.clusters && $scope.clusters.length > 0) ? $scope.clusters[0].Clusters.cluster_name : null, // only support one cluster at the moment
+ repos = [],
+ processedRepos = 0;
+ if (clusterName) {
+ angular.forEach(allRepos, function (repo) {
+ Cluster.getRepoVersionStatus(clusterName, repo.id).then(function (response) {
+ repo.cluster = (response.status == 'current' || response.status == 'installed') ? clusterName : '';
+ if (!$scope.filter.cluster.current.value || repo.cluster) {
+ repo.status = response.status;
+ repo.totalHosts = response.totalHosts;
+ repo.currentHosts = response.currentHosts;
+ repo.installedHosts = response.installedHosts;
+ repo.stackVersionId = response.stackVersionId;
+ repos.push(repo);
+ }
+ processedRepos++;
+ if (processedRepos === allRepos.length) {
+ var from = ($scope.pagination.currentPage - 1) * $scope.pagination.itemsPerPage;
+ var to = (repos.length - from > $scope.pagination.itemsPerPage) ? from + $scope.pagination.itemsPerPage : repos.length;
+ $scope.repos = repos.slice(from, to);
+ $scope.tableInfo.total = repos.length;
+ $scope.pagination.totalRepos = repos.length;
+ $scope.tableInfo.showed = to - from;
+ }
+ });
});
- });
+ }
+ } else {
+ $scope.repos = [];
+ $scope.tableInfo.total = 0;
+ $scope.pagination.totalRepos = 0;
+ $scope.tableInfo.showed = 0;
}
};
$scope.fetchRepos = function () {
- return Stack.allRepos($scope.filter, $scope.pagination).then(function (repos) {
+ return Stack.allRepos($scope.filter).then(function (repos) {
$scope.isLoading = false;
- $scope.pagination.totalRepos = repos.itemTotal;
- $scope.repos = repos.items;
- $scope.tableInfo.total = repos.itemTotal;
- $scope.tableInfo.showed = repos.showed;
+ return repos.items;
});
};
@@ -161,8 +179,8 @@ angular.module('ambariAdminConsole')
.then(function () {
return $scope.fetchRepos();
})
- .then(function () {
- $scope.fetchRepoClusterStatus();
+ .then(function (repos) {
+ $scope.fetchRepoClusterStatus(repos);
});
};
http://git-wip-us.apache.org/repos/asf/ambari/blob/d75756ef/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js
index 84d7b33..e028906 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/scripts/services/Stack.js
@@ -179,11 +179,16 @@ angular.module('ambariAdminConsole')
// prepare response data with client side pagination
var response = {};
response.itemTotal = repos.length;
- var from = (pagination.currentPage - 1) * pagination.itemsPerPage;
- var to = (repos.length - from > pagination.itemsPerPage)? from + pagination.itemsPerPage : repos.length;
- response.items = repos.slice(from, to);
- response.showed = to - from;
- deferred.resolve(response)
+ if (pagination) {
+ var from = (pagination.currentPage - 1) * pagination.itemsPerPage;
+ var to = (repos.length - from > pagination.itemsPerPage)? from + pagination.itemsPerPage : repos.length;
+ response.items = repos.slice(from, to);
+ response.showed = to - from;
+ } else {
+ response.items = repos;
+ response.showed = repos.length;
+ }
+ deferred.resolve(response);
})
.error(function (data) {
deferred.reject(data);
http://git-wip-us.apache.org/repos/asf/ambari/blob/d75756ef/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/stackVersions/StackversionsListCtrl_test.js
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/stackVersions/StackversionsListCtrl_test.js b/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/stackVersions/StackversionsListCtrl_test.js
index 6f168db..e6f2cc1 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/stackVersions/StackversionsListCtrl_test.js
+++ b/ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/stackVersions/StackversionsListCtrl_test.js
@@ -18,24 +18,44 @@
describe('#Cluster', function () {
describe('StackVersionsListCtrl', function() {
- var scope, ctrl, $httpBackend;
+ var scope, ctrl, Stack;
beforeEach(module('ambariAdminConsole', function($provide) {
}));
- beforeEach(inject(function($rootScope, $controller, _$httpBackend_) {
- scope = $rootScope.$new();
- ctrl = $controller('StackVersionsListCtrl', {$scope: scope});
- $httpBackend = _$httpBackend_;
- }));
+ beforeEach(function () {
+ module('ambariAdminConsole');
+ inject(function($rootScope, $controller) {
+ scope = $rootScope.$new();
+ ctrl = $controller('StackVersionsListCtrl', {$scope: scope});
+ });
+ });
describe('#fetchRepos()', function () {
- it('saves list of stacks', function() {
- scope.fetchRepos().then(function() {
- expect(Array.isArray(scope.repos)).toBe(true);
+ var repos;
+
+ beforeEach(inject(function(_Stack_) {
+ Stack = _Stack_;
+ spyOn(Stack, 'allRepos').andReturn({
+ then: function (callback) {
+ repos = callback({
+ items: [{}, {}]
+ });
+ }
});
+ repos = [];
+ scope.isLoading = true;
+ scope.fetchRepos();
+ }));
+
+ it('saves list of stacks', function() {
+ expect(repos.length).toEqual(2);
+ });
+
+ it('isLoading should be set to false', function() {
+ expect(scope.isLoading).toBe(false);
});
});