Changeset 1343 for mrblog/trunk
- Timestamp:
- 02/04/08 07:36:54 (10 months ago)
- Files:
-
- mrblog/trunk/app/controllers/account.rb (modified) (1 diff)
- mrblog/trunk/app/controllers/admin.rb (modified) (4 diffs)
- mrblog/trunk/app/controllers/blog.rb (modified) (2 diffs)
- mrblog/trunk/app/helpers/admin_helper.rb (deleted)
- mrblog/trunk/app/helpers/blog_helper.rb (deleted)
- mrblog/trunk/app/helpers/files_helper.rb (deleted)
- mrblog/trunk/app/models/post.rb (modified) (1 diff)
- mrblog/trunk/app/models/user.rb (modified) (1 diff)
- mrblog/trunk/app/views/admin/_form.html.erb (modified) (1 diff)
- mrblog/trunk/app/views/admin/edit.html.erb (modified) (1 diff)
- mrblog/trunk/app/views/admin/index.html.erb (modified) (2 diffs)
- mrblog/trunk/app/views/admin/new.html.erb (modified) (1 diff)
- mrblog/trunk/app/views/admin/show.html.erb (modified) (1 diff)
- mrblog/trunk/app/views/blog/_comments.html.erb (modified) (1 diff)
- mrblog/trunk/app/views/blog/index.html.erb (modified) (1 diff)
- mrblog/trunk/app/views/blog/show.html.erb (modified) (2 diffs)
- mrblog/trunk/app/views/layout/admin.html.erb (modified) (2 diffs)
- mrblog/trunk/app/views/layout/application.html.erb (modified) (1 diff)
- mrblog/trunk/config/dependencies.rb (modified) (1 diff)
- mrblog/trunk/config/merb.yml (modified) (1 diff)
- mrblog/trunk/schema/migrations/001_add_comments_to_posts.rb (deleted)
- mrblog/trunk/schema/migrations/001_add_sessions_table.rb (moved) (moved from mrblog/trunk/schema/migrations/002_add_sessions_table.rb) (1 diff)
- mrblog/trunk/schema/migrations/002_create_users.rb (added)
- mrblog/trunk/schema/migrations/003_add_user_table.rb (deleted)
- mrblog/trunk/schema/migrations/003_create_posts.rb (added)
- mrblog/trunk/schema/migrations/004_add_intro_to_posts.rb (deleted)
- mrblog/trunk/schema/migrations/004_create_comments.rb (added)
- mrblog/trunk/schema/migrations/005_add_fname_and_lname_to_users.rb (deleted)
- mrblog/trunk/schema/migrations/006_allow_pages.rb (deleted)
- mrblog/trunk/schema/migrations/100_add_test_data.rb (added)
- mrblog/trunk/schema/schema.rb (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mrblog/trunk/app/controllers/account.rb
r1203 r1343 6 6 7 7 def login 8 redirect '/account/signup' if User.count == 0 8 9 render if @method != :post 9 10 self.current_user = User.authenticate(params[:login], params[:password]) 10 11 if current_user 11 redirect _back_or_default('/')12 redirect('/admin') 12 13 end 13 14 render mrblog/trunk/app/controllers/admin.rb
r1203 r1343 4 4 5 5 def index 6 posts_or_pages :posts 7 end 8 9 def pages 10 posts_or_pages :pages 11 end 12 13 def posts_or_pages type = :posts 14 @type = type.to_s.capitalize 15 @pager = ::Paginator.new(Post.count(:conditions=>"page = '#{type==:pages}'"), MrBlog::PER_PAGE) do |offset, per_page| 16 Post.get(:all, type, :limit => per_page, :offset => offset, :order => 'created_at DESC') 6 @pager = ::Paginator.new(Post.count, MrBlog::PER_PAGE) do |offset, per_page| 7 Post.get(:all, :limit => per_page, :offset => offset, :order => 'created_at DESC') 17 8 end 18 9 @page = @pager.page(params[:page]) … … 21 12 22 13 def create 23 @post = Post.create(params[:post].merge(: page => params[:type] == "pages"))14 @post = Post.create(params[:post].merge(:user => current_user)) 24 15 redirect "/admin/show/#{@post.id}" 25 16 end … … 36 27 def show 37 28 @post = Post.find params[:id] 29 @comments = @post.comments 38 30 render 39 31 end … … 45 37 46 38 def edit 47 @post = Post.find params[:id]39 @post = Post.find(params[:id]) 48 40 render 49 41 end 50 42 51 43 def delete 52 Post.find(params[:id]).destroy 44 p = Post.find(params[:id]) 45 p.comments.each{|c| c.destroy} 46 p.destroy 53 47 redirect "/admin" 54 48 end 55 49 50 def delete_comment 51 Comment.find(params[:id]).destroy 52 redirect "/admin" 53 end 56 54 end mrblog/trunk/app/controllers/blog.rb
r1315 r1343 12 12 13 13 def index 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 = ::Paginator.new(Post.count(:conditions=>"page = '#{type==:pages}'"), MrBlog::PER_PAGE) do |offset, per_page| 14 @pager = ::Paginator.new(Post.count, MrBlog::PER_PAGE) do |offset, per_page| 23 15 Post.find(:all, :limit => per_page, :offset => offset) 24 16 end … … 28 20 29 21 def add_comment 30 puts params.inspect31 22 @post = Post.find params[:post_id] 32 23 @post.comments.create(:name => params[:comment_name], 33 : body => params[:comment_body])24 :text => params[:comment_text]) 34 25 @comments = @post.comments.reload 35 26 render_js 'comments' mrblog/trunk/app/models/post.rb
r1203 r1343 1 1 class Post < ActiveRecord::Base 2 belongs_to :user 2 3 has_many :comments 3 4 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/)]}))5 def self.get(how_many = :all, options = {}) 6 find(how_many, options) 6 7 end 7 8 8 9 def self.count_posts 9 self.count(:conditions => ["page = ?", false]) 10 end 11 12 def self.count_pages 13 self.count(:conditions => ["page = ?", true]) 10 self.count 14 11 end 15 12 mrblog/trunk/app/models/user.rb
r1306 r1343 1 1 require 'digest/sha1' 2 2 class User < ActiveRecord::Base 3 has_many :posts 3 4 4 5 # Virtual attribute for the unencrypted password mrblog/trunk/app/views/admin/_form.html.erb
r1203 r1343 1 1 <p> 2 <label for="post_title">Title</label> 3 <%= control_for @post, :title, :text, :id => 'foo', :size => 53 %> 2 <p> 3 <%= text_control :title, :label => 'Title', :cols => 50 %> 4 </p> 5 <p> 6 <%= text_area_control :text, :label => 'Text', :rows => 20, :cols => 50 %> 7 </p> 8 <p class='button'> 9 <%= link_to(image_tag('cancel.gif'), 10 if params[:action] == 'edit' 11 "/admin/show/#{@post.id}" 12 else 13 "/admin" 14 end, 15 :class => "button") %> 16 <%= submit_button(image_tag('save.gif')) %> 17 </p> 4 18 </p> 5 6 <p>7 <label for="post_intro">Intro</label>8 <%= control_for @post, :intro, :textarea, :class => 'post_intro',9 :rows => 10, :cols => 50 %>10 </p>11 12 <p>13 <label for="post_body">Body</label>14 <%= control_for @post, :body, :textarea, :class => 'post_body',15 :rows => 20, :cols => 50 %>16 </p>17 18 <p class="buttons">19 <%= link_to image_tag('cancel.gif'), (params[:action] == 'edit') ? "/admin/show/#{@post.id}" : "/admin", :class => "button" %>20 <button type="submit" name="Submit" value="Submit"><img src="/images/save.gif" /></button>21 </p>mrblog/trunk/app/views/admin/edit.html.erb
r1203 r1343 1 <h2>Edit ing Article</h2>1 <h2>Edit post</h2> 2 2 3 <form action="/admin/update" method="post"> 4 <%= partial :form %> 5 <input type='hidden' name="post[id]" value="<%= @post.id %>"> 6 </form> 3 <% form_for :post, :action => url(:controller => "admin", 4 :action => "update", 5 :id => @post.id) do %> 6 <%= partial :form %> 7 <% end %> mrblog/trunk/app/views/admin/index.html.erb
r1203 r1343 1 <h3> <%= @type %></h3>1 <h3>Post</h3> 2 2 <hr /> 3 3 <div> … … 10 10 <span></span> 11 11 <% end %> 12 <%= "<h2>No #{@type}yet</h2>" if @page.items.blank? %>12 <%= "<h2>No posts yet</h2>" if @page.items.blank? %> 13 13 </div> 14 14 <br /> 15 15 <p><%= link_to("Prev", "?page=#{@page.prev.number}") if @page.prev? %> 16 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" %>17 <%= link_to image_tag('new.gif'), "/admin/new", :class => "button" %> mrblog/trunk/app/views/admin/new.html.erb
r1203 r1343 1 <h2>Create new <%= params[:type].singularize %></h2>1 <h2>Create new post</h2> 2 2 3 < form action="/admin/create?type=<%= params[:type].downcase %>" method="post">4 <%= partial :form %>5 < /form>3 <% form_for :post, :action => url(:controller => "admin", :action => "create") do %> 4 <%= partial :form %> 5 <% end %> mrblog/trunk/app/views/admin/show.html.erb
r1203 r1343 3 3 <h2><%= @post.title %></h2> 4 4 <div class="maintext"> 5 <%= @post.intro %> 6 <%= @post.body %> 5 <%= @post.text%> 7 6 </div> 7 <% @comments.each do |c| %> 8 <div> 9 <p> 10 <b><%= c.name %></b>, on <%= c.created_at.strftime("%B %d, %Y") %> said: <br /> 11 <%= c.text %> <br /> 12 <%= link_to(image_tag('cross.png'), 13 "/admin/delete_comment/#{c.id}", 14 :class => "button") %> 15 </p> 16 </div> 17 <% end %> 18 8 19 9 20 <%= link_to image_tag('edit.gif'), "/admin/edit/#{@post.id}", :class => "button" %> mrblog/trunk/app/views/blog/_comments.html.erb
r1305 r1343 1 1 <% @comments.each do |c| %> 2 <div id= "<%= c.id %>">3 <p><%= c.name %>: <%= c. body%></p>2 <div id='<%= c.id %>'> 3 <p><%= c.name %>: <%= c.text %></p> 4 4 </div> 5 5 <% end %> mrblog/trunk/app/views/blog/index.html.erb
r1203 r1343 5 5 <% @page.items.each do |p| %> 6 6 <h2><%= link_to p.title, "/blog/show/#{p.id}" %></h2> 7 <span><%= truncate p. body, 300 %></span>7 <span><%= truncate p.text, 300 %></span> 8 8 <% end %> 9 9 <%= "<h2>No articles yet</h2>" if @page.items.blank? %> mrblog/trunk/app/views/blog/show.html.erb
r1203 r1343 1 1 <h1><%= @post.title %></h1> 2 <div><%= @post. body%></div>2 <div><%= @post.text%></div> 3 3 <hr /> 4 4 <p>Comments:<%= " None yet" if @comments.empty? %></p> … … 20 20 </p> 21 21 <p> 22 <label for="comment_ body">Comment</label>23 <textarea cols="20" id=" post_body" name="comment_body" rows="8"></textarea>22 <label for="comment_text">Comment</label> 23 <textarea cols="20" id="comment_text" name="comment_text" rows="8"></textarea> 24 24 </p> 25 25 mrblog/trunk/app/views/layout/admin.html.erb
r1294 r1343 11 11 12 12 <div id="blogtitle"> 13 <div id="small">Welcome to Merbivore | 14 <a href="http://svn.devjavu.com/merb">SVN</a> | 15 <a href="http://svn.devjavu.com/merb/trunk/README">README</a> | 16 <a href="http://merb.devjavu.com/">Trac</a> | 13 <div id="small">Welcome to Merb | 14 <a href="http://www.merbivore.com">merbivore.com</a> | 15 <a href="http://merb.devjavu.com">Trac</a> | 16 <a href="http://svn.devjavu.com/merb/trunk/README">README</a> | 17 <%= link_to "Blog", "/" %> | 17 18 <%= link_to "Login", "/account/login" if !logged_in? %> 18 <%= link_to "Logout #{current_user.login}", "/account/login" if logged_in? %> | 19 <%= link_to "Blog", "/" %> 19 <%= link_to "Logout #{current_user.login}", "/account/login" if logged_in? %> 20 20 </div> 21 21 </div> … … 26 26 <div id="topmenu"> 27 27 <ul> 28 <li><a href="/admin"><span>Articles</span></a></li> 29 <li><a href="/admin/pages"><span>Pages</span></a></li> 30 <li><a href="/admin/files"><span>Manage Files</span></a></li> 31 <li><a href="/admin/settings"><span>Settings</span></a></li> 28 <li><a href="/admin"><span>Posts</span></a></li> 29 <li><a href="/files"><span>Files</span></a></li> 32 30 <li><a href="/admin/users"><span>Users</span></a></li> 33 31 </ul> mrblog/trunk/app/views/layout/application.html.erb
r1294 r1343 13 13 14 14 <div id="blogtitle"> 15 <div id="small">Welcome to Merbivore | 16 <a href="http://svn.devjavu.com/merb">SVN</a> | 17 <a href="http://svn.devjavu.com/merb/trunk/README">README</a> | 18 <a href="http://merb.devjavu.com/">Trac</a> 15 <div id="small">Welcome to Merb | 16 <a href="http://www.merbivore.com">merbivore.com</a> | 17 <a href="http://merb.devjavu.com">Trac</a> | 18 <a href="http://svn.devjavu.com/merb/trunk/README">README</a> 19 <%= " | #{link_to "Blog", "/"}" if !logged_in? && controller.class != Blog || params[:action] != "index" %> 20 <%= " | #{link_to "Admin", "/admin"}" if current_user && current_user.admin? %> 19 21 <%= " | #{link_to "Login", "/account/login"}" if !logged_in? %> 20 <%= " | #{link_to "Blog", "/"}" if !logged_in? && controller.class != Blog || params[:action] != "index" %>21 22 <%= " | #{link_to "Logout #{current_user.login}", "/account/login"}" if logged_in? %> 22 <%= " | #{link_to "Admin", "/admin"}" if current_user && current_user.admin? %>23 23 </div> 24 24 </div> 25 25 26 <div id="border">27 <div id="container">28 <div id="content">29 <div id="introduction">30 <h3>Merb Mascot</h3>31 <ul>32 <li><%= link_to image_tag('louiecon.gif', :alt => 'Big Louie, the Merb mascot'), "/" %></li>33 </ul>34 <%= catch_content :sidebar %>35 </div> <!-- /#introduction -->36 <%= catch_content :layout %>37 </div> <!-- /#content -->38 </div> <!-- /#container -->39 <div id="footer">Merb: Mongrel + Erb</div>40 </div> <!-- /#border -->26 <div id="border"> 27 <div id="container"> 28 <div id="content"> 29 <div id="introduction"> 30 <h3>Merb Mascot</h3> 31 <ul> 32 <li><%= link_to image_tag('louiecon.gif', :alt => 'Big Louie, the Merb mascot'), "/" %></li> 33 </ul> 34 <%= catch_content :sidebar %> 35 </div> <!-- /#introduction --> 36 <%= catch_content :layout %> 37 </div> <!-- /#content --> 38 </div> <!-- /#container --> 39 <div id="footer">Merb: Mongrel + Erb</div> 40 </div> <!-- /#border --> 41 41 </body> 42 42 </html> mrblog/trunk/config/dependencies.rb
r1315 r1343 42 42 #require 'merbful_authentication' #merbful_authentication is The Merb Way, update to it 43 43 44 dependency "merb_helpers" 45 44 46 Merb::BootLoader.after_app_loads do 45 47 ### Add dependencies here that must load after the application loads: mrblog/trunk/config/merb.yml
r1203 r1343 15 15 16 16 # Uncomment if you have more than one ORM or if you need to be specific about 17 # which memory store t ouse. Built-in options are: memory, cookie, or mem_cache18 :session_store: active _record17 # which memory store tb use. Built-in options are: memory, cookie, or mem_cache 18 :session_store: activerecord 19 19 20 20 #:memory_session_ttl: 3600 # one hour mrblog/trunk/schema/migrations/001_add_sessions_table.rb
r1203 r1343 2 2 def self.up 3 3 create_table :sessions, :force => true do |t| 4 t. column :session_id, :string,:limit => 325 t. column :created_at, :datetime6 t. column :data, :text4 t.string :session_id, :limit => 32 5 t.datetime :created_at 6 t.text :data 7 7 end 8 add_index(:sessions, :session_id) 8 9 end 9 10 mrblog/trunk/schema/schema.rb
r1203 r1343 10 10 # It's strongly recommended to check this file into your version control system. 11 11 12 ActiveRecord::Schema.define(:version => 6) do12 ActiveRecord::Schema.define(:version => 100) do 13 13 14 14 create_table "comments", :force => true do |t| 15 15 t.integer "post_id" 16 16 t.string "name" 17 t.text " body"17 t.text "text" 18 18 t.datetime "created_at" 19 19 t.datetime "updated_at" … … 21 21 22 22 create_table "posts", :force => true do |t| 23 t.string "title" 24 t.text "body" 23 t.integer "user_id" 24 t.string "title", :null => false 25 t.text "text" 25 26 t.datetime "created_at" 26 27 t.datetime "updated_at" 27 t.string "intro"28 t.boolean "page"29 28 end 30 29 … … 35 34 end 36 35 37 add_index "sessions", ["session_id"], :name => " sessions_session_id_index"36 add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id" 38 37 39 38 create_table "users", :force => true do |t| 39 t.string "first_name" 40 t.string "last_name" 40 41 t.string "login", :limit => 40 41 42 t.string "email", :limit => 100 … … 44 45 t.datetime "created_at" 45 46 t.datetime "updated_at" 46 t.string "first_name"47 t.string "last_name"48 47 end 49 48
