Revision 1286:d0d6bbe9f2e0 plugins/redmine_bibliography/app
| 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