<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/views/pages/_page.html.erb</filename>
    </added>
    <added>
      <filename>app/views/pages/_right.html.erb</filename>
    </added>
    <added>
      <filename>app/views/pages/diff.html.erb</filename>
    </added>
    <added>
      <filename>app/views/pages/revisions.html.erb</filename>
    </added>
    <added>
      <filename>lib/html_diff.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -4,7 +4,7 @@ class PagesController &lt; ApplicationController
   before_filter :check_private, :only =&gt; [:show, :revision]
   caches_page :show
   cache_sweeper :page_sweeper, :only =&gt; [:create, :update]
-  
+  include HTMLDiff
   
   # GET /pages
   # GET /pages.xml
@@ -21,7 +21,7 @@ class PagesController &lt; ApplicationController
   # GET /pages/1.xml
   def show
     @page = site.pages.find_by_permalink(params[:id] || &quot;home&quot;)
-    
+    @version = @page.versions.find_by_version(@page.version)
     
     if @page
       respond_to do |format|
@@ -33,13 +33,31 @@ class PagesController &lt; ApplicationController
       redirect_to new_page_url()
     end
   end
+  
+  def diff
+    @page = site.pages.find_by_permalink(params[:id])
+    @v1 = @page.versions.find_by_version(params[:v1])
+    @v2 = @page.versions.find_by_version(params[:v2])
+    @diff = htmldiff(@v2.body,@v1.body)
+    respond_to do |format|
+      format.html
+    end
+  end
+
+  def revisions
+    @page = site.pages.find_by_permalink(params[:id])
+    @revisions = @page.versions
+    respond_to do |format|
+      format.html
+    end
+  end
 
   def revision
     @page = site.pages.find_by_permalink(params[:id])
-    @page = site.pages.find_version(@page.id, params[:version])
+    @version = @page.versions.find_by_version(params[:version])
     
     respond_to do |format|
-      format.html
+      format.html { render :action =&gt; &quot;show&quot;}
     end
   end
 </diff>
      <filename>app/controllers/pages_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -59,6 +59,14 @@ class Page &lt; ActiveRecord::Base
     end
   end
   
+  def next_version
+    self.versions.size &gt; self.version ? self.version + 1 : false
+  end
+  
+  def previous_version
+    self.version &gt; 1 ? self.version - 1 : false
+  end  
+  
   def set_links
     Link.transaction do
       # outbound_links.delete_all</diff>
      <filename>app/models/page.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,7 @@
-&lt;h2&gt;&lt;%= link_to @page.title, wiki_page_url(@page.permalink) %&gt;&lt;/h2&gt;
-
-
-&lt;p class=&quot;wiki_body&quot;&gt;
-  &lt;%= wikified_body(@page.body) %&gt;
-&lt;/p&gt;
+&lt;%= render :partial =&gt; &quot;page&quot;, :locals =&gt; {:page =&gt; @version} %&gt;
 
 &lt;% content_for :right do -%&gt;
+
 &lt;h5&gt;Author: &lt;%= author(@page.user_id) %&gt;&lt;/h5&gt;
 &lt;ul class=&quot;meta_info&quot;&gt;
 	&lt;li&gt;&lt;%= link_to('View previous revision', revision_page_url(:id =&gt; @page.permalink, :version =&gt; (@page.previous.version))) if @page.previous %&gt;&lt;/li&gt;
@@ -14,4 +10,6 @@
 	&lt;%# FIXME Clean up this revision link logic %&gt;
 	&lt;li&gt;&lt;%= link_to 'Return to current revision', wiki_page_url(@page.permalink) %&gt;&lt;/li&gt;
 &lt;/ul&gt;
+	&lt;%= render :partial =&gt; &quot;right&quot;, :locals =&gt; {:page =&gt; @page, :version =&gt; @version} %&gt;
+
 &lt;% end -%&gt;
\ No newline at end of file</diff>
      <filename>app/views/pages/revision.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,25 +1,6 @@
-&lt;h2 class=&quot;title&quot;&gt;&lt;%=h @page.title %&gt;&lt;/h2&gt;
+&lt;%= render :partial =&gt; &quot;page&quot;, :locals =&gt; {:page =&gt; @version} %&gt;
 
