module Casein module CaseinHelper def casein_get_version_info YAML::load_file File.join(File.dirname(__FILE__), '..', '..', '..', 'PUBLIC_VERSION.yml') end def casein_get_full_version_string version_info = casein_get_version_info "v.#{version_info['major']}.#{version_info['minor']}.#{version_info['patch']}" end def casein_get_short_version_string version_info = casein_get_version_info "v.#{version_info['major']}" end def casein_generate_page_title if @casein_page_title.nil? return casein_config_website_name end @casein_page_title + " > " + casein_config_website_name end def casein_get_access_level_text level case level when $CASEIN_USER_ACCESS_LEVEL_ADMIN return "Administrator" when $CASEIN_USER_ACCESS_LEVEL_USER return "User" else return "Unknown" end end def casein_get_access_level_array [["Administrator", $CASEIN_USER_ACCESS_LEVEL_ADMIN], ["User", $CASEIN_USER_ACCESS_LEVEL_USER]] end def casein_table_cell_link contents, link, options = {} if options.key? :casein_truncate contents = truncate(contents, :length => options[:casein_truncate], :omission => "...") end link_to "#{contents}", link end def casein_show_icon icon_name "
".html_safe end def casein_show_row_icon icon_name "
".html_safe end # Styled form tag helpers def casein_text_field form, obj, attribute, options = {} casein_form_tag_wrapper(form.text_field(attribute, options.merge({:class => 'caseinTextField'})), form, obj, attribute, options).html_safe end def casein_password_field form, obj, attribute, options = {} casein_form_tag_wrapper(form.password_field(attribute, options.merge({:class => 'caseinTextField'})), form, obj, attribute, options).html_safe end def casein_text_area form, obj, attribute, options = {} casein_form_tag_wrapper(form.text_area(attribute, options.merge({:class => 'caseinTextArea'})), form, obj, attribute, options).html_safe end def casein_text_area_big form, obj, attribute, options = {} casein_form_tag_wrapper(form.text_area(attribute, options.merge({:class => 'caseinTextAreaBig'})), form, obj, attribute, options).html_safe end def casein_check_box form, obj, attribute, options = {} form_tag = form.check_box(attribute, options) if options.key? :casein_box_label form_tag = "
" + form_tag + "#{options[:casein_box_label]}
".html_safe end casein_form_tag_wrapper(form_tag, form, obj, attribute, options).html_safe end def casein_check_box_group form, obj, check_boxes = {} form_tags = "" for check_box in check_boxes form_tags += casein_check_box form, obj, check_box[0], check_box[1] end casein_form_tag_wrapper form_tag, form, obj, attribute, options end def casein_radio_button form, obj, attribute, tag_value, options = {} form_tag = form.radio_button(obj, attribute, tag_value, options) if options.key? :casein_button_label form_tag = "
" + form_tag + "#{options[:casein_button_label]}
".html_safe end casein_form_tag_wrapper(form_tag, form, obj, attribute, options).html_safe end def casein_radio_button_group form, obj, radio_buttons = {} form_tags = "" for radio_button in radio_buttons form_tags += casein_radio_button form, obj, check_box[0], check_box[1], check_box[2] end casein_form_tag_wrapper(form_tag, form, obj, attribute, options).html_safe end def casein_select form, obj, attribute, option_tags, options = {} casein_form_tag_wrapper(form.select(attribute, option_tags, options, {:class => 'caseinSelect'}), form, obj, attribute, options).html_safe end def casein_time_zone_select form, obj, attribute, option_tags, options = {} casein_form_tag_wrapper(form.time_zone_select(attribute, option_tags, options, {:class => 'caseinSelect'}), form, obj, attribute, options).html_safe end def casein_collection_select form, obj, object, attribute, collection, value_method, text_method, options = {} casein_form_tag_wrapper(collection_select(object, attribute, collection, value_method, text_method, options, {:class => 'caseinSelect'}), form, obj, attribute, options).html_safe end def casein_date_select form, obj, attribute, options = {} casein_form_tag_wrapper(form.date_select(attribute, options, {:class => 'caseinDateTimeSelect'}), form, obj, attribute, options).html_safe end def casein_time_select form, obj, attribute, options = {} casein_form_tag_wrapper(form.time_select(attribute, options, {:class => 'caseinDateTimeSelect'}), form, obj, attribute, options).html_safe end def casein_datetime_select form, obj, attribute, options = {} casein_form_tag_wrapper(form.datetime_select(attribute, options, {:class => 'caseinDateTimeSelect'}), form, obj, attribute, options).html_safe end def casein_file_field form, obj, object_name, attribute, options = {} contents = '
' + file_field(object_name, attribute, options) + '
' casein_form_tag_wrapper(contents, form, obj, attribute, options).html_safe end def casein_hidden_field form, obj, attribute, options = {} form.hidden_field(obj, attribute, options).html_safe end protected def casein_form_tag_wrapper form_tag, form, obj, attribute, options = {} unless options.key? :casein_label human_attribute_name = attribute.to_s.humanize else human_attribute_name = options[:casein_label] end html = "

" if obj && obj.errors[attribute].any? html += "#{human_attribute_name} #{obj.errors[attribute].first}".html_safe else html += form.label(attribute, human_attribute_name) end html += "

\n

#{form_tag}

" end end end