Sha256: 816ace6734d097fda5bcb9d7392b6f5def8047f9ec18432bde3bef58faba9fb5
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
angular.module('EssayApp.services') .factory('paginateArrayService', [() -> class Paginate DEFAULT: page: 1 perpage: 10 all_items: [] items: [] prev_page_available: false next_page_available: false constructor: (data, params = {})-> return null unless data?.length > 0 @params = $.extend({}, @DEFAULT, params) @all_items = data @pages_count = Math.ceil(@all_items.length / @params.perpage) page: (pagenum = undefined)-> if angular.isUndefined(pagenum) pagenum = @params?.page || 1 else pagenum = parseInt(pagenum, 10) unless angular.isNumber(pagenum) if (pagenum >= 1) and (pagenum <= @pages_count) and ((pagenum != @params.page) or (@items.length is 0 and @all_items.length > 0)) @params.page = pagenum @prev_page_available = @params.page > 1 @next_page_available = @params.page < @pages_count _start = (@params.page - 1) * @params.perpage _end = _start + @params.perpage @items = @all_items[_start..._end] @items prev_page: -> @page(@params.page - 1) next_page: -> @page(@params.page + 1) api = { paginate: (data, params = {})-> new Paginate(data, params) } return api ])
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
translation_cms-0.1.5 | app/assets/javascripts/app/services/paginate_array_service.js.coffee |