pg_rails 7.1.10 → 7.1.12

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: 671c1939e1e9cae615f0b025c14af1b2c7e25d725782bc28aa7a0416c6b9138b
4
- data.tar.gz: 9ef68287946ee5aa453beec59bb1ffbcfd6a5acee7bac7c34b993313535b158c
3
+ metadata.gz: dfa6040427b2819258e1afc08b32b84c8e91c834752369678619c6d4fa8db024
4
+ data.tar.gz: '07198f45eabdf38b2e0d6990b82298eda1da31391973aa8190a223cbb4995e23'
5
5
  SHA512:
6
- metadata.gz: 85c0900adc13bfb4955f46da877756864940b6e00e5a3a3f65b9c07d6792b068b5acb5d9baa3fc674bb51ab722f21c826e10c564644d60fae52780214c7c2493
7
- data.tar.gz: 90a1bdfb038b4c9d0c5004ff854384669aa537e1efa1895c9f4bf9756a2deef9083552a152a870db0e43bf01c48b247ad8e6b10fe051cc40ee838c3b080437dc
6
+ metadata.gz: 80054255f87043cae6ca876997a4acbb0bfc5eeb0418991826c3fab5862389543f5916870b61063a6a0d88327c97a96c58ed454075559691f79f81fb4fbd3cd6
7
+ data.tar.gz: 78068cb66d350fed57c7fc3369caee7295070b0fe66c6e691792ad5ae3b5cbfbb1c36ab19316f11610e8e9f88a06a3e4d12427df339064f1250a398ad4368fe1
@@ -12,6 +12,7 @@ export default class extends Controller {
12
12
  if (this.element.dataset.removeOnHide) {
13
13
  this.element.addEventListener('hidden.bs.modal', (e) => {
14
14
  this.element.remove()
15
+ // FIXME: handlear mejor
15
16
  window.Stimulus.controllers.map((c) => { return c.calendar })
16
17
  .filter((e) => { return e })
17
18
  .forEach((c) => { c.refetchEvents() })
@@ -7,7 +7,7 @@ class NotificationComponent < BaseComponent
7
7
  erb_template <<~ERB
8
8
  <div class="notification d-flex flex-column flex-sm-row justify-content-between <%= 'unseen' if @notification.unseen? %>"
9
9
  id="<%= dom_id(@notification) %>" data-id="<%= @notification.id %>">
10
- <div class="pe-3">
10
+ <div class="pe-3 trix-content">
11
11
  <%= @notification.message.html_safe %>
12
12
  </div>
13
13
  <div class="notification--time d-flex flex-column justify-content-end text-body-tertiary text-end">
@@ -0,0 +1,17 @@
1
+ - if helpers.show_filters?
2
+ .border-bottom#filtros
3
+ .d-flex.align-items-center.px-3.py-2
4
+ .px-2.d-none.d-sm-inline-block
5
+ span.bi.bi-funnel-fill
6
+ = helpers.search_form_for @q, url: url_for do |f|
7
+ .row.g-1
8
+ .col
9
+ .row.g-1
10
+ = @builder.filtros_html(form: f)
11
+ .col-auto.gap-1.d-flex.align-items-start
12
+ = helpers.button_tag class: 'btn btn-sm btn-primary col-auto' do
13
+ span.bi.bi-search
14
+ span.d-none.d-sm-inline
15
+ | &nbsp
16
+ span.text Buscar
17
+ = helpers.clear_filter(title: 'Limpiar', class: 'btn btn-sm btn-secondary col-auto')
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ class SearchBarComponent < ViewComponent::Base
4
+ def initialize(ransack, filtros)
5
+ @q = ransack
6
+ @builder = filtros
7
+
8
+ super
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ - if helpers.show_filters?
2
+ = link_to url_for(ocultar_filtros: 1, cancel_filter: 'true'),
3
+ class: 'btn btn-sm btn-outline-primary col-auto' do
4
+ | Ocultar filtros
5
+ - else
6
+ = link_to url_for(mostrar_filtros: 1),
7
+ class: 'btn btn-sm btn-outline-primary col-auto' do
8
+ | Filtrar
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class SearchBarTogglerComponent < ViewComponent::Base
4
+ end
@@ -91,8 +91,6 @@ module PgEngine
91
91
  # real sino filtro booleano por presencia de discarded_at
92
92
  return :boolean if campo.to_s == 'discarded'
93
93
 
94
- pg_warn("no existe el campo: #{nombre_campo}")
95
-
96
94
  return
97
95
  end
98
96
  columna.type
@@ -3,34 +3,12 @@
3
3
  - @actions&.each do |link_args|
4
4
  = link_to(*link_args)
5
5
  - if @filtros.present?
6
- - if show_filters?
7
- = link_to namespaced_path(@clase_modelo, ocultar_filtros: 1),
8
- class: 'btn btn-sm btn-outline-primary col-auto' do
9
- | Ocultar filtros
10
- - else
11
- = link_to namespaced_path(@clase_modelo, mostrar_filtros: 1),
12
- class: 'btn btn-sm btn-outline-primary col-auto' do
13
- | Filtrar
6
+ = render SearchBarTogglerComponent.new
14
7
  .ms-1
15
8
  = @clase_modelo.new.decorate.new_link
16
9
 
17
- - if @filtros.present? && show_filters?
18
- .border-bottom#filtros
19
- .d-flex.align-items-center.px-3.py-2
20
- .px-2.d-none.d-sm-inline-block
21
- span.bi.bi-funnel-fill
22
- = search_form_for @q, url: namespaced_path(@clase_modelo) do |f|
23
- .row.g-1
24
- .col
25
- .row.g-1
26
- = @filtros.filtros_html(form: f)
27
- .col-auto.gap-1.d-flex.align-items-start
28
- = button_tag class: 'btn btn-sm btn-primary col-auto' do
29
- span.bi.bi-search
30
- span.d-none.d-sm-inline
31
- | &nbsp
32
- span.text Buscar
33
- = clear_filter(title: 'Limpiar', class: 'btn btn-sm btn-secondary col-auto')
10
+ - if @filtros.present?
11
+ = render SearchBarComponent.new(@q, @filtros)
34
12
 
35
13
  div
36
14
  - if @collection.any?
@@ -0,0 +1,3 @@
1
+ Rails.application.configure do
2
+ config.view_component.capture_compatibility_patch_enabled = true
3
+ end
@@ -1,3 +1,36 @@
1
- - %w[danger warning info success].each do |status|
2
- h1 class="text-#{status}" = status
3
- h1 class="text-#{status}-emphasis" = "#{status} emphasis"
1
+ .row
2
+ .col
3
+ - %w[danger warning info success].each do |status|
4
+ h1 class="text-#{status}" = status
5
+ h1 class="text-#{status}-emphasis" = "#{status} emphasis"
6
+
7
+ .col
8
+ - %w[danger warning info success].each do |status|
9
+ .alert class="alert-#{status}"
10
+ = "Alert #{status}"
11
+
12
+ .row
13
+ .col
14
+ div class="p-3 mb-2 bg-primary text-white" .bg-primary
15
+ div class="p-3 mb-2 bg-primary-subtle text-primary-emphasis" .bg-primary-subtle
16
+ div class="p-3 mb-2 bg-secondary text-white" .bg-secondary
17
+ div class="p-3 mb-2 bg-secondary-subtle text-secondary-emphasis" .bg-secondary-subtle
18
+ div class="p-3 mb-2 bg-success text-white" .bg-success
19
+ div class="p-3 mb-2 bg-success-subtle text-success-emphasis" .bg-success-subtle
20
+ div class="p-3 mb-2 bg-danger text-white" .bg-danger
21
+ div class="p-3 mb-2 bg-danger-subtle text-danger-emphasis" .bg-danger-subtle
22
+ div class="p-3 mb-2 bg-warning text-dark" .bg-warning
23
+ div class="p-3 mb-2 bg-warning-subtle text-warning-emphasis" .bg-warning-subtle
24
+ div class="p-3 mb-2 bg-info text-dark" .bg-info
25
+ .col
26
+ div class="p-3 mb-2 bg-info-subtle text-info-emphasis" .bg-info-subtle
27
+ div class="p-3 mb-2 bg-light text-dark" .bg-light
28
+ div class="p-3 mb-2 bg-light-subtle text-light-emphasis" .bg-light-subtle
29
+ div class="p-3 mb-2 bg-dark-subtle text-dark-emphasis" .bg-dark-subtle
30
+ div class="p-3 mb-2 bg-body-secondary" .bg-body-secondary
31
+ div class="p-3 mb-2 bg-body-tertiary" .bg-body-tertiary
32
+ div class="p-3 mb-2 bg-dark text-white" .bg-dark
33
+ div class="p-3 mb-2 bg-body text-body" .bg-body
34
+ div class="p-3 mb-2 bg-black text-white" .bg-black
35
+ div class="p-3 mb-2 bg-white text-dark" .bg-white
36
+ div class="p-3 mb-2 bg-transparent text-body" .bg-transparent
@@ -9,6 +9,7 @@ import SwitcherController from './switcher_controller'
9
9
  import FiltrosController from './filtros_controller'
10
10
  import NotificationsController from './notifications_controller'
11
11
  import SelectizeController from './selectize_controller'
12
+ import ThemeController from './theme_controller'
12
13
 
13
14
  application.register('navbar', NavbarController)
14
15
  application.register('nested', NestedController)
@@ -19,5 +20,6 @@ application.register('switcher', SwitcherController)
19
20
  application.register('filtros', FiltrosController)
20
21
  application.register('notifications', NotificationsController)
21
22
  application.register('selectize', SelectizeController)
23
+ application.register('theme', ThemeController)
22
24
 
23
25
  // TODO: testear con capybara todo lo que se pueda
@@ -0,0 +1,12 @@
1
+ import { Controller } from '@hotwired/stimulus'
2
+
3
+ // Connects to data-controller="theme"
4
+ export default class extends Controller {
5
+ dark () {
6
+ document.documentElement.setAttribute('data-bs-theme', 'dark')
7
+ }
8
+
9
+ light () {
10
+ document.documentElement.setAttribute('data-bs-theme', 'light')
11
+ }
12
+ }
@@ -81,14 +81,14 @@ export function flashMessage (message, flashType = 'warning', toast = false) {
81
81
  }
82
82
 
83
83
  export function fadeOut (e) {
84
- if (window.getComputedStyle(e).visibility !== 'hidden') {
84
+ if (e && window.getComputedStyle(e).visibility !== 'hidden') {
85
85
  e.classList.add('fade-out')
86
86
  e.addEventListener('animationend', onAnimationEndHide, { once: true })
87
87
  }
88
88
  }
89
89
 
90
90
  export function fadeIn (e) {
91
- if (window.getComputedStyle(e).visibility !== 'visible') {
91
+ if (e && window.getComputedStyle(e).visibility !== 'visible') {
92
92
  e.classList.add('fade-in')
93
93
  e.addEventListener('animationend', onAnimationEndShow, { once: true })
94
94
  }
@@ -77,6 +77,10 @@ html
77
77
  = yield(:filtros)
78
78
  = content
79
79
  div style="width:100%; height: 10em"
80
+ .d-flex.gap-1.justify-content-center.opacity-50 data-controller="theme"
81
+ | (Beta) Tema:
82
+ = link_to 'Claro', 'javascript:void(0)', 'data-action': 'theme#light'
83
+ = link_to 'Oscuro', 'javascript:void(0)', 'data-action': 'theme#dark'
80
84
  = render partial: 'layouts/footer'
81
85
  div style="width:100%; height: 10em"
82
86
  = render_turbo_stream_title
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgRails
4
- VERSION = '7.1.10'
4
+ VERSION = '7.1.12'
5
5
  end
@@ -8,7 +8,7 @@ $danger-bg-subtle: tint-color($danger, 98%);
8
8
  $warning-border-subtle: tint-color($warning, 20%);
9
9
  // $danger-border-subtle: tint-color($danger, 60%);
10
10
  $secondary-bg-subtle: tint-color($secondary, 92%);
11
- $warning-bg-subtle: tint-color($warning, 40%);
11
+ // $warning-bg-subtle: tint-color($warning, 40%);
12
12
 
13
13
 
14
14
  $btn-close-focus-shadow: none;
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.10
4
+ version: 7.1.12
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-03 00:00:00.000000000 Z
11
+ date: 2024-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -617,6 +617,10 @@ files:
617
617
  - pg_engine/app/components/notification_component.rb
618
618
  - pg_engine/app/components/notifications_bell_component.rb
619
619
  - pg_engine/app/components/page_not_found_component.rb
620
+ - pg_engine/app/components/search_bar_component.html.slim
621
+ - pg_engine/app/components/search_bar_component.rb
622
+ - pg_engine/app/components/search_bar_toggler_component.html.slim
623
+ - pg_engine/app/components/search_bar_toggler_component.rb
620
624
  - pg_engine/app/controllers/admin/accounts_controller.rb
621
625
  - pg_engine/app/controllers/admin/email_logs_controller.rb
622
626
  - pg_engine/app/controllers/admin/emails_controller.rb
@@ -721,6 +725,7 @@ files:
721
725
  - pg_engine/config/initializers/ransack_memory.rb
722
726
  - pg_engine/config/initializers/rollbar.rb
723
727
  - pg_engine/config/initializers/simple_form_monkey_patch.rb
728
+ - pg_engine/config/initializers/view_component.rb
724
729
  - pg_engine/config/initializers/zeitwerk.rb
725
730
  - pg_engine/config/locales/devise.en.yml
726
731
  - pg_engine/config/locales/es.yml
@@ -833,6 +838,7 @@ files:
833
838
  - pg_layout/app/javascript/controllers/pg_form_controller.js
834
839
  - pg_layout/app/javascript/controllers/selectize_controller.js
835
840
  - pg_layout/app/javascript/controllers/switcher_controller.js
841
+ - pg_layout/app/javascript/controllers/theme_controller.js
836
842
  - pg_layout/app/javascript/utils/cookies.js
837
843
  - pg_layout/app/javascript/utils/utils.ts
838
844
  - pg_layout/app/lib/navbar.rb