Mercurial > hg > soundsoftware-site
changeset 1284:3ce07a57ce68 redmine-2.2-integration
Correctly adds the author info to the input fields; corrected toggle function.
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Tue, 14 May 2013 15:51:20 +0100 |
parents | 006057cf8f16 |
children | 22551cc54749 |
files | plugins/redmine_bibliography/app/helpers/publications_helper.rb plugins/redmine_bibliography/app/views/publications/autocomplete_for_author.html.erb plugins/redmine_bibliography/assets/javascripts/authors.js |
diffstat | 3 files changed, 53 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/redmine_bibliography/app/helpers/publications_helper.rb Tue May 14 14:24:45 2013 +0100 +++ b/plugins/redmine_bibliography/app/helpers/publications_helper.rb Tue May 14 15:51:20 2013 +0100 @@ -21,26 +21,8 @@ s end - def choose_author_link(object_name, items) - # called by autocomplete_for_author (publications' action/view) - # creates the select list based on the results array - # results is an array with both Users and Authorships objects - @author_options = [] - @results.each do |result| - email_bit = result.mail.partition('@')[2] - if email_bit != "" - email_bit = "(@#{email_bit})" - end - @author_options << ["#{result.name} #{email_bit}", "#{result.class.to_s}_#{result.id.to_s}"] - end - if @results.size > 0 - s = select_tag( form_tag_name(object_name, :author_search_results), options_for_select(@author_options), { :id => form_tag_id(object_name, :author_search_results), :size => 3} ) - else - s = "<em>No Authors found that match your search… sorry!</em>" - end - end def link_to_remove_fields(name, f) f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)", :class => 'icon icon-del') @@ -77,6 +59,32 @@ str.to_sym end + ####### + ### DELETE ME + + def choose_author_link(object_name, items) + # called by autocomplete_for_author (publications' action/view) + # creates the select list based on the results array + # results is an array with both Users and Authorships objects + + @author_options = [] + @results.each do |result| + email_bit = result.mail.partition('@')[2] + if email_bit != "" + email_bit = "(@#{email_bit})" + end + @author_options << ["#{result.name} #{email_bit}", "#{result.class.to_s}_#{result.id.to_s}"] + end + + if @results.size > 0 + s = select_tag( form_tag_name(object_name, :author_search_results), options_for_select(@author_options), { :id => form_tag_id(object_name, :author_search_results), :size => 3} ) + else + s = "<em>No Authors found that match your search… sorry!</em>" + end + end + + + def render_authorships_list(publication) s = '<p>'
--- a/plugins/redmine_bibliography/app/views/publications/autocomplete_for_author.html.erb Tue May 14 14:24:45 2013 +0100 +++ b/plugins/redmine_bibliography/app/views/publications/autocomplete_for_author.html.erb Tue May 14 15:51:20 2013 +0100 @@ -2,7 +2,9 @@ 'id' => result.id, 'label' => "#{result.name} (#{result.mail.partition('@')[2]})", 'value' => result.name, - 'type' => result.class, + 'type' => result.class.name, + 'institution' => result.institution, + 'email' => result.mail, } }.to_json -%> +%> \ No newline at end of file
--- a/plugins/redmine_bibliography/assets/javascripts/authors.js Tue May 14 14:24:45 2013 +0100 +++ b/plugins/redmine_bibliography/assets/javascripts/authors.js Tue May 14 15:51:20 2013 +0100 @@ -15,39 +15,51 @@ } $(".author_search").live('keyup.autocomplete', function(){ - $(this).autocomplete({ + $this = $(this); + + $this.autocomplete({ source: '/publications/autocomplete_for_author', minLength: 2, select: function(event, ui){ - alert("gOtChA " + ui.item.id + " " + ui.item.type); + $this.closest('div').next().find("input[id$='name_on_paper']").val(ui.item.value); + $this.closest('div').next().find("input[id$='institution']").val(ui.item.institution); + $this.closest('div').next().find("input[id$='email']").val(ui.item.email); } }); }); + + + function identify_author_status(status, object_id) { $('publication_authorships_attributes_' + object_id + '_edit_author_info').select('input').each(function(s) { - if(status == "no"){ - s.value = ""; - s.readOnly = false; - }; - if(status == "correct"){s.readOnly = false;}; - if(status == "yes"){s.readOnly = true;}; + if(status == "no"){ + s.value = ""; + s.readOnly = false; + } + + if(status == "correct"){ + s.readOnly = false; + } + if(status == "yes"){ + s.readOnly = true; + } }); } function toggle_div(div_id){ - Effect.toggle(div_id, "appear", {duration:0.3}); + $("#" + div_id).toggle(0.3); } function toggle_input_field(field){ - if (field.classNames().inspect().include("readonly") == false){ + if (field.classNames().inspect().include("readonly") === false){ field.readOnly = true; field.addClassName('readonly'); } else { field.readOnly = false; field.removeClassName('readonly'); - }; + } } function toggle_edit_save_button(object_id){