diff --git a/app/controllers/page_parts_controller.rb b/app/controllers/page_parts_controller.rb index 5615b9f..b21b978 100644 --- a/app/controllers/page_parts_controller.rb +++ b/app/controllers/page_parts_controller.rb @@ -3,34 +3,32 @@ class PagePartsController < ApplicationController def new @part = PagePart.new @part.sub_parts.build - @modules = [] @part_number = params[:part] @page_id = params[:page_id] - Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/*").each do |m| - @modules << m.gsub("#{Rails.root}/app/templates/#{@key}/modules/","") - end + @modules = ModuleApp.all end def edit page = Page.find(params[:page_id]) @part = page.page_parts.where(:part_id => params[:id]).first @part.sub_parts.build - @modules = [] @page_id = params[:page_id] - Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/*").each do |m| - @modules << m.gsub("#{Rails.root}/app/templates/#{@key}/modules/","") - end + @modules = ModuleApp.all end def getwidgets module_name = params[:module] + @select_number = params[:number_of_select] - @widgets = [] - Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_name}/*").each do |w| + @widget_types = [] + Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_name.downcase.pluralize}/*").each do |w| w = File.basename(w, ".*") w = File.basename(w, ".*") - @widgets << w.gsub("_","") if w != "index" && w != "show" + @widget_types << w.gsub("_","") if w != "index" && w != "show" end + module_name = module_name.downcase.singularize + app = ModuleApp.find_by_key(module_name) + @widget_methods = app.get_registration.get_widget_methods render :layout => false end @@ -43,7 +41,7 @@ class PagePartsController < ApplicationController subparts = part.sub_parts subpart = [] subparts.each do |p| - subpart << {"module" => p.module, "widget" => p.widget} + subpart << {"module" => p.module, "widget" => p.widget_type} end data << {"name" => partid, "subparts" => subpart} end @@ -66,7 +64,7 @@ class PagePartsController < ApplicationController private def part_params - params.require(:page_part).permit(:part_id, :page_id, sub_parts_attributes: [:module, :widget, :id]) + params.require(:page_part).permit(:part_id, :page_id, sub_parts_attributes: [:module, :widget_type,:widget_method, :id]) end end \ No newline at end of file diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 865f57a..611bf24 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -44,7 +44,8 @@ class PagesController < ApplicationController OrbitHelper.set_params params OrbitHelper.set_site_locale locale - render render_final_page("#{module_app}/#{params[:target_action]}",page) + # render render_final_page("#{module_app}/#{params[:target_action]}",page) + render :html => render_final_page("#{module_app}/#{params[:target_action]}",page).html_safe end end @@ -79,7 +80,7 @@ class PagesController < ApplicationController partials = [] subparts.each do |subpart| # partials << render_to_string(:partial => get_widget_path(widget_path)) - partials << render_widget_for_frontend(params[:target_controller],"widget",subpart.widget) + partials << render_widget_for_frontend(params[:target_controller],subpart.widget_method,subpart.widget_type) end @part_partials["data-pp='#{part.part_id}'"] = partials end @@ -100,17 +101,17 @@ class PagesController < ApplicationController pp.inner_html = html_string end - viewarea = doc.css("*[data-content='true']") - viewarea = viewarea[0] + viewarea = doc.css("*[data-content='true']")[0] viewarea.inner_html = render_to_string(original_view) - newlayout = "#{page.name}_layout.html.erb" - file_path = File.join(Rails.root, 'app', 'views', 'frontend', newlayout) + # newlayout = "#{page.name}_layout.html.erb" + # file_path = File.join(Rails.root, 'app', 'views', 'frontend', newlayout) - f = File.open(file_path,"w") - f.write(doc.to_html) - f.close - view_to_render = "frontend/#{newlayout}" - view_to_render + # f = File.open(file_path,"w") + # f.write(doc.to_html) + # f.close + # view_to_render = "frontend/#{newlayout}" + # view_to_render + doc.to_html end def get_widget_path(widget) diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index bd9072c..81c4843 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -12,7 +12,7 @@ module PagesHelper end def render_widget_for_frontend(controller_name, widget_method, widget_file) - file = File.open(File.join(Rails.root, 'app', 'templates', "#{Template::KEY}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb")) + file = File.open(File.join(Rails.root, 'app', 'templates', "#{Template::KEY}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb")) doc = Nokogiri::HTML(file, nil, "UTF-8") file.close wrap_elements = doc.css("*[data-repeat]") diff --git a/app/models/module_app.rb b/app/models/module_app.rb index 6c38fac..4b02359 100644 --- a/app/models/module_app.rb +++ b/app/models/module_app.rb @@ -2,5 +2,13 @@ class ModuleApp include Mongoid::Document field :title, type: String field :key, type: String - field :widget_methods, type: Array + + + def get_registration + OrbitApp::Module::Registration.find_by_key(key) + end + + def self.find_by_key(key) + self.find_by(:key => key) + end end diff --git a/app/models/sub_part.rb b/app/models/sub_part.rb index 6f49abc..97e14c6 100644 --- a/app/models/sub_part.rb +++ b/app/models/sub_part.rb @@ -3,7 +3,8 @@ class SubPart include Mongoid::Timestamps field :module - field :widget + field :widget_type + field :widget_method belongs_to :page_part end \ No newline at end of file diff --git a/app/views/frontend/News_layout.html.erb b/app/views/frontend/News_layout.html.erb deleted file mode 100644 index 9ee851e..0000000 --- a/app/views/frontend/News_layout.html.erb +++ /dev/null @@ -1,83 +0,0 @@ - - -
- - - - -