Skip to content

Commit bb888e5

Browse files
committed
Addressed Review Issues
1 parent f7631ac commit bb888e5

File tree

5 files changed

+72
-4
lines changed

5 files changed

+72
-4
lines changed

src/pagination/pagination.component.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,14 @@ angular.module('patternfly.pagination').component('pfPagination', {
141141
};
142142

143143
ctrl.getStartIndex = function () {
144-
return ctrl.pageSize * (ctrl.pageNumber - 1) + 1;
144+
return ctrl.numTotalItems ? ctrl.pageSize * (ctrl.pageNumber - 1) + 1 : 0;
145145
};
146146

147147
ctrl.getEndIndex = function () {
148148
var numFullPages = Math.floor(ctrl.numTotalItems / ctrl.pageSize);
149149
var numItemsOnLastPage = ctrl.numTotalItems - (numFullPages * ctrl.pageSize) || ctrl.pageSize;
150150
var numItemsOnPage = isLastPage() ? numItemsOnLastPage : ctrl.pageSize;
151-
return ctrl.getStartIndex() + numItemsOnPage - 1;
151+
return ctrl.numTotalItems ? ctrl.getStartIndex() + numItemsOnPage - 1 : 0;
152152
};
153153

154154
function updatePageNumber (newPageNumber) {

src/table/table.less

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ table.dataTable {
2929
tbody {
3030
tr.selected {
3131
span a {
32-
color: white;
32+
color: @color-pf-white;
3333
}
3434
}
3535
th {

src/table/tableview/table-view.component.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,9 @@ angular.module('patternfly.table').component('pfTableView', {
177177
ctrl.updatePageNumber = function (event) {
178178
if (ctrl.dtInstance) {
179179
ctrl.pageConfig.pageNumber = event.pageNumber;
180-
ctrl.dtInstance.dataTable.fnPageChange(ctrl.pageConfig.pageNumber - 1);
180+
if (ctrl.dtInstance && ctrl.dtInstance.dataTable) {
181+
ctrl.dtInstance.dataTable.fnPageChange(ctrl.pageConfig.pageNumber - 1);
182+
}
181183
}
182184
};
183185

test/pagination/pagination.spec.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,47 @@ describe('Component: pfPagination', function () {
130130
var htmlTmp = '<pf-pagination page-size="pageSize" page-number="pageNumber" num-total-items="numTotalItems"></pf-pagination>';
131131
compileHTML(htmlTmp, $scope);
132132

133+
var ctrl = element.isolateScope().$ctrl;
134+
spyOn(ctrl, 'updatePageNumber');
135+
133136
// On first page, goto prev and first page buttons should be disabled
134137
expect(element.find('.disabled').length).toBe(2);
135138

136139
angular.element(element.find('.pagination-pf-page ')).val('7').trigger('input').blur();
137140
$scope.$digest();
138141

142+
expect(ctrl.updatePageNumber).toHaveBeenCalled();
139143
expect(angular.element(element.find('.pagination-pf-items-current')).text().trim()).toBe('61-70');
140144
expect(angular.element(element.find('.pagination-pf-items-total')).text().trim()).toBe('126');
141145
expect(angular.element(element.find('.pagination-pf-page')).val().trim()).toBe('7');
142146
expect(angular.element(element.find('.pagination-pf-pages')).text().trim()).toBe('13');
143147
});
148+
149+
it('should change the page size when selected from dropdown', function() {
150+
$scope.pageSize = 10;
151+
$scope.pageNumber = 1;
152+
$scope.numTotalItems = 126;
153+
var htmlTmp = '<pf-pagination page-size="pageSize" page-number="pageNumber" num-total-items="numTotalItems"></pf-pagination>';
154+
compileHTML(htmlTmp, $scope);
155+
156+
var ctrl = element.isolateScope().$ctrl;
157+
spyOn(ctrl, 'updatePageSize');
158+
159+
//Get pageSizeDropdown
160+
var pageSizeDropdown = element.find('div[uib-dropdown]');
161+
expect(pageSizeDropdown.length).toBe(1);
162+
163+
//Change pageSizeDropdown to 10
164+
pageSizeDropdown.find('button').click();
165+
var pageSizeLinks = pageSizeDropdown.find('a');
166+
expect(pageSizeLinks.length).toBe(6);
167+
pageSizeLinks[2].click(); // switch to 20 items per page
168+
$scope.$digest();
169+
170+
expect(ctrl.updatePageSize).toHaveBeenCalled();
171+
expect(angular.element(element.find('.pagination-pf-items-current')).text().trim()).toBe('1-20');
172+
expect(angular.element(element.find('.pagination-pf-items-total')).text().trim()).toBe('126');
173+
expect(angular.element(element.find('.pagination-pf-page')).val().trim()).toBe('1');
174+
expect(angular.element(element.find('.pagination-pf-pages')).text().trim()).toBe('7');
175+
});
144176
});

test/table/tableview/table-view.spec.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,38 @@ describe('Component: pfTableView', function () {
162162
expect(angular.element(element.find('.pagination-pf-page')).val().trim()).toBe('2');
163163
expect(angular.element(element.find('.pagination-pf-pages')).text().trim()).toBe('4');
164164
});
165+
166+
it('should goto a specific page when inputted', function () {
167+
paginationSetup();
168+
169+
var ctrl = element.isolateScope().$ctrl;
170+
spyOn(ctrl, 'updatePageNumber');
171+
172+
angular.element(element.find('.pagination-pf-page ')).val('3').trigger('input').blur();
173+
$scope.$digest();
174+
175+
expect(ctrl.updatePageNumber).toHaveBeenCalled();
176+
expect(angular.element(element.find('.pagination-pf-items-current')).text().trim()).toBe('5-6');
177+
expect(angular.element(element.find('.pagination-pf-items-total')).text().trim()).toBe('7');
178+
expect(angular.element(element.find('.pagination-pf-page')).val().trim()).toBe('3');
179+
expect(angular.element(element.find('.pagination-pf-pages')).text().trim()).toBe('4');
180+
});
181+
182+
it('should change the page size when selected from dropdown', function() {
183+
var ctrl = element.isolateScope().$ctrl;
184+
spyOn(ctrl, 'updatePageSize');
185+
186+
//Get pageSizeDropdown
187+
var pageSizeDropdown = element.find('div[uib-dropdown]');
188+
expect(pageSizeDropdown.length).toBe(1);
189+
190+
//Change pageSizeDropdown to 10
191+
pageSizeDropdown.find('button').click();
192+
var pageSizeLinks = pageSizeDropdown.find('a');
193+
expect(pageSizeLinks.length).toBe(3);
194+
pageSizeLinks[1].click(); // switch to 10 items per page
195+
$scope.$digest();
196+
197+
expect(ctrl.updatePageSize).toHaveBeenCalled();
198+
});
165199
});

0 commit comments

Comments
 (0)