Sha256: e5ab12e92ae7d70533e68cd104536f73646da943a236d4c12868ddc7fe6639aa

Contents?: true

Size: 1.43 KB

Versions: 4

Compression:

Stored size: 1.43 KB

Contents

require 'lolita'
require 'lolita-translation/string.rb'
require 'lolita-translation/modules'
require 'lolita-translation/model'
require 'lolita-translation/configuration'
if Lolita.rails3?
  require 'lolita-translation/rails'
end

module Lolita
  module Translation

    def self.included(base_class)
      base_class.extend(Lolita::Translation::SingletonMethods)
    end

    class << self
      # Determine whether tab is translatable. When there is one or more fields in tab, that are defined with #translates.
      def translatable?(tab)
        fields = tab.fields.reject{|field|
          field.dbi!=tab.dbi
        } 
        tab.dbi.klass.respond_to?(:translation_attrs) &&
        tab.dbi.klass.respond_to?(:translations) && (fields.map(&:name) & tab.dbi.klass.translation_attrs).any?
      end

      # Create nested form configuration for views.
      def create_translations_nested_form(resource,tab)
        resource.build_nested_translations 
        nested_form = Lolita::Configuration::NestedForm.new(tab,:translations) 
        nested_form.expandable = false
        nested_form.field_style = :normal
        
        fields = tab.fields.reject{|field|
          !resource.class.translation_attrs.include?(field.name.to_sym)
        }
        fields << Lolita::Configuration::Factory::Field.add(nested_form.dbi,:locale,:hidden)
        nested_form.fields=fields
        nested_form
      end
    end
  end
end

Lolita.add_module Lolita::Translation

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lolita-translation-0.3.3 lib/lolita-translation.rb
lolita-translation-0.2.18 lib/lolita-translation.rb
lolita-translation-0.3.2 lib/lolita-translation.rb
lolita-translation-0.3.1 lib/lolita-translation.rb