diff --git a/app/controllers/log_entries_controller.rb b/app/controllers/log_entries_controller.rb
index 4c069a0..f6cd452 100644
--- a/app/controllers/log_entries_controller.rb
+++ b/app/controllers/log_entries_controller.rb
@@ -4,7 +4,7 @@ class LogEntriesController < ApplicationController
def create
@log_entry = current_user.log_entries.build(params[:log_entry])
if @success = @log_entry.save
- @log_entries = current_user.log_entries.most_recent.pending
+ @log_entries = current_user.log_entries.most_recent.pending.common
end
end
@@ -17,5 +17,15 @@ def complete
@log_entry = current_user.log_entries.find(params[:id])
@log_entry.complete!
end
+
+ def favorite
+ @log_entry = current_user.log_entries.find(params[:id])
+ @log_entry.favorite!
+ end
+
+ def clean_favorite
+ @log_entry = current_user.log_entries.find(params[:id])
+ @log_entry.clean_favorite!
+ end
end
diff --git a/app/models/log_entry.rb b/app/models/log_entry.rb
index 3c1f2a6..ded87c9 100644
--- a/app/models/log_entry.rb
+++ b/app/models/log_entry.rb
@@ -5,10 +5,22 @@ class LogEntry < ActiveRecord::Base
scope :most_recent, :order => 'created_at DESC'
scope :pending, where(:completed => false)
+ scope :common, where(:starred => false)
def complete!
self.completed = true
save!
end
+
+ def favorite!
+ self.starred = true
+ save!
+ end
+
+ def clean_favorite!
+ self.starred = false
+ save!
+ end
+
end
diff --git a/app/views/log_entries/_log_entry.erb b/app/views/log_entries/_log_entry.erb
index 050ec32..025ae8e 100644
--- a/app/views/log_entries/_log_entry.erb
+++ b/app/views/log_entries/_log_entry.erb
@@ -1,5 +1,5 @@
<% unless log_entry.new_record? -%>
-
<%= log_entry.created_at.strftime("%B %d, %Y") %>
@@ -9,6 +9,14 @@
<%= link_to 'Complete', [:complete, log_entry], :method => :put,
:confirm => "Are you sure?", :remote => true %>
+ |
+ <% if log_entry.starred %>
+ <%= link_to 'Unfavorite', [:clean_favorite, log_entry], :method => :put,
+ :remote => true %>
+ <% else %>
+ <%= link_to 'Favorite', [:favorite, log_entry], :method => :put,
+ :remote => true %>
+ <% end %>
|
<%= link_to 'Remove', log_entry, :method => :delete,
:confirm => "Are you sure?", :remote => true %>
diff --git a/app/views/log_entries/clean_favorite.js.erb b/app/views/log_entries/clean_favorite.js.erb
new file mode 100644
index 0000000..7652bc9
--- /dev/null
+++ b/app/views/log_entries/clean_favorite.js.erb
@@ -0,0 +1 @@
+$("#item-<%= @log_entry.id %>").replaceWith("<%= escape_javascript(render(:partial => 'log_entry', :object => @log_entry)) %>");
diff --git a/app/views/log_entries/favorite.js.erb b/app/views/log_entries/favorite.js.erb
new file mode 100644
index 0000000..7652bc9
--- /dev/null
+++ b/app/views/log_entries/favorite.js.erb
@@ -0,0 +1 @@
+$("#item-<%= @log_entry.id %>").replaceWith("<%= escape_javascript(render(:partial => 'log_entry', :object => @log_entry)) %>");
diff --git a/config/routes.rb b/config/routes.rb
index 817076b..aacc1ae 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -4,6 +4,8 @@
resources :log_entries do
member do
put :complete
+ put :favorite
+ put :clean_favorite
end
end
diff --git a/db/migrate/20101101194339_create_log_entries.rb b/db/migrate/20101101194339_create_log_entries.rb
index b1a028e..7730a42 100644
--- a/db/migrate/20101101194339_create_log_entries.rb
+++ b/db/migrate/20101101194339_create_log_entries.rb
@@ -5,6 +5,7 @@ def self.up
t.text :description
t.boolean :obsolete
t.boolean :completed
+ t.boolean :starred, :default => false
t.timestamps
end
diff --git a/public/stylesheets/base.css b/public/stylesheets/base.css
index 3065fea..2249d2a 100644
--- a/public/stylesheets/base.css
+++ b/public/stylesheets/base.css
@@ -12,6 +12,14 @@ body {
.session { text-align: right; }
.footer { color: #666666; margin-top: 20px; }
+.highlight { background-color: #f3e03f; }
+.blank { background-color: #ffffff; }
+
+.item { margin-left: 0px; }
+.columns { width: 290px; text-align: center; }
+
+.span-1 { width:30px; }
+
a { color: #666666; }
a:hover { color: #7AB1F8; }