##// END OF EJS Templates
Raises time entries comments limit to 1024 (#19885)....
Raises time entries comments limit to 1024 (#19885). git-svn-id: http://svn.redmine.org/redmine/trunk@14621 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r13504:e3618bdbecd9
r14239:5882629e26ab
Show More
wiki_content.rb
168 lines | 5.6 KiB | text/x-ruby | RubyLexer
Toshi MARUYAMA
fix typo "RedMine" at app/models/wiki_content.rb...
r9182 # Redmine - project management software
Jean-Philippe Lang
Copyright update....
r13490 # Copyright (C) 2006-2015 Jean-Philippe Lang
Jean-Philippe Lang
wiki branch merged into trunk...
r320 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675 #
Jean-Philippe Lang
wiki branch merged into trunk...
r320 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675 #
Jean-Philippe Lang
wiki branch merged into trunk...
r320 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require 'zlib'
class WikiContent < ActiveRecord::Base
Jean-Philippe Lang
set_table_name and set_locking_column are deprecated....
r9367 self.locking_column = 'version'
Jean-Philippe Lang
Removed unneeded :foreign_key option on belongs_to associations....
r13102 belongs_to :page, :class_name => 'WikiPage'
belongs_to :author, :class_name => 'User'
Jean-Philippe Lang
wiki branch merged into trunk...
r320 validates_presence_of :text
Jean-Philippe Lang
Follows r2720 (#3308)....
r2628 validates_length_of :comments, :maximum => 255, :allow_nil => true
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 attr_protected :id
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
wiki branch merged into trunk...
r320 acts_as_versioned
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
Use AR callbacks instead of observers (removed in Rails4) for notifications....
r11791 after_save :send_notification
Jean-Philippe Lang
Make sure users don't get notified for thing they can not view (#3589)....
r3055 def visible?(user=User.current)
page.visible?(user)
end
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
Adds email notification on wiki changes (#413). It's disabled by default and can be enabled in application settings....
r2650 def project
page.project
end
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
Makes the wiki sidebar editable (#5208)....
r3518 def attachments
page.nil? ? [] : page.attachments
end
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 def notified_users
project.notified_users.reject {|user| !visible?(user)}
end
Toshi MARUYAMA
fix typos of source comments at WikiContent model...
r12783 # Returns the mail addresses of users that should be notified
Jean-Philippe Lang
Make sure users don't get notified for thing they can not view (#3589)....
r3055 def recipients
Jean-Philippe Lang
Add support for multiple email addresses per user (#4244)....
r13504 notified_users.collect(&:mail)
Jean-Philippe Lang
Make sure users don't get notified for thing they can not view (#3589)....
r3055 end
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
Adds #current_version? method to wiki content....
r7852 # Return true if the content is the current page content
def current_version?
true
end
Jean-Philippe Lang
wiki branch merged into trunk...
r320 class Version
Jean-Philippe Lang
Removed unneeded :foreign_key option on belongs_to associations....
r13102 belongs_to :page, :class_name => '::WikiPage'
belongs_to :author, :class_name => '::User'
Jean-Philippe Lang
wiki branch merged into trunk...
r320 attr_protected :data
Jean-Philippe Lang
Merged 0.6 branch into trunk....
r663
acts_as_event :title => Proc.new {|o| "#{l(:label_wiki_edit)}: #{o.page.title} (##{o.version})"},
:description => :comments,
:datetime => :updated_on,
Jean-Philippe Lang
Add an icon to each event on the activity view....
r1327 :type => 'wiki-page',
Jean-Philippe Lang
Group events in the activity view (#12542)....
r10724 :group => :page,
Eric Davis
Refactor: use :id instead of :page when linking to Wiki Pages...
r4182 :url => Proc.new {|o| {:controller => 'wiki', :action => 'show', :project_id => o.page.wiki.project, :id => o.page.title, :version => o.version}}
Jean-Philippe Lang
Merged 0.6 branch into trunk....
r663
Jean-Philippe Lang
Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users (#1154)....
r1813 acts_as_activity_provider :type => 'wiki_edits',
Jean-Philippe Lang
Activity refactoring....
r1692 :timestamp => "#{WikiContent.versioned_table_name}.updated_on",
Jean-Philippe Lang
Display latest user's activity on account/show view....
r2064 :author_key => "#{WikiContent.versioned_table_name}.author_id",
Jean-Philippe Lang
Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users (#1154)....
r1813 :permission => :view_wiki_edits,
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 :scope => select("#{WikiContent.versioned_table_name}.updated_on, #{WikiContent.versioned_table_name}.comments, " +
"#{WikiContent.versioned_table_name}.#{WikiContent.version_column}, #{WikiPage.table_name}.title, " +
"#{WikiContent.versioned_table_name}.page_id, #{WikiContent.versioned_table_name}.author_id, " +
"#{WikiContent.versioned_table_name}.id").
joins("LEFT JOIN #{WikiPage.table_name} ON #{WikiPage.table_name}.id = #{WikiContent.versioned_table_name}.page_id " +
"LEFT JOIN #{Wiki.table_name} ON #{Wiki.table_name}.id = #{WikiPage.table_name}.wiki_id " +
"LEFT JOIN #{Project.table_name} ON #{Project.table_name}.id = #{Wiki.table_name}.project_id")
Jean-Philippe Lang
Activity refactoring....
r1692
Jean-Philippe Lang
Ability to delete a version from a wiki page history (#10852)....
r10493 after_destroy :page_update_after_destroy
Jean-Philippe Lang
wiki branch merged into trunk...
r320 def text=(plain)
case Setting.wiki_compression
when 'gzip'
begin
self.data = Zlib::Deflate.deflate(plain, Zlib::BEST_COMPRESSION)
self.compression = 'gzip'
rescue
self.data = plain
self.compression = ''
end
else
self.data = plain
self.compression = ''
end
plain
end
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
wiki branch merged into trunk...
r320 def text
Jean-Philippe Lang
WikiContent::Version#text may return ascii-8bit encoded string (#10590)....
r9195 @text ||= begin
str = case compression
when 'gzip'
Zlib::Inflate.inflate(data)
else
# uncompressed data
data
end
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 str.force_encoding("UTF-8")
Toshi MARUYAMA
Ruby 1.9: fix encoding error on wiki diffs (#4050)...
r7807 str
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675 end
Jean-Philippe Lang
wiki branch merged into trunk...
r320 end
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
Activity enhancements:...
r1213 def project
page.project
end
Toshi MARUYAMA
remove trailing white-spaces from WikiContent model source....
r5675
Jean-Philippe Lang
Adds #current_version? method to wiki content....
r7852 # Return true if the content is the current page content
def current_version?
page.content.version == self.version
end
Jean-Philippe Lang
Added wiki annotate view. It's accessible for each version from the page history view. ...
r1007 # Returns the previous version or nil
def previous
Jean-Philippe Lang
Handle deleted wiki page versions (#10852)....
r10473 @previous ||= WikiContent::Version.
reorder('version DESC').
includes(:author).
where("wiki_content_id = ? AND version < ?", wiki_content_id, version).first
end
# Returns the next version or nil
def next
@next ||= WikiContent::Version.
reorder('version ASC').
includes(:author).
where("wiki_content_id = ? AND version > ?", wiki_content_id, version).first
Jean-Philippe Lang
Added wiki annotate view. It's accessible for each version from the page history view. ...
r1007 end
Jean-Philippe Lang
Ability to delete a version from a wiki page history (#10852)....
r10493
private
# Updates page's content if the latest version is removed
# or destroys the page if it was the only version
def page_update_after_destroy
latest = page.content.versions.reorder("#{self.class.table_name}.version DESC").first
if latest && page.content.version != latest.version
raise ActiveRecord::Rollback unless page.content.revert_to!(latest)
elsif latest.nil?
raise ActiveRecord::Rollback unless page.destroy
end
end
Jean-Philippe Lang
wiki branch merged into trunk...
r320 end
Jean-Philippe Lang
Use AR callbacks instead of observers (removed in Rails4) for notifications....
r11791
private
def send_notification
# new_record? returns false in after_save callbacks
if id_changed?
if Setting.notified_events.include?('wiki_content_added')
Mailer.wiki_content_added(self).deliver
end
elsif text_changed?
if Setting.notified_events.include?('wiki_content_updated')
Mailer.wiki_content_updated(self).deliver
end
end
end
Jean-Philippe Lang
wiki branch merged into trunk...
r320 end