Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CreateAgGridDataSource: () ->
- return (
- getRows: (params) =>
- rowsThisPage = []
- startRow = params.request.startRow
- endRow = params.request.endRow
- # if we are sorting and/or filtering...
- if @gridSortChanged or @gridFilterChanged
- if @gridOptions.api.getSortModel()? and @gridOptions.api.getSortModel()[0]?
- @gridSortColumn = @gridOptions.api.getSortModel()[0].colId
- #if ascending sort
- if @gridOptions.api.getSortModel()[0].sort == 'asc'
- @gridSortType = @gridSortColumn + "-ascending"
- #if descending sort
- else if @gridOptions.api.getSortModel()[0].sort == 'desc'
- @gridSortType = @gridSortColumn + "-descending"
- @gridSortBy(@gridSortColumn, @gridSortType, @advanceFilters).then(() =>
- rowsThisPage = @works.slice(startRow, endRow)
- finalRow = -1
- if endRow >= @works.length
- finalRow = @works.length
- @gridSortChanged = false
- @gridFilterChanged = false
- @gridSortColumn = ''
- @gridSortType = ''
- setTimeout(()=>
- params.successCallback(rowsThisPage, finalRow)
- , 0)
- )
- else
- # find out if the user clicked a group to expand
- groupKeys = params.request.groupKeys
- # if the user did not expand a group...
- if groupKeys.length == 0
- rowsThisPage = @works.slice(startRow, endRow)
- @gridLoadMore(@advanceFilters).then(() =>
- finalRow = -1
- if endRow >= @works.length
- finalRow = @works.length
- setTimeout(()=>
- params.successCallback(rowsThisPage, finalRow)
- , 0)
- )
- # the user has expanded a group, so check that we have parent node data...
- else if params.parentNode? and params.parentNode.data?
- parentId = params.parentNode.data.id
- # populate child list in parent node's row group
- @gridLoadChildren(parentId).then((res) =>
- setTimeout(()=>
- params.successCallback(@childWorks, @childWorks.length)
- ,0)
- )
- )
- onGridReady: (event) ->
- initialRowRenderLimit = Math.floor(@viewportHeight / @gridRowRenderDivisor)
- @gridFetchInventory(initialRowRenderLimit).then(() =>
- @gridDatasource = @CreateAgGridDataSource()
- @gridOptions.api.setServerSideDatasource(@gridDatasource)
- @gridLoadMore().then()
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement