<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/views/posts/_new_image.rhtml</filename>
    </added>
    <added>
      <filename>app/views/posts/add_image.rjs</filename>
    </added>
    <added>
      <filename>app/views/posts/remove_image.rjs</filename>
    </added>
    <added>
      <filename>app/views/posts/remove_new_image.rjs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,3 +2,4 @@ log/*
 tmp/*
 db/backup/*
 db/backups/*
+public/uploaded_images</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 class PostsController &lt; ApplicationController
 
   before_filter :protect, :except =&gt; :index
-  before_filter :find_and_protect_post, :except =&gt; [ :index, :new, :create ]
+  before_filter :find_and_protect_post, :except =&gt; [ :index, :new, :create, :add_image, :remove_new_image ]
 
   def find_and_protect_post
     @post = Post.find(params[:id])
@@ -52,6 +52,15 @@ class PostsController &lt; ApplicationController
     respond_to do |format|
       if @post.save
         flash[:notice] = 'Post was successfully created.'
+        
+        if params[:images]
+         for image in params[:images][&quot;file_data&quot;]
+          if image != &quot;&quot;
+           @image = Image.create(:file_data =&gt; image, :post_id =&gt; @post.id )
+          end
+         end
+        end
+        
         format.html { redirect_to :controller =&gt; &quot;posts&quot; }
         format.xml  { head :created, :location =&gt; post_url(:id =&gt; @post) }
       else
@@ -68,6 +77,15 @@ class PostsController &lt; ApplicationController
     respond_to do |format|
       if @post.update_attributes(params[:post])
         flash[:notice] = 'Post was successfully updated.'
+        
+        if params[:images]
+         for image in params[:images][&quot;file_data&quot;]
+          if image != &quot;&quot;
+           @image = Image.create(:file_data =&gt; image, :post_id =&gt; @post.id )
+          end
+         end
+        end
+        
         format.html { redirect_to posts_path }
         format.xml  { head :ok }
       else
@@ -89,6 +107,22 @@ class PostsController &lt; ApplicationController
     end
   end
   
+  
+  # Image Stuff
+  
+  def add_image
+     params[:type] ||= &quot;new_image&quot;
+     @type = params[:type]
+  end
+  
+  def remove_image
+    if request.method == :delete
+      @image = Image.find(params[:image_id]).destroy
+    end
+  end
+  
+  def remove_new_image
+  end
 
 
 end</diff>
      <filename>app/controllers/posts_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,97 @@
 class Image &lt; ActiveRecord::Base
 
- belongs_to :user
+ belongs_to :post
+ 
+   DIRECTORY = 'public/uploaded_images'
+   THUMB_MAX_SIZE = 125
+   LARGE_MAX_SIZE = 600
+
+   after_create :process_upload
+   after_destroy :remove
+
+
+   def validate
+      errors.add_to_base &quot;File Must be a .jpg or .png file!&quot; if !self.proper_ext?
+   end
+
+   def proper_ext?
+     [&quot;jpg&quot;, &quot;png&quot;].include? @extension
+   end
+
+   def file_data=(file_data)
+       @file_data = file_data
+       @extension = file_data.original_filename.split('.').last.downcase
+   end
+
+   def original
+       url(&quot;original&quot;)
+   end
+
+   def url(version=&quot;large&quot;,secondtry=false)
+     filename = Dir[File.join(DIRECTORY, &quot;#{self.id}-#{version}*&quot;)].first
+
+      url = &quot;#{filename.sub(/^public/,'')}&quot; rescue nil
+
+      if secondtry == false
+        if url != nil
+          return url
+        else
+          self.create_resized_versions
+          url(version,true) 
+        end
+      else
+        if url != nil
+          return url
+        else
+          return &quot;/images/warn.gif&quot;
+        end
+      end
+   end
+
+   def thumbnail_url
+     url(&quot;thumb&quot;)
+   end
+
+   def path 
+     # `ls #{DIRECTORY}/#{self.id.to_s}-original*`.chop
+     Dir[File.join(DIRECTORY, &quot;#{self.id}-original*&quot;)].first
+   end
+
+   def delete_resized_versions
+     Dir[File.join(DIRECTORY, &quot;#{self.id}-*&quot;)].each do |filename|
+       unless filename.include? &quot;#{self.id}-original&quot;
+        File.unlink(filename) rescue nil
+       end
+     end
+   end
+
+   def create_resized_versions
+     original = path
+     `convert #{original} -resize #{THUMB_MAX_SIZE}x #{original.sub(&quot;original&quot;,&quot;thumb&quot;)}`
+     `convert #{original} -resize #{LARGE_MAX_SIZE}x #{original.sub(&quot;original&quot;,&quot;large&quot;)}`
+   end
+
+   private
+
+   def process_upload
+     if @file_data
+       save_original
+       create_resized_versions
+       @file_data = nil
+     end
+   end
+
+   def remove
+     Dir[File.join(DIRECTORY, &quot;#{self.id}-*&quot;)].each do |filename|
+       File.unlink(filename) rescue nil
+     end
+   end
+
+   def save_original
+     File.open(&quot;#{DIRECTORY}/#{self.id}-original.#{@extension}&quot;, 'wb') do |file|
+       file.puts @file_data.read
+     end
+   end
+
 
 end</diff>
      <filename>app/models/image.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 class Post &lt; ActiveRecord::Base
    belongs_to :user
    has_many :comments, :order =&gt; &quot;created_on&quot;
+   has_many :images, :dependent =&gt; :destroy
 
   def authorized?(userid)
     if (self.user_id == userid) &amp;&amp; editable?</diff>
      <filename>app/models/post.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;div id=&quot;comment_&lt;%= comment.id %&gt;&quot; class=&quot;comment&quot;&gt;
   &lt;p&gt;
-    &lt;%= sanitize comment.body %&gt;
+    &lt;%= auto_link sanitize comment.body %&gt;
   &lt;/p&gt;
  
   &lt;% if logged_in? and comment.authorized?(session[:user_id]) %&gt;</diff>
      <filename>app/views/comments/_comment.rhtml</filename>
    </modified>
    <modified>
      <diff>@@ -5,5 +5,11 @@
   &lt;li&gt;Title: (This is optional)&lt;/li&gt;
   &lt;li&gt;&lt;%= form.text_field :title, :class =&gt; &quot;post_field&quot; %&gt;&lt;/li&gt;
   &lt;li&gt;&lt;%= form.text_area :body, :class =&gt; &quot;post_field&quot;, :cols =&gt; 70 %&gt;&lt;/li&gt;
+  &lt;li&gt;Images: (Jpeg or PNG)&lt;/li&gt;
+
+  &lt;div id=&quot;new_images&quot;&gt;&lt;/div&gt;
+
+  &lt;%= link_to_remote &quot;Add Image&quot;, :url =&gt; { :action =&gt; &quot;add_image&quot; } %&gt;
+
 &lt;/ol&gt;
 &lt;/fieldset&gt;</diff>
      <filename>app/views/posts/_form.rhtml</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
-&lt;div class=&quot;post_title&quot;&gt;&lt;%= post.title %&gt;&lt;/div&gt;
 &lt;div class=&quot;post&quot;&gt;
+&lt;div class=&quot;post_title&quot;&gt;&lt;%= post.title %&gt;&lt;/div&gt;
+
   &lt;div class=&quot;datestamp&quot;&gt;
     Posted &lt;%= post.created_on.strftime(&quot;%A&quot;) %&gt;&lt;br/&gt;&lt;br/&gt;
   &lt;/div&gt;
@@ -9,9 +10,13 @@
 &lt;% if post.authorized?(session[:user_id]) %&gt;&lt;i&gt;&lt;%= link_to &quot;Edit&quot;, edit_post_path(post) %&gt;&lt;/i&gt;&lt;br/&gt;&lt;% end %&gt;
 -&lt;%= post.user.login %&gt;&lt;br/&gt;&lt;br/&gt;
 
+&lt;% if post.images.size &gt; 0 %&gt;
+&lt;% for image in post.images %&gt;
+   &lt;div class=&quot;thumbs&quot; id=&quot;image_&lt;%= image.id %&gt;&quot;&gt;&lt;%= link_to image_tag(image.thumbnail_url), image.url,{ :rel =&gt; 'lightbox[' + post.id.to_s + ']'} %&gt;&lt;br/&gt;&lt;/div&gt;
+&lt;% end %&gt;
+&lt;% end %&gt;
 
-
-  &lt;div id=&quot;comments_for_post_&lt;%= post.id %&gt;&quot;&gt; 
+  &lt;div class=&quot;comments&quot; id=&quot;comments_for_post_&lt;%= post.id %&gt;&quot;&gt; 
     &lt;%= render :partial =&gt; &quot;comments/comment&quot;, :collection =&gt; post.comments %&gt; 
   &lt;/div&gt; 
 
@@ -29,5 +34,3 @@
   &lt;% end %&gt; 
 
 &lt;/div&gt;
-
-&lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</diff>
      <filename>app/views/posts/_post.rhtml</filename>
    </modified>
    <modified>
      <diff>@@ -2,10 +2,19 @@
 
 
 &lt;% form_for(:post, :url =&gt; post_path(:id =&gt; @post), 
-                   :html =&gt; { :method =&gt; :put }) do |form| %&gt;
+                   :html =&gt; { :method =&gt; :put, :multipart =&gt; true }) do |form| %&gt;
+
 
 
   &lt;%= render :partial =&gt; &quot;form&quot;, :locals =&gt; { :form =&gt; form } %&gt;
-  &lt;%= submit_tag &quot;Update&quot;, :class =&gt; &quot;submit&quot; %&gt; 
+  &lt;fieldset class=&quot;submit&quot;&gt;&lt;%= submit_tag &quot;Update&quot;, :class =&gt; &quot;submit&quot; %&gt; &lt;/fieldset&gt;
 
 &lt;% end %&gt;
+
+
+&lt;h3&gt;Images&lt;/h3&gt;
+
+&lt;% for image in @post.images %&gt;
+   &lt;div class=&quot;thumbs&quot; id=&quot;image_&lt;%= image.id %&gt;&quot;&gt;&lt;%= link_to image_tag(image.thumbnail_url), image.url,{ :rel =&gt; 'lightbox[' + @property.id.to_s + ']'} %&gt;&lt;br/&gt;
+   &lt;%= link_to_remote &quot;Remove&quot;, :url =&gt; {:action =&gt; &quot;remove_image&quot;, :id =&gt; @post.id, :image_id =&gt; image.id }, :confirm =&gt; &quot;Are you sure?&quot;, :method =&gt; :delete %&gt;&lt;/div&gt;
+&lt;% end %&gt;
\ No newline at end of file</diff>
      <filename>app/views/posts/edit.rhtml</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,8 @@
-&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+&lt;br clear=&quot;both&quot;/&gt;
+&lt;% if params[:page] %&gt;&lt;%= will_paginate(@posts) %&gt;&lt;% end%&gt;
+
 &lt;%= render :partial =&gt; &quot;post&quot;, :collection =&gt; @posts %&gt;
-&lt;br/&gt;
+
+
+&lt;br clear=&quot;both&quot;/&gt;
 &lt;%= will_paginate(@posts) %&gt;</diff>
      <filename>app/views/posts/index.rhtml</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;h2&gt; Post something to rawdod &lt;/h2&gt;
 
-&lt;% form_for(:post, :url =&gt; posts_path) do |form| %&gt;
+&lt;% form_for(:post, :url =&gt; posts_path, :html =&gt; { :method =&gt; :put, :multipart =&gt; true }) do |form| %&gt;
   &lt;%= render :partial =&gt; &quot;form&quot;, :locals =&gt; { :form =&gt; form } %&gt;
   &lt;fieldset class=&quot;submit&quot;&gt;&lt;%= submit_tag &quot;Post&quot; %&gt;&lt;/fieldset&gt;
 &lt;% end %&gt;</diff>
      <filename>app/views/posts/new.rhtml</filename>
    </modified>
    <modified>
      <diff>@@ -24,6 +24,7 @@ http {
   }
   server {
     listen       1666;
+    client_max_body_size 50m;
     server_name  site.rawdod.com;
     root /home/rawdod/rawdod/public;
     index  index.html index.htm;</diff>
      <filename>config/nginx.conf</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>public/images/rawdod_mainlogo.png</filename>
    </modified>
    <modified>
      <diff>@@ -1,16 +1,19 @@
 /* a:hover   { color: #00FF00; border-bottom: 1px solid yellow; } */
 a { color: #008800; text-decoration: none; }
 a img { border: none; }
+img { max-width: 400px;}
 body { text-align: center; background-color: #252525; font-size: 13px; font-family: Sans-serif; color: white;}
 .post_form { margin-top: 25px; margin-bottom: 25px; }
-#content { text-align: left; margin-left: auto; margin-right: auto;  width: 600px; }
+#content { text-align: left; margin-left: auto; margin-right: auto; width: 470px;}	
 #header { margin-top: 25px; }
+#header img { max-width: 450px;}
 .post_title { margin-bottom: 12px; font-size: 20px; }
 #notice { font-size: 20px; margin: 40px; }
 .userstamp {  }
 .datestamp { margin: 10px; color: #888888; float: right;}
-.post  { background-color: #191919; padding: 12px;}
-.comment { background-color: #171717; padding: 8px;}
+.post  { background-color: #191919; padding: 12px; margin: 12px; width: 460px; }
+.comment { background-color: #191919; padding-left: 14px; border-top: 2px dashed #232323; margin-bottom: 8px; margin-top: 4px;}
+.comments { border-top: 0px solid #333333; }
 
 form {
 margin-left: auto;</diff>
      <filename>public/stylesheets/rawdod.css</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>a1b4eb8c2775ce8718ef1ca0f1abb98c6db51824</id>
    </parent>
  </parents>
  <author>
    <name>David Richards</name>
    <email>rawdod@gmail.com</email>
  </author>
  <url>http://github.com/oneman/rawdod/commit/c5abaa7f00c7e1e5d706025e5229fdc3ee76b3c8</url>
  <id>c5abaa7f00c7e1e5d706025e5229fdc3ee76b3c8</id>
  <committed-date>2008-02-09T19:45:01-08:00</committed-date>
  <authored-date>2008-02-09T19:45:01-08:00</authored-date>
  <message>image uploading and processing support beta, and some other minor changes like a better logo</message>
  <tree>21bda88a27f370fb12290ca6409f4aa85a20936e</tree>
  <committer>
    <name>David Richards</name>
    <email>rawdod@gmail.com</email>
  </committer>
</commit>
