pg_rails 7.6.24.pre.5 → 7.6.25

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24f6df5092e05945c72bd89a19aee27ab6bf20c5d6ea3920a5116a15c61b431e
4
- data.tar.gz: 6b3761e5a283aa143f816d1008c1408baa8cab50bf164b4924c6ec60285b9ebb
3
+ metadata.gz: 18003c61fd4e38fc6e7a70402aa0eaba4f335390e50061b1569bbea56c604a83
4
+ data.tar.gz: f2732b2e071e3672cc8e4b6d16e2e577f7b6bf3590a8a6c3d76ef45215bdb67f
5
5
  SHA512:
6
- metadata.gz: c82bfc1e6138d70770cb161ffdaf06732bc90e23aa5d0d9181b736abd600d425af0a3d5979a22fbe7e7dc9d7aa8ac660c009c523e327489527d2594512ec9535
7
- data.tar.gz: d827ee4b37c451ac8d0c0f4a28374ce1b6d0c0bbd2fab2b5ef36d919a49897e88b5be3772b1440146302edad2edb0f8fb4b24da28dda80bddbcf016c53a78990
6
+ metadata.gz: 9953c023fe35b70091a3ddc70b4a49f8cc7975476388835f1a0c7b286132afa68c4f5eaf35b6b1e80345fb2ff20251c35b9e238293b43cb217e445e226080598
7
+ data.tar.gz: 39911c247bdd17a3828a378478d03bb4027326b9c9b72d9ad5c0db1dc1b0e4d491dc6b2e37d899a02043a3446818feb304969c4a828b91dc3f7bf9a0adcf89c6
@@ -0,0 +1,10 @@
1
+ // Buttons border in nav toolbar
2
+ $warning-border-emphasis: shade-color($yellow, 60%);
3
+ .btn-toolbar .btn-warning {
4
+ border: 1px solid $warning-border-emphasis;
5
+ }
6
+
7
+ $light-border-emphasis: shade-color($light, 60%);
8
+ .btn-toolbar .btn-light {
9
+ border: 1px solid $light-border-emphasis;
10
+ }
@@ -1,8 +1,5 @@
1
1
  @use 'sass:color';
2
2
 
3
- @import 'notifications';
4
-
5
-
6
3
  :root,
7
4
  [data-bs-theme=light] {
8
5
  --bs-form-invalid-color: #b50000;
@@ -19,6 +16,12 @@ nav[aria-label=breadcrumb] a {
19
16
  display: inline-block;
20
17
  }
21
18
 
19
+ // Signup
20
+
21
+ #form-signup .form-inputs abbr {
22
+ display: none;
23
+ }
24
+
22
25
  // FORMS
23
26
 
24
27
  // Radio buttons
@@ -0,0 +1,29 @@
1
+ // Column truncate
2
+ $values: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100;
3
+
4
+ @for $i from 1 through length($values) {
5
+ $value: nth($values, $i);
6
+ $perc: #{percenage($value)};
7
+
8
+ .column-truncate-#{$value} {
9
+ max-width: 0;
10
+ width: percentage($value * 0.01);
11
+ overflow: hidden;
12
+ text-overflow: ellipsis;
13
+ white-space: nowrap;
14
+ min-width: 30em * $value * 0.01;
15
+
16
+ // TODO: con css grid esto se debería poder hacer mejor
17
+ // además, el pg_asociable directamente se rompe
18
+ &:has(form) {
19
+ min-width: 28em;
20
+ overflow: initial;
21
+ }
22
+ }
23
+ }
24
+
25
+ // Table row clickable
26
+ // .listado tr:has(td:hover):has(.bi-eye-fill) td {
27
+ // background-color: #f2f2f2;
28
+ // cursor: pointer;
29
+ // }
@@ -0,0 +1,16 @@
1
+ // Tom Select
2
+ .ts-control {
3
+ padding-top: 2px!important;
4
+ padding-bottom: 2px!important;
5
+ display: flex;
6
+ gap: 4px;
7
+ }
8
+ .input-group-sm > .ts-wrapper.multi.has-items .ts-control, .ts-wrapper.form-select-sm.multi.has-items .ts-control, .ts-wrapper.form-control-sm.multi.has-items .ts-control {
9
+ padding-top: 2px!important;
10
+ }
11
+ .ts-wrapper.multi .ts-control > div {
12
+ margin: 0!important;
13
+ }
14
+ .ts-control:not(.rtl) {
15
+ padding-right: 0.75rem !important;
16
+ }
@@ -1,6 +1,8 @@
1
1
  class FlashContainerComponent < ViewComponent::Base
