From 42d517d77ff1dab8049e6bd6676f9f7e2ebb3e7a Mon Sep 17 00:00:00 2001 From: dbrw Date: Thu, 12 Apr 2018 14:27:49 +0700 Subject: [PATCH 1/3] Custom pagination item capability You can add pagination custom item with this PR. --- src/pagination.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pagination.js b/src/pagination.js index 69e9f5e7..fc55c4f2 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -82,7 +82,7 @@ module.exports = function(list) { return function(options) { var pagingList = new List(list.listContainer.id, { listClass: options.paginationClass || 'pagination', - item: "
  • ", + item: options.item || "
  • ", valueNames: ['page', 'dotted'], searchClass: 'pagination-search-that-is-not-supposed-to-exist', sortClass: 'pagination-sort-that-is-not-supposed-to-exist' From fcd9e195918c6f01be5b9f3fe0830329e6d2f29d Mon Sep 17 00:00:00 2001 From: dbrw Date: Thu, 12 Apr 2018 14:27:49 +0700 Subject: [PATCH 2/3] Custom pagination item capability You can add pagination custom item with this PR. --- src/pagination.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pagination.js b/src/pagination.js index 69e9f5e7..fc55c4f2 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -82,7 +82,7 @@ module.exports = function(list) { return function(options) { var pagingList = new List(list.listContainer.id, { listClass: options.paginationClass || 'pagination', - item: "
  • ", + item: options.item || "
  • ", valueNames: ['page', 'dotted'], searchClass: 'pagination-search-that-is-not-supposed-to-exist', sortClass: 'pagination-sort-that-is-not-supposed-to-exist' From bcd29ac5c468d9abb3911c13533c7e79a06e5f9f Mon Sep 17 00:00:00 2001 From: dbrw Date: Tue, 18 Dec 2018 14:55:24 +0700 Subject: [PATCH 3/3] adding tests for custom pagination item --- __test__/pagination.test.js | 101 ++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/__test__/pagination.test.js b/__test__/pagination.test.js index 0c88831b..2841470d 100644 --- a/__test__/pagination.test.js +++ b/__test__/pagination.test.js @@ -266,4 +266,105 @@ describe('Pagination', function() { }); }); + + describe('Custom settings, pagination: { item: "" }', function() { + var list, + itemHTML, + pagination; + + beforeAll(function() { + itemHTML = fixturePagination.list(['name']) + list = new List('list-pagination', { + valueNames: ['name'], + item: itemHTML, + page: 2, + pagination: { + item: "", + }, + }, fixturePagination.all); + + pagination = $('.pagination'); + }); + + afterAll(function() { + fixturePagination.removeList(); + }); + + it('should have default settings', function() { + expect(pagination.find('span').length).toEqual(4); + expect(pagination.find('span').get(0).innerHTML).toEqual("1"); + expect(pagination.find('span').get(1).innerHTML).toEqual("2"); + expect(pagination.find('span').get(2).innerHTML).toEqual("3"); + expect(pagination.find('span').get(3).innerHTML).toEqual("..."); + expect(pagination.find('span').get(4)).toEqual(undefined); + }); + + it('should show same pages for show(7,2) and show(8,2)', function() { + list.show(7, 2); + expect(pagination.find('span').length).toEqual(7); + expect(pagination.find('span').get(0).innerHTML).toEqual("..."); + expect(pagination.find('span').get(1).innerHTML).toEqual("2"); + expect(pagination.find('span').get(2).innerHTML).toEqual("3"); + expect(pagination.find('span').get(3).innerHTML).toEqual("4"); + expect(pagination.find('span').get(4).innerHTML).toEqual("5"); + expect(pagination.find('span').get(5).innerHTML).toEqual("6"); + expect(pagination.find('span').get(6).innerHTML).toEqual("..."); + expect(pagination.find('span').get(7)).toEqual(undefined); + expect($(pagination.find('button').get(2)).hasClass('active')).toEqual(false); + expect($(pagination.find('button').get(3)).hasClass('active')).toEqual(true); + expect($(pagination.find('button').get(4)).hasClass('active')).toEqual(false); + }); + + it('should show same pages for show(7,2) and show(8,2)', function() { + list.show(8, 2); + expect(pagination.find('span').length).toEqual(7); + expect(pagination.find('span').get(0).innerHTML).toEqual("..."); + expect(pagination.find('span').get(1).innerHTML).toEqual("2"); + expect(pagination.find('span').get(2).innerHTML).toEqual("3"); + expect(pagination.find('span').get(3).innerHTML).toEqual("4"); + expect(pagination.find('span').get(4).innerHTML).toEqual("5"); + expect(pagination.find('span').get(5).innerHTML).toEqual("6"); + expect(pagination.find('span').get(6).innerHTML).toEqual("..."); + expect(pagination.find('span').get(7)).toEqual(undefined); + expect($(pagination.find('button').get(2)).hasClass('active')).toEqual(false); + expect($(pagination.find('button').get(3)).hasClass('active')).toEqual(true); + expect($(pagination.find('button').get(4)).hasClass('active')).toEqual(false); + }); + + it('should test show(14,2)', function() { + list.show(14, 2); + expect(pagination.find('span').length).toEqual(6); + expect(pagination.find('span').get(0).innerHTML).toEqual("..."); + expect(pagination.find('span').get(1).innerHTML).toEqual("5"); + expect(pagination.find('span').get(2).innerHTML).toEqual("6"); + expect(pagination.find('span').get(3).innerHTML).toEqual("7"); + expect(pagination.find('span').get(4).innerHTML).toEqual("8"); + expect(pagination.find('span').get(5).innerHTML).toEqual("9"); + expect(pagination.find('span').get(6)).toEqual(undefined); + expect($(pagination.find('button').get(2)).hasClass('active')).toEqual(false); + expect($(pagination.find('button').get(3)).hasClass('active')).toEqual(true); + expect($(pagination.find('button').get(4)).hasClass('active')).toEqual(false); + }); + + it('should show last page with show(17,2)', function() { + list.show(17, 2); + expect(pagination.find('span').length).toEqual(4); + expect(pagination.find('span').get(0).innerHTML).toEqual("..."); + expect(pagination.find('span').get(1).innerHTML).toEqual("7"); + expect(pagination.find('span').get(2).innerHTML).toEqual("8"); + expect(pagination.find('span').get(3).innerHTML).toEqual("9"); + expect(pagination.find('span').get(4)).toEqual(undefined); + expect($(pagination.find('button').get(1)).hasClass('active')).toEqual(false); + expect($(pagination.find('button').get(2)).hasClass('active')).toEqual(false); + expect($(pagination.find('button').get(3)).hasClass('active')).toEqual(true); + }); + + it('should handle page = 0', function() { + expect(list.listContainer.style.display).toBe(''); + list.show(0, 0); + expect(list.listContainer.style.display).toBe('none'); + list.show(1, 1); + expect(list.listContainer.style.display).toBe('block'); + }); + }); });