Changeset 957

Show
Ignore:
Timestamp:
11/11/07 21:59:05 (10 months ago)
Author:
iv..@gweezlebur.com
Message:

fix other failing spec, change links to use slug instead of id

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • apps/merki/trunk/app/controllers/exceptions.rb

    r930 r957  
    33  # handle NotFound exceptions (404) 
    44  def not_found 
    5     render :format => :html 
     5    redirect url(:new_page, :title => params[:id]) 
    66  end 
    77 
  • apps/merki/trunk/app/controllers/pages.rb

    r953 r957  
    1717   
    1818  def new 
    19     @page = Page.new 
     19    @page = Page.new(:title => params[:title]) 
    2020    render @page 
    2121  end 
     
    3131   
    3232  def edit(id) 
    33     @page = Page[id] 
     33    @page = Page.find_by_slug(id) || Page[id] 
    3434    raise BadRequest unless @page 
    3535    render 
     
    3737   
    3838  def update(id, page) 
    39     @page = Page.find id 
    40     # puts @page 
    41     # raise BadRequest if @page.nil? 
    42     if @page.update_attributes(page) 
     39    @page = Page.find_by_slug(id) || Page[id] 
     40    raise NotFound unless @page 
     41    if @page.update_attributes(page) || !@page.dirty? 
    4342      redirect url(:page, @page) 
    4443    else 
     
    4847   
    4948  def destroy(id) 
    50     @page = Page[id] 
     49    @page = Page.find_by_slug(id) || Page[id] 
    5150    raise BadRequest unless @page 
    5251    if @page.destroy! 
  • apps/merki/trunk/app/models/page.rb

    r953 r957  
    6565  end 
    6666   
     67  def slug 
     68    Page.escape(title) 
     69  end 
     70   
    6771   
    6872  ## Private 
  • apps/merki/trunk/app/views/layout/_sidebar.html.erb

    r955 r957  
    55  <li><%= link_to "New Page", url(:new_page) -%></li> 
    66  <% if defined?(@page) && !@page.new_record? -%> 
    7   <li><%= link_to "Edit Page", url(:edit_page, @page)-%></li> 
     7  <li><%= link_to "Edit Page", url(:edit_page, :id => @page.slug)-%></li> 
    88  <% end -%> 
    99</ul> 
     
    1212<ul> 
    1313  <% for p in @pages -%> 
    14   <li><%= link_to p.title, url(:page, p) -%></li> 
     14  <li><%= link_to p.title, url(:page, :id => p.slug) -%></li> 
    1515  <% end -%> 
    1616</ul> 
  • apps/merki/trunk/app/views/pages/edit.html.erb

    r953 r957  
    11<h1 id="edit">Edit Page</h1> 
    2 <% form_for @page, :action => url(:page, @page) do -%> 
     2<% form_for @page, :action => url(:page, :id => @page.slug) do -%> 
    33<%= partial "form" -%> 
    44<div class="form-row"> 
  • apps/merki/trunk/spec/models/page_spec.rb

    r949 r957  
    115115    @page.should be_valid 
    116116  end 
     117   
     118  it "should URL escape the title and return it as a slug" do 
     119    @page.title = "My Title" 
     120    @page.slug.should == "My+Title" 
     121  end 
    117122end 
    118123 
  • apps/merki/trunk/spec/views/pages/edit_html_spec.rb

    r956 r957  
    11require File.join(File.dirname(__FILE__),'..','..','spec_helper') 
    22 
    3 describe "/pages/edit" do 
     3describe "/pages/My+Page/edit" do 
    44  before(:each) do 
    5     Page.stub!(:[]).and_return(mock("page")) 
    6     @controller,@action = get("/pages/1/edit") 
     5    @page = Page.new(:title => "My Page") 
     6    @page.stub!(:body).and_return("Here's my page!") 
     7    Page.stub!(:find_by_slug).and_return(@page) 
     8    @controller,@action = get("/pages/My+Page/edit") 
    79    @body = @controller.body 
    810  end 
    911 
    10   it "should mention Pages" do 
     12  it "should mention Page" do 
    1113    @body.should match(/Edit Page/) 
    1214  end