# -*- encoding : utf-8 -*- class Card; module Set; class All; module History; # Set: All cards (History, Actions) # # -*- encoding : utf-8 -*- module Actions; extend Card::Set def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-history/set/all/history/actions.rb"; end def all_action_ids Card::Action.where(card_id: id).pluck :id end def action_from_id action_id return unless action_id.is_a?(Integer) || action_id =~ /^\d+$/ # if not an integer revision id is probably a mod (e.g. if you request # files/:logo/standard.png) action = Action.fetch action_id return unless action.card_id == id action end def old_actions actions.where("id != ?", last_action_id) end def create_action @create_action ||= actions.first end def nth_action index index = index.to_i return unless id && index.positive? Action.where("draft is not true AND card_id = #{id}") .order(:id).limit(1).offset(index - 1).first end def new_content_action_id return unless @current_action && current_action_changes_content? @current_action.id end def current_action_changes_content? new_card? || @current_action.new_content? || db_content_is_changing? end module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFormat, self; extend Card::Set::AbstractFormat def action_from_context if (action_id = voo.action_id || params[:action_id]) Action.fetch action_id else card.last_action end end def action_content action, view_type return "" unless action.present? wrap do [action_content_toggle(action, view_type), content_diff(action, view_type)] end end def content_diff action, view_type diff = action.new_content? && content_changes(action, view_type) return "empty" unless diff.present? diff end def action_content_toggle action, view_type return unless show_action_content_toggle?(action, view_type) toggle_action_content_link action, view_type end def show_action_content_toggle? action, view_type view_type == :expanded || action.summary_diff_omits_content? end def toggle_action_content_link action, view_type other_view_type = view_type == :expanded ? :summary : :expanded css_class = "revision-#{action.card_act_id} float-right" link_to_view "action_#{other_view_type}", icon_tag(action_arrow_dir(view_type), class: "md-24"), class: css_class, path: { action_id: action.id, look_in_trash: true } end def action_arrow_dir view_type view_type == :expanded ? :triangle_left : :triangle_right end def revert_actions_link link_text, path_args, html_args={} return unless card.ok? :update path_args.reverse_merge! action: :update, look_in_trash: true, assign: true, card: { skip: :validate_renaming } html_args.reverse_merge! remote: true, method: :post, rel: "nofollow", path: path_args add_class html_args, "slotter" link_to link_text, html_args end def action_legend types = %i[create update delete] legend = types.map do |action_type| "#{action_icon(action_type)} #{action_type}d" end legend << _render_draft_legend if voo.show?(:draft_legend) "Actions: #{legend.join ' | '}" end def content_legend legend = [Card::Content::Diff.render_added_chunk("Additions"), Card::Content::Diff.render_deleted_chunk("Subtractions")] "Content changes: #{legend.join ' | '}" end def content_changes action, diff_type, hide_diff=false if hide_diff action.raw_view else action.content_diff diff_type end end end end;end;end;end;end; # ~~ generated from /Users/ethan/dev/decko/gem/card-mod-history/set/all/history/actions.rb ~~