From d4df72be48d9694d029816927016ecee4867e144 Mon Sep 17 00:00:00 2001 From: Paul Bob Date: Fri, 27 Oct 2023 11:59:15 +0300 Subject: [PATCH 1/4] feature: countless pagination --- docs/2.0/resources.md | 11 +++++++++++ docs/3.0/resources.md | 14 +++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/2.0/resources.md b/docs/2.0/resources.md index cfff9c3e..5b7b9bbe 100644 --- a/docs/2.0/resources.md +++ b/docs/2.0/resources.md @@ -567,3 +567,14 @@ end This tells Avo which resources you use and stops the eager-loading process on boot-time. This means that other resources that are not declared in this array will not show up in your app. + +:::option self.countless + +This feature is designed for managing large tables of data. By setting `self.countless` to `true`, you can disable the pagination count on the resource's index. This is especially beneficial for large datasets, where displaying the total number of items and pages may have some performance impact. + +```ruby +self.countless = -> { true } +# OR +self.countless = true +``` +::: diff --git a/docs/3.0/resources.md b/docs/3.0/resources.md index 68ecebd3..057cf7b0 100644 --- a/docs/3.0/resources.md +++ b/docs/3.0/resources.md @@ -675,7 +675,8 @@ self.components = { This way you can choose the whatever namespace structure you want and you assure that the initializer is accepting the right arguments. -## Unscoped queries on `Index` +:::option self.index_query +### Unscoped queries on `Index` You might have a `default_scope` on your model that you don't want to be applied when you render the `Index` view. ```ruby{2} class Project < ApplicationRecord @@ -691,3 +692,14 @@ class Avo::Resources::Project < Avo::BaseResource self.index_query = -> { query.unscoped } end ``` +::: + +:::option self.countless +This feature is designed for managing large tables of data. By setting `self.countless` to `true`, you can disable the pagination count on the resource's index. This is especially beneficial for large datasets, where displaying the total number of items and pages may have some performance impact. + +```ruby +self.countless = -> { true } +# OR +self.countless = true +``` +::: From f45b282a39bbbe6eedc936809981c9993e36d489 Mon Sep 17 00:00:00 2001 From: Paul Bob Date: Mon, 6 Nov 2023 17:55:06 +0200 Subject: [PATCH 2/4] refactor --- docs/2.0/resources.md | 79 ++++++++++++++++-- .../img/resources/pagination/countless.png | Bin 0 -> 6849 bytes .../pagination/countless_empty_size.png | Bin 0 -> 5980 bytes .../img/resources/pagination/default.png | Bin 0 -> 12073 bytes 4 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 docs/public/assets/img/resources/pagination/countless.png create mode 100644 docs/public/assets/img/resources/pagination/countless_empty_size.png create mode 100644 docs/public/assets/img/resources/pagination/default.png diff --git a/docs/2.0/resources.md b/docs/2.0/resources.md index 5b7b9bbe..1cd3acc0 100644 --- a/docs/2.0/resources.md +++ b/docs/2.0/resources.md @@ -568,13 +568,80 @@ end This tells Avo which resources you use and stops the eager-loading process on boot-time. This means that other resources that are not declared in this array will not show up in your app. -:::option self.countless - -This feature is designed for managing large tables of data. By setting `self.countless` to `true`, you can disable the pagination count on the resource's index. This is especially beneficial for large datasets, where displaying the total number of items and pages may have some performance impact. +:::option self.pagination + +This feature is designed for managing pagination. For example on large tables of data sometimes count is inefficient and unnecessary. +By setting `self.pagination[:type]` to `:countless`, you can disable the pagination count on the index page. + +This is especially beneficial for large datasets, where displaying the total number of items and pages may have some performance impact. + +```ruby +# As block: +self.pagination = -> do + { + type: :normal, + size: [1, 2, 2, 1], + } +end + +# Or as hash: +self.pagination = { + type: :normal, + size: [1, 2, 2, 1], +} +``` + +The exposed pagination setting above have the default value for each key. + +### `type`

+ #### Possible values + `:normal`, `:countless` + #### Default + `:normal` + + +### `size`

+ #### Possible values + [Pagy docs - Control the page links](https://ddnexus.github.io/pagy/docs/how-to/#control-the-page-links) + #### Default + `[1, 2, 2, 1]` + +### Examples +#### Default ```ruby -self.countless = -> { true } -# OR -self.countless = true +self.pagination = -> do + { + type: :normal, + size: [1, 2, 2, 1], + } +end +``` + +![Default pagination](/assets/img/resources/pagination/default.png) +

+ +#### Countless + +```ruby +self.pagination = -> do + { + type: :countless + } +end +``` + +![Countless pagination](/assets/img/resources/pagination/countless.png) +

