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(