Sha256: 4bdbc3a2641a1831c61d4159046fc0ea367a085396af2f944a97194b68c0bdc9

Contents?: true

Size: 1.6 KB

Versions: 9

Compression:

Stored size: 1.6 KB

Contents

module Georgia
  class WarningMessage < Presenter

    attr_reader :page, :revision, :options

    def initialize view_context, page, revision, options={}
      @page = page
      @revision = revision
      @options = options
      super
    end

    def to_s
      return nil unless message
      html = ActiveSupport::SafeBuffer.new
      html << warning_icon_tag
      html << message
      content_tag(:div, content_tag(:p, html), class: 'warning-message')
    end

    private

    def warning_icon_tag
      content_tag(:span, icon_tag('warning'), class: 'label label-warning')
    end

    def message
      case revision.state
      when 'review' then review_message
      when 'revision' then revision_message
      else nil
      end
    end

    def review_message
      review_message = "This revision is awaiting review from an Editor."
      if can? :approve, revision
        review_message << " #{link_to 'Approve Changes', [:approve, page, revision], class: 'btn btn-primary btn-xs'}"
      elsif can? :review, revision
        review_message << " #{link_to 'Request Review', [:review, page, revision], class: 'btn btn-primary btn-xs'}"
      end
      review_message.html_safe
    end

    def revision_message
      return nil if current_revision?
      revision_message ||= "You are looking at a past revision. Updating this content will not change anything on your website. Click #{link_to 'here', [:edit, @page, @page.current_revision], class: 'text-primary'} to edit the current revision.".html_safe
    end

    def current_revision?
      @is_current_revision ||= page.current_revision == revision
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
georgia-0.7.8 app/presenters/georgia/warning_message.rb
georgia-0.7.7 app/presenters/georgia/warning_message.rb
georgia-0.7.6 app/presenters/georgia/warning_message.rb
georgia-0.7.5 app/presenters/georgia/warning_message.rb
georgia-0.7.4 app/presenters/georgia/warning_message.rb
georgia-0.7.3 app/presenters/georgia/warning_message.rb
georgia-0.7.2 app/presenters/georgia/warning_message.rb
georgia-0.7.1 app/presenters/georgia/warning_message.rb
georgia-0.7.0 app/presenters/georgia/warning_message.rb