clean default widget
This commit is contained in:
		
							parent
							
								
									5793f0fe5d
								
							
						
					
					
						commit
						b71ebb3982
					
				| 
						 | 
				
			
			@ -8,21 +8,20 @@ module DefaultWidgetHelper
 | 
			
		|||
    if method_ary.has_key? field
 | 
			
		||||
      url = case method_ary[field]["args"]
 | 
			
		||||
      when nil # no args
 | 
			
		||||
        eval(method_ary[field]["method"])
 | 
			
		||||
        get_data_link(method_ary[field]["method"])
 | 
			
		||||
      when :self # passing self
 | 
			
		||||
        eval "#{method_ary[field]['method']}('#{row_data.id}')"
 | 
			
		||||
        get_data_link(method_ary[field]['method'],row_data.id)
 | 
			
		||||
      else 
 | 
			
		||||
        ary = method_ary[field]["args"].clone
 | 
			
		||||
        object_hash = ary.each do |key,val|  
 | 
			
		||||
          ary[key]= row_data.send(val[0]).send(val[1]).to_s 
 | 
			
		||||
          ary[key]= type_trans_or_to_s(row_data.send(val[0]).send(val[1]))
 | 
			
		||||
        end
 | 
			
		||||
        binding.pry
 | 
			
		||||
        eval "#{method_ary[field]['method']}(#{object_hash})"
 | 
			
		||||
        get_data_link(method_ary[field]['method'],object_hash)
 | 
			
		||||
      end
 | 
			
		||||
      
 | 
			
		||||
      link_to row_data.send(field),url
 | 
			
		||||
     else
 | 
			
		||||
      row_data.send(field) 
 | 
			
		||||
      type_trans_or_to_s(row_data.send(field) )
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -32,17 +31,42 @@ module DefaultWidgetHelper
 | 
			
		|||
  #   # row_data.send(method_ary[field]["args"])
 | 
			
		||||
  # end
 | 
			
		||||
 | 
			
		||||
  def type_trans_or_to_s(object)
 | 
			
		||||
    case object
 | 
			
		||||
      when Date
 | 
			
		||||
        display_date(object)
 | 
			
		||||
      when DateTime
 | 
			
		||||
        display_date_time(object)
 | 
			
		||||
      when String
 | 
			
		||||
        object
 | 
			
		||||
      else
 | 
			
		||||
        object.to_s      
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_data_link(method_entry,object = nil)
 | 
			
		||||
    case object
 | 
			
		||||
    when nil
 | 
			
		||||
      eval method_entry
 | 
			
		||||
    else
 | 
			
		||||
      eval("#{method_entry}('#{object}')" ) 
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_display(row_data,field_setting)
 | 
			
		||||
    label = row_data.send(field_setting[:method])
 | 
			
		||||
    type_trans_or_to_s(label)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_row_data(row_data,field)
 | 
			
		||||
    field_is_link = (field[0][1]== 'false' ?  false : true )
 | 
			
		||||
    field_setting = {:class=>field[0][1],:method=>field[0][0]}
 | 
			
		||||
    if  field_is_link
 | 
			
		||||
      field_link = field[0][1].to_s + '_path'
 | 
			
		||||
      binding.pry
 | 
			
		||||
      link = link_to(row_data.send(field_setting[:method]),field_link.send(row_data))
 | 
			
		||||
      link = link_to(get_display(row_data,field_setting),field_link.send(row_data))
 | 
			
		||||
      content_tag(:span,link,:class=>field_setting[:class])
 | 
			
		||||
    else
 | 
			
		||||
      content_tag(:span,row_data.send(field_setting[:method]),:class=>field_setting[:class])
 | 
			
		||||
      content_tag(:span,get_display(row_data,field_setting),:class=>field_setting[:class])
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -357,7 +357,7 @@ namespace :migrate do
 | 
			
		|||
    a.widget_fields = [
 | 
			
		||||
      ["title","announcement.default_widget.title"],
 | 
			
		||||
      ["bulletin_category_with_title","announcement.default_widget.bulletin_category_with_title"],
 | 
			
		||||
      ["postdate_with_format","announcement.default_widget.postdate_with_format"]
 | 
			
		||||
      ["postdate","announcement.default_widget.postdate"]
 | 
			
		||||
      ]
 | 
			
		||||
    a.get_default_widget = {:query=>'Bulletin.all',:image=> 'image'}
 | 
			
		||||
    a.widget_fields_link_method = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -77,11 +77,6 @@ class Bulletin
 | 
			
		|||
    string :bulletin_category_id
 | 
			
		||||
    end
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  def postdate_with_format
 | 
			
		||||
    self[:postdate].strftime("%m/%d/%Y")
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def bulletin_category_with_title
 | 
			
		||||
    self.bulletin_category.title
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,4 +18,4 @@ zh_tw:
 | 
			
		|||
    default_widget:
 | 
			
		||||
        bulletin_category_with_title: 分類
 | 
			
		||||
        title: 標題
 | 
			
		||||
        postdate_with_format: 張貼日期
 | 
			
		||||
        postdate: 張貼日期
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in New Issue