orbit4-5/app/controllers/page_parts_controller.rb

70 lines
1.9 KiB
Ruby
Raw Normal View History

2014-04-01 07:10:21 +00:00
class PagePartsController < ApplicationController
before_action :get_key
def new
@part = PagePart.new
@part.sub_parts.build
@part_number = params[:part]
@page_id = params[:page_id]
@modules = ModuleApp.all
2014-04-01 07:10:21 +00:00
end
def edit
page = Page.find(params[:page_id])
@part = page.page_parts.where(:part_id => params[:id]).first
@part.sub_parts.build
@page_id = params[:page_id]
@modules = ModuleApp.all
2014-04-01 07:10:21 +00:00
end
def getwidgets
module_name = params[:module]
2014-04-01 07:10:21 +00:00
@select_number = params[:number_of_select]
@widget_types = []
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_name.downcase.pluralize}/*").each do |w|
2014-04-01 07:10:21 +00:00
w = File.basename(w, ".*")
w = File.basename(w, ".*")
@widget_types << w.gsub("_","") if w != "index" && w != "show"
2014-04-01 07:10:21 +00:00
end
module_name = module_name.downcase.singularize
app = ModuleApp.find_by_key(module_name)
@widget_methods = app.get_registration.get_widget_methods
2014-04-01 07:10:21 +00:00
render :layout => false
end
def info
page = Page.find(params[:page_id])
parts = page.page_parts
data = []
parts.each do |part|
partid = "data-pp=" + part.part_id.to_s
subparts = part.sub_parts
subpart = []
subparts.each do |p|
subpart << {"module" => p.module, "widget" => p.widget_type}
2014-04-01 07:10:21 +00:00
end
data << {"name" => partid, "subparts" => subpart}
end
render :json => {"parts" => data}.to_json
end
def create
@part = PagePart.new(part_params)
@part.save!
redirect_to pages_edit_view_path(:id => params[:page_part][:page_id])
end
def update
@part = PagePart.find(params[:page_part][:page_part_id])
@part.update_attributes(part_params)
redirect_to pages_edit_view_path(:id => params[:page_part][:page_id])
end
private
def part_params
params.require(:page_part).permit(:part_id, :page_id, sub_parts_attributes: [:module, :widget_type,:widget_method, :id])
2014-04-01 07:10:21 +00:00
end
end