orbit-basic/app/controllers/admin/pages_controller.rb

203 lines
5.8 KiB
Ruby
Raw Normal View History

class Admin::PagesController < Admin::ItemsController
helper Admin::PagePartsHelper
2013-04-01 09:06:10 +00:00
include Admin::FrontendWidgetInterface
def show
@item = Page.find(params[:id])
2011-05-13 01:08:42 +00:00
respond_to do |format|
format.html {
render 'admin/items/index'
}
format.js {}
end
end
def new
@item = Page.new
2012-02-17 06:54:11 +00:00
@item.parent = Item.find(params[:parent_id]) rescue nil
2013-04-01 09:06:10 +00:00
# @apps = ModuleApp.for_frontend_select
@designs = Design.all.entries
2013-04-01 09:06:10 +00:00
@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 edit
2013-03-11 10:21:17 +00:00
@item = Page.find(params[:id])
2013-04-01 09:06:10 +00:00
@designs = Design.all.entries
2013-04-01 09:06:10 +00:00
@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
2013-01-21 08:56:37 +00:00
2013-04-01 09:06:10 +00:00
def reload_themes
design = Design.find(params[:design_id])
@themes = design.themes
respond_to do |format|
format.js {}
end
end
2013-04-01 09:06:10 +00:00
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
2013-04-01 09:06:10 +00:00
get_categories_and_tags
get_frontend_data_count
get_frontend_styles
respond_to do |format|
format.js {}
2012-04-29 22:27:38 +00:00
end
end
2013-04-01 09:06:10 +00:00
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 ),
2013-04-01 09:06:10 +00:00
: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
def create
2013-04-01 09:06:10 +00:00
clean_tags_and_category_params
@item = Page.new(params[:page])
2012-02-21 11:22:42 +00:00
2012-05-22 06:45:49 +00:00
if @item.module_app && @item.module_app.key == 'page_content'
2012-02-21 11:22:42 +00:00
@item.page_contexts.build(:create_user_id => current_user.id, :update_user_id => current_user.id )
end
if @item.save
2012-09-12 11:12:50 +00:00
flash.now[:notice] = t('create.success.page')
2011-06-01 02:24:14 +00:00
respond_to do |format|
format.html {
2011-06-01 04:00:41 +00:00
redirect_to admin_page_url(@item)
2011-06-01 02:24:14 +00:00
}
format.js {}
2011-06-01 02:24:14 +00:00
end
2010-01-04 09:49:55 +00:00
else
2012-09-12 11:12:50 +00:00
flash.now[:error] = t('create.error.page')
2012-02-17 06:54:11 +00:00
@designs = Design.all.entries
@design = Design.first
2011-06-01 02:24:14 +00:00
render :action => "new"
end
end
def update
2013-04-01 09:06:10 +00:00
clean_tags_and_category_params
@item = Page.find(params[:id])
2012-02-24 11:11:51 +00:00
2013-01-21 08:56:37 +00:00
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
if @item.update_attributes(params[:page])
2012-09-12 11:12:50 +00:00
flash[:notice] = t('update.success.page')
respond_to do |format|
format.html {
redirect_to admin_page_url(@item)
}
format.js {}
end
else
render :action => "edit"
end
end
def destroy
@item = Page.find(params[:id])
@item.destroy
2011-06-01 04:00:41 +00:00
respond_to do |format|
format.html {
redirect_to admin_items_url( :parent_id => @item.parent_id )
}
2012-05-22 06:45:49 +00:00
format.js { redirect_to admin_items_url }
2011-06-01 04:00:41 +00:00
end
end
def delete
2012-05-22 06:45:49 +00:00
@item = Page.find(params[:id])
@item.destroy
2011-06-01 04:00:41 +00:00
respond_to do |format|
format.html {}
2012-05-22 06:45:49 +00:00
format.js { @item = @item.parent }
2011-06-01 04:00:41 +00:00
end
end
2013-01-21 08:56:37 +00:00
2013-04-01 09:06:10 +00:00
protected
2013-04-01 09:06:10 +00:00
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)
2013-01-21 08:56:37 +00:00
end
end