luis@407
|
1 require 'bibtex'
|
luis@407
|
2
|
luis@328
|
3 module PublicationsHelper
|
luis@462
|
4 def projects_check_box_tags(name, projects)
|
luis@462
|
5 s = ''
|
luis@462
|
6 projects.sort.each do |project|
|
luis@462
|
7 s << "<label>#{ check_box_tag name, project.id, false } #{link_to_project project}</label>\n"
|
luis@462
|
8 end
|
luis@462
|
9 s
|
luis@462
|
10 end
|
luis@468
|
11
|
luis@482
|
12 def identify_author(author)
|
luis@519
|
13 if author.class == User
|
luis@483
|
14 author_info = {
|
luis@483
|
15 :name_on_paper => author.name,
|
luis@483
|
16 :user_id => author.id
|
luis@483
|
17 }
|
luis@482
|
18
|
luis@483
|
19 else
|
luis@483
|
20 if author.class == Author
|
luis@482
|
21 author_info = {
|
luis@482
|
22 :name_on_paper => author.name,
|
luis@482
|
23 :user_id => author.user_id,
|
luis@482
|
24 :id => author.id
|
luis@482
|
25 }
|
luis@483
|
26 end
|
luis@482
|
27 end
|
luis@482
|
28
|
luis@482
|
29 link_to_function(author.name, "update_author_info(this," + author_info.to_json + ")")
|
luis@478
|
30 end
|
luis@478
|
31
|
luis@519
|
32 def choose_author_link(name, authors_users)
|
luis@478
|
33 s = ''
|
luis@519
|
34 authors_users.sort.each do |author_user|
|
luis@519
|
35 s << "#{identify_author author_user}\n"
|
luis@478
|
36 end
|
luis@478
|
37 s
|
luis@478
|
38 end
|
luis@478
|
39
|
luis@469
|
40 def link_to_remove_fields(name, f)
|
luis@469
|
41 f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)")
|
luis@469
|
42 end
|
luis@477
|
43
|
luis@468
|
44 def link_to_add_fields(name, f, association)
|
luis@468
|
45 new_object = f.object.class.reflect_on_association(association).klass.new
|
luis@468
|
46 fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
|
luis@468
|
47 render(association.to_s.singularize + "_fields", :f => builder)
|
luis@477
|
48 end
|
luis@472
|
49 link_to_function(name, h("add_fields(this, '#{association}', '#{escape_javascript(fields)}')"), { :class => 'icon icon-add', :id => "add_another_author" })
|
luis@468
|
50 end
|
luis@481
|
51
|
luis@481
|
52 def sanitized_object_name(object_name)
|
luis@481
|
53 object_name.gsub(/\]\[|[^-a-zA-Z0-9:.]/,"_").sub(/_$/,"")
|
luis@481
|
54 end
|
luis@481
|
55
|
luis@481
|
56 def sanitized_method_name(method_name)
|
luis@481
|
57 method_name.sub(/\?$/, "")
|
luis@481
|
58 end
|
luis@481
|
59
|
luis@481
|
60 def form_tag_id(object_name, method_name)
|
luis@481
|
61 str = "#{sanitized_object_name(object_name.to_s)}_#{sanitized_method_name(method_name.to_s)}"
|
luis@481
|
62 str.to_sym
|
luis@481
|
63 end
|
luis@481
|
64
|
luis@328
|
65 end
|
luis@481
|
66
|