Revision 1286:d0d6bbe9f2e0 plugins/redmine_bibliography/app

View differences:

plugins/redmine_bibliography/app/models/authorship.rb
9 9

  
10 10
  validates_presence_of :name_on_paper
11 11

  
12
  attr_accessor :is_user, :author_user_id, :search_name, :identify_author, :search_results
12
  attr_accessor :search_author_class, :search_author_id, :search_name, :search_results, :identify_author
13 13
  before_save :associate_author_user
14 14

  
15 15
  # todo: review usage of scope --lf.20130108
......
43 43

  
44 44
  protected
45 45
  def associate_author_user
46
    case self.identify_author
47
      when "no"
46
    case self.search_author_class
47
      when "User"
48 48
        author = Author.new
49 49
        author.save
50 50
        self.author_id = author.id
51 51
      else
52 52
        selected = self.search_results
53
        selected_classname = Kernel.const_get(selected.split('_')[0])
54
        selected_id = selected.split('_')[1]
53
        selected_classname = Kernel.const_get(self.search_author_class)
54
        selected_id = self.search_author_id
55 55
        object = selected_classname.find(selected_id)
56 56

  
57 57
        if object.respond_to? :name_on_paper
plugins/redmine_bibliography/app/views/publications/_authorship_fields.html.erb
27 27
      <p><%= f.text_field :email, {:class => ("readonly" unless params[:action] == "new") }  %></p>
28 28
      <p class='description' style=<%= "display:none;" unless params[:action] == "new" %>><%= h l("text_author_email") %></p>
29 29
    </p>
30
        <%= hidden_field_tag(:object_class, '', :name => form_tag_name(f.object_name,:object_class ), :id => form_tag_id( f.object_name, :object_class )) -%>
30
        <%= hidden_field_tag(:search_author_class, '', :name => form_tag_name(f.object_name,:search_author_class ), :id => form_tag_id( f.object_name, :search_author_class )) -%>
31 31

  
32
        <%= hidden_field_tag(:search_author_id, '', :name => form_tag_name(f.object_name,:search_author_id ), :id => form_tag_id( f.object_name, :search_author_id )) -%>
32 33
  </div>
33 34

  
34 35

  
plugins/redmine_bibliography/app/views/publications/autocomplete_for_author.html.erb
1 1
<%= raw @results.map {|result| {
2
      'id' => result.id,
3 2
      'label' => "#{result.name} (#{result.mail.partition('@')[2]})",
4 3
      'value' => result.name,
5
      'object_class' => result.class.name,
4
      'search_author_class' => result.class.name,
5
      'search_author_id' => result.id,
6 6
      'institution' => result.institution,
7 7
      'email' => result.mail,
8 8
      }

Also available in: Unified diff