mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	| @@ -29,8 +29,7 @@ pagination.create = function (currentPage, pageCount, queryObj) { | ||||
| 	if (startPage > pageCount - 5) { | ||||
| 		startPage -= 2 - (pageCount - currentPage); | ||||
| 	} | ||||
| 	let i; | ||||
| 	for (i = 0; i < 5; i += 1) { | ||||
| 	for (let i = 0; i < 5; i += 1) { | ||||
| 		pagesToShow.push(startPage + i); | ||||
| 	} | ||||
|  | ||||
| @@ -45,10 +44,11 @@ pagination.create = function (currentPage, pageCount, queryObj) { | ||||
| 		return { page: page, active: page === currentPage, qs: qs.stringify(queryObj) }; | ||||
| 	}); | ||||
|  | ||||
| 	for (i = pages.length - 1; i > 0; i -= 1) { | ||||
| 	for (let i = pages.length - 1; i > 0; i -= 1) { | ||||
| 		const prevPage = pages[i].page - 1; | ||||
| 		if (pages[i].page - 2 === pages[i - 1].page) { | ||||
| 			pages.splice(i, 0, { page: pages[i].page - 1, active: false, qs: qs.stringify(queryObj) }); | ||||
| 		} else if (pages[i].page - 1 !== pages[i - 1].page) { | ||||
| 			pages.splice(i, 0, { page: prevPage, active: false, qs: qs.stringify({ ...queryObj, page: prevPage }) }); | ||||
| 		} else if (prevPage !== pages[i - 1].page) { | ||||
| 			pages.splice(i, 0, { separator: true }); | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
| @@ -26,6 +26,18 @@ describe('Pagination', () => { | ||||
| 		done(); | ||||
| 	}); | ||||
|  | ||||
| 	it('should create pagination for 18 pages and should not turn page 3 into separator', (done) => { | ||||
| 		const data = pagination.create(6, 18); | ||||
| 		// [1, 2, 3, 4, 5, (6), 7, 8, seperator, 17, 18] | ||||
| 		assert.equal(data.pages.length, 11); | ||||
| 		assert.equal(data.rel.length, 2); | ||||
| 		assert.strictEqual(data.pages[2].qs, 'page=3'); | ||||
| 		assert.equal(data.pageCount, 18); | ||||
| 		assert.equal(data.prev.page, 5); | ||||
| 		assert.equal(data.next.page, 7); | ||||
| 		done(); | ||||
| 	}); | ||||
|  | ||||
| 	it('should create pagination for 3 pages with query params', (done) => { | ||||
| 		const data = pagination.create(1, 3, { key: 'value' }); | ||||
| 		assert.equal(data.pages.length, 3); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user