Sha256: baa384122e41bb3ea8794626d50c1be92656174d73e5d833a4d629cb85b1bbc2

Contents?: true

Size: 969 Bytes

Versions: 1

Compression:

Stored size: 969 Bytes

Contents

# frozen_string_literal: true
module Hyrax
  class PermissionBadge
    include ActionView::Helpers::TagHelper

    VISIBILITY_LABEL_CLASS = {
      authenticated: "badge-info",
      embargo: "badge-warning",
      lease: "badge-warning",
      open: "badge-success",
      restricted: "badge-danger"
    }.freeze

    # @param visibility [String] the current visibility
    def initialize(visibility)
      @visibility = visibility
    end

    # Draws a span tag with styles for a bootstrap label
    def render
      tag.span(text, class: "badge #{dom_label_class}")
    end

    private

    def dom_label_class
      VISIBILITY_LABEL_CLASS.fetch(@visibility.to_sym, 'badge-info')
    end

    def text
      if registered?
        Institution.name
      else
        I18n.t("hyrax.visibility.#{@visibility}.text")
      end
    end

    def registered?
      @visibility == Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hyrax-4.0.0.beta1 app/presenters/hyrax/permission_badge.rb