2014-04-01 07:10:21 +00:00
|
|
|
class PagePartsController < ApplicationController
|
|
|
|
before_action :get_key
|
|
|
|
def new
|
2014-05-29 10:32:27 +00:00
|
|
|
@part = part_model.new
|
2014-04-01 07:10:21 +00:00
|
|
|
@part.sub_parts.build
|
|
|
|
@part_number = params[:part]
|
|
|
|
@page_id = params[:page_id]
|
2014-05-22 11:19:25 +00:00
|
|
|
@modules = ModuleApp.widget_enabled
|
|
|
|
@no_orbit_bar = @no_side_bar = true
|
|
|
|
@select_number = 0
|
|
|
|
@html_class = "page-parts"
|
2014-04-30 10:57:09 +00:00
|
|
|
render :layout => "structure"
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def edit
|
|
|
|
page = Page.find(params[:page_id])
|
2014-05-29 10:32:27 +00:00
|
|
|
parts = $mobile.blank? ? page.page_parts : page.mobile_page_parts
|
|
|
|
@part = parts.where(:part_id => params[:id]).first
|
2014-04-01 07:10:21 +00:00
|
|
|
@part.sub_parts.build
|
|
|
|
@page_id = params[:page_id]
|
2014-05-22 11:19:25 +00:00
|
|
|
@part_number = params[:id]
|
|
|
|
@select_number = @part.sub_parts.count
|
|
|
|
@modules = ModuleApp.widget_enabled
|
2014-04-30 10:57:09 +00:00
|
|
|
@no_orbit_bar = @no_side_bar = true
|
2014-05-22 11:19:25 +00:00
|
|
|
@html_class = "page-parts"
|
2014-04-30 10:57:09 +00:00
|
|
|
render :layout => "structure"
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
|
|
|
|
2014-05-22 11:19:25 +00:00
|
|
|
def edit_sub_part
|
2014-05-29 10:32:27 +00:00
|
|
|
@part = part_model.find(params[:part_id])
|
2014-05-22 11:19:25 +00:00
|
|
|
@subpart = SubPart.find(params[:sub_part_id])
|
|
|
|
@select_number = @part.sub_parts.index(@subpart)
|
|
|
|
@kind = @subpart.kind
|
|
|
|
@modules = ModuleApp.widget_enabled
|
|
|
|
if @kind == "module_widget"
|
|
|
|
@widget_types = []
|
|
|
|
module_name = @subpart.module
|
|
|
|
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_name.downcase}/*").each do |w|
|
2014-05-29 04:08:56 +00:00
|
|
|
next if File.ftype(w).eql?("directory")
|
2014-05-22 11:19:25 +00:00
|
|
|
w = File.basename(w, ".*")
|
|
|
|
w = File.basename(w, ".*")
|
|
|
|
@widget_types << w.gsub("_","") if w != "index" && w != "show"
|
|
|
|
end
|
|
|
|
|
|
|
|
app = ModuleApp.find_by_key(module_name)
|
|
|
|
@categories = app.categories
|
|
|
|
@widget_methods = app.get_registration.get_widget_methods
|
|
|
|
@widget_settings = app.get_registration.get_widget_settings
|
|
|
|
@data_count = nil
|
|
|
|
if !@widget_settings.blank?
|
|
|
|
@data_count = @widget_settings["data_count"] rescue nil
|
|
|
|
if !@widget_settings['override_category_with'].nil?
|
|
|
|
@custom = @widget_settings['override_category_with'].classify.constantize.all
|
|
|
|
@multiselect = @widget_settings['multiselect'] rescue true
|
|
|
|
@display_field = @widget_settings['display_field']
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@no_orbit_bar = @no_side_bar = true
|
|
|
|
@html_class = "page-parts"
|
|
|
|
render :layout => "structure"
|
|
|
|
end
|
|
|
|
|
|
|
|
def update_sub_part
|
|
|
|
subpart = SubPart.find(params[:id])
|
|
|
|
p = part_params["sub_parts_attributes"]
|
|
|
|
keys = p.keys
|
|
|
|
final_params = {}
|
|
|
|
keys.each do |key|
|
|
|
|
p["#{key}"].each do |k,value|
|
|
|
|
final_params["#{k}"] = value
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if final_params["kind"] == "none"
|
2014-06-04 07:25:04 +00:00
|
|
|
page_part = subpart.page_part
|
2014-05-22 11:19:25 +00:00
|
|
|
subpart.destroy
|
2014-06-04 07:25:04 +00:00
|
|
|
if page_part.sub_parts.count == 0
|
|
|
|
page_part.destroy
|
|
|
|
end
|
2014-05-22 11:19:25 +00:00
|
|
|
else
|
|
|
|
subpart.update_attributes(final_params)
|
|
|
|
end
|
|
|
|
render :json => {"success"=>true}.to_json
|
|
|
|
end
|
|
|
|
|
2014-04-01 07:10:21 +00:00
|
|
|
def getwidgets
|
|
|
|
module_name = params[:module]
|
2014-05-29 10:32:27 +00:00
|
|
|
part = part_model.where(:part_id => params[:part_id], :page_id => params[:page_id]).first
|
2014-05-22 11:19:25 +00:00
|
|
|
@select_number = part.sub_parts.count rescue 0
|
2014-04-02 12:08:27 +00:00
|
|
|
@widget_types = []
|
2014-04-15 04:49:38 +00:00
|
|
|
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_name.downcase}/*").each do |w|
|
2014-05-29 04:08:56 +00:00
|
|
|
next if File.ftype(w).eql?("directory")
|
2014-04-01 07:10:21 +00:00
|
|
|
w = File.basename(w, ".*")
|
|
|
|
w = File.basename(w, ".*")
|
2014-04-02 12:08:27 +00:00
|
|
|
@widget_types << w.gsub("_","") if w != "index" && w != "show"
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
2014-04-02 12:08:27 +00:00
|
|
|
module_name = module_name.downcase.singularize
|
|
|
|
app = ModuleApp.find_by_key(module_name)
|
2014-05-22 11:19:25 +00:00
|
|
|
@categories = app.categories
|
2014-04-02 12:08:27 +00:00
|
|
|
@widget_methods = app.get_registration.get_widget_methods
|
2014-05-22 11:19:25 +00:00
|
|
|
@widget_settings = app.get_registration.get_widget_settings
|
|
|
|
@data_count = nil
|
|
|
|
if !@widget_settings.blank?
|
|
|
|
@data_count = @widget_settings["data_count"] rescue nil
|
|
|
|
if !@widget_settings['override_category_with'].nil?
|
|
|
|
@custom = @widget_settings['override_category_with'].classify.constantize.all
|
|
|
|
@multiselect = @widget_settings['multiselect'] rescue true
|
|
|
|
@display_field = @widget_settings['display_field']
|
|
|
|
end
|
|
|
|
end
|
2014-04-01 07:10:21 +00:00
|
|
|
render :layout => false
|
|
|
|
end
|
|
|
|
|
|
|
|
def info
|
|
|
|
page = Page.find(params[:page_id])
|
2014-05-29 10:32:27 +00:00
|
|
|
parts = OrbitHelper.is_mobile_view ? page.mobile_page_parts : page.page_parts
|
2014-04-01 07:10:21 +00:00
|
|
|
data = []
|
|
|
|
parts.each do |part|
|
|
|
|
partid = "data-pp=" + part.part_id.to_s
|
|
|
|
subparts = part.sub_parts
|
|
|
|
subpart = []
|
|
|
|
subparts.each do |p|
|
2014-05-22 11:19:25 +00:00
|
|
|
subpart << {"module" => p.module, "widget" => p.widget_type, "id" => p.id.to_s, "kind" => p.kind}
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
2014-05-22 11:19:25 +00:00
|
|
|
data << {"name" => partid, "subparts" => subpart, "id" => part.id.to_s}
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
|
|
|
render :json => {"parts" => data}.to_json
|
|
|
|
end
|
|
|
|
|
|
|
|
def create
|
2014-05-29 10:32:27 +00:00
|
|
|
@part = part_model.new(part_params)
|
2014-04-01 07:10:21 +00:00
|
|
|
@part.save!
|
2014-05-22 11:19:25 +00:00
|
|
|
render :json => {"success"=>true}.to_json
|
|
|
|
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def update
|
2014-05-29 10:32:27 +00:00
|
|
|
@part = part_model.find(params[:part_id])
|
2014-04-01 07:10:21 +00:00
|
|
|
@part.update_attributes(part_params)
|
2014-05-22 11:19:25 +00:00
|
|
|
render :json => {"success"=>true}.to_json
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def part_params
|
2014-05-22 11:19:25 +00:00
|
|
|
params.require(:page_part).permit!
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|
|
|
|
|
2014-05-29 10:32:27 +00:00
|
|
|
def part_model
|
|
|
|
$mobile.blank? ? "page_part".classify.constantize : "mobile_page_part".classify.constantize
|
|
|
|
end
|
|
|
|
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|