Sha256: da7dce788c0cc8b2c9887cdd274fe00384d35bb802c640025ef1b771af4689e4

Contents?: true

Size: 1.77 KB

Versions: 5

Compression:

Stored size: 1.77 KB

Contents

module Fe
  module ApplicationHelper
    include AnswerPagesHelper
    def pretty_tag(txt)
      txt.to_s.gsub(/\s/, "_").gsub(/(?!-)\W/, "").downcase
    end

    def flatten_hash(hash = params, ancestor_names = [])
      flat_hash = {}
      hash.each do |k, v|
        names = Array.new(ancestor_names)
        names << k
        if v.is_a?(Hash)
          flat_hash.merge!(flatten_hash(v, names))
        else
          key = flat_hash_key(names)
          key += "[]" if v.is_a?(Array)
          flat_hash[key] = v
        end
      end

      flat_hash
    end

    def flat_hash_key(names)
      names = Array.new(names)
      name = names.shift.to_s.dup
      names.each do |n|
        name << "[#{n}]"
      end
      name
    end

    def calendar_date_select_tag(name, value = nil, options = {})
      options.merge!({'data-calendar' => true})
      text_field_tag(name, value, options )
    end

    def tip(t)
      image_tag('fe/icons/question-balloon.png', title: t, class: 'tip')
    end

    def spinner(extra = nil)
      e = extra ? "spinner_#{extra}" : 'spinner'
      image_tag('fe/spinner.gif', id: e, style: 'display:none', class: 'spinner')
    end

    def link_to_function(name, *args, &block)
       html_options = args.extract_options!.symbolize_keys

       function = block_given? ? update_page(&block) : args[0] || ''
       onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function}; return false;"
       href = html_options[:href] || '#'

       content_tag(:a, name, html_options.merge(href: href, onclick: onclick))
    end

    def error_messages_for(model)
      record = instance_variable_get(:"@#{(model.is_a?(ActiveRecord::Base) ? model.class : model).to_s.underscore}")
      render "layouts/fe/error_messages_for", record: record
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fe-2.1.5 app/helpers/fe/application_helper.rb
fe-2.1.4 app/helpers/fe/application_helper.rb
fe-2.1.3 app/helpers/fe/application_helper.rb
fe-2.1.2 app/helpers/fe/application_helper.rb
fe-2.1.1 app/helpers/fe/application_helper.rb