annotate plugins/redmine_bibliography/assets/javascripts/authors.js @ 1288:7e89ba7fac48 redmine-2.2-integration

adds focus to autocomplete.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Sat, 18 May 2013 13:41:32 +0100
parents d0d6bbe9f2e0
children 7fa299909144
rev   line source
luis@1278 1 function add_author_fields(link, association, content, action) {
luis@1278 2 var new_id = new Date().getTime();
luis@1278 3 var regexp = new RegExp("new_" + association, "g");
luis@1278 4
luis@1278 5 $(link).before(content.replace(regexp, new_id));
luis@1278 6
luis@1278 7 if(action != "new"){
luis@1278 8 toggle_save_author(new_id, $(link));
luis@1278 9 }
luis@469 10 }
luis@469 11
luis@1278 12 function remove_fields(link) {
luis@1278 13 $(link).prev("input[type=hidden]").val("1");
luis@1278 14 $(link).closest(".fields").hide();
luis@481 15 }
luis@481 16
luis@1281 17 $(".author_search").live('keyup.autocomplete', function(){
luis@1284 18 $this = $(this);
luis@1284 19
luis@1284 20 $this.autocomplete({
luis@1282 21 source: '/publications/autocomplete_for_author',
luis@1283 22 minLength: 2,
luis@1288 23 focus: function(event, ui) {
luis@1288 24 $this.closest('div').next().find("input[id$='name_on_paper']").val(ui.item.value);
luis@1288 25 $this.closest('div').next().find("input[id$='institution']").val(ui.item.institution);
luis@1288 26 $this.closest('div').next().find("input[id$='email']").val(ui.item.email);
luis@1288 27 $this.closest('div').next().find("input[id$='search_author_class']").val(ui.item.search_author_class);
luis@1288 28 $this.closest('div').next().find("input[id$='search_author_id']").val(ui.item.search_author_id);
luis@1288 29
luis@1288 30 return false;
luis@1288 31 },
luis@1283 32 select: function(event, ui){
luis@1284 33 $this.closest('div').next().find("input[id$='name_on_paper']").val(ui.item.value);
luis@1284 34 $this.closest('div').next().find("input[id$='institution']").val(ui.item.institution);
luis@1284 35 $this.closest('div').next().find("input[id$='email']").val(ui.item.email);
luis@1286 36 $this.closest('div').next().find("input[id$='search_author_class']").val(ui.item.search_author_class);
luis@1286 37 $this.closest('div').next().find("input[id$='search_author_id']").val(ui.item.search_author_id);
luis@1283 38 }
luis@1288 39 })
luis@1288 40 .data( "autocomplete" )._renderItem = function( ul, item ) {
luis@1288 41 return $( "<li></li>" )
luis@1288 42 .data( "item.autocomplete", item )
luis@1288 43 .append( "<a>" + item.institution + "</a>" )
luis@1288 44 .appendTo( ul );
luis@1288 45 };
luis@1288 46 });
luis@1281 47
luis@1284 48
luis@1284 49
luis@1284 50
luis@600 51 function identify_author_status(status, object_id) {
chris@623 52 $('publication_authorships_attributes_' + object_id + '_edit_author_info').select('input').each(function(s) {
luis@1277 53
luis@1284 54 if(status == "no"){
luis@1284 55 s.value = "";
luis@1284 56 s.readOnly = false;
luis@1284 57 }
luis@1284 58
luis@1284 59 if(status == "correct"){
luis@1284 60 s.readOnly = false;
luis@1284 61 }
luis@1284 62 if(status == "yes"){
luis@1284 63 s.readOnly = true;
luis@1284 64 }
chris@623 65 });
luis@600 66 }
luis@603 67
luis@1277 68 function toggle_div(div_id){
luis@1284 69 $("#" + div_id).toggle(0.3);
luis@603 70 }
luis@603 71
luis@1277 72 function toggle_input_field(field){
luis@1284 73 if (field.classNames().inspect().include("readonly") === false){
luis@1277 74 field.readOnly = true;
luis@675 75 field.addClassName('readonly');
chris@623 76 } else {
luis@675 77 field.readOnly = false;
luis@675 78 field.removeClassName('readonly');
luis@1284 79 }
luis@603 80 }
luis@603 81
luis@605 82 function toggle_edit_save_button(object_id){
chris@623 83 $button = $('publication_authorships_attributes_' + object_id + '_edit_save_button');
chris@623 84 if ($button.value == "Edit author"){
luis@1286 85 $button.value = "Save author";
chris@623 86 } else {
luis@1286 87 $button.value = "Edit author";
luis@1286 88 }
luis@605 89 }
luis@605 90
luis@605 91 function toggle_save_author(form_object_id, $this){
chris@623 92 $('publication_authorships_attributes_' + form_object_id + '_edit_author_info').select('input').each(function(s) {
chris@623 93 toggle_input_field(s, $this);
chris@623 94 });
chris@624 95 $('publication_authorships_attributes_' + form_object_id + '_edit_author_info').select('p.description').each(function(s) {
chris@623 96 s.toggle();
chris@623 97 });
chris@623 98 toggle_edit_save_button(form_object_id);
chris@623 99 toggle_div("publication_authorships_attributes_" + form_object_id +"_search_author");
luis@1277 100 }