2
+ # z-1 es para que no se superponga con el dropdown de la navbar,
3
+ # ya que sticky-top setea un z-index de 1020 y el del dropdown es de 1000
2
4
  erb_template <<~HTML
3
- <div id="flash-container" class="d-flex justify-content-around sticky-top">
5
+ <div id="flash-container" class="d-flex justify-content-around sticky-top z-1">
4
6
  <div id="flash" class="flash position-relative w-100 d-flex justify-content-center">
5
7
  <%= content || render(partial: 'pg_layout/flash') %>
6
8
  </div>
@@ -6,6 +6,7 @@ module Users
6
6
  yield resource if block_given?
7
7
 
8
8
  if resource.errors.empty?
9
+ sign_in(resource)
9
10
  set_flash_message!(:notice, :confirmed)
10
11
  respond_with_navigational(resource) { redirect_to after_confirmation_path_for(resource_name, resource) }
11
12
  else
@@ -4,6 +4,13 @@ module Users
4
4
  authorize resource, nil, policy_class: UserRegistrationPolicy
5
5
  end
6
6
 
7
+ # GET /resource/sign_up
8
+ def new
9
+ build_resource(accept_terms: true)
10
+ yield resource if block_given?
11
+ respond_with resource
12
+ end
13
+
7
14
  def create
8
15
  build_resource(sign_up_params)
9
16
 
@@ -23,6 +23,12 @@ class PgFormBuilder < SimpleForm::FormBuilder
23
23
  def input(attribute_name, options = {}, &)
24
24
  options[:error_prefix] ||= default_prefix(attribute_name)
25
25
 
26
+ # Bootstraps's floating labels require an empty placeholder attribute
27
+ merged_wrapper = self.options[:wrapper].to_s + options[:wrapper].to_s
28
+ if merged_wrapper.include?('floating')
29
+ options[:placeholder] = ''
30
+ end
31
+
26
32
  super
27
33
  end
28
34
 
@@ -66,7 +66,7 @@ class User < ApplicationRecord
66
66
 
67
67
  has_many :notifications, as: :recipient, class_name: 'Noticed::Notification'
68
68
 
69
- validates :nombre, :apellido, presence: true
69
+ # validates :nombre, :apellido, presence: true
70
70
 
71
71
  has_one_attached :avatar do |attachable|
72
72
  attachable.variant :thumb, resize_to_fill: [80, 80]
@@ -43,7 +43,7 @@ es:
43
43
  confirmed_at: Fecha de confirmación
44
44
  actualizado_por: Actualizado por
45
45
  creado_por: Creado por
46
- accept_terms: Acepto los <a href="/terminos_y_condiciones" target="_blank">Términos y condiciones</a> y la <a href="/privacidad" target="_blank">Política de privacidad</a>
46
+ accept_terms: Acepto los <a href="/terminos_y_condiciones" target="_blank">términos y condiciones</a>
47
47
  enumerize:
48
48
  user_account:
49
49
  membership_status:
@@ -117,7 +117,7 @@ es:
117
117
  header: "Aceptar invitación"
118
118
  submit_button: "Aceptar"
119
119
  confirmations:
120
- confirmed: ¡Tu cuenta está confirmada! Ya podés iniciar sesión
120
+ confirmed: ¡Bien! Ahora tu cuenta está confirmada
121
121
  sessions:
122
122
  signed_in: ''
