pg_rails 7.1.7 → 7.1.9
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 +4 -4
- data/pg_engine/app/assets/stylesheets/pg_rails_b5.scss +5 -0
- data/pg_engine/app/controllers/concerns/pg_engine/resource.rb +22 -7
- data/pg_engine/app/helpers/pg_engine/index_helper.rb +7 -3
- data/pg_engine/app/views/pg_engine/base/index.html.slim +8 -1
- data/pg_engine/spec/system/page_sizes_spec.rb +26 -0
- data/pg_layout/app/views/layouts/pg_layout/base.html.slim +1 -1
- data/pg_rails/lib/version.rb +1 -1
- data/pg_scaffold/lib/generators/pg_rails/system_spec/USAGE +5 -0
- data/pg_scaffold/lib/generators/pg_rails/system_spec/system_spec_generator.rb +17 -0
- data/pg_scaffold/lib/generators/pg_rails/system_spec/templates/system_spec.rb +29 -0
- data/pg_scaffold/spec/generators_spec.rb +18 -3
- metadata +6 -4
- data/pg_rails/dist/types/pg_associable/app/javascript/asociable_controller.d.ts +0 -17
- data/pg_rails/dist/types/pg_layout/app/javascript/utils/utils.d.ts +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27fbc8e577ed0fed33aa886661ef3a3b0af756d2485e0af017eba42bedaed7c6
|
4
|
+
data.tar.gz: e579a2a15e0dd692d102ee83615ec25f1b641ccc4674b14ca704a41ca93fc11a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21ced186a92373d6289c79c364510e65252594fdfd46a514c19cac55f39ce55398323325a5ef2d5ae75d3d462fdca5dafa6bc2d1b5c906538a47faed208a0d83
|
7
|
+
data.tar.gz: e632afb4c13e2fb01ed5f641acce2efd681b610a96da8ef95ab5d48fed82c896634bd5a049833fef3669e11006db65b98af1fa4c3e2cd440fba72d954598e442
|
@@ -6,6 +6,7 @@ module PgEngine
|
|
6
6
|
clazz.helper_method :atributos_para_mostrar
|
7
7
|
clazz.helper_method :current_page_size
|
8
8
|
clazz.helper_method :show_filters?
|
9
|
+
clazz.helper_method :available_page_sizes
|
9
10
|
end
|
10
11
|
|
11
12
|
# Public endpoints
|
@@ -18,7 +19,7 @@ module PgEngine
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def index
|
21
|
-
@collection = filtros_y_policy
|
22
|
+
@collection = filtros_y_policy(atributos_para_buscar, default_sort)
|
22
23
|
|
23
24
|
pg_respond_index
|
24
25
|
end
|
@@ -53,6 +54,14 @@ module PgEngine
|
|
53
54
|
|
54
55
|
protected
|
55
56
|
|
57
|
+
def default_sort
|
58
|
+
nil
|
59
|
+
end
|
60
|
+
|
61
|
+
def available_page_sizes
|
62
|
+
[10, 20, 30, 50, 100].push(current_page_size).uniq.sort
|
63
|
+
end
|
64
|
+
|
56
65
|
def show_filters?
|
57
66
|
cur_route = pg_current_route
|
58
67
|
idtf = cur_route[:controller] + '#' + cur_route[:action] + '#open-filters'
|
@@ -68,15 +77,18 @@ module PgEngine
|
|
68
77
|
|
69
78
|
def current_page_size
|
70
79
|
if params[:page_size].present?
|
71
|
-
session[
|
72
|
-
params[:page_size].to_i
|
73
|
-
else
|
74
|
-
default_page_size
|
80
|
+
session[page_size_session_key] = params[:page_size].to_i
|
75
81
|
end
|
82
|
+
|
83
|
+
session[page_size_session_key].presence || default_page_size
|
84
|
+
end
|
85
|
+
|
86
|
+
def page_size_session_key
|
87
|
+
"#{controller_name}/#{action_name}/page_size"
|
76
88
|
end
|
77
89
|
|
78
90
|
def default_page_size
|
79
|
-
|
91
|
+
10
|
80
92
|
end
|
81
93
|
|
82
94
|
def pg_respond_update
|
@@ -282,7 +294,7 @@ module PgEngine
|
|
282
294
|
@clase_modelo ||= self.class.name.singularize.gsub('Controller', '').constantize
|
283
295
|
end
|
284
296
|
|
285
|
-
def filtros_y_policy(campos)
|
297
|
+
def filtros_y_policy(campos, dflt_sort = nil)
|
286
298
|
@filtros = PgEngine::FiltrosBuilder.new(
|
287
299
|
self, clase_modelo, campos
|
288
300
|
)
|
@@ -292,6 +304,9 @@ module PgEngine
|
|
292
304
|
|
293
305
|
shared_context = Ransack::Adapters::ActiveRecord::Context.new(scope)
|
294
306
|
@q = @clase_modelo.ransack(params[:q], context: shared_context)
|
307
|
+
|
308
|
+
@q.sorts = dflt_sort if @q.sorts.empty? && dflt_sort.present?
|
309
|
+
|
295
310
|
shared_context.evaluate(@q)
|
296
311
|
end
|
297
312
|
|
@@ -8,12 +8,12 @@ module PgEngine
|
|
8
8
|
sort_field = input.last
|
9
9
|
else
|
10
10
|
campo = sort_field = input
|
11
|
+
sort_field = sort_field.to_s.sub(/_f\z/, '')
|
12
|
+
sort_field = sort_field.to_s.sub(/_text\z/, '')
|
11
13
|
end
|
12
14
|
|
13
15
|
campo = campo.to_s.sub(/_f\z/, '')
|
14
16
|
campo = campo.to_s.sub(/_text\z/, '')
|
15
|
-
sort_field = sort_field.to_s.sub(/_f\z/, '')
|
16
|
-
sort_field = sort_field.to_s.sub(/_text\z/, '')
|
17
17
|
|
18
18
|
clase = options[:clase] || @clase_modelo
|
19
19
|
key = [controller_name, action_name, 'listado_header', campo].join('.')
|
@@ -21,7 +21,11 @@ module PgEngine
|
|
21
21
|
human_name = clase.human_attribute_name(key, default: dflt)
|
22
22
|
|
23
23
|
if options[:ordenable]
|
24
|
-
|
24
|
+
if sort_field.is_a? Array
|
25
|
+
sort_link(@q, sort_field.first, sort_field, human_name, default_order: default_order(campo))
|
26
|
+
else
|
27
|
+
sort_link(@q, sort_field, human_name, default_order: default_order(campo))
|
28
|
+
end
|
25
29
|
else
|
26
30
|
human_name
|
27
31
|
end
|
@@ -58,8 +58,15 @@ div
|
|
58
58
|
= object.edit_link(text: '', klass: 'btn-light')
|
59
59
|
= object.destroy_link
|
60
60
|
|
61
|
-
.
|
61
|
+
.d-flex.justify-content-center
|
62
62
|
= paginate(@collection)
|
63
|
+
.d-flex.align-items-center.justify-content-center.opacity-50
|
64
|
+
label.me-2 Filas por página:
|
65
|
+
ul.list-group.list-group-horizontal
|
66
|
+
- available_page_sizes.each do |page_size|
|
67
|
+
= link_to page_size,
|
68
|
+
namespaced_path(@clase_modelo, page_size:),
|
69
|
+
class: "list-group-item #{'active' if current_page_size == page_size}"
|
63
70
|
- elsif @records_filtered
|
64
71
|
- i18n_key = "#{controller_key}.#{action_name}.index.empty_but_filtered"
|
65
72
|
p.m-3
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Initially generated with PgRails::SystemSpecGenerator
|
2
|
+
# https://github.com/martin-rosso/pg_rails
|
3
|
+
|
4
|
+
require 'rails_helper'
|
5
|
+
|
6
|
+
# By default uses selenium_chrome_headless_iphone driver
|
7
|
+
# run with DRIVER environment variable to override, eg:
|
8
|
+
#
|
9
|
+
# DRIVER=selenium rspec
|
10
|
+
describe 'Page sizes' do
|
11
|
+
let(:logged_user) { create :user, :developer }
|
12
|
+
|
13
|
+
before do
|
14
|
+
login_as logged_user
|
15
|
+
create_list :cosa, 8
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'some case' do
|
19
|
+
it do
|
20
|
+
visit '/admin/cosas?page_size=2'
|
21
|
+
expect(page).to have_css('.page-item', count: 6)
|
22
|
+
visit '/admin/cosas?page_size=5'
|
23
|
+
expect(page).to have_css('.page-item', count: 4)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -74,7 +74,7 @@ html
|
|
74
74
|
= render FlashContainerComponent.new
|
75
75
|
/ TODO: si hay varios flashes toast, se superponen. habría que
|
76
76
|
hacer un container con position absolute para los toasts
|
77
|
-
|
77
|
+
= yield(:filtros)
|
78
78
|
= content
|
79
79
|
div style="width:100%; height: 10em"
|
80
80
|
= render partial: 'layouts/footer'
|
data/pg_rails/lib/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PgRails
|
4
|
+
class SystemSpecGenerator < Rails::Generators::NamedBase
|
5
|
+
source_root File.expand_path('templates', __dir__)
|
6
|
+
|
7
|
+
def copy_application_policy
|
8
|
+
template 'system_spec.rb', "spec/system/#{file_name}.rb"
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def file_name
|
14
|
+
"#{name.downcase.gsub(' ', '_')}_spec"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Initially generated with PgRails::SystemSpecGenerator
|
2
|
+
# https://github.com/martin-rosso/pg_rails
|
3
|
+
|
4
|
+
require 'rails_helper'
|
5
|
+
|
6
|
+
# By default uses selenium_chrome_headless_iphone driver
|
7
|
+
# run with DRIVER environment variable to override, eg:
|
8
|
+
#
|
9
|
+
# DRIVER=selenium rspec
|
10
|
+
describe '<%= name %>' do
|
11
|
+
subject(:visitar) do
|
12
|
+
visit 'some url'
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:logged_user) { create :user }
|
16
|
+
let(:account) { logged_user.current_account }
|
17
|
+
|
18
|
+
before do
|
19
|
+
login_as logged_user
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'some case' do
|
23
|
+
it do
|
24
|
+
visitar
|
25
|
+
|
26
|
+
expect(page).to have_text 'some text'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -3,13 +3,15 @@ require 'rails_helper'
|
|
3
3
|
require 'generators/pg_rspec/scaffold/scaffold_generator'
|
4
4
|
require 'generators/pg_decorator/pg_decorator_generator'
|
5
5
|
require 'generators/pg_active_record/model/model_generator'
|
6
|
+
require 'generators/pg_rails/system_spec/system_spec_generator'
|
6
7
|
|
7
8
|
TEST_ENV_NUMBER = ENV.fetch('TEST_ENV_NUMBER', '')
|
8
9
|
DESTINATION_PATH = File.expand_path("./../../tmp/generator_testing#{TEST_ENV_NUMBER}", __dir__)
|
9
10
|
|
10
11
|
describe 'Generators', type: :generator do
|
12
|
+
destination DESTINATION_PATH
|
13
|
+
|
11
14
|
describe 'PgDecoratorGenerator' do
|
12
|
-
destination DESTINATION_PATH
|
13
15
|
tests PgDecoratorGenerator
|
14
16
|
|
15
17
|
before { prepare_destination }
|
@@ -24,7 +26,6 @@ describe 'Generators', type: :generator do
|
|
24
26
|
end
|
25
27
|
|
26
28
|
describe 'ScaffoldGenerator' do
|
27
|
-
destination DESTINATION_PATH
|
28
29
|
tests PgRspec::Generators::ScaffoldGenerator
|
29
30
|
|
30
31
|
before { prepare_destination }
|
@@ -40,7 +41,6 @@ describe 'Generators', type: :generator do
|
|
40
41
|
end
|
41
42
|
|
42
43
|
describe PgActiveRecord::ModelGenerator do
|
43
|
-
destination DESTINATION_PATH
|
44
44
|
tests described_class
|
45
45
|
|
46
46
|
before { prepare_destination }
|
@@ -53,4 +53,19 @@ describe 'Generators', type: :generator do
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
56
|
+
|
57
|
+
describe PgRails::SystemSpecGenerator do
|
58
|
+
tests described_class
|
59
|
+
|
60
|
+
before { prepare_destination }
|
61
|
+
|
62
|
+
it do
|
63
|
+
run_generator(['Filtros en listados'])
|
64
|
+
|
65
|
+
my_assert_file 'spec/system/filtros_en_listados_spec.rb' do |content|
|
66
|
+
expect(content).to match(/rails_helper/)
|
67
|
+
expect(content).to include 'describe \'Filtros en listados\' do'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
56
71
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.1.
|
4
|
+
version: 7.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martín Rosso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08-
|
11
|
+
date: 2024-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -791,6 +791,7 @@ files:
|
|
791
791
|
- pg_engine/spec/system/destroy_spec.rb
|
792
792
|
- pg_engine/spec/system/login_spec.rb
|
793
793
|
- pg_engine/spec/system/noticed_spec.rb
|
794
|
+
- pg_engine/spec/system/page_sizes_spec.rb
|
794
795
|
- pg_engine/spec/system/send_mail_spec.rb
|
795
796
|
- pg_engine/spec/system/signup_spec.rb
|
796
797
|
- pg_engine/spec/system/tooltips_spec.rb
|
@@ -857,8 +858,6 @@ files:
|
|
857
858
|
- pg_layout/lib/pg_layout.rb
|
858
859
|
- pg_layout/lib/pg_layout/engine.rb
|
859
860
|
- pg_layout/spec/lib/navbar_spec.rb
|
860
|
-
- pg_rails/dist/types/pg_associable/app/javascript/asociable_controller.d.ts
|
861
|
-
- pg_rails/dist/types/pg_layout/app/javascript/utils/utils.d.ts
|
862
861
|
- pg_rails/js/index.js
|
863
862
|
- pg_rails/lib/pg_rails.rb
|
864
863
|
- pg_rails/lib/pg_rails/capybara_support.rb
|
@@ -890,6 +889,9 @@ files:
|
|
890
889
|
- pg_scaffold/lib/generators/pg_rails/instalar/USAGE
|
891
890
|
- pg_scaffold/lib/generators/pg_rails/instalar/instalar_generator.rb
|
892
891
|
- pg_scaffold/lib/generators/pg_rails/instalar/templates/pg_rails.rb
|
892
|
+
- pg_scaffold/lib/generators/pg_rails/system_spec/USAGE
|
893
|
+
- pg_scaffold/lib/generators/pg_rails/system_spec/system_spec_generator.rb
|
894
|
+
- pg_scaffold/lib/generators/pg_rails/system_spec/templates/system_spec.rb
|
893
895
|
- pg_scaffold/lib/generators/pg_resource_route/pg_resource_route_generator.rb
|
894
896
|
- pg_scaffold/lib/generators/pg_rspec/model/model_generator.rb
|
895
897
|
- pg_scaffold/lib/generators/pg_rspec/model/templates/model_spec.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import { Controller } from '@hotwired/stimulus'
|
2
|
-
export default class extends Controller {
|
3
|
-
static outlets: string[]
|
4
|
-
lastValue: any
|
5
|
-
subWrapper: any
|
6
|
-
elemId: any
|
7
|
-
input: any
|
8
|
-
connect(): void;
|
9
|
-
resetResultados(): void;
|
10
|
-
setMaxHeight(): void;
|
11
|
-
crearItem(): void;
|
12
|
-
escribiAlgo(): void;
|
13
|
-
buscando(): void;
|
14
|
-
selectItem(e: any): void;
|
15
|
-
doSearch(force?: boolean): void;
|
16
|
-
completarCampo(object: any): void;
|
17
|
-
}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
export declare function round(value: any): number;
|
2
|
-
export declare function printCurrency(value: any, simboloMoneda?: string): string;
|
3
|
-
export declare function showPercentage(value: any): string;
|
4
|
-
export declare function numberWithDots(x: any): any;
|
5
|
-
export declare function flashMessage(message: any, flashType?: string, toast?: boolean): void;
|
6
|
-
export declare function fadeOut(e: any): void;
|
7
|
-
export declare function fadeIn(e: any): void;
|