Project

General

Profile

Feature #9600 » redmine-1.2.1-redmine_link_board_and_news.patch

Igor Perminov, 2011-11-18 14:24

View differences:

redmine-1.2.1/app/helpers/application_helper.rb 2011-07-11 15:47:16.000000000 +0400 → redmine-1.2.1/app/helpers/application_helper.rb 2011-11-18 15:20:37.000000000 +0400
603 603
  #     identifier:version:1.0.0
604 604
  #     identifier:source:some/file
605 605
  def parse_redmine_links(text, project, obj, attr, only_path, options)
606
    text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(([a-z0-9\-]+):)?(attachment|document|version|commit|source|export|message|project)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|\]|<|$)}) do |m|
606
    text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(([a-z0-9\-]+):)?(attachment|document|version|board|news|commit|source|export|message|project)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|\]|<|$)}) do |m|
607 607
      leading, esc, project_prefix, project_identifier, prefix, sep, identifier = $1, $2, $3, $4, $5, $7 || $9, $8 || $10
608 608
      link = nil
609 609
      if project_identifier
......
640 640
            if message = Message.visible.find_by_id(oid, :include => :parent)
641 641
              link = link_to_message(message, {:only_path => only_path}, :class => 'message')
642 642
            end
643
          when 'board'
644
            if board = Board.visible.find_by_id(oid)
645
              link = link_to h(board.name), {:only_path => only_path, :controller => 'boards', :action => 'show', :id => board, :project_id => board.project},
646
                                             :class => 'board'
647
            end
648
          when 'news'
649
            if news = News.visible.find_by_id(oid)
650
              link = link_to h(news.title), {:only_path => only_path, :controller => 'news', :action => 'show', :id => news},
651
                                            :class => 'news'
652
            end
643 653
          when 'project'
644 654
            if p = Project.visible.find_by_id(oid)
645 655
              link = link_to_project(p, {:only_path => only_path}, :class => 'project')
......
659 669
              link = link_to h(version.name), {:only_path => only_path, :controller => 'versions', :action => 'show', :id => version},
660 670
                                              :class => 'version'
661 671
            end
672
          when 'board'
673
            if project && board = project.boards.visible.find_by_name(name)
674
              link = link_to h(board.name), {:only_path => only_path, :controller => 'boards', :action => 'show', :id => board, :project_id => board.project},
675
                                             :class => 'board'
676
            end
677
          when 'news'
678
            if project && news = project.news.visible.find_by_title(name)
679
              link = link_to h(news.title), {:only_path => only_path, :controller => 'news', :action => 'show', :id => news},
680
                                            :class => 'news'
681
            end
662 682
          when 'commit'
663 683
            if project && project.repository && (changeset = Changeset.visible.find(:first, :conditions => ["repository_id = ? AND scmid LIKE ?", project.repository.id, "#{name}%"]))
664 684
              link = link_to h("#{project_prefix}#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.identifier},
redmine-1.2.1/app/models/board.rb 2011-07-11 15:47:16.000000000 +0400 → redmine-1.2.1/app/models/board.rb 2011-11-18 14:22:57.000000000 +0400
27 27
  validates_length_of :name, :maximum => 30
28 28
  validates_length_of :description, :maximum => 255
29 29
  
30
  named_scope :visible, lambda {|*args| { :include => :project,
31
                                          :conditions => Project.allowed_to_condition(args.shift || User.current, :view_messages, *args) } }
32
  
30 33
  def visible?(user=User.current)
31 34
    !user.nil? && user.allowed_to?(:view_messages, project)
32 35
  end
    (1-1/1)