paper_view 0.2.0 → 0.2.2
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 -1
- data/app/models/paper_view/timeline.rb +0 -12
- data/app/models/paper_view/version_query.rb +25 -8
- data/app/views/paper_view/shared/_styles.html.erb +1 -1
- data/app/views/paper_view/stats/_stats.html.erb +1 -5
- data/app/views/paper_view/versions/index.html.erb +4 -4
- data/lib/paper_view/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 70d6d49240ad0e8a0742aef1bfff9360fe2bc0e57b3090f7178077086a69b56a
|
|
4
|
+
data.tar.gz: 29218cc81545764a0458f3635a0f3b8bc720202b72efe9507e51f97f29ac408a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c3c9f444f804a5d5ef5b5458ca25f28a1c568892117def85c160699195f7ce08731dff3c47f3078c033d3fe673e8bf08b2f7e9f8759c1dd209f5828b190f9720
|
|
7
|
+
data.tar.gz: e1197a30bb440dadb18071e4237113a3e2c9b330d2891e48106d294564281181849e479b83cb2200d675233174bd935ca5c012c051fdbdad6b77307f3e21aaa3
|
data/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
A lightweight, mountable dashboard for [paper_trail](https://github.com/paper-trail-gem/paper_trail).
|
|
4
4
|
Browse the `versions` table and read, in a chronological timeline, what actually changed.
|
|
5
5
|
|
|
6
|
-

|
|
7
7
|
|
|
8
8
|
## Installation
|
|
9
9
|
|
|
@@ -19,18 +19,6 @@ module PaperView
|
|
|
19
19
|
.map { |chunk| Group.new(day_label(chunk.first.date), chunk) }
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
def items
|
|
23
|
-
@items ||= rows.map(&:item_key).uniq
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def multi_item_view?
|
|
27
|
-
items.size != 1
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def title
|
|
31
|
-
multi_item_view? ? "All changes" : rows.first.item_label
|
|
32
|
-
end
|
|
33
|
-
|
|
34
22
|
def selected
|
|
35
23
|
@selected ||= rows.find { |row| row.id.to_s == @selected_id.to_s } || newest
|
|
36
24
|
end
|
|
@@ -23,16 +23,25 @@ module PaperView
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def relation
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
filtered.order(created_at: sort.to_sym, id: sort.to_sym)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def matched_item_types
|
|
30
|
+
return [item_type] if item_type
|
|
31
|
+
return [] unless item_id
|
|
32
|
+
|
|
33
|
+
@matched_item_types ||= filtered.unscope(:order).distinct.pluck(:item_type)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def single_item?
|
|
37
|
+
item_id.present? && matched_item_types.size == 1
|
|
31
38
|
end
|
|
32
39
|
|
|
33
|
-
def
|
|
34
|
-
return "All
|
|
35
|
-
|
|
40
|
+
def title
|
|
41
|
+
return "All changes" unless item_type || item_id
|
|
42
|
+
return item_type unless item_id
|
|
43
|
+
|
|
44
|
+
single_item? ? "#{matched_item_types.first} ##{item_id}" : "Item ##{item_id}"
|
|
36
45
|
end
|
|
37
46
|
|
|
38
47
|
private
|
|
@@ -41,6 +50,14 @@ module PaperView
|
|
|
41
50
|
@versions_table ||= VersionsTable.new
|
|
42
51
|
end
|
|
43
52
|
|
|
53
|
+
def filtered
|
|
54
|
+
scope = PaperView.version_class.all
|
|
55
|
+
scope = scope.where(item_type: searched_item_types) if searched_item_types
|
|
56
|
+
scope = scope.where(item_id: item_id) if item_id
|
|
57
|
+
scope = scope.where(event: event) if event
|
|
58
|
+
scope
|
|
59
|
+
end
|
|
60
|
+
|
|
44
61
|
def searched_item_types
|
|
45
62
|
return @searched_item_types if defined?(@searched_item_types)
|
|
46
63
|
|
|
@@ -205,6 +205,7 @@
|
|
|
205
205
|
background: var(--pv-surface);
|
|
206
206
|
border: 1px solid var(--pv-border);
|
|
207
207
|
border-radius: var(--pv-radius);
|
|
208
|
+
overflow: clip;
|
|
208
209
|
}
|
|
209
210
|
.pv-card__head {
|
|
210
211
|
display: flex;
|
|
@@ -213,7 +214,6 @@
|
|
|
213
214
|
padding: 14px 18px;
|
|
214
215
|
background: var(--pv-surface-muted);
|
|
215
216
|
border-bottom: 1px solid var(--pv-border);
|
|
216
|
-
border-radius: var(--pv-radius) var(--pv-radius) 0 0;
|
|
217
217
|
}
|
|
218
218
|
.pv-card__title { font: 600 14px/1.2 var(--pv-sans); color: var(--pv-ink); }
|
|
219
219
|
.pv-card__meta { font: 400 13px/1.2 var(--pv-sans); color: var(--pv-ink-soft); }
|
|
@@ -30,15 +30,11 @@
|
|
|
30
30
|
</section>
|
|
31
31
|
<% else %>
|
|
32
32
|
<section class="pv-card">
|
|
33
|
-
<div class="pv-card__head">
|
|
34
|
-
<span class="pv-card__title">Weight by item type</span>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
33
|
<div class="pv-stats">
|
|
38
34
|
<div class="pv-stat pv-stat--head">
|
|
39
35
|
<span>Item type</span>
|
|
40
36
|
<span class="pv-stat__figure">Versions</span>
|
|
41
|
-
<span class="pv-stat__figure">
|
|
37
|
+
<span class="pv-stat__figure">Size</span>
|
|
42
38
|
<span>Share</span>
|
|
43
39
|
</div>
|
|
44
40
|
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
<div class="pv-layout">
|
|
28
28
|
<section class="pv-card">
|
|
29
29
|
<div class="pv-card__head">
|
|
30
|
-
<span class="pv-card__title"><%= @
|
|
30
|
+
<span class="pv-card__title"><%= @query.title %></span>
|
|
31
31
|
|
|
32
32
|
<span class="pv-card__meta">
|
|
33
33
|
<%= number_with_delimiter(@paginator.total_count) %>
|
|
34
|
-
<%= "version".pluralize(@paginator.total_count) %><%= " · #{@
|
|
34
|
+
<%= "version".pluralize(@paginator.total_count) %><%= " · #{@query.matched_item_types.size} item types" if @query.matched_item_types.size > 1 %>
|
|
35
35
|
</span>
|
|
36
36
|
|
|
37
37
|
<span class="pv-spacer"></span>
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
<div class="pv-timeline__day"><%= group.label %></div>
|
|
59
59
|
|
|
60
60
|
<% group.rows.each do |row| %>
|
|
61
|
-
<%= render "paper_view/versions/timeline_row", row: row, multi_item_view:
|
|
61
|
+
<%= render "paper_view/versions/timeline_row", row: row, multi_item_view: !@query.single_item?, selected: row == @timeline.selected %>
|
|
62
62
|
<% end %>
|
|
63
63
|
</div>
|
|
64
64
|
<% end %>
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
<aside class="pv-side" data-pv-panels>
|
|
71
71
|
<% @timeline.rows.each do |row| %>
|
|
72
|
-
<%= render "paper_view/versions/panel", row: row, multi_item_view:
|
|
72
|
+
<%= render "paper_view/versions/panel", row: row, multi_item_view: !@query.single_item?, active: row == @timeline.selected %>
|
|
73
73
|
<% end %>
|
|
74
74
|
</aside>
|
|
75
75
|
</div>
|
data/lib/paper_view/version.rb
CHANGED