diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb index cd5e00c9..8e8a4e6b 100644 --- a/app/controllers/admin/tags_controller.rb +++ b/app/controllers/admin/tags_controller.rb @@ -46,12 +46,16 @@ class Admin::TagsController < OrbitBackendController protected - def set_module_app - @module_app ||= ModuleApp.first(:conditions => {:key => @app_title.underscore}) rescue nil - end - def get_tags @tags = (@module_app ? @module_app.tags : Tag.all) end + + def setup_vars + @app_key = request.env['HTTP_REFERER'].split('/')[4] + if @app_key + @app_key.gsub!(/[?].*/, '') + @module_app = ModuleApp.first(conditions: {:key => @app_key}) + end + end end diff --git a/app/controllers/default_widget_controller.rb b/app/controllers/default_widget_controller.rb new file mode 100644 index 00000000..77887e8e --- /dev/null +++ b/app/controllers/default_widget_controller.rb @@ -0,0 +1,45 @@ +class DefaultWidgetController< OrbitWidgetController + + def front_end_available(var) + @page_part = PagePart.find params[:part_id] + @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] + data_limit = @page_part.widget_data_count.is_a?(Fixnum) ? @page_part.widget_data_count : (@page_part.widget_data_count.to_i rescue 3) + @data = eval(@default_widget[:query]).limit(data_limit).includes(@widget_image_field) + @fields = @page_part.widget_field + +# binding.pry + + case params[:type] + when "typeA" + @tag_class = 'defulat_widget_typeA' + render "typeA" + when /typeB_/ + @tag_class = "defulat_widget_#{params[:type]}" + render "typeB" + when "typeC" + @tag_class = 'defulat_widget_typeC' + render "typeC" + end + + + + # {"inner"=>"true", + # "category_id"=>"false", + # "tag_id"=>"", + # "page"=>"", + # "search_query"=>"", + # "part_title"=>"", + # "part_id"=>"50ac426f83e75219d20000a7", + # "controller"=>"default_widget", + # "action"=>"default_widget", + # "type"=>"typeA"} + end + +end diff --git a/app/models/item.rb b/app/models/item.rb index 1809e2b2..6b34d8b8 100644 --- a/app/models/item.rb +++ b/app/models/item.rb @@ -47,10 +47,10 @@ class Item new_parent = Item.find(new_parent) current_position_sibling = find_by_parent_and_position(new_parent, position.to_i) if current_position_sibling - current_position_sibling.at_bottom? ? move_below(current_position_sibling) : move_above(current_position_sibling) + move_above(current_position_sibling) elsif self.parent != new_parent self.parent = new_parent - save! + save end end end diff --git a/app/models/module_app.rb b/app/models/module_app.rb index 50a6c268..d0cd8886 100644 --- a/app/models/module_app.rb +++ b/app/models/module_app.rb @@ -30,6 +30,13 @@ class ModuleApp before_save :set_key + #>>>>>>>>>>>>> remove after app config applied + def get_default_widget + {:query=>'Bulletin.all',:image=> 'image'} + end + #<<<<<<<<<<<<@@ + + def is_manager?(user) managing_users.include?(user) end diff --git a/app/models/page.rb b/app/models/page.rb index 5c1a7b24..bc257eaa 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -24,14 +24,12 @@ class Page < Item has_many :page_metas, :autosave => true, :dependent => :destroy accepts_nested_attributes_for :page_parts, :allow_destroy => true - before_save :delete_empty_frontend_field before_save :create_parts, if: Proc.new { |page| page.new_record? || page.design_id_changed? } - after_save :generate_html + before_save :delete_empty_frontend_field, :generate_html -# protected + protected def create_parts - page_design = self.design parent = self.parent menu_part = parent.page_parts.detect{|page_part| page_part.kind.eql?('public_r_tag') && page_part.public_r_tag.eql?('sub_menu') && page_part.public_r_tag_object_id.eql?(parent.id.to_s)} if parent @@ -73,10 +71,7 @@ class Page < Item end def generate_html - Page.without_callback(:save, :after, :generate_html) do - self.content_translations = parse_page_noko(self, Site.first) - self.save - end + self.content_translations = parse_page_noko(self, Site.first) end end diff --git a/app/views/default_widget/typeA.html.erb b/app/views/default_widget/typeA.html.erb new file mode 100644 index 00000000..22422516 --- /dev/null +++ b/app/views/default_widget/typeA.html.erb @@ -0,0 +1,19 @@ +<%= content_tag :div,:class=>@tag_class do%> +