<% update_on_close = false @block.block_type.children.each do |bt| update_on_close = true if bt.field_type == 'image' || bt.field_type == 'file' end crumbs = [] b = @block while b href = b.id == @block.id ? "#" : "/admin/pages/#{b.page_id}/blocks/#{b.id}/edit" #onclick = b.id == @block.id ? " onclick=\"$('#advanced').slideToggle(100, function() { modal.autosize(); });\"" : '' text = b.name ? "#{b.block_type.description} (#{b.name})" : b.block_type.description #crumbs << "<a href=\"#{href}\"#{onclick}>#{text}</a>" crumbs << "<a href=\"#{href}\">#{text}</a>" b = b.parent end %> <!--<h2 style='margin-top: 0; padding-top: 0;'>Edit <%= @block.name ? @block.name : @block.block_type.description %></h2>--> <h2 style='margin-top: 0; padding-top: 0;'><%= raw crumbs.reverse.join(' > ') %></h2> <% if @block.block_type.use_render_function_for_layout %> <!-- Start --> <% str = @block.render(@block, { :modal => true, :empty_text => '[Empty, click to edit]', :editing => true, :view => self, :controller_view_content => yield, :css => '|CABOOSE_CSS|', :js => '|CABOOSE_JAVASCRIPT|', :csrf_meta_tags => '|CABOOSE_CSRF|', :csrf_meta_tags2 => '|CABOOSE_CSRF|', :logged_in_user => @logged_in_user, :site => @site }) str.gsub!('|CABOOSE_CSS|' , yield(:css)) str.gsub!('|CABOOSE_JAVASCRIPT|' , yield(:js)) str.gsub!('|CABOOSE_CSRF|' , csrf_meta_tags) %><%= raw str %> <!-- Stop --> <% elsif @block.block_type.field_type != 'block' %> <p><div id='block_<%= @block.id %>_value'></div></p> <% else %> <% if @block.children.count > 0 %> <% @block.children.each do |b| %> <% if b.block_type.field_type != 'block' && b.block_type.field_type != 'richtext' %> <p><div id='block_<%= b.id %>_value'></div></p> <% else %> <% str = @block.render(b, { :modal => true, :empty_text => '[Empty, click to edit]', :editing => true, :view => self, :controller_view_content => yield, :css => '|CABOOSE_CSS|', :js => '|CABOOSE_JAVASCRIPT|', :csrf_meta_tags => '|CABOOSE_CSRF|', :csrf_meta_tags2 => '|CABOOSE_CSRF|', :logged_in_user => @logged_in_user, :site => @site }) str.gsub!('|CABOOSE_CSS|' , yield(:css)) str.gsub!('|CABOOSE_JAVASCRIPT|' , yield(:js)) str.gsub!('|CABOOSE_CSRF|' , csrf_meta_tags) %><%= raw str %> <% end %> <% end %> <% else %> <p>This block doesn't have any content yet.</p> <% end %> <% if @block.block_type.allow_child_blocks %> <a href='/admin/pages/<%= @block.page_id %>/blocks/<%= @block.id %>/new'>Add a child block!</a> <% end %> <% end %> <div id='message'></div> <p> <input type='button' value='Close' onclick="<% if update_on_close %>parent.controller.render_blocks();<% end %>modal.close();" /> <% if @block.name.nil? %> <input type='button' value='Delete Block' onclick="controller.delete_block();" /> <% end %> <input type='button' value='Move Up' onclick="controller.move_up();" /> <input type='button' value='Move Down' onclick="controller.move_down();" /> <input type='button' value='Advanced' onclick="window.location='/admin/pages/<%= @block.page_id %>/blocks/<%= @block.id %>/advanced';" /> </p> <% content_for :caboose_css do %> <style type='text/css'> .block { border: #ccc 1px dotted; } #block_<%= @block.id %>_block_type_id_container { } </style> <% end %> <% content_for :caboose_js do %> <%= javascript_include_tag "caboose/model/all" %> <%= javascript_include_tag "caboose/admin_block_edit" %> <script type='text/javascript'> var modal = false; $(window).load(function() { modal = new CabooseModal(800); }); <% #b = @block, nil, { # :include => [ # :block_type, # :children => { :include => :block_type } # ] #}) #b.image %> var controller = false; $(document).ready(function() { modal = new CabooseModal(800); controller = new BlockController({ block: <%= raw Caboose.json(@block.js_hash) %>, authenticity_token: '<%= form_authenticity_token %>', modal: modal }); }); </script> <% if @block.block_type.field_type == 'richtext' %> <script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script> <%= tinymce :caboose, :width => '800px', :height => '300px' %> <% end %> <% end %>