42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
class DefaultWidgetController< OrbitWidgetController
 | 
						|
 | 
						|
  def front_end_available(var)
 | 
						|
    @page_part = case params[:item_type]
 | 
						|
    when "page"
 | 
						|
      Page.find params[:page_id]
 | 
						|
    when "page_part"
 | 
						|
      PagePart.find params[:part_id]  
 | 
						|
    end
 | 
						|
    @page_part.module_app.enable_frontend?
 | 
						|
  end
 | 
						|
 | 
						|
  def default_widget
 | 
						|
    @tag_class = nil
 | 
						|
 | 
						|
    @default_widget = @page_part.module_app.get_default_widget
 | 
						|
    @widget_image_field = @default_widget["image"] || @default_widget[:image]
 | 
						|
    data_limit = case @page_part
 | 
						|
    when Page
 | 
						|
      @fields = @page_part.frontend_field
 | 
						|
      @page_part.frontend_data_count.is_a?(Fixnum) ? @page_part.frontend_data_count : (@page_part.frontend_data_count.to_i rescue 3)
 | 
						|
    when PagePart
 | 
						|
      @fields = @page_part.widget_field
 | 
						|
      @page_part.widget_data_count.is_a?(Fixnum) ? @page_part.widget_data_count : (@page_part.widget_data_count.to_i rescue 3)
 | 
						|
    end
 | 
						|
    @data = eval(@default_widget["query"]).limit(data_limit).includes(@widget_image_field).desc(:created_at)
 | 
						|
    case params[:type]
 | 
						|
    when "typeA"
 | 
						|
      @tag_class = 'default_widget_typeA'
 | 
						|
      render "typeA"
 | 
						|
    when /typeB_/
 | 
						|
      @tag_class = "default_widget_#{params[:type]}"
 | 
						|
      render "typeB"
 | 
						|
    when "typeC"
 | 
						|
      @tag_class = 'default_widget_typeC'
 | 
						|
      render "typeC"
 | 
						|
    end
 | 
						|
 | 
						|
  end
 | 
						|
 | 
						|
end
 |