##// END OF EJS Templates
Log an error when trying to send an attachment that cannot be read....
Log an error when trying to send an attachment that cannot be read. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11084 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r10724:0e30724d6601
r10854:c87f36d20b26
Show More
wiki_content.rb
148 lines | 5.4 KiB | text/x-ruby | RubyLexer
Toshi MARUYAMA
fix typo "RedMine" at app/models/wiki_content.rb...
r9182 # Redmine - project management software
# Copyright (C) 2006-2012 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
wiki branch merged into trunk...
r320 belongs_to :page, :class_name => 'WikiPage', :foreign_key => 'page_id'
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
validates_presence_of :text
Jean-Philippe Lang
Follows r2720 (#3308)....
r2628 validates_length_of :comments, :maximum => 255, :allow_nil => true
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
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
Make sure users don't get notified for thing they can not view (#3589)....
r3055 # Returns the mail adresses of users that should be notified
def recipients
notified = project.notified_users
notified.reject! {|user| !visible?(user)}
notified.collect(&:mail)
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
Fixed warning: toplevel constant User referenced by WikiContent::User...
r987 belongs_to :page, :class_name => '::WikiPage', :foreign_key => 'page_id'
belongs_to :author, :class_name => '::User', :foreign_key => 'author_id'
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
Activity refactoring....
r1692 :find_options => {: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
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
Toshi MARUYAMA
Ruby 1.9: fix encoding error on wiki diffs (#4050)...
r7807 str.force_encoding("UTF-8") if str.respond_to?(:force_encoding)
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
end