paper_view 0.2.0 → 0.2.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 -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/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: e74561ab048bdc7e58f0b46e1771ed22dc0639248fabd4f73cc4d57255b03351
|
|
4
|
+
data.tar.gz: eb30982ddad7c762f35f63bd1e2e9fde35a47616584fe0dbc446fde562f2836b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e8bd5fa49f64607df5b87c31747759a8f5b0a46a90b490f42504b74733cadaebbd86d9c342bdf4ee9a89012c260522abd3c91062ff5a6b795b2517ac4015e5c2
|
|
7
|
+
data.tar.gz: be954c77e76e95a4ad341bb41c97e3499ca69c661eaae800ddd8aa13fbf8c4fd8d5142c2876376f789872af4a1134ac11c8fa059bdfc56e97a2fcf949f3ded64
|
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
|
|
|
@@ -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