flex_infinite_scroll 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 125e4f628fdad23f1e968f3cc131cd18903577db0450880253f9658aeefd73dc
         | 
| 4 | 
            +
              data.tar.gz: 2c1ec04e55f76d94fe8444bcd15fd32dcf31c3694d2934e79f7168cb225cf846
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f88222c0722ed0ba5c2fb51464b1ce43019e28daf99494615b807fab79d256d0d854883888f701aa6add9539ae344df447fc4c3419fcf384f4628e67d5f0e34d
         | 
| 7 | 
            +
              data.tar.gz: d2cd42824a91fca0561c034b548fa87c03e6ad20a7154a4d163594fa54ca661d73b1d4112ea17c7bd091775769aaa4c432f10736e8825d89ae7738c6cbb6809c
         | 
    
        data/lib/flex_infinite_scroll.rb
    CHANGED
    
    | @@ -1,11 +1,19 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            # Infinite scroll module
         | 
| 4 | 
            +
            require 'flex_infinite_scroll/view_helpers'
         | 
| 5 | 
            +
            require 'sanitize'
         | 
| 6 | 
            +
             | 
| 2 7 | 
             
            module FlexInfiniteScroll
         | 
| 3 | 
            -
              class Engine < ::Rails::Engine | 
| 8 | 
            +
              class Engine < ::Rails::Engine
         | 
| 9 | 
            +
                ActionView::Base.send :include, FlexInfiniteScroll::ViewHelpers
         | 
| 10 | 
            +
              end
         | 
| 4 11 | 
             
              extend ActiveSupport::Concern
         | 
| 5 12 | 
             
              def infinite_scroll(page = 1, page_size = (ENV['FIS_PAGE_SIZE'] || 20))
         | 
| 13 | 
            +
                page ||= 1
         | 
| 6 14 | 
             
                page = page.to_i if page.class == String
         | 
| 7 15 | 
             
                offset_skip = (page - 1) * page_size
         | 
| 8 | 
            -
                total_page = (count / page_size.to_f).ceil
         | 
| 16 | 
            +
                total_page = (count('*') / page_size.to_f).ceil
         | 
