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@552: if author.class == User luis@563: luis@563: Rails.logger.debug { "Identify Author: USER" } luis@563: luis@483: author_info = { luis@483: :name_on_paper => author.name, luis@552: :email => author.mail, luis@552: :user_id => author.id, luis@563: :institution => "", luis@563: :is_user => "1" luis@483: } luis@552: luis@552: unless author.ssamr_user_detail.nil? luis@552: author_info[:institution] = author.ssamr_user_detail.institution_name luis@552: end luis@482: luis@483: else luis@483: if author.class == Author luis@563: Rails.logger.debug { "Identify Author: AUTHOR" } luis@563: luis@563: author_info = { luis@563: :name_on_paper => author.name, luis@563: :user_id => author.user_id, luis@563: :id => author.id, luis@563: :is_user => "0" luis@563: } 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@541: luis@541: def render_projects_list(publication) luis@541: s = "" luis@574: luis@541: publication.projects.each do |proj| luis@574: s << link_to_project(proj) + link_to_remote(l(:button_delete), { :url => { :controller => 'publications', :action => 'remove_project', :id => publication, :remove_project_id => proj, :project_id => @project }, :method => :post }, :class => 'icon icon-del') + "
" luis@541: end luis@541: luis@554: s luis@541: end luis@541: luis@544: def show_bibtex_fields(bibtex_entry) luis@544: s = "" luis@481: luis@544: bibtex_entry.attributes.each do |field| luis@544: if field[1] != nil luis@544: s << "

" + field[0].titleize + "

" luis@544: luis@544: if field[0] == "entry_type" luis@544: s << bibtex_entry.entry_type_name.capitalize luis@544: else luis@544: s << bibtex_entry.attributes[field[0]].to_s luis@544: end luis@544: end luis@544: end luis@544: s luis@544: end luis@328: end luis@481: