summaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-05-25 19:02:28 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-05-25 19:02:28 +0000
commit85ce903cfa5f13eadef140f82466b258756a44eb (patch)
tree067b6995cc37076d87769295f2c4b5700bee6570 /app/models
parent9c630cc2b72336aed6fa0957b68f1cb598116bf4 (diff)
downloadredmine-85ce903cfa5f13eadef140f82466b258756a44eb.tar.gz
redmine-85ce903cfa5f13eadef140f82466b258756a44eb.zip
Ability to watch a wiki or a single wiki page (#413).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2765 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r--app/models/mailer.rb2
-rw-r--r--app/models/wiki.rb6
-rw-r--r--app/models/wiki_page.rb7
3 files changed, 10 insertions, 5 deletions
diff --git a/app/models/mailer.rb b/app/models/mailer.rb
index 7619bfd2c..fbe76ac3a 100644
--- a/app/models/mailer.rb
+++ b/app/models/mailer.rb
@@ -163,6 +163,7 @@ class Mailer < ActionMailer::Base
'Wiki-Page-Id' => wiki_content.page.id
message_id wiki_content
recipients wiki_content.project.recipients
+ cc(wiki_content.page.wiki.watcher_recipients - recipients)
subject "[#{wiki_content.project.name}] #{l(:mail_subject_wiki_content_added, :page => wiki_content.page.pretty_title)}"
body :wiki_content => wiki_content,
:wiki_content_url => url_for(:controller => 'wiki', :action => 'index', :id => wiki_content.project, :page => wiki_content.page.title)
@@ -178,6 +179,7 @@ class Mailer < ActionMailer::Base
'Wiki-Page-Id' => wiki_content.page.id
message_id wiki_content
recipients wiki_content.project.recipients
+ cc(wiki_content.page.wiki.watcher_recipients + wiki_content.page.watcher_recipients - recipients)
subject "[#{wiki_content.project.name}] #{l(:mail_subject_wiki_content_updated, :page => wiki_content.page.pretty_title)}"
body :wiki_content => wiki_content,
:wiki_content_url => url_for(:controller => 'wiki', :action => 'index', :id => wiki_content.project, :page => wiki_content.page.title),
diff --git a/app/models/wiki.rb b/app/models/wiki.rb
index be048775a..b31b03482 100644
--- a/app/models/wiki.rb
+++ b/app/models/wiki.rb
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007 Jean-Philippe Lang
+# Redmine - project management software
+# Copyright (C) 2006-2009 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -20,6 +20,8 @@ class Wiki < ActiveRecord::Base
has_many :pages, :class_name => 'WikiPage', :dependent => :destroy, :order => 'title'
has_many :redirects, :class_name => 'WikiRedirect', :dependent => :delete_all
+ acts_as_watchable
+
validates_presence_of :start_page
validates_format_of :start_page, :with => /^[^,\.\/\?\;\|\:]*$/
diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb
index 19858dbd4..d6009c2e3 100644
--- a/app/models/wiki_page.rb
+++ b/app/models/wiki_page.rb
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007 Jean-Philippe Lang
+# Redmine - project management software
+# Copyright (C) 2006-2009 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -23,7 +23,8 @@ class WikiPage < ActiveRecord::Base
has_one :content, :class_name => 'WikiContent', :foreign_key => 'page_id', :dependent => :destroy
acts_as_attachable :delete_permission => :delete_wiki_pages_attachments
acts_as_tree :dependent => :nullify, :order => 'title'
-
+
+ acts_as_watchable
acts_as_event :title => Proc.new {|o| "#{l(:label_wiki)}: #{o.title}"},
:description => :text,
:datetime => :created_on,