annotate vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb @ 519:3be6bc3c2a17 feature_36

Correctly searches and sends the parameters for both users and authors.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Fri, 15 Jul 2011 17:21:05 +0100
parents cc267eb99115
children c3abeb11bc2e
rev   line source
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