luis@407: require 'bibtex' luis@407: luis@328: module PublicationsHelper luis@462: def projects_check_box_tags(name, projects) luis@462: s = '' luis@462: projects.sort.each do |project| luis@462: s << "\n" luis@462: end luis@462: s luis@462: end luis@468: luis@482: def identify_author(author) luis@519: if author.class == User luis@483: author_info = { luis@483: :name_on_paper => author.name, luis@483: :user_id => author.id luis@483: } luis@482: luis@483: else luis@483: if author.class == Author luis@482: author_info = { luis@482: :name_on_paper => author.name, luis@482: :user_id => author.user_id, luis@482: :id => author.id luis@482: } luis@483: end luis@482: end luis@482: luis@482: link_to_function(author.name, "update_author_info(this," + author_info.to_json + ")") luis@478: end luis@478: luis@519: def choose_author_link(name, authors_users) luis@478: s = '' luis@519: authors_users.sort.each do |author_user| luis@519: s << "#{identify_author author_user}\n" luis@478: end luis@478: s luis@478: end luis@478: luis@469: def link_to_remove_fields(name, f) luis@469: f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)") luis@469: end luis@477: luis@468: def link_to_add_fields(name, f, association) luis@468: new_object = f.object.class.reflect_on_association(association).klass.new luis@468: fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder| luis@468: render(association.to_s.singularize + "_fields", :f => builder) luis@477: end luis@472: link_to_function(name, h("add_fields(this, '#{association}', '#{escape_javascript(fields)}')"), { :class => 'icon icon-add', :id => "add_another_author" }) luis@468: end luis@481: luis@481: def sanitized_object_name(object_name) luis@481: object_name.gsub(/\]\[|[^-a-zA-Z0-9:.]/,"_").sub(/_$/,"") luis@481: end luis@481: luis@481: def sanitized_method_name(method_name) luis@481: method_name.sub(/\?$/, "") luis@481: end luis@481: luis@481: def form_tag_id(object_name, method_name) luis@481: str = "#{sanitized_object_name(object_name.to_s)}_#{sanitized_method_name(method_name.to_s)}" luis@481: str.to_sym luis@481: end luis@481: luis@328: end luis@481: