module Spyro::ActionViewExtension::ApplicationHelper

Public Instance Methods

app_name() click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 483
def app_name
  @cache_app_name ||= Rails.application.class.parent_name.underscore
end
associations(klass, macro) click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 316
def associations klass, macro
  klass = klass.to_s.classify.constantize if Symbol === klass

  klass.reflections.select { |s, r| s and r.macro == macro }
end
basic_params() click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 240
def basic_params
  params.dup.keep_if {|k, _| [:action, :controller, /_id$/].any? {|elem| elem === k }}
end
download_mime_type_btns(controller = nil, &block) click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 259
def download_mime_type_btns controller = nil, &block
  if download_mime_types(controller).size == 1
    if block_given?
      link = block.call(download_mime_types(controller).first) rescue nil
    else
      link = collection_url(format: download_mime_types(controller).first) rescue nil
    end

    button "Download as #{download_mime_types(controller).first}", link if link
  elsif download_mime_types(controller).size > 1
    res = link_to "#", :class => 'btn btn-default dropdown-toggle', :'data-toggle' => 'dropdown' do
      ("Download " + content_tag(:span, "", :class => "caret")).html_safe
    end
    res + content_tag(:ul, :class => "dropdown-menu") do
      download_mime_types(controller).map do |mime|
        if block_given?
          link = block.call(mime) rescue nil
        else
          link = collection_url(format: mime) rescue nil
        end
        content_tag :li, (link_to "as #{mime}", link) if link
      end.join('').html_safe
    end
  end
end
download_mime_types(controller) click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 285
def download_mime_types(controller)
  @mimes = {}
  @mimes[controller] ||= mime_types(controller)
  @mimes[controller] & [:csv, :xls]
end
menu() click to toggle source
mime_types(controller) click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 251
def mime_types controller
  mimes = []
  (controller || "#{params[:controller].pluralize}_controller".classify.constantize).mimes_for_respond_to.each do |key, values|
    mimes << key if (values[:only] == nil or values[:only].include? params[:action]) and (values[:expect] == nil or !values[:expect].include? params[:action])
  end
  mimes
end
parents() click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 236
def parents
  [*(respond_to?(:association_chain) ? (association_chain) : ([]))]
end
sorted_header(table, args = [], options = {}) click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 291
def sorted_header table, args = [], options = {}
  table.header args, options do |header, text|
    if @order_attributes and header.to_s.in? @order_attributes
      params_dup = params.dup
      params_dup[:order] = header
      if params_dup[:desc]
        params_dup.delete :desc
      else
        params_dup[:desc] = true if params[:order] == header.to_s
      end
      link_to text, url_for(params_dup)
    else
      text
    end
  end
end
vertical_form_for(record, options={}, &block) click to toggle source
# File lib/spyro/helpers/action_view_extension.rb, line 308
def vertical_form_for(record, options={}, &block)
  backup = SimpleForm.form_class
  SimpleForm.form_class = options[:form_class]
  result = simple_form_for(record, options, &block)
  SimpleForm.form_class = backup
  result
end