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; }