123
123
  signed_out: ''
@@ -128,7 +128,7 @@ es:
128
128
  unauthenticated: ''
129
129
  invited: "Tenés una invitación pendiente en tu correo electrónico"
130
130
  registrations:
131
- signed_up_but_unconfirmed: Te enviamos un correo electrónico con instrucciones para confirmar tu cuenta.
131
+ signed_up_but_unconfirmed: Por favor, revisá en tu bandeja de entrada las instrucciones para confirmar tu cuenta.
132
132
  new:
133
133
  sign_up: Crear una cuenta
134
134
  passwords:
@@ -35,6 +35,9 @@ Rails.application.routes.draw do
35
35
  root to: 'accounts#index'
36
36
  end
37
37
 
38
+ # User root for devise's signed_in_root_path
39
+ get '/u', to: 'accounts#index', as: :user_root
40
+
38
41
  namespace :tenant, path: 'u/t(/:tid)' do
39
42
  pg_resource(:user_accounts, only: [:index, :show, :edit, :update, :destroy])
40
43
  scope controller: 'inline_edit', path: 'inline', as: :inline do
@@ -18,10 +18,7 @@ describe 'Al Registrarse' do
18
18
  perform_enqueued_jobs do
19
19
  visit '/users/sign_up'
20
20
  fill_in 'user_email', with: Faker::Internet.email
21
- fill_in 'user_nombre', with: Faker::Name.name
22
- fill_in 'user_apellido', with: Faker::Name.name
23
21
  fill_in 'user_password', with: 'admin123'
24
- fill_in 'user_password_confirmation', with: 'admin123'
25
22
 
26
23
  accept_terms
27
24
 
@@ -31,7 +28,7 @@ describe 'Al Registrarse' do
31
28
 
32
29
  context 'cuando acepta los términos' do
33
30
  let(:accept_terms) do
34
- check 'user_accept_terms'
31
+ nil
35
32
  end
36
33
 
37
34
  it 'guarda el user' do
@@ -39,13 +36,13 @@ describe 'Al Registrarse' do
39
36
  ActsAsTenant.without_tenant do
40
37
  expect(Account.last.owner).to eq User.last
41
38
  end
42
- expect(page).to have_text('Te enviamos un correo electrónico con instrucciones')
39
+ expect(page).to have_text('las instrucciones para confirmar')
43
40
  end
44
41
  end
45
42
 
46
43
  context 'si no acepta los terms' do
47
44
  let(:accept_terms) do
48
- nil
45
+ uncheck 'user_accept_terms'
49
46
  end
50
47
 
51
48
  it do
@@ -77,12 +74,6 @@ describe 'Al Registrarse' do
77
74
  end
78
75
  end
79
76
 
80
- # drivers = %i[
81
- # selenium_headless
82
- # selenium_chrome_headless
83
- # selenium_chrome_headless_notebook
84
- # selenium_chrome_headless_iphone
85
- # ]
86
77
  drivers = %i[selenium_chrome_headless_iphone]
87
78
  drivers = [ENV['DRIVER'].to_sym] if ENV['DRIVER'].present?
88
79
 
@@ -0,0 +1 @@
1
+ p Creá tu cuenta!
@@ -1,27 +1,29 @@
1
- <h2><%= t(".sign_up") %></h2>
2
- <div id="form-signup" data-controller="pg_form">
3
- <%= pg_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
4
- <div class="form-inputs">
5
- <%= f.input :nombre, required: true, autofocus: true %>
6
- <%= f.input :apellido, required: true %>
7
- <%= f.input :email,
8
- required: true,
9
- input_html: { autocomplete: "email" }%>
10
- <%= f.input :password,
11
- required: true,
12
- hint: (t('devise.shared.minimum_password_length', count: @minimum_password_length) if @minimum_password_length),
13
- input_html: { autocomplete: "new-password" } %>
14
- <%= f.input :password_confirmation,
15
- required: true,
16
- input_html: { autocomplete: "new-password" } %>
17
- <%= f.input :accept_terms, as: :boolean, label: t('attributes.accept_terms').html_safe, error_prefix: '' %>
1
+ <div class="container mt-5" style="max-width: 80em">
2
+ <div class="row flex-wrap-reverse">
3
+ <div class="col-sm">
4
+ <%= render partial: 'signup_info' %>
18
5
  </div>