| 9 17 | 
             
                {
         | 
| 10 18 | 
             
                  data: offset(offset_skip).limit(page_size),
         | 
| 11 19 | 
             
                  total_page: total_page,
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module FlexInfiniteScroll
         | 
| 4 | 
            +
              module ViewHelpers
         | 
| 5 | 
            +
                include ActionView::Helpers::TagHelper
         | 
| 6 | 
            +
                include ActionView::Context
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                def fis_init_list(data, partial, config = {})
         | 
| 9 | 
            +
                  result = content_tag :div, class: "fis-container #{config[:container_class] || ''}" do
         | 
| 10 | 
            +
                    fis_get_list(data, partial, 'html')
         | 
| 11 | 
            +
                  end
         | 
| 12 | 
            +
                  config[:scrollContainer] ||= 'body'
         | 
| 13 | 
            +
                  config[:targetContainer] ||= '.fis-container'
         | 
| 14 | 
            +
                  result += javascript_tag do
         | 
| 15 | 
            +
                    "$('#{config[:scrollContainer]}').flexInfiniteScroll(#{config.to_json})".html_safe
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
                  Sanitize.fragment(result,
         | 
| 18 | 
            +
                                    Sanitize::Config.merge(Sanitize::Config::RELAXED,
         | 
| 19 | 
            +
                                                           elements: Sanitize::Config::RELAXED[:elements] + %w(script))).html_safe
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                def fis_next_page(data, partial)
         | 
| 23 | 
            +
                  data[:data] = fis_get_list(data, partial, 'json')
         | 
| 24 | 
            +
                  data
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                def fis_get_list(data, partial, format)
         | 
| 28 | 
            +
                  result = ''
         | 
| 29 | 
            +
                  data[:data].each do |member|
         | 
| 30 | 
            +
                    result += if format == 'json'
         | 
| 31 | 
            +
                                render_to_string(partial: partial, locals: { fis_object: member })
         | 
| 32 | 
            +
                              else
         | 
| 33 | 
            +
                                render partial: partial, locals: { fis_object: member }
         | 
| 34 | 
            +
                              end
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
                  Sanitize.fragment(result, Sanitize::Config::RELAXED).html_safe
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
            end
         | 
| @@ -10,7 +10,7 @@ $.fn.extend({ | |
| 10 10 | 
             
                var queryParams = config.queryParams;
         | 
| 11 11 | 
             
                var dataProcess = config.dataProcess;
         | 
| 12 12 | 
             
                var initialLoad = config.initialLoad;
         | 
| 13 | 
            -
                var loadMargin = config.loadMargin ||  | 
| 13 | 
            +
                var loadMargin = config.loadMargin || 150;
         | 
| 14 14 | 
             
                var beforeAction = config.beforeAction;
         | 
| 15 15 | 
             
                var afterAction = config.afterAction;
         | 
| 16 16 | 
             
                var targetContainer = config.targetContainer || scrollContainer ;
         | 
| @@ -19,7 +19,6 @@ $.fn.extend({ | |
| 19 19 | 
             
                scrollContainer.dataset.fisNextPage = nextPage;
         | 
| 20 20 | 
             
                scrollContainer.dataset.fisUrl = dataUrl;
         | 
| 21 21 | 
             
                scrollContainer.dataset.fisLoading = 0;
         | 
| 22 | 
            -
                
         | 
| 23 22 | 
             
                function getData(page = 1){
         | 
| 24 23 | 
             
                  // Check for loading process and last page
         | 
| 25 24 | 
             
                  if (scrollContainer.dataset.fisLoading === '1' || page == 'last') return false
         | 
| @@ -77,7 +76,10 @@ $.fn.extend({ | |
| 77 76 | 
             
                	var scrollTop=$(eventTarget).scrollTop();
         | 
| 78 77 | 
             
                	var containerSize=$(scrollContainer).innerHeight();
         | 
| 79 78 | 
             
                	var scrollSize=scrollContainer.scrollHeight;
         | 
| 79 | 
            +
                  console.log(scrollSize - loadMargin)
         | 
| 80 | 
            +
                  console.log(scrollTop + containerSize)
         | 
| 80 81 | 
             
                	if (scrollTop + containerSize > scrollSize - loadMargin && scrollContainer.dataset.fisNextPage != 'last'){
         | 
| 82 | 
            +
                    console.log(1)
         | 
| 81 83 | 
             
                    getData(scrollContainer.dataset.fisNextPage);
         | 
| 82 84 | 
             
                	};
         | 
| 83 85 | 
             
                })
         | 
    
        metadata
    CHANGED
    
    | @@ -1,15 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: flex_infinite_scroll
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Anton Ignatov
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019-04- | 
| 12 | 
            -
            dependencies: | 
| 11 | 
            +
            date: 2019-04-20 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: sanitize
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 13 27 | 
             
            description: 
         | 
| 14 28 | 
             
            email: belmek@me.com
         | 
| 15 29 | 
             
            executables: []
         | 
| @@ -17,6 +31,7 @@ extensions: [] | |
| 17 31 | 
             
            extra_rdoc_files: []
         | 
| 18 32 | 
             
            files:
         | 
| 19 33 | 
             
            - lib/flex_infinite_scroll.rb
         | 
| 34 | 
            +
            - lib/flex_infinite_scroll/view_helpers.rb
         | 
| 20 35 | 
             
            - vendor/assets/javascript/flex_infinite_scroll.js
         | 
| 21 36 | 
             
            homepage: https://github.com/aignatov-bio/flex_infinite_scroll
         | 
| 22 37 | 
             
            licenses:
         | 
| @@ -36,7 +51,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 36 51 | 
             
              - - ">="
         | 
| 37 52 | 
             
                - !ruby/object:Gem::Version
         | 
| 38 53 | 
             
                  version: '0'
         | 
| 39 | 
            -
            requirements: | 
| 54 | 
            +
            requirements:
         | 
| 55 | 
            +
            - Rails
         | 
| 56 | 
            +
            - jQuery
         | 
| 40 57 | 
             
            rubyforge_project: 
         | 
| 41 58 | 
             
            rubygems_version: 2.7.6
         | 
| 42 59 | 
             
            signing_key: 
         |