Changeset 277

Show
Ignore:
Timestamp:
06/08/07 00:55:49 (1 year ago)
Author:
wyca..@gmail.com
Message:

Added partial support for pages. TODO: Add support for intro/body instead of current support for just body. TODO: Add Markaby support for blog entries.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mrblog/trunk/dist/app/controllers/admin.rb

    r229 r277  
    55     
    66  def index 
    7     #puts Merb::RenderMixin.erbs.inspect 
    8     @pager = Merb::Paginator.new(Post.count, MrBlog::PER_PAGE) do |offset, per_page| 
    9             Post.find(:all, :limit => per_page, :offset => offset, :order => 'created_at DESC') 
     7    posts_or_pages :posts 
     8  end 
     9   
     10  def pages 
     11    posts_or_pages :pages 
     12  end 
     13   
     14  def posts_or_pages type = :posts 
     15    @type = type.to_s.capitalize 
     16    @pager = Merb::Paginator.new(Post.send("count_#{type}"), MrBlog::PER_PAGE) do |offset, per_page| 
     17            Post.get(:all, type, :limit => per_page, :offset => offset, :order => 'created_at DESC') 
    1018          end 
    1119          @page = @pager.page(params[:page]) 
    12           render 
     20          render :action => "index"  
    1321  end 
    1422   
    1523  def create 
    16     @post = Post.create(params[:post]
     24    @post = Post.create(params[:post].merge(:page => params[:type] == "pages")
    1725    redirect "/admin/show/#{@post.id}" 
    1826  end 
  • mrblog/trunk/dist/app/controllers/blog.rb

    r276 r277  
    1212 
    1313  def index 
    14     @pager = Merb::Paginator.new(Post.count, ::MrBlog::PER_PAGE) do |offset, per_page| 
    15             Post.find(:all, :limit => per_page, :offset => offset) 
     14    posts_or_pages :posts 
     15  end 
     16   
     17  def pages 
     18    posts_or_pages :pages 
     19  end 
     20   
     21  def posts_or_pages type = :posts 
     22    @pager = Merb::Paginator.new(Post.send("count_#{type}"), ::MrBlog::PER_PAGE) do |offset, per_page| 
     23      Post.get(:all, type, :limit => per_page, :offset => offset) 
    1624          end 
    1725          @page = @pager.page(params[:page]) 
    18           render 
    19   end  
     26          render :action => "index"     
     27  end 
    2028   
    2129  def add_comment 
  • mrblog/trunk/dist/app/models/post.rb

    r133 r277  
    22  has_many :comments 
    33 
     4  def self.get how_many = :all, post_or_page = :posts, options = {} 
     5    find(how_many, options.merge({:conditions => ["page = ?", !!(post_or_page.to_s =~ /page/)]})) 
     6  end 
     7   
     8  def self.count_posts 
     9    self.count(:conditions => ["page = ?", false]) 
     10  end 
     11   
     12  def self.count_pages 
     13    self.count(:conditions => ["page = ?", true]) 
     14  end 
     15   
    416end 
  • mrblog/trunk/dist/app/views/admin/edit.herb

    r133 r277  
    1 <br /> 
    21<h2>Editing Article</h2> 
    32 
  • mrblog/trunk/dist/app/views/admin/index.herb

    r276 r277  
    1 <h3>Articles</h3> 
     1<h3><%= @type %></h3> 
    22<hr /> 
    33<div> 
    44  <% @page.items.each do |p| %> 
    5   <h2><%= link_to image_tag('pencil.png'), "/admin/edit/#{p.id}"%> | 
    6       <%= link_to image_tag('cross.png'), "/admin/delete/#{p.id}"%> | 
     5  <h2><%= link_to image_tag('pencil.png'), "/admin/edit/#{p.id}", :class => "button" %> | 
     6      <%= link_to image_tag('cross.png'), "/admin/delete/#{p.id}", :class => "button" %> | 
    77      <%= link_to p.title, "/admin/show/#{p.id}" %> |  
    88      <%= p.updated_at.strftime("%a %b %d %Y") %> 
     
    1010  <span></span> 
    1111  <% end %> 
    12   <%= "<h2>No articles yet</h2>" if @page.items.blank? %> 
     12  <%= "<h2>No #{@type} yet</h2>" if @page.items.blank? %> 
    1313</div> 
    1414<br /> 
    15 <p><%= link_to("Prev", "/admin/index?page=#{@page.prev.number}") if @page.prev? %> 
    16 <%= link_to("Next", "/admin/index?page=#{@page.next.number}") if @page.next? %></p> 
    17 <%= link_to image_tag('new.gif'), "/admin/new", :class => "button" %>  
     15<p><%= link_to("Prev", "?page=#{@page.prev.number}") if @page.prev? %> 
     16<%= link_to("Next", "?page=#{@page.next.number}") if @page.next? %></p> 
     17<%= link_to image_tag('new.gif'), "/admin/new?type=#{@type.downcase}", :class => "button" %>  
  • mrblog/trunk/dist/app/views/admin/new.herb

    r133 r277  
    1 <br /> 
    2 <h2>Create new Article</h2> 
     1<h2>Create new <%= params[:type].singularize %></h2> 
    32 
    4 <form action="/admin/create" method="post"> 
     3<form action="/admin/create?type=<%= params[:type].downcase %>" method="post"> 
    54<%= partial :form %> 
    65</form> 
  • mrblog/trunk/dist/app/views/admin/show.herb

    r133 r277  
    1 <br /> 
    21<h3>Article Preview</h3> 
    32<hr /> 
     
    87</div> 
    98 
    10 <%= link_to image_tag('edit.gif'), "/admin/edit/#{@post.id}"%> 
     9<%= link_to image_tag('edit.gif'), "/admin/edit/#{@post.id}", :class => "button" %> 
  • mrblog/trunk/dist/app/views/blog/show.herb

    r153 r277  
    1 <br /> 
    2  
    31<h1><%= @post.title %></h1> 
    42<div><%= @post.body %></div> 
    5 <br /> 
    63<hr />   
    7 <p>Comments:</p> 
     4<p>Comments:<%= " None yet" if @post.comments.empty? %></p> 
     5<% if !@post.comments.empty? %> 
    86<div id='comments'> 
    97<%= partial(:comments) %>        
    108</div> 
     9<% end %> 
    1110<div id="comment-form"> 
    12 <form onsubmit="new Ajax.Request('/blog/add_comment?post_id=<%= @post.id %>', 
     11<form class="mascot" onsubmit="new Ajax.Request('/blog/add_comment?post_id=<%= @post.id %>', 
    1312                  {asynchronous:'true',  
    1413                  evalScripts:'true',  
     
    1716 
    1817  <p> 
    19     <label for="comment_name">Name</label><br /> 
     18    <label for="comment_name">Name</label> 
    2019    <input type="text" size="20" name="comment_name" id="comment_name" /> 
    2120  </p> 
    2221  <p> 
    23     <label for="comment_body">Comment</label><br /> 
     22    <label for="comment_body">Comment</label> 
    2423    <textarea cols="20" id="post_body" name="comment_body" rows="8"></textarea> 
    2524  </p> 
    2625 
    27   <p
    28     <input name="commit" type="submit" value="Submit" /
     26  <p class="buttons"
     27    <button name="commit" type="submit" value="Submit" class="imaged">Submit</button
    2928  </p> 
    3029</form> 
  • mrblog/trunk/dist/app/views/layout/admin.herb

    r276 r277  
    2727            <ul> 
    2828              <li><a href="/admin"><span>Articles</span></a></li> 
     29              <li><a href="/admin/pages"><span>Pages</span></a></li> 
    2930              <li><a href="/admin/files"><span>Manage Files</span></a></li> 
    3031                <li><a href="/admin/settings"><span>Settings</span></a></li> 
     32                <li><a href="/admin/users"><span>Users</span></a></li> 
    3133              </ul> 
    3234          </div> 
  • mrblog/trunk/dist/app/views/layout/application.herb

    r276 r277  
    1616           <a href="http://svn.devjavu.com/merb">SVN</a> | 
    1717           <a href="http://svn.devjavu.com/merb/trunk/README">README</a> | 
    18            <a href="http://merb.devjavu.com/">Trac</a> | 
    19            <%= link_to "Login", "/account/login" if !logged_in? %> 
    20            <%= " | #{link_to "Blog", "/"}" if !logged_in? && @controller.class != Blog %>         
    21            <%= link_to "Logout #{current_user.login}", "/account/login" if logged_in? %> 
     18           <a href="http://merb.devjavu.com/">Trac</a> 
     19           <%= " | #{link_to "Login", "/account/login"}" if !logged_in? %> 
     20           <%= " | #{link_to "Blog", "/"}" if !logged_in? && @controller.class != Blog || params[:action] != "index" %>           
     21           <%= " | #{link_to "Logout #{current_user.login}", "/account/login"}" if logged_in? %> 
    2222           <%= " | #{link_to "Admin", "/admin"}" if current_user && current_user.admin? %> 
    2323   </div> 
  • mrblog/trunk/dist/public/stylesheets/merb.css

    r276 r277  
    1313        font-size:62.5%; 
    1414        text-align:center; 
     15        opacity: 0.999; 
    1516} 
    1617 
     
    1920        font-size:2.6em; 
    2021        font-weight:normal; 
    21         padding:0 0 10px 50px
     22        padding:0 0 10px 0
    2223        margin:20px 5px 5px 5px; 
    2324} 
     
    305306  margin-top: 20px; 
    306307  float: left; 
     308  width: 450px; 
     309} 
     310 
     311form#c-form { 
     312  margin-top: 0; 
    307313} 
    308314 
  • mrblog/trunk/dist/schema/schema.rb

    r233 r277  
    33# then regenerate this schema definition. 
    44 
    5 ActiveRecord::Schema.define(:version => 5) do 
     5ActiveRecord::Schema.define(:version => 6) do 
    66 
    77  create_table "comments", :force => true do |t| 
     
    1919    t.column "updated_at", :datetime 
    2020    t.column "intro",      :string 
     21    t.column "page",       :boolean 
    2122  end 
    2223