summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhukl <contact@smyck.org>2009-09-11 13:08:27 +0200
committerhukl <contact@smyck.org>2009-09-11 13:08:27 +0200
commit24265260b216e2be8d29d913c4d0396408981612 (patch)
treed6406427fd274b67c9a38eddca2b61546d082c12
parentb11433f789382822e4e4955e9344c01d64cee4df (diff)
enhanced LockedByAnotherUser exception which now includes a message showing the last modified time.
Closes #13
-rw-r--r--app/controllers/nodes_controller.rb4
-rw-r--r--app/models/node.rb6
2 files changed, 7 insertions, 3 deletions
diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb
index 538e2f6..e442bd2 100644
--- a/app/controllers/nodes_controller.rb
+++ b/app/controllers/nodes_controller.rb
@@ -49,8 +49,8 @@ class NodesController < ApplicationController
49 def edit 49 def edit
50 begin 50 begin
51 @draft = @node.find_or_create_draft( current_user ) 51 @draft = @node.find_or_create_draft( current_user )
52 rescue LockedByAnotherUser 52 rescue LockedByAnotherUser => e
53 flash[:error] = "Page is locked by another user who is working on it!" 53 flash[:error] = e.message
54 redirect_to :back 54 redirect_to :back
55 end 55 end
56 end 56 end
diff --git a/app/models/node.rb b/app/models/node.rb
index fa9d519..b23e43b 100644
--- a/app/models/node.rb
+++ b/app/models/node.rb
@@ -64,7 +64,11 @@ class Node < ActiveRecord::Base
64 draft.save 64 draft.save
65 draft 65 draft
66 elsif draft && self.lock_owner != current_user 66 elsif draft && self.lock_owner != current_user
67 raise LockedByAnotherUser 67 raise(
68 LockedByAnotherUser,
69 "Page is locked by another user who is working on it! " \
70 "Last modification: #{draft.updated_at.to_s(:db)}"
71 )
68 else 72 else
69 lock_for! current_user 73 lock_for! current_user
70 create_new_draft current_user 74 create_new_draft current_user