forked from saurabh/orbit4-5
72 lines
2.0 KiB
Ruby
72 lines
2.0 KiB
Ruby
|
class PagePartsController < ApplicationController
|
||
|
before_action :get_key
|
||
|
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
|
||
|
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
|
||
|
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|
|
||
|
w = File.basename(w, ".*")
|
||
|
w = File.basename(w, ".*")
|
||
|
@widgets << w.gsub("_","") if w != "index" && w != "show"
|
||
|
end
|
||
|
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}
|
||
|
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, :id])
|
||
|
end
|
||
|
|
||
|
end
|