Sha256: 8763f92c49483b4d6ec179afe76ac9e1644cffc40014ec5d2e015d3d21d518a4

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Phlexi
  module Form
    module Components
      module Concerns
        module SubmitsForm
          def submit_type_value
            if field.object.respond_to?(:persisted?)
              field.object.persisted? ? :update : :create
            else
              :submit
            end
          end

          def submit_type_label
            @submit_type_label ||= begin
              key = submit_type_value

              model_object = field.dom.lineage.first.key.to_s
              model_name_human = if field.object.respond_to?(:model_name)
                field.object.model_name.human
              else
                model_object.humanize
              end

              defaults = []
              defaults << :"helpers.submit.#{model_object}.#{key}"
              defaults << :"helpers.submit.#{key}"
              defaults << "#{key.to_s.humanize} #{model_name_human}"

              I18n.t(defaults.shift, model: model_name_human, default: defaults)
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
phlexi-form-0.3.0.rc1 lib/phlexi/form/components/concerns/submits_form.rb