6
+ <div class="col-sm">
7
+ <div class="position-sticky z-1" style="top: 0.5em">
8
+ <h1 class="mb-4">Creá tu cuenta</h1>
9
+ <%# #form-signup se reemplaza por el mensaje de revisar la bandeja de entrada %>
10
+ <div class="text-center" id="form-signup" data-controller="pg_form">
11
+ <%= pg_form_for(resource, as: resource_name, url: registration_path(resource_name), wrapper: :floating_labels_form) do |f| %>
12
+ <div class="form-inputs m-auto d-inline-block" style="max-width: 20em">
13
+ <%= f.input :email, label: 'Tu email', input_html: { class: 'form-control-lg', autocomplete: "email" }%>
14
+ <%= f.input :password, label: 'Elegí una contraseña',
15
+ input_html: { class: 'form-control-lg', autocomplete: "new-password" } %>
16
+ <%= f.input :accept_terms, as: :boolean, label: t('attributes.accept_terms').html_safe, error_prefix: '', wrapper_html: { class: 'justify-content-center' } %>
17
+ </div>
19
18
 
20
- <div class="form-actions">
21
- <%= f.button :submit, t(".sign_up") %>
22
- </div>
23
- <% end %>
19
+ <div class="form-actions">
20
+ <%= f.button :submit, 'Registrarme' %>
21
+ </div>
22
+ <% end %>
24
23
 
25
- <%= render "devise/shared/links" %>
24
+ <%= render "devise/shared/links" %>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
26
29
  </div>
27
-
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgRails
4
- VERSION = '7.6.24-5'
4
+ VERSION = '7.6.25'
5
5
  end
@@ -4,71 +4,20 @@ $font-size-base: 0.9rem;
4
4
  @import 'bootstrap_pre';
5
5
  @import 'bootstrap_overrides';
6
6
  @import 'bootstrap_post';
7
- @import 'border_radius';
8
-
9
- @import './../../pg_engine/app/assets/stylesheets/pg_rails_b5';
10
- @import './../../pg_associable/app/assets/stylesheets/pg_associable';
11
- @import './../../pg_layout/app/assets/stylesheets/sidebar';
12
- @import './../../pg_layout/app/assets/stylesheets/animations';
13
7
 
14
8
  @import 'bootstrap-icons/font/bootstrap-icons';
15
9
 
16
10
  @import 'trix/dist/trix';
17
11
  @import 'tom-select/dist/scss/tom-select.bootstrap5';
18
12
 
19
- // Tom Select
20
- .ts-control {
21
- padding-top: 2px!important;
22
- padding-bottom: 2px!important;
23
- display: flex;
24
- gap: 4px;
25
- }
26
- .input-group-sm > .ts-wrapper.multi.has-items .ts-control, .ts-wrapper.form-select-sm.multi.has-items .ts-control, .ts-wrapper.form-control-sm.multi.has-items .ts-control {
27
- padding-top: 2px!important;
28
- }
29
- .ts-wrapper.multi .ts-control > div {
30
- margin: 0!important;
31
- }
32
- .ts-control:not(.rtl) {
33
- padding-right: 0.75rem !important;
34
- }
35
-
36
- // Column truncate
37
- $values: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100;
38
-
39
- @for $i from 1 through length($values) {
40
- $value: nth($values, $i);
41
- $perc: #{percenage($value)};
42
-
43
- .column-truncate-#{$value} {
44
- max-width: 0;
45
- width: percentage($value * 0.01);
46
- overflow: hidden;
47
- text-overflow: ellipsis;
48
- white-space: nowrap;
49
- min-width: 30em * $value * 0.01;
50
-
51
- // TODO: con css grid esto se debería poder hacer mejor
52
- // además, el pg_asociable directamente se rompe
53
- &:has(form) {
54
- min-width: 28em;
55
- overflow: initial;
56
- }
57
- }
58
- }
59
-
60
- // Buttons border in nav toolbar
61
- $warning-border-emphasis: shade-color($yellow, 60%);
62
- .btn-toolbar .btn-warning {
63
- border: 1px solid $warning-border-emphasis;
64
- }
13
+ @import './../../pg_associable/app/assets/stylesheets/pg_associable';
65
14
 