+ +#### Countless and "pageless" +```ruby +self.pagination = -> do + { + type: :countless, + size: [] + } +end ``` +![Countless pagination size empty](/assets/img/resources/pagination/countless_empty_size.png) ::: diff --git a/docs/public/assets/img/resources/pagination/countless.png b/docs/public/assets/img/resources/pagination/countless.png new file mode 100644 index 0000000000000000000000000000000000000000..aff40430a844f9231e66beae8e08bbeb1080ee17 GIT binary patch literal 6849 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 K2txeR_x}SPkxeK7 literal 0 HcmV?d00001 diff --git a/docs/public/assets/img/resources/pagination/countless_empty_size.png b/docs/public/assets/img/resources/pagination/countless_empty_size.png new file mode 100644 index 0000000000000000000000000000000000000000..95aeb10e5fb9a3e422e22397d2c1ab3ee26466f6 GIT binary patch literal 5980 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 KSoOr_?f(F+DYHoc literal 0 HcmV?d00001 diff --git a/docs/public/assets/img/resources/pagination/default.png b/docs/public/assets/img/resources/pagination/default.png new file mode 100644 index 0000000000000000000000000000000000000000..5bece22c9916303d482143a672daff5470667cf0 GIT binary patch literal 12073 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�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 literal 0 HcmV?d00001 From b27a5429ee6b4e563bf891e0557b4170dcec4403 Mon Sep 17 00:00:00 2001 From: Paul Bob Date: Thu, 16 Nov 2023 10:22:15 +0200 Subject: [PATCH 3/4] normal to default --- docs/2.0/resources.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/2.0/resources.md b/docs/2.0/resources.md index 1cd3acc0..4a1ea48e 100644 --- a/docs/2.0/resources.md +++ b/docs/2.0/resources.md @@ -580,14 +580,14 @@ This is especially beneficial for large datasets, where displaying the total num # As block: self.pagination = -> do { - type: :normal, + type: :default, size: [1, 2, 2, 1], } end # Or as hash: self.pagination = { - type: :normal, + type: :default, size: [1, 2, 2, 1], } ``` @@ -596,9 +596,9 @@ The exposed pagination setting above have the default value for each key. ### `type`

#### Possible values - `:normal`, `:countless` + `:default`, `:countless` #### Default - `:normal` + `:default` ### `size`

@@ -612,7 +612,7 @@ The exposed pagination setting above have the default value for each key. ```ruby self.pagination = -> do { - type: :normal, + type: :default, size: [1, 2, 2, 1], } end From 4dcd9bc2922b56072e9229f603e3e36a73371d0e Mon Sep 17 00:00:00 2001 From: Paul Bob Date: Mon, 20 Nov 2023 09:31:17 +0200 Subject: [PATCH 4/4] add v3 docs --- docs/3.0/resources.md | 78 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/docs/3.0/resources.md b/docs/3.0/resources.md index 507cd71a..4d9d7283 100644 --- a/docs/3.0/resources.md +++ b/docs/3.0/resources.md @@ -721,3 +721,81 @@ end ``` ![Alt text](/assets/img/cards_on_resource.png) + +:::option self.pagination + +This feature is designed for managing pagination. For example on large tables of data sometimes count is inefficient and unnecessary. + +By setting `self.pagination[:type]` to `:countless`, you can disable the pagination count on the index page. + +This is especially beneficial for large datasets, where displaying the total number of items and pages may have some performance impact. + +```ruby +# As block: +self.pagination = -> do + { + type: :default, + size: [1, 2, 2, 1], + } +end + +# Or as hash: +self.pagination = { + type: :default, + size: [1, 2, 2, 1], +} +``` + +The exposed pagination setting above have the default value for each key. + +### `type`

+ #### Possible values + `:default`, `:countless` + #### Default + `:default` + + +### `size`

+ #### Possible values + [Pagy docs - Control the page links](https://ddnexus.github.io/pagy/docs/how-to/#control-the-page-links) + #### Default + `[1, 2, 2, 1]` + +### Examples +#### Default +```ruby +self.pagination = -> do + { + type: :default, + size: [1, 2, 2, 1], + } +end +``` + +![Default pagination](/assets/img/resources/pagination/default.png) +

+ +#### Countless + +```ruby +self.pagination = -> do + { + type: :countless + } +end +``` + +![Countless pagination](/assets/img/resources/pagination/countless.png) +

+ +#### Countless and "pageless" +```ruby +self.pagination = -> do + { + type: :countless, + size: [] + } +end +``` +![Countless pagination size empty](/assets/img/resources/pagination/countless_empty_size.png) +:::