pg_rails 7.0.8.pre.alpha.103 → 7.0.8.pre.alpha.105
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/actiontext.css +31 -0
- data/pg_engine/app/assets/stylesheets/notifications.scss +31 -2
- data/pg_engine/app/components/notification_component.rb +9 -4
- data/pg_engine/app/components/notifications_bell_component.rb +25 -0
- data/pg_engine/app/controllers/admin/eventos_controller.rb +57 -0
- data/pg_engine/app/controllers/concerns/pg_engine/resource.rb +0 -2
- data/pg_engine/app/controllers/pg_engine/base_controller.rb +6 -1
- data/pg_engine/app/controllers/users/notifications_controller.rb +6 -0
- data/pg_engine/app/models/evento.rb +11 -0
- data/pg_engine/app/notifiers/simple_user_notifier.rb +4 -0
- data/pg_engine/app/views/active_storage/blobs/_blob.html.erb +1 -0
- data/pg_engine/app/views/admin/eventos/index.html.slim +6 -0
- data/pg_engine/app/views/admin/eventos/new.html.slim +10 -0
- data/pg_engine/app/views/layouts/action_text/contents/_content.html.erb +3 -0
- data/pg_engine/config/routes.rb +2 -0
- data/pg_engine/db/migrate/20240614130246_create_action_text_tables.action_text.rb +26 -0
- data/pg_engine/lib/pg_engine/engine.rb +8 -0
- data/pg_engine/spec/helpers/pg_engine/pg_rails_helper_spec.rb +0 -2
- data/pg_engine/spec/requests/admin/eventos_spec.rb +56 -0
- data/pg_engine/spec/system/noticed_spec.rb +3 -0
- data/pg_layout/app/javascript/config/index.js +3 -0
- data/pg_layout/app/javascript/controllers/notifications_controller.js +21 -3
- data/pg_layout/app/views/pg_layout/_navbar.html.erb +2 -9
- data/pg_rails/lib/version.rb +1 -1
- data/pg_rails/scss/pg_rails.scss +2 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6449fcb56114d2f214c03476b625c5dbcd2ebf416ddf87cfe23224432cc5a60e
|
4
|
+
data.tar.gz: e84b73268092c987312c2530a53945f9281a2364b663e9c331abb8a971971f58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 750cd9d4dd72d4d6bda3e6ebc33edf23eda9d84d41090f6bd8cc5af2889ce04471c01a722c80249055608b7ffe2b0e9f417436252e64c38bfbda315d7f911aa1
|
7
|
+
data.tar.gz: 4bd4276d1cc708cdbae0487aa74e180fc5974a71ce1d6e5046f45f7bc1c3a85cec2be3e5146188d2af0a55f5fd2aa8698ce171406d083f8c8717a5d3e480ca3f
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/*
|
2
|
+
* Provides a drop-in pointer for the default Trix stylesheet that will format the toolbar and
|
3
|
+
* the trix-editor content (whether displayed or under editing). Feel free to incorporate this
|
4
|
+
* inclusion directly in any other asset bundle and remove this file.
|
5
|
+
*
|
6
|
+
*= require trix
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*
|
10
|
+
* We need to override trix.css’s image gallery styles to accommodate the
|
11
|
+
* <action-text-attachment> element we wrap around attachments. Otherwise,
|
12
|
+
* images in galleries will be squished by the max-width: 33%; rule.
|
13
|
+
*/
|
14
|
+
.trix-content .attachment-gallery > action-text-attachment,
|
15
|
+
.trix-content .attachment-gallery > .attachment {
|
16
|
+
flex: 1 0 33%;
|
17
|
+
padding: 0 0.5em;
|
18
|
+
max-width: 33%;
|
19
|
+
}
|
20
|
+
|
21
|
+
.trix-content .attachment-gallery.attachment-gallery--2 > action-text-attachment,
|
22
|
+
.trix-content .attachment-gallery.attachment-gallery--2 > .attachment, .trix-content .attachment-gallery.attachment-gallery--4 > action-text-attachment,
|
23
|
+
.trix-content .attachment-gallery.attachment-gallery--4 > .attachment {
|
24
|
+
flex-basis: 50%;
|
25
|
+
max-width: 50%;
|
26
|
+
}
|
27
|
+
|
28
|
+
.trix-content action-text-attachment .attachment {
|
29
|
+
padding: 0 !important;
|
30
|
+
max-width: 100% !important;
|
31
|
+
}
|
@@ -1,3 +1,26 @@
|
|
1
|
+
.pg--notifications-bell--tooltip {
|
2
|
+
position: relative;
|
3
|
+
background-color: #99570b;
|
4
|
+
padding: 4px;
|
5
|
+
z-index: 10;
|
6
|
+
border-radius: 2px;
|
7
|
+
}
|
8
|
+
.pg--notifications-bell--tooltip::after {
|
9
|
+
content: '';
|
10
|
+
color: white;
|
11
|
+
display: block;
|
12
|
+
position: absolute;
|
13
|
+
right: -9px;
|
14
|
+
top: 3px;
|
15
|
+
border-color: transparent;
|
16
|
+
border-left-color: #99570b;
|
17
|
+
border-style: solid;
|
18
|
+
border-top-width: 0.7rem;
|
19
|
+
border-bottom-width: 0.7rem;
|
20
|
+
border-left-width: 0.7rem;
|
21
|
+
z-index: -1;
|
22
|
+
}
|
23
|
+
|
1
24
|
#notifications {
|
2
25
|
display: flex;
|
3
26
|
align-items: center;
|
@@ -8,7 +31,8 @@
|
|
8
31
|
}
|
9
32
|
|
10
33
|
#notifications-inner {
|
11
|
-
|
34
|
+
width: 100%;
|
35
|
+
max-width: 40em;
|
12
36
|
display: flex;
|
13
37
|
flex-direction: column;
|
14
38
|
gap: 0.4em;
|
@@ -18,10 +42,15 @@
|
|
18
42
|
border-radius: 2px;
|
19
43
|
position: relative;
|
20
44
|
padding: 0.3em 2.5em;
|
45
|
+
padding-right: 0.5em;
|
21
46
|
xpadding-left: 2.5em;
|
22
47
|
display: flex;
|
23
|
-
align-items:
|
48
|
+
align-items: stretch;
|
24
49
|
background-color: white;
|
50
|
+
|
51
|
+
figcaption {
|
52
|
+
display: none;
|
53
|
+
}
|
25
54
|
}
|
26
55
|
.notification:not(.unseen) {
|
27
56
|
xcolor: #646464;
|
@@ -8,11 +8,16 @@ class NotificationComponent < BaseComponent
|
|
8
8
|
<div class="notification d-flex justify-content-between <%= 'unseen' if @notification.unseen? %>"
|
9
9
|
id="<%= dom_id(@notification) %>" data-id="<%= @notification.id %>">
|
10
10
|
<div>
|
11
|
-
<%= @notification.message %>
|
11
|
+
<%= @notification.message.html_safe %>
|
12
12
|
</div>
|
13
|
-
<div class="notification--time text-body-tertiary text-end ms-4">
|
14
|
-
|
15
|
-
|
13
|
+
<div class="notification--time d-flex flex-column justify-content-end text-body-tertiary text-end ms-4">
|
14
|
+
<div>
|
15
|
+
hace
|
16
|
+
<%= distance_of_time_in_words @notification.created_at, Time.zone.now %>
|
17
|
+
</div>
|
18
|
+
<div>
|
19
|
+
<a href="javascript:void" class="link-opacity-50" data-action="notifications#markAsUnseen">Marcar como no leído</a>
|
20
|
+
</div>
|
16
21
|
</div>
|
17
22
|
</div>
|
18
23
|
ERB
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class NotificationsBellComponent < BaseComponent
|
2
|
+
def initialize(tooltip:, unseen:)
|
3
|
+
@tooltip = tooltip
|
4
|
+
@unseen = unseen
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
8
|
+
erb_template <<~ERB
|
9
|
+
<div>
|
10
|
+
<% if @tooltip.present? %>
|
11
|
+
<div class="d-none d-sm-inline-block text-white pg--notifications-bell--tooltip">
|
12
|
+
<%= @tooltip %>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
15
|
+
<button type="button" class="btn btn-primary btn-sm position-relative"
|
16
|
+
data-bs-toggle="collapse" data-bs-target="#notifications-collapse">
|
17
|
+
<i class="bi-bell-fill fs-5 text-light"></i>
|
18
|
+
<% if @unseen %>
|
19
|
+
<span class="position-absolute p-1 xbg-danger bg-gradient rounded-circle start-50 notifications-unseen-mark">
|
20
|
+
</span>
|
21
|
+
<% end %>
|
22
|
+
</button>
|
23
|
+
</div>
|
24
|
+
ERB
|
25
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Admin
|
2
|
+
class EventosController < AdminController
|
3
|
+
layout 'pg_layout/containerized'
|
4
|
+
|
5
|
+
add_breadcrumb 'Eventos'
|
6
|
+
|
7
|
+
def index
|
8
|
+
@events = Noticed::Event.order(id: :desc)
|
9
|
+
end
|
10
|
+
|
11
|
+
def new
|
12
|
+
@event = Evento.new(type: SimpleUserNotifier.to_s)
|
13
|
+
end
|
14
|
+
|
15
|
+
# rubocop:disable Metrics/MethodLength
|
16
|
+
def create # rubocop:disable Metrics/AbcSize
|
17
|
+
@event = Evento.new(event_params)
|
18
|
+
# @event.message.save!
|
19
|
+
unless @event.valid?
|
20
|
+
render :new, status: :unprocessable_entity
|
21
|
+
return
|
22
|
+
end
|
23
|
+
json_params_for_event = {
|
24
|
+
message: @event.message,
|
25
|
+
tooltip: @event.tooltip
|
26
|
+
}
|
27
|
+
notifier_class = @event.type.constantize
|
28
|
+
notifier = notifier_class.with(json_params_for_event)
|
29
|
+
|
30
|
+
if @event.target == 'todos'
|
31
|
+
notifier.deliver(User.all)
|
32
|
+
elsif @event.target == 'devs'
|
33
|
+
notifier.deliver(User.where(developer: true))
|
34
|
+
else
|
35
|
+
# :nocov:
|
36
|
+
'shouldnt happen'
|
37
|
+
# :nocov:
|
38
|
+
end
|
39
|
+
|
40
|
+
redirect_to admin_eventos_path
|
41
|
+
rescue StandardError => e
|
42
|
+
# :nocov:
|
43
|
+
flash.now[:alert] = e.to_s
|
44
|
+
render :new, status: :unprocessable_entity
|
45
|
+
# :nocov:
|
46
|
+
end
|
47
|
+
# rubocop:enable Metrics/MethodLength
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def event_params
|
52
|
+
params.require(:evento).permit(
|
53
|
+
:type, :message, :tooltip, :record_type, :record_id, :target
|
54
|
+
)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -212,9 +212,7 @@ module PgEngine
|
|
212
212
|
if Object.const_defined?('FriendlyId') && @clase_modelo.is_a?(FriendlyId)
|
213
213
|
@clase_modelo.friendly.find(params[:id])
|
214
214
|
elsif @clase_modelo.respond_to? :find_by_hashid!
|
215
|
-
# rubocop:disable Rails/DynamicFindBy
|
216
215
|
@clase_modelo.find_by_hashid!(params[:id])
|
217
|
-
# rubocop:enable Rails/DynamicFindBy
|
218
216
|
else
|
219
217
|
@clase_modelo.find(params[:id])
|
220
218
|
end
|
@@ -92,7 +92,12 @@ module PgEngine
|
|
92
92
|
|
93
93
|
if Current.user.present?
|
94
94
|
@notifications = Current.user.notifications.order(id: :desc)
|
95
|
-
|
95
|
+
unseen = @notifications.unseen.any?
|
96
|
+
tooltip = @notifications.unseen.map(&:tooltip).first
|
97
|
+
@notifications_bell = NotificationsBellComponent.new(
|
98
|
+
unseen:,
|
99
|
+
tooltip:
|
100
|
+
)
|
96
101
|
end
|
97
102
|
end
|
98
103
|
|
@@ -1,5 +1,11 @@
|
|
1
1
|
module Users
|
2
2
|
class NotificationsController < ApplicationController
|
3
|
+
def mark_as_unseen
|
4
|
+
notification = Noticed::Notification.find(params[:id])
|
5
|
+
notification.mark_as_unseen!
|
6
|
+
head :ok
|
7
|
+
end
|
8
|
+
|
3
9
|
def mark_as_seen
|
4
10
|
# No handleo errores porque no debería fallar, y si falla
|
5
11
|
# se notifica a rollbar y al user no le pasa nada
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Evento
|
2
|
+
include ActiveModel::API
|
3
|
+
include ActionText::Attribute
|
4
|
+
extend Enumerize
|
5
|
+
|
6
|
+
attr_accessor :tooltip, :target, :message, :type, :record_type, :record_id
|
7
|
+
|
8
|
+
validates :target, :type, :message, presence: true
|
9
|
+
|
10
|
+
enumerize :target, in: { todos: 0, devs: 1 }
|
11
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag blob %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
= pg_form_for @event, url: admin_eventos_path do |f|
|
2
|
+
= f.mensajes_de_error
|
3
|
+
|
4
|
+
= f.input :type, as: :select, collection: ApplicationNotifier.descendants.map(&:to_s)
|
5
|
+
= f.rich_text_area :message
|
6
|
+
= f.input :tooltip
|
7
|
+
= f.input :record_type
|
8
|
+
= f.input :record_id
|
9
|
+
= f.input :target
|
10
|
+
= f.submit
|
data/pg_engine/config/routes.rb
CHANGED
@@ -17,9 +17,11 @@ Rails.application.routes.draw do
|
|
17
17
|
}, failure_app: PgEngine::DeviseFailureApp
|
18
18
|
namespace :users, path: 'u' do
|
19
19
|
post 'notifications/mark_as_seen', to: 'notifications#mark_as_seen'
|
20
|
+
post 'notifications/mark_as_unseen', to: 'notifications#mark_as_unseen'
|
20
21
|
end
|
21
22
|
namespace :admin, path: 'a' do
|
22
23
|
pg_resource(:emails)
|
24
|
+
pg_resource(:eventos)
|
23
25
|
pg_resource(:email_logs) do
|
24
26
|
collection do
|
25
27
|
post :mailgun_sync
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This migration comes from action_text (originally 20180528164100)
|
2
|
+
class CreateActionTextTables < ActiveRecord::Migration[6.0]
|
3
|
+
def change
|
4
|
+
# Use Active Record's configured type for primary and foreign keys
|
5
|
+
primary_key_type, foreign_key_type = primary_and_foreign_key_types
|
6
|
+
|
7
|
+
create_table :action_text_rich_texts, id: primary_key_type do |t|
|
8
|
+
t.string :name, null: false
|
9
|
+
t.text :body, size: :long
|
10
|
+
t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
|
14
|
+
t.index [ :record_type, :record_id, :name ], name: "index_action_text_rich_texts_uniqueness", unique: true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def primary_and_foreign_key_types
|
20
|
+
config = Rails.configuration.generators
|
21
|
+
setting = config.options[config.orm][:primary_key_type]
|
22
|
+
primary_key_type = setting || :primary_key
|
23
|
+
foreign_key_type = setting || :bigint
|
24
|
+
[primary_key_type, foreign_key_type]
|
25
|
+
end
|
26
|
+
end
|
@@ -13,6 +13,14 @@ module PgEngine
|
|
13
13
|
g.fallbacks[:pg_active_record] = :active_record
|
14
14
|
end
|
15
15
|
|
16
|
+
# overrides = "#{PgEngine::Engine.root}/app/overrides"
|
17
|
+
|
18
|
+
# config.to_prepare do
|
19
|
+
# Dir.glob("#{overrides}/**/*.rb").each do |override|
|
20
|
+
# load override
|
21
|
+
# end
|
22
|
+
# end
|
23
|
+
|
16
24
|
initializer 'pg_engine.set_exceptions_app' do
|
17
25
|
Rails.application.config.exceptions_app = Rails.application.routes
|
18
26
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'rails_helper'
|
2
|
-
# rubocop:disable RSpec/ExampleLength
|
3
2
|
describe PgEngine::PgRailsHelper do
|
4
3
|
describe '#img_placeholder' do
|
5
4
|
it 'si no es fade_in' do
|
@@ -35,4 +34,3 @@ describe PgEngine::PgRailsHelper do
|
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|
38
|
-
# rubocop:enable RSpec/ExampleLength
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe 'Eventos' do
|
4
|
+
let(:user) { create :user, :developer }
|
5
|
+
|
6
|
+
before do
|
7
|
+
create :user # no dev
|
8
|
+
sign_in user
|
9
|
+
SimpleUserNotifier.with(message: 'New post').deliver(User.all, enqueue_job: false)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'renders the event index' do
|
13
|
+
get '/a/eventos'
|
14
|
+
|
15
|
+
expect(response.body).to include 'New post'
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'posting events' do
|
19
|
+
subject do
|
20
|
+
get '/a/eventos/new'
|
21
|
+
expect(response.body).to include 'Tooltip'
|
22
|
+
post '/a/eventos', params: {
|
23
|
+
evento: {
|
24
|
+
type: 'SimpleUserNotifier',
|
25
|
+
message: 'hola',
|
26
|
+
target:
|
27
|
+
}
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'cuando se manda a los devs' do
|
32
|
+
let(:target) { 'devs' }
|
33
|
+
|
34
|
+
it do
|
35
|
+
expect { subject }.to change(Noticed::Notification, :count).by(1)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'cuando se manda a todos' do
|
40
|
+
let(:target) { 'todos' }
|
41
|
+
|
42
|
+
it do
|
43
|
+
expect { subject }.to change(Noticed::Notification, :count).by(2)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'cuando hay error' do
|
48
|
+
let(:target) { 'bla' }
|
49
|
+
|
50
|
+
it do
|
51
|
+
subject
|
52
|
+
expect(response).to have_http_status(:unprocessable_entity)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -29,6 +29,9 @@ describe 'Notifications' do
|
|
29
29
|
expect(page).to have_css('.notifications-unseen-mark')
|
30
30
|
find('.bi-bell-fill').click
|
31
31
|
expect(page).to have_no_css('.notifications-unseen-mark', wait: 5)
|
32
|
+
expect(page).to have_no_css('.unseen')
|
33
|
+
click_on 'Marcar como no leído'
|
34
|
+
expect(page).to have_css('.unseen')
|
32
35
|
end
|
33
36
|
end
|
34
37
|
|
@@ -18,15 +18,33 @@ export default class extends Controller {
|
|
18
18
|
})
|
19
19
|
}
|
20
20
|
|
21
|
+
async markAsUnseen (e) {
|
22
|
+
const notification = e.target.closest('.notification')
|
23
|
+
notification.dataset.markedAsUnseen = true
|
24
|
+
const id = notification.dataset.id
|
25
|
+
const response = await post('/u/notifications/mark_as_unseen',
|
26
|
+
{ query: { id } })
|
27
|
+
|
28
|
+
if (response.ok) {
|
29
|
+
notification.classList.add('unseen')
|
30
|
+
} else {
|
31
|
+
const text = await response.text
|
32
|
+
Rollbar.error('Error marking as unseen: ', text)
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
21
36
|
async markAsSeen () {
|
22
37
|
const ids = []
|
23
|
-
document.querySelectorAll('.notification')
|
24
|
-
|
38
|
+
const targets = Array.from(document.querySelectorAll('.notification')).filter((e) => {
|
39
|
+
return !e.dataset.markedAsUnseen
|
40
|
+
})
|
41
|
+
targets.forEach((e) => { ids.push(e.dataset.id) })
|
42
|
+
|
25
43
|
const response = await post('/u/notifications/mark_as_seen',
|
26
44
|
{ query: { ids }, responseKind: 'turbo-stream' })
|
27
45
|
|
28
46
|
if (response.ok) {
|
29
|
-
|
47
|
+
targets.forEach(
|
30
48
|
(notif) => {
|
31
49
|
notif.classList.remove('unseen')
|
32
50
|
}
|
@@ -10,15 +10,8 @@
|
|
10
10
|
<% @navbar.extensiones.each do |extension| %>
|
11
11
|
<%= extension %>
|
12
12
|
<% end %>
|
13
|
-
<% if Current.user.present? %>
|
14
|
-
|
15
|
-
data-bs-toggle="collapse" data-bs-target="#notifications-collapse">
|
16
|
-
<i class="bi-bell-fill fs-5 text-light"></i>
|
17
|
-
<% if @unseen_notifications %>
|
18
|
-
<span class="position-absolute p-1 xbg-danger bg-gradient rounded-circle start-50 notifications-unseen-mark">
|
19
|
-
</span>
|
20
|
-
<% end %>
|
21
|
-
</button>
|
13
|
+
<% if Current.user.present? && @notifications_bell.present? %>
|
14
|
+
<%= render @notifications_bell %>
|
22
15
|
<% end %>
|
23
16
|
<%= @navbar.logo if @navbar.logo.present? %>
|
24
17
|
<button class="btn btn-outline-light d-inline-block d-<%= @breakpoint_navbar_expand %>-none"
|
data/pg_rails/lib/version.rb
CHANGED
data/pg_rails/scss/pg_rails.scss
CHANGED
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.0.8.pre.alpha.
|
4
|
+
version: 7.0.8.pre.alpha.105
|
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-06-
|
11
|
+
date: 2024-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -981,6 +981,7 @@ files:
|
|
981
981
|
- pg_engine/app/assets/images/plantita-sm.png
|
982
982
|
- pg_engine/app/assets/images/plantita.png
|
983
983
|
- pg_engine/app/assets/javascripts/active_admin.js
|
984
|
+
- pg_engine/app/assets/stylesheets/actiontext.css
|
984
985
|
- pg_engine/app/assets/stylesheets/active_admin.scss
|
985
986
|
- pg_engine/app/assets/stylesheets/notifications.scss
|
986
987
|
- pg_engine/app/assets/stylesheets/pg_rails_b5.scss
|
@@ -991,10 +992,12 @@ files:
|
|
991
992
|
- pg_engine/app/components/flash_container_component.rb
|
992
993
|
- pg_engine/app/components/internal_error_component.rb
|
993
994
|
- pg_engine/app/components/notification_component.rb
|
995
|
+
- pg_engine/app/components/notifications_bell_component.rb
|
994
996
|
- pg_engine/app/components/page_not_found_component.rb
|
995
997
|
- pg_engine/app/controllers/admin/accounts_controller.rb
|
996
998
|
- pg_engine/app/controllers/admin/email_logs_controller.rb
|
997
999
|
- pg_engine/app/controllers/admin/emails_controller.rb
|
1000
|
+
- pg_engine/app/controllers/admin/eventos_controller.rb
|
998
1001
|
- pg_engine/app/controllers/admin/user_accounts_controller.rb
|
999
1002
|
- pg_engine/app/controllers/admin/users_controller.rb
|
1000
1003
|
- pg_engine/app/controllers/concerns/pg_engine/resource.rb
|
@@ -1034,6 +1037,7 @@ files:
|
|
1034
1037
|
- pg_engine/app/models/current.rb
|
1035
1038
|
- pg_engine/app/models/email.rb
|
1036
1039
|
- pg_engine/app/models/email_log.rb
|
1040
|
+
- pg_engine/app/models/evento.rb
|
1037
1041
|
- pg_engine/app/models/mensaje_contacto.rb
|
1038
1042
|
- pg_engine/app/models/pg_engine/base_record.rb
|
1039
1043
|
- pg_engine/app/models/user.rb
|
@@ -1048,6 +1052,7 @@ files:
|
|
1048
1052
|
- pg_engine/app/policies/user_account_policy.rb
|
1049
1053
|
- pg_engine/app/policies/user_policy.rb
|
1050
1054
|
- pg_engine/app/policies/user_registration_policy.rb
|
1055
|
+
- pg_engine/app/views/active_storage/blobs/_blob.html.erb
|
1051
1056
|
- pg_engine/app/views/admin/accounts/_account.html.slim
|
1052
1057
|
- pg_engine/app/views/admin/accounts/_form.html.slim
|
1053
1058
|
- pg_engine/app/views/admin/accounts/edit.html.slim
|
@@ -1059,6 +1064,8 @@ files:
|
|
1059
1064
|
- pg_engine/app/views/admin/emails/_form.html.slim
|
1060
1065
|
- pg_engine/app/views/admin/emails/_send.html.slim
|
1061
1066
|
- pg_engine/app/views/admin/emails/show.html.slim
|
1067
|
+
- pg_engine/app/views/admin/eventos/index.html.slim
|
1068
|
+
- pg_engine/app/views/admin/eventos/new.html.slim
|
1062
1069
|
- pg_engine/app/views/admin/user_accounts/_form.html.slim
|
1063
1070
|
- pg_engine/app/views/admin/user_accounts/_user_account.html.slim
|
1064
1071
|
- pg_engine/app/views/admin/user_accounts/edit.html.slim
|
@@ -1069,6 +1076,7 @@ files:
|
|
1069
1076
|
- pg_engine/app/views/admin/users/edit.html.slim
|
1070
1077
|
- pg_engine/app/views/admin/users/new.html.slim
|
1071
1078
|
- pg_engine/app/views/admin/users/show.html.slim
|
1079
|
+
- pg_engine/app/views/layouts/action_text/contents/_content.html.erb
|
1072
1080
|
- pg_engine/app/views/pg_engine/admin_mailer/admin_mail.html.slim
|
1073
1081
|
- pg_engine/app/views/pg_engine/base/download.xlsx.axlsx
|
1074
1082
|
- pg_engine/app/views/pg_engine/base/edit.html.slim
|
@@ -1103,6 +1111,7 @@ files:
|
|
1103
1111
|
- pg_engine/db/migrate/20240523183651_create_email_logs.rb
|
1104
1112
|
- pg_engine/db/migrate/20240611000219_create_noticed_tables.noticed.rb
|
1105
1113
|
- pg_engine/db/migrate/20240611000220_add_notifications_count_to_noticed_event.noticed.rb
|
1114
|
+
- pg_engine/db/migrate/20240614130246_create_action_text_tables.action_text.rb
|
1106
1115
|
- pg_engine/db/seeds.rb
|
1107
1116
|
- pg_engine/lib/pg_engine.rb
|
1108
1117
|
- pg_engine/lib/pg_engine/configuracion.rb
|
@@ -1160,6 +1169,7 @@ files:
|
|
1160
1169
|
- pg_engine/spec/models/user_account_spec.rb
|
1161
1170
|
- pg_engine/spec/models/user_spec.rb
|
1162
1171
|
- pg_engine/spec/pg_engine/pdf_preview_generator_spec.rb
|
1172
|
+
- pg_engine/spec/requests/admin/eventos_spec.rb
|
1163
1173
|
- pg_engine/spec/requests/base_controller_requests_spec.rb
|
1164
1174
|
- pg_engine/spec/system/alerts_spec.rb
|
1165
1175
|
- pg_engine/spec/system/destroy_spec.rb
|