- grouped_editable_elements = @page.editable_elements_grouped_by_blocks = semantic_fields_for(@page) do |f| - unless grouped_editable_elements.empty? #editable-elements .nav - grouped_editable_elements.keys.each_with_index do |name, index| = link_to content_tag(:span, name.try(:humanize) || t('admin.pages.form.default_block')), "#block-#{index}", :id => "block-nav-#{index}", :class => "#{'on' if index == 0}" .clear .wrapper %ul{ :id => "blocks" } - grouped_editable_elements.keys.each_with_index do |name, index| - elements = grouped_editable_elements[name] %li{ :id => "block-#{index}", :class => 'block', :style => "display: #{index == 0 ? 'block' : 'none' }" } %fieldset.inputs %ol - elements.each do |el| = f.fields_for 'editable_elements', el, :child_index => el._index do |g| - case el - when EditableLongText = g.input :content, :label => el.slug.humanize, :hint => el.hint, :as => :text, :input_html => { :class => 'html' } - when EditableShortText = g.input :content, :label => el.slug.humanize, :hint => el.hint - when EditableFile = g.custom_input :source, :label => el.slug.humanize, :hint => el.hint, :css => 'file' do = g.file_field :source - if el.source? %p.remove %strong = link_to File.basename(el.source.url), el.source.url %span  /  != t('admin.pages.form.delete_file') = g.check_box :remove_source