lato 3.20.0 → 3.22.1
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/README.md +1 -0
- data/app/assets/javascripts/lato/application.js +28 -11
- data/app/assets/javascripts/lato/controllers/lato_confirm_controller.js +2 -2
- data/app/assets/javascripts/lato/controllers/lato_tooltip_controller.js +4 -0
- data/app/controllers/concerns/lato/componentable.rb +18 -7
- data/app/controllers/lato/application_controller.rb +2 -0
- data/app/views/lato/components/_operation.html.erb +2 -2
- data/config/importmap.rb +1 -0
- data/lib/lato/version.rb +1 -1
- data/lib/lato.rb +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 796d69a53a77b898ae602cfe54f33604397c9505eb623ecf84d77985b3086bf4
|
|
4
|
+
data.tar.gz: c72842a56b5856f10a3a7be6d5cbe4bd0c8d9ddd192d4a61118ea6c77cc936b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 12b9391e20a74ef9ddfc9cd875bef64bc872186d57db3f8017a8f7595719f767056ca4eca8e7f249db5c7b0b4dde6946f7cf077130eebb54e19ef0987c2845dc
|
|
7
|
+
data.tar.gz: f1bd4870565a2a65bf58ec632412c914e2137db77a4d210e07939dbb3afedfd275b4485f7c5b3608900b6fc53b40500c8e55bf86a6c1317cda88bf9b16237c09
|
data/README.md
CHANGED
|
@@ -34,6 +34,7 @@ The idea behind Lato is to create an eco-system of engines that can improve the
|
|
|
34
34
|
- [Lato Settings](https://github.com/Lato-org/lato_settings): manage application settings from the UI panel;
|
|
35
35
|
- [Lato Storage](https://github.com/Lato-org/lato_storage): manage storage (Active Storage data) from the UI panel;
|
|
36
36
|
- [Lato Users](https://github.com/Lato-org/lato_users): manage users from the UI panel;
|
|
37
|
+
- [Lato CMS](https://github.com/Lato-org/lato_cms): manage web pages from the UI panel;
|
|
37
38
|
|
|
38
39
|
## Installation
|
|
39
40
|
Add required dependencies to your application's Gemfile:
|
|
@@ -1,22 +1,39 @@
|
|
|
1
1
|
// Import turbo rails
|
|
2
|
-
import
|
|
2
|
+
import '@hotwired/turbo-rails'
|
|
3
3
|
// Import bootstrap js
|
|
4
|
-
import
|
|
4
|
+
import 'bootstrap'
|
|
5
5
|
// Import controllers (stimulus rails)
|
|
6
|
-
import
|
|
6
|
+
import 'controllers'
|
|
7
|
+
// Import local time js
|
|
8
|
+
import LocalTime from 'local-time'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Setup local time to update time elements on page load and after turbo morph or frame render
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
LocalTime.start()
|
|
15
|
+
|
|
16
|
+
document.addEventListener('turbo:morph', () => {
|
|
17
|
+
LocalTime.run()
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
document.addEventListener('turbo:frame-render', () => {
|
|
21
|
+
LocalTime.run()
|
|
22
|
+
})
|
|
7
23
|
|
|
8
24
|
/**
|
|
9
25
|
* Include service worker
|
|
10
26
|
*/
|
|
11
27
|
|
|
12
28
|
if (navigator.serviceWorker) {
|
|
13
|
-
navigator.serviceWorker
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
29
|
+
navigator.serviceWorker
|
|
30
|
+
.register('/service-worker.js', { scope: '/' })
|
|
31
|
+
.then(() => navigator.serviceWorker.ready)
|
|
32
|
+
.then((registration) => {
|
|
33
|
+
const event = new window.CustomEvent('service-worker:ready', { detail: registration })
|
|
34
|
+
document.dispatchEvent(event)
|
|
35
|
+
})
|
|
36
|
+
.then(() => window.console.log('[App]', 'Service worker registered! -> listen to \'service-worker:ready\' document event to get registration object'))
|
|
20
37
|
}
|
|
21
38
|
|
|
22
39
|
/**
|
|
@@ -24,7 +41,7 @@ if (navigator.serviceWorker) {
|
|
|
24
41
|
* https://github.com/hotwired/turbo-rails/issues/440
|
|
25
42
|
*/
|
|
26
43
|
|
|
27
|
-
document.addEventListener(
|
|
44
|
+
document.addEventListener('turbo:frame-missing', event => {
|
|
28
45
|
event.preventDefault()
|
|
29
46
|
event.detail.visit(event.detail.response)
|
|
30
47
|
})
|
|
@@ -7,7 +7,7 @@ export default class extends Controller {
|
|
|
7
7
|
|
|
8
8
|
connect() {
|
|
9
9
|
this.modal = new bootstrap.Modal(this.element)
|
|
10
|
-
Turbo.
|
|
10
|
+
Turbo.config.forms.confirm = this.customConfirm.bind(this)
|
|
11
11
|
|
|
12
12
|
this.element.addEventListener('show.bs.modal', () => {
|
|
13
13
|
this.element.style.zIndex = 2001
|
|
@@ -21,7 +21,7 @@ export default class extends Controller {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
disconnect() {
|
|
24
|
-
Turbo.
|
|
24
|
+
Turbo.config.forms.confirm = window.confirm
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
async customConfirm(message) {
|
|
@@ -8,6 +8,10 @@ export default class extends Controller {
|
|
|
8
8
|
connect() {
|
|
9
9
|
this.tooltip = new bootstrap.Tooltip(this.element)
|
|
10
10
|
|
|
11
|
+
// Always close the tooltip when its trigger element is clicked, since the
|
|
12
|
+
// click may move the element and leave the tooltip stuck in the old position
|
|
13
|
+
this.element.addEventListener('click', () => this.tooltip.hide())
|
|
14
|
+
|
|
11
15
|
// HACK: Force tooltip to be closed when a boostrap modal is opened/closed
|
|
12
16
|
const modals = document.querySelectorAll('.modal')
|
|
13
17
|
modals.forEach((modal) => {
|
|
@@ -20,14 +20,12 @@ module Lato
|
|
|
20
20
|
|
|
21
21
|
# manage sort by parameter
|
|
22
22
|
unless params["#{key}_sort_by"].blank?
|
|
23
|
-
|
|
24
|
-
sort_by_column = sort_by_splitted.first
|
|
25
|
-
sort_by_order = sort_by_splitted.last
|
|
23
|
+
sort_by = parse_lato_index_sort_by(params["#{key}_sort_by"], @_lato_index[key][:sortable_columns])
|
|
26
24
|
|
|
27
|
-
if collection.respond_to?(:lato_index_order)
|
|
28
|
-
collection = collection.lato_index_order(
|
|
29
|
-
|
|
30
|
-
collection = collection.order(
|
|
25
|
+
if sort_by && collection.respond_to?(:lato_index_order)
|
|
26
|
+
collection = collection.lato_index_order(sort_by[:column].to_sym, sort_by[:order].to_sym)
|
|
27
|
+
elsif sort_by
|
|
28
|
+
collection = collection.order(sort_by[:column] => sort_by[:order])
|
|
31
29
|
end
|
|
32
30
|
end
|
|
33
31
|
|
|
@@ -63,5 +61,18 @@ module Lato
|
|
|
63
61
|
|
|
64
62
|
collection
|
|
65
63
|
end
|
|
64
|
+
|
|
65
|
+
private
|
|
66
|
+
|
|
67
|
+
def parse_lato_index_sort_by(sort_by, sortable_columns)
|
|
68
|
+
sort_by_column, sort_by_order = sort_by.to_s.split("|", 2)
|
|
69
|
+
sort_by_column = sort_by_column.to_s
|
|
70
|
+
sort_by_order = sort_by_order.to_s.downcase
|
|
71
|
+
|
|
72
|
+
return unless sortable_columns.map(&:to_s).include?(sort_by_column)
|
|
73
|
+
return unless %w[asc desc].include?(sort_by_order)
|
|
74
|
+
|
|
75
|
+
{ column: sort_by_column, order: sort_by_order }
|
|
76
|
+
end
|
|
66
77
|
end
|
|
67
78
|
end
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
<% operation.logs.reverse.each do |log| %>
|
|
75
75
|
<div class="mb-2 pb-2 border-bottom d-flex justify-content-between align-items-center">
|
|
76
76
|
<p class="mb-0"><%= log[1] %></p>
|
|
77
|
-
<small class="
|
|
77
|
+
<small class="ms-4"><%= local_time(Time.parse(log[0]), format: "%H:%M:%S", class: "text-muted") %></small>
|
|
78
78
|
</div>
|
|
79
79
|
<% end %>
|
|
80
80
|
</div>
|
|
@@ -85,4 +85,4 @@
|
|
|
85
85
|
<%= link_to '', lato.operation_path(operation), class: 'd-none', data: { lato_operation_target: 'update', turbo_frame: '_self' } %>
|
|
86
86
|
<% end %>
|
|
87
87
|
</div>
|
|
88
|
-
<% end %>
|
|
88
|
+
<% end %>
|
data/config/importmap.rb
CHANGED
|
@@ -5,4 +5,5 @@ pin "@rails/activestorage", to: "activestorage.esm.js", preload: true
|
|
|
5
5
|
|
|
6
6
|
pin "bootstrap", to: "bootstrap.js", preload: true
|
|
7
7
|
# pin "@popperjs/core", to: "popper.js", preload: true
|
|
8
|
+
pin "local-time", to: "https://ga.jspm.io/npm:local-time@3.0.3/app/assets/javascripts/local-time.es2017-esm.js"
|
|
8
9
|
pin "lodash", to: "https://ga.jspm.io/npm:lodash@4.17.21/lodash.js"
|
data/lib/lato/version.rb
CHANGED
data/lib/lato.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lato
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.22.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gregorio Galante
|
|
@@ -79,6 +79,20 @@ dependencies:
|
|
|
79
79
|
- - ">="
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
81
|
version: '0'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: local_time
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
82
96
|
- !ruby/object:Gem::Dependency
|
|
83
97
|
name: browser
|
|
84
98
|
requirement: !ruby/object:Gem::Requirement
|