Sha256: 2527242246e40385a2afc797ffd688c1cff0227d36104054a84903d9246e2a9b

Contents?: true

Size: 1.73 KB

Versions: 22

Compression:

Stored size: 1.73 KB

Contents

module Para
  module Markup
    class ResourcesButtons < Para::Markup::Component
      attr_reader :component

      def initialize(component, view)
        @component = component
        super(view)
      end

      def clone_button(resource)
        return unless resource.class.cloneable? && view.can?(:clone, resource)

        path = component.relation_path(
          resource, action: :clone, return_to: view.request.fullpath
        )

        options = {
          method: :post,
          class: 'btn btn-sm btn-icon-info btn-shadow hint--left',
          aria: {
            label: ::I18n.t('para.shared.copy')
          }
        }

        view.link_to(path, options) do
          content_tag(:i, '', class: 'fa fa-copy')
        end
      end

      def edit_button(resource)
        return unless view.can?(:edit, resource)

        path = component.relation_path(
          resource, action: :edit, return_to: view.request.fullpath
        )

        view.link_to(path, class: 'btn btn-sm btn-icon-primary btn-shadow hint--left', aria: { label: ::I18n.t('para.shared.edit') }) do
          content_tag(:i, '', class: 'fa fa-pencil')
        end
      end

      def delete_button(resource)
        return unless view.can?(:delete, resource)

        path = component.relation_path(resource, return_to: view.request.fullpath)

        options = {
          method: :delete,
          data: {
            confirm: ::I18n.t('para.list.delete_confirmation')
          },
          class: 'btn btn-sm btn-icon-danger btn-shadow hint--left',
          aria: {
            label: ::I18n.t('para.shared.destroy')
          }
        }

        view.link_to(path, options) do
          content_tag(:i, '', class: 'fa fa-times')
        end
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
para-0.11.4 lib/para/markup/resources_buttons.rb
para-0.11.3 lib/para/markup/resources_buttons.rb
para-0.11.2 lib/para/markup/resources_buttons.rb
para-0.11.1 lib/para/markup/resources_buttons.rb
para-0.11.0 lib/para/markup/resources_buttons.rb
para-0.10.0 lib/para/markup/resources_buttons.rb
para-0.9.4 lib/para/markup/resources_buttons.rb
para-0.9.3.3 lib/para/markup/resources_buttons.rb
para-0.9.3.2 lib/para/markup/resources_buttons.rb
para-0.9.3.1 lib/para/markup/resources_buttons.rb
para-0.9.2 lib/para/markup/resources_buttons.rb
para-0.9.0 lib/para/markup/resources_buttons.rb
para-0.8.15 lib/para/markup/resources_buttons.rb
para-0.8.14 lib/para/markup/resources_buttons.rb
para-0.8.13 lib/para/markup/resources_buttons.rb
para-0.8.12 lib/para/markup/resources_buttons.rb
para-0.8.11 lib/para/markup/resources_buttons.rb
para-0.8.10 lib/para/markup/resources_buttons.rb
para-0.8.9 lib/para/markup/resources_buttons.rb
para-0.8.8 lib/para/markup/resources_buttons.rb