66
- $light-border-emphasis: shade-color($light, 60%);
67
- .btn-toolbar .btn-light {
68
- border: 1px solid $light-border-emphasis;
69
- }
15
+ @import './../../pg_layout/app/assets/stylesheets/sidebar';
16
+ @import './../../pg_layout/app/assets/stylesheets/animations';
70
17
 
71
- // .listado tr:has(td:hover):has(.bi-eye-fill) td {
72
- // background-color: #f2f2f2;
73
- // cursor: pointer;
74
- // }
18
+ @import './../../pg_engine/app/assets/stylesheets/pg_engine';
19
+ @import './../../pg_engine/app/assets/stylesheets/notifications';
20
+ @import './../../pg_engine/app/assets/stylesheets/border_radius';
21
+ @import './../../pg_engine/app/assets/stylesheets/tom_select';
22
+ @import './../../pg_engine/app/assets/stylesheets/tables';
23
+ @import './../../pg_engine/app/assets/stylesheets/nav_toolbar';
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.6.24.pre.5
4
+ version: 7.6.25
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: 2025-01-02 00:00:00.000000000 Z
11
+ date: 2025-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -685,8 +685,12 @@ files:
685
685
  - pg_engine/app/assets/javascripts/active_admin.js
686
686
  - pg_engine/app/assets/stylesheets/actiontext.css
687
687
  - pg_engine/app/assets/stylesheets/active_admin.scss
688
+ - pg_engine/app/assets/stylesheets/border_radius.scss
689
+ - pg_engine/app/assets/stylesheets/nav_toolbar.scss
688
690
  - pg_engine/app/assets/stylesheets/notifications.scss
689
- - pg_engine/app/assets/stylesheets/pg_rails_b5.scss
691
+ - pg_engine/app/assets/stylesheets/pg_engine.scss
692
+ - pg_engine/app/assets/stylesheets/tables.scss
693
+ - pg_engine/app/assets/stylesheets/tom_select.scss
690
694
  - pg_engine/app/components/alert_component.html.slim
691
695
  - pg_engine/app/components/alert_component.rb
692
696
  - pg_engine/app/components/asociable_modal_component.html.slim
@@ -1016,6 +1020,7 @@ files:
1016
1020
  - pg_layout/app/views/devise/mailer/unlock_instructions.html.erb
1017
1021
  - pg_layout/app/views/devise/passwords/edit.html.erb
1018
1022
  - pg_layout/app/views/devise/passwords/new.html.erb
1023
+ - pg_layout/app/views/devise/registrations/_signup_info.html.slim
1019
1024
  - pg_layout/app/views/devise/registrations/edit.html.erb
1020
1025
  - pg_layout/app/views/devise/registrations/new.html.erb
1021
1026
  - pg_layout/app/views/devise/sessions/new.html.erb
@@ -1065,7 +1070,6 @@ files:
1065
1070
  - pg_rails/scss/bootstrap_overrides.scss
1066
1071
  - pg_rails/scss/bootstrap_post.scss
1067
1072
  - pg_rails/scss/bootstrap_pre.scss
1068
- - pg_rails/scss/border_radius.scss
1069
1073
  - pg_rails/scss/pg_rails.scss
1070
1074
  - pg_scaffold/lib/generators/pg_active_record/model/model_generator.rb
1071
1075
  - pg_scaffold/lib/generators/pg_active_record/model/templates/admin.rb