- if params[:sortable] == 'on' %h1 Sort Your Page Blocks %p tip: give your page blocks a name to more easily sort them. = form_for @page, url: admin_page_path(@page) do |f| %ul.sortable.list-unstyled = f.fields_for :page_blocks, f.object.page_blocks.order(:order) do |ff| %li %h4 %span.glyphicon.glyphicon-menu-hamburger = ff.object.div_id = ff.hidden_field :order, class: 'block-order' = f.submit 'Save', class: 'btn btn-primary center-block' - else = form_for @page, url: admin_page_path(@page) do |f| %div.row %div.col-md-8 %span %h2 Edit = @page.title = link_to 'Preview', slugged_path(@page), class: 'btn btn-default btn-xs' = link_to 'Sort', edit_admin_page_path(@page, sortable: 'on'), class: 'btn btn-default btn-xs' = f.label 'Show in top navbar ' = f.check_box :navbar_show = f.label 'Show in sidebar ' = f.check_box :sidebar_show = f.text_field :title, placeholder: 'page title', class: 'form-control big' = f.text_field :meta_tags, placeholder: 'meta tags', class: 'form-control inline-form' = f.text_field :meta_description, placeholder: 'meta description', class: 'form-control inline-form' = f.select(:parent_id, PagesCms::Page.where(parent_id: nil).collect {|p| [p.title, p.id] }, {include_blank: 'Is a sub-page of'}, class: 'form-control inline-form') = f.submit 'Save', class: 'btn btn-primary inline-form' %div = f.fields_for :page_blocks, f.object.page_blocks.order(:order) do |page_block| = render 'page_block_fields', f: page_block %hr = link_to_add_association 'Add Block', f, :page_blocks %div.col-md-3 %h4 Sidebar = f.fields_for :sidebar, @sidebar do |ss| = render 'editor', f: ss = ss.label 'Show sidebar on this page' = ss.check_box :show = ss.select(:use_instead, PagesCms::Page.all.includes(:sidebar).collect {|p| [p.title, p.sidebar.id] unless p.sidebar.nil? }, {include_blank: 'Use this sidebar instead'}, class: 'form-control inline-form', id: 'select_sid') = f.submit 'Save', class: 'btn btn-primary center-block' :javascript $( document ).ready(function() { $('.sortable').sortable(); $('.sortable').sortable().bind('sortupdate', function() { $('.block-order').each(function(i){ $(this).val(i+1) }) }); }) function addOption(id,target) { var x = document.getElementById(id + random); var option = document.createElement("option"); option.text = document.getElementById(target + random).value; x.add(option); } = javascript_include_tag 'pages_cms/sortable.js'