-&lt;div id=&quot;flag&quot; title=&quot;&lt;%= @page.class.name %&gt;_&lt;%= @page.id %&gt;&quot;&gt;Login or sign up to flag this page.&lt;/div&gt;
-
-&lt;p class=&quot;wiki_body&quot;&gt;
-  &lt;%= wikified_body(auto_link(@page.body)) %&gt;
-&lt;/p&gt;
 
 &lt;% content_for :right do -%&gt;
-&lt;h5&gt;Author: &lt;%= author(@page.user_id) %&gt;&lt;/h5&gt;
-&lt;ul class=&quot;meta_info&quot;&gt;
-	&lt;li&gt;&lt;%= link_to 'Edit this page', edit_page_path(@page) unless @page.locked? &amp;&amp; logged_in? &amp;&amp; !current_user.admin? %&gt;&lt;/li&gt;
-	&lt;li&gt;&lt;%= link_to((@page.locked? ? &quot;Unlock this page&quot; : &quot;Lock this page&quot;), lock_page_path(@page)) if logged_in? &amp;&amp; current_user.admin? %&gt;&lt;/li&gt;
-	&lt;li&gt;&lt;%= link_to &quot;Delete this page and all revisions&quot;, page_path(@page), :method =&gt; :delete if logged_in? &amp;&amp; current_user.admin? &amp;&amp; @page.permalink != 'home' %&gt;&lt;/li&gt;
-	&lt;li&gt;&lt;%= link_to('View previous revision', revision_page_url(:id =&gt; @page.permalink, :version =&gt; (@page.version - 1) )) if (@page.versions.size &gt; 1 &amp;&amp; @page.version &gt; 1) %&gt;&lt;/li&gt;
-	&lt;li&gt;&lt;%= link_to 'Return to home', pages_path unless @page.permalink == &quot;home&quot; %&gt;&lt;/li&gt;
-	&lt;li&gt;Inbound links:
-	  &lt;ul&gt;
-	    &lt;% @page.inbound_links.each do |link| -%&gt;
-	    &lt;li&gt;&lt;%= link_to link.from_page.title, link.from_page %&gt; 
-	    &lt;% end %&gt;
-	  &lt;/ul&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
+	&lt;%= render :partial =&gt; &quot;right&quot;, :locals =&gt; {:page =&gt; @page, :version =&gt; @version}%&gt;
 &lt;% end -%&gt;
\ No newline at end of file</diff>
      <filename>app/views/pages/show.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ ActionController::Routing::Routes.draw do |map|
   map.resource :session
   map.resource :site, :member =&gt; {:expire_cache =&gt; :get, :mark_all_private =&gt; :get}
   map.resources :users 
-  map.resources :pages, :member =&gt; {:revision =&gt; :get, :rollback =&gt; :get, :lock =&gt; :get}, :collection =&gt; {:search =&gt; :get}
+  map.resources :pages, :member =&gt; {:revision =&gt; :get, :rollback =&gt; :get, :lock =&gt; :get, :revisions =&gt; :get, :diff =&gt; :get}, :collection =&gt; {:search =&gt; :get}
   map.resources :attachments
 
   map.login  '/login',  :controller =&gt; 'sessions', :action =&gt; 'new'</diff>
      <filename>config/routes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -225,3 +225,14 @@ a.attachment_link {
 	text-decoration: none;
 	margin: 0 auto;
 }
+
+del {
+    color: #999;
+    background-color: #ddd;
+}
+
+ins {
+    background-color: #cfc;
+    text-decoration: none;
+    color: #000;
+}
\ No newline at end of file</diff>
      <filename>public/stylesheets/style.css</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2899d21f259e8ad291590271afc47d330e398ed3</id>
    </parent>
  </parents>
  <author>
    <name>Codafoo</name>
    <email>codafoo@gmail.com</email>
  </author>
  <url>http://github.com/queso/signal-wiki/commit/a4bb4c42027ce1cc8bffde040084ee791160f0a0</url>
  <id>a4bb4c42027ce1cc8bffde040084ee791160f0a0</id>
  <committed-date>2008-04-18T10:41:19-07:00</committed-date>
  <authored-date>2008-04-13T19:36:59-07:00</authored-date>
  <message>Added revisions, diffs, and refactored the page rendering code</message>
  <tree>fa618644a2942d8ecbad5675a25bfe561d4aac0e</tree>
  <committer>
    <name>Josh Owens</name>
    <email>joshua.owens@gmail.com</email>
  </committer>
</commit>
