## 1.2.1 ### Security Fixes: * Added `original_script_name` parameter to the ignore list: #1020 [@viseztrance] See CVE-2020-11082 for full details. ### Bug Fixes: * Fixed a couple of grouped `total_count` regressions by reverting #979 ## 1.2.0 ### Deprecations: * Deprecated `current_per_page` in favor of `limit_value` ### Enhancements: * Added `#url_to_next_page` and `#url_to_prev_page` helper methods: [38e95a2](https://github.com/kaminari/kaminari/commit/38e95a262a210548c4f892aaa69d09ca8ecdce7f) * Extracted url helper methods and packed them in `Kaminari::Helpers::UrlHelper`: [ff38bee](https://github.com/kaminari/kaminari/commit/ff38bee54b5be1a948f1118c0bfd829a72a1a502) * Improved performance of `total_count` for grouped queries by explicitly giving SQL `select` clause #979 [@MmKolodziej] * Added `LIMIT` to `total_count` query when `max_pages` presents #981 [@rymai] ### Bug Fixes: * Fixed a bug where the `kaminari-mongoid` gem was not loaded properly: kaminari/kaminari-mongoid#9 [@DenniJensen] * Fixed a bug where the `#total_count` method incorrectly calculates the total count: #932 [@tumayun] * Fixed a bug where `empty?` breaks subsequent `last_page?` in without_count mode #1009 [@montdidier] * Fixed kwargs warnings on Ruby 2.7 #1010 [@connorshea] ## 1.1.1 ### Bug Fixes: * Fixed a bug where `paginate ..., params: { controller: ..., action: ... }` didn't override the `params[:controller]` and `params[:action]` #919 [@chao-mu] ## 1.1.0 ### Enhancements: * Now the `page_entries_info` method respects the `I18n.locale` value when pluralizing the `entry_name` option #899 [@hundred] * `require 'kaminari/core'` is no longer necessary when using `require 'kaminari/activerecord'` #896 [@yhara] * Added the `#current_per_page` method to inspect current value of `per_page` #875 [#bfad] * Better accesibility support by adding accessibility roles to pagination nav #848 [@frrrances] ### Bug Fixes: * Fixed an issue where the command `rails g kaminari:views ...` stopped working due to a missing require #912 [@jvsoares] * Fixed a bug where passing in `params` to the `link_to_next_page` or `link_to_previous_page` method raises an exception #874 [@5t111111] ## 1.0.1 ### Bug Fixes: * Added `required_ruby_version` to the gemspec #847 [@timoschilling] * Fixed a regression where `per(nil)` uses `max_per_page` instead of `default_per_page` #813 [@merqlove] * Fixed a regression where passing a String to `per()` aborts with ArgumentError #849 [@rafaelgonzalez] * Fixed a bug where calling deprecated `max_pages_per` caused an Error on Rails 4 #852 [@tsuwatch] ## 1.0.0 ### Breaking Changes: * Dropped Ruby 1.9 support * Dropped Rails 3.2 support * Dropped Rails 4.0 support * Removed Sinatra support that has been extracted to kaminari-sinatra gem * Removed Mongoid support that has been extracted to kaminari-mongoid gem * Removed MongoMapper support that has been extracted to kaminari-mongo_mapper gem * Removed DataMapper support that has been extracted to kaminari-data_mapper gem * Extracted Grape support to kaminari-grape gem and removed it from the core * Splitted the gem into 3 internal gems: * The core pagination logic (kaminari-core) * Active Record adapter (kaminari-activerecord) * Action View adapter (kaminari-actionview) * Removed deprecated `num_pages` API in favor of `total_pages` * Deprecated `-e haml` and `-e slim` options for the views generator * Renamed the model class method for configuring `max_pages` from `max_pages_per` to `max_pages` * Raise ZeroPerPageOperation when The number of pages was incalculable of `total_pages`, `current_page` methods ### Enhancements: * Exposed `path_to_prev_page`, `path_to_next_page` helpers as public API #683 [@neilang] * Added `--views_prefix` option for the views generator #668 [@antstorm] * Added `max_paginates_per` scope method to overwrite model `max_paginates_per` config #754 [@rubyonme] * Added `:paginator_class` option to specify a custom Paginator for `paginate` #740 [@watsonbox] * Use I18n to pluralize entries in `page_entries_info` #694 [@Linuus] * Added `without_count` #681 [@bryanrite] * Omit select count query for `total_count` if it's calculable in Ruby level from loaded records ### Bug Fixes: * Fixed a bug that a single page gap was displayed as "…" ``` before: ‹ 1 2 … 4 5 [6] 7 8 … 15 16 › after: ‹ 1 2 3 4 5 [6] 7 8 … 15 16 › ``` * Fixed a bug where `paginate` changes request.format #540 [@jasonkim] * Fixed a bug where `per(nil)` didn't respect `max_per_page` configuration #800 [@jonathanhefner] * Fixed a bug that model class' `max_paginates_per` was ignored when it's smaller than the default `per_page` * Preserve source location of the pagination method #812 [@ka8725] * Preserve source location of the tag helpers * Hide Next & Last buttons if page is out of range #712 [@igorkasyanchuk] * Always buffer with `ActionView::OutputBuffer` if Action View is loaded #804 [@onemanstartup] * Fixed `padding()` not to accept negative value #839 [@yo-gen] * Fixed a bug where `total_count` used to return a wrong value with larger page value than total pages in `without_count` mode #845 [@denislins] * Coerce `padding()` argument to Integer #840 [@pablocrivella] ## 0.17.0 * Rails 5 ready! * Mongoid 5.0 support * Dropped Ruby 1.8 support * Dropped Mongoid 2.x support * Extracted Sinatra support to kaminari-sinatra gem * Extracted DataMapper support to kaminari-data_mapper gem * Extracted Mongoid support to kaminari-mongoid gem * Extracted MongoMapper support to kaminari-mongo_mapper gem * Deprecated `Kaminari::PageScopeMethods#num_pages` in favor of `total_pages` * Deprecated `:num_pages` option for `paginate` in favor of `:total_pages` * Fixed mangled params in pagination links on Rails 5 #766 [@audionerd] * Fixed a bug where the range of the records displayed on the last page doesn't match #718 [@danzanzini] ## 0.16.3 * Fixed a "stack level too deep" bug in mongoid #642 [@bartes] * Fixed a bug that Kaminari possibly crashes when combined with other gems that define `inherited` method on model classes, such as aasm. #651 [@zeitnot] ## 0.16.2 * Fixed a bug where cloned Relations remember previous relations' `@total_count` value #565 [@inkstak] * Fixed a bug where `paginate_array()` with `total_count` option returns whole array for every page #516 [@abhichvn] * Fixed a bug where `:num_pages` option was backwards-incompatible #605 [@klebershimabuku] * Fixed a bug where themed views generator attempts to overwrite README.md #623 [@swrobel] * Fixed a bug that ruby raises a NameError when theme was not found #622 [@maxprokopiev] * Fixed a bug that `paginates_per` does not work with subclasses on mongoid #634 [@kouyaf77] * Show an error message if a proper template was not found for the generator theme #600 [@meltedice] ## 0.16.1 * Fix a bug where `:theme` option for #paginate method doesn't work properly #566 [@commstratdev] ## 0.16.0 * Add support for mongoid `max_scan` option #500 [@aptx4869] * Add `link_to_previous_page` helper for Sinatra #504 [@ikeay] * Add `:views_prefix` option to `#paginate` for alternative views directory #552 [@apotonick] * Simplify `page_entries_info` by adding `entry_name` interface to each ORM * Refer ActiveRecord::Base from top level namespace for more safety when inherited class's namespace has `ActiveRecord` constant #522 [@yuroyoro] * Fix a bug where runtime persistence not taken into account with mongoid/kaminari #326 [@nubeod] * Fix a bug where helper methods were not available from inside `paginator.render do ... end` block #239 [@damien-roche] * Fix a bug where theme generator didn't work on Rails 4.1 #526 [@jimryan] * Fix a bug that paginatable arrays with `total_count` option always returns whole array #516 [@abhichvn] ## 0.15.1 * `page_method_name` option was not working in 0.15.0 #481 [@mauriciopasquier] * Use the mongoid criteria #length method to cache the count of the collection per criteria #484 [@camallen] * Don't inherit `host`, `port`, and `protocol` from the given params ## 0.15.0 * Allow `count`, `total_count` to pass parameters to super #193 [@bsimpson] * Add `max_pages` and `max_pages_per` methods to limit displayed pages per model or globally #301 [@zpieslak] * Add support for Sinatra views overrides (add app views paths) #332 [@j15e] * Fix wrong pagination when used with `padding` #359 [@vladimir-vg, @negipo] * check for Hash in addition to OrderedHash, which seems to break in Rails 4, for total_count #369 [@aew] * Make `to_s` in paginator threadsafe #374 [@bf4] * Fix Missing partial Error when `paginate` called from different format template #381 [@joker1007] * Add `PageScopeMethods#next_page`, `prev_page`, and `out_of_range?` [@yuki24] * Use `html_safe` in view partials instead of `raw` fixed #73 [@zzak] * Fix a bug that `PaginatableArray#total_pages` returns the wrong value #416 [@yuki24] * Make `num_pages` to return the same value as `total_pages` for backward compat [@yuki24, @eitoball] * Change `#page_entries_info` to use model name #340, #348 [@znz, @eitoball] * Change scope to class method #433 [@kolodovskyy] * Fix arity problem with Rails 4.1.0 #449 [@bricker] ## 0.14.1 * Changed the default "truncation" String from "..." to "…" #264 [@pjaspers] * The theme generator is Github API v3 compatible now! #279 [@eitoball] * Made `Kaminari.config.default_per_page` changeable again #280 [@yuki24] ## 0.14.0 * Grape framework support! #218 [@mrplum] * Mongoid 3 ready! #238 [@shingara] * Added `link_to_previous_page` helper #191 [@timgremore] * Added helper to generate rel="next" and rel="prev" link tags for SEO #200 [@joe1chen] * Added `max_per_page` configuration option #274 [@keiko0713] This would be useful for the case when you are using user input `per_page` value but want to impose the upper bound. * Added I18n to `page_entries_info` #207 [@plribeiro3000] * Changed method name `num_pages` to `total_pages` `num_pages` is still available as an alias of `total_pages`, but will be deprecated or removed in some future version. * Changed the way `page_entries_info` behave so it can show appropriate names for models with namespace #207 [@plribeiro3000] * Added `html_safe` to `page_entries_info` helper #190 [@lucapette] * Fixed displayed number of items on each page w/ Mongoid 2.4.x and MongoMapper #194 [@dblock] * Removed a unused local variable from templates from default tamplate #245 [@juno] * Fixed `page_entry_info` to use the value of `entry_name` option when given collection is empty or a PaginatableArray #265, #277 [@eitoball] * Added require 'dm-aggregates' in DataMapper hook #259 [@shingara] ## 0.13.0 * Rails 3.2 ready! #180 [@slbug] * DataMapper support! #149 [@NoICE, @Ragmaanir] * Sinatra & Padrino support! #179 [@udzura, @mlightner, @aereal] * Added mongoid embedded documents support! #155 [@yuki24] * Added `each_relevant_page` that only visits pages in the inner or outer windows. Performance improved, particularly with very large number of pages. #154 [@cbeer] * Memoize count for AR when calling `total_count`. Increases performance for large datasets. #138 [@sarmiena] * Added `page_entries_info` view helper #140 [@jeffreyiacono] ``` <%= page_entries_info @posts %> #=> Displaying posts 6 - 10 of 26 in total ``` * Added `link_to_next_page` helper method that simply links to the next page ``` <%= link_to_next_page @posts, 'More' %> #=> ``` * Let one override the `rel` attribute for `link_to_next_page` helper #177 [@webmat] * Added `total_count` param for PaginatableArray. Useful for when working with RSolr #141 [@samdalton] * Changed `Kaminari.paginate_array` API to take a Hash `options` And specifying :limit & :offset immediately builds a pagination ready object ```ruby # the following two are equivalent. Use whichever you like Kaminari.paginate_array((1..100).to_a, limit: 10, offset: 10) Kaminari.paginate_array((1..100).to_a).page(2).per(10) ``` * Added `padding` method to skip an arbitrary record count #60 [@aaronjensen] ```ruby User.page(2).per(10).padding(3) # this will return users 14..23 ``` * Made the pagination method name (defaulted to `page`) configurable #57, #162 ```ruby # you can use the config file and its generator for this Kaminari.config.page_method_name = :paging Article.paging(3).per(30) ``` * Only add extensions to direct descendents of ActiveRecord::Base #108 [@seejohnrun] * AR models that were subclassed before Kaminari::ActiveRecordExtension is included pick up the extensions #119 [@pivotal-casebook] * Avoid overwriting AR::Base inherited method #165 [@briandmcnabb] * Stopped depending on Rails gem #159 [@alsemyonov] * introduced Travis CI #181 [@hsbt] ## 0.12.4 * Support for `config.param_name` as lambda #102 [@ajrkerr] * Stop duplicating `order_values` #65 [@zettabyte] * Preserve select value (e.g. "distinct") when counting #77, #104 [@tbeauvais, @beatlevic] ## 0.12.3 * Haml 3.1 Support #96 [@FlyboyArt, @sonic921] ## 0.12.2 * Added MongoMapper Support #101 [@hamin] * Add `first_page?` and `last_page?` to `page_scope_methods` #51 [@holinnn] * Make sure that the paginate helper always returns a String #99 [@Draiken] * Don't remove includes scopes from count if they are needed #100 [@flop] ## 0.12.1 * Slim template support #93 [@detrain] * Use Kaminari.config to specify default value for `param_name` #94 [@avsej] * Fixed "super called outside of method" error happened in particular versions of Ruby 1.8.7 #91 [@Skulli] * `_paginate.html.erb` isn't rendered with custom theme #97 [@danlunde] ## 0.12.0 * General configuration options #41 #62 [@javierv, @iain] You can now globally override some default values such as `default_per_page`, `window`, etc. via configuration file. Also, here comes a generator command that generates the default configuration file into your app's config/initilizers directory. * Generic pagination support for Array object #47 #68 #74 [@lda, @ened, @jianlin] You can now paginate through any kind of Arrayish object in this way: ```ruby Kaminari.paginate_array(my_array_object).page(params[:page]).per(10) ``` * Fixed a serious performance regression on #count method in 0.11.0 [@ankane] * Bugfix: Pass the real @params to `url_for` #90 [@utkarshkukreti] * Fixed a gem packaging problem (circular dependency) There was a packaging problem with Kaminari 0.11.0 that the gem depends on Kaminari gem. Maybe Jeweler + "gemspec" method didn't work well... ## 0.11.0 This release contains several backward incompatibilities on template API. You probably need to update your existing templates if you're already using your own custom theme. * Merge `_current_page`, `_first_page_link`, `_last_page_link` and `_page_link` into one `_page` partial #28 [@GarthSnyder] * Add real first/last page links, and use them by default instead of outer window #30 [@GarthSnyder] * The disabled items should simply not be emitted, even as an empty span #30 [@GarthSnyder] * Skip :order in `#count_all` so complex groups with generated columns don't blow up in SQL-land #61 [@keeran, @Empact] * Ignore :include in `#count_all` to make it work better with polymorphic eager loading #80 [@njakobsen] * Quick fix on `#count` to return the actual number of records on AR 3.0 #45 #50 * Removed "TERRIBLE HORRIBLE NO GOOD VERY BAD HACK" #82 [@janx, @flop, @pda] * Allow for Multiple Themes #64 [@tmilewski] * Themes can contain the whole application directory structure now * Use `gemspec` method in Gemfile [@p_elliott] ## 0.10.4 * Do not break ActiveRecord::Base.descendants, by making sure to call super from ActiveRecord::Base.inherited #34 [@rolftimmermans] * Fixed vanishing mongoid criteria after calling `page()` #26 [@tyok] ## 0.10.3 * Fixed a bug that `total_count()` didn't work when chained with `group()` scope #21 [@jgeiger] * Fixed a bug that the paginate helper didn't work properly with an Ajax call #23 [@hjuskewycz] ## 0.10.2 * Added `:param_name` option to the pagination helper #10 [@ivanvr] ```haml = paginate @users, :param_name => :pagina ``` ## 0.10.1 * Fixed a bug that the whole `