Ticket #508: page_editor_modularization.diff

File page_editor_modularization.diff, 4.1 kB (added by igotimac, 1 year ago)

Changes to allow easier modularization of the page editor

  • app/helpers/admin/page_helper.rb

    old new  
    4444  def homepage 
    4545    @homepage ||= Page.find_by_parent_id(nil) 
    4646  end 
     47   
     48  def method_missing(method, *args, &block) 
     49    method_name = method.to_s 
     50    if method_name[0...7] == 'editor_' 
     51      render_editor_partial(method_name.from(7)) 
     52    else 
     53      super 
     54    end 
     55  end 
     56   
     57  def render_editor_partial(named) 
     58    render :partial => 'admin/page/editor/' + named 
     59  end 
     60   
    4761end 
  • app/views/admin/page/editor/_title_fields.rhtml

    old new  
     1<p class="title"> 
     2  <label for="page_title">Page Title</label> 
     3  <%= text_field "page", "title", :class => 'textbox', :maxlength => 255 %> 
     4</p> 
     5<div id="extended-metadata" class="row"<%= meta_visible(:meta) %>> 
     6  <table class="fieldset" cellpadding="0" cellspacing="0" border="0"> 
     7    <% for meta in @meta %> 
     8        <%= render :partial => "meta_row", :object => meta %> 
     9    <% end %> 
     10  </table> 
     11  <script type="text/javascript"> 
     12  // <![CDATA[ 
     13    $title = $('page_title'); 
     14    $slug = $('page_slug'); 
     15    $breadcrumb = $('page_breadcrumb'); 
     16    $old_title = $title.value || ''; 
     17    function title_updated() { 
     18      if ($old_title.toSlug() == $slug.value) $slug.value = $title.value.toSlug(); 
     19      if ($old_title == $breadcrumb.value) $breadcrumb.value = $title.value; 
     20      $old_title = $title.value; 
     21    } 
     22    new Form.Element.Observer('page_title', 0.15, title_updated); 
     23  // ]]> 
     24  </script> 
     25</div> 
     26<p class="more-or-less"> 
     27  <small> 
     28    <a href="#" onclick="<%= toggle_javascript_for('extended-metadata') %>"<%= meta_visible(:meta_more) %> id="more-extended-metadata">More</a> 
     29    <a href="#" onclick="<%= toggle_javascript_for('extended-metadata') %>"<%= meta_visible(:meta_less) %> id="less-extended-metadata">Less</a> 
     30  </small> 
     31</p> 
  • app/views/admin/page/edit.rhtml

    old new  
    107107<h1 id="edit_page">Edit Page</h1> 
    108108<% end -%> 
    109109 
    110 <form method="post" enctype="multipart/form-data"
     110<form method="post" enctype="multipart/form-data" id="page_editor_form"
    111111  <%= hidden_field "page", "lock_version" %> 
    112112  <div class="form-area"> 
    113     <p class="title"> 
    114       <label for="page_title">Page Title</label> 
    115       <%= text_field "page", "title", :class => 'textbox', :maxlength => 255 %> 
    116     </p> 
    117     <div id="extended-metadata" class="row"<%= meta_visible(:meta) %>> 
    118       <table class="fieldset" cellpadding="0" cellspacing="0" border="0"> 
    119         <% for meta in @meta %> 
    120             <%= render :partial => "meta_row", :object => meta %> 
    121         <% end %> 
    122       </table> 
    123       <script type="text/javascript"> 
    124       // <![CDATA[ 
    125         $title = $('page_title'); 
    126         $slug = $('page_slug'); 
    127         $breadcrumb = $('page_breadcrumb'); 
    128         $old_title = $title.value || ''; 
    129         function title_updated() { 
    130           if ($old_title.toSlug() == $slug.value) $slug.value = $title.value.toSlug(); 
    131           if ($old_title == $breadcrumb.value) $breadcrumb.value = $title.value; 
    132           $old_title = $title.value; 
    133         } 
    134         new Form.Element.Observer('page_title', 0.15, title_updated); 
    135       // ]]> 
    136       </script> 
    137     </div> 
    138     <p class="more-or-less"> 
    139       <small> 
    140         <a href="#" onclick="<%= toggle_javascript_for('extended-metadata') %>"<%= meta_visible(:meta_more) %> id="more-extended-metadata">More</a> 
    141         <a href="#" onclick="<%= toggle_javascript_for('extended-metadata') %>"<%= meta_visible(:meta_less) %> id="less-extended-metadata">Less</a> 
    142       </small> 
    143     </p> 
     113        <%= editor_title_fields %> 
     114 
    144115    <div id="tab-control"> 
    145116      <div id="tabs" class="tabs"> 
    146117        <div id="tab-toolbar">