Class: Admin::BlockInstanceController
- Inherits:
-
AdminController
- Object
- AdminController
- Admin::BlockInstanceController
- Defined in:
- app/controllers/admin/block_instance_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/controllers/admin/block_instance_controller.rb', line 25 def create instance = BlockInstance.new instance.system_id = _sid instance.page_id = 0 instance.block_id = params[:id] instance.instance_id = rand(100000000000000000) instance.field_name = 'no_params' instance.field_value = 'no_params' instance.user_id = current_user.id instance.save instance.update_attributes(:instance_id=>"instance_#{instance.id}") redirect_to "/admin/block_instance/#{instance.id}/edit" end |
#edit ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'app/controllers/admin/block_instance_controller.rb', line 68 def edit @instance = BlockInstance.sys(_sid).where(:id=>params[:id]).first @block = @instance.block = BlockInstance.where(:version=>@instance.version).where(:instance_id=>@instance.instance_id).all @fields = [] @block.body.scan(/\[\[([^\]]+)\]\]/) do |field| @fields << field[0] end .each do |option| params[:options] ||= {} params[:options][option.field_name] = option.field_value end end |
#index ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'app/controllers/admin/block_instance_controller.rb', line 3 def index @blocks = BlockInstance.includes(:block, :page).order("instance_id, version").sys(_sid) if params[:block_id] @blocks = @blocks.where(:block_id=>params[:block_id]) @block = Block.find_sys_id(_sid,params[:block_id]) else params[:page_id] ||= "0" @page = Page.where(:id=>params[:page_id].to_i).sys(_sid).first unless params[:page_id]=="0" @blocks = @blocks.where(:page_id=>params[:page_id]).order("block_id, version") @blocks = @blocks.where("version = 0") unless params[:showall] end @blocks = @blocks.page(params[:page]).per(50) end |
#show ⇒ Object
17 18 19 20 21 22 23 |
# File 'app/controllers/admin/block_instance_controller.rb', line 17 def show @instance = BlockInstance.where(:id=>params[:id]).sys(_sid).where(:version=>params[:version] || 0).first if @instance @block = @instance.block = BlockInstance.where(:page_id=>params[:page_id]).where(:version=>@instance.version).where(:instance_id=>@instance.instance_id).sys(_sid).all end end |
#update ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'app/controllers/admin/block_instance_controller.rb', line 40 def update @instance = BlockInstance.sys(_sid).where(:version=>params[:version]).where(:id=>params[:id]).first @block = @instance.block # BlockInstance.delete_all(["instance_id = ? and version = ? and page_id = ?", @instance.instance_id, params[:version], params[:page_id]]) b = nil instance_id = params[:instance_name] @errors = [] params[:options].each do |name, value| b = BlockInstance.sys(_sid).where(:block_id=>@block.id).where(:page_id=>params[:page_id]).where(:field_name=>name).where(:instance_id=>instance_id).where(:version=>params[:version]).first if b @errors << b.errors unless b.update_attributes(:field_value=>value) end end if params[:options] if b == nil b = BlockInstance.sys(_sid).where(:block_id=>@block.id).where(:page_id=>params[:page_id]).where(:field_name=>'no_params').where(:instance_id=>instance_id).where(:version=>params[:version]).first if b @errors << b.errors unless b.update_attributes(:field_value=>'no_params') end end redirect_to "/admin/block_instance/#{b.id}?page_id=#{@instance.page_id}&version=#{params[:version]}" end |