Page form with front end style
This commit is contained in:
1 parent
2f41828abd
commit
42d0afe65c
11 files changed
+214
-194
No files matched your search
@@ -38,7 +38,7 @@ class Admin::ItemsController < OrbitBackendController
|
||||
m = {}
|
||||
m["main"] = [module_app.title, module_app.id.to_s]
|
||||
m["sub"] = module_app.app_pages.map{|name, data| [t(data["i18n"]), name]} rescue []
|
||||
m["sub"] << [I18n.t('default_widget.name'),'default_widget'] if module_app.has_default_widget?
|
||||
m["sub"] << [I18n.t('default_widget.default_widget'),'default_widget'] if module_app.has_default_widget?
|
||||
m["category"] = module_app.categories.map{|category| [category.title, category.id.to_s] } rescue ''
|
||||
m["tags"] = module_app.tags.map{|tag| [tag.name, tag.id.to_s] } rescue ''
|
||||
m["count"] = module_app.get_registration.get_data_count.to_a
|
||||
|
||||
@@ -1,143 +1,51 @@
|
||||
class Admin::PagesController < Admin::ItemsController
|
||||
helper Admin::PagePartsHelper
|
||||
include Admin::FrontendWidgetInterface
|
||||
|
||||
def show
|
||||
@item = Page.find(params[:id])
|
||||
@no_orbit_bar = true
|
||||
@edit = true
|
||||
render :text => parse_page_content(@item), :layout => 'page_layout'
|
||||
end
|
||||
|
||||
def new
|
||||
@item = Page.new(params[:page])
|
||||
@item.parent = Item.find(params[:parent_id]) rescue nil
|
||||
get_variables_for_new
|
||||
render layout: false
|
||||
end
|
||||
|
||||
def edit
|
||||
@item = Page.find(params[:id])
|
||||
get_variables_for_edit
|
||||
render layout: false
|
||||
end
|
||||
|
||||
def reload_themes
|
||||
design = Design.find(params[:design_id])
|
||||
@themes = design.themes
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
end
|
||||
end
|
||||
|
||||
def reload_frontend_pages
|
||||
@item = Page.find(params[:id]) rescue Page.new
|
||||
@selected={
|
||||
:design => nil,
|
||||
:theme=> nil,
|
||||
:module_app=>(ModuleApp.find(params[:module_app_id]) rescue nil),
|
||||
:app_frontend_url=> @item.app_frontend_url || 'default_widget', #@module_apps.first
|
||||
:category=>nil, #fetch by method: get_categories_and_tags
|
||||
:tag=>nil, #fetch by method: get_categories_and_tags
|
||||
:page_frontend_data_count=>nil,
|
||||
:frontend_style => nil
|
||||
}
|
||||
@app_frontend_urls = @selected[:module_app] ? select_array_for_app_frontend_urls(@selected[:module_app].app_pages) : nil
|
||||
|
||||
get_categories_and_tags
|
||||
get_frontend_data_count
|
||||
get_frontend_styles
|
||||
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def reload_front_end_setting
|
||||
@item = Page.find(params[:id]) rescue Page.new
|
||||
|
||||
@categories = nil
|
||||
@tags = nil
|
||||
@page_frontend_data_counts = nil
|
||||
|
||||
@selected={
|
||||
# :design => @item.design || @designs.first,
|
||||
# :theme=> @item.theme,
|
||||
:module_app=>ModuleApp.find(params[:module_app_id]),
|
||||
:app_frontend_url=> params[:frontend] ,
|
||||
:category=>nil, #fetch by method: get_categories_and_tags
|
||||
:tag=>nil, #fetch by method: get_categories_and_tags
|
||||
:page_frontend_data_count=>nil,
|
||||
:frontend_style => nil
|
||||
}
|
||||
@app_frontend_urls = @selected[:module_app].nil? ? nil : @selected[:module_app].app_pages.each{|name,data| [I18n.t(data["i18n"]),name]}
|
||||
@frontend_styles = @selected[:module_app].app_pages[params["frontend"]]["style"] rescue nil
|
||||
|
||||
end
|
||||
|
||||
|
||||
def reload_widget_field
|
||||
@index = params[:field_seri].to_i
|
||||
@item = Page.find(params[:id]) rescue Page.new
|
||||
@selected = {
|
||||
:module_app=> (ModuleApp.find(params[:module_app_id]) || @item.module_app ),
|
||||
:default_widget_field=>params[:widget_field_value]
|
||||
}
|
||||
# @choosen_field = params[:widget_field_value]
|
||||
# @module_app = @item.module_app
|
||||
# @module_app = ModuleApp.find params[:module_app_id] if @module_app.nil?
|
||||
end
|
||||
# helper Admin::PagePartsHelper
|
||||
# include Admin::FrontendWidgetInterface
|
||||
|
||||
def create
|
||||
clean_tags_and_category_params
|
||||
@item = Page.new(params[:page])
|
||||
|
||||
if @item.module_app && @item.module_app.key == 'page_content'
|
||||
@item.page_contexts.build(:create_user_id => current_user.id, :update_user_id => current_user.id )
|
||||
end
|
||||
|
||||
if @item.save
|
||||
flash.now[:notice] = t('create.success.page')
|
||||
respond_to do |format|
|
||||
format.js { render 'admin/items/reload_items' }
|
||||
end
|
||||
render 'admin/items/reload_items'
|
||||
else
|
||||
flash.now[:error] = t('create.error.page')
|
||||
@designs = Design.all.entries
|
||||
@design = Design.find(params[:page][:design]) || Design.first
|
||||
@themes = @design.themes
|
||||
@module_apps = ModuleApp.for_frontend_select
|
||||
@selected={
|
||||
:design => params[:page][:design],
|
||||
:theme=> (Theme.find(params[:page][:theme_id]) rescue nil),
|
||||
:module_app=> (ModuleApp.find(params[:page][:module_app_id]) rescue nil) ,#@module_apps.first
|
||||
:app_frontend_url=> params[:page][:app_frontend_url], #@module_apps.first
|
||||
:category=>params[:page][:category],
|
||||
:tag=>params[:page][:tag],
|
||||
:page_frontend_data_count=>params[:page][:page_frontend_data_count],
|
||||
:frontend_style => params[:page][:frontend_style]
|
||||
}
|
||||
@app_frontend_urls = @item.module_app ? select_array_for_app_frontend_urls(@item.module_app.app_pages) : nil
|
||||
get_categories_and_tags
|
||||
get_frontend_data_count
|
||||
render :action => "new"
|
||||
@error = error_messages_for(@item)
|
||||
render 'admin/items/form_error'
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
clean_tags_and_category_params
|
||||
@item = Page.find(params[:id])
|
||||
if @item.module_app && @item.module_app.key == 'page_content' && @item.page_contexts.blank?
|
||||
@item.page_contexts.build(:create_user_id => current_user.id, :update_user_id => current_user.id )
|
||||
end
|
||||
unless @item.update_attributes(params[:page])
|
||||
if @item.update_attributes(params[:page])
|
||||
render 'admin/items/reload_items'
|
||||
else
|
||||
@error = error_messages_for(@item)
|
||||
render 'admin/items/form_error'
|
||||
end
|
||||
end
|
||||
|
||||
def get_display_style
|
||||
|
||||
@item = Page.find(params[:id]) rescue nil
|
||||
@module_app = ModuleApp.find(params[:module_id]) rescue nil
|
||||
if @module_app
|
||||
if params[:val].eql?("default_widget")
|
||||
@checked_style = @item.frontend_style.present? ? @item.frontend_style : nil if @item && @item.app_frontend_url.eql?("default_widget")
|
||||
@enabled_styles = @module_app.get_default_widget["enabled_styles"]
|
||||
@widget_fields = @module_app.widget_fields.collect do |widget_field|
|
||||
label = I18n.t("#{@module_app.key}.default_widget.#{widget_field[0]}")
|
||||
[label, widget_field[0], class: widget_field[2]]
|
||||
end
|
||||
@class_options = LIST[:widget_field_type].collect{|widget_field| [widget_field.humanize, widget_field]}
|
||||
@partial = 'default_front'
|
||||
else
|
||||
@frontend_styles = @module_app.app_pages[params[:val]]["style"] rescue nil
|
||||
@partial = 'custom_front' if @frontend_styles.present?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def get_page_setting_json
|
||||
@@ -160,56 +68,4 @@ class Admin::PagesController < Admin::ItemsController
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def get_frontend_styles
|
||||
has_old_value = @selected[:module_app].app_pages[@selected[:app_frontend_url]]
|
||||
@frontend_styles = has_old_value ? has_old_value["style"] : (@selected[:module_app].app_pages.first[1]["style"] rescue nil)
|
||||
end
|
||||
|
||||
def get_variables_for_new
|
||||
@designs = Design.all.entries
|
||||
@themes = Design.first.themes
|
||||
@module_apps = ModuleApp.for_frontend_select
|
||||
@app_frontend_urls = nil
|
||||
@categories = nil
|
||||
@tags = nil
|
||||
@page_frontend_data_counts = nil
|
||||
@frontend_styles = nil
|
||||
@selected={
|
||||
:design => @designs.first,
|
||||
:theme=> @themes.first,
|
||||
:module_app=>nil,#@module_apps.first
|
||||
:app_frontend_url=> nil, #@module_apps.first
|
||||
:category=>nil,
|
||||
:tag=>nil,
|
||||
:page_frontend_data_count=>nil,
|
||||
:frontend_style => nil
|
||||
}
|
||||
end
|
||||
|
||||
def get_variables_for_edit
|
||||
@designs = Design.all.entries
|
||||
@themes = @item.design ? @item.design.themes : @designs.first.themes
|
||||
@module_apps = ModuleApp.for_frontend_select
|
||||
@categories = nil
|
||||
@tags = nil
|
||||
@page_frontend_data_counts = nil
|
||||
@frontend_styles = nil
|
||||
|
||||
@selected={
|
||||
:design => @item.design || @designs.first,
|
||||
:theme=> @item.theme,
|
||||
:module_app=>@item.module_app,#@module_apps.first
|
||||
:app_frontend_url=> @item.app_frontend_url, #@module_apps.first
|
||||
:category=>nil, #fetch by method: get_categories_and_tags
|
||||
:tag=>nil, #fetch by method: get_categories_and_tags
|
||||
:page_frontend_data_count=>nil,
|
||||
:frontend_style => nil
|
||||
}
|
||||
@app_frontend_urls = @item.module_app ? select_array_for_app_frontend_urls(@item.module_app.app_pages) : nil
|
||||
get_categories_and_tags
|
||||
get_frontend_data_count
|
||||
end
|
||||
|
||||
end
|
||||
Reference in new issue
Block a user