138 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
module Admin::PagePartsHelper
 | 
						|
  include Admin::FrontendWidgetInterface
 | 
						|
 | 
						|
  def support_link
 | 
						|
    url_method = @selected[:module_app].get_default_widget[:url_method]
 | 
						|
    unless url_method.nil?
 | 
						|
      res = "Link:"
 | 
						|
      res << select_tag( "page_part[widget_field_is_link][]", options_for_select([["NotLink",false],["Link1",url_method]]))
 | 
						|
      res.html_safe
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def get_widget_field_rel
 | 
						|
    case set_local_item
 | 
						|
    when Page
 | 
						|
      reload_after_list_changed_admin_pages_path
 | 
						|
    when PagePart  
 | 
						|
      reload_after_list_changed_admin_page_part_path
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def link_to_field_switch( i ,object_name,field_name,local_item=nil,assign_field_name_value=nil) #link_to_field is for showing
 | 
						|
    field_is_checked = nil
 | 
						|
    local_item = case 
 | 
						|
    when local_item.nil? && @part
 | 
						|
      @part  
 | 
						|
    when local_item.nil? && @item
 | 
						|
      @item
 | 
						|
    end
 | 
						|
    
 | 
						|
    field_is_checked = local_item.default_widget_field_sat_to_link?(i)
 | 
						|
    res = hidden_field_tag "#{object_name}[#{field_name}][][sat_to_link]", 'false'
 | 
						|
 | 
						|
    unless field_is_checked.nil? and assign_field_name_value.nil?
 | 
						|
      origin_field = nil
 | 
						|
      origin_field = @selected[:module_app].widget_fields.select{|t| t.first.to_s==(assign_field_name_value || local_item.default_widget_field_name[i])}.first
 | 
						|
 | 
						|
      if  origin_field and origin_field[2]==:link #choosen_field_is_link
 | 
						|
 | 
						|
        res = label_tag '' do
 | 
						|
                  check_box_tag("#{object_name}[#{field_name}][][sat_to_link]", "true", field_is_checked) + I18n.t("default_widget.field_is_link") 
 | 
						|
                end
 | 
						|
      else # choosen_field_not_link
 | 
						|
        return res 
 | 
						|
      end # of if choosen_field_is_link
 | 
						|
    else
 | 
						|
      return res
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def widget_field_options(i,local_item=nil)
 | 
						|
    local_item = set_local_item
 | 
						|
 | 
						|
    options = @selected[:module_app].widget_fields.collect do |widget_field| 
 | 
						|
      label = I18n.t("#{@selected[:module_app].key}.default_widget.#{widget_field[0]}")
 | 
						|
      [label, widget_field[0]] 
 | 
						|
    end
 | 
						|
    case local_item
 | 
						|
    when Page
 | 
						|
      options_for_select(options, (local_item.frontend_field_name[i] if(local_item) ))
 | 
						|
    when PagePart
 | 
						|
      options_for_select(options, (local_item.widget_field_name[i] if(local_item) ))
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def widget_field_class_options(i,local_item=nil)
 | 
						|
    options = LIST[:widget_field_type].collect{|widget_field| [widget_field.humanize, widget_field]}
 | 
						|
    local_item = set_local_item
 | 
						|
    case local_item
 | 
						|
    when Page
 | 
						|
      options_for_select(options, (local_item.frontend_class[i] if (local_item) ))
 | 
						|
    when PagePart
 | 
						|
      options_for_select(options, (local_item.widget_class[i] if (local_item) ))
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def tag_checked_value(part,radio_value)
 | 
						|
    if radio_value.blank?
 | 
						|
      (part.nil? || part[:tag].blank?) ? true : false
 | 
						|
    else
 | 
						|
      part and (part[:tag].include?(radio_value.to_s)) ? true : false
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def category_checked_value(part,radio_value)
 | 
						|
    if radio_value.blank?
 | 
						|
      (part.nil? || part[:category].blank?) ? true : false
 | 
						|
    else
 | 
						|
      part and (part[:category].include?(radio_value.to_s)) ? true : false
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def style_checked_value(part,radio_value)
 | 
						|
    case part
 | 
						|
    when Page
 | 
						|
      if  part.frontend_style.nil? && radio_value == "typeA"
 | 
						|
        true
 | 
						|
      else
 | 
						|
        (part.frontend_style == radio_value) ? true : false
 | 
						|
      end
 | 
						|
    when PagePart
 | 
						|
      if  part.widget_style.nil? && radio_value == "typeA"
 | 
						|
        true
 | 
						|
      else
 | 
						|
        (part.widget_style == radio_value) ? true : false  
 | 
						|
      end
 | 
						|
    when nil
 | 
						|
      false
 | 
						|
    end 
 | 
						|
  end
 | 
						|
 | 
						|
  def nil_checkbox_button(part,tag_or_cate)
 | 
						|
    field_name = set_field_name
 | 
						|
 | 
						|
    content_tag :label,:class=>"radio inline" do 
 | 
						|
      op = check_box_tag("#{field_name}[#{tag_or_cate}][]", 'nil' , eval("#{tag_or_cate}_checked_value(part,'')"),:class=>'select_all')
 | 
						|
      op << I18n.t("default_widget.no_value")
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def nil_radio_button(part,tag_or_cate)
 | 
						|
    field_name = set_field_name
 | 
						|
 | 
						|
    content_tag :label,:class=>"radio inline" do 
 | 
						|
      op = radio_button(field_name, tag_or_cate, '' , :checked => eval("#{tag_or_cate}_checked_value(part,'')"))
 | 
						|
      op << I18n.t("default_widget.no_value")
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def show_default_widget_setting_panel
 | 
						|
      @selected[:module_app] && @selected[:module_app].has_default_widget? && (@selected[:app_frontend_url]== 'default_widget')
 | 
						|
  end
 | 
						|
 | 
						|
  def show_custom_widget_setting_panel
 | 
						|
    true
 | 
						|
  end
 | 
						|
 | 
						|
end |