mod/01_history/set/all/history.rb in card-1.16.14 vs mod/01_history/set/all/history.rb in card-1.16.15
- old
+ new
@@ -21,22 +21,26 @@
if @supercard && @supercard != self
@current_action.super_action = @supercard.current_action
end
end
+def finalize_action?
+ (history? || respond_to?(:attachment)) && current_action
+end
+
# stores changes in the changes table and assigns them to the current action
# removes the action if there are no changes
-event :finalize_action,
- after: :stored,
- when: proc { |c|
- (c.history? || c.respond_to?(:attachment)) && c.current_action
- } do
+event :finalize_action, after: :stored, when: proc { |c| c.finalize_action? } do
@changed_fields = Card::TRACKED_FIELDS.select do |f|
changed_attributes.member? f
end
if @changed_fields.present?
- @changed_fields.each{ |f| Card::Change.create field: f, value: self[f], card_action_id: @current_action.id }
+ @changed_fields.each do |f|
+ Card::Change.create field: f,
+ value: self[f],
+ card_action_id: @current_action.id
+ end
@current_action.update_attributes! card_id: id
elsif @current_action.card_changes(true).empty?
@current_action.delete
@current_action = nil
end
@@ -196,12 +200,14 @@
rev_nr = params['rev_nr'] || args[:rev_nr]
current_rev_nr = params['current_rev_nr'] || args[:current_rev_nr] ||
card.current_rev_nr
hide_diff = (params['hide_diff'] == ' true') || args[:hide_diff]
args[:slot_class] = "revision-#{act.id} history-slot list-group-item"
+ draft = (last_action = act.actions.last) && last_action.draft
+
wrap(args) do
- render_haml card: card, act: act, act_view: act_view,
+ render_haml card: card, act: act, act_view: act_view, draft: draft,
current_rev_nr: current_rev_nr, rev_nr: rev_nr,
hide_diff: hide_diff do
<<-HAML
.act{style: "clear:both;"}
.head
@@ -211,26 +217,26 @@
.actor
= link_to act.actor.name, card_url(act.actor.cardname.url_key)
.time.timeago
= time_ago_in_words(act.acted_at)
ago
- - if act.actions.last.draft
+ - if draft
|
%em.info
Autosave
- if current_rev_nr == rev_nr
%em.label.label-info
Current
- elsif act_view == :expanded
- = rollback_link act.relevant_actions_for(card, act.actions.last.draft)
+ = rollback_link act.relevant_actions_for(card, draft)
= show_or_hide_changes_link hide_diff, act_id: act.id, act_view: act_view, rev_nr: rev_nr, current_rev_nr: current_rev_nr
.toggle
= fold_or_unfold_link act_id: act.id, act_view: act_view, rev_nr: rev_nr, current_rev_nr: current_rev_nr
.action-container{style: ("clear: left;" if act_view == :expanded)}
- act.relevant_actions_for(card).each do |action|
- = send("_render_action_#{ act_view }", action: action )
+ = send("_render_action_#{act_view}", action: action )
HAML
end
end
end
@@ -240,11 +246,10 @@
view :action_expanded do |args|
render_action :expanded, args
end
-
def render_action action_view, args
action = args[:action] || card.last_action
hide_diff = Env.params['hide_diff'] == 'true' || args[:hide_diff]
render_haml action: action,
action_view: action_view,
@@ -345,11 +350,11 @@
def fold_or_unfold_link args
toggled_view = args[:act_view] == :expanded ? :act_summary : :act_expanded
arrow_dir = args[:act_view] == :expanded ? 'arrow-down' : 'arrow-right'
link_to '', args.merge(view: toggled_view),
- class: "slotter revision-#{args[:act_id]} #{arrow_dir}",
- remote: true
+ class: "slotter revision-#{args[:act_id]} #{arrow_dir}",
+ remote: true
end
def show_or_hide_changes_link hide_diff, args
text = (hide_diff ? 'Show' : 'Hide') + ' changes'
'| ' + view_link(