first version of multi categories and tags
This commit is contained in:
1 parent
96455f31e1
commit
b315215bed
12 files changed
+142
-34
No files matched your search
@@ -54,6 +54,7 @@ class Admin::PagePartsController < ApplicationController
|
||||
end
|
||||
|
||||
def update
|
||||
binding.pry
|
||||
@part = PagePart.find(params[:id])
|
||||
params[:page_part][:widget_field] = params[:page_part][:widget_field].zip( params[:page_part][:widget_field_type],params[:page_part][:widget_field_is_link] )
|
||||
|
||||
@@ -63,6 +64,17 @@ class Admin::PagePartsController < ApplicationController
|
||||
if params[:page_part][:module_app].blank?
|
||||
params[:page_part][:module_app] = nil
|
||||
end
|
||||
|
||||
if params[:page_part][:tag].include?("nil")
|
||||
params[:page_part][:tag] = []
|
||||
end
|
||||
|
||||
if params[:page_part][:category].include?("nil")
|
||||
params[:page_part][:category] = []
|
||||
end
|
||||
|
||||
|
||||
|
||||
if @part.update_attributes(params[:page_part])
|
||||
set_children_sub_menu(@part) if @part.public_r_tag && @part.public_r_tag.eql?('sub_menu')
|
||||
flash.now[:notice] = t('update.success.content')
|
||||
|
||||
@@ -97,6 +97,14 @@ helper Admin::PagePartsHelper
|
||||
params[:page][:frontend_field] = params[:page][:frontend_field].zip( params[:page][:frontend_field_type] ) if params[:page][:frontend_field]
|
||||
params[:page][:frontend_field_type] = nil
|
||||
|
||||
if params[:page][:tag].include?("nil")
|
||||
params[:page][:tag] = []
|
||||
end
|
||||
|
||||
if params[:page][:category].include?("nil")
|
||||
params[:page][:category] = []
|
||||
end
|
||||
|
||||
if @item.update_attributes(params[:page])
|
||||
flash[:notice] = t('update.success.page')
|
||||
respond_to do |format|
|
||||
|
||||
@@ -10,31 +10,60 @@ class DefaultWidgetController< OrbitWidgetController
|
||||
@page_part.module_app.enable_frontend?
|
||||
end
|
||||
|
||||
def query_for_default_widget
|
||||
ori_class_name = @default_widget["query"].split('.')[0]
|
||||
result = nil
|
||||
result_objects = nil
|
||||
if !params["tag_id"].blank?
|
||||
@tags = Tag.find(params["tag_id"]) rescue nil
|
||||
result_ids = nil
|
||||
if params["category_id"].blank?
|
||||
result_ids = @tags.collect{|tag| tag.send(ori_class_name.downcase.pluralize).entries.collect{|t| t.id}}.flatten
|
||||
else
|
||||
result_ids = @tags.collect{|tag| tag.send(ori_class_name.downcase.pluralize).where(:category_id=>params["category_id"]).available_for_lang(I18n.locale).can_display.collect{|t| t.id}}.flatten
|
||||
end
|
||||
result = eval("#{ori_class_name}.where(:id=>result_ids)")
|
||||
elsif params["category_id"].blank?
|
||||
result = eval(@default_widget["query"])
|
||||
else
|
||||
result = eval("#{ori_class_name}.where(:category_id=>params['category_id'])")
|
||||
end
|
||||
result.available_for_lang(I18n.locale).can_display
|
||||
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
|
||||
@default_widget = @page_part.module_app.get_default_widget
|
||||
@widget_image_field = @default_widget["image"] || @default_widget[:image]
|
||||
case @page_part
|
||||
when Page
|
||||
@fields = @page_part.frontend_field
|
||||
@data_limit = @page_part.frontend_data_count.is_a?(Fixnum) ? @page_part.frontend_data_count : (@page_part.frontend_data_count.to_i rescue 3)
|
||||
@paginate = true
|
||||
@page_id = @page_part.id
|
||||
when PagePart
|
||||
@fields = @page_part.widget_field
|
||||
@data_limit = @page_part.widget_data_count.is_a?(Fixnum) ? @page_part.widget_data_count : (@page_part.widget_data_count.to_i rescue 3)
|
||||
end
|
||||
if @paginate
|
||||
@data = query_for_default_widget.includes(@widget_image_field).page(params[:page_main]).per(@data_limit)
|
||||
else
|
||||
@data = query_for_default_widget.limit(@data_limit).includes(@widget_image_field)
|
||||
end
|
||||
case params[:type]
|
||||
when "typeA"
|
||||
@tag_class = 'default_widget_typeA'
|
||||
@partial = "typeA"
|
||||
render "typeA"
|
||||
when /typeB_/
|
||||
@tag_class = "default_widget_#{params[:type]}"
|
||||
@partial = "typeB"
|
||||
render "typeB"
|
||||
when "typeC"
|
||||
@tag_class = 'default_widget_typeC'
|
||||
@partial = "typeC"
|
||||
render "typeC"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
Reference in new issue
Block a user