luis@1278: function add_author_fields(link, association, content, action) { luis@1278: var new_id = new Date().getTime(); luis@1278: var regexp = new RegExp("new_" + association, "g"); luis@1278: luis@1278: $(link).before(content.replace(regexp, new_id)); luis@1278: luis@1278: if(action != "new"){ luis@1278: toggle_save_author(new_id, $(link)); luis@1278: } luis@469: } luis@469: luis@1278: function remove_fields(link) { luis@1278: $(link).prev("input[type=hidden]").val("1"); luis@1278: $(link).closest(".fields").hide(); luis@481: } luis@481: luis@1281: $(".author_search").live('keyup.autocomplete', function(){ luis@1284: $this = $(this); luis@1284: luis@1284: $this.autocomplete({ luis@1282: source: '/publications/autocomplete_for_author', luis@1283: minLength: 2, luis@1288: focus: function(event, ui) { luis@1288: $this.closest('div').next().find("input[id$='name_on_paper']").val(ui.item.value); luis@1288: $this.closest('div').next().find("input[id$='institution']").val(ui.item.institution); luis@1288: $this.closest('div').next().find("input[id$='email']").val(ui.item.email); luis@1288: $this.closest('div').next().find("input[id$='search_author_class']").val(ui.item.search_author_class); luis@1288: $this.closest('div').next().find("input[id$='search_author_id']").val(ui.item.search_author_id); luis@1288: luis@1288: return false; luis@1288: }, luis@1283: select: function(event, ui){ luis@1284: $this.closest('div').next().find("input[id$='name_on_paper']").val(ui.item.value); luis@1284: $this.closest('div').next().find("input[id$='institution']").val(ui.item.institution); luis@1284: $this.closest('div').next().find("input[id$='email']").val(ui.item.email); luis@1286: $this.closest('div').next().find("input[id$='search_author_class']").val(ui.item.search_author_class); luis@1286: $this.closest('div').next().find("input[id$='search_author_id']").val(ui.item.search_author_id); luis@1283: } luis@1288: }) luis@1288: .data( "autocomplete" )._renderItem = function( ul, item ) { luis@1288: return $( "
" ) luis@1288: .data( "item.autocomplete", item ) luis@1288: .append( "" + item.institution + "" ) luis@1288: .appendTo( ul ); luis@1288: }; luis@1288: }); luis@1281: luis@1284: luis@1284: luis@1284: luis@600: function identify_author_status(status, object_id) { chris@623: $('publication_authorships_attributes_' + object_id + '_edit_author_info').select('input').each(function(s) { luis@1277: luis@1284: if(status == "no"){ luis@1284: s.value = ""; luis@1284: s.readOnly = false; luis@1284: } luis@1284: luis@1284: if(status == "correct"){ luis@1284: s.readOnly = false; luis@1284: } luis@1284: if(status == "yes"){ luis@1284: s.readOnly = true; luis@1284: } chris@623: }); luis@600: } luis@603: luis@1277: function toggle_div(div_id){ luis@1284: $("#" + div_id).toggle(0.3); luis@603: } luis@603: luis@1277: function toggle_input_field(field){ luis@1284: if (field.classNames().inspect().include("readonly") === false){ luis@1277: field.readOnly = true; luis@675: field.addClassName('readonly'); chris@623: } else { luis@675: field.readOnly = false; luis@675: field.removeClassName('readonly'); luis@1284: } luis@603: } luis@603: luis@605: function toggle_edit_save_button(object_id){ chris@623: $button = $('publication_authorships_attributes_' + object_id + '_edit_save_button'); chris@623: if ($button.value == "Edit author"){ luis@1286: $button.value = "Save author"; chris@623: } else { luis@1286: $button.value = "Edit author"; luis@1286: } luis@605: } luis@605: luis@605: function toggle_save_author(form_object_id, $this){ chris@623: $('publication_authorships_attributes_' + form_object_id + '_edit_author_info').select('input').each(function(s) { chris@623: toggle_input_field(s, $this); chris@623: }); chris@624: $('publication_authorships_attributes_' + form_object_id + '_edit_author_info').select('p.description').each(function(s) { chris@623: s.toggle(); chris@623: }); chris@623: toggle_edit_save_button(form_object_id); chris@623: toggle_div("publication_authorships_attributes_" + form_object_id +"_search_author"); luis@1277: }