PageRenderTime 33ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/assets/javascripts/iugu-ux/components/base_resources.js.coffee

https://github.com/wagnerpv/iugu-ux
CoffeeScript | 90 lines | 67 code | 20 blank | 3 comment | 7 complexity | 041d71336f40a07158dd3cf843f72bf6 MD5 | raw file
  1. window.app.BaseResources = Backbone.Paginator.requestPager.extend
  2. arrayFilters: []
  3. initialize: ->
  4. @factorySync = @sync
  5. @server_api =
  6. 'limit': ->
  7. return @perPage
  8. 'start': ->
  9. return (@currentPage - 1) * @perPage
  10. # 'api_token': ->
  11. # return api_token
  12. paginator_ui:
  13. firstPage: 1
  14. currentPage: 1
  15. perPage: 30
  16. configureFilter: ( param, value ) ->
  17. @server_api[param] = value
  18. @trigger 'configured-filter', param
  19. getAjaxParameters: ->
  20. return if ajax_params? then ajax_params else {}
  21. configureAjax: ->
  22. app.ajaxSetup
  23. headers:
  24. Authorization: $.base64.encode api_token
  25. data: @getAjaxParameters()
  26. getFilter: (param) ->
  27. @server_api[param]
  28. removeFilter: (param) ->
  29. delete @server_api[param]
  30. @trigger "removed-filter"
  31. @trigger "removed-filter:#{param}"
  32. removeFiltersEndingWith: (param) ->
  33. self = @
  34. _.each @server_api, (value, key) ->
  35. _regex = new RegExp( "#{param}$")
  36. self.removeFilter(key) if key.match(_regex)
  37. parse: (response) ->
  38. @totalRecords = response.totalItems
  39. @facets = response.facets
  40. @totalPages = Math.ceil(@totalRecords / @perPage)
  41. return response.items || response
  42. buildChangedPageEventOptions: ->
  43. that = @
  44. success: ( ( collection, response ) ->
  45. that.trigger 'changed-page:success'
  46. )
  47. error: ( ( collection, response ) ->
  48. that.trigger 'changed-page:error'
  49. )
  50. gotoFirst: ->
  51. @goTo @information.firstPage, @buildChangedPageEventOptions()
  52. gotoLast: ->
  53. @goTo @information.lastPage, @buildChangedPageEventOptions()
  54. gotoPage: ( page ) ->
  55. @goTo page, @buildChangedPageEventOptions()
  56. gotoNext: ->
  57. if @information.currentPage < @information.lastPage
  58. @requestNextPage @buildChangedPageEventOptions()
  59. gotoPrevious: ->
  60. if @information.currentPage > 1
  61. @requestPreviousPage @buildChangedPageEventOptions()
  62. disablePagination: () ->
  63. # 64 Bit Integer Size
  64. @perPage = 9223372036854775807
  65. destroy: (object) ->
  66. if object.id?
  67. object.set '_destroy', true
  68. @trigger 'remove'
  69. else
  70. @remove object