Skip to content

Commit

Permalink
refactoring: getPage now can sort + filter + multisearch on multiple …
Browse files Browse the repository at this point in the history
…properties
  • Loading branch information
gregorybesson committed Dec 25, 2016
1 parent 9abffd1 commit 6b1896d
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 16 deletions.
43 changes: 27 additions & 16 deletions src/cli/core/manager/Manager.js
Expand Up @@ -324,26 +324,37 @@ class Manager {
console.log('Manager updated')
}

getPage(currentPage = 1, pageSize = 2, sortField = 'date', sortOrder = -1){
getPage(
start = 0,
length = 20,
sortField = 'date',
sortDir = -1,
search = '',
searchFields = ['abe_meta.link', 'abe_meta.template']
){
const total = this._list.length
const pageCount = total/pageSize
const start = (currentPage - 1)*pageSize
const end = currentPage*pageSize
let list
if(sortField != 'date' || sortOrder != -1){
const tmpList = this._list
tmpList.sort(coreUtils.sort.predicatBy(sortField, sortOrder))
list = tmpList.slice(start, end)
} else {
list = this._list.slice(start, end)
let totalFiltered = total
let list = this._list.slice()

if(search !== '') {
const searches = search.split(' ')
for(var i = 0; i < searches.length; i++){
list = coreUtils.array.facet(list, searchFields, searches[i])
}

totalFiltered = list.length
}

if(sortField != 'date' || sortDir != -1){
list.sort(coreUtils.sort.predicatBy(sortField, sortDir))
}

list = list.slice(start, start + length)

return {
'currentPage': currentPage,
'pageSize': pageSize,
'total': total,
'pageCount': pageCount,
'list': list
'recordsTotal': total,
'recordsFiltered': totalFiltered,
'data': list
}
}

Expand Down
6 changes: 6 additions & 0 deletions test/core/manager/Manager.js
Expand Up @@ -65,4 +65,10 @@ describe('Manager', function() {
chai.assert.equal(list[0].name, 'article-2.json', 'failed !')
chai.assert.equal(list.length, 1, 'failed !')
});

it('getPage() ', function() {
const list = Manager.instance.getPage()
chai.assert.equal(list.data[0].name, 'article-1.json', 'failed !')
chai.assert.equal(list.recordsTotal, 3, 'failed !')
});
});

0 comments on commit 6b1896d

Please sign in to comment.